[dw-free] Can't create new entry after previewing it.
[commit: http://hg.dwscoalition.org/dw-free/rev/891879298ff0]
http://bugs.dwscoalition.org/show_bug.cgi?id=1124
Replace the entry links with a message, to make it clear that we are in a
preview.
Patch by
tyggerdev.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=1124
Replace the entry links with a message, to make it clear that we are in a
preview.
Patch by
Files modified:
- bin/upgrading/s2layers/core2.s2
- htdocs/preview/entry.bml
- htdocs/preview/entry.bml.text
--------------------------------------------------------------------------------
diff -r 7b31b791448e -r 891879298ff0 bin/upgrading/s2layers/core2.s2
--- a/bin/upgrading/s2layers/core2.s2 Wed Oct 13 12:37:28 2010 +0800
+++ b/bin/upgrading/s2layers/core2.s2 Wed Oct 13 13:27:24 2010 +0800
@@ -572,6 +572,7 @@ class Page
function print_wrapper_start() "Start the body wrapper for this page; includes default classes";
function print_wrapper_start(string{} opts) "Start the body wrapper for this page; includes default classes and takes a hash using the key 'class'";
function print_wrapper_end() "End the body wrapper for this entry or comment.";
+ function print_entry_footer(Entry e) "Close up the entry";
function print_time
"Print the time when the page was created.";
@@ -837,6 +838,13 @@ class EntryPage extends Page
function builtin print_multiform_start "Prints start of form tag and hidden elements to do a multi-comment action (multiple delete, screen, unscreen, etc...)";
function builtin print_multiform_end "Prints end of form tag to do a multi-comment action.";
function builtin print_multiform_actionline "Prints the line of the multiform giving instructions, options, and the submit button, using the text of the different \$*text_multiform_ properties.";
+}
+
+class EntryPreviewPage extends EntryPage
+"We disable funtionality for previews, and print messages about that"
+{
+ var string preview_warn_text "Text to display instead of management controls for previews";
+ function print_standout_box(string message) "Prints a standout box containing a message";
}
class ReplyForm
@@ -3175,6 +3183,11 @@ function Page::print_stylesheets()
println """</style>""";
}
}
+function EntryPreviewPage::print_standout_box(string message)
+"Prints a standout box for warnings, etc "
+{
+ println "<div class='standout'><div class='standout-inner'><p> $message </p></div></div>";
+}
function FriendsPage::print_stylesheets() {
#This creates entry-specific CSS to allow custom colors on reading page. Rather than override this, layouts should change custom_foreground_element, custom_background_element (and custom_colors_template for advanced options) instead
@@ -4315,24 +4328,35 @@ function Page::print_entry(Entry e)
"""</div>\n""";
"""</div>\n""";
"""</div>\n""";
+
"""<div class="footer">\n""";
"""<div class="inner">\n""";
$e->print_tags();
+ $this->print_entry_footer($e);
+ "</div>\n</div>\n";
+
+ $e->print_wrapper_end();
+
+}
+function EntryPreviewPage::print_entry_footer(Entry e)
+"Disable links to avoid people trying to edit from a preview"
+{
+ $this->print_standout_box($this.preview_warn_text);
+}
+
+function EntryPage::print_entry_footer(Entry e) {
$e->print_management_links();
- if ($this isa EntryPage) {
- """<hr class="above-entry-interaction-links" />""";
- $e->print_interaction_links("topcomment");
- $this->print_reply_container({ "target" => "topcomment" });
- """<hr class="below-reply-container" />""";
- }
- else {
+ """<hr class="above-entry-interaction-links" />""";
+ $e->print_interaction_links("topcomment");
+ $this->print_reply_container({ "target" => "topcomment" });
+ """<hr class="below-reply-container" />""";
+}
+
+function Page::print_entry_footer(Entry e) {
+ $e->print_management_links();
$e->print_interaction_links();
- }
- "</div>\n</div>\n";
- $e->print_wrapper_end();
-
-}
-
+
+}
function RecentPage::print_sticky_entry(StickyEntry s)
"function to print the sticky entry. can be overrised by styles to print it differently than other entries."
{
diff -r 7b31b791448e -r 891879298ff0 htdocs/preview/entry.bml
--- a/htdocs/preview/entry.bml Wed Oct 13 12:37:28 2010 +0800
+++ b/htdocs/preview/entry.bml Wed Oct 13 13:27:24 2010 +0800
@@ -57,6 +57,9 @@ _c?>
my $r = BML::get_request();
my $ctx;
+ # Get the preview message to hand to S2 or use in $ret.
+ my $preview_warn_text = $ML{".entry.preview_warn_text"};
+
if ($u && $up) {
$r->notes->{_journal} = $u->{user};
$r->notes->{journalid} = $u->{userid};
@@ -193,6 +196,10 @@ _c?>
$ret .= $event;
$ret .= "</div>";
+ $ret .= "<hr/><?standout <div><p>\n";
+ $ret .= $preview_warn_text . "\n";
+ $ret .= "</p></div> standout?>";
+
$ret .= "<br clear='all' /><hr width='100%' size='2' align='center' />";
@@ -210,11 +217,12 @@ _c?>
$LJ::S2::CURR_CTX = $ctx;
my $p = LJ::S2::Page($u, $opts);
- $p->{'_type'} = "EntryPage";
+ $p->{'_type'} = "EntryPreviewPage";
$p->{'view'} = "entry";
$p->{'comment_pages'} = undef;
$p->{'comments'} = [];
$p->{'comment_pages'} = undef;
+ $p->{'preview_warn_text'} = $preview_warn_text;
my $userlite_journal = LJ::S2::UserLite($u);
my $userlite_poster = LJ::S2::UserLite($up);
@@ -290,6 +298,15 @@ _c?>
left: -10000px;
top: auto;
}
+ .standout .standout-inner, .standout-colors {
+ background-color: #ffafb6;
+ color: #111;
+ border: 1px solid #c1272d;
+ }
+
+ .standout-inner a:hover, .standout-inner a:active {
+ color: #000;
+ }
</style>
};
diff -r 7b31b791448e -r 891879298ff0 htdocs/preview/entry.bml.text
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/preview/entry.bml.text Wed Oct 13 13:27:24 2010 +0800
@@ -0,0 +1,1 @@
+.entry.preview_warn_text=This is a preview only. To save this entry, close this popup and return to your main browser window.
--------------------------------------------------------------------------------
