commit 0b2fc32dab13317c41144b6142211e764f175cf7
parent 74ffcc0e61069ae2eab3354df4ac4ad899d7fcea
Author: Jan Dankert <develop@jandankert.de>
Date: Wed, 11 Nov 2020 21:47:40 +0100
Fix: Templatemodel-extensions are now editable.
Diffstat:
9 files changed, 118 insertions(+), 202 deletions(-)
diff --git a/modules/cms/action/TemplateAction.class.php b/modules/cms/action/TemplateAction.class.php
@@ -103,9 +103,9 @@ class TemplateAction extends BaseAction
}
*/
- $templatemodel->src = $newSource;
-
- $templatemodel->save();
+ $templatemodel->src = $newSource;
+ $templatemodel->extension = $this->getRequestVar('extension');
+ $templatemodel->save();
$this->addNotice('template', 0, $this->template->name, 'SAVED', Action::NOTICE_OK);
}
@@ -201,45 +201,6 @@ class TemplateAction extends BaseAction
$this->setTemplateVar('id' ,$this->template->templateid);
}
-
- /**
- * Speichern der Dateiendung
- */
- public function extensionPost()
- {
- $project = new Project( $this->template->projectid );
- $models = $project->getModels();
-
- $extensions = array();
- foreach( $models as $modelId => $modelName ) {
-
- $input = $this->getRequestVar( $modelName );
-
- // Validierung: Werte dürfen nicht doppelt vorkommen.
- if ( in_array($input, $extensions) )
- {
- $this->addNotice('template', 0, $this->template->name, 'DUPLICATE_INPUT', 'error');
- throw new \util\exception\ValidationException( $modelName );
- }
-
- $extensions[ $modelId ] = $input;
- }
-
- foreach( $models as $modelId => $modelName ) {
-
- $templatemodel = new TemplateModel($this->template->templateid, $modelId);
- $templatemodel->load();
-
- $templatemodel->extension = $extensions[ $modelId ];
-
- $templatemodel->save();
- }
-
- $this->addNotice('template', 0, $this->template->name, 'SAVED', 'ok');
- }
-
-
-
function addelView()
{
// Die verschiedenen Element-Typen
@@ -309,31 +270,6 @@ class TemplateAction extends BaseAction
- /**
- * Extension einer Vorlage anzeigen
- */
- function extensionView()
- {
- $project = new Project( $this->template->projectid );
- $models = $project->getModels();
-
- $modelSrc = array();
-
- foreach( $models as $modelId => $modelName )
- {
- $templatemodel = new TemplateModel( $this->template->templateid, $modelId );
- $templatemodel->load();
-
- $modelSrc[ $modelId ] = array(
- 'name' =>$modelName,
- 'extension'=>$templatemodel->extension
- );
- }
-
- $this->setTemplateVar( 'extension',$modelSrc );
- }
-
-
/**
* Anzeigen des Inhaltes, der Inhalt wird samt Header direkt
@@ -540,7 +476,7 @@ class TemplateAction extends BaseAction
$this->setTemplateVar( 'modelid',$modelId );
$this->setTemplateVar( 'source' ,$text );
-
+ $this->setTemplateVar( 'extension',$templatemodel->extension );
}
diff --git a/modules/cms/ui/themes/default/html/views/template/addel.php b/modules/cms/ui/themes/default/html/views/template/addel.php
@@ -8,36 +8,24 @@
<input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('subaction') ?>" value="<?php echo O::escapeHtml('addel') ?>" /><?php echo O::escapeHtml('') ?>
<input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('id') ?>" value="<?php echo O::escapeHtml(''.@$_id.'') ?>" /><?php echo O::escapeHtml('') ?>
<section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?>
- <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml('') ?>
+ <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml(''.@O::lang('name').'') ?>
</h3>
<div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?>
- <div class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?>
- <span><?php echo O::escapeHtml(''.@O::lang('name').'') ?>
- </span>
- </div>
- <div class="<?php echo O::escapeHtml('or-value') ?>"><?php echo O::escapeHtml('') ?>
- <input name="<?php echo O::escapeHtml('name') ?>" required="<?php echo O::escapeHtml('required') ?>" autofocus="<?php echo O::escapeHtml('autofocus') ?>" type="<?php echo O::escapeHtml('text') ?>" maxlength="<?php echo O::escapeHtml('50') ?>" value="<?php echo O::escapeHtml(''.@$name.'') ?>" class="<?php echo O::escapeHtml('or-input') ?>" /><?php echo O::escapeHtml('') ?>
- </div>
+ <input name="<?php echo O::escapeHtml('name') ?>" required="<?php echo O::escapeHtml('required') ?>" autofocus="<?php echo O::escapeHtml('autofocus') ?>" type="<?php echo O::escapeHtml('text') ?>" maxlength="<?php echo O::escapeHtml('50') ?>" value="<?php echo O::escapeHtml(''.@$name.'') ?>" class="<?php echo O::escapeHtml('or-input') ?>" /><?php echo O::escapeHtml('') ?>
</div>
</section>
<section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?>
- <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml('') ?>
+ <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml(''.@O::lang('element_type').'') ?>
</h3>
<div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?>
- <div class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?>
- <span><?php echo O::escapeHtml(''.@O::lang('element_type').'') ?>
- </span>
- </div>
- <div class="<?php echo O::escapeHtml('or-value') ?>"><?php echo O::escapeHtml('') ?>
- <?php { $text= 'text'; ?>
+ <?php { $text= 'text'; ?>
+ <?php } ?>
+ <select name="<?php echo O::escapeHtml('typeid') ?>" size="<?php echo O::escapeHtml('1') ?>" class="<?php echo O::escapeHtml('or-input') ?>"><?php echo O::escapeHtml('') ?>
+ <?php foreach($types as $_key=>$_value) { ?>
+ <option value="<?php echo O::escapeHtml(''.@$_key.'') ?>" <?php if($_key==$typeid){ ?>selected="<?php echo O::escapeHtml('selected') ?>"<?php } ?>><?php echo O::escapeHtml(''.@$_value.'') ?>
+ </option>
<?php } ?>
- <select name="<?php echo O::escapeHtml('typeid') ?>" size="<?php echo O::escapeHtml('1') ?>" class="<?php echo O::escapeHtml('or-input') ?>"><?php echo O::escapeHtml('') ?>
- <?php foreach($types as $_key=>$_value) { ?>
- <option value="<?php echo O::escapeHtml(''.@$_key.'') ?>" <?php if($_key==$typeid){ ?>selected="<?php echo O::escapeHtml('selected') ?>"<?php } ?>><?php echo O::escapeHtml(''.@$_value.'') ?>
- </option>
- <?php } ?>
- </select>
- </div>
+ </select>
</div>
</section>
<section class="<?php echo O::escapeHtml('or-group or-collapsible or-collapsible--is-open or-collapsible--show') ?>"><?php echo O::escapeHtml('') ?>
@@ -50,21 +38,17 @@
</span>
</h2>
<div class="<?php echo O::escapeHtml('or-collapsible-value or-group-value') ?>"><?php echo O::escapeHtml('') ?>
- </div>
- </section>
- <section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?>
- <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml('') ?>
- </h3>
- <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?>
- <div class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?>
- </div>
- <div class="<?php echo O::escapeHtml('or-value') ?>"><?php echo O::escapeHtml('') ?>
- <label class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?>
- <input type="<?php echo O::escapeHtml('checkbox') ?>" name="<?php echo O::escapeHtml('addtotemplate') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if(1){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?>
- <span><?php echo O::escapeHtml(''.@O::lang('menu_template_srcelement').'') ?>
- </span>
- </label>
- </div>
+ <section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?>
+ <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml('') ?>
+ </h3>
+ <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?>
+ <label><?php echo O::escapeHtml('') ?>
+ <input type="<?php echo O::escapeHtml('checkbox') ?>" name="<?php echo O::escapeHtml('addtotemplate') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if(1){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?>
+ <span class="<?php echo O::escapeHtml('or-form-label') ?>"><?php echo O::escapeHtml(''.@O::lang('menu_template_srcelement').'') ?>
+ </span>
+ </label>
+ </div>
+ </section>
</div>
</section>
</div>
diff --git a/modules/cms/ui/themes/default/html/views/template/addel.tpl.src.xml b/modules/cms/ui/themes/default/html/views/template/addel.tpl.src.xml
@@ -1,32 +1,17 @@
-<output xmlns="http://www.openrat.de/template" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openrat.de/template ../../../../../../../template_engine/components/template.xsd">
- <form>
- <fieldset class="line" label="">
- <part class="label">
- <text value="${message:name}"/>
- </part>
- <part class="value">
- <input name="name" maxlength="50" required="true" focus="true"/>
- </part>
- </fieldset>
- <fieldset class="line" label="">
- <part class="label">
- <text value="${message:element_type}"/>
- </part>
- <part class="value">
- <set var="text" value="'text'"/>
- <selectbox list="types" name="typeid" lang="true"/>
- </part>
- </fieldset>
- <group title="${message:options}"/>
- <fieldset class="line" label="">
- <part class="label">
- </part>
- <part class="value">
- <label for="addtotemplate">
- <checkbox name="addtotemplate" default="true"/>
- <text value="${message:menu_template_srcelement}"/>
- </label>
- </part>
- </fieldset>
- </form>
+<output xmlns="http://www.openrat.de/template" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.openrat.de/template ../../../../../../../template_engine/components/template.xsd">
+ <form>
+ <fieldset label="${message:name}">
+ <input name="name" maxlength="50" required="true" focus="true"/>
+ </fieldset>
+ <fieldset label="${message:element_type}">
+ <set var="text" value="'text'"/>
+ <selectbox list="types" name="typeid" lang="true"/>
+ </fieldset>
+ <group title="${message:options}">
+ <fieldset>
+ <checkbox name="addtotemplate" default="true" label="${message:menu_template_srcelement}"/>
+ </fieldset>
+ </group>
+ </form>
</output>
diff --git a/modules/cms/ui/themes/default/html/views/template/edit.php b/modules/cms/ui/themes/default/html/views/template/edit.php
@@ -59,7 +59,7 @@
</i>
<i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--node-open or-collapsible--on-open') ?>"><?php echo O::escapeHtml('') ?>
</i>
- <span><?php echo O::escapeHtml(''.@$name.'') ?>
+ <span><?php echo O::escapeHtml(''.@O::lang('model').' '.@$name.'') ?>
</span>
</h2>
<div class="<?php echo O::escapeHtml('or-collapsible-value or-group-value') ?>"><?php echo O::escapeHtml('') ?>
diff --git a/modules/cms/ui/themes/default/html/views/template/edit.tpl.src.xml b/modules/cms/ui/themes/default/html/views/template/edit.tpl.src.xml
@@ -1,52 +1,53 @@
-<output xmlns="http://www.openrat.de/template" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openrat.de/template ../../../../../../../template_engine/components/template.xsd">
- <table>
- <row class="headline">
- <column>
- <text value="${message:name}"/>
- </column>
- <column>
- <text value="${message:type}"/>
- </column>
- </row>
- <list list="${elements}" extract="true">
- <row class="data">
- <column class="act-clickable">
- <link type="open" id="${id}" name="${name}" action="element">
- <image elementtype="${type}"/>
- <text value="${name}" title="${description}"/>
- </link>
- </column>
- <column>
- <text value="${message:el_${type}}"/>
- </column>
- </row>
- </list>
- <if empty="${elements}">
- <row>
- <column colspan="2">
- <text value="${message:NOT_FOUND}"/>
- </column>
- </row>
- </if>
- <row class="data">
- <column colspan="2" class="act-clickable">
- <link type="dialog" subaction="addel" action="template" id="${templateid}">
- <image method="add"/>
- <text value="${message:menu_template_addel}"/>
- </link>
- </column>
- </row>
- </table>
- <list list="${models}" extract="true">
- <group title="${name}">
- <part class="act-clickable">
- <text value="${source}" escape="true" type="code" maxlength="200"/>
- <newline/>
- <link type="edit" subaction="src" var1="modelid" value1="${modelid}" class="form-button">
- <image action="template"/>
- <text value="${message:edit}"/>
- </link>
- </part>
- </group>
- </list>
+<output xmlns="http://www.openrat.de/template" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.openrat.de/template ../../../../../../../template_engine/components/template.xsd">
+ <table>
+ <row class="headline">
+ <column>
+ <text value="${message:name}"/>
+ </column>
+ <column>
+ <text value="${message:type}"/>
+ </column>
+ </row>
+ <list list="${elements}" extract="true">
+ <row class="data">
+ <column class="act-clickable">
+ <link type="open" id="${id}" name="${name}" action="element">
+ <image elementtype="${type}"/>
+ <text value="${name}" title="${description}"/>
+ </link>
+ </column>
+ <column>
+ <text value="${message:el_${type}}"/>
+ </column>
+ </row>
+ </list>
+ <if empty="${elements}">
+ <row>
+ <column colspan="2">
+ <text value="${message:NOT_FOUND}"/>
+ </column>
+ </row>
+ </if>
+ <row class="data">
+ <column colspan="2" class="act-clickable">
+ <link type="dialog" subaction="addel" action="template" id="${templateid}">
+ <image method="add"/>
+ <text value="${message:menu_template_addel}"/>
+ </link>
+ </column>
+ </row>
+ </table>
+ <list list="${models}" extract="true">
+ <group title="${message:model} ${name}">
+ <part class="act-clickable">
+ <text value="${source}" escape="true" type="code" maxlength="200"/>
+ <newline/>
+ <link type="edit" subaction="src" var1="modelid" value1="${modelid}" class="form-button">
+ <image action="template"/>
+ <text value="${message:edit}"/>
+ </link>
+ </part>
+ </group>
+ </list>
</output>
diff --git a/modules/cms/ui/themes/default/html/views/template/src.php b/modules/cms/ui/themes/default/html/views/template/src.php
@@ -22,6 +22,25 @@
</textarea>
</div>
</section>
+ <section class="<?php echo O::escapeHtml('or-group or-collapsible or-collapsible--is-closed or-collapsible--show') ?>"><?php echo O::escapeHtml('') ?>
+ <h2 class="<?php echo O::escapeHtml('or-collapsible-title or-group-title or-collapsible-act-switch') ?>"><?php echo O::escapeHtml('') ?>
+ <i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--node-closed or-collapsible--on-closed') ?>"><?php echo O::escapeHtml('') ?>
+ </i>
+ <i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--node-open or-collapsible--on-open') ?>"><?php echo O::escapeHtml('') ?>
+ </i>
+ <span><?php echo O::escapeHtml(''.@O::lang('options').'') ?>
+ </span>
+ </h2>
+ <div class="<?php echo O::escapeHtml('or-collapsible-value or-group-value') ?>"><?php echo O::escapeHtml('') ?>
+ <section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?>
+ <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml(''.@O::lang('file_extension').'') ?>
+ </h3>
+ <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?>
+ <input name="<?php echo O::escapeHtml('extension') ?>" required="<?php echo O::escapeHtml('required') ?>" type="<?php echo O::escapeHtml('text') ?>" maxlength="<?php echo O::escapeHtml('10') ?>" value="<?php echo O::escapeHtml(''.@$extension.'') ?>" class="<?php echo O::escapeHtml('or-input') ?>" /><?php echo O::escapeHtml('') ?>
+ </div>
+ </section>
+ </div>
+ </section>
</div>
<div class="<?php echo O::escapeHtml('or-form-actionbar') ?>"><?php echo O::escapeHtml('') ?>
<div class="<?php echo O::escapeHtml('or-btn or-btn--secondary or-act-form-cancel') ?>"><?php echo O::escapeHtml('') ?>
diff --git a/modules/cms/ui/themes/default/html/views/template/src.tpl.src.xml b/modules/cms/ui/themes/default/html/views/template/src.tpl.src.xml
@@ -4,5 +4,10 @@
<group title="${message:source}">
<editor type="code" name="source" mode="htmlmixed"/>
</group>
+ <group title="${message:options}" open="false">
+ <fieldset label="${message:file_extension}">
+ <input name="extension" maxlength="10" required="true" />
+ </fieldset>
+ </group>
</form>
</output>
diff --git a/modules/cms/ui/themes/default/html/views/title/show.php b/modules/cms/ui/themes/default/html/views/title/show.php
@@ -254,14 +254,6 @@
</span>
</a>
</div>
- <div class="<?php echo O::escapeHtml('or-dropdown-entry or-act-clickable or-filtered') ?>"><?php echo O::escapeHtml('') ?>
- <a title="<?php echo O::escapeHtml(''.@O::lang('menu_extension_desc').'') ?>" target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('dialog') ?>" data-action="<?php echo O::escapeHtml('') ?>" data-method="<?php echo O::escapeHtml('extension') ?>" data-id="<?php echo O::escapeHtml('') ?>" data-extra-dialogAction="<?php echo O::escapeHtml('') ?>" data-extra-dialogMethod="<?php echo O::escapeHtml('extension') ?>" data-extra="<?php echo O::escapeHtml('{\'dialogAction\':null,\'dialogMethod\':\'extension\'}') ?>" href="<?php echo O::escapeHtml('') ?>" class="<?php echo O::escapeHtml('or-link') ?>"><?php echo O::escapeHtml('') ?>
- <i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--method-extension') ?>"><?php echo O::escapeHtml('') ?>
- </i>
- <span class="<?php echo O::escapeHtml('or-dropdown-text') ?>"><?php echo O::escapeHtml(''.@O::lang('menu_extension').'') ?>
- </span>
- </a>
- </div>
<div class="<?php echo O::escapeHtml('or-dropdown-divide') ?>"><?php echo O::escapeHtml('') ?>
</div>
<div class="<?php echo O::escapeHtml('or-dropdown-entry or-act-clickable or-filtered') ?>"><?php echo O::escapeHtml('') ?>
diff --git a/modules/cms/ui/themes/default/html/views/title/show.tpl.src.xml b/modules/cms/ui/themes/default/html/views/title/show.tpl.src.xml
@@ -323,12 +323,6 @@
<text class="dropdown-text" value="${message:menu_src}"/>
</link>
</part>
- <part class="dropdown-entry,act-clickable,filtered">
- <link type="dialog" title="${message:menu_extension_desc}" subaction="extension">
- <image method="extension"/>
- <text class="dropdown-text" value="${message:menu_extension}"/>
- </link>
- </part>
<part class="dropdown-divide"/>
<part class="dropdown-entry,act-clickable,filtered">
<link type="dialog" title="${message:menu_value_desc}" subaction="value">