denny/ShinyCMS

View on GitHub
root/admin/pages/edit_page.tt

Summary

Maintainability
Test Coverage
[%- IF page.id;
        meta.title = 'Edit Page';
    ELSE;
        meta.title = 'Add Page';
    END;
-%]

<script type="text/javascript">
function pagePreview(pageForm) {
    var f=pageForm;
    var action=f.action;
    f.action='[% c.uri_for( "/" _ page_prefix, page.section.url_name, page.url_name, "preview" ) %]';
    f.target='preview';
    window.open('','preview','width=1000,height=750,resizable=yes,status=yes,toolbar=no,location=no,menubar=no,scrollbars=yes');
    f.submit();
    f.action=action;
    f.target='_self';
    return false;
}
</script>

[% IF page.id -%]
<form id="edit_page" action="edit-do" method="post">
[%- ELSE %]
<form id="add_page" action="add-page-do" method="post">
[%- END %]
    <p>
        <label for="name">Page Name</label>
        <br><input class="textshort" type="text" id="name" name="name" value="[% page.name | html %]">
        [% IF page.id -%]
        <span class="small">
            &nbsp;<a class="action" href="[% c.uri_for( '/pages/' _ page.section.url_name _ '/' _ page.url_name ) %]">View page</a>
        </span>
        [%- END %]
    </p>
    <p>
        <label for="url_name">URL Name</label>
        <br><input class="textshort" type="text" id="url_name" name="url_name" value="[% page.url_name | html %]">
    </p>
    <p>
        <label for="title">Page Title</label>
        <br><input class="textshort" type="text" id="title" name="title" value="[% page.title | html %]">
    </p>
    <p>
        <label for="description">Meta Description</label>
        <br><textarea id="description" name="description">[% page.description | html %]</textarea>
    </p>
    <p>
        <label for="section">Section</label>
        <br><select id="section" name="section">
            <!-- <option value="">(none)</option> -->
            [%- FOREACH section IN sections %]
            [%- IF section.id == page.section.id %]
            <option value="[% section.id %]" selected="selected">[% section.name | html %]</option>
            [%- ELSE %]
            <option value="[% section.id %]">[% section.name | html %]</option>
            [%- END %]
            [%- END %]
        </select>
    </p>
    <p>
        <label for="menu_position">Menu Position</label>
        <br><input class="textshort" type="text" id="menu_position" name="menu_position" value="[% page.menu_position | html %]">
    </p>
    [%- IF c.user.has_role( 'CMS Template Admin' ) OR NOT page.id %]
    <p>
        <label for="template">Template</label>
        <br><select id="template" name="template">
                [%- FOREACH temp IN templates %]
                <option [% IF page.template.id == temp.id %]selected="selected" [% END %]value="[% temp.id %]">[% temp.name | html %]</option>
                [%- END %]
        </select>
    </p>
    [%- END %]
    <p>
        <label for="hidden">Hide page</label>
        <br><input type="checkbox" id="hidden" name="hidden"[% ' checked="checked"' IF page.hidden OR ( hide_new_pages AND NOT page.id ) %]>
    </p>

    [%- FOREACH element IN page_elements %]
    <p>
        [%- IF c.user.has_role( 'CMS Template Admin' ) %]
        <input class="textshort" type="text" id="name_[% element.id %]" name="name_[% element.id %]" value="[% element.name | html %]">
        <select id="type_[% element.id %]" name="type_[% element.id %]">
            [%- FOREACH type IN types %]
            [%- IF type == element.type %]
            <option value="[% type %]" selected="selected">[% type %]</option>
            [%- ELSE %]
            <option value="[% type %]">[% type %]</option>
            [%- END %]
            [%- END %]
        </select>
        [%- ELSE %]
        <label for="content_[% element.id %]">[% element.name | html %]</label>
        <input type="hidden" id="name_[% element.id %]" name="name_[% element.id %]" value="[% element.name | html %]">
        [%- END %]
        <br>
        [%- IF element.type == 'Image' %]
        <select id="content_[% element.id %]" name="content_[% element.id %]">
            <option value="">None</option>
            [%- FOREACH image IN images %]
            [%- IF image == element.content %]
            <option value="[% image %]" selected="selected">[% image %]</option>
            [%- ELSE %]
            <option value="[% image %]">[% image %]</option>
            [%- END %]
            [%- END %]
        </select>
        [%- ELSE %]
        [%- IF element.type == 'HTML' %]
        <textarea class="ckeditor" id="content_[% element.id %]" name="content_[% element.id %]" cols="60" rows="4">[% element.content | html %]</textarea>
        [%- ELSE %]
        [%- IF element.type == 'Long Text' %]
        <textarea cols="60" rows="4" id="content_[% element.id %]" name="content_[% element.id %]">[% element.content | html %]</textarea>
        [%- ELSE %]
        [%# IF element.type == 'Short Text' %]
        <input class="textlong" type="text" id="content_[% element.id %]" name="content_[% element.id %]" value="[% element.content | html %]">
        [%- END %][% END %][% END %]
    </p>
    [%- END %]

    <p>
[% IF page.id -%]
<script type="text/javascript">
<!--
if (document.getElementById) {
    document.write('<input type="button" value="Preview" onclick="pagePreview(this.form)">');
}
// -->
</script>
[%- END %]
        <input type="submit" value="Save">
        <input type="reset"  value="Reset">
        [% IF page.id AND c.user.has_role( 'CMS Page Admin' ) -%]
        <input name="delete"  type="submit" value="Delete" onclick="javascript:return confirm('Are you sure you want to delete this page?')">
        [%- END %]
    </p>
</form>

[% IF c.user.has_role('CMS Template Admin') AND page.id -%]
<p>
    &nbsp;
</p>

<hr>

<h3>
    <a name="add_element"></a>Add Element
</h3>

<form id="add_element" action="add_element_do" method="post">
    <p>
        <label for="new_element">Element name</label>
        <br><input class="textshort" type="text" id="new_element" name="new_element" value="">
        <select name="new_type">
            [%- FOREACH type IN types %]
            <option value="[% type %]">[% type %]</option>
            [%- END %]
        </select>
    </p>
    <p>
        <input name="submit" type="submit" value="Add New Element">
    </p>
</form>
[% END -%]