[dw-free] combine /admin/invites and /admin/invitecodes
[commit: http://hg.dwscoalition.org/dw-free/rev/7dba15b9d841]
http://bugs.dwscoalition.org/show_bug.cgi?id=2299
Combine invite code management admin pages into a central index. No
functional changes.
Patch by
denise.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=2299
Combine invite code management admin pages into a central index. No
functional changes.
Patch by
Files modified:
- htdocs/admin/index.bml
- htdocs/admin/index.bml.text
- htdocs/admin/invitecodes.bml
- htdocs/admin/invites/codetrace.bml
- htdocs/admin/invites/index.bml
- htdocs/admin/invites/index.bml.text
--------------------------------------------------------------------------------
diff -r bbe1694d81a6 -r 7dba15b9d841 htdocs/admin/index.bml
--- a/htdocs/admin/index.bml Sat Jan 30 03:42:41 2010 +0000
+++ b/htdocs/admin/index.bml Sat Jan 30 04:24:22 2010 +0000
@@ -53,14 +53,7 @@ body<=
'<?_ml .admin.faq.link _ml?>', '<?_ml .admin.faq.text _ml?>', [ 'faqadd', 'faqedit', 'faqcat' ] ],
[ 'fileedit/',
'<?_ml .admin.file_edit.link _ml?>', 'Allows you to edit various include files.', [ 'fileedit' ] ],
- [ 'invites/promo',
- '<?_ml .admin.invite_promo.link _ml?>', '<?_ml .admin.invite_promo.text _ml?>', [ 'payments' ] ],
- [ 'invites/requests',
- '<?_ml .admin.invite_requests.link _ml?>', '<?_ml .admin.invite_requests.text _ml?>', [ 'payments' ] ],
- [ 'invites/review',
- '<?_ml .admin.invite_review.link _ml?>', '<?_ml .admin.invite_review.text _ml?>', [ 'payments' ] ],
- [ 'invitecodes',
- '<?_ml .admin.invite_codes.link _ml?>', '<?_ml .admin.invite_codes.text _ml?>', [ 'finduser:codetrace', 'finduser:*' ] ],
+ [ 'invites/', '<?_ml .admin.invites.link _ml?>', '<?_ml .admin.invites.text _ml?>', [ 'finduser:codetrace', 'finduser:*', 'payments' ] ],
[ 'logout_user',
'<?_ml .admin.logout_user.link _ml?>', '<?_ml .admin.logout_user.text _ml?>', [ 'suspend' ] ],
[ 'memcache',
diff -r bbe1694d81a6 -r 7dba15b9d841 htdocs/admin/index.bml.text
--- a/htdocs/admin/index.bml.text Sat Jan 30 03:42:41 2010 +0000
+++ b/htdocs/admin/index.bml.text Sat Jan 30 04:24:22 2010 +0000
@@ -26,17 +26,8 @@
.admin.file_edit.link=File Edit
.admin.file_edit.text=Allows you to edit various include files.
-.admin.invite_codes.link=Invite Codes
-.admin.invite_codes.text=Shows the provenance of an invite code.
-
-.admin.invite_promo.link=Promotional Invite Codes
-.admin.invite_promo.text=Allows you to manage promotional invite codes.
-
-.admin.invite_requests.link=Invite Code Requests
-.admin.invite_requests.text=Allows you to review requests for invite codes.
-
-.admin.invite_review.link=Review Invite History
-.admin.invite_review.text=Allows you to view a user's invite history.
+.admin.invites.link=Invite Code Management
+.admin.invites.text=View and manage invite codes.
.admin.logout_user.link=Logout User
.admin.logout_user.text=Logs a user out of the site.
diff -r bbe1694d81a6 -r 7dba15b9d841 htdocs/admin/invitecodes.bml
--- a/htdocs/admin/invitecodes.bml Sat Jan 30 03:42:41 2010 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-<?page
-title=>Codetrace
-body<=
-<?_code
-{
- use strict;
- use vars qw( %POST );
-
- return LJ::server_down_html if ( $LJ::SERVER_DOWN );
-
- my $remote = LJ::get_remote;
- my @displayprivs = ( "finduser:codetrace", "finduser:*" );
- my $numprivs = @displayprivs;
-
- return "<?needlogin?>"
- unless $remote;
-
- return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
- unless $remote->has_priv( "finduser", "codetrace" );
-
- my $ret;
-
- $ret .= "<form method='GET'>";
- $ret .= "View invite details: ";
- $ret .= "<table>";
- $ret .= "<tr><td><label>By code: </label></td>";
- $ret .= "<td>" . LJ::html_text( { name => 'code', maxlength => DW::InviteCodes::CODE_LEN, size => DW::InviteCodes::CODE_LEN } ) . "</td></tr>";
- $ret .= "<tr><td><label>By account: </label></td>";
- $ret .= "<td>" . LJ::html_text( { name => 'account', maxlength => 25, size=> 20 } ) . "</td></tr>";
- $ret .= "<tr><td colspan='2' align='right'>";
- $ret .= LJ::html_submit( value => "View" );
- $ret .= "</td></tr></table>";
- $ret .= "</form>";
- $ret .= "<?hr?>";
-
- if ( $GET{code} ) {
-
- my $code = DW::InviteCodes->new( code => $GET{code} );
- return $ret . "Error: invalid code '$GET{code}'" unless $code;
-
- $ret .= display_codes ( $remote, $code );
-
- } elsif ( $GET{account} ) {
-
- my $account = LJ::load_user( $GET{account} );
- return $ret . "Error: invalid user '$GET{account}'" unless $account;
-
- my @used = DW::InviteCodes->by_recipient( userid => $account->id );
- my @owned = DW::InviteCodes->by_owner( userid => $account->id );
-
- $ret .= display_codes ( $account, @used, @owned );
- }
-
- return $ret;
-}
-
-sub display_codes {
- my ($account, @codes) = @_;
-
- my $ret = "<table border='1' cellpadding='5'><tr><th>Code</th><th>Owner</th><th>Recipient</th><th>Reason</th><th>Date generated</th><th>Date sent</th><th>Date used</th><th>Email</th></tr>";
-
- foreach my $code ( @codes ) {
- my $owner = $code->owner == $account->id ? $account : LJ::load_userid( $code->owner );
- my $recipient = $code->is_used ? LJ::load_userid( $code->recipient ) : undef;
- $ret .= "<tr>";
- $ret .= "<td><tt>" . $code->code . "</tt></td>";
- $ret .= "<td>" . ( $owner ? $owner->ljuser_display : "" ) . "</td>";
- $ret .= "<td>" . ( $code->is_used ? $recipient->ljuser_display : "" ) . "</td>";
- $ret .= "<td>" . $code->reason . "</td>";
- $ret .= "<td>" . LJ::time_to_http( $code->timegenerate). "</td>";
- $ret .= "<td>" . ( $code->timesent ? LJ::time_to_http( $code->timesent ) : "" ) . "</td>";
- $ret .= "<td>" . ( $code->is_used ? LJ::time_to_http( $recipient->timecreate ) : "" ) . "</td>";
- $ret .= "<td>" . $code->email . "</td>";
- $ret .= "</tr>";
- }
- $ret .= "</table>";
-
- return $ret;
-}
-
- _code?>
-<=body
-page?>
diff -r bbe1694d81a6 -r 7dba15b9d841 htdocs/admin/invites/codetrace.bml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/admin/invites/codetrace.bml Sat Jan 30 04:24:22 2010 +0000
@@ -0,0 +1,83 @@
+<?page
+title=>Codetrace
+body<=
+<?_code
+{
+ use strict;
+ use vars qw( %POST );
+
+ return LJ::server_down_html if ( $LJ::SERVER_DOWN );
+
+ my $remote = LJ::get_remote;
+ my @displayprivs = ( "finduser:codetrace", "finduser:*" );
+ my $numprivs = @displayprivs;
+
+ return "<?needlogin?>"
+ unless $remote;
+
+ return BML::ml( "admin.noprivserror", { numprivs => $numprivs, needprivs => "<b>" . join(", ", @displayprivs) . "</b>"} )
+ unless $remote->has_priv( "finduser", "codetrace" );
+
+ my $ret;
+
+ $ret .= "<form method='GET'>";
+ $ret .= "View invite details: ";
+ $ret .= "<table>";
+ $ret .= "<tr><td><label>By code: </label></td>";
+ $ret .= "<td>" . LJ::html_text( { name => 'code', maxlength => DW::InviteCodes::CODE_LEN, size => DW::InviteCodes::CODE_LEN } ) . "</td></tr>";
+ $ret .= "<tr><td><label>By account: </label></td>";
+ $ret .= "<td>" . LJ::html_text( { name => 'account', maxlength => 25, size=> 20 } ) . "</td></tr>";
+ $ret .= "<tr><td colspan='2' align='right'>";
+ $ret .= LJ::html_submit( value => "View" );
+ $ret .= "</td></tr></table>";
+ $ret .= "</form>";
+ $ret .= "<?hr?>";
+
+ if ( $GET{code} ) {
+
+ my $code = DW::InviteCodes->new( code => $GET{code} );
+ return $ret . "Error: invalid code '$GET{code}'" unless $code;
+
+ $ret .= display_codes ( $remote, $code );
+
+ } elsif ( $GET{account} ) {
+
+ my $account = LJ::load_user( $GET{account} );
+ return $ret . "Error: invalid user '$GET{account}'" unless $account;
+
+ my @used = DW::InviteCodes->by_recipient( userid => $account->id );
+ my @owned = DW::InviteCodes->by_owner( userid => $account->id );
+
+ $ret .= display_codes ( $account, @used, @owned );
+ }
+
+ return $ret;
+}
+
+sub display_codes {
+ my ($account, @codes) = @_;
+
+ my $ret = "<table border='1' cellpadding='5'><tr><th>Code</th><th>Owner</th><th>Recipient</th><th>Reason</th><th>Date generated</th><th>Date sent</th><th>Date used</th><th>Email</th></tr>";
+
+ foreach my $code ( @codes ) {
+ my $owner = $code->owner == $account->id ? $account : LJ::load_userid( $code->owner );
+ my $recipient = LJ::load_userid( $code->recipient ) if $code->is_used;
+ $ret .= "<tr>";
+ $ret .= "<td><tt>" . $code->code . "</tt></td>";
+ $ret .= "<td>" . ( $owner ? $owner->ljuser_display : "" ) . "</td>";
+ $ret .= "<td>" . ( $code->is_used ? $recipient->ljuser_display : "" ) . "</td>";
+ $ret .= "<td>" . $code->reason . "</td>";
+ $ret .= "<td>" . LJ::time_to_http( $code->timegenerate). "</td>";
+ $ret .= "<td>" . ( $code->timesent ? LJ::time_to_http( $code->timesent ) : "" ) . "</td>";
+ $ret .= "<td>" . ( $code->is_used ? LJ::time_to_http( $recipient->timecreate ) : "" ) . "</td>";
+ $ret .= "<td>" . $code->email . "</td>";
+ $ret .= "</tr>";
+ }
+ $ret .= "</table>";
+
+ return $ret;
+}
+
+ _code?>
+<=body
+page?>
diff -r bbe1694d81a6 -r 7dba15b9d841 htdocs/admin/invites/index.bml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/admin/invites/index.bml Sat Jan 30 04:24:22 2010 +0000
@@ -0,0 +1,59 @@
+<?_c
+#
+# admin/invites/index.bml
+#
+# Brief dashboard page for dealing with invite codes.
+#
+# Authors:
+# Denise Paolucci <denise@dreamwidth.org>
+#
+# 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'.
+#
+_c?><?page
+body<=
+<?_code
+{
+ use strict;
+ use vars qw/ %GET %POST /;
+
+ # for pages that require authentication
+ my $remote = LJ::get_remote();
+ return "<?needlogin?>" unless $remote;
+
+ my $haspayments = $remote->has_priv( "payments" );
+ my $hasfinduser = $remote->has_priv ( "finduser", "codetrace" );
+
+ my $ret;
+
+ $ret .= "<div class='itemhead'><a href='codetrace'><?_ml .codetrace.head _ml?></a></div><div class='itemdef'><?_ml .codetrace.desc _ml?></div>"
+ if $hasfinduser;
+
+ $ret .= "<div class='itemhead'><a href='distribute'><?_ml .distribute.head _ml?></a></div><div class='itemdef'><?_ml .distribute.desc _ml?></div>"
+ if $haspayments;
+
+ $ret .= "<div class='itemhead'><a href='requests'><?_ml .requests.head _ml?></a></div><div class='itemdef'><?_ml .requests.desc _ml?></div>"
+ if $haspayments;
+
+ $ret .= "<div class='itemhead'><a href='review'><?_ml .review.head _ml?></a></div><div class='itemdef'><?_ml .review.desc _ml?></div>"
+ if $haspayments;
+
+ $ret .= "<div class='itemhead'><a href='promo'><?_ml .promo.head _ml?></a></div><div class='itemdef'><?_ml .promo.desc _ml?></div>"
+ if $haspayments;
+
+
+ return $ret;
+}
+_code?>
+<=body
+title=><?_ml .title _ml?>
+head<=
+ <style type="text/css">
+ .itemhead {font-size: bigger; font-weight: bold;}
+ .itemdef {margin-left: 2em; margin-bottom: 15px;}
+ </style>
+<=head
+page?>
diff -r bbe1694d81a6 -r 7dba15b9d841 htdocs/admin/invites/index.bml.text
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/admin/invites/index.bml.text Sat Jan 30 04:24:22 2010 +0000
@@ -0,0 +1,23 @@
+;; -*- coding: utf-8 -*-
+
+.codetrace.desc=Look up invite codes, by code or by user
+
+.codetrace.head=Codetrace
+
+.distribute.desc=Bulk invite code distribution
+
+.distribute.head=Distribute Invite Codes
+
+.promo.desc=Create and manage promotional invite codes
+
+.promo.head=Manage Promo Codes
+
+.requests.desc=Process requests for invite codes
+
+.requests.head=Invite Code Requests
+
+.review.desc=Review an individual user's invite history
+
+.review.head=Review Invite History
+
+.title=Invite Codes Administration
--------------------------------------------------------------------------------
