mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)
Mark Smith ([staff profile] mark) wrote in [site community profile] changelog2009-11-10 03:05 am

[dw-free] Respect lj-cut in the Inbox, as a user-defined parameter

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

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

Respect cuts in the inbox, allow users to turn this on/off. Woo bug 48.

Patch by [personal profile] afuna.

Files modified:
  • bin/upgrading/en.dat
  • bin/upgrading/proplists.dat
  • cgi-bin/DW/Setting/CutInbox.pm
  • cgi-bin/LJ/Event/JournalNewEntry.pm
  • cgi-bin/LJ/Event/OfficialPost.pm
  • cgi-bin/LJ/User.pm
  • htdocs/manage/settings/index.bml
--------------------------------------------------------------------------------
diff -r bf8c00eeb61f -r e5edb7c3bc86 bin/upgrading/en.dat
--- a/bin/upgrading/en.dat	Tue Nov 10 02:29:24 2009 +0000
+++ b/bin/upgrading/en.dat	Tue Nov 10 03:05:21 2009 +0000
@@ -2553,6 +2553,10 @@ setting.cutdisable.sel.none=No, honor cu
 
 setting.cutdisable.sel.reading=Yes, when viewing reading pages
 
+setting.cutinbox.label=Cut Tag in Inbox
+
+setting.cutinbox.option=Cut entries in inbox
+
 setting.display.accountstatus.actionlink.contactabuse=Contact Abuse
 
 setting.display.accountstatus.actionlink.delete=Delete
diff -r bf8c00eeb61f -r e5edb7c3bc86 bin/upgrading/proplists.dat
--- a/bin/upgrading/proplists.dat	Tue Nov 10 02:29:24 2009 +0000
+++ b/bin/upgrading/proplists.dat	Tue Nov 10 03:05:21 2009 +0000
@@ -381,6 +381,14 @@ userproplist.import_job:
   indexed: 0
   multihomed: 0
   prettyname: Import JobID
+
+userproplist.cut_inbox:
+  cldversion: 4
+  datatype: bool
+  des: Respect cut tag in inbox
+  indexed: 0
+  multihomed: 0
+  prettyname: Cut for Inbox
 
 userproplist.init_bdate:
   cldversion: 4
diff -r bf8c00eeb61f -r e5edb7c3bc86 cgi-bin/DW/Setting/CutInbox.pm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cgi-bin/DW/Setting/CutInbox.pm	Tue Nov 10 03:05:21 2009 +0000
@@ -0,0 +1,58 @@
+#!/usr/bin/perl
+#
+# DW::Setting::CutInbox
+#
+# LJ::Setting module which controls whether to respect cuts in the inbox
+#
+# Authors:
+#      Afuna <coder.dw@afunamatata.com>
+#
+# Copyright (c) 2009 by Dreamwidth Studios, LLC.
+#
+# 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'.
+#
+
+package DW::Setting::CutInbox;
+use base 'LJ::Setting';
+use strict;
+use warnings;
+
+sub should_render {
+    my ( $class, $u ) = @_;
+    return $u && $u->is_individual;
+}
+
+sub label {
+    my $class = shift;
+    return $class->ml( 'setting.cutinbox.label' );
+}
+
+sub option {
+    my ( $class, $u, $errs, $args ) = @_;
+    my $key = $class->pkgkey;
+
+    my $inbox_cut = $class->get_arg( $args, "cutinbox" ) || ( $u->cut_inbox || "" ) eq "Y";
+
+    my $ret = LJ::html_check( {
+        name => "${key}cutinbox",
+        id => "${key}cutinbox",
+        value => 1,
+        selected => $inbox_cut ? 1 : 0,
+    } );
+    $ret .= " <label for='${key}cutinbox'>" . $class->ml( 'setting.cutinbox.option' ) . "</label>";
+
+    return $ret;
+}
+
+sub save {
+    my ( $class, $u, $args ) = @_;
+
+    my $val = $class->get_arg( $args, "cutinbox" ) ? "Y" : "N";
+    $u->cut_inbox( $val );
+
+    return 1;
+}
+
+1;
diff -r bf8c00eeb61f -r e5edb7c3bc86 cgi-bin/LJ/Event/JournalNewEntry.pm
--- a/cgi-bin/LJ/Event/JournalNewEntry.pm	Tue Nov 10 02:29:24 2009 +0000
+++ b/cgi-bin/LJ/Event/JournalNewEntry.pm	Tue Nov 10 03:05:21 2009 +0000
@@ -68,7 +68,11 @@ sub content {
     my $entry = $self->entry;
     return undef unless $self->_can_view_content( $entry, $target );
 
-    return $entry->event_html . $self->as_html_actions;
+    return $entry->event_html( {
+            # double negatives, ouch!
+            ljcut_disable => ! $target->cut_inbox,
+            cuturl => $entry->url } )
+        . $self->as_html_actions;
 }
 
 sub content_summary {
diff -r bf8c00eeb61f -r e5edb7c3bc86 cgi-bin/LJ/Event/OfficialPost.pm
--- a/cgi-bin/LJ/Event/OfficialPost.pm	Tue Nov 10 02:29:24 2009 +0000
+++ b/cgi-bin/LJ/Event/OfficialPost.pm	Tue Nov 10 03:05:21 2009 +0000
@@ -18,8 +18,11 @@ sub entry {
 }
 
 sub content {
-    my $self = shift;
-    return $self->entry->event_html;
+    my ( $self, $target ) = @_;
+    return $self->entry->event_html( {
+            # double negatives, ouch!
+            ljcut_disable => ! $target->cut_inbox,
+            cuturl => $self->entry->url } );
 }
 
 sub content_summary {
diff -r bf8c00eeb61f -r e5edb7c3bc86 cgi-bin/LJ/User.pm
--- a/cgi-bin/LJ/User.pm	Tue Nov 10 02:29:24 2009 +0000
+++ b/cgi-bin/LJ/User.pm	Tue Nov 10 03:05:21 2009 +0000
@@ -2092,6 +2092,16 @@ sub hide_join_post_link {
     return $u->prop( 'hide_join_post_link' );
 }
 
+# whether to respect cut tags in the inbox
+sub cut_inbox {
+    my $u = $_[0];
+
+    if ( defined $_[1] ) {
+        $u->set_prop( cut_inbox => $_[1] );
+    }
+
+    return  ( $_[1] || $u->prop( 'cut_inbox' ) || "N" ) eq 'Y' ? 1 : 0;
+}
 
 # tests to see if a user is in a specific named class. class
 # names are site-specific.
diff -r bf8c00eeb61f -r e5edb7c3bc86 htdocs/manage/settings/index.bml
--- a/htdocs/manage/settings/index.bml	Tue Nov 10 02:29:24 2009 +0000
+++ b/htdocs/manage/settings/index.bml	Tue Nov 10 03:05:21 2009 +0000
@@ -58,6 +58,7 @@ body<=
                 LJ::Setting::ImagePlaceholders
                 LJ::Setting::EmbedPlaceholders
                 DW::Setting::CutDisable
+                DW::Setting::CutInbox
                 LJ::Setting::EmailFormat
                 LJ::Setting::EntryEditor
                 LJ::Setting::NCTalkLinks
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org