details-sidenav.directive.js
Home
/
ui /
src /
app /
components /
details-sidenav.directive.js
import './details-sidenav.scss';
import detailsSidenavTemplate from './details-sidenav.tpl.html';
export default angular.module('thingsboard.directives.detailsSidenav', [])
.directive('tbDetailsSidenav', DetailsSidenav)
.name;
function DetailsSidenav($timeout) {
var linker = function (scope, element, attrs) {
if (angular.isUndefined(attrs.isReadOnly)) {
attrs.isReadOnly = false;
}
if (angular.isUndefined(scope.headerHeightPx)) {
scope.headerHeightPx = 100;
}
if (angular.isDefined(attrs.isAlwaysEdit) && attrs.isAlwaysEdit) {
scope.isEdit = true;
}
scope.toggleDetailsEditMode = function () {
if (!scope.isAlwaysEdit) {
if (!scope.isEdit) {
scope.isEdit = true;
} else {
scope.isEdit = false;
}
}
$timeout(function () {
scope.onToggleDetailsEditMode();
});
};
scope.detailsApply = function () {
$timeout(function () {
scope.onApplyDetails();
});
}
scope.closeDetails = function () {
scope.isOpen = false;
$timeout(function () {
scope.onCloseDetails();
});
};
}
return {
restrict: "E",
transclude: {
headerPane: '?headerPane',
detailsButtons: '?detailsButtons'
},
scope: {
headerTitle: '@',
headerSubtitle: '@',
headerHeightPx: '@',
isReadOnly: '=',
isOpen: '=',
isEdit: '=?',
isAlwaysEdit: '=?',
theForm: '=',
onCloseDetails: '&',
onToggleDetailsEditMode: '&',
onApplyDetails: '&'
},
link: linker,
templateUrl: detailsSidenavTemplate
};
}