commit 911e918782ea1b1954d8fce1011fa423261dbf28
parent d99d7e49eb5a9e8a7c253a5bfa53eb34965344a7
Author: Jan Dankert <develop@jandankert.de>
Date: Sat, 27 Nov 2021 04:38:28 +0100
New: Option to explicitly release a new template source.
Diffstat:
8 files changed, 67 insertions(+), 48 deletions(-)
diff --git a/modules/cms/action/template/TemplateSrcAction.class.php b/modules/cms/action/template/TemplateSrcAction.class.php
@@ -54,6 +54,9 @@ class TemplateSrcAction extends TemplateAction implements Method {
}
+ /**
+ * Saving template source.
+ */
public function post() {
$modelId = $this->request->getModelId();
@@ -76,6 +79,7 @@ class TemplateSrcAction extends TemplateAction implements Method {
$templatemodel->src = $newSource;
$templatemodel->extension = $this->request->getText('extension');
+ $templatemodel->public = $this->request->isTrue('release');
$templatemodel->persist();
$this->addNoticeFor($this->template,Messages::SAVED);
diff --git a/modules/cms/model/TemplateModel.class.php b/modules/cms/model/TemplateModel.class.php
@@ -38,7 +38,9 @@ class TemplateModel extends ModelBase
*/
private $contentid;
- /**
+ public $public;
+
+ /**
* TemplateModel constructor.
* @param $templateid
* @param $modelid
@@ -58,7 +60,7 @@ class TemplateModel extends ModelBase
$db = \cms\base\DB::get();
$stmt = $db->sql( <<<SQL
- SELECT {{templatemodel}}.*,{{value}}.text FROM {{templatemodel}}
+ SELECT {{templatemodel}}.*,{{value}}.text,{{value}}.publish FROM {{templatemodel}}
LEFT JOIN {{value}}
ON {{value}}.contentid = {{templatemodel}}.contentid AND {{value}}.active = 1
WHERE templateid = {templateid}
@@ -75,6 +77,7 @@ SQL
$this->extension = $row['extension'];
$this->src = $row['text' ];
$this->contentid = $row['contentid'];
+ $this->public = $row['publish' ];
}
else
{
@@ -123,7 +126,7 @@ SQL
$value = new Value();
$value->contentid = $this->contentid;
$value->text = $this->src;
- $value->publish = true;
+ $value->publish = $this->public;
$value->persist();
}
diff --git a/modules/cms/ui/themes/default/html/views/file/history.php b/modules/cms/ui/themes/default/html/views/file/history.php
@@ -58,18 +58,15 @@
<?php } ?>
</td>
<td><?php echo O::escapeHtml('') ?>
- <?php $if8=($releasable); if($if8) { ?>
- <a title="<?php echo O::escapeHtml(''.@O::lang('RELEASE_DESC').'') ?>" target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('post') ?>" data-action="<?php echo O::escapeHtml('') ?>" data-method="<?php echo O::escapeHtml('release') ?>" data-id="<?php echo O::escapeHtml(''.@$objectid.'') ?>" data-extra-valueid="<?php echo O::escapeHtml(''.@$id.'') ?>" data-extra="<?php echo O::escapeHtml('{"valueid":"'.@$id.'"}') ?>" data-data="<?php echo O::escapeHtml('{"action":"file","subaction":"release","id":"'.@$objectid.'","token":"'.@$_token.'","valueid":"'.@$id.'","none":0}') ?>" class="<?php echo O::escapeHtml('or-link') ?>"><?php echo O::escapeHtml('') ?>
+ <?php $if8=(!$publish); if($if8) { ?>
+ <a title="<?php echo O::escapeHtml(''.@O::lang('RELEASE_DESC').'') ?>" target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('post') ?>" data-action="<?php echo O::escapeHtml('') ?>" data-method="<?php echo O::escapeHtml('release') ?>" data-id="<?php echo O::escapeHtml(''.@$objectid.'') ?>" data-extra-valueid="<?php echo O::escapeHtml(''.@$id.'') ?>" data-extra="<?php echo O::escapeHtml('{"valueid":"'.@$id.'"}') ?>" data-data="<?php echo O::escapeHtml('{"action":"file","subaction":"release","id":"'.@$objectid.'","token":"'.@$_token.'","valueid":"'.@$id.'","none":0}') ?>" class="<?php echo O::escapeHtml('or-link or-act-clickable') ?>"><?php echo O::escapeHtml('') ?>
<i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--method-release') ?>"><?php echo O::escapeHtml('') ?></i>
</a>
<?php } ?>
- <?php $if8=($usable); if($if8) { ?>
+ <?php $if8=(!$active); if($if8) { ?>
<a title="<?php echo O::escapeHtml(''.@O::lang('RESTORE_DESC').'') ?>" target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('post') ?>" data-action="<?php echo O::escapeHtml('') ?>" data-method="<?php echo O::escapeHtml('restore') ?>" data-id="<?php echo O::escapeHtml(''.@$objectid.'') ?>" data-extra-valueid="<?php echo O::escapeHtml(''.@$id.'') ?>" data-extra="<?php echo O::escapeHtml('{"valueid":"'.@$id.'"}') ?>" data-data="<?php echo O::escapeHtml('{"action":"file","subaction":"restore","id":"'.@$objectid.'","token":"'.@$_token.'","valueid":"'.@$id.'","none":0}') ?>" class="<?php echo O::escapeHtml('or-link or-act-clickable') ?>"><?php echo O::escapeHtml('') ?>
<i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--method-restore') ?>"><?php echo O::escapeHtml('') ?></i>
</a>
- <a title="<?php echo O::escapeHtml(''.@O::lang('edit').'') ?>" 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('value') ?>" data-id="<?php echo O::escapeHtml(''.@$objectid.'') ?>" data-extra-valueid="<?php echo O::escapeHtml(''.@$id.'') ?>" data-extra="<?php echo O::escapeHtml('{"valueid":"'.@$id.'"}') ?>" href="<?php echo O::escapeHtml('') ?>" class="<?php echo O::escapeHtml('or-link or-act-clickable') ?>"><?php echo O::escapeHtml('') ?>
- <i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--method-edit') ?>"><?php echo O::escapeHtml('') ?></i>
- </a>
<?php } ?>
</td>
</tr>
diff --git a/modules/cms/ui/themes/default/html/views/file/history.tpl.src.xml b/modules/cms/ui/themes/default/html/views/file/history.tpl.src.xml
@@ -48,22 +48,17 @@
<!-- Actions -->
<column>
- <if true="${releasable}">
- <link type="post" subaction="release" var1="valueid" value1="${id}"
+ <if false="${publish}">
+ <link clickable="true" type="post" subaction="release" var1="valueid" value1="${id}"
id="${objectid}" title="${message:RELEASE_DESC}">
<image method="release"/>
</link>
</if>
- <if true="${usable}">
+ <if false="${active}">
<link clickable="true" type="post" subaction="restore" var1="valueid" value1="${id}"
id="${objectid}" title="${message:RESTORE_DESC}">
<image method="restore"/>
</link>
-
- <link clickable="true" type="dialog" subaction="value" var1="valueid" value1="${id}"
- id="${objectid}" title="${message:edit}">
- <image method="edit"/>
- </link>
</if>
</column>
</row>
diff --git a/modules/cms/ui/themes/default/html/views/template/history.php b/modules/cms/ui/themes/default/html/views/template/history.php
@@ -6,7 +6,7 @@
<input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('action') ?>" value="<?php echo O::escapeHtml('template') ?>" /><?php echo O::escapeHtml('') ?>
<input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('subaction') ?>" value="<?php echo O::escapeHtml('diff') ?>" /><?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('') ?>
- <?php foreach((array)@$models as $list_key=>$model) { ?>
+ <?php foreach((array)@$models as $list_key=>$model) { extract($model); ?>
<section class="<?php echo O::escapeHtml('or-group or-collapsible or-collapsible--is-open or-collapsible--is-visible 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>
@@ -84,18 +84,15 @@
<?php } ?>
</td>
<td><?php echo O::escapeHtml('') ?>
- <?php $if9=($releasable); if($if9) { ?>
- <a title="<?php echo O::escapeHtml(''.@O::lang('RELEASE_DESC').'') ?>" target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('post') ?>" data-action="<?php echo O::escapeHtml('') ?>" data-method="<?php echo O::escapeHtml('release') ?>" data-id="<?php echo O::escapeHtml(''.@$objectid.'') ?>" data-extra-valueid="<?php echo O::escapeHtml(''.@$id.'') ?>" data-extra="<?php echo O::escapeHtml('{"valueid":"'.@$id.'"}') ?>" data-data="<?php echo O::escapeHtml('{"action":"template","subaction":"release","id":"'.@$objectid.'","token":"'.@$_token.'","valueid":"'.@$id.'","none":0}') ?>" class="<?php echo O::escapeHtml('or-link') ?>"><?php echo O::escapeHtml('') ?>
+ <?php $if9=(!$publish); if($if9) { ?>
+ <a title="<?php echo O::escapeHtml(''.@O::lang('RELEASE_DESC').'') ?>" target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('post') ?>" data-action="<?php echo O::escapeHtml('') ?>" data-method="<?php echo O::escapeHtml('release') ?>" data-id="<?php echo O::escapeHtml('') ?>" data-extra-valueid="<?php echo O::escapeHtml(''.@$id.'') ?>" data-extra="<?php echo O::escapeHtml('{"valueid":"'.@$id.'"}') ?>" data-data="<?php echo O::escapeHtml('{"action":"template","subaction":"release","id":"","token":"'.@$_token.'","valueid":"'.@$id.'","none":0}') ?>" class="<?php echo O::escapeHtml('or-link or-act-clickable') ?>"><?php echo O::escapeHtml('') ?>
<i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--method-release') ?>"><?php echo O::escapeHtml('') ?></i>
</a>
<?php } ?>
- <?php $if9=($usable); if($if9) { ?>
- <a title="<?php echo O::escapeHtml(''.@O::lang('RESTORE_DESC').'') ?>" target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('post') ?>" data-action="<?php echo O::escapeHtml('') ?>" data-method="<?php echo O::escapeHtml('restore') ?>" data-id="<?php echo O::escapeHtml(''.@$objectid.'') ?>" data-extra-valueid="<?php echo O::escapeHtml(''.@$id.'') ?>" data-extra="<?php echo O::escapeHtml('{"valueid":"'.@$id.'"}') ?>" data-data="<?php echo O::escapeHtml('{"action":"template","subaction":"restore","id":"'.@$objectid.'","token":"'.@$_token.'","valueid":"'.@$id.'","none":0}') ?>" class="<?php echo O::escapeHtml('or-link or-act-clickable') ?>"><?php echo O::escapeHtml('') ?>
+ <?php $if9=(!$active); if($if9) { ?>
+ <a title="<?php echo O::escapeHtml(''.@O::lang('RESTORE_DESC').'') ?>" target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('post') ?>" data-action="<?php echo O::escapeHtml('') ?>" data-method="<?php echo O::escapeHtml('restore') ?>" data-id="<?php echo O::escapeHtml('') ?>" data-extra-valueid="<?php echo O::escapeHtml(''.@$id.'') ?>" data-extra="<?php echo O::escapeHtml('{"valueid":"'.@$id.'"}') ?>" data-data="<?php echo O::escapeHtml('{"action":"template","subaction":"restore","id":"","token":"'.@$_token.'","valueid":"'.@$id.'","none":0}') ?>" class="<?php echo O::escapeHtml('or-link or-act-clickable') ?>"><?php echo O::escapeHtml('') ?>
<i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--method-restore') ?>"><?php echo O::escapeHtml('') ?></i>
</a>
- <a title="<?php echo O::escapeHtml(''.@O::lang('edit').'') ?>" 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('value') ?>" data-id="<?php echo O::escapeHtml(''.@$objectid.'') ?>" data-extra-valueid="<?php echo O::escapeHtml(''.@$id.'') ?>" data-extra="<?php echo O::escapeHtml('{"valueid":"'.@$id.'"}') ?>" href="<?php echo O::escapeHtml('') ?>" class="<?php echo O::escapeHtml('or-link or-act-clickable') ?>"><?php echo O::escapeHtml('') ?>
- <i class="<?php echo O::escapeHtml('or-image-icon or-image-icon--method-edit') ?>"><?php echo O::escapeHtml('') ?></i>
- </a>
<?php } ?>
</td>
</tr>
diff --git a/modules/cms/ui/themes/default/html/views/template/history.tpl.src.xml b/modules/cms/ui/themes/default/html/views/template/history.tpl.src.xml
@@ -1,7 +1,7 @@
<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 method="get" subaction="diff" label="${message:compare}" cancel="false" visible="true">
- <list list="${models}" value="model">
+ <list list="${models}" value="model" extract="true">
<group collapsible="true" title="${message:language}: ${language.name}">
@@ -75,22 +75,17 @@
<!-- Actions -->
<column >
- <if true="${releasable}">
- <link type="post" subaction="release" var1="valueid" value1="${id}"
- id="${objectid}" title="${message:RELEASE_DESC}">
+ <if false="${publish}">
+ <link clickable="true" type="post" subaction="release" var1="valueid" value1="${id}"
+ title="${message:RELEASE_DESC}">
<image method="release"/>
</link>
</if>
- <if true="${usable}">
+ <if false="${active}">
<link clickable="true" type="post" subaction="restore" var1="valueid" value1="${id}"
- id="${objectid}" title="${message:RESTORE_DESC}">
+ title="${message:RESTORE_DESC}">
<image method="restore"/>
</link>
-
- <link clickable="true" type="dialog" subaction="value" var1="valueid" value1="${id}"
- id="${objectid}" title="${message:edit}">
- <image method="edit"/>
- </link>
</if>
</column>
</row>
diff --git a/modules/cms/ui/themes/default/html/views/template/src.php b/modules/cms/ui/themes/default/html/views/template/src.php
@@ -35,6 +35,26 @@
</section>
</div>
</section>
+ <section class="<?php echo O::escapeHtml('or-group or-collapsible or-collapsible--is-open or-collapsible--is-visible 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('') ?></h3>
+ <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?>
+ <div class="<?php echo O::escapeHtml('or-') ?>"><?php echo O::escapeHtml('') ?>
+ <label><?php echo O::escapeHtml('') ?>
+ <input type="<?php echo O::escapeHtml('checkbox') ?>" name="<?php echo O::escapeHtml('release') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if(@$release){ ?>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('RELEASE').'') ?></span>
+ </label>
+ </div>
+ </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--control 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
@@ -1,13 +1,21 @@
-<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 apply="true">
- <hidden name="modelid"/>
- <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 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 apply="true">
+ <hidden name="modelid"/>
+ <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>
+ <group title="${message:options}">
+ <fieldset>
+ <part>
+ <checkbox name="release" label="${message:RELEASE}"/>
+ </part>
+ </fieldset>
+ </group>
+ </form>
</output>