86 lines
2.3 KiB
JavaScript
86 lines
2.3 KiB
JavaScript
/*
|
|
* Builder Index controller Menus entity controller
|
|
*/
|
|
+function ($) { "use strict";
|
|
|
|
if ($.oc.builder === undefined)
|
|
$.oc.builder = {}
|
|
|
|
if ($.oc.builder.entityControllers === undefined)
|
|
$.oc.builder.entityControllers = {}
|
|
|
|
var Base = $.oc.builder.entityControllers.base,
|
|
BaseProto = Base.prototype
|
|
|
|
var Menus = function(indexController) {
|
|
Base.call(this, 'menus', indexController)
|
|
}
|
|
|
|
Menus.prototype = Object.create(BaseProto)
|
|
Menus.prototype.constructor = Menus
|
|
|
|
// PUBLIC METHODS
|
|
// ============================
|
|
|
|
Menus.prototype.cmdOpenMenus = function(ev) {
|
|
var currentPlugin = this.getSelectedPlugin()
|
|
|
|
if (!currentPlugin) {
|
|
alert('Please select a plugin first')
|
|
return
|
|
}
|
|
|
|
this.indexController.openOrLoadMasterTab($(ev.target), 'onMenusOpen', this.makeTabId(currentPlugin))
|
|
}
|
|
|
|
Menus.prototype.cmdSaveMenus = function(ev) {
|
|
var $target = $(ev.currentTarget),
|
|
$form = $target.closest('form'),
|
|
$inspectorContainer = $form.find('.inspector-container')
|
|
|
|
if (!$.oc.inspector.manager.applyValuesFromContainer($inspectorContainer)) {
|
|
return
|
|
}
|
|
|
|
var menus = $.oc.builder.menubuilder.controller.getJson($form.get(0))
|
|
|
|
$target.request('onMenusSave', {
|
|
data: {
|
|
menus: menus
|
|
}
|
|
}).done(
|
|
this.proxy(this.saveMenusDone)
|
|
)
|
|
}
|
|
|
|
Menus.prototype.cmdAddMainMenuItem = function(ev) {
|
|
$.oc.builder.menubuilder.controller.addMainMenuItem(ev)
|
|
}
|
|
|
|
Menus.prototype.cmdAddSideMenuItem = function(ev) {
|
|
$.oc.builder.menubuilder.controller.addSideMenuItem(ev)
|
|
}
|
|
|
|
Menus.prototype.cmdDeleteMenuItem = function(ev) {
|
|
$.oc.builder.menubuilder.controller.deleteMenuItem(ev)
|
|
}
|
|
|
|
// INTERNAL METHODS
|
|
// ============================
|
|
|
|
Menus.prototype.saveMenusDone = function(data) {
|
|
if (data['builderResponseData'] === undefined) {
|
|
throw new Error('Invalid response data')
|
|
}
|
|
|
|
var $masterTabPane = this.getMasterTabsActivePane()
|
|
|
|
this.getIndexController().unchangeTab($masterTabPane)
|
|
}
|
|
|
|
// REGISTRATION
|
|
// ============================
|
|
|
|
$.oc.builder.entityControllers.menus = Menus;
|
|
|
|
}(window.jQuery); |