89 lines
3.3 KiB
JavaScript
89 lines
3.3 KiB
JavaScript
/*
|
|
table edit modal component , display modal form if the show property is true
|
|
displayOption:
|
|
{
|
|
show: true/false,
|
|
}
|
|
or
|
|
2015/3/11 weita : this directive is no longer responsible for create save/cancel button,
|
|
so I added a new feature that allows the caller pass bool var for display-option
|
|
|
|
displayOption : true/false
|
|
|
|
passedForm : transclude html ngForm object, define in html. reference: https://docs.angularjs.org/api/ng/directive/form
|
|
*/
|
|
angular.module('View.Directive')
|
|
.directive('tableEditModal', function (CONSTANTS) {
|
|
return {
|
|
restrict: 'E',
|
|
scope: {
|
|
displayOption: '=displayOption',
|
|
passedForm: '='
|
|
},
|
|
transclude: true,
|
|
controller: function ($scope) {
|
|
$scope.close = function () {
|
|
if ($scope.displayOption == true) {
|
|
$scope.displayOption = false;
|
|
} else {
|
|
$scope.displayOption.show = false;
|
|
}
|
|
}
|
|
},
|
|
link: function (scope, element, attrs) {
|
|
|
|
// using $watch to find modal opening event
|
|
scope.$watch('displayOption', function (newValue, oldValue) {
|
|
|
|
if (scope.displayOption && (scope.displayOption.show == true || scope.displayOption == true)) {
|
|
|
|
// add class 'modal-open' to <body> if a modal is opening
|
|
angular.element('body').addClass('modal-open');
|
|
|
|
} else if (scope.displayOption == false || (scope.displayOption && scope.displayOption.show == false)) {
|
|
|
|
// remove class 'modal-open' from <body> if a modal is colsing
|
|
angular.element('body').removeClass('modal-open');
|
|
|
|
}
|
|
|
|
// Reset form status by $setPristine
|
|
if (scope.passedForm) {
|
|
scope.passedForm.$setPristine();
|
|
}
|
|
|
|
}, true)
|
|
},
|
|
templateUrl: CONSTANTS.TB + 'table_edit'
|
|
}
|
|
})
|
|
.directive('selectRow', function () {//
|
|
return {
|
|
controller: function ($scope) {
|
|
$scope.selectRow = {};
|
|
$scope.selectRow.toBeEdit = {};
|
|
var _selected = null;
|
|
var _selectedParent = null;
|
|
var _selectedArray = null;
|
|
$scope.selectRow.select = function (row, parent, inArray) {
|
|
if (row) {
|
|
_selected = row;
|
|
}
|
|
if (parent) {
|
|
_selectedParent = parent;
|
|
}
|
|
if (inArray) {
|
|
_selectedArray = inArray;
|
|
}
|
|
}
|
|
$scope.selectRow.getSelected = function () { return _selected; }
|
|
$scope.selectRow.getParent = function () { return _selectedParent; }
|
|
$scope.selectRow.getSelectedArray = function () { return _selectedArray; };
|
|
$scope.selectRow.getNextObj = function () {
|
|
return null;
|
|
}
|
|
$scope.selectRow.unSelect = function () { _selected = null; }
|
|
}
|
|
};
|
|
})
|