CMS page JS code is tested and fixed after refactoring.

This commit is contained in:
alekseybobkov 2015-04-21 21:30:02 -07:00
parent 43784bf5b9
commit 5928aded9f
3 changed files with 39 additions and 36 deletions

View File

@ -1860,11 +1860,11 @@ return false}
self.writeProperty(this.fieldDef.property,'{{ '+val+' }}')}})
if(externalParamErrorFound){e.preventDefault()
return false}
var eH=$.Event('hiding.oc.inspector'),ispector=this
var eH=$.Event('hiding.oc.inspector'),inspector=this
this.$el.trigger(eH,[{values:this.propertyValues}])
if(eH.isDefaultPrevented()){e.preventDefault()
return false}
$.each(this.editors,function(){if(ispector.editorExternalPropertyEnabled(this))
$.each(this.editors,function(){if(inspector.editorExternalPropertyEnabled(this))
return true
if(this.validate===undefined)
return true

View File

@ -736,7 +736,7 @@
}
var eH = $.Event('hiding.oc.inspector'),
ispector = this
inspector = this
this.$el.trigger(eH, [{values: this.propertyValues}])
if (eH.isDefaultPrevented()) {
@ -745,7 +745,7 @@
}
$.each(this.editors, function() {
if (ispector.editorExternalPropertyEnabled(this))
if (inspector.editorExternalPropertyEnabled(this))
return true
if (this.validate === undefined)

View File

@ -37,8 +37,7 @@
CmsPage.prototype.registerHandlers = function() {
var $document = $(document),
$masterTabs = $('#cms-master-tabs'),
ajaxSuccessBound = this.proxy(this.onAjaxSuccess)
$masterTabs = $('#cms-master-tabs')
$masterTabs.on('closed.oc.tab', this.proxy(this.onTabClosed))
$masterTabs.on('beforeClose.oc.tab', this.proxy(this.onBeforeTabClose))
@ -50,8 +49,8 @@
$(window).on('ajaxInvalidField', this.proxy(this.ajaxInvalidField))
$document.on('open.oc.list', '#cms-side-panel', this.proxy(this.onOpenDocument))
$document.on('ajaxUpdate', '[data-control=filelist], [data-control=assetlist]', this.proxy(this.onAjaxUpdate))
$document.on('ajaxSuccess', '#cms-master-tabs form', function(event, context, data){
$document.on('ajaxError', '#cms-master-tabs form', this.proxy(this.onAjaxError))
$document.on('ajaxSuccess', '#cms-master-tabs form', this.proxy(this.onAjaxSuccess))
$document.on('click', '#cms-side-panel form button[data-control=create-template], #cms-side-panel form li a[data-control=create-template]', this.proxy(this.onCreateTemplateClick))
$document.on('click', '#cms-side-panel form button[data-control=delete-template]', this.proxy(this.onDeleteTemplateClick))
$document.on('showing.oc.inspector', '[data-inspectable]', this.proxy(this.onInspectorShowing))
@ -59,8 +58,6 @@
$document.on('hiding.oc.inspector', '[data-inspectable]', this.proxy(this.onInspectorHiding))
$document.on('click', '#cms-master-tabs > div.tab-content > .tab-pane.active .control-componentlist a.remove', this.proxy(this.onComponentRemove))
$document.on('click', '#cms-component-list [data-component]', this.proxy(this.onComponentClick))
ajaxSuccessBound(this, event, context, data)
})
}
// EVENT HANDLERS
@ -273,40 +270,42 @@
$('#cms-side-panel form').trigger('oc.list.setActiveItem', [dataId])
}
CmsPage.prototype.onAjaxSuccess = function(element, event, context, data) {
CmsPage.prototype.onAjaxSuccess = function(event, context, data) {
var element = event.target
if (data.templatePath !== undefined) {
$('input[name=templatePath]', this).val(data.templatePath)
$('input[name=templateMtime]', this).val(data.templateMtime)
$('[data-control=delete-button]', this).removeClass('hide')
$('[data-control=preview-button]', this).removeClass('hide')
$('input[name=templatePath]', element).val(data.templatePath)
$('input[name=templateMtime]', element).val(data.templateMtime)
$('[data-control=delete-button]', element).removeClass('hide')
$('[data-control=preview-button]', element).removeClass('hide')
if (data.pageUrl !== undefined)
$('[data-control=preview-button]', this).attr('href', data.pageUrl)
$('[data-control=preview-button]', element).attr('href', data.pageUrl)
}
if (data.tabTitle !== undefined) {
$('#cms-master-tabs').ocTab('updateTitle', $(this).closest('.tab-pane'), data.tabTitle)
$('#cms-master-tabs').ocTab('updateTitle', $(element).closest('.tab-pane'), data.tabTitle)
this.setPageTitle(data.tabTitle)
}
var tabId = $('input[name=templateType]', this).val() + '-'
+ $('input[name=theme]', this).val() + '-'
+ $('input[name=templatePath]', this).val();
var tabId = $('input[name=templateType]', element).val() + '-'
+ $('input[name=theme]', element).val() + '-'
+ $('input[name=templatePath]', element).val();
$('#cms-master-tabs').ocTab('updateIdentifier', $(this).closest('.tab-pane'), tabId)
$('#cms-master-tabs').ocTab('updateIdentifier', $(element).closest('.tab-pane'), tabId)
var templateType = $('input[name=templateType]', this).val()
var templateType = $('input[name=templateType]', element).val()
if (templateType.length > 0) {
$.oc.cmsPage.updateTemplateList(templateType)
if (templateType == 'layout')
this.updateLayouts(this)
this.updateLayouts(element)
}
this.updateFormEditorMode($(element).closest('.tab-pane'), false)
if (context.handler == 'onSave' && (!data['X_OCTOBER_ERROR_FIELDS'] && !data['X_OCTOBER_ERROR_MESSAGE'])) {
$(this).trigger('unchange.oc.changeMonitor')
$(element).trigger('unchange.oc.changeMonitor')
}
}
@ -314,14 +313,14 @@
if (context.handler == 'onSave') {
if (jqXHR.responseText == 'mtime-mismatch') {
event.preventDefault()
this.handleMtimeMismatch(this)
this.handleMtimeMismatch(event.target)
}
}
}
CmsPage.prototype.onCreateTemplateClick = function(event) {
var
$form = $(this).closest('[data-template-type]'),
$form = $(event.target).closest('[data-template-type]'),
type = $form.data('template-type'),
tabId = type + Math.random(),
self = this
@ -381,15 +380,17 @@
ev.stopPropagation()
}
CmsPage.prototype.onInspectorHidden = function() {
var values = $.parseJSON($('[data-inspector-values]', this).val())
CmsPage.prototype.onInspectorHidden = function(ev) {
var element = ev.target,
values = $.parseJSON($('[data-inspector-values]', element).val())
$('[name="component_aliases[]"]', this).val(values['oc.alias'])
$('span.alias', this).text(values['oc.alias'])
$('[name="component_aliases[]"]', element).val(values['oc.alias'])
$('span.alias', element).text(values['oc.alias'])
}
CmsPage.prototype.onInspectorHiding = function(e, values) {
var values = $.parseJSON($('[data-inspector-values]', this).val()),
var element = e.target,
values = $.parseJSON($('[data-inspector-values]', element).val()),
alias = values['oc.alias'],
$componentList = $('#cms-master-tabs > div.tab-content > .tab-pane.active .control-componentlist .layout'),
$cell = $(e.target).parent()
@ -398,7 +399,7 @@
if ($cell.get(0) == this)
return true
var $input = $('input[name="component_aliases[]"]', this)
var $input = $('input[name="component_aliases[]"]', element)
if ($input.val() == alias) {
e.preventDefault()
@ -409,9 +410,11 @@
}
CmsPage.prototype.onComponentRemove = function(e) {
$(this).trigger('change')
var pane = $(this).closest('.tab-pane'),
component = $(this).closest('div.layout-cell')
var element = e.currentTarget
$(element).trigger('change')
var pane = $(element).closest('.tab-pane'),
component = $(element).closest('div.layout-cell')
/*
* Remove any {% component %} tags in the editor for this component
@ -444,7 +447,7 @@
return;
}
var $component = $(this).clone(),
var $component = $(e.currentTarget).clone(),
$iconInput = $component.find('[data-component-icon]'),
$componentContainer = $('.layout-relative', $component),
$configInput = $component.find('[data-inspector-config]'),
@ -467,7 +470,7 @@
}
// Set the last alias used so dragComponents can use it
$('input[name="component_aliases[]"]', $(this)).val(alias)
$('input[name="component_aliases[]"]', $(e.currentTarget)).val(alias)
$component.attr('data-component-attached', true)
$componentContainer.addClass($iconInput.val())