Skip to content
Code-Schnipsel Gruppen Projekte
Commit 16d0ee05 erstellt von Henning Leutz's avatar Henning Leutz :martial_arts_uniform:
Dateien durchsuchen

feat: Brick Edit über den Brick Setting Dialog möglich

Übergeordneter 29c750bf
No related branches found
No related tags found
Keine zugehörigen Merge Requests gefunden
......@@ -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')
);
......
......@@ -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();
});
},
......
......@@ -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);
});
});
}
});
});
0% oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren