72 lines
1.9 KiB
JavaScript
72 lines
1.9 KiB
JavaScript
|
/*
|
||
|
* Builder Index controller Model 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 Model = function(indexController) {
|
||
|
Base.call(this, 'model', indexController)
|
||
|
}
|
||
|
|
||
|
Model.prototype = Object.create(BaseProto)
|
||
|
Model.prototype.constructor = Model
|
||
|
|
||
|
// PUBLIC METHODS
|
||
|
// ============================
|
||
|
|
||
|
Model.prototype.cmdCreateModel = function(ev) {
|
||
|
var $target = $(ev.currentTarget)
|
||
|
|
||
|
$target.one('shown.oc.popup', this.proxy(this.onModelPopupShown))
|
||
|
|
||
|
$target.popup({
|
||
|
handler: 'onModelLoadPopup'
|
||
|
})
|
||
|
}
|
||
|
|
||
|
Model.prototype.cmdApplyModelSettings = function(ev) {
|
||
|
var $form = $(ev.currentTarget),
|
||
|
self = this
|
||
|
|
||
|
$.oc.stripeLoadIndicator.show()
|
||
|
$form.request('onModelSave').always(
|
||
|
$.oc.builder.indexController.hideStripeIndicatorProxy
|
||
|
).done(function(data){
|
||
|
$form.trigger('close.oc.popup')
|
||
|
|
||
|
self.applyModelSettingsDone(data)
|
||
|
})
|
||
|
}
|
||
|
|
||
|
// EVENT HANDLERS
|
||
|
// ============================
|
||
|
|
||
|
Model.prototype.onModelPopupShown = function(ev, button, popup) {
|
||
|
$(popup).find('input[name=className]').focus()
|
||
|
}
|
||
|
|
||
|
// INTERNAL METHODS
|
||
|
// ============================
|
||
|
|
||
|
Model.prototype.applyModelSettingsDone = function(data) {
|
||
|
if (data.builderResponseData.registryData !== undefined) {
|
||
|
var registryData = data.builderResponseData.registryData
|
||
|
|
||
|
$.oc.builder.dataRegistry.set(registryData.pluginCode, 'model-classes', null, registryData.models)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// REGISTRATION
|
||
|
// ============================
|
||
|
|
||
|
$.oc.builder.entityControllers.model = Model;
|
||
|
|
||
|
}(window.jQuery);
|