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

bricks edit - finish

Übergeordneter 2257f944
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
Keine zugehörigen Merge Requests gefunden
<table class="data-table brick-edit">
<thead>
<tr>
<th colspan="2">
{locale group="quiqqer/bricks" var="brick.edit.header"}
</th>
</tr>
</thead>
<tbody>
<tr class="{cycle values="odd,even"}">
<td>
<label for="title">
{locale group="quiqqer/system" var="title"}
</label>
</td>
<td>
<input type="text" name="title" id="title" />
</td>
</tr>
<tr class="{cycle values="odd,even"}">
<td>
<label for="description">
{locale group="quiqqer/bricks" var="brick.edit.description"}
</label>
</td>
<td>
<textarea name="description" id="description"></textarea>
</td>
</tr>
<tr class="{cycle values="odd,even"}">
<td>
<label for="type">
{locale group="quiqqer/bricks" var="brick.edit.type"}
</label>
</td>
<td>
<input type="text" name="type" id="type" disabled="disabled" />
</td>
</tr>
<tr class="{cycle values="odd,even"}">
<td>
<label for="areas">
{locale group="quiqqer/bricks" var="brick.edit.allowed.areas"}
</label>
</td>
<td>
<div class="quiqqer-bricks-areas"></div>
</td>
</tr>
</tbody>
</table>
<table class="data-table brick-edit-content">
<thead>
<tr>
<th colspan="2">
{locale group="quiqqer/bricks" var="brick.edit.content"}
</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<table class="data-table brick-edit-extra-header">
<thead>
<tr>
<th colspan="2">
{locale group="quiqqer/bricks" var="brick.edit.extra.header"}
</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<?php
/**
* This file contains package_quiqqer_bricks_ajax_brick_settingTemplate
*/
/**
* Return the template for the brick settings
* @return String
*/
function package_quiqqer_bricks_ajax_brick_settingTemplate()
{
$Template = QUI::getTemplateManager()->getEngine( true );
$template = dirname( __FILE__ ) .'/settingTemplate.html';
return $Template->fetch( $template );
}
\QUI::$Ajax->register(
'package_quiqqer_bricks_ajax_brick_settingTemplate',
false,
'Permission::checkAdminUser'
);
......@@ -6,7 +6,6 @@
width: 100%;
}
.quiqqer-bricks-brickedit label {
clear: both;
float: left;
......@@ -16,19 +15,13 @@
.quiqqer-bricks-brickedit input,
.quiqqer-bricks-brickedit select,
.quiqqer-bricks-brickedit-label-text,
.quiqqer-bricks-brickedit-label-editor{
.quiqqer-bricks-brickedit textarea {
clear: both;
float: left;
max-width: 300px;
width: 100%;
}
.quiqqer-bricks-brickedit-label-text {
cursor: pointer;
margin-bottom: 10px;
}
.quiqqer-bricks-brickedit-label-editor {
cursor: pointer;
margin-bottom: 0;
......@@ -40,4 +33,9 @@
.quiqqer-bricks-brickareas {
margin-bottom: 20px;
}
.brick-edit-extra-header tbody tr td:first-child,
.quiqqer-bricks-brickedit .data-table tbody tr td:first-child {
width: 200px;
}
\ No newline at end of file
......@@ -21,7 +21,7 @@ define('package/quiqqer/bricks/bin/BrickEdit', [
'css!package/quiqqer/bricks/bin/BrickEdit.css'
], function(QUI, QUIControl, QUIFormUtils, BrickAreas, Ajax, QUILocale, ControlUtils)
], function(QUI, QUIControl, QUIFormUtils, BrickAreas, QUIAjax, QUILocale, ControlUtils)
{
"use strict";
......@@ -78,7 +78,7 @@ define('package/quiqqer/bricks/bin/BrickEdit', [
{
var self = this;
Ajax.get([
QUIAjax.get([
'package_quiqqer_bricks_ajax_getBrick',
'package_quiqqer_bricks_ajax_getAvailableBricks'
], function(data, bricks)
......@@ -121,196 +121,205 @@ define('package/quiqqer/bricks/bin/BrickEdit', [
*/
$createData : function(callback)
{
var self = this;
var self = this,
id = this.getId();
var Container = new Element('div', {
'html' : '<label>' +
' <span class="quiqqer-bricks-brickedit-label-text">' +
QUILocale.get( 'quiqqer/system', 'title' ) +
' </span>' +
' <input type="text" name="title" />' +
'</label>' +
'<label>' +
' <span class="quiqqer-bricks-brickedit-label-text">' +
QUILocale.get( 'quiqqer/bricks', 'brick.edit.description' ) +
' </span>' +
' <textarea name="description"></textarea>' +
'</label>'+
'<label>' +
' <span class="quiqqer-bricks-brickedit-label-text">' +
QUILocale.get( 'quiqqer/bricks', 'brick.edit.type' ) +
' </span>' +
' <select name="type"></select>' +
'</label>'+
'<label class="quiqqer-bricks-areas">' +
' <span class="quiqqer-bricks-brickedit-label-text">' +
QUILocale.get( 'quiqqer/bricks', 'brick.edit.allowed.areas' ) +
' </span>' +
'</label>'
}).inject( this.$Elm );
var i, len, title, group, val;
if ( this.$availableSettings )
QUIAjax.get('package_quiqqer_bricks_ajax_brick_settingTemplate', function(result)
{
var setting, dataQui;
var SettingsElement = new Element('form', {
'class' : 'quiqqer-bricks-brickedit-settings'
});
self.$Elm.set( 'html', result );
self.$createExtraData();
for ( i = 0, len = this.$availableSettings.length; i < len; i++ )
// id and for attributes
self.$Elm.getElements( '[for]').each(function(Label)
{
setting = this.$availableSettings[ i ];
dataQui = '';
var forAttr = Label.get( 'for'),
Sibling = self.$Elm.getElement( '[id="'+ forAttr +'"]' );
if ( setting['data-qui'] !== '' ) {
dataQui = ' data-qui="'+ setting['data-qui'] +'" ';
if ( Sibling )
{
Sibling.set( 'id', Sibling.id + id );
Label.set( 'for', forAttr + id );
}
});
new Element('div', {
html : '<label class="quiqqer-bricks-areas">' +
' <span class="quiqqer-bricks-brickedit-label-text">' +
setting.text +
' </span>' +
'</label>' +
'<input type="'+ setting.type +'" ' +
' name="'+ setting.name +'" ' +
' class="'+ setting.class +'" ' +
dataQui +
'/>'
}).inject( SettingsElement );
}
SettingsElement.inject( Container );
// values
var Type = self.$Elm.getElement( '[name="type"]' ),
Title = self.$Elm.getElement( '[name="title"]' ),
Desc = self.$Elm.getElement( '[name="description"]' );
// set data
QUIFormUtils.setDataToForm(
this.getAttribute( 'settings' ),
SettingsElement
);
Title.value = self.getAttribute( 'title' );
Type.value = self.getAttribute( 'type' );
Desc.value = self.getAttribute( 'description' );
// parse controls
ControlUtils.parse( SettingsElement );
// areas
var areas = [];
QUI.parse(SettingsElement, function()
if ( self.getAttribute( 'areas' ) )
{
// set project to the controls
SettingsElement.getElements( '[data-quiid]' ).each(function(Elm)
{
var Control = QUI.Controls.getById(
Elm.get('data-quiid')
);
areas = self.getAttribute('areas')
.replace(/^,*/, '')
.replace(/,*$/, '')
.split(',');
}
if ( 'setProject' in Control )
{
Control.setProject(
self.getAttribute( 'projectName' ),
self.getAttribute( 'projectLang' )
);
}
});
});
}
// areas
self.$Areas = new BrickAreas({
brickId : self.getAttribute( 'id' ),
projectName : self.getAttribute( 'projectName' ),
projectLang : self.getAttribute( 'projectLang' ),
areas : areas,
styles : {
height : 120
}
}).inject( self.$Elm.getElement( '.quiqqer-bricks-areas' ) );
var Type = this.$Elm.getElement( '[name="type"]' ),
Title = this.$Elm.getElement( '[name="title"]' ),
Desc = this.$Elm.getElement( '[name="description"]' );
for ( i = 0, len = this.$availableBricks.length; i < len; i++ )
// editor
self.$createContentEditor( callback );
}, {
'package' : 'quiqqer/bricks'
});
},
/**
* Create the editor, if the brick type is a content type
*
* @param {Function} callback
*/
$createContentEditor : function(callback)
{
if ( this.getAttribute( 'type' ) != 'content' )
{
title = this.$availableBricks[ i ].title;
this.$Elm
.getElement( 'table.brick-edit-content')
.setStyle( 'display', 'none' );
if ( 'group' in title )
{
group = title.group;
val = title.var;
} else
{
group = title[ 0 ];
val = title[ 1 ];
if ( typeof callback === 'function' ) {
callback();
}
new Element('option', {
value : this.$availableBricks[ i ].control,
html : QUILocale.get( group, val )
}).inject( Type );
return;
}
Title.value = this.getAttribute( 'title' );
Type.value = this.getAttribute( 'type' );
Desc.value = this.getAttribute( 'description' );
var areas = [];
var self = this,
TableBody = this.$Elm.getElement( 'table.brick-edit-content tbody' ),
if ( this.getAttribute( 'areas' ) )
{
areas = this.getAttribute('areas')
.replace(/^,*/, '')
.replace(/,*$/, '')
.split(',');
}
TD = new Element('td'),
TR = new Element('tr', {
'class' : 'odd'
});
// areas
this.$Areas = new BrickAreas({
brickId : this.getAttribute( 'id' ),
projectName : this.getAttribute( 'projectName' ),
projectLang : this.getAttribute( 'projectLang' ),
areas : areas,
styles : {
height : 120
}
}).inject( this.$Elm.getElement( '.quiqqer-bricks-areas' ), 'after' );
TD.inject( TR );
TR.inject( TableBody );
// brick type
if ( this.getAttribute( 'type' ) == 'content' )
// load ckeditor
require(['classes/editor/Manager'], function(EditorManager)
{
new Element('label', {
html : '<span class="quiqqer-bricks-brickedit-label-editor">' +
QUILocale.get( 'quiqqer/bricks', 'brick.edit.content' ) +
'</span>'
}).inject( this.$Elm );
// load ckeditor
require(['classes/editor/Manager'], function(EditorManager)
new EditorManager().getEditor(null, function(Editor)
{
new EditorManager().getEditor(null, function(Editor)
self.$Editor = Editor;
var EditorContainer = new Element('div', {
styles : {
clear : 'both',
'float' : 'left',
height : 300,
width : '100%'
}
}).inject( TD );
self.$Editor.addEvent('onLoaded', function()
{
self.$Editor = Editor;
var EditorContainer = new Element('div', {
styles : {
clear : 'both',
height : 300,
width : '100%'
}
}).inject( self.$Elm );
self.$Editor.addEvent('onLoaded', function()
{
if ( typeof callback === 'function' ) {
callback();
}
});
self.$Editor.inject( EditorContainer );
self.$Editor.setHeight( 300 );
self.$Editor.setContent( self.getAttribute( 'content' ) );
if ( typeof callback === 'function' ) {
callback();
}
});
self.$Editor.inject( EditorContainer );
self.$Editor.setHeight( EditorContainer.getSize().y );
self.$Editor.setWidth( EditorContainer.getSize().x );
self.$Editor.setContent( self.getAttribute( 'content' ) );
});
});
},
/**
* Create the extra settings table
*/
$createExtraData : function()
{
var TableExtra = this.$Elm.getElement( 'table.brick-edit-extra-header'),
TableBody = TableExtra.getElement( 'tbody' );
if ( !this.$availableSettings || !this.$availableSettings.length )
{
TableExtra.setStyle( 'display', 'none' );
return;
}
// plugin / package bricks
TableExtra.setStyle( 'display', null );
var Form = new Element( 'form' ).wraps( TableExtra );
var i, len, setting, dataQui;
var self = this;
// extra settings
for ( i = 0, len = this.$availableSettings.length; i < len; i++ )
{
setting = this.$availableSettings[ i ];
dataQui = '';
if ( setting['data-qui'] !== '' ) {
dataQui = ' data-qui="'+ setting['data-qui'] +'" ';
}
if ( typeof callback === 'function' ) {
callback();
new Element('tr', {
'class' : i % 2 ? 'even' : 'odd',
html : '<td>' +
' <label class="quiqqer-bricks-areas">' +
setting.text +
' </label>' +
'</td>' +
'<td>' +
' <input type="'+ setting.type +'" ' +
' name="'+ setting.name +'" ' +
' class="'+ setting.class +'" ' +
dataQui +
' />' +
'</td>'
}).inject( TableBody );
}
TableExtra.setStyle( 'display', null );
// set data
QUIFormUtils.setDataToForm( this.getAttribute( 'settings' ), Form );
// parse controls
ControlUtils.parse( TableExtra );
QUI.parse(TableExtra, function()
{
// set project to the controls
TableExtra.getElements( '[data-quiid]' ).each(function(Elm)
{
var Control = QUI.Controls.getById(
Elm.get('data-quiid')
);
if ( 'setProject' in Control )
{
Control.setProject(
self.getAttribute( 'projectName' ),
self.getAttribute( 'projectLang' )
);
}
});
});
},
/**
......@@ -344,7 +353,7 @@ define('package/quiqqer/bricks/bin/BrickEdit', [
}
Ajax.post('package_quiqqer_bricks_ajax_brick_save', function()
QUIAjax.post('package_quiqqer_bricks_ajax_brick_save', function()
{
if ( typeof callback === 'function' ) {
callback();
......
......@@ -35,6 +35,45 @@
<de><![CDATA[]]></de>
<en><![CDATA[]]></en>
</locale>
<locale name="area.window.title">
<de><![CDATA[Baustein-Zonen]]></de>
<en><![CDATA[Brick areas]]></en>
</locale>
<locale name="brick.edit.area.add">
<de><![CDATA[Baustein-Zone hinzufügen]]></de>
<en><![CDATA[Add a Brick area]]></en>
</locale>
<locale name="brick.edit.header">
<de><![CDATA[Baustein Einstellungen]]></de>
<en><![CDATA[Brick settings]]></en>
</locale>
<locale name="brick.sheet.edit.title">
<de><![CDATA[Baustein bearbeiten]]></de>
<en><![CDATA[Edit Brick]]></en>
</locale>
<locale name="brick.edit.description">
<de><![CDATA[Baustein Beschreibung]]></de>
<en><![CDATA[Brick description]]></en>
</locale>
<locale name="brick.edit.type">
<de><![CDATA[Baustein-Typ]]></de>
<en><![CDATA[Brick type]]></en>
</locale>
<locale name="brick.edit.allowed.areas">
<de><![CDATA[Erlaubte Baustein-Zonen]]></de>
<en><![CDATA[Allowed Brick areas]]></en>
</locale>
<locale name="brick.edit.content">
<de><![CDATA[Baustein-Inhalt]]></de>
<en><![CDATA[Brick content]]></en>
</locale>
<locale name="brick.edit.extra.header">
<de><![CDATA[Zusäzliche Einstellungen]]></de>
<en><![CDATA[Extra settings]]></en>
</locale>
</groups>
<groups name="quiqqer/bricks" datatype="php">
......@@ -126,36 +165,6 @@
<en><![CDATA[Brick is inherited]]></en>
</locale>
<locale name="area.window.title">
<de><![CDATA[Baustein-Zonen]]></de>
<en><![CDATA[Brick areas]]></en>
</locale>
<locale name="brick.edit.area.add">
<de><![CDATA[Baustein-Zone hinzufügen]]></de>
<en><![CDATA[Add a Brick area]]></en>
</locale>
<locale name="brick.sheet.edit.title">
<de><![CDATA[Baustein bearbeiten]]></de>
<en><![CDATA[Edit Brick]]></en>
</locale>
<locale name="brick.edit.description">
<de><![CDATA[Baustein Beschreibung]]></de>
<en><![CDATA[Brick description]]></en>
</locale>
<locale name="brick.edit.type">
<de><![CDATA[Baustein-Typ]]></de>
<en><![CDATA[Brick type]]></en>
</locale>
<locale name="brick.edit.allowed.areas">
<de><![CDATA[Erlaubte Baustein-Zonen]]></de>
<en><![CDATA[Allowed Brick areas]]></en>
</locale>
<locale name="brick.edit.content">
<de><![CDATA[Baustein-Inhalt]]></de>
<en><![CDATA[Brick content]]></en>
</locale>
<locale name="manager.button.add">
<de><![CDATA[Baustein hinzufügen]]></de>
<en><![CDATA[Add a Brick]]></en>
......
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