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

fix: php brick id patch -> php binary shell exe fixed

Übergeordnete f440df71 617c2a8c
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
Keine zugehörigen Merge Requests gefunden
werden angezeigt mit 1059 Ergänzungen und 541 Löschungen
<?php
/**
* This file contains package_quiqqer_bricks_ajax_brick_save
*/
/**
* saves the brick
*
* @param string|Integer $brickId - Brick-ID
* @param string $title - title of the new brick
* @param string $description - description of the new brick
*
* @return array
*/
QUI::$Ajax->registerFunction(
'package_quiqqer_bricks_ajax_brick_copy',
function ($brickId, $params) {
$BrickManager = QUI\Bricks\Manager::init();
$newId = $BrickManager->copyBrick(
$brickId,
json_decode($params, true)
);
return $BrickManager->getBrickById($newId)->getAttributes();
},
array('brickId', 'params'),
'Permission::checkAdminUser'
);
......@@ -18,9 +18,9 @@ function ($brickId) {
$Brick = $BrickManager->getBrickById($brickId);
return array(
'attributes' => $Brick->getAttributes(),
'settings' => $Brick->getSettings(),
'customfields' => $Brick->getCustomFields(),
'attributes' => $Brick->getAttributes(),
'settings' => $Brick->getSettings(),
'customfields' => $Brick->getCustomFields(),
'availableSettings' => $BrickManager->getAvailableBrickSettingsByBrickType(
$Brick->getAttribute('type')
)
......
<?php
/**
* This file contains package_quiqqer_bricks_ajax_getPanelCategories
*/
/**
* Returns the Brick categories for a brick panel
*
* @param {String|Integer} $brickId - Brick-ID
* @return array
*/
QUI::$Ajax->registerFunction(
'package_quiqqer_bricks_ajax_getPanelCategories',
function ($brickId) {
$categories = QUI\Bricks\Panel::getInstance()->getCategoriesFromBrick($brickId);
foreach ($categories as $key => $category) {
unset($categories[$key]['items']);
}
return $categories;
},
array('brickId'),
'Permission::checkAdminUser'
);
<?php
/**
* Return a xml category
*
* @param array $file - list of xml files
* @param $category
* @return String
*/
QUI::$Ajax->registerFunction(
'package_quiqqer_bricks_ajax_getPanelCategory',
function ($brickId, $category) {
return QUI\Bricks\Panel::getInstance()->getCategoryFromBrick($brickId, $category);
},
array('brickId', 'category'),
'Permission::checkAdminUser'
);
......@@ -5,6 +5,16 @@
width: 100%;
}
.quiqqer-bricks-container {
float: left;
position: relative;
width: 100%;
}
.brick-edit-content {
margin-bottom: 0;
}
.quiqqer-bricks-brickedit label {
clear: both;
float: left;
......
Dieser Diff ist reduziert.
/**
* Main bricks handler
*/
define('package/quiqqer/bricks/bin/Bricks', [
'package/quiqqer/bricks/bin/classes/Bricks'
], function (Bricks) {
"use strict";
return new Bricks();
});
\ No newline at end of file
/**
*
* @module package/quiqqer/bricks/bin/Controls/ContentSwitcher
*
* @require qui/controls/elements/FormList
* @require css!package/quiqqer/bricks/bin/Controls/ContentSwitcher.css
* @author www.pcsg.de (Henning Leutz)
*/
define('package/quiqqer/bricks/bin/Controls/ContentSwitcher', [
'qui/controls/elements/FormList',
'utils/Controls',
'Locale',
'css!package/quiqqer/bricks/bin/Controls/ContentSwitcher.css'
], function (QUIFormList) {
], function (QUIFormList, QUIControls, QUILocale) {
"use strict";
var lg = 'quiqqer/bricks';
return new Class({
Extends : QUIFormList,
Type : 'package/quiqqer/bricks/bin/Controls/ContentSwitcher',
Extends: QUIFormList,
Type : 'package/quiqqer/bricks/bin/Controls/ContentSwitcher',
Binds: [
'$onParsed'
],
initialize : function (options) {
initialize: function (options) {
this.parent(options);
this.setAttribute(
'entry',
'<div class="quiqqer-bricks-ContentSwitcher-entry">' +
'<label>' +
'<span class="entry-title">Bild</span>' +
'<input type="text" class="media-image" name="img" />' +
'</label>' +
'<label>' +
'<span class="entry-title">Überschrift</span>' +
'<input type="text" name="title" />' +
'</label>' +
'<label>' +
'<span class="entry-title">Text</span>' +
'<textarea name="content" rows="10"></textarea>' +
'</label>' +
'</div>'
);
this.addEvents({
onParsed : this.$onParsed
});
this.setAttributes({
buttonText: QUILocale.get(lg, 'contentSwitcher.entries.button.text'),
entry: '<div class="quiqqer-bricks-ContentSwitcher-entry" style="display: none;">' +
'<label class="entry-image">' +
'<span class="entry-title">' +
QUILocale.get(lg, 'contentSwitcher.entries.entry.picture') +
'</span>' +
'<input class="media-image" data-qui-options-selectable_types="image" name="img"/>' +
'</label>' +
'<label>' +
'<span class="entry-title">' +
QUILocale.get(lg, 'contentSwitcher.entries.entry.title') +
'</span>' +
'<input type="text" name="title" />' +
'</label>' +
'<label>' +
'<span class="entry-title">' +
QUILocale.get(lg, 'contentSwitcher.entries.entry.content') +
'</span>' +
'<textarea name="content" rows="10"></textarea>' +
'</label>' +
'</div>'
});
},
/**
* Parses QUI controls when a new entry is created
*
* Fired after (inherited) FormList has parsed the content
*
* @param event
* @param Element - The element that was previously parsed by (inherited) FormList
*/
$onParsed: function (event, Element) {
Element.getElement('.quiqqer-bricks-ContentSwitcher-entry').show();
//
// QUIControls.parse(Element).then(function () {
// // Element is fully parsed so we can finally show it
// Element.getElement('.quiqqer-bricks-ContentSwitcher-entry').show();
// });
}
});
});
......
......@@ -3,10 +3,6 @@
* @author www.pcsg.de (Henning Leutz)
*
* Promo Slider - Slider für eye catching Sachen
*
* @require qui/QUI
* @require qui/controls/Control
* @require URL_OPT_DIR + bin/hammerjs/hammer.min.js
*/
define('package/quiqqer/bricks/bin/Controls/Slider/Promoslider', [
......@@ -95,7 +91,7 @@ define('package/quiqqer/bricks/bin/Controls/Slider/Promoslider', [
self.show(event.target.get('data-no'));
};
var i, len, Dot;
for (i = 0, len = desktopSlides.length; i < len; i++) {
......@@ -110,6 +106,10 @@ define('package/quiqqer/bricks/bin/Controls/Slider/Promoslider', [
Dot.inject(this.$DotsDesktop);
this.$desktopdots.push(Dot);
if (desktopSlides[i].get('data-href') && desktopSlides[i].get('data-href') !== '') {
desktopSlides[i].setStyle('cursor', 'pointer');
}
}
if (typeof this.$desktopdots[0] !== 'undefined') {
......@@ -130,6 +130,10 @@ define('package/quiqqer/bricks/bin/Controls/Slider/Promoslider', [
Dot.inject(this.$DotsMobile);
this.$mobiledots.push(Dot);
if (mobileSlides[i].get('data-href') && mobileSlides[i].get('data-href') !== '') {
mobileSlides[i].setStyle('cursor', 'pointer');
}
}
if (typeof this.$mobiledots[0] !== 'undefined') {
......@@ -141,7 +145,7 @@ define('package/quiqqer/bricks/bin/Controls/Slider/Promoslider', [
// keyboard events
document.addEvent('keyup', function (event) {
if (event.key == 'left') {
if (event.key === 'left') {
self.prev();
return;
}
......@@ -149,18 +153,28 @@ define('package/quiqqer/bricks/bin/Controls/Slider/Promoslider', [
self.next();
});
// slide clicks
var slideClick = function () {
if (this.get('data-href') && this.get('data-href') !== '') {
window.location = this.get('data-href');
}
};
desktopSlides.addEvent('click', slideClick);
mobileSlides.addEvent('click', slideClick);
// touch events
if (this.getAttribute('touch')) {
this.$Touch = new Hammer(this.getElm());
this.$Touch.on('swipe', function (ev) {
if (ev.offsetDirection == 4) {
if (ev.offsetDirection === 4) {
self.prev();
return;
}
if (ev.offsetDirection == 2) {
if (ev.offsetDirection === 2) {
self.next();
}
});
......@@ -283,8 +297,8 @@ define('package/quiqqer/bricks/bin/Controls/Slider/Promoslider', [
if (slideNo < 0) {
slideNo = Elm.getElements(
'.quiqqer-bricks-promoslider-slide'
).length - 1;
'.quiqqer-bricks-promoslider-slide'
).length - 1;
}
return this.show(slideNo);
......@@ -409,11 +423,9 @@ define('package/quiqqer/bricks/bin/Controls/Slider/Promoslider', [
this.$hideSheetToLeft(Current).then(function () {
return this.$showSheetFromRight(Slide);
}.bind(this)).then(function () {
resolve();
this.$running = false;
}.bind(this));
}.bind(this));
......@@ -530,7 +542,7 @@ define('package/quiqqer/bricks/bin/Controls/Slider/Promoslider', [
return new Promise(function (resolve) {
(function () {
if (Node.getStyle('position') == 'absolute') {
if (Node.getStyle('position') === 'absolute') {
var oldPos = Node.getStyle('left').toInt();
moofx(Node).animate({
......@@ -580,7 +592,7 @@ define('package/quiqqer/bricks/bin/Controls/Slider/Promoslider', [
return new Promise(function (resolve) {
(function () {
if (Node.getStyle('position') == 'absolute') {
if (Node.getStyle('position') === 'absolute') {
var origLeft = Node.getStyle('left').toInt();
Node.setStyle('left', origLeft + 50);
......
.dialog-bricks-copy {
margin-top: 20px;
}
.dialog-bricks-copy .data-table-flexbox {
border: none;
}
.dialog-bricks-copy .data-table-flexbox td {
padding-left: 0;
padding-right: 0;
}
.dialog-bricks-copy [name="description"] {
height: 100px;
}
\ No newline at end of file
{{text}}
<form class="dialog-bricks-copy" action="" method="POST">
<table class="data-table data-table-flexbox">
<tbody>
<tr>
<td>
<label class="field-container">
<span class="field-container-item">Sprache</span>
<span class="dialog-bricks-copy-languages field-container-field field-container-field-no-padding"></span>
</label>
</td>
</tr>
<tr>
<td>
<label class="field-container">
<span class="field-container-item">Titel</span>
<input name="title" class="field-container-field"/>
</label>
</td>
</tr>
<tr>
<td>
<label class="field-container">
<span class="field-container-item">Beschreibung</span>
<textarea name="description" class="field-container-field"></textarea>
</label>
</td>
</tr>
</tbody>
</table>
</form>
......@@ -16,10 +16,15 @@ define('package/quiqqer/bricks/bin/Manager', [
'Locale',
'Projects',
'Ajax',
'package/quiqqer/bricks/bin/Bricks',
'Mustache',
'text!package/quiqqer/bricks/bin/Manager.Copy.html',
'css!package/quiqqer/bricks/bin/Manager.Copy.css',
'css!package/quiqqer/bricks/bin/Manager.css'
], function (QUI, QUIPanel, QUISelect, QUIButton, QUISeparator, QUIConfirm, Grid, QUILocale, Projects, Ajax) {
], function (QUI, QUIPanel, QUISelect, QUIButton, QUISeparator, QUIConfirm, Grid, QUILocale, Projects, Ajax,
Bricks, Mustache, templateCopy) {
"use strict";
var lg = 'quiqqer/bricks';
......@@ -36,9 +41,12 @@ define('package/quiqqer/bricks/bin/Manager', [
'$onCreate',
'$onResize',
'$openCreateDialog',
'$openCopyDialog',
'$openDeleteDialog',
'$onDblClick',
'$onClick'
'$onClick',
'$onInject',
'$onDestroy'
],
options: {
......@@ -53,8 +61,10 @@ define('package/quiqqer/bricks/bin/Manager', [
this.$ProjectLangs = false;
this.addEvents({
onCreate: this.$onCreate,
onResize: this.$onResize
onCreate : this.$onCreate,
onResize : this.$onResize,
onInject : this.$onInject,
onDestroy: this.$onDestroy
});
},
......@@ -74,7 +84,7 @@ define('package/quiqqer/bricks/bin/Manager', [
this.Loader.show();
this.getBricksFromProject(project, lang, function (result) {
Bricks.getBricksFromProject(project, lang).then(function (result) {
if (typeof callback === 'function') {
callback();
}
......@@ -102,11 +112,13 @@ define('package/quiqqer/bricks/bin/Manager', [
var selected = this.$Grid.getSelectedData(),
AddButton = this.getButtons('brick-add'),
EditButton = this.getButtons('brick-edit'),
CopyButton = this.getButtons('brick-copy'),
DelButton = this.getButtons('brick-delete');
if (!selected.length) {
AddButton.enable();
DelButton.disable();
CopyButton.disable();
EditButton.disable();
return;
}
......@@ -114,12 +126,14 @@ define('package/quiqqer/bricks/bin/Manager', [
AddButton.enable();
DelButton.enable();
if (selected.length == 1) {
if (selected.length === 1) {
EditButton.enable();
CopyButton.enable();
}
if (selected.length > 1) {
AddButton.disable();
EditButton.disable();
CopyButton.disable();
}
},
......@@ -164,19 +178,40 @@ define('package/quiqqer/bricks/bin/Manager', [
})
);
this.addButton(new QUISeparator());
this.addButton(
new QUIButton({
textimage: 'fa fa-edit',
text : QUILocale.get(lg, 'manager.button.edit'),
title : QUILocale.get(lg, 'manager.button.edit'),
text : QUILocale.get(lg, 'manager.button.edit.text'),
title : QUILocale.get(lg, 'manager.button.edit.title'),
name : 'brick-edit',
disabled : true,
events : {
onClick: function () {
this.editBrick(
this.$Grid.getSelectedData()[0].id
self.editBrick(
self.$Grid.getSelectedData()[0].id
);
}.bind(this)
}
}
})
);
this.addButton(
new QUIButton({
textimage: 'fa fa-copy',
text : QUILocale.get(lg, 'manager.button.copy.text'),
title : QUILocale.get(lg, 'manager.button.copy.title'),
name : 'brick-copy',
disabled : true,
events : {
onClick: function () {
var data = self.$Grid.getSelectedData();
if (data.length === 1) {
self.$openCopyDialog(data[0].id);
}
}
}
})
);
......@@ -252,6 +287,30 @@ define('package/quiqqer/bricks/bin/Manager', [
});
},
/**
* event: on inject
*/
$onInject: function () {
Bricks.addEvents({
onBrickDelete: this.refresh,
onBrickSave : this.refresh,
onBrickCopy : this.refresh,
onBrickCreate: this.refresh
});
},
/**
* event: on destroy
*/
$onDestroy: function () {
Bricks.removeEvents({
onBrickDelete: this.refresh,
onBrickSave : this.refresh,
onBrickCopy : this.refresh,
onBrickCreate: this.refresh
});
},
/**
* event : on resize
*/
......@@ -290,7 +349,7 @@ define('package/quiqqer/bricks/bin/Manager', [
},
/**
* Refresh the project language dropdown
* Refresh the project language DropDown
*/
$refreshProjectLanguages: function () {
var self = this,
......@@ -302,7 +361,7 @@ define('package/quiqqer/bricks/bin/Manager', [
continue;
}
if (activeProject != project) {
if (activeProject !== project) {
continue;
}
......@@ -360,7 +419,7 @@ define('package/quiqqer/bricks/bin/Manager', [
'</label>'
);
self.getAvailableBricks(function (bricklist) {
Bricks.getAvailableBricks().then(function (bricklist) {
if (!Body) {
return;
}
......@@ -414,17 +473,15 @@ define('package/quiqqer/bricks/bin/Manager', [
}
var project = self.$ProjectSelect.getValue(),
lang = self.$ProjectLangs.getValue();
lang = self.$ProjectLangs.getValue(),
data = {
title: Title.value,
type : Type.value
};
self.createBrick(project, lang, {
title: Title.value,
type : Type.value
}, function (brickId) {
Bricks.createBrick(project, lang, data).then(function (brickId) {
Win.close();
self.refresh(function () {
self.editBrick(brickId);
});
self.editBrick(brickId);
});
}
}
......@@ -467,9 +524,8 @@ define('package/quiqqer/bricks/bin/Manager', [
onSubmit: function (Win) {
Win.Loader.show();
self.deleteBricks(brickIds, function () {
Bricks.deleteBricks(brickIds).then(function () {
Win.close();
self.refresh();
});
}
}
......@@ -477,165 +533,106 @@ define('package/quiqqer/bricks/bin/Manager', [
},
/**
* Opens the brick panel
*
* @param {Number} brickId
* opens the copy dialog
*/
editBrick: function (brickId) {
require([
'package/quiqqer/bricks/bin/BrickEdit',
'utils/Panels'
], function (BrickEdit, PanelUtils) {
PanelUtils.openPanelInTasks(
new BrickEdit({
'#id' : 'brick-edit-' + brickId,
id : brickId,
projectName: this.$ProjectSelect.getValue(),
projectLang: this.$ProjectLangs.getValue(),
events : {
onDelete: this.refresh
}
})
);
}.bind(this));
},
$openCopyDialog: function (brickId) {
var self = this;
/**
* Methods / Model
*/
new QUIConfirm({
title : QUILocale.get(lg, 'dialog.copy.title', {
id: brickId
}),
icon : 'fa fa-copy',
maxHeight: 600,
maxWidth : 800,
autoclose: false,
/**
* Return the available bricks
*
* @param {Function} [callback] - callback function
*
* @return Promise
*/
getAvailableBricks: function (callback) {
return new Promise(function (resolve, reject) {
events: {
onOpen: function (Win) {
Win.Loader.show();
Ajax.get('package_quiqqer_bricks_ajax_getAvailableBricks', function (result) {
var Content = Win.getContent(),
project = self.$ProjectSelect.getValue(),
lang = self.$ProjectLangs.getValue(),
Project = Projects.get(project);
if (typeof callback === 'function') {
callback(result);
}
Content.set('html', Mustache.render(templateCopy, {
text: QUILocale.get(lg, 'dialog.copy.message')
}));
resolve(result);
}, {
'package': 'quiqqer/bricks',
onError : reject
});
Project.getConfig().then(function (config) {
var Select = new QUISelect({
name: 'language-select'
});
});
},
var langs = config.langs.split(',');
/**
* Return the bricksf from a project
*
* @param {String} project - name of the project
* @param {String} lang - Language of the project
* @param {Function} [callback] - callback function
*
* @return Promise
*/
getBricksFromProject: function (project, lang, callback) {
return new Promise(function (resolve, reject) {
for (var i = 0, len = langs.length; i < len; i++) {
Select.appendChild(
QUILocale.get('quiqqer/system', 'language.' + langs[i]),
langs[i],
URL_BIN_DIR + '16x16/flags/' + langs[i] + '.png'
);
}
Ajax.get('package_quiqqer_bricks_ajax_project_getBricks', function (result) {
Select.inject(Content.getElement('.dialog-bricks-copy-languages'));
Select.getElm().setStyle('width', '100%');
Select.getElm().setStyle('border', 0);
if (typeof callback === 'function') {
callback(result);
}
Select.setValue(lang);
resolve(result);
}, {
'package': 'quiqqer/bricks',
project : JSON.encode({
name: project,
lang: lang
}),
onError : reject
});
Bricks.getBrick(brickId).then(function (data) {
var Form = Content.getElement('form');
});
},
Form.elements.title.value = data.attributes.title;
Form.elements.description.value = data.attributes.description;
/**
* Create a new brick
*
* @param {String} project - name of the project
* @param {String} lang - Language of the project
* @param {Object} data - Data of the brick
* @param {Function} [callback] - callback function
*
* @return Promise
*/
createBrick: function (project, lang, data, callback) {
return new Promise(function (resolve, reject) {
Win.Loader.hide();
});
});
},
Ajax.post('package_quiqqer_bricks_ajax_project_createBrick', function (brickId) {
onSubmit: function (Win) {
Win.Loader.show();
if (typeof callback === 'function') {
callback(brickId);
}
var Content = Win.getContent(),
Form = Content.getElement('form');
resolve(brickId);
}, {
'package': 'quiqqer/bricks',
project : JSON.encode({
name: project,
lang: lang
}),
data : JSON.encode(data),
onError : reject
});
var Select = Content.getElement('.dialog-bricks-copy-languages [data-quiid]');
var Language = QUI.Controls.getById(Select.get('data-quiid'));
});
Bricks.copyBrick(brickId, {
'lang' : Language.getValue(),
'title' : Form.elements.title.value,
'description': Form.elements.description.value
}).then(function (data) {
Win.close();
self.editBrick(data.id);
});
}
}
}).open();
},
/**
* Delete the Brick-Ids
*
* @param {Array} brickIds - Brick IDs which should be deleted
* @param {Function} [callback] - callback function
* Opens the brick panel
*
* @return Promise
* @param {Number} brickId
*/
deleteBricks: function (brickIds, callback) {
var panels = QUI.Controls.getByType(
'package/quiqqer/bricks/bin/BrickEdit'
);
return new Promise(function (resolve, reject) {
Ajax.post('package_quiqqer_bricks_ajax_brick_delete', function () {
if (typeof callback === 'function') {
callback();
}
resolve();
// exist brick panels?
var c, i, len, clen, brickId;
for (i = 0, len = brickIds.length; i < len; i++) {
brickId = brickIds[i];
for (c = 0, clen = panels.length; c < clen; c++) {
if (panels[c].getAttribute('id') == brickId) {
panels[c].destroy();
}
}
}
}, {
'package': 'quiqqer/bricks',
brickIds : JSON.encode(brickIds),
onError : reject
});
});
editBrick: function (brickId) {
require([
'package/quiqqer/bricks/bin/BrickEdit',
'utils/Panels'
], function (BrickEdit, PanelUtils) {
PanelUtils.openPanelInTasks(
new BrickEdit({
'#id' : 'brick-edit-' + brickId,
id : brickId,
projectName: this.$ProjectSelect.getValue(),
projectLang: this.$ProjectLangs.getValue()
})
);
}.bind(this));
}
});
});
......@@ -3,17 +3,6 @@
*
* @module package/quiqqer/bricks/bin/Site/Area
* @author www.pcsg.de (Henning Leutz)
*
* @require qui/QUI
* @require qui/controls/Control
* @require qui/controls/buttons/Button
* @require qui/controls/windows/Popup
* @require qui/controls/windows/Confirm
* @require qui/controls/elements/List
* @require Locale
* @require Ajax
* @require package/quiqqer/bricks/bin/Sortables
* @require css!package/quiqqer/bricks/bin/Site/Area.css
*/
define('package/quiqqer/bricks/bin/Site/Area', [
......@@ -24,18 +13,18 @@ define('package/quiqqer/bricks/bin/Site/Area', [
'qui/controls/windows/Alert',
'qui/controls/windows/Confirm',
'qui/controls/elements/List',
'package/quiqqer/bricks/bin/Bricks',
'Locale',
'Ajax',
'package/quiqqer/bricks/bin/Sortables',
'css!package/quiqqer/bricks/bin/Site/Area.css'
], function (QUI, QUIControl, QUIButton, QUIPopup, QUIAlert, QUIConfirm, QUIList, QUILocale, QUIAjax, Sortables) {
], function (QUI, QUIControl, QUIButton, QUIPopup, QUIAlert, QUIConfirm, QUIList, Bricks, QUILocale, QUIAjax, Sortables) {
"use strict";
var lg = 'quiqqer/bricks';
return new Class({
Extends: QUIControl,
......@@ -46,7 +35,9 @@ define('package/quiqqer/bricks/bin/Site/Area', [
'openBrickSettingDialog',
'openSettingsDialog',
'createNewBrick',
'$onInject'
'$onInject',
'$onDestroy',
'$onBrickRefresh'
],
options: {
......@@ -78,12 +69,33 @@ define('package/quiqqer/bricks/bin/Site/Area', [
this.$ExtraBtns = false;
this.addEvents({
onInject: this.$onInject
onInject : this.$onInject,
onDestroy: this.$onDestroy
});
Bricks.addEvents({
onBrickDelete: this.$onBrickRefresh,
onBrickSave : this.$onBrickRefresh,
onBrickCopy : this.$onBrickRefresh,
onBrickCreate: this.$onBrickRefresh
});
},
/**
* Return the domnode element
* event: on destroy
*/
$onDestroy: function () {
Bricks.removeEvents({
onBrickDelete: this.$onBrickRefresh,
onBrickSave : this.$onBrickRefresh,
onBrickCopy : this.$onBrickRefresh,
onBrickCreate: this.$onBrickRefresh
});
},
/**
* Return the DOMNode element
*
* @return {HTMLElement}
*/
create: function () {
......@@ -214,9 +226,7 @@ define('package/quiqqer/bricks/bin/Site/Area', [
* event : on inject
*/
$onInject: function () {
var self = this,
Site = this.getAttribute('Site'),
Project = Site.getProject();
var self = this;
var Loader = new Element('div', {
'class': 'quiqqer-bricks-site-category-area-loader',
......@@ -231,11 +241,9 @@ define('package/quiqqer/bricks/bin/Site/Area', [
opacity : 0
});
QUIAjax.get('package_quiqqer_bricks_ajax_project_getBricks', function (bricks) {
this.$refreshAvailableBricks().then(function () {
self.$AddButton.enable();
self.$availableBricks = bricks;
self.$loaded = true;
self.$loaded = true;
self.$brickIds.each(function (brickId) {
self.addBrickById(brickId);
......@@ -257,11 +265,35 @@ define('package/quiqqer/bricks/bin/Site/Area', [
}
Loader.destroy();
});
},
}, {
'package': 'quiqqer/bricks',
project : Project.encode(),
area : this.getAttribute('name')
/**
* event : on brick changes
*/
$onBrickRefresh: function () {
this.$refreshAvailableBricks();
},
/**
* Refresh the available bricks
*
* @return {*|Promise}
*/
$refreshAvailableBricks: function () {
var self = this,
Site = this.getAttribute('Site'),
Project = Site.getProject();
console.warn('refresh');
return new Promise(function (resolve) {
QUIAjax.get('package_quiqqer_bricks_ajax_project_getBricks', function (bricks) {
self.$availableBricks = bricks;
resolve(bricks);
}, {
'package': 'quiqqer/bricks',
project : Project.encode(),
area : self.getAttribute('name')
});
});
},
......
......@@ -3,15 +3,6 @@
*
* @module package/quiqqer/bricks/bin/Site/Area
* @author www.pcsg.de (Henning Leutz)
*
* @require qui/QUI
* @require qui/controls/Control
* @require qui/controls/loader/Loader
* @require qui/utils/Form
* @require utils/Template
* @require utils/Controls
* @require Ajax
* @require css!package/quiqqer/bricks/bin/Site/BrickEdit.css
*/
define('package/quiqqer/bricks/bin/Site/BrickEdit', [
......
......@@ -4,14 +4,6 @@
* @module package/quiqqer/bricks/bin/Site/Category
* @author www.pcsg.de (Henning Leutz)
*
* @require qui/QUI
* @require qui/controls/Control
* @require qui/controls/loader/Loader
* @require Ajax
* @require Locale
* @require package/quiqqer/bricks/bin/Site/Area
* @require css!package/quiqqer/bricks/bin/Site/Category.css
*
* @event onLoaded
*/
define('package/quiqqer/bricks/bin/Site/Category', [
......@@ -141,6 +133,11 @@ define('package/quiqqer/bricks/bin/Site/Category', [
*/
$onDestroy: function () {
this.updateSite();
// destroy areas
this.areas.each(function (Area) {
Area.destroy();
});
},
/**
......
/**
* Main area handler
*
* @author www.pcsg.de (Henning Leutz)
*/
define('package/quiqqer/bricks/bin/classes/Areas', [
'qui/QUI',
......@@ -10,7 +15,7 @@ define('package/quiqqer/bricks/bin/classes/Areas', [
return new Class({
Extends: QDOM,
Type : 'classes/editor/Manager',
Type : 'package/quiqqer/bricks/bin/classes/Areas',
initialize: function (options) {
this.parent(options);
......
/**
* Main Brick Handler
*
* @author www.pcsg.de (Henning Leutz)
*
* @event onBrickSave [brickId, data, result]
* @event onBrickCopy [brickId, params, result]
* @event onBrickCreate [brick, project, lang, data]
* @event onBrickDelete [brickIds]
*/
define('package/quiqqer/bricks/bin/classes/Bricks', [
'qui/QUI',
'qui/classes/DOM',
'Ajax'
], function (QUI, QDOM, QUIAjax) {
"use strict";
return new Class({
Extends: QDOM,
Type : 'package/quiqqer/bricks/bin/classes/Bricks',
initialize: function (options) {
this.parent(options);
},
/**
* Return the data of a brick
*
* @param {Number|String} brickId
* @return Promise
*/
getBrick: function (brickId) {
return new Promise(function (resolve, reject) {
QUIAjax.get('package_quiqqer_bricks_ajax_getBrick', resolve, {
'package': 'quiqqer/bricks',
brickId : brickId,
onError : reject
});
});
},
/**
* Return the data of a brick
*
* @param {Number|String} brickId
* @param {Object} data - Brick data
* @return Promise
*/
saveBrick: function (brickId, data) {
var self = this;
return new Promise(function (resolve, reject) {
QUIAjax.get('package_quiqqer_bricks_ajax_brick_save', function (result) {
self.fireEvent('brickSave', [brickId, data, result]);
resolve(result);
}, {
'package': 'quiqqer/bricks',
brickId : brickId,
data : JSON.encode(data),
onError : reject
});
});
},
/**
* Return the data of a brick
*
* @param {Number|String} brickId
* @param {Object} params
* @return Promise
*/
copyBrick: function (brickId, params) {
var self = this;
params = params || {};
return new Promise(function (resolve, reject) {
QUIAjax.get('package_quiqqer_bricks_ajax_brick_copy', function (result) {
self.fireEvent('brickCopy', [brickId, params, result]);
resolve(result);
}, {
'package': 'quiqqer/bricks',
brickId : brickId,
params : JSON.encode(params),
onError : reject
});
});
},
/**
* Return the bricks from a project
*
* @param {String} project - name of the project
* @param {String} lang - Language of the project
* @return Promise
*/
getBricksFromProject: function (project, lang) {
return new Promise(function (resolve, reject) {
QUIAjax.get('package_quiqqer_bricks_ajax_project_getBricks', resolve, {
'package': 'quiqqer/bricks',
project : JSON.encode({
name: project,
lang: lang
}),
onError : reject
});
});
},
/**
* Return all available bricks
*
* @return Promise
*/
getAvailableBricks: function () {
return new Promise(function (resolve, reject) {
QUIAjax.get('package_quiqqer_bricks_ajax_getAvailableBricks', resolve, {
'package': 'quiqqer/bricks',
onError : reject
});
});
},
/**
* Create a new brick
*
* @param {String} project - name of the project
* @param {String} lang - Language of the project
* @param {Object} data - Data of the brick
*
* @return Promise
*/
createBrick: function (project, lang, data) {
var self = this;
return new Promise(function (resolve, reject) {
QUIAjax.post('package_quiqqer_bricks_ajax_project_createBrick', function (brick) {
self.fireEvent('brickCreate', [brick, project, lang, data]);
resolve(brick);
}, {
'package': 'quiqqer/bricks',
project : JSON.encode({
name: project,
lang: lang
}),
data : JSON.encode(data),
onError : reject
});
});
},
/**
* Delete the Brick-Ids
*
* @param {Array} brickIds - Brick IDs which should be deleted
* @return Promise
*/
deleteBricks: function (brickIds) {
var self = this;
var panels = QUI.Controls.getByType(
'package/quiqqer/bricks/bin/BrickEdit'
);
return new Promise(function (resolve, reject) {
QUIAjax.post('package_quiqqer_bricks_ajax_brick_delete', function () {
// exist brick panels?
var c, i, len, clen, brickId;
for (i = 0, len = brickIds.length; i < len; i++) {
brickId = brickIds[i];
for (c = 0, clen = panels.length; c < clen; c++) {
if (panels[c].getAttribute('id') === brickId) {
panels[c].destroy();
}
}
}
self.fireEvent('brickDelete', [brickIds]);
resolve();
}, {
'package': 'quiqqer/bricks',
brickIds : JSON.encode(brickIds),
onError : reject
});
});
}
});
});
......@@ -2,7 +2,7 @@
<quiqqer>
<bricks>
<!-- available standard bricks -->
<brick control="\QUI\Controls\Breadcrumb">
<brick control="\QUI\Controls\Breadcrumb" hasContent="0">
<title>
<locale group="quiqqer/bricks" var="brick.control.breadcrumb.title"/>
</title>
......@@ -582,7 +582,7 @@
</settings>
</brick>
<brick control="\QUI\Bricks\Controls\SideBox1">
<brick control="\QUI\Bricks\Controls\SideBox1" deprecated="1">
<title>
<locale group="quiqqer/bricks" var="brick.control.sidebox1.title"/>
</title>
......@@ -643,7 +643,7 @@
</settings>
</brick>
<brick control="\QUI\Bricks\Controls\SideBox2">
<brick control="\QUI\Bricks\Controls\SideBox2" deprecated="1">
<title>
<locale group="quiqqer/bricks" var="brick.control.sidebox2.title"/>
</title>
......@@ -701,7 +701,7 @@
</settings>
</brick>
<brick control="\QUI\Bricks\Controls\SideBox3">
<brick control="\QUI\Bricks\Controls\SideBox3" deprecated="1">
<title>
<locale group="quiqqer/bricks" var="brick.control.sidebox3.title"/>
</title>
......@@ -820,7 +820,7 @@
</settings>
</brick>
<brick control="\QUI\Bricks\Controls\SideBox4">
<brick control="\QUI\Bricks\Controls\SideBox4" deprecated="1">
<title>
<locale group="quiqqer/bricks" var="brick.control.sidebox4.title"/>
</title>
......
......@@ -608,9 +608,21 @@ M&ouml;chten Sie die Bausteine aus der Bausteinzone entfernen?</p>]]></de>
<de><![CDATA[Baustein hinzufügen]]></de>
<en><![CDATA[Add a Brick]]></en>
</locale>
<locale name="manager.button.edit">
<de><![CDATA[Baustein bearbeiten]]></de>
<en><![CDATA[Edit a Brick]]></en>
<locale name="manager.button.edit.title">
<de><![CDATA[Markierten Baustein bearbeiten]]></de>
<en><![CDATA[Edit marked Brick]]></en>
</locale>
<locale name="manager.button.edit.text">
<de><![CDATA[Bearbeiten]]></de>
<en><![CDATA[Edit]]></en>
</locale>
<locale name="manager.button.copy.title">
<de><![CDATA[Markierten Baustein kopieren]]></de>
<en><![CDATA[Copy marked Brick]]></en>
</locale>
<locale name="manager.button.copy.text">
<de><![CDATA[Kopieren]]></de>
<en><![CDATA[Copy]]></en>
</locale>
<locale name="manager.button.delete">
<de><![CDATA[Markierte Bausteine löschen]]></de>
......@@ -713,7 +725,45 @@ M&ouml;chten Sie die Bausteine aus der Bausteinzone entfernen?</p>]]></de>
<de><![CDATA[Slide bearbieten]]></de>
<en><![CDATA[Edit Slide]]></en>
</locale>
<locale name="contentSwitcher.entries.button.text">
<de><![CDATA[Eintrag hinzufügen]]></de>
<en><![CDATA[Add entry]]></en>
</locale>
<locale name="contentSwitcher.entries.entry.picture">
<de><![CDATA[Bild]]></de>
<en><![CDATA[Picture]]></en>
</locale>
<locale name="contentSwitcher.entries.entry.title">
<de><![CDATA[Überschrift]]></de>
<en><![CDATA[Title]]></en>
</locale>
<locale name="contentSwitcher.entries.entry.content">
<de><![CDATA[Text]]></de>
<en><![CDATA[Content]]></en>
</locale>
<locale name="dialog.copy.title">
<de><![CDATA[Baustein #[id] kopieren]]></de>
<en><![CDATA[Copy brick #[id]]]></en>
</locale>
<locale name="dialog.copy.message">
<de><![CDATA[
Bitte geben Sie an in welche Sprache der Baustein kopieren werden soll.
Zusätzlich können Sie Titel und Beschreibung für den neuen Baustein angeben.
Alle anderen Einstellungen werden in den neuen Baustein kopiert.
]]></de>
<en><![CDATA[
Please specify in which language the block should be copied.
You can also specify the title and description for the new module.
All other settings are copied to the new block.
]]></en>
</locale>
</groups>
<groups name="quiqqer/bricks" datatype="js,php">
<locale name="brick.control.navigation.setting.content">
<de><![CDATA[Text über dem Kontaktformular]]></de>
......@@ -772,7 +822,7 @@ M&ouml;chten Sie die Bausteine aus der Bausteinzone entfernen?</p>]]></de>
<!-- Content Switcher -->
<locale name="bricks.ContentSwitcher.title">
<de><![CDATA[Bausteine: Inhalt-Wechsel]]></de>
<en><![CDATA[Bricks Content with image]]></en>
<en><![CDATA[Bricks Content Switcher]]></en>
<pl><![CDATA[Bricks: Content Switcher: treść i zdjęcie]]></pl>
</locale>
<locale name="bricks.ContentSwitcher.description">
......
......@@ -4,6 +4,7 @@
name="bricks"
icon="fa fa-th"
require="package/quiqqer/bricks/bin/Manager"
permission="quiqqer.bricks.edit"
>
<locale group="quiqqer/bricks" var="menu.bricks.text" />
</item>
......
0% Lade oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren