diff --git a/bin/Site/Area.js b/bin/Site/Area.js index f7bbfe83d46d147521281e83453cc17a022cfd68..021c7f2080bf65cd097844fbc3592030727dcc69 100644 --- a/bin/Site/Area.js +++ b/bin/Site/Area.js @@ -780,21 +780,31 @@ define('package/quiqqer/bricks/bin/Site/Area', [ new QUIConfirm({ title : QUILocale.get(lg, 'site.area.window.settings.title'), icon : 'icon-gear', + texticon : false, maxWidth : 600, maxHeight : 400, autoclose : false, - events : + ok_button : { + text : QUILocale.get('quiqqer/system', 'save'), + textimage : 'icon-save fa fa-save' + }, + cancel_button : { + text : QUILocale.get('quiqqer/system', 'cancel'), + textimage : 'icon-remove fa fa-remove' + }, + events : { onOpen : function(Win) { - Win.Loader.show(); - require([ 'package/quiqqer/bricks/bin/Site/BrickEdit' ], function(BrickEdit) { - new BrickEdit({ - brickId : Select.value + Win.Edit = new BrickEdit({ + brickId : Select.value, + styles : { + height : Win.getContent().getSize().y + } }).inject(Win.getContent()); }); @@ -821,13 +831,16 @@ define('package/quiqqer/bricks/bin/Site/Area', [ onSubmit : function(Win) { - var Form = Win.getContent().getElement( 'form' ); + console.log(Win.Edit); - Select.set({ - 'data-inheritance' : Form.elements.inheritance.checked ? 1 : 0 - }); - Win.close(); +// var Form = Win.getContent().getElement( 'form' ); +// +// Select.set({ +// 'data-inheritance' : Form.elements.inheritance.checked ? 1 : 0 +// }); +// +// Win.close(); } } }).open(); diff --git a/bin/Site/BrickEdit.css b/bin/Site/BrickEdit.css new file mode 100644 index 0000000000000000000000000000000000000000..c95c8bcdc3f9feb752b1bff114b0912178e832fc --- /dev/null +++ b/bin/Site/BrickEdit.css @@ -0,0 +1,4 @@ +.quiqqer-bricks-site-brickedit { + float: left; + width: 100%; +} \ No newline at end of file diff --git a/bin/Site/BrickEdit.html b/bin/Site/BrickEdit.html new file mode 100644 index 0000000000000000000000000000000000000000..7333ff334f307ee8270e96ba24a52fd652b32bb7 --- /dev/null +++ b/bin/Site/BrickEdit.html @@ -0,0 +1,60 @@ + +{assign var=dataQuiKey value="data-qui"} + +<table class="data-table brick-site-edit"> + <tbody> + <tr class="odd"> + <td> + <label for="inheritance"> + {locale group="quiqqer/bricks" var="site.area.window.settings.setting.inheritance"} + </label> + </td> + <td> + <input type="checkbox" name="inheritance" id="inheritance" /> + </td> + </tr> + + {if isset($params.customfields)} + {foreach $params.customfields as $key => $field} + + {if isset($params.availableSettings.$key)} + {assign var=setting value=$params.availableSettings.$key} + <tr class="{cycle values="even,odd"}"> + <td> + <label for="{$setting.name}"> + {assign var=group value=$setting.text.0} + {assign var=val value=$setting.text.1} + {locale group=$group var=$val} + </label> + </td> + <td> + {if $setting.type == 'select'} + <select> + {foreach $setting.options as $option} + <option value=""> + {locale group=$option.text.0 value=$option.text.1} + </option> + {/foreach} + </select> + {else if $setting.type == 'checkbox'} + <input type="checkbox" + id="{$setting.name}" + class="{$setting.class}" + data-qui="{$setting.$dataQuiKey}" + /> + {else} + <input type="text" + id="{$setting.name}" + class="{$setting.class}" + data-qui="{$setting.$dataQuiKey}" + /> + {/if} + </td> + </tr> + {/if} + + {/foreach} + {/if} + + </tbody> +</table> diff --git a/bin/Site/BrickEdit.js b/bin/Site/BrickEdit.js index a5c97497bccd615185df508857f8c49b0f4558dc..71a1449779ea2c952e3c695c9c7995f3042d0c49 100644 --- a/bin/Site/BrickEdit.js +++ b/bin/Site/BrickEdit.js @@ -11,9 +11,14 @@ define('package/quiqqer/bricks/bin/Site/BrickEdit', [ 'qui/QUI', 'qui/controls/Control', - 'qui/controls/loader/Loader' + 'qui/controls/loader/Loader', + 'utils/Template', + 'utils/Controls', + 'Ajax', -], function(QUI, QUIControl, QUILoader) + 'css!package/quiqqer/bricks/bin/Site/BrickEdit.css' + +], function(QUI, QUIControl, QUILoader, Template, ControlUtils, QUIAjax) { "use strict"; @@ -24,11 +29,25 @@ define('package/quiqqer/bricks/bin/Site/BrickEdit', [ Extends: QUIControl, Type: 'package/quiqqer/bricks/bin/Site/BrickEdit', + Binds : [ + '$onInject' + ], + + options :{ + brickId : false, + Site : false + }, + initialize : function(options) { this.parent(options); this.Loader = new QUILoader(); + this.$Form = null; + + this.addEvents({ + onInject : this.$onInject + }); }, /** @@ -43,7 +62,7 @@ define('package/quiqqer/bricks/bin/Site/BrickEdit', [ }); this.Loader.inject(this.$Elm); - + this.$Form = new Element('form').inject(this.$Elm); return this.$Elm; }, @@ -53,7 +72,81 @@ define('package/quiqqer/bricks/bin/Site/BrickEdit', [ */ $onInject : function() { + if (!this.getAttribute('brickId')) { + return; + } + + if (!this.getAttribute('Site')) { + return; + } + + var self = this; + this.Loader.show(); + + this.getSettings().then(function(result) { + + console.log(result); + + return Template.get('bin/Site/BrickEdit', false, { + 'package' : 'quiqqer/bricks', + params : JSON.encode({ + customfields : result.customfields, + availableSettings : result.availableSettings + }) + }); + + }).then(function(html) { + + self.getElm().set('html', html); + + return QUI.parse(self.getElm()); + + }).then(function() { + return ControlUtils.parse(self.getElm()); + + }).then(function() { + + var i, len, Control; + var Project = self.getAttribute('Site'), + controls = self.getElm().getElements(['data-quiid']); + + for (i = 0, len = controls.length; i < len; i++) + { + console.log( controls[i] ); + + Control = QUI.Controls.getById(controls[i].get('data-quiid')); + + if (Control && "setProject" in Control) { + Control.setProject(Project); + } + } + + self.Loader.hide(); + + }).catch(function(err) { + console.error(err); + }); + }, + + /** + * Return the settings of the brick + * + * @returns {Promise} + */ + getSettings : function() + { + return new Promise(function(resolve, reject) { + + QUIAjax.get('package_quiqqer_bricks_ajax_getBrick', function(result) { + resolve(result); + }, { + 'package' : 'quiqqer/bricks', + onError : reject, + brickId : this.getAttribute('brickId') + }); + + }.bind(this)); } }); }); diff --git a/locale.xml b/locale.xml index 06112f3e7f528d7c3e32b2478509841162fc11a9..29924f18f16278c0a045678618576d3085652a70 100644 --- a/locale.xml +++ b/locale.xml @@ -188,7 +188,10 @@ <de><![CDATA[Bestimmen Sie welche Einstellung flexibel von anderen Benutzern verändert werden können.]]></de> <en><![CDATA[Determine which setting can be flexibly changed by others.]]></en> </locale> - + <locale name="site.area.window.settings.setting.inheritance"> + <de><![CDATA[Baustein wird vererbt]]></de> + <en><![CDATA[Brick is inherited]]></en> + </locale> </groups> <groups name="quiqqer/bricks" datatype="js"> <locale name="brick.type"> @@ -274,10 +277,6 @@ Möchten Sie die Bausteine aus der Bausteinzone entfernen?</p>]]></de> <de><![CDATA[Baustein-Einstellungen]]></de> <en><![CDATA[Brick settings]]></en> </locale> - <locale name="site.area.window.settings.setting.inheritance"> - <de><![CDATA[Baustein wird vererbt]]></de> - <en><![CDATA[Brick is inherited]]></en> - </locale> <locale name="manager.button.add"> <de><![CDATA[Baustein hinzufügen]]></de> <en><![CDATA[Add a Brick]]></en>