[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
afuna.
Files modified:
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]](https://www.dreamwidth.org/img/silk/identity/user.png)
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 --------------------------------------------------------------------------------