diff --git a/bin/BrickEdit.js b/bin/BrickEdit.js index 1aaa9dbec48a770a64523647179fc824df5e4ffe..02830b6cae1c620db55853d062984ee822694911 100644 --- a/bin/BrickEdit.js +++ b/bin/BrickEdit.js @@ -33,8 +33,7 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ 'css!package/quiqqer/bricks/bin/BrickEdit.css' -], function (QUI, QUIPanel, QUIConfirm, BrickAreas, QUIAjax, QUILocale, QUIFormUtils, ControlUtils, Template) -{ +], function (QUI, QUIPanel, QUIConfirm, BrickAreas, QUIAjax, QUILocale, QUIFormUtils, ControlUtils, Template) { "use strict"; var lg = 'quiqqer/bricks'; @@ -60,27 +59,24 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ projectLang: false }, - initialize: function (options) - { + initialize: function (options) { this.parent(options); - this.$availableBricks = []; + this.$availableBricks = []; this.$availableSettings = []; - this.$customfields = []; + this.$customfields = []; this.$Editor = false; - this.$Areas = false; + this.$Areas = false; this.$Active = false; this.addEvents({ onInject : this.$onInject, onCreate : this.$onCreate, onDestroy: this.$onDestroy, - onResize : function () - { + onResize : function () { var controls = QUI.Controls.getControlsInElement(this.getContent()); - controls.each(function (Control) - { + controls.each(function (Control) { if ("resize" in Control) { Control.resize(); } @@ -92,8 +88,7 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ /** * event : on create */ - $onCreate: function () - { + $onCreate: function () { this.setAttributes({ icon : 'fa fa-spinner fa-spin', title: '...' @@ -160,15 +155,13 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ /** * event : on inject */ - $onInject: function () - { + $onInject: function () { this.Loader.show(); QUIAjax.get([ 'package_quiqqer_bricks_ajax_getBrick', 'package_quiqqer_bricks_ajax_getAvailableBricks' - ], function (brick, bricks) - { + ], function (brick, bricks) { /** * @param {{availableSettings:object}} data * @param {{attributes:object}} data @@ -176,7 +169,7 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ */ this.$availableBricks = bricks; this.$availableSettings = brick.availableSettings; - this.$customfields = brick.customfields; + this.$customfields = brick.customfields; this.setAttribute('data', brick); @@ -202,8 +195,7 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ /** * event : on destroy */ - $onDestroy: function () - { + $onDestroy: function () { if (this.$Editor) { this.$Editor.destroy(); } @@ -218,32 +210,27 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ * * @return Promise */ - save: function (callback) - { + save: function (callback) { var Active = this.$Active; this.Loader.show(); this.$unload(); - return this.$load(Active).then(function () - { + return this.$load(Active).then(function () { - return new Promise(function (resolve, reject) - { + return new Promise(function (resolve, reject) { var data = this.getAttribute('data'); data.customfields = this.$customfields; - QUIAjax.post('package_quiqqer_bricks_ajax_brick_save', function () - { + QUIAjax.post('package_quiqqer_bricks_ajax_brick_save', function () { if (typeof callback === 'function') { callback(); } resolve(); - QUI.getMessageHandler().then(function (MH) - { + QUI.getMessageHandler().then(function (MH) { MH.addSuccess( QUILocale.get(lg, 'message.brick.save.success') ); @@ -267,8 +254,7 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ /** * Delete the brick */ - del: function () - { + del: function () { var self = this; new QUIConfirm({ @@ -279,12 +265,10 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ maxWidth : 600, autoclose : false, events : { - onSubmit: function (Win) - { + onSubmit: function (Win) { Win.Loader.show(); - QUIAjax.post('package_quiqqer_bricks_ajax_brick_delete', function () - { + QUIAjax.post('package_quiqqer_bricks_ajax_brick_delete', function () { Win.close(); self.fireEvent('delete'); @@ -305,12 +289,10 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ * * @return Promise */ - $load: function (Button) - { + $load: function (Button) { this.Loader.show(); - return new Promise(function (resolve, reject) - { + return new Promise(function (resolve, reject) { var Prom = false, self = this; @@ -356,14 +338,12 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ return; } - Prom.then(function () - { + Prom.then(function () { resolve(); self.Loader.hide(); - }).catch(function () - { + }).catch(function () { reject(); self.Loader.hide(); }); @@ -374,8 +354,7 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ /** * event unload category */ - $unload: function () - { + $unload: function () { if (!this.$Active) { return; } @@ -449,13 +428,10 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ * * @returns {Promise} */ - $showInformation: function () - { - return new Promise(function (resolve, reject) - { + $showInformation: function () { + return new Promise(function (resolve, reject) { - Template.get('ajax/brick/templates/information', function (result) - { + Template.get('ajax/brick/templates/information', function (result) { this.setContent(result); QUIFormUtils.setDataToForm( @@ -478,13 +454,10 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ * * @returns {Promise} */ - $showSettings: function () - { - return new Promise(function (resolve, reject) - { + $showSettings: function () { + return new Promise(function (resolve, reject) { - Template.get('ajax/brick/templates/settings', function (result) - { + Template.get('ajax/brick/templates/settings', function (result) { this.setContent(result); // areas @@ -495,9 +468,9 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ if (attributes.areas) { areas = attributes.areas - .replace(/^,*/, '') - .replace(/,*$/, '') - .split(','); + .replace(/^,*/, '') + .replace(/,*$/, '') + .split(','); } // areas @@ -577,17 +550,13 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ * * @returns {Promise} */ - $showExtras: function () - { - return new Promise(function (resolve, reject) - { + $showExtras: function () { + return new Promise(function (resolve, reject) { - Template.get('ajax/brick/templates/extras', function (result) - { + Template.get('ajax/brick/templates/extras', function (result) { this.setContent(result); - this.$createExtraData().then(function () - { + this.$createExtraData().then(function () { resolve(); }); @@ -604,17 +573,13 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ * * @returns {Promise} */ - $showContent: function () - { - return new Promise(function (resolve, reject) - { + $showContent: function () { + return new Promise(function (resolve, reject) { - Template.get('ajax/brick/templates/content', function (result) - { + Template.get('ajax/brick/templates/content', function (result) { this.setContent(result); - this.$createContentEditor().then(function () - { + this.$createContentEditor().then(function () { resolve(); }); @@ -632,10 +597,8 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ * @param {Function} [callback] * @return Promise */ - $createContentEditor: function (callback) - { - return new Promise(function (resolve) - { + $createContentEditor: function (callback) { + return new Promise(function (resolve) { var TableBody = this.$Elm.getElement('table.brick-edit-content tbody'), @@ -650,10 +613,8 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ var contenSize = this.getContent().getSize(); // load ckeditor - require(['classes/editor/Manager'], function (EditorManager) - { - new EditorManager().getEditor(null, function (Editor) - { + require(['classes/editor/Manager'], function (EditorManager) { + new EditorManager().getEditor(null, function (Editor) { this.$Editor = Editor; this.$Editor.setAttribute('showLoader', false); @@ -673,8 +634,7 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ } }).inject(TD); - this.$Editor.addEvent('onLoaded', function () - { + this.$Editor.addEvent('onLoaded', function () { if (typeof callback === 'function') { callback(); } @@ -699,10 +659,8 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ * * @return Promise */ - $createExtraData: function () - { - return new Promise(function (resolve, reject) - { + $createExtraData: function () { + return new Promise(function (resolve, reject) { var TableExtra = this.$Elm.getElement('table.brick-edit-extra-header'), TableBody = TableExtra.getElement('tbody'); @@ -731,7 +689,7 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ // extra settings for (i = 0, len = this.$availableSettings.length; i < len; i++) { - setting = this.$availableSettings[i]; + setting = this.$availableSettings[i]; extraFieldId = 'extraField_' + id + '_' + i; text = setting.text; @@ -799,15 +757,12 @@ define('package/quiqqer/bricks/bin/BrickEdit', [ ); // parse controls - QUI.parse(TableExtra).then(function () - { + QUI.parse(TableExtra).then(function () { return ControlUtils.parse(TableExtra); - }).then(function () - { + }).then(function () { // set project to the controls - TableExtra.getElements('[data-quiid]').each(function (Elm) - { + TableExtra.getElements('[data-quiid]').each(function (Elm) { var Control = QUI.Controls.getById( Elm.get('data-quiid') ); diff --git a/bin/Site/Area.js b/bin/Site/Area.js index 94e64b8d41de5e9a3b06b7f73ada0b78395db7c5..1048dd633abd396efb70e85c76e511887d3d56fb 100644 --- a/bin/Site/Area.js +++ b/bin/Site/Area.js @@ -776,6 +776,17 @@ define('package/quiqqer/bricks/bin/Site/Area', [ }, events : { onOpen: function (Win) { + var buttons = Win.$Buttons.getElements('button'); + + buttons.setStyle('float', 'right'); + buttons.set('disabled', true); + + var EditButton = new QUIButton({ + textimage: 'fa fa-edit', + text : 'Baustein bearbeiten', + disabled : true + }).inject(Win.$Buttons, 'top'); + require([ 'package/quiqqer/bricks/bin/Site/BrickEdit' ], function (BrickEdit) { @@ -789,7 +800,7 @@ define('package/quiqqer/bricks/bin/Site/Area', [ custom = JSON.decode(custom); - new BrickEdit({ + var Edit = new BrickEdit({ brickId : Select.value, Site : self.getAttribute('Site'), customfields: custom, @@ -797,6 +808,14 @@ define('package/quiqqer/bricks/bin/Site/Area', [ height: Win.getContent().getSize().y } }).inject(Win.getContent()); + + EditButton.addEvent('click', function () { + Edit.openBrick(); + Win.close(); + }); + + buttons.set('disabled', false); + EditButton.enable(); }); }, diff --git a/bin/Site/BrickEdit.js b/bin/Site/BrickEdit.js index 7501ff40039b4af22e98bca41827133a53ef6495..1395ff6bc21ec86856569b6bb6acc80699542165 100644 --- a/bin/Site/BrickEdit.js +++ b/bin/Site/BrickEdit.js @@ -62,7 +62,7 @@ define('package/quiqqer/bricks/bin/Site/BrickEdit', [ * @returns {HTMLDivElement} */ create: function () { - this.$Elm = new Element('div', { + this.$Elm = new Element('div', { 'class': 'quiqqer-bricks-site-brickedit' }); @@ -138,6 +138,7 @@ define('package/quiqqer/bricks/bin/Site/BrickEdit', [ } self.Loader.hide(); + self.Loader.hide(); }).catch(function (err) { console.error(err); @@ -161,6 +162,37 @@ define('package/quiqqer/bricks/bin/Site/BrickEdit', [ }); }.bind(this)); + }, + + /** + * Opens the brick panel + */ + openBrick: function () { + var brickId = this.getAttribute('brickId'), + projectName = '', + projectLang = ''; + + if (this.getAttribute('Site')) { + projectName = this.getAttribute('Site').getProject().getName(); + projectLang = this.getAttribute('Site').getProject().getLang(); + } + + return new Promise(function (resolve) { + require([ + 'package/quiqqer/bricks/bin/BrickEdit', + 'utils/Panels' + ], function (BrickEdit, PanelUtils) { + var Panel = new BrickEdit({ + '#id' : 'brick-edit-' + brickId, + id : brickId, + projectName: projectName, + projectLang: projectLang + }); + + PanelUtils.openPanelInTasks(Panel); + resolve(Panel); + }); + }); } }); });