Skip to content

Commit e0d2465

Browse files
feat(4839) conchadas
1 parent 6fcd165 commit e0d2465

File tree

4 files changed

+118
-124
lines changed

4 files changed

+118
-124
lines changed

dist/lets.min.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/directives/crud/lets-crud-filter.directive.js

Lines changed: 67 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33

44
angular.module('letsAngular').directive('crudFilter', crudFilter);
55

6-
crudFilter.$inject = ['$q', 'Restangular', '$timeout', '$rootScope','swangular'];
6+
crudFilter.$inject = ['$q', 'Restangular', '$timeout', '$rootScope', 'swangular'];
77

8-
function crudFilter($q, Restangular, $timeout, $rootScope,swangular) {
8+
function crudFilter($q, Restangular, $timeout, $rootScope, swangular) {
99
return {
1010
templateUrl: 'lets/views/crud/crud-filter.html',
1111
replace: true,
@@ -237,95 +237,87 @@
237237
delete scope.data['showBuscaAvancada'];
238238
}
239239

240-
if (scope.showBuscaAvancada || scope.data['showBusca']) {
241-
fields.forEach(function (field, idx) {
242-
if (typeof field.filter == 'object' && field.filter.range === true) {
243-
var values = {};
244-
245-
if (scope.data[field.name]) {
246-
if (field.type == 'date') {
247-
values.ini = scope.data[field.name].startDate;
248-
values.fim = scope.data[field.name].endDate;
249-
// console.log('showBuscaValue', values);
250-
// console.log('showBuscascope', scope);
251-
252-
values.ini = scope.getDateFormated(values.ini);
253-
values.fim = scope.getDateFormated(values.fim);
254-
if (Object.keys(values).length > 0) {
255-
// filterData[field.name + '_ini'] = values.ini;
256-
// filterData[field.name + '_fim'] = values.fim;
257-
delete filterData[field.name];
258-
filterData[field.name] = values;
259-
260-
// console.log({values: values}, filterData);
261-
// filterData[field.name] = values;
262-
}
263-
} else if (field.type == 'olddate') {
264-
if (scope.data[field.name + '_ini']) {
265-
values.ini = scope.data[field.name + '_ini'];
266-
if (field.type == 'date') {
267-
values.ini = scope.getDateFormated(values.ini);
268-
}
269-
}
270-
271-
if (scope.data[field.name + '_fim']) {
272-
values.fim = scope.data[field.name + '_fim'];
273-
if (field.type == 'date') {
274-
values.fim = scope.getDateFormated(values.fim);
275-
}
240+
fields.forEach(function (field, idx) {
241+
if (typeof field.filter == 'object' && field.filter.range === true) {
242+
var values = {};
243+
244+
if (scope.data[field.name]) {
245+
if (field.type == 'date') {
246+
values.ini = scope.data[field.name].startDate;
247+
values.fim = scope.data[field.name].endDate;
248+
// console.log('showBuscaValue', values);
249+
// console.log('showBuscascope', scope);
250+
251+
values.ini = scope.getDateFormated(values.ini);
252+
values.fim = scope.getDateFormated(values.fim);
253+
if (Object.keys(values).length > 0) {
254+
// filterData[field.name + '_ini'] = values.ini;
255+
// filterData[field.name + '_fim'] = values.fim;
256+
delete filterData[field.name];
257+
filterData[field.name] = values;
258+
259+
// console.log({values: values}, filterData);
260+
// filterData[field.name] = values;
261+
}
262+
} else if (field.type == 'olddate') {
263+
if (scope.data[field.name + '_ini']) {
264+
values.ini = scope.data[field.name + '_ini'];
265+
if (field.type == 'date') {
266+
values.ini = scope.getDateFormated(values.ini);
276267
}
268+
}
277269

278-
if (Object.keys(values).length > 0) {
279-
filterData[field.name] = values;
270+
if (scope.data[field.name + '_fim']) {
271+
values.fim = scope.data[field.name + '_fim'];
272+
if (field.type == 'date') {
273+
values.fim = scope.getDateFormated(values.fim);
280274
}
281275
}
282-
}
283276

284-
285-
if (scope.data[field.name + '_ini']) {
286-
values.ini = scope.data[field.name + '_ini'];
287-
if (field.type == 'date') {
288-
values.ini = scope.getDateFormated(values.ini);
277+
if (Object.keys(values).length > 0) {
278+
filterData[field.name] = values;
289279
}
290280
}
281+
}
291282

292-
if (scope.data[field.name + '_fim']) {
293-
values.fim = scope.data[field.name + '_fim'];
294-
if (field.type == 'date') {
295-
values.fim = scope.getDateFormated(values.fim);
296-
}
283+
if (scope.data[field.name + '_ini']) {
284+
values.ini = scope.data[field.name + '_ini'];
285+
if (field.type == 'date') {
286+
values.ini = scope.getDateFormated(values.ini);
297287
}
288+
}
298289

299-
if (Object.keys(values).length > 0) {
300-
filterData[field.name] = values;
290+
if (scope.data[field.name + '_fim']) {
291+
values.fim = scope.data[field.name + '_fim'];
292+
if (field.type == 'date') {
293+
values.fim = scope.getDateFormated(values.fim);
301294
}
295+
}
302296

303-
} else if (scope.data[field.name]) {
297+
if (Object.keys(values).length > 0) {
298+
filterData[field.name] = values;
299+
}
300+
} else if (scope.data[field.name]) {
301+
filterData[field.name] = scope.data[field.name];
302+
if (field.customOptions && field.customOptions.telefone) {
303+
filterData[field.name] = scope.data[field.name].replace(/\D/g, '');
304+
} else if (field.type == 'olddate') {
305+
filterData[field.name] = scope.getDateFormated(filterData[field.name]);
306+
} else if (field.type == 'date' && field.filter && field.filter.range != true) {
307+
// console.log({field: field});
308+
filterData[field.name] = scope.getDateFormated(filterData[field.name]);
309+
} else if (field.autocomplete && !field.customOptions.multiselect && scope.data[field.name + '.label']) {
310+
filterData[field.name + '_label'] = scope.data[field.name + '.label'].label;
311+
} else if (field.autocomplete && field.customOptions.multiselect) {
304312
filterData[field.name] = scope.data[field.name];
305-
if (field.customOptions && field.customOptions.telefone) {
306-
filterData[field.name] = scope.data[field.name].replace(/\D/g, '');
307-
} else if (field.type == 'olddate') {
308-
filterData[field.name] = scope.getDateFormated(filterData[field.name]);
309-
} else if (field.type == 'date' && field.filter && field.filter.range != true) {
310-
// console.log({field: field});
311-
filterData[field.name] = scope.getDateFormated(filterData[field.name]);
312-
} else if (field.autocomplete && !field.customOptions.multiselect && scope.data[field.name + '.label']) {
313-
filterData[field.name + '_label'] = scope.data[field.name + '.label'].label;
314-
} else if (field.autocomplete && field.customOptions.multiselect) {
315-
filterData[field.name] = scope.data[field.name];
316-
}
317313
}
318-
});
319-
scope.data.q = null;
314+
}
315+
});
320316

321-
scope.objFilter = {data: {filter: filterData}};
322-
} else {
323-
filterData.q = scope.data.q;
324-
filterData.p = scope.data.p;
325-
scope.objFilter = {data: filterData};
326-
}
317+
if (scope.data.q) filterData['q'] = angular.copy(scope.data.q);
318+
scope.objFilter = {data: {filter: filterData}};
327319

328-
if(scope.$parent.headers && scope.$parent.headers.loading) swangular.showLoading()
320+
if (scope.$parent.headers && scope.$parent.headers.loading) swangular.showLoading();
329321
if (start) {
330322
$rootScope.$broadcast('refreshGRID', false, true);
331323
}

src/directives/crud/lets-crud-list.directive.js

Lines changed: 46 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
angular.module('letsAngular').directive('crudList', crudList);
55

6-
crudList.$inject = ['$window', 'jQuery', 'Backbone', 'Backgrid', 'appSettings', 'fwObjectService', '$timeout', '$state','swangular'];
6+
crudList.$inject = ['$window', 'jQuery', 'Backbone', 'Backgrid', 'appSettings', 'fwObjectService', '$timeout', '$state', 'swangular'];
77

88
function crudList($window, jQuery, Backbone, Backgrid, appSettings, fwObjectService, $timeout, $state, swangular) {
99
return {
@@ -16,7 +16,10 @@
1616
$scope.route = null;
1717

1818
$scope.$on('refreshGRID', function (event, start, filter) {
19-
$scope.pageableCRUDModel.fetch(null, start, filter);
19+
$scope.pageableCRUDModel.fetch({
20+
error:function () {
21+
swangular.close();
22+
}}, start, filter);
2023
});
2124
},
2225
link: function (scope, $el, attrs) {
@@ -38,8 +41,8 @@
3841
pageSize: 20,
3942
},
4043
mode: 'server',
41-
parseRecords: function (resp, options) {
42-
if(settings && settings.loading) swangular.close()
44+
parseRecords: function (resp, options) {
45+
if (settings && settings.loading) swangular.close();
4346

4447
scope.$emit('filtered-data', resp, scope);
4548

@@ -497,51 +500,50 @@
497500
pageableCRUDModel.state.currentPage = parseInt(params.p);
498501
}
499502

500-
if (params.q) {
501-
$scopeFilter.data.q = params.q;
502-
// $scopeFilter.objFilter = {data:params};
503-
} else {
504-
$scopeFilter = $scopeFilter || {};
505-
var showBusca = false;
503+
$scopeFilter.data.q = params.q;
506504

507-
Object.keys(params).forEach(function (par) {
508-
if (par.split('_label').length > 1) {
509-
$scopeFilter.data[par.replace('_label', '') + '.label'] = {id: params[par.replace('_label', '')], label: params[par]};
510-
} else {
511-
// console.log('BREKA ->', params[par], params, par);
512-
var _field = settings.fields.find(function(el){return el.name == par})
513-
514-
if (typeof params[par] == 'object') {
515-
for (var key in params[par]) {
516-
if (key == 'ini' || key == 'fim') {
517-
$scopeFilter.data[par + '_' + key] = _field && _field.type == 'date' ? moment(params[par][key], 'DD/MM/YYYY').toDate() : params[par][key];
518-
if (key == 'ini') {
519-
$scopeFilter.data[par] = $scopeFilter.data[par] ? $scopeFilter.data[par] : {};
520-
if(_field && _field.type == 'date') $scopeFilter.data[par]['startDate'] = moment(params[par][key], 'DD/MM/YYYY').toDate();
521-
}
522-
if (key == 'fim') {
523-
$scopeFilter.data[par] = $scopeFilter.data[par] ? $scopeFilter.data[par] : {};
524-
525-
if(_field && _field.type == 'date') $scopeFilter.data[par]['endDate'] = moment(params[par][key], 'DD/MM/YYYY').toDate();
526-
}
527-
} else if (params[par][key].id && params[par][key].label) {
528-
$scopeFilter.data[par] = params[par];
529-
} else {
530-
$scopeFilter.data[par] = $scopeFilter.data[par] || {};
531-
$scopeFilter.data[par][key] = params[par][key];
505+
$scopeFilter = $scopeFilter || {};
506+
var showBusca = false;
507+
508+
Object.keys(params).forEach(function (par) {
509+
if (par.split('_label').length > 1) {
510+
$scopeFilter.data[par.replace('_label', '') + '.label'] = {id: params[par.replace('_label', '')], label: params[par]};
511+
} else {
512+
// console.log('BREKA ->', params[par], params, par);
513+
var _field = settings.fields.find(function (el) {
514+
return el.name == par;
515+
});
516+
517+
if (typeof params[par] == 'object') {
518+
for (var key in params[par]) {
519+
if (key == 'ini' || key == 'fim') {
520+
$scopeFilter.data[par + '_' + key] = _field && _field.type == 'date' ? moment(params[par][key], 'DD/MM/YYYY').toDate() : params[par][key];
521+
if (key == 'ini') {
522+
$scopeFilter.data[par] = $scopeFilter.data[par] ? $scopeFilter.data[par] : {};
523+
if (_field && _field.type == 'date') $scopeFilter.data[par]['startDate'] = moment(params[par][key], 'DD/MM/YYYY').toDate();
524+
}
525+
if (key == 'fim') {
526+
$scopeFilter.data[par] = $scopeFilter.data[par] ? $scopeFilter.data[par] : {};
527+
528+
if (_field && _field.type == 'date') $scopeFilter.data[par]['endDate'] = moment(params[par][key], 'DD/MM/YYYY').toDate();
532529
}
530+
} else if (params[par][key].id && params[par][key].label) {
531+
$scopeFilter.data[par] = params[par];
532+
} else {
533+
$scopeFilter.data[par] = $scopeFilter.data[par] || {};
534+
$scopeFilter.data[par][key] = params[par][key];
533535
}
534-
// $scopeFilter.data[par+"_ini"] = moment(params[par].ini, 'DD/MM/YYYY').toDate();
535-
// $scopeFilter.data[par+"_fim"] = moment(params[par].fim, 'DD/MM/YYYY').toDate();
536-
} else {
537-
$scopeFilter.data[par] = params[par];
538536
}
537+
// $scopeFilter.data[par+"_ini"] = moment(params[par].ini, 'DD/MM/YYYY').toDate();
538+
// $scopeFilter.data[par+"_fim"] = moment(params[par].fim, 'DD/MM/YYYY').toDate();
539+
} else {
540+
$scopeFilter.data[par] = params[par];
539541
}
540-
if (par != 'p') showBusca = true;
541-
});
542-
$scopeFilter.data['showBusca'] = showBusca;
543-
// $scopeFilter.objFilter = {data:{filter:params}};
544-
}
542+
}
543+
if (par != 'p') showBusca = true;
544+
});
545+
$scopeFilter.data['showBusca'] = showBusca;
546+
// $scopeFilter.objFilter = {data:{filter:params}};
545547

546548
$scopeFilter.filterData(false); //Estava sendo recursivo isso
547549
}

src/views/crud/crud-filter.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<div class="busca row" ng-if="!hideInputSearch">
44
<div class="form-group col-sm-3" style="margin-bottom: 10px;">
55
<div class="fw-input-group input-group">
6-
<input autocomplete="off" type="text" class="form-control" name="q" ng-model="data['q']" ng-disabled="showBuscaAvancada" placeholder="Buscar por..."/>
6+
<input autocomplete="off" type="text" class="form-control" name="q" ng-model="data['q']" placeholder="Buscar por..."/>
77
<span class="input-group-btn" ng-if="fieldsFilter.length > 0">
88
<button type="button" class="btn btn-default" title="Busca Avançada" ng-click="openBuscaAvancada()">
99
<i class="glyphicon" ng-class="{'glyphicon-plus': !showBuscaAvancada, 'glyphicon-minus': showBuscaAvancada}"></i>

0 commit comments

Comments
 (0)