Commit aa29546865c2aa07b2fda36376e5a6d85687a17c

Authored by Pablo Marco del Pont
1 parent 770bbeb0eb
Exists in master

- Agrego archivo develop de ejemplo.

- Agregué ruta de develop al gitignore.
- Modifiqué el gulp para incluir las librerias necesarias.
- Agregué las tareas clean-post-install, webserver y default.
- Agregué archivo index para desarrollo.
- Agregué los paquetes necesarios en el package.json
- Agregué modulos ngRoute y ui.bootstrap a la aplicación.
- Modifiqué el controller para tomar la ruta anidada.
- Modifiqué la ruta de los templates.
- Modifiqué la vista del listado para ingresar a la ruta adecuada.
1 /node_modules 1 /node_modules
2 /dist 2 /dist
3 /tmp 3 /tmp
4 package-lock\.json 4 package-lock\.json
5 /src/etc/develop.js
5 6
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');
2 const concat = require('gulp-concat');
3 const connect = require('gulp-connect');
4 const gulp = require('gulp');
4 const htmlmin = require('gulp-htmlmin'); 5 const htmlmin = require('gulp-htmlmin');
6 const jshint = require('gulp-jshint');
7 const pump = require('pump');
5 const rename = require('gulp-rename'); 8 const rename = require('gulp-rename');
9 const templateCache = require('gulp-angular-templatecache');
6 const uglify = require('gulp-uglify-es').default; 10 const uglify = require('gulp-uglify-es').default;
7 const gulp = require('gulp');
8 const pump = require('pump');
9 const jshint = require('gulp-jshint');
10 11
11 var paths = { 12 var paths = {
13 dist: 'dist/',
12 srcJS: 'src/js/*.js', 14 srcJS: 'src/js/*.js',
13 srcViews: 'src/views/*.html', 15 srcViews: 'src/views/*.html',
14 tmp: 'tmp', 16 tmp: 'tmp'
15 dist: 'dist/'
16 }; 17 };
17 18
18 gulp.task('templates', function() { 19 gulp.task('templates', ['clean'], function() {
19 return pump( 20 return pump(
20 [ 21 [
21 gulp.src(paths.srcViews), 22 gulp.src(paths.srcViews),
22 htmlmin(), 23 htmlmin(),
23 templateCache('views.js', { 24 templateCache('views.js', {
24 module: 'focaAbmPlazoPago', 25 module: 'focaAbmPlazoPago',
25 root: '' 26 root: ''
26 }), 27 }),
27 gulp.dest(paths.tmp) 28 gulp.dest(paths.tmp)
28 ] 29 ]
29 ); 30 );
30 }); 31 });
31 32
32 gulp.task('uglify', ['templates'], function() { 33 gulp.task('uglify', ['templates'], function() {
33 return pump( 34 return pump(
34 [ 35 [
35 gulp.src([ 36 gulp.src([
36 paths.srcJS, 37 paths.srcJS,
37 'tmp/views.js' 38 'tmp/views.js'
38 ]), 39 ]),
39 concat('foca-abm-plazo-pago.js'), 40 concat('foca-abm-plazo-pago.js'),
41 replace('src/views/', ''),
42 replace("['ngRoute', 'ui.bootstrap']", '[]'),
40 gulp.dest(paths.tmp), 43 gulp.dest(paths.tmp),
41 rename('foca-abm-plazo-pago.min.js'), 44 rename('foca-abm-plazo-pago.min.js'),
42 uglify(), 45 uglify(),
43 gulp.dest(paths.dist) 46 gulp.dest(paths.dist)
44 ] 47 ]
45 ); 48 );
46 }); 49 });
47 50
48 gulp.task('clean', function(){ 51 gulp.task('clean', function(){
49 return gulp.src(['tmp', 'dist'], {read: false}) 52 return gulp.src(['tmp', 'dist'], {read: false})
50 .pipe(clean()); 53 .pipe(clean());
51 }); 54 });
52 55
53 gulp.task('pre-commit', function() { 56 gulp.task('pre-commit', function() {
54 pump( 57 pump(
55 [ 58 [
56 gulp.src(paths.srcJS), 59 gulp.src(paths.srcJS),
57 jshint('.jshintrc'), 60 jshint('.jshintrc'),
58 jshint.reporter('default'), 61 jshint.reporter('default'),
59 jshint.reporter('fail') 62 jshint.reporter('fail')
60 ] 63 ]
61 ); 64 );
62 }); 65 });
66
67 gulp.task('clean-post-install', function() {
68 return gulp.src([
69 'src', 'tmp', '.jshintrc', 'readme.md', '.gitignore', 'gulpfile.js', 'index.html'
70 ], {read: false})
71 .pipe(clean());
72 });
73
74 gulp.task('webserver', function() {
75 pump [
1 <html ng-app="focaAbmPlazoPago">
2 <head>
3 <meta charset="UTF-8" />
4 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
5
6 <!--CSS-->
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" />
9
10 <!--VENDOR JS-->
11 <script src="node_modules/jquery/dist/jquery.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>
14 <script src="node_modules/angular-route/angular-route.min.js"></script>
15 <script src="node_modules/ui-bootstrap4/dist/ui-bootstrap-tpls.js"></script>
16
17 <!-- BUILD -->
18 <script src="src/js/app.js"></script>
19 <script src="src/js/route.js"></script>
20 <script src="src/js/controller.js"></script>
21 <script src="src/js/service.js"></script>
22 <script src="src/etc/develop.js"></script>
23 <!-- /BUILD -->
24
25 <body>
26 <div ng-view></div>
27 </body>
28 </html>
29
1 { 1 {
2 "name": "foca-abm-plazo-pago", 2 "name": "foca-abm-plazo-pago",
3 "version": "1.0.0", 3 "version": "1.0.0",
4 "description": "ABM de Plazos de Pago", 4 "description": "ABM de Plazos de Pago",
5 "main": "dist/foca-abm-plazo-pago.js", 5 "main": "dist/foca-abm-plazo-pago.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 uglify", 8 "compile": "gulp uglify",
9 "pre-commit": [ 9 "gulp-pre-commit": "gulp pre-commit",
10 "gulp-pre-commit" 10 "postinstall": "npm run compile && gulp clean-post-install",
11 ], 11 "install-dev": "npm install -D jasmine-core pre-commit angular angular-route bootstrap ui-bootstrap4 font-awesome gulp gulp-angular-templatecache gulp-connect gulp-clean gulp-htmlmin gulp-jshint gulp-rename gulp-replace gulp-sequence gulp-uglify-es jquery jshint pump"
12 "postinstall": "npm run compile && rm -R src && rm index.html && rm .jshintrc && rm gulpfile.js"
13 }, 12 },
13 "pre-commit": [
14 "gulp-pre-commit"
15 ],
14 "repository": { 16 "repository": {
15 "type": "git", 17 "type": "git",
16 "url": "https://192.168.0.11/modulos-npm/foca-abm-plazo-pago.git" 18 "url": "https://192.168.0.11/modulos-npm/foca-abm-plazo-pago.git"
17 }, 19 },
18 "author": "Foca Software", 20 "author": "Foca Software",
19 "license": "ISC", 21 "license": "ISC",
20 "peerDependencies": { 22 "peerDependencies": {
21 "angular": "^1.7.x", 23 "angular": "^1.7.x",
22 "bootstrap": "^4.1.x", 24 "bootstrap": "^4.1.x",
23 "jquery": "^3.3.x", 25 "jquery": "^3.3.x",
24 "font-awesome": "^4.7.x", 26 "font-awesome": "^4.7.x",
25 "gulp": "^3.9.x", 27 "gulp": "^3.9.x",
26 "gulp-concat": "2.6.x", 28 "gulp-concat": "2.6.x",
27 "gulp-jshint": "^2.1.x", 29 "gulp-jshint": "^2.1.x",
28 "gulp-rename": "^1.4.x", 30 "gulp-rename": "^1.4.x",
29 "gulp-replace": "^1.0.x", 31 "gulp-replace": "^1.0.x",
30 "gulp-uglify-es": "^1.0.x", 32 "gulp-uglify-es": "^1.0.x",
31 "jshint": "^2.9.x", 33 "jshint": "^2.9.x",
32 "pump": "^3.0.x" 34 "pump": "^3.0.x"
33 }, 35 },
34 "devDependencies": { 36 "devDependencies": {
37 "angular": "^1.7.5",
38 "angular-route": "^1.7.5",
39 "bootstrap": "^4.1.3",
40 "font-awesome": "^4.7.0",
41 "gulp": "^3.9.1",
42 "gulp-angular-templatecache": "^2.2.2",
43 "gulp-clean": "^0.4.0",
35 "gulp-connect": "^5.6.1", 44 "gulp-connect": "^5.6.1",
36 "jasmine-core": "3.2.1", 45 "gulp-htmlmin": "^5.0.1",
37 "pre-commit": "^1.2.2" 46 "gulp-jshint": "^2.1.0",
38 }, 47 "gulp-rename": "^1.4.0",
39 "dependencies": { 48 "gulp-replace": "^1.0.0",
40 "angular": "1.7.4", 49 "gulp-sequence": "^1.0.0",
41 "bootstrap": "4.1.3", 50 "gulp-uglify-es": "^1.0.4",
42 "font-awesome": "4.7.0", 51 "jasmine-core": "^3.2.1",
43 "gulp-angular-templatecache": "2.2.1", 52 "jquery": "^3.3.1",
44 "gulp-clean": "0.4.0", 53 "jshint": "^2.9.6",
45 "gulp-htmlmin": "5.0.1", 54 "pre-commit": "^1.2.2",
46 "gulp-jshint": "2.1.0", 55 "pump": "^3.0.0",
47 "gulp-rename": "1.4.0", 56 "ui-bootstrap4": "^3.0.5"
48 "gulp-replace": "1.0.0",
49 "gulp-sequence": "1.0.0",
src/etc/develop.ejemplo.js
File was created 1 angular.module('focaAbmPlazoPago')
2 .constant("API_ENDPOINT", {
3 'URL': '//127.0.0.1:9000'
4 });
5
1 angular.module('focaAbmPlazoPago', []); 1 angular.module('focaAbmPlazoPago', ['ngRoute', 'ui.bootstrap']);
2 2
src/js/controller.js
1 angular.module('focaAbmPlazoPago') 1 angular.module('focaAbmPlazoPago')
2 .controller('focaAbmPlazosPagoController', [ 2 .controller('focaAbmPlazosPagoController', [
3 '$scope', 'focaAbmPlazoPagoService', '$location', '$uibModal', 3 '$scope', 'focaAbmPlazoPagoService', '$location', '$uibModal',
4 function($scope, focaAbmPlazoPagoService, $location, $uibModal) { 4 function($scope, focaAbmPlazoPagoService, $location, $uibModal) {
5 focaAbmPlazoPagoService.obtenerPlazosPago().then(function(datos) { 5 focaAbmPlazoPagoService.obtenerPlazosPago().then(function(datos) {
6 $scope.plazosPago = datos.data; 6 $scope.plazosPago = datos.data;
7 }); 7 });
8 $scope.editar = function(id) { 8 $scope.editar = function(idPreciosCondiciones, id) {
9 $location.path('/plazo-pago/' + id); 9 $location.path('/precio-condicion/' + idPreciosCondiciones + '/plazo-pago/' + id);
10 }; 10 };
11 $scope.solicitarConfirmacion = function(plazoPago) { 11 $scope.solicitarConfirmacion = function(plazoPago) {
12 $uibModal.open({ 12 $uibModal.open({
13 templateUrl: 'foca-abm-plazos-pago-modal-confirmar.html', 13 templateUrl: 'foca-abm-plazos-pago-modal-confirmar.html',
14 controller: 'focaAbmPlazosPagoModalConfirmarController', 14 controller: 'focaAbmPlazosPagoModalConfirmarController',
15 animation: false, 15 animation: false,
16 backdrop: false, 16 backdrop: false,
17 resolve: {plazoPago: function(){return plazoPago;}} 17 resolve: {plazoPago: function(){return plazoPago;}}
18 }) 18 })
19 .result.then(function(plazoPago){ 19 .result.then(function(plazoPago){
20 focaAbmPlazoPagoService.borrarPlazoPago(plazoPago.id); 20 focaAbmPlazoPagoService.borrarPlazoPago(plazoPago.id);
21 $scope.plazosPago.splice( 21 $scope.plazosPago.splice(
22 $scope.plazosPago.indexOf(plazoPago), 1 22 $scope.plazosPago.indexOf(plazoPago), 1
23 ); 23 );
24 }); 24 });
25 }; 25 };
26 } 26 }
27 ]) 27 ])
28 .controller('focaAbmPlazoPagoController', [ 28 .controller('focaAbmPlazoPagoController', [
29 '$scope', 'focaAbmPlazoPagoService', 29 '$scope', 'focaAbmPlazoPagoService',
30 '$routeParams', '$location', 30 '$routeParams', '$location',
31 function( 31 function(
32 $scope, focaAbmPlazoPagoService, 32 $scope, focaAbmPlazoPagoService,
33 $routeParams, $location 33 $routeParams, $location
34 ) { 34 ) {
35 focaAbmPlazoPagoService.obtenerPlazoPago($routeParams.id) 35 focaAbmPlazoPagoService.obtenerPlazoPago($routeParams.id)
36 .then(function(datos) { 36 .then(function(datos) {
37 $scope.plazoPago = { 37 $scope.plazoPago = {
38 id: 0, 38 id: 0,
39 idPreciosCondiciones: $routeParams.idPreciosCondiciones, 39 idPreciosCondiciones: $routeParams.idPreciosCondiciones,
40 item: '', 40 item: '',
41 dias: '' 41 dias: ''
42 }; 42 };
43 if(datos.data.id) { 43 if(datos.data.id) {
44 $scope.plazoPago = datos.data; 44 $scope.plazoPago = datos.data;
45 } 45 }
46 }); 46 });
47 $scope.cancelar = function() { 47 $scope.cancelar = function() {
48 $location.path('/precio-condicion/' + $routeParams.idPreciosCondiciones); 48 $location.path('/precio-condicion/' + $routeParams.idPreciosCondiciones);
49 }; 49 };
50 $scope.guardar = function(plazoPago) { 50 $scope.guardar = function(plazoPago) {
51 focaAbmPlazoPagoService.guardarPlazoPago(plazoPago) 51 focaAbmPlazoPagoService.guardarPlazoPago(plazoPago)
52 .then(function() { 52 .then(function() {
53 $location.path('/precio-condicion/' + $routeParams.idPreciosCondiciones); 53 $location.path('/precio-condicion/' + $routeParams.idPreciosCondiciones);
54 }); 54 });
55 }; 55 };
56 } 56 }
57 ]) 57 ])
58 .controller('focaAbmPlazosPagoModalConfirmarController', [ 58 .controller('focaAbmPlazosPagoModalConfirmarController', [
59 '$uibModalInstance', '$scope', 'plazoPago', 59 '$uibModalInstance', '$scope', 'plazoPago',
60 function($uibModalInstance, $scope, plazoPago) { 60 function($uibModalInstance, $scope, plazoPago) {
61 $scope.plazoPago = plazoPago; 61 $scope.plazoPago = plazoPago;
62 $scope.cancelar = function() { 62 $scope.cancelar = function() {
63 $uibModalInstance.dismiss(); 63 $uibModalInstance.dismiss();
64 }; 64 };
65 $scope.borrar = function() { 65 $scope.borrar = function() {
66 $uibModalInstance.close(plazoPago); 66 $uibModalInstance.close(plazoPago);
67 }; 67 };
68 } 68 }
69 ]); 69 ]);
70 70
1 angular.module('focaAbmPlazoPago') 1 angular.module('focaAbmPlazoPago')
2 .config([ 2 .config([
3 '$routeProvider', 3 '$routeProvider',
4 function($routeProvider) { 4 function($routeProvider) {
5 $routeProvider.when('/plazo-pago', { 5 $routeProvider.when('/plazo-pago', {
6 controller: 'focaAbmPlazosPagoController', 6 controller: 'focaAbmPlazosPagoController',
7 templateUrl: 'foca-abm-plazos-pago-listado.html' 7 templateUrl: 'src/views/foca-abm-plazos-pago-listado.html'
8 }); 8 });
9 } 9 }
10 ]) 10 ])
11 .config([ 11 .config([
12 '$routeProvider', 12 '$routeProvider',
13 function($routeProvider) { 13 function($routeProvider) {
14 $routeProvider.when('/precio-condicion/:idPreciosCondiciones/plazo-pago/:id', { 14 $routeProvider.when('/precio-condicion/:idPreciosCondiciones/plazo-pago/:id', {
15 controller: 'focaAbmPlazoPagoController', 15 controller: 'focaAbmPlazoPagoController',
16 templateUrl: 'foca-abm-plazos-pago-item.html' 16 templateUrl: 'src/views/foca-abm-plazos-pago-item.html'
17 }); 17 });
18 } 18 }
19 ]); 19 ]);
20 20
src/views/foca-abm-plazos-pago-listado.html
1 <table class="table table-sm table-hover table-nonfluid"> 1 <table class="table table-sm table-hover table-nonfluid">
2 <tr> 2 <tr>
3 <th>Item</th> 3 <th>Item</th>
4 <th>Dias</th> 4 <th>Dias</th>
5 <th colspan="2" class="text-center"> 5 <th colspan="2" class="text-center">
6 <button class="btn btn-default" ng-click="editar(0)"> 6 <button class="btn btn-default" ng-click="editar(0, 0)">
7 <i class="fa fa-plus"></i> 7 <i class="fa fa-plus"></i>
8 </button> 8 </button>
9 </th> 9 </th>
10 </tr> 10 </tr>
11 <tr ng-repeat="plazoPago in plazosPago"> 11 <tr ng-repeat="plazoPago in plazosPago">
12 <td ng-bind="plazoPago.item"></td> 12 <td ng-bind="plazoPago.item"></td>
13 <td ng-bind="plazoPago.dias"></td> 13 <td ng-bind="plazoPago.dias"></td>
14 <td> 14 <td>
15 <button class="btn btn-default" ng-click="editar(plazoPago.id)"> 15 <button
16 class="btn btn-default"
17 ng-click="editar(plazoPago.idPreciosCondiciones, plazoPago.id)"
18 >
16 <i class="fa fa-pencil"></i> 19 <i class="fa fa-pencil"></i>
17 </button> 20 </button>
18 <button class="btn btn-default" ng-click="solicitarConfirmacion(plazoPago)"> 21 <button class="btn btn-default" ng-click="solicitarConfirmacion(plazoPago)">
19 <i class="fa fa-trash"></i> 22 <i class="fa fa-trash"></i>
20 </button> 23 </button>
21 </td> 24 </td>
22 </tr> 25 </tr>
23 </table> 26 </table>
24 27