openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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:
Mmodules/cms/action/template/TemplateSrcAction.class.php | 4++++
Mmodules/cms/model/TemplateModel.class.php | 9++++++---
Mmodules/cms/ui/themes/default/html/views/file/history.php | 9+++------
Mmodules/cms/ui/themes/default/html/views/file/history.tpl.src.xml | 11+++--------
Mmodules/cms/ui/themes/default/html/views/template/history.php | 13+++++--------
Mmodules/cms/ui/themes/default/html/views/template/history.tpl.src.xml | 17++++++-----------
Mmodules/cms/ui/themes/default/html/views/template/src.php | 20++++++++++++++++++++
Mmodules/cms/ui/themes/default/html/views/template/src.tpl.src.xml | 32++++++++++++++++++++------------
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('{&quot;valueid&quot;:&quot;'.@$id.'&quot;}') ?>" 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('{&quot;valueid&quot;:&quot;'.@$id.'&quot;}') ?>" 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('{&quot;valueid&quot;:&quot;'.@$id.'&quot;}') ?>" 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('{&quot;valueid&quot;:&quot;'.@$id.'&quot;}') ?>" 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('{&quot;valueid&quot;:&quot;'.@$id.'&quot;}') ?>" 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('{&quot;valueid&quot;:&quot;'.@$id.'&quot;}') ?>" 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('{&quot;valueid&quot;:&quot;'.@$id.'&quot;}') ?>" 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('{&quot;valueid&quot;:&quot;'.@$id.'&quot;}') ?>" 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('{&quot;valueid&quot;:&quot;'.@$id.'&quot;}') ?>" 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>