First commit waiting for Budget Alert
This commit is contained in:
85
sophal/js/widget/widget.navtabs.js
Normal file
85
sophal/js/widget/widget.navtabs.js
Normal file
@ -0,0 +1,85 @@
|
||||
/*
|
||||
* Axelor Business Solutions
|
||||
*
|
||||
* Copyright (C) 2005-2019 Axelor (<http://axelor.com>).
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License, version 3,
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
(function() {
|
||||
|
||||
"use strict";
|
||||
|
||||
var ui = angular.module('axelor.ui');
|
||||
|
||||
ui.directive('uiNavTabs', function() {
|
||||
return {
|
||||
restrict: 'EA',
|
||||
replace: true,
|
||||
link: function(scope, elem, attrs) {
|
||||
|
||||
if (scope.singleTabOnly) {
|
||||
return elem.parent().addClass("view-tabs-single");
|
||||
}
|
||||
|
||||
scope.$watch('tabs.length', function navTabsWatch(value, oldValue){
|
||||
if (value != oldValue) elem.trigger('adjust:tabs');
|
||||
});
|
||||
|
||||
var menu = $();
|
||||
|
||||
setTimeout(function () {
|
||||
|
||||
elem.bsTabs();
|
||||
elem.on('contextmenu', '.nav-tabs-main > li > a', showMenu);
|
||||
|
||||
menu = elem.find('#nav-tabs-menu');
|
||||
menu.css({
|
||||
position: 'absolute',
|
||||
zIndex: 1000
|
||||
}).hide();
|
||||
});
|
||||
|
||||
function showMenu(e) {
|
||||
var tabElem = $(e.target).parents('li:first');
|
||||
var tabScope = tabElem.data('$scope');
|
||||
if (!tabScope || !tabScope.tab) {
|
||||
return;
|
||||
}
|
||||
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
scope.current = tabScope.tab;
|
||||
scope.$timeout(function () {
|
||||
var offset = elem.offset();
|
||||
menu.show().css({
|
||||
left: e.pageX - offset.left,
|
||||
top: e.pageY - offset.top
|
||||
});
|
||||
$(document).on('click.nav-tabs-menu', hideMenu);
|
||||
});
|
||||
}
|
||||
|
||||
function hideMenu(e) {
|
||||
scope.$timeout(function () {
|
||||
scope.current = null;
|
||||
menu.hide();
|
||||
});
|
||||
$(document).off('click.nav-tabs-menu');
|
||||
}
|
||||
},
|
||||
templateUrl: 'partials/nav-tabs.html'
|
||||
};
|
||||
});
|
||||
|
||||
})();
|
||||
Reference in New Issue
Block a user