diff --git a/admin/javascript/LeftAndMain.Content.js b/admin/javascript/LeftAndMain.Content.js index 35bce61dfc5..c71c878fd1d 100644 --- a/admin/javascript/LeftAndMain.Content.js +++ b/admin/javascript/LeftAndMain.Content.js @@ -2,10 +2,10 @@ $.entwine('ss', function($){ - $('.LeftAndMain .cms-content, .LeftAndMain .cms-content *').entwine({ + $('.cms-content, .cms-content *').entwine({ /** * Triggered before a new URL is loaded, typically via ajax. - * Loading itself is handled by .LeftAndMain and window.history. + * Loading itself is handled by $('.cms-container') and window.history. * * @param {String} */ @@ -37,7 +37,7 @@ * For example, a page edit form might fill the whole area, * while a ModelAdmin layout shows a search form on the left, and edit form on the right. */ - $('.LeftAndMain .cms-content').entwine({ + $('.cms-content').entwine({ onmatch: function() { var self = this; @@ -71,6 +71,9 @@ /** * Function: loadForm * + * See $('.cms-container').handleStateChange() on a frequently used alternative + * to direct ajax loading of content, with support for the window.History object. + * * Parameters: * (String) url - .. * (Function) callback - (Optional) Called after the form content as been loaded diff --git a/admin/javascript/LeftAndMain.Menu.js b/admin/javascript/LeftAndMain.Menu.js index 25186a22abb..06e76cb7551 100644 --- a/admin/javascript/LeftAndMain.Menu.js +++ b/admin/javascript/LeftAndMain.Menu.js @@ -32,7 +32,7 @@ // $(this).find('a:first').append('o'); // }); - $('.LeftAndMain').bind('afterstatechange', function(e, data) { + $('.cms-container').bind('afterstatechange', function(e, data) { var controller = data.xhr.getResponseHeader('X-Controller'); if(controller) self.find('li#Menu-' + controller).select(); }); diff --git a/admin/javascript/LeftAndMain.Ping.js b/admin/javascript/LeftAndMain.Ping.js index 79933638c45..768b00744b7 100644 --- a/admin/javascript/LeftAndMain.Ping.js +++ b/admin/javascript/LeftAndMain.Ping.js @@ -4,7 +4,7 @@ (function($) { $.entwine('ss', function($){ - $('.LeftAndMain').entwine(/** @lends ss.Form_EditForm */{ + $('.cms-container').entwine(/** @lends ss.Form_EditForm */{ /** * Variable: PingIntervalSeconds * (Number) Interval in which /Security/ping will be checked for a valid login session. diff --git a/admin/javascript/LeftAndMain.Preview.js b/admin/javascript/LeftAndMain.Preview.js index 24eeb779029..6c858345b16 100755 --- a/admin/javascript/LeftAndMain.Preview.js +++ b/admin/javascript/LeftAndMain.Preview.js @@ -2,7 +2,7 @@ $.entwine('ss', function($){ - $('.LeftAndMain .cms-preview').entwine({ + $('.cms-preview').entwine({ // Minimum width to keep the CMS operational SharedWidth: null, @@ -31,7 +31,7 @@ self._fixIframeLinks(); // Limit to CMS forms for the moment - $('.CMSMain .cms-edit-form').bind('loadnewpage', function(e, ui) { + $('.cms-edit-form').bind('loadnewpage', function(e, ui) { // var url = ui.xmlhttp.getResponseHeader('x-frontend-url'); var url = $(this).find(':input[name=StageURLSegment]').val(); if(url) self.loadUrl(url + '&cms-preview-disabled=1'); @@ -54,10 +54,12 @@ }, loadCurrentPage: function() { - var doc = this.find('iframe')[0].contentDocument, container = this.getLayoutContainer(); + var doc = this.find('iframe')[0].contentDocument, + containerEl = this.getLayoutContainer(), + contentEl = containerEl.find('.cms-content'); // Only load if we're in the "edit page" view - if(!container.hasClass('CMSMain') || container.hasClass('CMSPagesController')) return; + if(!contentEl.hasClass('CMSMain') || contentEl.hasClass('CMSPagesController') || contentEl.hasClass('CMSSettingsController')) return; // Load this page in the admin interface if appropriate var id = $(doc).find('meta[name=x-page-id]').attr('content'), contentPanel = $('.cms-content'); @@ -105,7 +107,7 @@ }, getLayoutContainer: function() { - return this.parents('.LeftAndMain'); + return this.parents('.cms-container'); }, toggle: function(bool) { @@ -113,26 +115,26 @@ } }); - $('.LeftAndMain .cms-preview.collapsed').entwine({ + $('.cms-preview.collapsed').entwine({ onmatch: function() { this.find('a').text('<'); } }); - $('.LeftAndMain .cms-preview.expanded').entwine({ + $('.cms-preview.expanded').entwine({ onmatch: function() { this.find('a').text('>'); } }); - $('.LeftAndMain .cms-preview .cms-preview-toggle').entwine({ + $('.cms-preview .cms-preview-toggle').entwine({ onclick: function(e) { e.preventDefault(); this.parents('.cms-preview').toggle(); } }); - $('.LeftAndMain .cms-switch-view a').entwine({ + $('.cms-switch-view a').entwine({ onclick: function(e) { e.preventDefault(); var preview = $('.cms-preview'); @@ -141,7 +143,7 @@ } }); - $('.LeftAndMain .cms-menu li').entwine({ + $('.cms-menu li').entwine({ onclick: function(e) { // Prevent reloading of interface when opening the edit panel if(this.hasClass('Menu-CMSMain')) { diff --git a/admin/javascript/LeftAndMain.js b/admin/javascript/LeftAndMain.js index cf9e2334dbd..c1db978ea7e 100755 --- a/admin/javascript/LeftAndMain.js +++ b/admin/javascript/LeftAndMain.js @@ -31,8 +31,6 @@ }); /** - * Class: .LeftAndMain - * * Main LeftAndMain interface with some control panel and an edit form. * * Events: @@ -40,7 +38,7 @@ * validate - ... * loadnewpage - ... */ - $('.LeftAndMain').entwine({ + $('.cms-container').entwine({ CurrentXHR: null, @@ -80,9 +78,9 @@ redraw: function() { // Not all edit forms are layouted - var editForm = this.find('.cms-edit-form[data-layout]').layout(); - this.find('.cms-content').layout(); - this.find('.cms-container').layout({resize: false}) + var editForm = $('.cms-edit-form[data-layout]').layout(); + $('.cms-content').layout(); + $('.cms-container').layout({resize: false}) }, /** @@ -114,8 +112,7 @@ // Don't allow parallel loading to avoid edge cases if(this.getCurrentXHR()) this.getCurrentXHR().abort(); - // TODO Support loading into multiple panels - var contentEl = $(state.data.selector || '.LeftAndMain .cms-content'); + var contentEl = $(state.data.selector || '.cms-content'); this.trigger('beforestatechange', {state: state}); contentEl.beforeLoad(state.url); @@ -140,20 +137,18 @@ /** * Monitor all panels for layout changes */ - $('.LeftAndMain .cms-panel').entwine({ + $('.cms-panel').entwine({ ontoggle: function(e) { - this.parents('.LeftAndMain').redraw(); + this.parents('.cms-container').redraw(); } }); /** - * Class: .LeftAndMain :submit, .LeftAndMain button, .LeftAndMain :reset - * * Make all buttons "hoverable" with jQuery theming. * Also sets the clicked button on a form submission, making it available through * a new 'clickedButton' property on the form DOM element. */ - $('.LeftAndMain :submit, .LeftAndMain button, .LeftAndMain :reset').entwine({ + $('.cms-container :submit, .cms-container button, .cms-container :reset').entwine({ onmatch: function() { // TODO Adding classes in onmatch confuses entwine var self = this; @@ -168,7 +163,7 @@ * * Link for editing the profile for a logged-in member through a modal dialog. */ - $('.LeftAndMain .profile-link').entwine({ + $('.cms-container .profile-link').entwine({ /** * Constructor: onmatch @@ -310,7 +305,7 @@ * the DOM element on creation, rather than onclick - which allows us to decorate * the field with a calendar icon */ - $('.LeftAndMain .field.date input.text').entwine({ + $('.cms-container .field.date input.text').entwine({ onmatch: function() { var holder = $(this).parents('.field.date:first'), config = holder.metadata({type: 'class'}); if(!config.showcalendar) return; diff --git a/admin/templates/LeftAndMain.ss b/admin/templates/LeftAndMain.ss index c18f953ba53..d2f56081a5f 100755 --- a/admin/templates/LeftAndMain.ss +++ b/admin/templates/LeftAndMain.ss @@ -7,7 +7,7 @@ $Title - + <% include CMSLoadingScreen %>