Commit 2898e6720b9ce107d9a1d6a2ebd11b26648998b8

Authored by Eric Fernandez
Exists in master

Merge branch 'develop' into 'master'

Develop

See merge request !8
src/js/controller.js
... ... @@ -5,26 +5,59 @@ angular.module('focaCabeceraFacturador')
5 5 function($scope, $filter) {
6 6  
7 7 $scope.showCabecera = true;
8   - $scope.cabecera = [];
  8 + $scope.cabeceras = [
  9 + cabecera = {
  10 + cabeceras: []
  11 + }
  12 + ];
9 13  
10 14 $scope.$on('addCabecera', function(event, data) {
11   - var propiedad = $filter('filter')($scope.cabecera, {label: data.label}, true);
12   - if(propiedad.length === 1) {
  15 +
  16 + var seccion = $scope.cabeceras[0];
  17 +
  18 + if (data.seccion) {
  19 + seccion = $filter('filter')($scope.cabeceras, { seccion: data.seccion }, true)[0];
  20 +
  21 + if (!seccion) {
  22 + seccion = {}
  23 + seccion.seccion = data.seccion;
  24 + seccion.cabeceras = [];
  25 + $scope.cabeceras.push(seccion);
  26 + }
  27 + }
  28 +
  29 + var propiedad = $filter('filter')(seccion.cabeceras, { label: data.label }, true);
  30 +
  31 + if (propiedad.length === 1) {
13 32 propiedad[0].valor = data.valor;
14   - }else {
15   - $scope.cabecera.push({label: data.label, valor: data.valor});
  33 + } else {
  34 + seccion.cabeceras.push({label: data.label, valor: data.valor});
16 35 }
17 36 });
18 37  
19 38 $scope.$on('removeCabecera', function(event, data) {
20   - var propiedad = $filter('filter')($scope.cabecera, {label: data}, true);
21   - if(propiedad.length === 1) {
22   - $scope.cabecera.splice($scope.cabecera.indexOf(propiedad[0]), 1);
  39 +
  40 + var seccion = $scope.cabeceras[0];
  41 + if (data.seccion) {
  42 + seccion = $filter('filter')($scope.cabeceras, { seccion: data.seccion }, true)[0];
  43 + }
  44 + var propiedad = $filter('filter')(seccion.cabeceras, {label: data}, true);
  45 + if (propiedad.length === 1) {
  46 + seccion.cabeceras.splice(seccion.cabeceras.indexOf(propiedad[0]), 1);
23 47 }
24 48 });
25 49  
26   - $scope.$on('cleanCabecera', function() {
27   - $scope.cabecera = [];
  50 + $scope.$on('cleanCabecera', function(event, data) {
  51 + if (!data) {
  52 + $scope.cabeceras = [
  53 + cabecera = {
  54 + cabeceras: []
  55 + }
  56 + ];
  57 + } else {
  58 + var seccion = $filter('filter')($scope.cabeceras, { seccion: data.seccion }, true)[0];
  59 + $scope.cabeceras.splice($scope.cabeceras.indexOf(seccion), 1)
  60 + }
28 61 });
29 62  
30 63 }]);
src/views/cabecera.html
... ... @@ -41,6 +41,12 @@
41 41 on-open-focus="false"
42 42 ng-focus="datepickerOpen = true"
43 43 />
  44 + <button
  45 + class="btn btn-xs btn-outline-light"
  46 + ng-click="datepickerAbierto = true"
  47 + >
  48 + <i class="fa fa-calendar"></i>
  49 + </button>
44 50 </div>
45 51 <div class="col-5 col-sm border border-white border-right-0 align-middle">
46 52 Hora:
... ... @@ -52,29 +58,30 @@
52 58 </span>
53 59 </div>
54 60 </div>
55   - <div class="row py-2">
56   - <div class="col-auto" ng-repeat="cab in cabecera" ng-show="showCabecera">
  61 + <div class="row py-2" ng-repeat="seccion in cabeceras" ng-show="showCabecera">
  62 + <strong ng-bind="seccion.seccion"></strong>
  63 + <div class="col-auto" ng-repeat="cab in seccion.cabeceras" ng-show="showCabecera">
57 64 <span class="label" ng-bind="cab.label"></span>
58 65 <span class="valor" ng-bind="cab.valor"></span>
59 66 </div>
60   - <a
61   - class="btn col-12 btn-secondary d-sm-none"
62   - ng-show="cabecera.length > 0"
63   - ng-click="showCabecera = !showCabecera"
64   - >
65   - <i
66   - class="fa fa-chevron-down"
67   - ng-hide="showCabecera"
68   - aria-hidden="true"
69   - >
70   - </i>
71   - <i
72   - class="fa fa-chevron-up"
73   - ng-show="showCabecera"
74   - aria-hidden="true">
75   - </i>
76   - </a>
77 67 </div>
  68 + <a
  69 + class="btn col-12 btn-secondary"
  70 + ng-show="cabeceras.length > 1"
  71 + ng-click="showCabecera = !showCabecera"
  72 + >
  73 + <i
  74 + class="fa fa-chevron-down"
  75 + ng-hide="showCabecera"
  76 + aria-hidden="true"
  77 + >
  78 + </i>
  79 + <i
  80 + class="fa fa-chevron-up"
  81 + ng-show="showCabecera"
  82 + aria-hidden="true">
  83 + </i>
  84 + </a>
78 85 </div>
79 86 </div>
80 87 </div>