| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340 |
- fred.panel.Home = function (config) {
- config = config || {};
- config.permission = config.permission || {};
-
- Ext.apply(config, {
- border: false,
- baseCls: 'modx-formpanel',
- cls: 'container',
- id: 'fred-home-panel',
- items: this.getItems(config)
- });
- fred.panel.Home.superclass.constructor.call(this, config);
- };
- Ext.extend(fred.panel.Home, MODx.Panel, {
- getHelpPath: function() {
- var defaultPath = '';
-
- var tabs = this.find('stateId', 'fred-tab-home');
- if (tabs.length !== 1) {
- return defaultPath;
- }
- tabs = tabs[0];
- var topLevelTab = tabs.getActiveTab();
- var childTab = topLevelTab.find('xtype', 'modx-vtabs');
-
- if (!topLevelTab.helpPath && (childTab.length === 1)) {
- return childTab[0].getActiveTab().helpPath || defaultPath;
- } else {
- return topLevelTab.helpPath || defaultPath;
- }
- },
-
- getItems: function(config) {
- return [
- {
- html: '<h2>' + _('fred.home.page_title') + '</h2>',
- border: false,
- cls: 'modx-page-header'
- },
- {
- xtype: 'modx-tabs',
- stateful: true,
- stateId: 'fred-tab-home',
- stateEvents: ['tabchange'],
- getState: function () {
- return {
- activeItem: this.items.indexOf(this.getActiveTab())
- };
- },
- defaults: {
- border: false,
- autoHeight: true
- },
- border: true,
- activeItem: 0,
- hideMode: 'offsets',
- items: this.getTopTabs(config)
- }
- ];
- },
-
- getTopTabs: function(config) {
- var output = [];
- var elementsTabItems = this.getElementsTab(config);
- if (elementsTabItems.length > 0) {
- output.push({
- title: _('fred.home.elements'),
- items: [
- {
- xtype: 'modx-vtabs',
- deferredRender: true,
- stateful: true,
- stateId: 'fred-tab-home-elements',
- stateEvents: ['tabchange'],
- getState: function () {
- return {
- activeItem: this.items.indexOf(this.getActiveTab())
- };
- },
- items: elementsTabItems
- }
- ]
- });
- }
-
- var blueprintsTabItems = this.getBlueprintsTab(config);
- if (blueprintsTabItems.length > 0) {
- output.push({
- title: _('fred.home.blueprints'),
- items: [
- {
- xtype: 'modx-vtabs',
- deferredRender: true,
- stateful: true,
- stateId: 'fred-tab-home-blueprints',
- stateEvents: ['tabchange'],
- getState: function () {
- return {
- activeItem: this.items.indexOf(this.getActiveTab())
- };
- },
- items: blueprintsTabItems
- }
- ]
- });
- }
-
- var themesTabItems = this.getThemesTab(config);
- if (themesTabItems.length > 0) {
- output.push({
- title: _('fred.home.themes'),
- items: [
- {
- xtype: 'modx-vtabs',
- deferredRender: true,
- stateful: true,
- stateId: 'fred-tab-home-themes',
- stateEvents: ['tabchange'],
- getState: function () {
- return {
- activeItem: this.items.indexOf(this.getActiveTab())
- };
- },
- items: themesTabItems
- }
- ]
- });
- }
-
- if (config.permission.fred_media_sources) {
- output.push({
- title: _('fred.home.media_sources'),
- helpPath: 'cmp/media_sources/',
- items: [
- {
- xtype: 'fred-grid-media-sources',
- preventRender: true,
- cls: 'main-wrapper'
- }
- ]
- });
- }
-
- return output;
- },
-
- getElementsTab: function(config) {
- var output = [];
-
- if (config.permission.fred_elements) {
- output.push({
- title: _('fred.home.elements'),
- helpPath: 'cmp/elements/',
- items: [
- {
- xtype: 'fred-grid-elements',
- preventRender: true,
- cls: 'main-wrapper',
- permission: config.permission
- }
- ]
- });
- }
-
- if (config.permission.fred_element_categories) {
- output.push({
- title: _('fred.home.element_categories'),
- helpPath: 'cmp/element_categories/',
- items: [
- {
- xtype: 'fred-grid-element-categories',
- preventRender: true,
- cls: 'main-wrapper',
- permission: config.permission
- }
- ]
- });
- }
-
- if (config.permission.fred_element_option_sets) {
- output.push({
- title: _('fred.home.option_sets'),
- helpPath: 'cmp/option_sets/',
- items: [
- {
- xtype: 'fred-grid-element-option-sets',
- preventRender: true,
- cls: 'main-wrapper',
- permission: config.permission
- }
- ]
- });
- }
-
- if (config.permission.fred_element_rtes) {
- output.push({
- title: _('fred.home.rte_configs'),
- helpPath: 'cmp/rte_configs/',
- items: [
- {
- xtype: 'fred-grid-element-rte-configs',
- preventRender: true,
- cls: 'main-wrapper',
- permission: config.permission
- }
- ]
- });
- }
-
- if (config.permission.fred_element_rebuild) {
- output.push({
- title: _('fred.home.rebuild'),
- helpPath: 'cmp/rebuild/',
- items: [
- {
- cls: 'main-wrapper',
- items: [
- {
- html: '<p>' + _('fred.rebuild.rebuild_desc') + '</p><br>'
- },
- {
- xtype: 'button',
- text: _('fred.rebuild.rebuild'),
- handler: function() {
- var topic = '/fred/mgr/generate/refresh/';
-
- var console = MODx.load({
- xtype: 'modx-console',
- register: 'mgr',
- topic: topic,
- show_filename: 0
- });
-
- console.show(Ext.getBody());
-
- MODx.Ajax.request({
- url: fred.config.connectorUrl,
- params: {
- action: 'mgr/generate/refresh',
- register: 'mgr',
- topic: topic
- },
- listeners: {
- success: {
- fn: function() {
- console.fireEvent('complete');
- console = null
- },
- scope:this
- }
- }
- });
- }
- }
- ]
- }
- ]
- });
- }
-
- return output;
- },
-
- getBlueprintsTab: function(config) {
- var output = [];
- if (config.permission.fred_blueprints) {
- output.push({
- title: _('fred.home.blueprints'),
- helpPath: 'cmp/blueprints/',
- items: [
- {
- xtype: 'fred-grid-blueprints',
- preventRender: true,
- cls: 'main-wrapper',
- permission: config.permission
- }
- ]
- });
- }
-
- if (config.permission.fred_blueprint_categories) {
- output.push({
- title: _('fred.home.blueprint_categories'),
- helpPath: 'cmp/blueprint_categories/',
- items: [
- {
- xtype: 'fred-grid-blueprint-categories',
- preventRender: true,
- cls: 'main-wrapper',
- permission: config.permission
- }
- ]
- });
- }
-
- return output;
- },
-
- getThemesTab: function(config) {
- var output = [];
- if (config.permission.fred_themes) {
- output.push({
- title: _('fred.home.themes'),
- helpPath: 'cmp/themes/',
- items: [
- {
- xtype: 'fred-grid-themes',
- preventRender: true,
- cls: 'main-wrapper',
- permission: config.permission
- }
- ]
- });
- }
-
- if (config.permission.fred_themed_templates) {
- output.push({
- title: _('fred.home.themed_templates'),
- helpPath: 'cmp/themed_templates/',
- items: [
- {
- xtype: 'fred-grid-themed-templates',
- preventRender: true,
- cls: 'main-wrapper',
- permission: config.permission
- }
- ]
- });
- }
-
- return output;
- }
- });
- Ext.reg('fred-panel-home', fred.panel.Home);
|