diff --git a/admin/javascript/ModelAdmin.js b/admin/javascript/ModelAdmin.js index 0ecfe4076..a5b8a9b37 100644 --- a/admin/javascript/ModelAdmin.js +++ b/admin/javascript/ModelAdmin.js @@ -2,188 +2,8 @@ * File: ModelAdmin.js */ -/** - * Javascript handlers for generic model admin. - * - * Most of the work being done here is intercepting clicks on form submits, - * and managing the loading and sequencing of data between the different panels of - * the CMS interface. - * - * @todo add live query to manage application of events to DOM refreshes - * @todo alias the $ function instead of literal jQuery - */ (function($) { $.entwine('ss', function($){ - - ////////////////////////////////////////////////////////////////// - // Search form - ////////////////////////////////////////////////////////////////// - - /** - * Class: #ModelClassSelector select - * - * If a dropdown is used to choose between the classes, it is handled by this code - */ - $('#ModelClassSelector select').entwine({ - onmatch: function() { - // Initialise the form by calling this onchange event straight away - this.change(); - - this._super(); - }, - - /** - * Function: onchange - * - * Set up an onchange function to show the applicable form and hide all others - */ - onchange: function(e) { - var self = this; - this.find('option').each(function() { - var val = $(this).attr('value'); - $('#' + val)[(val == $(self).val()) ? 'show' : 'hide'](); - }); - } - }); - - /** - * Class: #SearchForm_holder form - * - * Submits a search filter query and attaches event handlers - * to the response table, excluding the import form because - * file ($_FILES) submission doesn't work using AJAX - * - * Note: This is used for Form_CreateForm and all Form_SearchForm_* variations - */ - $('#SearchForm_holder form').entwine({ - - /** - * Function: onsubmit - */ - onsubmit: function(e) { - // Import forms are processed without ajax - if(this.attr('id').match(/^Form_ImportForm/)) return true; - - $('.cms-editor-dialogs').closeRightPanel(); - - this.trigger('beforeSubmit'); - - var btn = $(this[0].clickedButton); - btn.addClass('loading'); - - $('.cms-content').loadForm( - this.attr('action'), - null, - function() { - btn.removeClass('loading'); - }, - {data: this.serialize()} - ); - - return false; - } - }); - - /** - * Class: a.form_frontend_function.toggle_result_assembly - * - * Column selection in search form - */ - $('a.form_frontend_function.toggle_result_assembly').entwine({ - - /** - * Function: onclick - */ - onclick: function(e) { - var toggleElement = $(this).next(); - toggleElement.toggle(); - return false; - } - }); - - /** - * Class: a.form_frontend_function.tick_all_result_assembly - */ - $('a.form_frontend_function.tick_all_result_assembly').entwine({ - /** - * Function: onclick - */ - onclick: function(e) { - var resultAssembly = $(this).prevAll('div#ResultAssembly').find('ul li input'); - resultAssembly.attr('checked', 'checked'); - return false; - } - }); - - $('a.form_frontend_function.untick_all_result_assembly').entwine({ - onclick: function(e) { - var resultAssembly = $(this).prevAll('div#ResultAssembly').find('ul li input'); - resultAssembly.removeAttr('checked'); - return false; - } - }); - - - /** - * Class: .resultsTable tbody td - * - * Table record handler for search result record - */ - $('.resultsTable tbody td').entwine({ - /** - * Function: onclick - */ - onclick: function(e) { - var firstLink = this.find('a[href]'); - if(!firstLink) return; - - if(window.History.enabled) { - $('.cms-container').loadPanel(firstLink.attr('href'), '', {selector: '.cms-content-fields form:first'}); - return false; - } - } - }); - - /** - * Class: #Form_ManagedModelsSelect - * - * Add object button - */ - $('#Form_ManagedModelsSelect').entwine({ - /** - * Function: onsubmit - */ - onsubmit: function(e) { - className = $('select option:selected', this).val(); - requestPath = this.attr('action').replace('ManagedModelsSelect', className + '/add'); - var $button = $(':submit', this); - $('.cms-content').loadForm( - requestPath, - null, - function() { - $button.removeClass('loading'); - $button = null; - } - ); - - return false; - } - }); - - /** - * Class: .cms-edit-form input[name=action_doDelete] - * - * RHS panel Delete button - */ - $('.cms-edit-form :submit[name=action_doDelete]').entwine({ - // Function: onclick - onclick: function(e) { - if(!confirm(ss.i18n._t('ModelAdmin.REALLYDELETE', 'Really delete?'))) { - this.removeClass('loading'); - return false; - } - } - }); /** * Class: .importSpec @@ -202,19 +22,5 @@ } }); - $('.cms-editor-dialogs').entwine({ - /** - * Close TinyMCE image, link or flash panel. - * this function is called everytime a new search, back or add new DataObject are clicked - **/ - closeRightPanel: function(){ - if($('.cms-editor-dialogs').is(':visible')) { - $('.cms-editor-dialogs').hide(); - $('#Form_EditorToolbarMediaForm').hide(); - $('#Form_EditorToolbarLinkForm').hide(); - } - } - - }); }); })(jQuery); \ No newline at end of file