fu: Close-up of Fu, bringing a scoop of water to her mouth (Default)
fu ([personal profile] fu) wrote in [site community profile] changelog2011-11-30 11:28 am

[dw-free] Revamp /update

[commit: http://hg.dwscoalition.org/dw-free/rev/e57184490bfb]

http://bugs.dwscoalition.org/show_bug.cgi?id=2524

Reorganize .tt files. Everything that was views/entry-* is now
views/entry/*; the modules that were in views/entry/* are now
/views/entry/module-* (easier to find everytihng now)

Patch by [personal profile] fu.

Files modified:
  • cgi-bin/DW/Controller/Entry.pm
  • views/entry-preview.tt
  • views/entry-preview.tt.text
  • views/entry-success.tt
  • views/entry.tt
  • views/entry.tt.text
  • views/entry/access.tt
  • views/entry/access.tt.text
  • views/entry/age_restriction.tt
  • views/entry/age_restriction.tt.text
  • views/entry/comments-new.tt
  • views/entry/comments.tt
  • views/entry/comments.tt.text
  • views/entry/crosspost.tt
  • views/entry/crosspost.tt.text
  • views/entry/currents.tt
  • views/entry/currents.tt.text
  • views/entry/displaydate.tt
  • views/entry/displaydate.tt.text
  • views/entry/form.tt
  • views/entry/form.tt.text
  • views/entry/icons.tt
  • views/entry/icons.tt.text
  • views/entry/journal.tt
  • views/entry/journal.tt.text
  • views/entry/module-access.tt
  • views/entry/module-access.tt.text
  • views/entry/module-age_restriction.tt
  • views/entry/module-age_restriction.tt.text
  • views/entry/module-comments-new.tt
  • views/entry/module-comments.tt
  • views/entry/module-comments.tt.text
  • views/entry/module-crosspost.tt
  • views/entry/module-crosspost.tt.text
  • views/entry/module-currents.tt
  • views/entry/module-currents.tt.text
  • views/entry/module-displaydate.tt
  • views/entry/module-displaydate.tt.text
  • views/entry/module-icons.tt
  • views/entry/module-icons.tt.text
  • views/entry/module-journal.tt
  • views/entry/module-journal.tt.text
  • views/entry/module-scheduled.tt
  • views/entry/module-status.tt
  • views/entry/module-tags.tt
  • views/entry/module-tags.tt.text
  • views/entry/preview.tt
  • views/entry/preview.tt.text
  • views/entry/scheduled.tt
  • views/entry/status.tt
  • views/entry/success.tt
  • views/entry/tags.tt
  • views/entry/tags.tt.text
--------------------------------------------------------------------------------
diff -r 7f6e577ec7c3 -r e57184490bfb cgi-bin/DW/Controller/Entry.pm
--- a/cgi-bin/DW/Controller/Entry.pm	Tue Nov 29 22:02:20 2011 +0800
+++ b/cgi-bin/DW/Controller/Entry.pm	Wed Nov 30 19:27:46 2011 +0800
@@ -59,7 +59,7 @@
     my $r = DW::Request->get;
     my $remote = LJ::get_remote();
 
-    return error_ml( "/entry.tt.beta.off", { aopts => "href='$LJ::SITEROOT/betafeatures'" } )
+    return error_ml( "/entry/form.tt.beta.off", { aopts => "href='$LJ::SITEROOT/betafeatures'" } )
         unless $remote && LJ::BetaFeatures->user_in_beta( $remote => "updatepage" );
 
     my @error_list;
@@ -204,7 +204,7 @@
 
     $vars->{show_unimplemented} = $get->{highlight} ? 1 : 0;
     $vars->{betacommunity} = LJ::load_user( "dw_beta" );
-    return DW::Template->render_template( 'entry.tt', $vars );
+    return DW::Template->render_template( 'entry/form.tt', $vars );
 }
 
 
@@ -643,7 +643,7 @@
     if ( ! defined $res->{itemid} && $res->{message} ) {
         $ret .= qq{<div class="message-box info-box"><p>$res->{message}</p></div>};
         $render_ret = DW::Template->render_template(
-            'entry-success.tt', {
+            'entry/success.tt', {
                 poststatus  => $ret,
             }
         );
@@ -737,7 +737,7 @@
         }
 
         $render_ret = DW::Template->render_template(
-            'entry-success.tt', {
+            'entry/success.tt', {
                 poststatus  => $ret,        # did the update succeed or fail?
                 warnings    => \@warnings,   # warnings about the entry or your account
                 crossposts  => \@crossposts,# crosspost status list
@@ -923,7 +923,7 @@
         }
         $vars->{security} = $security;
 
-        return DW::Template->render_template( 'entry-preview.tt', $vars );
+        return DW::Template->render_template( 'entry/preview.tt', $vars );
     } else {
         my $ret = "";
         my $opts = {};
@@ -1006,7 +1006,7 @@
 
         $p->{entry} = $s2entry;
         $p->{comments} = [];
-        $p->{preview_warn_text} = LJ::Lang::ml( '/entry-preview.tt.entry.preview_warn_text' );
+        $p->{preview_warn_text} = LJ::Lang::ml( '/entry/preview.tt.entry.preview_warn_text' );
 
         $p->{viewing_thread} = 0;
         $p->{multiform_on} = 0;
@@ -1100,7 +1100,7 @@
     foreach ( qw( access comments age_restriction journal crosspost
                     icons tags currents displaydate ) ) {
         push @panel_options, {
-            label_ml    => "/entry/$_.tt.header",
+            label_ml    => "/entry/module-$_.tt.header",
             panel_name  => $_,
             id          => "panel_$_",
             name        =>  $panel_element_name,
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry-preview.tt
--- a/views/entry-preview.tt	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-[%# post-preview.tt
-
-Page to preview entries in site skin
-
-Authors:
-    Afuna <coder.dw@afunamatata.com>
-
-This program is free software; you may redistribute it and/or modify it under
-the same terms as Perl itself.  For a copy of the license, please reference
-'perldoc perlartistic' or 'perldoc perlgpl'.
-%]
-
-[%- dw.need_res( "stc/talkpage.css" ) -%]
-
-[%- sections.windowtitle = '.title' | ml( sitenameshort = site.nameshort ) -%]
-
-[%- IF journal -%]
-    <table summary=''><tr valign='middle'>
-    [%- IF icon -%]
-        <td>[% icon %]</td>
-    [%- END -%]
-
-    <td>
-        [%- postername = poster.name | html -%]
-
-        [%- IF journal.is_community -%]
-            [%- "talk.somebodywrote_comm" | ml( realname = postername
-                                                userlink = poster.ljuser_display
-                                                commlink = journal.ljuser_display )
-            -%]
-        [%- ELSE -%]
-            [%- "talk.somebodywrote" | ml(  realname = postername
-                                            userlink = poster.ljuser_display )
-            -%]
-        [%- END -%]
-
-        <br /><span class='time'>@ [% displaydate %]</span>
-    </td>
-
-    </tr></table>
-[%- END -%]
-
-<div id='entry' class='usercontent' style='margin-left: 30px'>
-    [%- currents -%]
-
-    [%- IF security -%]
-        <img src="[% site.imgroot %][% security.src %]" alt="[% security.alt%]" width="[% security.width %]" height="[% security.height %]" align="absmiddle" />
-    [%- END -%]
-
-    <div id='entrysubj'>[% subject %]</div>
-    [%- IF security OR subject -%]<br />[%- END -%]
-
-    [%- event -%]
-</div>
-
-<br clear='all' /><hr width='100%' size='2' align='center' />
-
-<div class='highlight-box'><p>[% '.entry.preview_warn_text' | ml %]</p></div>
-
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry-preview.tt.text
--- a/views/entry-preview.tt.text	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-;; -*- coding: utf-8 -*-
-.entry.preview_warn_text=This is a preview only. To save this entry, close this popup and return to your main browser window.
-
-.title=[[sitenameshort]]: Entry Preview (Unsaved)
-
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry-success.tt
--- a/views/entry-success.tt	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-[%- sections.title = 'success' | ml -%]
-
-[%- IF warnings.size > 0 -%]
-    [%- FOREACH warning IN warnings -%]
-        <div class="message-box [% warning.type %]-box">[%- warning.message -%]</div>
-    [%- END -%]
-[%- END -%]
-
-<p>[% poststatus %]</p>
-
-[%- IF crossposts.size > 0 -%]
-<ul>
-    [%- FOREACH crosspost IN crossposts -%]
-        <li [% IF crosspost.status == "error" -%] class="error-box" [%- END -%]>
-            [%- crosspost.text -%]
-        </li>
-    [%- END -%]
-</ul>
-[%- END -%]
-
-[%- IF links.size > 0 -%]
-<p>[%- "/update.bml.success.links" | ml -%]</p>
-<ul>
-    [%- FOREACH link IN links -%]
-        <li><a href="[% link.url %]">[% link.text %]</a></li>
-    [%- END -%]
-</ul>
-[%- END -%]
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry.tt
--- a/views/entry.tt	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,283 +0,0 @@
-[%# entry.tt
-
-Page to post and edit entries
-
-Authors:
-    Afuna <coder.dw@afunamatata.com>
-
-This program is free software; you may redistribute it and/or modify it under
-the same terms as Perl itself.  For a copy of the license, please reference
-'perldoc perlartistic' or 'perldoc perlgpl'.
-%]
-
-[%- CALL dw.active_resource_group( "jquery" ) -%]
-
-[% dw.need_res(
-    "stc/postform.css",
-    "stc/postform-resize.css"
-) %]
-
-[% dw.need_res( { group => "jquery" },
-    # jquery ui
-    "js/jquery/jquery.ui.core.js"
-    "js/jquery/jquery.ui.widget.js"
-
-    "js/jquery/jquery.ui.datepicker.js"
-    "js/jquery/jquery.ui.dialog.js"
-
-    "stc/jquery/jquery.ui.core.css"
-    "stc/jquery/jquery.ui.datepicker.css"
-    "stc/jquery/jquery.ui.dialog.css"
-
-
-    # jquery utility plugins
-    #"js/jquery.ultrafocus.js"
-    "js/jquery.radioreveal.js"
-
-    # icons
-    "js/jquery.iconrandom.js"
-
-    # tags
-    "js/jquery.vertigro.js"
-    "js/jquery.tagselector.js"
-    "js/jquery/jquery.ui.autocomplete.js"
-    "js/jquery.autocompletewithunknown.js"
-    "stc/jquery.tagselector.css"
-    "stc/jquery/jquery.ui.autocomplete.css"
-    "stc/jquery.autocompletewithunknown.css"
-
-    # crosspost
-    "js/md5.js"
-    "js/jquery.crosspost.js"
-
-    # page-specific
-    "js/jquery.postform.js"
-) %]
-
-[% IF remote && remote.can_use_userpic_select;
-dw.need_res( { group => "jquery" },
-    "js/jquery.iconselector.js"
-    "stc/jquery.iconselector.css"
-); END %]
-
-[% sections.title = '.title' | ml %]
-[% sections.contentopts = '' %]
-
-[% sections.head = BLOCK %]
-<meta name="viewport" content="width=device-width" />
-
-[% IF show_unimplemented %]
-<style type="text/css">
-.unimplemented {
-  outline: 2px orange solid;
-  opacity: 0.6;
-}
-</style>
-[% ELSE %]
-<style type="text/css">
-.unimplemented {
-    opacity: 0.2;
-    display: none;
-}
-.unimplemented:hover {
-    opacity: 1;
-}
-</style>
-[% END %]
-
-[%- chalresp_js -%]
-
-<script type="text/javascript">
-var postFormInitData = new Object();
-postFormInitData.icons = [
-    [%- FOREACH icon = icons %]
-        { 'src': '[% icon.userpic.url %]', 'alt': [% icon.userpic.description | js %] }
-        [%- UNLESS loop.last %],[% END -%]
-    [% END %]
-];
-
-postFormInitData.moodpics = {
-    [%- FOREACH mood = moodtheme.pics.pairs %]
-        [% mood.key | js %] : [ [% mood.value.name | js %], [% mood.value.pic | js %], [% mood.value.width | js %], [% mood.value.height | js %] ]
-        [%- UNLESS loop.last %],[% END -%]
-    [% END %]
-};
-
-postFormInitData.panels = {
-    "show" : {
-        [%- FOREACH panel = panels.show.pairs -%]
-            [%- panel.key | js -%] : [%- panel.value ? "true" : "false" -%]
-            [%- UNLESS loop.last %],[% END -%]
-        [%- END -%]
-    }
-};
-
-postFormInitData.minAnimation = [% min_animation ? "true" : "false" %];
-</script>
-[% END %]
-
-<div class="message-box ui-state-highlight">[% ".beta.on" | ml( aopts = "href='$site.root/betafeatures'", user = betacommunity.ljuser_display ) %]</div>
-
-[%- IF warnings.size > 0 -%]
-    [%- FOREACH warning IN warnings -%]
-        <div class="message-box [% warning.type %]-box">[%- warning.message -%]</div>
-    [%- END -%]
-[%- END -%]
-
-[% IF error_list %]
-<div class='error-box message-box'>
-<div class='title'>[% '.error.header' | ml %]</div>
-<ul class='error-list'>
-    [% FOREACH error = error_list %]
-        <li>[% error %] </li>
-    [% END %]
-</ul>
-</div>
-[% END %]
-
-[%- IF spellcheck.did_spellcheck -%]
-    <h2>[% 'entryform.spellchecked' | ml %]</h2>
-    [%-
-    IF spellcheck.results;
-         spellcheck.results;
-    ELSE;
-        'entryform.spellcheck.noerrors' | ml;
-    END -%]
-
-    [%# indicate where the spellcheck bit ends, and the entry form begins #%]
-    <h2>[% 'entryform.form' | ml %]</h2>
-[%- END -%]
-
-<form method="POST" id="post_entry" action="" class="
-        [%- formwidth == "narrow" ? "entry-partial-width" : "entry-full-width" -%]">
-    <input type="hidden" id="nojs" value="1" name="nojs" />
-
-    [% IF login_chal %]
-        <input type="hidden" id="login_chal" name="chal" value="[%login_chal%]" />
-        <input type="hidden" id="login_response" name="response" value="" />
-    [% END %]
-
-    [%- dw.form_auth -%]
-
-    <div id="primary"><!-- Start main column sub & entry -->
-        <div id="current_entry">
-            <fieldset>
-                <legend></legend>
-
-                <!-- FIXME: TODO
-                <div class="permalink unimplemented">permalink: <span class="url">http://long-username-is-long.dreamwidth.org/12345.html</span></div>
-                -->
-
-                <!-- TODO make this only take up one tab area? -->
-                <div class="toolbar">
-                    <div id="main-tools" class='subtoolbar'>
-                        <a href="[%site.root%]/poll/create">Create Poll</a>
-                        [%- preview_label = 'talk.btn.preview' | ml;
-                            form.submit( value = preview_label
-                                         name = "action:preview"
-                                         id = "preview_button" )
-                        %]
-
-                        [%- IF can_spellcheck;
-                            spellcheck_label = 'entryform.spellcheck' | ml;
-                            form.submit( value = spellcheck_label
-                                         name = "action:spellcheck"
-                                         id = "spellcheck_button" );
-                        END -%]
-
-                        <a href="#" class="unimplemented"><img src="[% site.imgroot%]/silk/site/help.png" alt="Help for valid HTML tags" title="Help for valid HTML tags" width="16" height="16"></a>
-                        <a href="[%site.root%]/entry/options" id="post_options"><img src="[% site.imgroot%]/silk/site/cog.png" alt="Edit entry form settings" title="Edit entry form settings" width="16" height="16"></a>
-                    </div>
-
-                    <div id="settings-tools" class='subtoolbar' aria-live="polite">
-                    <!-- TODO:
-                    autoformat
-                    supported html...
-                    -->
-                    </div>
-
-                    <div id="plaintext-tools" class='subtoolbar'>
-                        <!-- TODO: needs to be JS only -->
-                        <input type='button' value='Insert image' class='unimplemented' />
-                        <input type='button' value='Embed media' class='unimplemented' />
-                        <input type="button" value="Use Rich Text Mode" class='unimplemented' />
-                    </div>
-                </div>
-
-                <div class='subject-container'>
-                    [%- placeholder = ".subject.placeholder" | ml;
-                        title = ".subject.label" | ml;
-                        form.textbox( label = title
-                            id = "subject"
-                            name = "subject"
-
-                            maxlength = "255"
-                            size = "50"
-
-                            labelclass = "invisible"
-
-                            placeholder = placeholder
-                            title = title
-                    ) -%]
-                </div>
-
-                <div class='event-container'>
-                    [%- placeholder = ".event.placeholder" | ml -%]
-                    [%- title = ".event.label" | ml -%]
-                    [%- form.textarea( label = title
-                        id = "event"
-                        name = "event"
-
-                        cols = "50"
-                        rows = "20"
-                        wrap = "soft"
-
-                        labelclass = "invisible"
-
-                        placeholder = placeholder
-                        title = title
-                    ) -%]
-                </div>
-            </fieldset>
-        </div>
-
-    </div> <!-- End main column sub & entry -->
-
-    [%- BLOCK column %]
-        [% FOREACH component = components %]
-        <div class='component [% UNLESS panels.show.$component -%] inactive_component [%- END -%]' id='[% component %]_component'>
-        [%- CALL dw.ml_scope( "/entry/${component}.tt" );
-            INCLUDE "entry/${component}.tt";
-            CALL dw.ml_scope( "/entry.tt" )
-         %]
-        </div>
-        [%- END -%]
-    [% END -%]
-
-    <div id="secondary" class='column'> <!-- Start column of components -->
-        [% PROCESS column components = panels.order.shift %]
-    </div> <!-- end second column of components -->
-
-    <div id="tertiary"> <!-- Start components below entry field -->
-        <div class="column">
-            [% PROCESS column components = panels.order.shift %]
-        </div>
-
-        <div class="column tertiary-right">
-            [% PROCESS column components = panels.order.shift %]
-        </div>
-    </div>
-
-    <div class="submit action-bar">
-        <span id="actions">
-            <input type="submit" name="action:post" id="submit_entry" value="Post Entry" />
-        </span>
-
-<!--    TODO:
-        <span class="otheractions unimplemented">
-            <input type='submit' name="action:delete" value='Delete' />
-        </span>
--->
-    </div>
-</form>
-
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry.tt.text
--- a/views/entry.tt.text	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-;; -*- coding: utf-8 -*-
-.beta.on=You are beta-testing the new Create Entries page. If you notice any problems, please report them in [[user]]. To turn off beta testing, visit the <a [[aopts]]>beta features</a> page.
-
-.beta.off=You need to enable beta testing to use the new Create Entries page. <a [[aopts]]>Enable beta testing?</a>.
-
-.error.header=Error
-
-.event.label=Entry
-
-.event.placeholder=Your entry text...
-
-.subject.label=Subject
-
-.subject.placeholder=Subject
-
-.title=Create Entries
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/access.tt
--- a/views/entry/access.tt	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-    <fieldset>
-        <h3>[% ".header" | ml %]</h3>
-        <div class="inner">
-        <div id="security_group">
-            [%- securitylist = [];
-                FOREACH level IN security;
-                    securitylist.push( level.value, level.label );
-                END;
-            -%]
-            [%- label = ".label" | ml;
-            form.select( label = "$label:"
-                name = "security"
-                id = "security"
-
-                class = "select"
-
-                items = securitylist
-            ) -%]
-        </div>
-
-        [% IF customgroups.size > 0 %]
-        <div id="custom_access_groups">
-          <h4>[% ".header.custom" | ml %]</h4>
-          <ul>
-            [% FOREACH group IN customgroups %]
-                <li>[%- form.checkbox( label = group.label
-                            name = "custom_bit"
-                            id = "custom_bit_$group.value"
-
-                            labelclass = "checkboxlabel"
-
-                            value = group.value
-                ) -%]</li>
-            [% END %]
-          </ul>
-        </div>
-        [% END %]
-        </div>
-    </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/access.tt.text
--- a/views/entry/access.tt.text	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-;; -*- coding: utf-8 -*-
-.header=Security Settings
-
-.header.custom=Custom Access Groups
-
-.label=Level
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/age_restriction.tt
--- a/views/entry/age_restriction.tt	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-  <fieldset>
-    <h3>[% ".header" | ml %]</h3>
-  <div class='inner'>
-  <div class="age_level_reason">
-    <p>
-        [%- levelselect = [];
-            FOREACH opt IN [
-                ""              ".option.adultcontent.default"
-                "none"          ".option.adultcontent.none"
-                "discretion"    ".option.adultcontent.discretion"
-                "restricted"    ".option.adultcontent.restricted" ];
-
-                IF loop.count % 2 == 0;
-                    opt = opt | ml;
-                END;
-
-                levelselect.push( opt );
-            END
-        -%]
-        [%- label = ".label.age_restriction" | ml;
-        form.select( label = "$label:"
-            name = "age_restriction"
-            id = "age_restriction"
-
-            class = "select"
-
-            items = levelselect
-        ) -%]
-    </p>
-    <p>
-        [%- label = ".label.age_restriction_reason" | ml;
-        form.textbox( label = "$label:"
-            name = "age_restriction_reason"
-            id = "age_restriction_reason"
-
-            size = "30"
-            maxlength = "255"
-        ) -%]
-    </p>
-  </div>
-  </div>
-  </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/age_restriction.tt.text
--- a/views/entry/age_restriction.tt.text	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-;; -*- coding: utf-8 -*-
-.header=Age Restriction
-
-.label.age_restriction=Level
-
-.label.age_restriction_reason=Reason
-
-.option.adultcontent.default=Journal Default
-
-.option.adultcontent.discretion=Viewer Discretion Advised
-
-.option.adultcontent.none=No Age Restriction
-
-.option.adultcontent.restricted=Age 18+
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/comments-new.tt
--- a/views/entry/comments-new.tt	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-  <fieldset class="comments_settings">
-    <h3>Comment Settings</h3>
-  <div class='inner'>
-  <p>
-    <label class='unimplemented' for="comment_email">Email Comments:</label>
-    <select class='unimplemented select' name="comment_email" id="comment_email" class="select">
-      <option value="" selected="selected">Journal Default</option>
-      <option value="yes">Yes</option>
-      <option value="no">No</option>
-    </select>
-  </p>
-  <p>
-    <!-- TODO: also tweak "Enable comments" under the privacy tab: remove no one, rename to "Commenting Security" -->
-    <label class='unimplemented' for="comment_permissions">Allow from:</label>
-    <select class='unimplemented select' name="comment_permissions" id="comment_permissions" class="select">
-      <option value="" selected="selected">Journal Default</option>
-      <option value="anyone">Anyone</option>
-      <option value="registered">Registered Users</option>
-      <option value="access">Access List Only</option>
-    </select>
-  </p>
-  <p>
-    <label class='unimplemented' for="comment_enabled">Commenting is:</label>
-    <select class='unimplemented select' name="comment_enabled" id="comment_enabled" class="select">
-      <option value="" selected="selected">Journal Default</option>
-      <option value="enabled">Enabled</option>
-      <option value="closed">Closed</option>
-      <option value="hidden">Hidden</option>
-    </select>
-  </p>
-  <p>
-    <label class='unimplemented' for="comment_screening">Screen from:</label>
-    <select class='unimplemented select' name="comment_screening" id="comment_screening" class="select">
-      <option value="" selected="selected">Journal Default</option>
-      <option value="none">No Screening</option>
-      <option value="anonymous">Anonymous Only</option>
-      <option value="nonaccess">Non-Access List</option>
-      <option value="all">All Comments</option>
-    </select>
-  </p>
-  </div>
-  </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/comments.tt
--- a/views/entry/comments.tt	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-[%# old implementation for comments just to show people where things are
-; will be phased out for new implementation %]
-  <fieldset class="comments_settings">
-    <h3>[% ".header" | ml %]</h3>
-  <div class='inner'>
-  <p>
-    [%- form.select( label = "Comments:"
-        name = "comment_settings"
-        id = "comment_settings"
-
-        class ="select"
-
-        items = [
-            ""              "Journal Default"
-            "nocomments"    "Disabled"
-            "noemail"       "Don't Email"
-        ]
-    ) -%]
-  </p>
-  <p>
-    [%- form.select( label = "Screening:"
-        name = "opt_screening"
-        id = "opt_screening"
-
-        class = "select"
-
-        items = [
-            ""      "Journal Default"
-            "N"     "Disabled"
-            "R"     "Anonymous Only"
-            "F"     "Non-access List"
-            "A"     "All Comments"
-        ]
-    ) -%]
-  </p>
-  </div>
-  </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/comments.tt.text
--- a/views/entry/comments.tt.text	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-.header=Comment Settings
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/crosspost.tt
--- a/views/entry/crosspost.tt	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-[% IF remote %]
-  <fieldset>
-    <h3>[% ".header" | ml %]</h3>
-    <div class="inner">
-
-    <span class="crosspost-settings">
-        <a href="[% crosspost_url %]">[% ".settings.link" | ml %]</a>
-    </span>
-
-    [% IF crosspostlist.size > 0 %]
-
-        [%- crosspost_entry_label = ".label.crosspost_entry" | ml;
-        form.checkbox( label = crosspost_entry_label
-            name ="crosspost_entry"
-            id = "crosspost_entry"
-
-            labelclass = "checkboxlabel"
-
-            value = 1
-            default = crosspost_entry
-        ) -%]
-
-        <h4>[% ".header.accounts" | ml %]</h4>
-        <input type="text" name="autocompletefix" value="chrome autocomplete fix; ignore" style="display: none"/>
-        <ul id="crosspost_accounts">
-            [% crosspost_password_label = ".label.password" | ml %]
-
-            [% FOREACH account IN crosspostlist %]
-                <li>
-                [%- form.checkbox( label = account.name
-                    name = "crosspost"
-                    id = "crosspost_$account.id"
-
-                    labelclass = "checkboxlabel"
-
-                    value = account.id
-                    default = account.selected
-                ) -%]
-
-                [% IF account.need_password %]
-                    <div class="crosspost_password_container" id="crosspost_password_container_[% account.id %]">
-                    [%- form.password( label = "$crosspost_password_label:"
-                            name = "crosspost_password_$account.id"
-                            id = "crosspost_password_$account.id"
-
-                            class = "crosspost_password"
-                            labelclass="checkboxlabel"
-                    ) -%]
-
-                        <div class="crosspost_password_status" aria-live="imperative"></div>
-                        [%# we don't want these to be carried over between posts %]
-                        <input type="hidden" name="crosspost_chal_[%account.id%]" id="crosspost_chal_[%account.id%]" class="crosspost_chal" />
-                        <input type="hidden" name="crosspost_resp_[%account.id%]" id="crosspost_resp_[%account.id%]" class="crosspost_resp" />
-                    </div>
-                [% END %]
-                </li>
-              [% END %]
-        </ul>
-      [% END %]
-      </div>
-    </fieldset>
-[% END %]
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/crosspost.tt.text
--- a/views/entry/crosspost.tt.text	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-;; -*- coding: utf-8 -*-
-.header=Crosspost
-
-.header.accounts=Crosspost Accounts
-
-.label.crosspost_entry=Crosspost this entry
-
-.label.password=Password
-
-.settings.link=go to settings
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/currents.tt
--- a/views/entry/currents.tt	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-  <fieldset>
-    <h3>[% ".header" | ml %]</h3>
-    <div class='inner'>
-      <p>
-        [%- moodselect = [];
-            FOREACH mood IN moods;
-                moodselect.push( mood.id, mood.name );
-            END
-        -%]
-        [%- label = ".label.current_mood" | ml;
-        form.select( label = "$label:"
-            name = "current_mood"
-            id = "current_mood"
-
-            class = "select"
-
-            items = moodselect
-        ) -%]
-      </p>
-      <p>
-        [%- label = ".label.current_mood_other" | ml;
-        form.textbox( label = "$label:"
-            name = "current_mood_other"
-            id = "current_mood_other"
-
-            size = "20"
-            maxlength = "30"
-         ) %]
-      </p>
-      <p>
-        [%- label = ".label.current_music" | ml;
-        form.textbox( label = "$label:"
-            name = "current_music"
-            id = "current_music"
-
-            size="20"
-            maxlength="80"
-        ) %]
-      </p>
-      <p>
-        [%- label = ".label.current_location" | ml;
-        form.textbox( label = "$label:"
-            name = "current_location"
-            id = "current_location"
-
-            size = "20"
-            maxlength = "60"
-        ) %]
-      </p>
-    </div>
-  </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/currents.tt.text
--- a/views/entry/currents.tt.text	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-;; -*- coding: utf-8 -*-
-.header=Currents
-
-.label.current_location=Location
-
-.label.current_mood=Mood
-
-.label.current_mood_other=Custom Mood
-
-.label.current_music=Music
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/displaydate.tt
--- a/views/entry/displaydate.tt	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-
-  <fieldset>
-    <h3>[% ".header" | ml %]</h3>
-    <div class='inner'>
-      <div class='time_container' id="entrytime_container">
-        [%- form.hidden(
-            name  = "trust_datetime"
-            id    = "trust_datetime"
-            value = displaydate.trust_initial   # FIXME: do this in the controller, rather than here?
-        ) -%]
-
-        [%- entrytime_title = ".title.entrytime" | ml( example = "$displaydate.year-01-30" );
-        form.textbox(
-            name = "entrytime"
-            id = "entrytime"
-
-            maxlength = "10"
-            size = "10"
-
-            title = entrytime_title
-            default = "$displaydate.year-$displaydate.month-$displaydate.day"
-        ) -%]
-
-        [%- entrytime_title = ".title.entrytime_hr" | ml;
-        form.textbox(
-            name = "entrytime_hr"
-            id = "entrytime_hr"
-
-            maxlength = "2"
-            size = "2"
-            class = "time_hr"
-
-            title = entrytime_title
-            default = displaydate.hour
-        ) ~%]
-        :
-        [%- entrytime_title = ".title.entrytime_min" | ml;
-        form.textbox(
-            name = "entrytime_min"
-            id = "entrytime_min"
-
-            maxlength = "2"
-            size = "2"
-            class = "time_min"
-
-            title = entrytime_title
-            default = displaydate.minute
-        ) -%]
-
-        [% # update year so it doesn't look dated
-           # keep the month/hours, etc static because the example was chosen to avoid ambiguity %]
-        <div class="dateformat">(e.g. [% displaydate.year %]-01-30 23:59)</div>
-      </div>
-
-      <div class="displaydate_options">
-        <p>
-        [%- autoupdate_label = ".label.autoupdate" | ml;
-        form.checkbox( label = autoupdate_label
-            name ="update_displaydate"
-            id = "entrytime_auto_update"
-
-            labelclass = "radiolabel"
-
-            value = "1"
-        ) -%]
-        </p>
-        <p>
-        [%- stickyentry_label = ".label.sticky" | ml;
-        form.checkbox( label = stickyentry_label
-            name ="sticky_entry"
-            id = "sticky_entry"
-
-            class = "unimplemented"
-            labelclass = "unimplemented radiolabel"
-
-            value = "1"
-        ) -%]
-        </p>
-        <p>
-        [%- dateoutoforder_label = ".label.dateoutoforder" | ml;
-        form.checkbox( label = dateoutoforder_label
-            name ="entrytime_outoforder"
-            id = "entrytime_outoforder"
-
-            labelclass = "radiolabel"
-
-            value = "1"
-        ) -%]
-        </p>
-      </div>
-
-    </div>
-  </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/displaydate.tt.text
--- a/views/entry/displaydate.tt.text	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-;; -*- coding: utf-8 -*-
-.header=Display Date
-
-.label.autoupdate=Use the time when entry is posted
-
-.label.dateoutoforder=Don't show on Reading Pages (allows dating out of order)
-
-.label.sticky=Make sticky (future option?)
-
-.title.entrytime=displayed entry date; example [[example]]
-
-.title.entrytime_hr=hours; 24-hour time
-
-.title.entrytime_min=minutes
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/form.tt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/form.tt	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,283 @@
+[%# entry.tt
+
+Page to post and edit entries
+
+Authors:
+    Afuna <coder.dw@afunamatata.com>
+
+This program is free software; you may redistribute it and/or modify it under
+the same terms as Perl itself.  For a copy of the license, please reference
+'perldoc perlartistic' or 'perldoc perlgpl'.
+%]
+
+[%- CALL dw.active_resource_group( "jquery" ) -%]
+
+[% dw.need_res(
+    "stc/postform.css",
+    "stc/postform-resize.css"
+) %]
+
+[% dw.need_res( { group => "jquery" },
+    # jquery ui
+    "js/jquery/jquery.ui.core.js"
+    "js/jquery/jquery.ui.widget.js"
+
+    "js/jquery/jquery.ui.datepicker.js"
+    "js/jquery/jquery.ui.dialog.js"
+
+    "stc/jquery/jquery.ui.core.css"
+    "stc/jquery/jquery.ui.datepicker.css"
+    "stc/jquery/jquery.ui.dialog.css"
+
+
+    # jquery utility plugins
+    #"js/jquery.ultrafocus.js"
+    "js/jquery.radioreveal.js"
+
+    # icons
+    "js/jquery.iconrandom.js"
+
+    # tags
+    "js/jquery.vertigro.js"
+    "js/jquery.tagselector.js"
+    "js/jquery/jquery.ui.autocomplete.js"
+    "js/jquery.autocompletewithunknown.js"
+    "stc/jquery.tagselector.css"
+    "stc/jquery/jquery.ui.autocomplete.css"
+    "stc/jquery.autocompletewithunknown.css"
+
+    # crosspost
+    "js/md5.js"
+    "js/jquery.crosspost.js"
+
+    # page-specific
+    "js/jquery.postform.js"
+) %]
+
+[% IF remote && remote.can_use_userpic_select;
+dw.need_res( { group => "jquery" },
+    "js/jquery.iconselector.js"
+    "stc/jquery.iconselector.css"
+); END %]
+
+[% sections.title = '.title' | ml %]
+[% sections.contentopts = '' %]
+
+[% sections.head = BLOCK %]
+<meta name="viewport" content="width=device-width" />
+
+[% IF show_unimplemented %]
+<style type="text/css">
+.unimplemented {
+  outline: 2px orange solid;
+  opacity: 0.6;
+}
+</style>
+[% ELSE %]
+<style type="text/css">
+.unimplemented {
+    opacity: 0.2;
+    display: none;
+}
+.unimplemented:hover {
+    opacity: 1;
+}
+</style>
+[% END %]
+
+[%- chalresp_js -%]
+
+<script type="text/javascript">
+var postFormInitData = new Object();
+postFormInitData.icons = [
+    [%- FOREACH icon = icons %]
+        { 'src': '[% icon.userpic.url %]', 'alt': [% icon.userpic.description | js %] }
+        [%- UNLESS loop.last %],[% END -%]
+    [% END %]
+];
+
+postFormInitData.moodpics = {
+    [%- FOREACH mood = moodtheme.pics.pairs %]
+        [% mood.key | js %] : [ [% mood.value.name | js %], [% mood.value.pic | js %], [% mood.value.width | js %], [% mood.value.height | js %] ]
+        [%- UNLESS loop.last %],[% END -%]
+    [% END %]
+};
+
+postFormInitData.panels = {
+    "show" : {
+        [%- FOREACH panel = panels.show.pairs -%]
+            [%- panel.key | js -%] : [%- panel.value ? "true" : "false" -%]
+            [%- UNLESS loop.last %],[% END -%]
+        [%- END -%]
+    }
+};
+
+postFormInitData.minAnimation = [% min_animation ? "true" : "false" %];
+</script>
+[% END %]
+
+<div class="message-box ui-state-highlight">[% ".beta.on" | ml( aopts = "href='$site.root/betafeatures'", user = betacommunity.ljuser_display ) %]</div>
+
+[%- IF warnings.size > 0 -%]
+    [%- FOREACH warning IN warnings -%]
+        <div class="message-box [% warning.type %]-box">[%- warning.message -%]</div>
+    [%- END -%]
+[%- END -%]
+
+[% IF error_list %]
+<div class='error-box message-box'>
+<div class='title'>[% '.error.header' | ml %]</div>
+<ul class='error-list'>
+    [% FOREACH error = error_list %]
+        <li>[% error %] </li>
+    [% END %]
+</ul>
+</div>
+[% END %]
+
+[%- IF spellcheck.did_spellcheck -%]
+    <h2>[% 'entryform.spellchecked' | ml %]</h2>
+    [%-
+    IF spellcheck.results;
+         spellcheck.results;
+    ELSE;
+        'entryform.spellcheck.noerrors' | ml;
+    END -%]
+
+    [%# indicate where the spellcheck bit ends, and the entry form begins #%]
+    <h2>[% 'entryform.form' | ml %]</h2>
+[%- END -%]
+
+<form method="POST" id="post_entry" action="" class="
+        [%- formwidth == "narrow" ? "entry-partial-width" : "entry-full-width" -%]">
+    <input type="hidden" id="nojs" value="1" name="nojs" />
+
+    [% IF login_chal %]
+        <input type="hidden" id="login_chal" name="chal" value="[%login_chal%]" />
+        <input type="hidden" id="login_response" name="response" value="" />
+    [% END %]
+
+    [%- dw.form_auth -%]
+
+    <div id="primary"><!-- Start main column sub & entry -->
+        <div id="current_entry">
+            <fieldset>
+                <legend></legend>
+
+                <!-- FIXME: TODO
+                <div class="permalink unimplemented">permalink: <span class="url">http://long-username-is-long.dreamwidth.org/12345.html</span></div>
+                -->
+
+                <!-- TODO make this only take up one tab area? -->
+                <div class="toolbar">
+                    <div id="main-tools" class='subtoolbar'>
+                        <a href="[%site.root%]/poll/create">Create Poll</a>
+                        [%- preview_label = 'talk.btn.preview' | ml;
+                            form.submit( value = preview_label
+                                         name = "action:preview"
+                                         id = "preview_button" )
+                        %]
+
+                        [%- IF can_spellcheck;
+                            spellcheck_label = 'entryform.spellcheck' | ml;
+                            form.submit( value = spellcheck_label
+                                         name = "action:spellcheck"
+                                         id = "spellcheck_button" );
+                        END -%]
+
+                        <a href="#" class="unimplemented"><img src="[% site.imgroot%]/silk/site/help.png" alt="Help for valid HTML tags" title="Help for valid HTML tags" width="16" height="16"></a>
+                        <a href="[%site.root%]/entry/options" id="post_options"><img src="[% site.imgroot%]/silk/site/cog.png" alt="Edit entry form settings" title="Edit entry form settings" width="16" height="16"></a>
+                    </div>
+
+                    <div id="settings-tools" class='subtoolbar' aria-live="polite">
+                    <!-- TODO:
+                    autoformat
+                    supported html...
+                    -->
+                    </div>
+
+                    <div id="plaintext-tools" class='subtoolbar'>
+                        <!-- TODO: needs to be JS only -->
+                        <input type='button' value='Insert image' class='unimplemented' />
+                        <input type='button' value='Embed media' class='unimplemented' />
+                        <input type="button" value="Use Rich Text Mode" class='unimplemented' />
+                    </div>
+                </div>
+
+                <div class='subject-container'>
+                    [%- placeholder = ".subject.placeholder" | ml;
+                        title = ".subject.label" | ml;
+                        form.textbox( label = title
+                            id = "subject"
+                            name = "subject"
+
+                            maxlength = "255"
+                            size = "50"
+
+                            labelclass = "invisible"
+
+                            placeholder = placeholder
+                            title = title
+                    ) -%]
+                </div>
+
+                <div class='event-container'>
+                    [%- placeholder = ".event.placeholder" | ml -%]
+                    [%- title = ".event.label" | ml -%]
+                    [%- form.textarea( label = title
+                        id = "event"
+                        name = "event"
+
+                        cols = "50"
+                        rows = "20"
+                        wrap = "soft"
+
+                        labelclass = "invisible"
+
+                        placeholder = placeholder
+                        title = title
+                    ) -%]
+                </div>
+            </fieldset>
+        </div>
+
+    </div> <!-- End main column sub & entry -->
+
+    [%- BLOCK column %]
+        [% FOREACH component = components %]
+        <div class='component [% UNLESS panels.show.$component -%] inactive_component [%- END -%]' id='[% component %]_component'>
+        [%- CALL dw.ml_scope( "/entry/module-${component}.tt" );
+            INCLUDE "entry/module-${component}.tt";
+            CALL dw.ml_scope( "/entry/form.tt" )
+         %]
+        </div>
+        [%- END -%]
+    [% END -%]
+
+    <div id="secondary" class='column'> <!-- Start column of components -->
+        [% PROCESS column components = panels.order.shift %]
+    </div> <!-- end second column of components -->
+
+    <div id="tertiary"> <!-- Start components below entry field -->
+        <div class="column">
+            [% PROCESS column components = panels.order.shift %]
+        </div>
+
+        <div class="column tertiary-right">
+            [% PROCESS column components = panels.order.shift %]
+        </div>
+    </div>
+
+    <div class="submit action-bar">
+        <span id="actions">
+            <input type="submit" name="action:post" id="submit_entry" value="Post Entry" />
+        </span>
+
+<!--    TODO:
+        <span class="otheractions unimplemented">
+            <input type='submit' name="action:delete" value='Delete' />
+        </span>
+-->
+    </div>
+</form>
+
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/form.tt.text
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/form.tt.text	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,16 @@
+;; -*- coding: utf-8 -*-
+.beta.on=You are beta-testing the new Create Entries page. If you notice any problems, please report them in [[user]]. To turn off beta testing, visit the <a [[aopts]]>beta features</a> page.
+
+.beta.off=You need to enable beta testing to use the new Create Entries page. <a [[aopts]]>Enable beta testing?</a>.
+
+.error.header=Error
+
+.event.label=Entry
+
+.event.placeholder=Your entry text...
+
+.subject.label=Subject
+
+.subject.placeholder=Subject
+
+.title=Create Entries
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/icons.tt
--- a/views/entry/icons.tt	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-[% IF remote %]
-<fieldset>
-  <h3>[% ".header" | ml %]</h3>
-
-  <div class='inner'>
-    <div id='icon_preview'>
-      <div class="icon [% IF icons.size==0 %] noicon [% END %]">
-        [% IF icons.size > 0 %]
-            [% IF defaulticon %]
-                <img id="icon_preview_image" src="[% defaulticon.url | url %]" alt="[% defaulticon.description | html %]" />
-            [% END %]
-        [% ELSE %]
-            <a href='[% site.root %]/editicons'>[% 'entryform.userpic.upload' | ml %]</a>
-        [% END %]
-        </div>
-    </div>
-
-    [%- IF icons.size > 0 -%]
-        [%- iconselect = [] -%]
-        [%- FOREACH icon IN icons -%]
-            [%- IF icon.keyword.defined -%]
-                [%- iconselect.push( icon.keyword, icon.keyword ) -%]
-            [%- ELSE -%]
-                [%- defaulttext = ".keyword.default" | ml -%]
-                [%- iconselect.push( "", defaulttext ) -%]
-            [% END %]
-        [% END %]
-
-        [%- form.select(
-            name = "icon"
-            id = "iconselect"
-
-            class = "select"
-
-            items = iconselect
-        ) -%]
-    [% END %]
-  </div>
-</fieldset>
-[% END %]
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/icons.tt.text
--- a/views/entry/icons.tt.text	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-;; -*- coding: utf-8 -*-
-.header=Icon
-
-.keyword.default=(default)
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/journal.tt
--- a/views/entry/journal.tt	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
- <fieldset>
-   <h3>[% ".header" | ml %]</h3>
-   <div class="inner">
-
-   <div id="post_as">
-   [% IF remote %]
-    <fieldset>
-    <legend><span>[% ".label.post_as" | ml %]:</span></legend>
-        [%-
-        form.radio( label = remote.user
-            name = "post_as"
-            id = "post_as_remote"
-
-            labelclass = "radiolabel"
-
-            value = "remote"
-            default = ( post_as == "remote" )
-        ) -%]
-        [%- post_as_other_label = ".label.post_as_other" | ml;
-        form.radio( label = post_as_other_label
-            name = "post_as"
-            id = "post_as_other"
-
-            labelclass = "radiolabel"
-
-            value = "other"
-            default = ( post_as == "other" )
-        ) -%]
-    </fieldset>
-   [% ELSE %]
-        [%- form.hidden(
-            name = "post_as"
-            id = "post_as_other"
-
-            value = "other"
-        ) -%]
-   [% END %]
-   </div>
-
-   [% IF remote %]
-   <div id="post_to"  class="posting_settings">
-       <label for="usejournal">[%- ".label.post_to" | ml %]:</label>
-        [%- IF journallist.size > 1 %]
-            [%-
-                journalselect = [];
-                FOREACH journal IN journallist;
-                    IF journal.equals( remote );
-                        journalselect.push( "", journal.user );
-                    ELSE;
-                        journalselect.push( journal.user, journal.user );
-                    END;
-                END
-            -%]
-
-            [% form.select(
-                name = "usejournal"
-                id = "usejournal"
-
-                class = "select"
-
-                items = journalselect
-            ) -%]
-        [% ELSE %]
-            [% journallist.first.ljuser_display%]</span>
-            [% form.hidden( name = "usejournal", id = "usejournal", value = journallist.first.user ) %]
-        [% END %]
-   </div>
-   [% END %]
-
-   <fieldset id="post_login" class="posting_settings">
-    <legend>[% ".header.post_as" | ml %]</legend>
-       <ul>
-       <li>
-        [%- postas_username_label = ".label.post_as_username" | ml;
-        form.textbox( label = "$postas_username_label:"
-            name = "username"
-            id = "post_username"
-        ) -%]
-       </li>
-       <li>
-        [%- postas_password_label = ".label.post_as_password" | ml;
-        form.password( label = "$postas_password_label:"
-            name = "password"
-            id = "password"
-        ) -%]
-       </li>
-       <li>
-            <label for="postas_usejournal">[% ".label.post_to" | ml %]:</label>
-            [% IF usejournal %]
-                [% usejournal.ljuser_display %]
-            [% ELSE %]
-                [% form.textbox( name = "postas_usejournal", id = "postas_usejournal" ) %]
-            [% END %]
-       </li>
-       </ul>
-   </fieldset>
-
-   </div>
- </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/journal.tt.text
--- a/views/entry/journal.tt.text	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-;; -*- coding: utf-8 -*-
-.header=Journal
-
-.header.post_as=Posting as User
-
-.label.post_as=Post as
-
-.label.post_as_other=another user
-
-.label.post_as_password=Password
-
-.label.post_as_username=Username
-
-.label.post_to= Post to
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-access.tt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-access.tt	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,39 @@
+    <fieldset>
+        <h3>[% ".header" | ml %]</h3>
+        <div class="inner">
+        <div id="security_group">
+            [%- securitylist = [];
+                FOREACH level IN security;
+                    securitylist.push( level.value, level.label );
+                END;
+            -%]
+            [%- label = ".label" | ml;
+            form.select( label = "$label:"
+                name = "security"
+                id = "security"
+
+                class = "select"
+
+                items = securitylist
+            ) -%]
+        </div>
+
+        [% IF customgroups.size > 0 %]
+        <div id="custom_access_groups">
+          <h4>[% ".header.custom" | ml %]</h4>
+          <ul>
+            [% FOREACH group IN customgroups %]
+                <li>[%- form.checkbox( label = group.label
+                            name = "custom_bit"
+                            id = "custom_bit_$group.value"
+
+                            labelclass = "checkboxlabel"
+
+                            value = group.value
+                ) -%]</li>
+            [% END %]
+          </ul>
+        </div>
+        [% END %]
+        </div>
+    </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-access.tt.text
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-access.tt.text	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,6 @@
+;; -*- coding: utf-8 -*-
+.header=Security Settings
+
+.header.custom=Custom Access Groups
+
+.label=Level
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-age_restriction.tt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-age_restriction.tt	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,42 @@
+  <fieldset>
+    <h3>[% ".header" | ml %]</h3>
+  <div class='inner'>
+  <div class="age_level_reason">
+    <p>
+        [%- levelselect = [];
+            FOREACH opt IN [
+                ""              ".option.adultcontent.default"
+                "none"          ".option.adultcontent.none"
+                "discretion"    ".option.adultcontent.discretion"
+                "restricted"    ".option.adultcontent.restricted" ];
+
+                IF loop.count % 2 == 0;
+                    opt = opt | ml;
+                END;
+
+                levelselect.push( opt );
+            END
+        -%]
+        [%- label = ".label.age_restriction" | ml;
+        form.select( label = "$label:"
+            name = "age_restriction"
+            id = "age_restriction"
+
+            class = "select"
+
+            items = levelselect
+        ) -%]
+    </p>
+    <p>
+        [%- label = ".label.age_restriction_reason" | ml;
+        form.textbox( label = "$label:"
+            name = "age_restriction_reason"
+            id = "age_restriction_reason"
+
+            size = "30"
+            maxlength = "255"
+        ) -%]
+    </p>
+  </div>
+  </div>
+  </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-age_restriction.tt.text
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-age_restriction.tt.text	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,14 @@
+;; -*- coding: utf-8 -*-
+.header=Age Restriction
+
+.label.age_restriction=Level
+
+.label.age_restriction_reason=Reason
+
+.option.adultcontent.default=Journal Default
+
+.option.adultcontent.discretion=Viewer Discretion Advised
+
+.option.adultcontent.none=No Age Restriction
+
+.option.adultcontent.restricted=Age 18+
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-comments-new.tt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-comments-new.tt	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,42 @@
+  <fieldset class="comments_settings">
+    <h3>Comment Settings</h3>
+  <div class='inner'>
+  <p>
+    <label class='unimplemented' for="comment_email">Email Comments:</label>
+    <select class='unimplemented select' name="comment_email" id="comment_email" class="select">
+      <option value="" selected="selected">Journal Default</option>
+      <option value="yes">Yes</option>
+      <option value="no">No</option>
+    </select>
+  </p>
+  <p>
+    <!-- TODO: also tweak "Enable comments" under the privacy tab: remove no one, rename to "Commenting Security" -->
+    <label class='unimplemented' for="comment_permissions">Allow from:</label>
+    <select class='unimplemented select' name="comment_permissions" id="comment_permissions" class="select">
+      <option value="" selected="selected">Journal Default</option>
+      <option value="anyone">Anyone</option>
+      <option value="registered">Registered Users</option>
+      <option value="access">Access List Only</option>
+    </select>
+  </p>
+  <p>
+    <label class='unimplemented' for="comment_enabled">Commenting is:</label>
+    <select class='unimplemented select' name="comment_enabled" id="comment_enabled" class="select">
+      <option value="" selected="selected">Journal Default</option>
+      <option value="enabled">Enabled</option>
+      <option value="closed">Closed</option>
+      <option value="hidden">Hidden</option>
+    </select>
+  </p>
+  <p>
+    <label class='unimplemented' for="comment_screening">Screen from:</label>
+    <select class='unimplemented select' name="comment_screening" id="comment_screening" class="select">
+      <option value="" selected="selected">Journal Default</option>
+      <option value="none">No Screening</option>
+      <option value="anonymous">Anonymous Only</option>
+      <option value="nonaccess">Non-Access List</option>
+      <option value="all">All Comments</option>
+    </select>
+  </p>
+  </div>
+  </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-comments.tt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-comments.tt	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,37 @@
+[%# old implementation for comments just to show people where things are
+; will be phased out for new implementation %]
+  <fieldset class="comments_settings">
+    <h3>[% ".header" | ml %]</h3>
+  <div class='inner'>
+  <p>
+    [%- form.select( label = "Comments:"
+        name = "comment_settings"
+        id = "comment_settings"
+
+        class ="select"
+
+        items = [
+            ""              "Journal Default"
+            "nocomments"    "Disabled"
+            "noemail"       "Don't Email"
+        ]
+    ) -%]
+  </p>
+  <p>
+    [%- form.select( label = "Screening:"
+        name = "opt_screening"
+        id = "opt_screening"
+
+        class = "select"
+
+        items = [
+            ""      "Journal Default"
+            "N"     "Disabled"
+            "R"     "Anonymous Only"
+            "F"     "Non-access List"
+            "A"     "All Comments"
+        ]
+    ) -%]
+  </p>
+  </div>
+  </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-comments.tt.text
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-comments.tt.text	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,1 @@
+.header=Comment Settings
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-crosspost.tt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-crosspost.tt	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,62 @@
+[% IF remote %]
+  <fieldset>
+    <h3>[% ".header" | ml %]</h3>
+    <div class="inner">
+
+    <span class="crosspost-settings">
+        <a href="[% crosspost_url %]">[% ".settings.link" | ml %]</a>
+    </span>
+
+    [% IF crosspostlist.size > 0 %]
+
+        [%- crosspost_entry_label = ".label.crosspost_entry" | ml;
+        form.checkbox( label = crosspost_entry_label
+            name ="crosspost_entry"
+            id = "crosspost_entry"
+
+            labelclass = "checkboxlabel"
+
+            value = 1
+            default = crosspost_entry
+        ) -%]
+
+        <h4>[% ".header.accounts" | ml %]</h4>
+        <input type="text" name="autocompletefix" value="chrome autocomplete fix; ignore" style="display: none"/>
+        <ul id="crosspost_accounts">
+            [% crosspost_password_label = ".label.password" | ml %]
+
+            [% FOREACH account IN crosspostlist %]
+                <li>
+                [%- form.checkbox( label = account.name
+                    name = "crosspost"
+                    id = "crosspost_$account.id"
+
+                    labelclass = "checkboxlabel"
+
+                    value = account.id
+                    default = account.selected
+                ) -%]
+
+                [% IF account.need_password %]
+                    <div class="crosspost_password_container" id="crosspost_password_container_[% account.id %]">
+                    [%- form.password( label = "$crosspost_password_label:"
+                            name = "crosspost_password_$account.id"
+                            id = "crosspost_password_$account.id"
+
+                            class = "crosspost_password"
+                            labelclass="checkboxlabel"
+                    ) -%]
+
+                        <div class="crosspost_password_status" aria-live="imperative"></div>
+                        [%# we don't want these to be carried over between posts %]
+                        <input type="hidden" name="crosspost_chal_[%account.id%]" id="crosspost_chal_[%account.id%]" class="crosspost_chal" />
+                        <input type="hidden" name="crosspost_resp_[%account.id%]" id="crosspost_resp_[%account.id%]" class="crosspost_resp" />
+                    </div>
+                [% END %]
+                </li>
+              [% END %]
+        </ul>
+      [% END %]
+      </div>
+    </fieldset>
+[% END %]
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-crosspost.tt.text
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-crosspost.tt.text	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,10 @@
+;; -*- coding: utf-8 -*-
+.header=Crosspost
+
+.header.accounts=Crosspost Accounts
+
+.label.crosspost_entry=Crosspost this entry
+
+.label.password=Password
+
+.settings.link=go to settings
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-currents.tt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-currents.tt	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,51 @@
+  <fieldset>
+    <h3>[% ".header" | ml %]</h3>
+    <div class='inner'>
+      <p>
+        [%- moodselect = [];
+            FOREACH mood IN moods;
+                moodselect.push( mood.id, mood.name );
+            END
+        -%]
+        [%- label = ".label.current_mood" | ml;
+        form.select( label = "$label:"
+            name = "current_mood"
+            id = "current_mood"
+
+            class = "select"
+
+            items = moodselect
+        ) -%]
+      </p>
+      <p>
+        [%- label = ".label.current_mood_other" | ml;
+        form.textbox( label = "$label:"
+            name = "current_mood_other"
+            id = "current_mood_other"
+
+            size = "20"
+            maxlength = "30"
+         ) %]
+      </p>
+      <p>
+        [%- label = ".label.current_music" | ml;
+        form.textbox( label = "$label:"
+            name = "current_music"
+            id = "current_music"
+
+            size="20"
+            maxlength="80"
+        ) %]
+      </p>
+      <p>
+        [%- label = ".label.current_location" | ml;
+        form.textbox( label = "$label:"
+            name = "current_location"
+            id = "current_location"
+
+            size = "20"
+            maxlength = "60"
+        ) %]
+      </p>
+    </div>
+  </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-currents.tt.text
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-currents.tt.text	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,10 @@
+;; -*- coding: utf-8 -*-
+.header=Currents
+
+.label.current_location=Location
+
+.label.current_mood=Mood
+
+.label.current_mood_other=Custom Mood
+
+.label.current_music=Music
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-displaydate.tt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-displaydate.tt	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,93 @@
+
+  <fieldset>
+    <h3>[% ".header" | ml %]</h3>
+    <div class='inner'>
+      <div class='time_container' id="entrytime_container">
+        [%- form.hidden(
+            name  = "trust_datetime"
+            id    = "trust_datetime"
+            value = displaydate.trust_initial   # FIXME: do this in the controller, rather than here?
+        ) -%]
+
+        [%- entrytime_title = ".title.entrytime" | ml( example = "$displaydate.year-01-30" );
+        form.textbox(
+            name = "entrytime"
+            id = "entrytime"
+
+            maxlength = "10"
+            size = "10"
+
+            title = entrytime_title
+            default = "$displaydate.year-$displaydate.month-$displaydate.day"
+        ) -%]
+
+        [%- entrytime_title = ".title.entrytime_hr" | ml;
+        form.textbox(
+            name = "entrytime_hr"
+            id = "entrytime_hr"
+
+            maxlength = "2"
+            size = "2"
+            class = "time_hr"
+
+            title = entrytime_title
+            default = displaydate.hour
+        ) ~%]
+        :
+        [%- entrytime_title = ".title.entrytime_min" | ml;
+        form.textbox(
+            name = "entrytime_min"
+            id = "entrytime_min"
+
+            maxlength = "2"
+            size = "2"
+            class = "time_min"
+
+            title = entrytime_title
+            default = displaydate.minute
+        ) -%]
+
+        [% # update year so it doesn't look dated
+           # keep the month/hours, etc static because the example was chosen to avoid ambiguity %]
+        <div class="dateformat">(e.g. [% displaydate.year %]-01-30 23:59)</div>
+      </div>
+
+      <div class="displaydate_options">
+        <p>
+        [%- autoupdate_label = ".label.autoupdate" | ml;
+        form.checkbox( label = autoupdate_label
+            name ="update_displaydate"
+            id = "entrytime_auto_update"
+
+            labelclass = "radiolabel"
+
+            value = "1"
+        ) -%]
+        </p>
+        <p>
+        [%- stickyentry_label = ".label.sticky" | ml;
+        form.checkbox( label = stickyentry_label
+            name ="sticky_entry"
+            id = "sticky_entry"
+
+            class = "unimplemented"
+            labelclass = "unimplemented radiolabel"
+
+            value = "1"
+        ) -%]
+        </p>
+        <p>
+        [%- dateoutoforder_label = ".label.dateoutoforder" | ml;
+        form.checkbox( label = dateoutoforder_label
+            name ="entrytime_outoforder"
+            id = "entrytime_outoforder"
+
+            labelclass = "radiolabel"
+
+            value = "1"
+        ) -%]
+        </p>
+      </div>
+
+    </div>
+  </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-displaydate.tt.text
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-displaydate.tt.text	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,14 @@
+;; -*- coding: utf-8 -*-
+.header=Display Date
+
+.label.autoupdate=Use the time when entry is posted
+
+.label.dateoutoforder=Don't show on Reading Pages (allows dating out of order)
+
+.label.sticky=Make sticky (future option?)
+
+.title.entrytime=displayed entry date; example [[example]]
+
+.title.entrytime_hr=hours; 24-hour time
+
+.title.entrytime_min=minutes
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-icons.tt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-icons.tt	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,40 @@
+[% IF remote %]
+<fieldset>
+  <h3>[% ".header" | ml %]</h3>
+
+  <div class='inner'>
+    <div id='icon_preview'>
+      <div class="icon [% IF icons.size==0 %] noicon [% END %]">
+        [% IF icons.size > 0 %]
+            [% IF defaulticon %]
+                <img id="icon_preview_image" src="[% defaulticon.url | url %]" alt="[% defaulticon.description | html %]" />
+            [% END %]
+        [% ELSE %]
+            <a href='[% site.root %]/editicons'>[% 'entryform.userpic.upload' | ml %]</a>
+        [% END %]
+        </div>
+    </div>
+
+    [%- IF icons.size > 0 -%]
+        [%- iconselect = [] -%]
+        [%- FOREACH icon IN icons -%]
+            [%- IF icon.keyword.defined -%]
+                [%- iconselect.push( icon.keyword, icon.keyword ) -%]
+            [%- ELSE -%]
+                [%- defaulttext = ".keyword.default" | ml -%]
+                [%- iconselect.push( "", defaulttext ) -%]
+            [% END %]
+        [% END %]
+
+        [%- form.select(
+            name = "icon"
+            id = "iconselect"
+
+            class = "select"
+
+            items = iconselect
+        ) -%]
+    [% END %]
+  </div>
+</fieldset>
+[% END %]
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-icons.tt.text
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-icons.tt.text	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,4 @@
+;; -*- coding: utf-8 -*-
+.header=Icon
+
+.keyword.default=(default)
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-journal.tt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-journal.tt	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,99 @@
+ <fieldset>
+   <h3>[% ".header" | ml %]</h3>
+   <div class="inner">
+
+   <div id="post_as">
+   [% IF remote %]
+    <fieldset>
+    <legend><span>[% ".label.post_as" | ml %]:</span></legend>
+        [%-
+        form.radio( label = remote.user
+            name = "post_as"
+            id = "post_as_remote"
+
+            labelclass = "radiolabel"
+
+            value = "remote"
+            default = ( post_as == "remote" )
+        ) -%]
+        [%- post_as_other_label = ".label.post_as_other" | ml;
+        form.radio( label = post_as_other_label
+            name = "post_as"
+            id = "post_as_other"
+
+            labelclass = "radiolabel"
+
+            value = "other"
+            default = ( post_as == "other" )
+        ) -%]
+    </fieldset>
+   [% ELSE %]
+        [%- form.hidden(
+            name = "post_as"
+            id = "post_as_other"
+
+            value = "other"
+        ) -%]
+   [% END %]
+   </div>
+
+   [% IF remote %]
+   <div id="post_to"  class="posting_settings">
+       <label for="usejournal">[%- ".label.post_to" | ml %]:</label>
+        [%- IF journallist.size > 1 %]
+            [%-
+                journalselect = [];
+                FOREACH journal IN journallist;
+                    IF journal.equals( remote );
+                        journalselect.push( "", journal.user );
+                    ELSE;
+                        journalselect.push( journal.user, journal.user );
+                    END;
+                END
+            -%]
+
+            [% form.select(
+                name = "usejournal"
+                id = "usejournal"
+
+                class = "select"
+
+                items = journalselect
+            ) -%]
+        [% ELSE %]
+            [% journallist.first.ljuser_display%]</span>
+            [% form.hidden( name = "usejournal", id = "usejournal", value = journallist.first.user ) %]
+        [% END %]
+   </div>
+   [% END %]
+
+   <fieldset id="post_login" class="posting_settings">
+    <legend>[% ".header.post_as" | ml %]</legend>
+       <ul>
+       <li>
+        [%- postas_username_label = ".label.post_as_username" | ml;
+        form.textbox( label = "$postas_username_label:"
+            name = "username"
+            id = "post_username"
+        ) -%]
+       </li>
+       <li>
+        [%- postas_password_label = ".label.post_as_password" | ml;
+        form.password( label = "$postas_password_label:"
+            name = "password"
+            id = "password"
+        ) -%]
+       </li>
+       <li>
+            <label for="postas_usejournal">[% ".label.post_to" | ml %]:</label>
+            [% IF usejournal %]
+                [% usejournal.ljuser_display %]
+            [% ELSE %]
+                [% form.textbox( name = "postas_usejournal", id = "postas_usejournal" ) %]
+            [% END %]
+       </li>
+       </ul>
+   </fieldset>
+
+   </div>
+ </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-journal.tt.text
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-journal.tt.text	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,14 @@
+;; -*- coding: utf-8 -*-
+.header=Journal
+
+.header.post_as=Posting as User
+
+.label.post_as=Post as
+
+.label.post_as_other=another user
+
+.label.post_as_password=Password
+
+.label.post_as_username=Username
+
+.label.post_to= Post to
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-scheduled.tt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-scheduled.tt	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,20 @@
+<fieldset>
+  <h3>Scheduled Publishing</h3>
+    <div class="inner">
+    <div class='time_container' id="publishingtime_container">
+      <input type="text" name="publishingtime" id="publishingtime" value="2010-04-10" maxlength="10" size="10" />
+      <input type="text" name="publishingtime_hr" id="publishingtime_hr" value="03" maxlength="2" size="2" class='time_hr' />:<input type="text" name="publishingtime_min" id="publishingtime_min" value="15" maxlength="2" size="2" class='time_min' />
+      <div class="dateformat">(e.g. 2010-01-30 23:45)</div>
+    </div>
+
+    <div class="recurring_container">
+      <label for="recurring_period">Recurring:</label>
+      <select name="recurring_period" class="select" id="recurring_period">
+        <option value="never">never</option>
+        <option value="day">every day</option>
+        <option value="week">every week</option>
+        <option value="month">every month</option>
+      </select>
+    </div>
+  </div>
+</fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-status.tt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-status.tt	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,17 @@
+  <fieldset>
+    <h3>Status</h3>
+
+    <div class='inner'>
+      <div class="status-notice">
+        <span class="status-label">Status:</span> Published
+         <div class="revert"><a href="#">Revert to draft</a></div>
+      </div>
+      <div class="savedraft">
+       <input type='submit' name="action:save" value='Save' class="save" />
+       <input type='submit' name="action:preview" value='Preview' class="preview"/>
+      </div>
+
+
+    </div>
+
+  </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-tags.tt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-tags.tt	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,17 @@
+  <fieldset>
+    <h3>[% ".header" | ml %]</h3>
+    <div class="inner">
+        [%- label = ".label.tags" | ml;
+        form.textarea( label = "$label:"
+            id = "taglist"
+            name = "taglist"
+
+            cols = "20"
+            rows = "1"
+        ) -%]
+
+      [% IF journalu %]
+          <a id="taglist_link" href="[% journalu.journal_base %]/tag/">[% ".link.tagspage" | ml %] </a>
+      [% END %]
+    </div>
+  </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/module-tags.tt.text
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/module-tags.tt.text	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,6 @@
+;; -*- coding: utf-8 -*-
+.header=Tags
+
+.label.tags=Tags (comma separated)
+
+.link.tagspage=go to journal tags
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/preview.tt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/preview.tt	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,59 @@
+[%# post-preview.tt
+
+Page to preview entries in site skin
+
+Authors:
+    Afuna <coder.dw@afunamatata.com>
+
+This program is free software; you may redistribute it and/or modify it under
+the same terms as Perl itself.  For a copy of the license, please reference
+'perldoc perlartistic' or 'perldoc perlgpl'.
+%]
+
+[%- dw.need_res( "stc/talkpage.css" ) -%]
+
+[%- sections.windowtitle = '.title' | ml( sitenameshort = site.nameshort ) -%]
+
+[%- IF journal -%]
+    <table summary=''><tr valign='middle'>
+    [%- IF icon -%]
+        <td>[% icon %]</td>
+    [%- END -%]
+
+    <td>
+        [%- postername = poster.name | html -%]
+
+        [%- IF journal.is_community -%]
+            [%- "talk.somebodywrote_comm" | ml( realname = postername
+                                                userlink = poster.ljuser_display
+                                                commlink = journal.ljuser_display )
+            -%]
+        [%- ELSE -%]
+            [%- "talk.somebodywrote" | ml(  realname = postername
+                                            userlink = poster.ljuser_display )
+            -%]
+        [%- END -%]
+
+        <br /><span class='time'>@ [% displaydate %]</span>
+    </td>
+
+    </tr></table>
+[%- END -%]
+
+<div id='entry' class='usercontent' style='margin-left: 30px'>
+    [%- currents -%]
+
+    [%- IF security -%]
+        <img src="[% site.imgroot %][% security.src %]" alt="[% security.alt%]" width="[% security.width %]" height="[% security.height %]" align="absmiddle" />
+    [%- END -%]
+
+    <div id='entrysubj'>[% subject %]</div>
+    [%- IF security OR subject -%]<br />[%- END -%]
+
+    [%- event -%]
+</div>
+
+<br clear='all' /><hr width='100%' size='2' align='center' />
+
+<div class='highlight-box'><p>[% '.entry.preview_warn_text' | ml %]</p></div>
+
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/preview.tt.text
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/preview.tt.text	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,5 @@
+;; -*- coding: utf-8 -*-
+.entry.preview_warn_text=This is a preview only. To save this entry, close this popup and return to your main browser window.
+
+.title=[[sitenameshort]]: Entry Preview (Unsaved)
+
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/scheduled.tt
--- a/views/entry/scheduled.tt	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-<fieldset>
-  <h3>Scheduled Publishing</h3>
-    <div class="inner">
-    <div class='time_container' id="publishingtime_container">
-      <input type="text" name="publishingtime" id="publishingtime" value="2010-04-10" maxlength="10" size="10" />
-      <input type="text" name="publishingtime_hr" id="publishingtime_hr" value="03" maxlength="2" size="2" class='time_hr' />:<input type="text" name="publishingtime_min" id="publishingtime_min" value="15" maxlength="2" size="2" class='time_min' />
-      <div class="dateformat">(e.g. 2010-01-30 23:45)</div>
-    </div>
-
-    <div class="recurring_container">
-      <label for="recurring_period">Recurring:</label>
-      <select name="recurring_period" class="select" id="recurring_period">
-        <option value="never">never</option>
-        <option value="day">every day</option>
-        <option value="week">every week</option>
-        <option value="month">every month</option>
-      </select>
-    </div>
-  </div>
-</fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/status.tt
--- a/views/entry/status.tt	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-  <fieldset>
-    <h3>Status</h3>
-
-    <div class='inner'>
-      <div class="status-notice">
-        <span class="status-label">Status:</span> Published
-         <div class="revert"><a href="#">Revert to draft</a></div>
-      </div>
-      <div class="savedraft">
-       <input type='submit' name="action:save" value='Save' class="save" />
-       <input type='submit' name="action:preview" value='Preview' class="preview"/>
-      </div>
-
-
-    </div>
-
-  </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/success.tt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/entry/success.tt	Wed Nov 30 19:27:46 2011 +0800
@@ -0,0 +1,28 @@
+[%- sections.title = 'success' | ml -%]
+
+[%- IF warnings.size > 0 -%]
+    [%- FOREACH warning IN warnings -%]
+        <div class="message-box [% warning.type %]-box">[%- warning.message -%]</div>
+    [%- END -%]
+[%- END -%]
+
+<p>[% poststatus %]</p>
+
+[%- IF crossposts.size > 0 -%]
+<ul>
+    [%- FOREACH crosspost IN crossposts -%]
+        <li [% IF crosspost.status == "error" -%] class="error-box" [%- END -%]>
+            [%- crosspost.text -%]
+        </li>
+    [%- END -%]
+</ul>
+[%- END -%]
+
+[%- IF links.size > 0 -%]
+<p>[%- "/update.bml.success.links" | ml -%]</p>
+<ul>
+    [%- FOREACH link IN links -%]
+        <li><a href="[% link.url %]">[% link.text %]</a></li>
+    [%- END -%]
+</ul>
+[%- END -%]
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/tags.tt
--- a/views/entry/tags.tt	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-  <fieldset>
-    <h3>[% ".header" | ml %]</h3>
-    <div class="inner">
-        [%- label = ".label.tags" | ml;
-        form.textarea( label = "$label:"
-            id = "taglist"
-            name = "taglist"
-
-            cols = "20"
-            rows = "1"
-        ) -%]
-
-      [% IF journalu %]
-          <a id="taglist_link" href="[% journalu.journal_base %]/tag/">[% ".link.tagspage" | ml %] </a>
-      [% END %]
-    </div>
-  </fieldset>
diff -r 7f6e577ec7c3 -r e57184490bfb views/entry/tags.tt.text
--- a/views/entry/tags.tt.text	Tue Nov 29 22:02:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-;; -*- coding: utf-8 -*-
-.header=Tags
-
-.label.tags=Tags (comma separated)
-
-.link.tagspage=go to journal tags
--------------------------------------------------------------------------------