Commit 5f0948b6 by Pablo Molina

Solved #389, el click derecho es poco intuitivo

- Elminada dependencia ng-context-menu
- Añadido click izquierdo a la barra superior
- Añadido click izquierdo a las sesiones
- Añadido WorkingSessionController.create a las rutas y las politicas
- Añadido WorkingSessionController.update a las rutas y las politicas
- Eliminados estilos innecesarios
- Eliminados console.log de student controller session
parent c97cd0e0
......@@ -23,7 +23,6 @@
"angular-timer": "~1.3.3",
"humanize-duration": "~3.0.0",
"momentjs": "~2.10.3",
"ng-context-menu": "~1.0.1",
"ngtoast": "~1.5.4",
"angular-animate": "~1.4.1",
"angular-sanitize": "~1.4.1",
......
'use strict';
/* global angular */
/* App Module */
'use strict';
var dashboardApp = angular.module('dashboardApp', [
'ui.router', // This module enables PAC pattern
'dashboardControllers', // PAC controllers (they are, actually, implemented under directives thanks to ui-router)
'dashboardServices', // HTTP interceptor for authentication tokens attachment and checking
'dashboardDirectives', // simple directives to dragable elements and other stuff
'ui.router',
'dashboardControllers',
'dashboardServices',
'dashboardDirectives',
'pascalprecht.translate',
'reCAPTCHA',
'ui.bootstrap',
......@@ -15,52 +15,34 @@ var dashboardApp = angular.module('dashboardApp', [
'timer',
'ngAnimate',
'ngSanitize',
'ngToast', // This is for pop-up notifications
'ng-context-menu',
'chart.js', // Interactive charts!
'ngToast',
'chart.js',
'ngLodash'
//'ngWebsocket'
//'ngImgCrop'
// angular-translate as a module load dependency for dashboardApp
]);
/* Toast (notification) configuration */
dashboardApp.config(['ngToastProvider', function(ngToast) {
ngToast.configure({
verticalPosition: 'top',
horizontalPosition: 'center',
maxNumber: 3,
animation: 'slide'
});
dashboardApp.config(['ngToastProvider', function (ngToast) {
ngToast.configure({
verticalPosition: 'top',
horizontalPosition: 'center',
maxNumber: 3,
animation: 'slide'
});
}]);
dashboardApp.config(function($translateProvider) {
/* i18n */
dashboardApp.config(function ($translateProvider) {
$translateProvider.useStaticFilesLoader({
'prefix': '/app/i18n/',
'suffix': '.json'
prefix: '/app/i18n/',
suffix: '.json'
});
/*
// Set preferred language to browser language
var lang = $window.navigator.language || $window.navigator.userLanguage;
if (lang === 'en-US')
lang = 'en-gb';
if (lang === 'es-ES')
lang = 'es-es';
*/$translateProvider.preferredLanguage('es-es');
//$translateProvider.determinePreferredLanguage();
$translateProvider.preferredLanguage('es-es');
});
/*
* ui-routes is used to implement a PAC pattern so views and related controllers are
* hierarchically arranged.
*
*/
dashboardApp.config(function($stateProvider, $urlRouterProvider) {
dashboardApp.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('login', {
url: '/login',
......@@ -110,7 +92,7 @@ dashboardApp.config(function($stateProvider, $urlRouterProvider) {
templateUrl: 'modules/student/views/student.html',
parent: 'supervisor',
controller: 'StudentCtrl',
data: {studentData1: "tomate"},
data: { studentData1: 'tomate' },
abstract: true,
})
.state('student_collections', {
......@@ -164,19 +146,13 @@ dashboardApp.config(function($stateProvider, $urlRouterProvider) {
;
$urlRouterProvider.otherwise('/login');
});
/* reCAPTCHA */
dashboardApp.config(function (reCAPTCHAProvider) {
// required: please use your own key :)
reCAPTCHAProvider.setPublicKey('6LdkZwMTAAAAANDR_7_y9_ifEve1gLPcgneM_50o');
// optional: gets passed into the Recaptcha.create call
reCAPTCHAProvider.setOptions({
theme: 'clean'
theme: 'clean'
});
});
......@@ -184,24 +160,17 @@ dashboardApp.config(function (reCAPTCHAProvider) {
// New confirm service to avoid Firefox buggy confirm dialog window (which
// results in rootScope.inprog errors)
//
dashboardApp.factory("newconfirm", function ($window, $q, $timeout) {
// Define promise-based confirm() method.
function newconfirm(message) {
var defer = $q.defer();
$timeout(function () {
if ($window.confirm(message)) {
defer.resolve(true);
}
else {
defer.reject(false);
}
}, 0, false);
return defer.promise;
}
return newconfirm;
dashboardApp.factory('newconfirm', function ($window, $q, $timeout) {
function newconfirm(message) {
var defer = $q.defer();
$timeout(function () {
if ($window.confirm(message)) {
defer.resolve(true);
} else {
defer.reject(false);
}
}, 0, false);
return defer.promise;
}
return newconfirm;
});
<nav id="supervisor_header"class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<!-- Lo que se muestra en dispositivos móviles -->
<nav
class="topbar navbar navbar-default"
role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button class="navbar-toggle" data-target=".navbar-ex6-collapse" data-toggle="collapse" type="button">
<span class="sr-only">{{ 'expand_navigation' | translate }}</span>
<!-- Un span por línea del icono de abrir menú -->
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/app/#/students"><img src="img/logo_pictogram.png" alt="Pictogram" title="Pictogram" style="height: 50px;" /></a>
<a
class="topbar__logo navbar-brand"
href="/app/#/students">
<img
class="topbar__logo__image"
src="img/logo_pictogram.png"
alt="Pictogram"
title="Pictogram" />
</a>
</div>
<!-- Agrupar los enlaces de navegación, los formularios y cualquier otro elemento que se pueda ocultar al minimizar la barra -->
<div class="collapse navbar-collapse navbar-ex6-collapse">
<div class="nav navbar-nav navbar-right thumbnail img_profile" context-menu data-target="menu-sup">
<img id="supervisor_profile" ng-src="{{user.pic}}" alt="Supervisor" title="Supervisor" />
<div class="topbar__supervisor nav navbar-nav navbar-right">
<div class="dropdown">
<div class="topbar__supervisor__name">
<div class="topbar__supervisor__name__fullname">{{user.getFullName()}}</div>
<div class="topbar__supervisor__name__office">{{user.office.name}}</div>
</div>
<div class="dropdown position-fixed" id="menu-sup" style="z-index:10">
<ul class="dropdown-menu" role="menu">
<li>
<a class="pointer" role="menuitem" tabindex="0" href="/app/#/setup">
<span class="glyphicon glyphicon-cog" aria-hidden="true"></span> {{ 'setup' | translate }}
</a>
</li>
<li>
<a class="pointer" role="menuitem" tabindex="0" ng-click="logout()">
<span class="glyphicon glyphicon-log-out" aria-hidden="true"></span> {{ 'logout' | translate }}
</a>
</li>
</ul>
</div>
<div class="nav navbar-nav navbar-right navbar-text">
<div class="text-right">{{user.getFullName()}}</div>
<div class="text-right">{{user.office.name}}</div>
<div
class="topbar__supervisor__avatar thumbnail"
data-toggle="dropdown"
data-target="#">
<img id="supervisor_profile" ng-src="{{user.pic}}" alt="Supervisor" title="Supervisor" />
</div>
<ul class="dropdown-menu" role="menu">
<li>
<a class="pointer" role="menuitem" tabindex="0" href="/app/#/setup">
<i class="glyphicon glyphicon-cog" aria-hidden="true"></i>
{{ 'setup' | translate }}
</a>
</li>
<li>
<a class="pointer" role="menuitem" tabindex="0" ng-click="logout()">
<span class="glyphicon glyphicon-log-out" aria-hidden="true"></span>
{{ 'logout' | translate }}
</a>
</li>
</ul>
</div>
</div>
</div>
</nav>
\ No newline at end of file
</nav>
......@@ -43,20 +43,6 @@
font-size: 30px;
}
.img_profile{
width: 80px;
height: 80px;
}
.img_profile img{
width: 100%;
height: 100%;
}
.position-fixed {
position: fixed;
}
.padding8{
padding: 8px;
}
......@@ -181,20 +167,6 @@ tr:hover .ops a{
margin-bottom: 70px;
}
/* Estilos para la cabecera del supervisor */
#supervisor_header{
margin-bottom: 5px;
}
#supervisor_header .img_profile{
margin-top: 10px;
margin-left: 10px;
margin-bottom: 0;
width: 50px;
height: 50px;
overflow: hidden;
}
/* Estilos para la cabecera del alumno */
#student_header{
background: #F5F5F3;
......@@ -510,11 +482,6 @@ textarea.editable{
margin-top: 10px;
}
/* Para que la altura de los li de la lista se adapte al tamaño automáticamente */
.list-group-item{
overflow:hidden;
}
/* Etiquetas dentro de las ventanas modales de info y etiquetas de los pictos */
#picto_tags .label, #picto_info .label{
margin: 4px;
......@@ -673,9 +640,7 @@ textarea.editable{
float: right;
font-size: 36px;
margin: 10px 10px 0 0;
cursor: pointer; cursor: hand;
text-shadow: 1px 1px 1px #222;
cursor: pointer;
}
/* Para que se vea el menú contextual por encima del resto de paneles */
......
......@@ -8,3 +8,4 @@
@import 'forms.less';
@import 'picto-grid.less';
@import 'topbar.less';
/**
* This navigation element will be shown accross the whole interface when
* a supervisor has logged in.
*/
.topbar {
padding: 0.5em;
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0;
&__logo {
width: 5rem;
height: 5rem;
padding: 0;
margin-left: 0;
border-radius: 2px;
&__image {
width: 100%;
height: 100%;
border-radius: 2px;
}
}
&__supervisor {
&__name {
display: inline-block;
vertical-align: top;
padding: 0.5em;
&__fullname,
&__office {
text-align: right;
}
&__office {
opacity: 0.75;
}
}
&__avatar {
width: 5rem;
height: 5rem;
border-radius: 2px;
display: inline-block;
margin-bottom: 0;
cursor: pointer;
& img {
width: 100%;
height: 100%;
border-radius: 2px;
}
}
}
}
......@@ -120,6 +120,8 @@ module.exports.policies = {
per_year: ['tokenAuth'],
per_month: ['tokenAuth'],
tries: ['tokenAuth'],
create: ['tokenAuth'],
update: ['tokenAuth'],
close: ['tokenAuth']
}
};
......@@ -103,5 +103,7 @@ module.exports.routes = {
'GET /ws/:id_stu/year/:year': 'WorkingSessionController.per_year',
'GET /ws/:id_stu/month/:month': 'WorkingSessionController.per_month',
'GET /ws/:id_ws/tries': 'WorkingSessionController.tries',
'PUT /workingsession/:id': 'WorkingSessionController.update',
'POST /workingsession': 'WorkingSessionController.create',
'POST /workingsession/:id_ws/close': 'WorkingSessionController.close'
};
......@@ -21,7 +21,6 @@ module.exports = function (grunt) {
'assets/app/bower_components/angular-sanitize/angular-sanitize.js',
'assets/app/bower_components/ngtoast/dist/ngToast.js',
'assets/app/bower_components/ng-context-menu/dist/ng-context-menu.js',
'assets/app/bower_components/Chart.js/Chart.js',
'assets/app/bower_components/angular-chart.js/dist/angular-chart.js',
'assets/app/bower_components/ng-lodash/build/ng-lodash.js',
......
......@@ -2,5 +2,7 @@ describe('Working Session API', function () {
it('GET /ws/:id_stu/year/:year');
it('GET /ws/:id_stu/month/:month');
it('GET /ws/:id_ws/tries');
it('POST /workingsession');
it('PUT /workingsession/:id');
it('POST /workingsession/:id_ws/close');
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment