Commit 62cf1ae31b596a0eb981d1c57df0217ecf43f796

Authored by Pablo Marco del Pont
1 parent c471375bbc
Exists in master

- Agregué módulo foca-directivas para saltar entre inputs.

- Agregué lógica para saltar entre campos.
1 const templateCache = require('gulp-angular-templatecache');
2 const concat = require('gulp-concat');
3 const clean = require('gulp-clean'); 1 const clean = require('gulp-clean');
4 const htmlmin = require('gulp-htmlmin'); 2 const concat = require('gulp-concat');
5 const rename = require('gulp-rename'); 3 const connect = require('gulp-connect');
6 const uglify = require('gulp-uglify-es').default;
7 const gulp = require('gulp'); 4 const gulp = require('gulp');
8 const pump = require('pump'); 5 const htmlmin = require('gulp-htmlmin');
9 const jshint = require('gulp-jshint'); 6 const jshint = require('gulp-jshint');
7 const pump = require('pump');
8 const rename = require('gulp-rename');
10 const replace = require('gulp-replace'); 9 const replace = require('gulp-replace');
10 const templateCache = require('gulp-angular-templatecache');
11 const uglify = require('gulp-uglify-es').default;
11 12
12 var paths = { 13 var paths = {
13 srcJS: 'src/js/*.js', 14 srcJS: 'src/js/*.js',
14 srcViews: 'src/views/*.html', 15 srcViews: 'src/views/*.html',
15 tmp: 'tmp', 16 tmp: 'tmp',
16 dist: 'dist/' 17 dist: 'dist/'
17 }; 18 };
18 19
19 gulp.task('templates', function() { 20 gulp.task('templates', ['clean'], function() {
20 return pump( 21 return pump(
21 [ 22 [
22 gulp.src(paths.srcViews), 23 gulp.src(paths.srcViews),
23 htmlmin(), 24 htmlmin(),
24 templateCache('views.js', { 25 templateCache('views.js', {
25 module: 'focaLogin', 26 module: 'focaLogin',
26 root: '' 27 root: ''
27 }), 28 }),
28 gulp.dest(paths.tmp) 29 gulp.dest(paths.tmp)
29 ] 30 ]
30 ); 31 );
31 }); 32 });
32 33
33 gulp.task('uglify', ['templates'], function() { 34 gulp.task('uglify', ['templates'], function() {
34 return pump( 35 return pump(
35 [ 36 [
36 gulp.src([ 37 gulp.src([
37 paths.srcJS, 38 paths.srcJS,
38 'tmp/views.js' 39 'tmp/views.js'
39 ]), 40 ]),
40 concat('foca-login.js'), 41 concat('foca-login.js'),
41 replace("['ngRoute', 'ngCookies']",'[]'), 42 replace("['ngRoute', 'ngCookies', 'focaDirectivas']",'[]'),
42 replace('src/views/', ''), 43 replace('src/views/', ''),
43 gulp.dest(paths.tmp), 44 gulp.dest(paths.tmp),
44 rename('foca-login.min.js'), 45 rename('foca-login.min.js'),
45 uglify(), 46 uglify(),
46 gulp.dest(paths.dist) 47 gulp.dest(paths.dist)
47 ] 48 ]
48 ); 49 );
49 }); 50 });
50 51
51 gulp.task('clean', function() { 52 gulp.task('clean', function() {
52 return gulp.src(['tmp', 'dist'], {read: false}) 53 return gulp.src(['tmp', 'dist'], {read: false})
53 .pipe(clean()); 54 .pipe(clean());
54 }); 55 });
55 56
56 gulp.task('pre-commit', function() { 57 gulp.task('pre-commit', function() {
57 pump( 58 pump(
58 [ 59 [
59 gulp.src(paths.srcJS), 60 gulp.src(paths.srcJS),
60 jshint('.jshintrc'), 61 jshint('.jshintrc'),
61 jshint.reporter('default'), 62 jshint.reporter('default'),
62 jshint.reporter('fail') 63 jshint.reporter('fail')
63 ] 64 ]
64 ); 65 );
65 }); 66 });
66 67
67 gulp.task('clean-post-install', function() { 68 gulp.task('clean-post-install', function() {
68 return gulp.src(['src', 'tmp', '.jshintrc','readme.md', '.gitignore', 'gulpfile.js', 69 return gulp.src(['src', 'tmp', '.jshintrc','readme.md', '.gitignore', 'gulpfile.js',
69 'index.html'], {read: false}) 70 'index.html'], {read: false})
70 .pipe(clean()); 71 .pipe(clean());
71 }); 72 });
72 73
73 gulp.task('compile', ['templates', 'uglify']); 74 gulp.task('compile', ['templates', 'uglify']);
74 75
75 gulp.task('webserver', function() { 76 gulp.task('webserver', function() {
76 pump [ 77 pump [
77 connect.server({port: 3000}) 78 connect.server({port: 3000})
78 ] 79 ]
79 }); 80 });
1 <html ng-app="focaLogin"> 1 <html ng-app="focaLogin">
2 <head> 2 <head>
3 <meta charset="UTF-8"/> 3 <meta charset="UTF-8"/>
4 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 4 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
5 5
6 <!--CSS--> 6 <!--CSS-->
7 <link href="node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet"/> 7 <link href="node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet"/>
8 <link href="node_modules/font-awesome/css/font-awesome.min.css" rel="stylesheet"/> 8 <link href="node_modules/font-awesome/css/font-awesome.min.css" rel="stylesheet"/>
9 9
10 <!--VENDOR JS--> 10 <!--VENDOR JS-->
11 <script src="node_modules/jquery/dist/jquery.min.js"></script> 11 <script src="node_modules/jquery/dist/jquery.min.js"></script>
12 <script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script> 12 <script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
13 <script src="node_modules/angular/angular.min.js"></script> 13 <script src="node_modules/angular/angular.min.js"></script>
14 <script src="node_modules/angular-route/angular-route.min.js"></script> 14 <script src="node_modules/angular-route/angular-route.min.js"></script>
15 <script src="node_modules/angular-cookies/angular-cookies.min.js"></script> 15 <script src="node_modules/angular-cookies/angular-cookies.min.js"></script>
16 <script src="node_modules/foca-directivas/dist/foca-directivas.min.js"></script>
16 17
17 <script src="src/js/app.js"></script> 18 <script src="src/js/app.js"></script>
18 <script src="src/js/route.js"></script> 19 <script src="src/js/route.js"></script>
19 <script src="src/js/controller.js"></script> 20 <script src="src/js/controller.js"></script>
20 <script src="src/js/service.js"></script> 21 <script src="src/js/service.js"></script>
21 <script src="src/etc/develop.js"></script> 22 <script src="src/etc/develop.js"></script>
22 </head> 23 </head>
23 <body ng-view> 24 <body ng-view>
24 25
25 </body> 26 </body>
26 </html> 27 </html>
27 28
1 { 1 {
2 "name": "foca-login", 2 "name": "foca-login",
3 "version": "0.0.1", 3 "version": "0.0.1",
4 "description": "Login", 4 "description": "Login",
5 "main": "dist/foca-login.js", 5 "main": "dist/foca-login.js",
6 "scripts": { 6 "scripts": {
7 "test": "echo \"Error: no test specified\" && exit 1", 7 "test": "echo \"Error: no test specified\" && exit 1",
8 "compile": "gulp compile", 8 "compile": "gulp compile",
9 "gulp-pre-commit": "gulp pre-commit", 9 "gulp-pre-commit": "gulp pre-commit",
10 "postinstall": "npm run compile && gulp clean-post-install", 10 "postinstall": "npm run compile && gulp clean-post-install",
11 "install-dev": "npm install -D gulp gulp-connect jasmine-core pre-commit angular angular-route angular-cookies bootstrap font-awesome gulp-angular-templatecache gulp-clean gulp-htmlmin gulp-jshint gulp-rename gulp-replace gulp-sequence gulp-uglify-es gulp-replace jquery jshint pump" 11 "install-dev": "npm install -D gulp gulp-connect jasmine-core pre-commit angular angular-route angular-cookies bootstrap font-awesome gulp-angular-templatecache gulp-clean gulp-htmlmin gulp-jshint gulp-rename gulp-replace gulp-sequence gulp-uglify-es gulp-replace jquery jshint pump && npm i -D git+https://debo.suite.repo/modulos-npm/foca-directivas"
12 }, 12 },
13 "pre-commit": [ 13 "pre-commit": [
14 "gulp-pre-commit" 14 "gulp-pre-commit"
15 ], 15 ],
16 "repository": { 16 "repository": {
17 "type": "git", 17 "type": "git",
18 "url": "https://192.168.0.11/modulos-npm/foca-login.git" 18 "url": "https://debo.suite.repo/modulos-npm/foca-login.git"
19 }, 19 },
20 "author": "Foca Software", 20 "author": "Foca Software",
21 "license": "ISC", 21 "license": "ISC",
22 "peerDependencies": { 22 "peerDependencies": {
23 "angular": "^1.7.x", 23 "angular": "^1.7.x",
24 "bootstrap": "^4.1.x", 24 "bootstrap": "^4.1.x",
25 "jquery": "^3.3.x", 25 "jquery": "^3.3.x",
26 "font-awesome": "^4.7.x", 26 "font-awesome": "^4.7.x",
27 "gulp": "^3.9.x", 27 "gulp": "^3.9.x",
28 "gulp-concat": "2.6.x", 28 "gulp-concat": "2.6.x",
29 "gulp-jshint": "^2.1.x", 29 "gulp-jshint": "^2.1.x",
30 "gulp-rename": "^1.4.x", 30 "gulp-rename": "^1.4.x",
31 "gulp-replace": "^1.0.x", 31 "gulp-replace": "^1.0.x",
32 "gulp-uglify-es": "^1.0.x", 32 "gulp-uglify-es": "^1.0.x",
33 "jshint": "^2.9.x", 33 "jshint": "^2.9.x",
34 "pump": "^3.0.x" 34 "pump": "^3.0.x",
35 "foca-directivas": "git+https://debo.suite.repo/modulos-npm/foca-directivas"
35 }, 36 },
36 "devDependencies": { 37 "devDependencies": {
37 "angular": "^1.7.5", 38 "angular": "^1.7.5",
38 "angular-cookies": "^1.7.5", 39 "angular-cookies": "^1.7.5",
39 "angular-route": "^1.7.5", 40 "angular-route": "^1.7.5",
40 "bootstrap": "^4.1.3", 41 "bootstrap": "^4.1.3",
42 "foca-directivas": "git+https://debo.suite.repo/modulos-npm/foca-directivas",
41 "font-awesome": "^4.7.0", 43 "font-awesome": "^4.7.0",
42 "gulp": "^3.9.1", 44 "gulp": "^3.9.1",
43 "gulp-angular-templatecache": "^2.2.1", 45 "gulp-angular-templatecache": "^2.2.2",
44 "gulp-clean": "^0.4.0", 46 "gulp-clean": "^0.4.0",
45 "gulp-connect": "^5.6.1", 47 "gulp-connect": "^5.6.1",
46 "gulp-htmlmin": "^5.0.1", 48 "gulp-htmlmin": "^5.0.1",
47 "gulp-jshint": "^2.1.0", 49 "gulp-jshint": "^2.1.0",
48 "gulp-rename": "^1.4.0", 50 "gulp-rename": "^1.4.0",
49 "gulp-replace": "^1.0.0", 51 "gulp-replace": "^1.0.0",
50 "gulp-sequence": "^1.0.0", 52 "gulp-sequence": "^1.0.0",
51 "gulp-uglify-es": "^1.0.4", 53 "gulp-uglify-es": "^1.0.4",
52 "jasmine-core": "^3.2.1", 54 "jasmine-core": "^3.2.1",
53 "jquery": "^3.3.1", 55 "jquery": "^3.3.1",
54 "jshint": "^2.9.6", 56 "jshint": "^2.9.6",
55 "pre-commit": "^1.2.2", 57 "pre-commit": "^1.2.2",
56 "pump": "^3.0.0" 58 "pump": "^3.0.0"
57 } 59 }
58 } 60 }
59 61
1 angular.module('focaLogin', ['ngRoute', 'ngCookies']) 1 angular.module('focaLogin', ['ngRoute', 'ngCookies', 'focaDirectivas'])
2 .run(['$rootScope', '$cookies', '$location', function($rootScope, $cookies, $location) { 2 .run(['$rootScope', '$cookies', '$location', function($rootScope, $cookies, $location) {
3 $rootScope.$on('$locationChangeStart', function() { 3 $rootScope.$on('$locationChangeStart', function() {
4 var idUsuario = $cookies.get('idUsuario'); 4 var idUsuario = $cookies.get('idUsuario');
5 if(!idUsuario) { 5 if(!idUsuario) {
6 if($location.path() !== '/login') { 6 if($location.path() !== '/login') {
7 $location.path('/login'); 7 $location.path('/login');
8 } 8 }
9 } 9 }
10 }); 10 });
11 }]); 11 }]);
12 12
src/js/controller.js
1 angular.module('focaLogin') 1 angular.module('focaLogin')
2 .controller('focaLoginController', [ 2 .controller('focaLoginController', [
3 '$scope', 'focaLoginService', '$location', '$cookies', 3 '$scope', 'focaLoginService', '$location', '$cookies',
4 function($scope, focaLoginService, $location, $cookies) { 4 function($scope, focaLoginService, $location, $cookies) {
5 $scope.paso = 1;
5 $scope.enviar = function() { 6 $scope.enviar = function() {
6 focaLoginService.login($scope.usuario).then(function(datos) { 7 focaLoginService.login($scope.usuario).then(function(datos) {
7 $cookies.put('idUsuario', $scope.usuario.idUsuario); 8 $cookies.put('idUsuario', $scope.usuario.idUsuario);
8 $cookies.put('token', datos.data.token); 9 $cookies.put('token', datos.data.token);
9 $location.path('/'); 10 $location.path('/');
10 }); 11 });
11 }; 12 };
13 $scope.irPaso = function(numeroPaso){
14 $scope.paso = numeroPaso;
15 };
12 } 16 }
13 ]) 17 ])
14 .controller('focaLogoutController', [ 18 .controller('focaLogoutController', [
15 '$cookies', '$location', 19 '$cookies', '$location',
16 function($cookies, $location) { 20 function($cookies, $location) {
17 $cookies.remove('idUsuario'); 21 $cookies.remove('idUsuario');
18 $cookies.remove('token'); 22 $cookies.remove('token');
19 $location.path('/login'); 23 $location.path('/login');
20 } 24 }
21 ]); 25 ]);
22 26
src/views/foca-login.html
1 <div class="login"> 1 <div class="login">
2 <form name="login"> 2 <form name="login">
3 <div class="login-titulo"> 3 <div class="login-titulo">
4 <span>Ingreso de usuario</span> 4 <span>Ingreso de usuario</span>
5 </div> 5 </div>
6 <div class="login-campo"> 6 <div class="login-campo">
7 <label>Usuario</label> 7 <label>Usuario</label>
8 <input type="text" ng-model="usuario.idUsuario" /> 8 <input
9 type = "text"
10 ng-model = "usuario.idUsuario"
11 foca-focus = "paso == 1"
12 ng-keyup = "$event.keyCode == 13 && irPaso(2)"
13 />
9 </div> 14 </div>
10 <div class="login-campo"> 15 <div class="login-campo">
11 <label>Contraseña</label> 16 <label>Contraseña</label>
12 <input type="password" ng-model="usuario.clave" ng-keyup="$event.keyCode == 13 && enviar()" /> 17 <input
18 type = "password"
19 ng-model = "usuario.clave"
20 foca-focus = "paso == 2"
21 ng-keyup = "$event.keyCode == 13 && enviar()"
22 />
13 </div> 23 </div>
14 </form> 24 </form>
15 </div> 25 </div>
16 26