mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
MINOR Documentation for CMSMain.js and LeftAndMain.js
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@92633 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
5173dc42e5
commit
c5895ca834
@ -5,13 +5,22 @@
|
|||||||
var ss_MainLayout;
|
var ss_MainLayout;
|
||||||
|
|
||||||
(function($) {
|
(function($) {
|
||||||
$('body.CMSMain').concrete('ss', function($){return{
|
|
||||||
|
/**
|
||||||
|
* @class Layout handling for the main CMS interface,
|
||||||
|
* with tree on left and main edit form on the right.
|
||||||
|
* @name ss.CMSMain
|
||||||
|
*/
|
||||||
|
$('body.CMSMain').concrete('ss', function($){return
|
||||||
|
/** @lends ss.CMSMain */
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reference to jQuery.layout element
|
* Reference to jQuery.layout element
|
||||||
|
* @type Object
|
||||||
*/
|
*/
|
||||||
MainLayout: null,
|
MainLayout: null,
|
||||||
|
|
||||||
onmatch: function() {
|
onmatch: function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
@ -107,9 +116,12 @@ var ss_MainLayout;
|
|||||||
}});
|
}});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CMS-specific form behaviour
|
* @class CMS-specific form behaviour
|
||||||
|
* @name ss.EditForm
|
||||||
*/
|
*/
|
||||||
$('#Form_EditForm').concrete('ss', function($){return{
|
$('#Form_EditForm').concrete('ss', function($){return
|
||||||
|
/** @lends ss.EditForm */
|
||||||
|
{
|
||||||
onmatch: function() {
|
onmatch: function() {
|
||||||
// Alert the user on change of page-type - this might have implications
|
// Alert the user on change of page-type - this might have implications
|
||||||
// on the available form fields etc.
|
// on the available form fields etc.
|
||||||
@ -124,10 +136,13 @@ var ss_MainLayout;
|
|||||||
}});
|
}});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ParentType / ParentID field combination - mostly toggling between
|
* @class ParentID field combination - mostly toggling between
|
||||||
* the two radiobuttons and setting the hidden "ParentID" field
|
* the two radiobuttons and setting the hidden "ParentID" field
|
||||||
|
* @name ss.EditForm.ParentType
|
||||||
*/
|
*/
|
||||||
$('#Form_EditForm_ParentType').concrete('ss', function($){return{
|
$('#Form_EditForm_ParentType').concrete('ss', function($){return
|
||||||
|
/** @lends ss.EditForm.ParentType */
|
||||||
|
{
|
||||||
onmatch : function() {
|
onmatch : function() {
|
||||||
var parentTypeRootEl = $('#Form_EditForm_ParentType_root');
|
var parentTypeRootEl = $('#Form_EditForm_ParentType_root');
|
||||||
var parentTypeSubpageEl = $('#Form_EditForm_ParentType_subpage');
|
var parentTypeSubpageEl = $('#Form_EditForm_ParentType_subpage');
|
||||||
@ -156,10 +171,13 @@ var ss_MainLayout;
|
|||||||
}});
|
}});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Email containing the link to the archived version of the page.
|
* @class Email containing the link to the archived version of the page.
|
||||||
* Visible on readonly older versions of a specific page at the moment.
|
* Visible on readonly older versions of a specific page at the moment.
|
||||||
|
* @name ss.Form_EditForm_action_email
|
||||||
*/
|
*/
|
||||||
$('#Form_EditForm .Actions #Form_EditForm_action_email').concrete('ss', function($){return{
|
$('#Form_EditForm .Actions #Form_EditForm_action_email').concrete('ss', function($){return
|
||||||
|
/** @lends ss.Form_EditForm_action_email */
|
||||||
|
{
|
||||||
onclick: function(e) {
|
onclick: function(e) {
|
||||||
window.open(
|
window.open(
|
||||||
'mailto:?subject='
|
'mailto:?subject='
|
||||||
@ -174,10 +192,13 @@ var ss_MainLayout;
|
|||||||
}});
|
}});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Open a printable representation of the form in a new window.
|
* @class Open a printable representation of the form in a new window.
|
||||||
* Used for readonly older versions of a specific page.
|
* Used for readonly older versions of a specific page.
|
||||||
|
* @name ss.Form_EditForm_action_print
|
||||||
*/
|
*/
|
||||||
$('#Form_EditForm .Actions #Form_EditForm_action_print').concrete('ss', function($){return{
|
$('#Form_EditForm .Actions #Form_EditForm_action_print').concrete('ss', function($){return
|
||||||
|
/** @lends ss.Form_EditForm_action_print */
|
||||||
|
{
|
||||||
onclick: function(e) {
|
onclick: function(e) {
|
||||||
var printURL = $(this[0].form).attr('action').replace(/\?.*$/,'')
|
var printURL = $(this[0].form).attr('action').replace(/\?.*$/,'')
|
||||||
+ '/printable/'
|
+ '/printable/'
|
||||||
@ -191,9 +212,12 @@ var ss_MainLayout;
|
|||||||
}});
|
}});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A "rollback" to a specific version needs user confirmation.
|
* @class A "rollback" to a specific version needs user confirmation.
|
||||||
|
* @name ss.Form_EditForm_action_rollback
|
||||||
*/
|
*/
|
||||||
$('#Form_EditForm .Actions #Form_EditForm_action_rollback').concrete('ss', function($){return{
|
$('#Form_EditForm .Actions #Form_EditForm_action_rollback').concrete('ss', function($){return
|
||||||
|
/** @lends ss.Form_EditForm_action_rollback */
|
||||||
|
{
|
||||||
onclick: function(e) {
|
onclick: function(e) {
|
||||||
// @todo i18n
|
// @todo i18n
|
||||||
return confirm("Do you really want to copy the published content to the stage site?");
|
return confirm("Do you really want to copy the published content to the stage site?");
|
||||||
@ -201,9 +225,12 @@ var ss_MainLayout;
|
|||||||
}});
|
}});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* All forms in the right content panel should have closeable jQuery UI style titles.
|
* @class All forms in the right content panel should have closeable jQuery UI style titles.
|
||||||
|
* @name ss.contentPanel.form
|
||||||
*/
|
*/
|
||||||
$('#contentPanel form').concrete('ss', function($){return{
|
$('#contentPanel form').concrete('ss', function($){return
|
||||||
|
/** @lends ss.contentPanel.form */
|
||||||
|
{
|
||||||
onmatch: function() {
|
onmatch: function() {
|
||||||
// Style as title bar
|
// Style as title bar
|
||||||
this.find(':header:first').titlebar({
|
this.find(':header:first').titlebar({
|
||||||
@ -219,11 +246,14 @@ var ss_MainLayout;
|
|||||||
}});
|
}});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Control the site tree filter.
|
* @class Control the site tree filter.
|
||||||
* Toggles search form fields based on a dropdown selection,
|
* Toggles search form fields based on a dropdown selection,
|
||||||
* similar to "Smart Search" criteria in iTunes.
|
* similar to "Smart Search" criteria in iTunes.
|
||||||
|
* @name ss.Form_SeachTreeForm
|
||||||
*/
|
*/
|
||||||
$('#Form_SearchTreeForm').concrete('ss', function($) {return{
|
$('#Form_SearchTreeForm').concrete('ss', function($) {return
|
||||||
|
/** @lends ss.Form_SeachTreeForm */
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type DOMElement
|
* @type DOMElement
|
||||||
@ -268,6 +298,9 @@ var ss_MainLayout;
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter tree based on selected criteria.
|
||||||
|
*/
|
||||||
_submitForm: function(e) {
|
_submitForm: function(e) {
|
||||||
var self = this;
|
var self = this;
|
||||||
var data = [];
|
var data = [];
|
||||||
|
@ -1,19 +1,22 @@
|
|||||||
(function($) {
|
(function($) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Main LeftAndMain interface with some control
|
* Available Custom Events:
|
||||||
* panel and an edit form.
|
* <ul>
|
||||||
|
* <li>ajaxsubmit</li>
|
||||||
|
* <li>validate</li>
|
||||||
|
* <li>loadnewpage</li>
|
||||||
*
|
*
|
||||||
* Events:
|
* @class Main LeftAndMain interface with some control
|
||||||
* - beforeSave
|
* panel and an edit form.
|
||||||
* - afterSave
|
* @name ss.LeftAndMain
|
||||||
* - beforeValidate
|
|
||||||
* - afterValidate
|
|
||||||
*/
|
*/
|
||||||
$('.LeftAndMain').concrete('ss', function($){return{
|
$('.LeftAndMain').concrete('ss', function($){return
|
||||||
|
/** @lends ss.EditMemberProfile */
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* @type Number
|
||||||
*/
|
*/
|
||||||
PingIntervalSeconds: 5*60,
|
PingIntervalSeconds: 5*60,
|
||||||
|
|
||||||
@ -76,26 +79,19 @@
|
|||||||
}});
|
}});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base edit form, provides ajaxified saving
|
* @class Base edit form, provides ajaxified saving
|
||||||
* and reloading itself through the ajax return values.
|
* and reloading itself through the ajax return values.
|
||||||
* Takes care of resizing tabsets within the layout container.
|
* Takes care of resizing tabsets within the layout container.
|
||||||
|
* @name ss.Form_EditForm
|
||||||
*/
|
*/
|
||||||
$('#Form_EditForm').concrete('ss',function($){return{
|
$('#Form_EditForm').concrete('ss',function($){return
|
||||||
onmatch: function() {
|
/** @lends ss.Form_EditForm */
|
||||||
var self = this;
|
{
|
||||||
|
|
||||||
// artificially delay the resize event 200ms
|
|
||||||
// to avoid overlapping height changes in different onresize() methods
|
|
||||||
$(window).resize(function () {
|
|
||||||
var timerID = "timerLeftAndMainResize";
|
|
||||||
if (window[timerID]) clearTimeout(window[timerID]);
|
|
||||||
window[timerID] = setTimeout(function() {self._resizeChildren();}, 200);
|
|
||||||
});
|
|
||||||
|
|
||||||
// trigger resize whenever new tabs are shown
|
/**
|
||||||
// @todo This is called multiple times when tabs are loaded
|
* @type String HTML text to show when the form has been deleted.
|
||||||
this.find('.ss-tabset').bind('tabsshow', function() {self._resizeChildren();});
|
*/
|
||||||
},
|
RemoveHtml: null,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Suppress submission unless it is handled through ajaxSubmit()
|
* Suppress submission unless it is handled through ajaxSubmit()
|
||||||
@ -158,7 +154,9 @@
|
|||||||
* Hook in (optional) validation routines.
|
* Hook in (optional) validation routines.
|
||||||
* Currently clientside validation is not supported out of the box in the CMS.
|
* Currently clientside validation is not supported out of the box in the CMS.
|
||||||
*
|
*
|
||||||
* @return boolean
|
* @todo Placeholder implementation
|
||||||
|
*
|
||||||
|
* @return {boolean}
|
||||||
*/
|
*/
|
||||||
validate: function() {
|
validate: function() {
|
||||||
this.trigger('beforeValidate');
|
this.trigger('beforeValidate');
|
||||||
@ -194,30 +192,41 @@
|
|||||||
|
|
||||||
Behaviour.apply(); // refreshes ComplexTableField
|
Behaviour.apply(); // refreshes ComplexTableField
|
||||||
|
|
||||||
// If there's a title field and it's got a "new XX" value, focus/select that first
|
// focus input on first form element
|
||||||
// This is really a little too CMS-specific (as opposed to LeftAndMain), but the cleanup can happen after jQuery refactoring
|
this.find(':input:visible:first').focus();
|
||||||
if($('input#Form_EditForm_Title') && $('input#Form_EditForm_Title').value.match(/^new/i)) {
|
|
||||||
$('input#Form_EditForm_Title').select();
|
this.trigger('loadnewpage', {response: response});
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}});
|
}});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* All buttons in the right CMS form go through here by default.
|
* @class All buttons in the right CMS form go through here by default.
|
||||||
* We need this onclick overloading because we can't get to the
|
* We need this onclick overloading because we can't get to the
|
||||||
* clicked button from a form.onsubmit event.
|
* clicked button from a form.onsubmit event.
|
||||||
|
* @name ss.Form_EditForm.Actions.submit
|
||||||
*/
|
*/
|
||||||
$('#Form_EditForm .Actions :submit').concrete('ss', function($){return{
|
$('#Form_EditForm .Actions :submit').concrete('ss', function($){return
|
||||||
|
/** @lends ss.Form_EditForm.Actions.submit */
|
||||||
|
{
|
||||||
onclick: function(e) {
|
onclick: function(e) {
|
||||||
$(this[0].form).ajaxSubmit(this);
|
$(this[0].form).ajaxSubmit(this);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}});
|
}});
|
||||||
|
|
||||||
$('#TreeActions').concrete('ss', function($){return{
|
/**
|
||||||
|
* @class Container for tree actions like "create", "search", etc.
|
||||||
|
* @name ss.TreeActions
|
||||||
|
*/
|
||||||
|
$('#TreeActions').concrete('ss', function($){return
|
||||||
|
/** @lends ss.TreeActions */
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setup "create", "search", "batch actions" layers above tree.
|
||||||
|
* All tab contents are closed by default.
|
||||||
|
*/
|
||||||
onmatch: function() {
|
onmatch: function() {
|
||||||
// Setup "create", "search", "batch actions" layers above tree.
|
|
||||||
// All tab contents are closed by default.
|
|
||||||
this.tabs({
|
this.tabs({
|
||||||
collapsible: true,
|
collapsible: true,
|
||||||
selected: parseInt(jQuery.cookie('ui-tabs-TreeActions')) || null,
|
selected: parseInt(jQuery.cookie('ui-tabs-TreeActions')) || null,
|
||||||
@ -227,10 +236,13 @@
|
|||||||
}});
|
}});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Link for editing the profile for a logged-in member
|
* @class Link for editing the profile for a logged-in member
|
||||||
* through a modal dialog.
|
* through a modal dialog.
|
||||||
|
* @name ss.EditMemberProfile
|
||||||
*/
|
*/
|
||||||
$('a#EditMemberProfile').concrete('ss', function($){return{
|
$('a#EditMemberProfile').concrete('ss', function($){return
|
||||||
|
/** @lends ss.EditMemberProfile */
|
||||||
|
{
|
||||||
|
|
||||||
onmatch: function() {
|
onmatch: function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
Loading…
Reference in New Issue
Block a user