1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- Ext.define('saas.view.core.tab.Controller', {
- extend: 'Ext.app.ViewController',
- alias: 'controller.core-tab-controller',
- init: function() {
- try {
- var me = this,
- tab = me.getView(),
- viewType = tab.viewType,
- _config = tab.index,
- viewConfig = tab.viewConfig;
-
- var view = {
- _config : viewConfig,
- xtype: viewType
- };
- Ext.apply(view, viewConfig);
-
- tab.add(view);
- }catch(e) {
- console.error(e);
- }
- },
- onTabActivate: function() {
- var component = this.getView();
- var tabView = component.down('container');
- if(tabView && typeof tabView.refresh == 'function') {
- tabView.refresh();
- }
- if(!component.resetCloseClick) {
- component.tab.onCloseClick = function() {
- var me = this,
- tabView = component.down('panel');
-
- if (me.fireEvent('beforeclose', me) !== false) {
- if (me.tabBar) {
- if(tabView.fireEvent('beforeclose', tabView) !== false && tabView.promiseCloseTab && typeof tabView.promiseCloseTab == 'function') {
- tabView.promiseCloseTab()
- .then(function(close) {
- console.log();
- if(close) {
- if (me.tabBar.closeTab(me) === false) {
- return;
- }
- }
- });
- }else {
- if (me.tabBar.closeTab(me) === false) {
- return;
- }
- }
- } else {
- if(tabView.fireEvent('beforeclose', tabView) !== false && tabView.promiseCloseTab && typeof tabView.promiseCloseTab == 'function') {
- tabView.promiseCloseTab()
- .then(function(close) {
- console.log();
- if(close) {
- if (me.tabBar.closeTab(me) === false) {
- return;
- }
- }
- });
- }else {
- me.fireClose();
- }
- }
- }
- }
- component.resetCloseClick = true;
- }
- tabView && tabView.fireEvent('onTabActivate', tabView);
- },
- onTabDeactivate: function(component) {
- var tabView = component.down('container');
- tabView && tabView.fireEvent('onTabDeactivate', tabView);
- }
- });
|