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

bricks -> own site settings

Übergeordneter 6286aea2
No related branches found
No related tags found
Keine zugehörigen Merge Requests gefunden
......@@ -354,8 +354,8 @@ define('package/quiqqer/bricks/bin/Site/Area', [
Select.set('data-inheritance', 0);
if ("inheritance" in brickData) {
Select.set( 'data-inheritance', brickData.inheritance );
if ("customfields" in brickData) {
Select.set( 'data-customfields', brickData.customfields );
}
}.bind(this));
......@@ -473,8 +473,8 @@ define('package/quiqqer/bricks/bin/Site/Area', [
for (var i = 0, len = bricks.length; i < len; i++)
{
data.push({
brickId : bricks[ i ].value,
inheritance : bricks[ i ].get( 'data-inheritance' ) == 1 ? 1 : 0
brickId : bricks[i].value,
customfields : bricks[i].get('data-customfields')
});
}
......@@ -777,6 +777,8 @@ define('package/quiqqer/bricks/bin/Site/Area', [
*/
openBrickSettingDialog : function(Select)
{
var self = this;
new QUIConfirm({
title : QUILocale.get(lg, 'site.area.window.settings.title'),
icon : 'icon-gear',
......@@ -800,54 +802,43 @@ define('package/quiqqer/bricks/bin/Site/Area', [
'package/quiqqer/bricks/bin/Site/BrickEdit'
], function(BrickEdit) {
Win.Edit = new BrickEdit({
var customfields = Select.get('data-customfields');
if (customfields) {
customfields = JSON.decode(customfields);
}
new BrickEdit({
brickId : Select.value,
styles : {
Site : self.getAttribute('Site'),
customfields : customfields,
styles : {
height : Win.getContent().getSize().y
}
}).inject(Win.getContent());
});
/*
var Content = Win.getContent();
Content.set(
'html',
'<form>' +
' <label>' +
' <input type="checkbox" name="inheritance" />' +
QUILocale.get( lg, 'site.area.window.settings.setting.inheritance' ) +
' </label>' +
'</form>'
);
var Form = Win.getContent().getElement( 'form' ),
elms = Form.elements;
elms.inheritance.checked = Select.get( 'data-inheritance' ).toInt();
*/
},
onSubmit : function(Win)
{
console.log(Win.Edit);
Win.Loader.show();
require(['qui/utils/Form'], function(QUIFormUtils) {
var Form = Win.getContent().getElement('form'),
data = QUIFormUtils.getFormData(Form);
// var Form = Win.getContent().getElement( 'form' );
//
// Select.set({
// 'data-inheritance' : Form.elements.inheritance.checked ? 1 : 0
// });
//
// Win.close();
Select.set('data-customfields', JSON.encode(data));
Win.close();
});
}
}
}).open();
},
/**
* Opens the
* Opens the settings dialog of the area
*/
openSettingsDialog : function()
{
......
<form>
{assign var=dataQuiKey value="data-qui"}
{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"}">
<table class="data-table brick-site-edit">
<tbody>
<tr class="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 for="inheritance">
{locale group="quiqqer/bricks" var="site.area.window.settings.setting.inheritance"}
</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}
<input type="checkbox" name="inheritance" id="inheritance" />
</td>
</tr>
{/if}
{/foreach}
{/if}
{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 id="{$setting.name}"
name="{$setting.name}"
>
{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}"
name="{$setting.name}"
class="{$setting.class}"
data-qui="{$setting.$dataQuiKey}"
/>
{else}
<input type="text"
id="{$setting.name}"
name="{$setting.name}"
class="{$setting.class}"
data-qui="{$setting.$dataQuiKey}"
/>
{/if}
</td>
</tr>
{/if}
{/foreach}
{/if}
</tbody>
</table>
</tbody>
</table>
</form>
\ No newline at end of file
......@@ -12,18 +12,17 @@ define('package/quiqqer/bricks/bin/Site/BrickEdit', [
'qui/QUI',
'qui/controls/Control',
'qui/controls/loader/Loader',
'qui/utils/Form',
'utils/Template',
'utils/Controls',
'Ajax',
'css!package/quiqqer/bricks/bin/Site/BrickEdit.css'
], function(QUI, QUIControl, QUILoader, Template, ControlUtils, QUIAjax)
], function(QUI, QUIControl, QUILoader, QUIFormUtils, Template, ControlUtils, QUIAjax)
{
"use strict";
var lg = 'quiqqer/bricks';
return new Class({
Extends: QUIControl,
......@@ -33,9 +32,10 @@ define('package/quiqqer/bricks/bin/Site/BrickEdit', [
'$onInject'
],
options :{
options : {
brickId : false,
Site : false
Site : false,
customfields : false
},
initialize : function(options)
......@@ -45,6 +45,8 @@ define('package/quiqqer/bricks/bin/Site/BrickEdit', [
this.Loader = new QUILoader();
this.$Form = null;
this.$globalBrickSettings = {};
this.addEvents({
onInject : this.$onInject
});
......@@ -73,10 +75,12 @@ define('package/quiqqer/bricks/bin/Site/BrickEdit', [
$onInject : function()
{
if (!this.getAttribute('brickId')) {
console.error('Missing brick-ID');
return;
}
if (!this.getAttribute('Site')) {
console.error('Missing Site');
return;
}
......@@ -84,9 +88,8 @@ define('package/quiqqer/bricks/bin/Site/BrickEdit', [
this.Loader.show();
this.getSettings().then(function(result) {
console.log(result);
this.getBrickSettings().then(function(result) {
self.$globalBrickSettings = result.settings;
return Template.get('bin/Site/BrickEdit', false, {
'package' : 'quiqqer/bricks',
......@@ -100,6 +103,18 @@ define('package/quiqqer/bricks/bin/Site/BrickEdit', [
self.getElm().set('html', html);
QUIFormUtils.setDataToForm(
self.$globalBrickSettings,
self.getElm().getElement('form')
);
if (self.getAttribute('customfields')) {
QUIFormUtils.setDataToForm(
self.getAttribute('customfields'),
self.getElm().getElement('form')
);
}
return QUI.parse(self.getElm());
}).then(function() {
......@@ -108,13 +123,12 @@ define('package/quiqqer/bricks/bin/Site/BrickEdit', [
}).then(function() {
var i, len, Control;
var Project = self.getAttribute('Site'),
controls = self.getElm().getElements(['data-quiid']);
var Project = self.getAttribute('Site').getProject(),
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) {
......@@ -134,7 +148,7 @@ define('package/quiqqer/bricks/bin/Site/BrickEdit', [
*
* @returns {Promise}
*/
getSettings : function()
getBrickSettings : function()
{
return new Promise(function(resolve, reject) {
......
......@@ -78,7 +78,10 @@ static function onSiteSave($Site)
foreach ( $bricks as $brick )
{
if ( !(int)$brick['inheritance'] ) {
if (!isset($brick['customfields'])
|| !isset($brick['customfields']['inheritance'])
|| !(int)$brick['customfields']['inheritance']
) {
continue;
}
......
......@@ -325,18 +325,31 @@ public function getBricksByArea($brickArea, Site $Site)
break;
}
$bricks[] = $brick['brickId'];
$bricks[] = $brick;
}
}
$result = array();
foreach ($bricks as $brickId) {
$brickId = (int)$brickId;
foreach ($bricks as $brickData) {
$brickId = (int)$brickData['brickId'];
try {
$result[] = $this->getBrickById($brickId)->check();
$Brick = $this->getBrickById($brickId);
if (isset($brickData['customfields'])
&& !empty($brickData['customfields'])
) {
$custom = json_decode($brickData['customfields'], true);
if ($custom) {
$Brick->setSettings($custom);
}
}
$result[] = $Brick->check();
} catch (QUI\Exception $Exception) {
QUI\System\Log::addWarning(
......@@ -435,7 +448,7 @@ public function saveBrick($brickId, array $brickData)
if (isset($brickData['customfields'])) {
$availableSettings = $Brick->getSettings();
$availableSettings['width'] = true;
$availableSettings['width'] = true;
$availableSettings['height'] = true;
foreach ($brickData['customfields'] as $customfield) {
......@@ -591,7 +604,7 @@ protected function _getInheritedBricks($brickArea, Site $Site)
foreach ($area as $brick) {
if (isset($brickIds[$brick['brickId']])) {
$result[] = $brick['brickId'];
$result[] = $brick;
}
}
......
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