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-12-07 05:10 am

[dw-free] Remove "Only show themes available to me" from interface

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

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

Remove 'show only available styles' option. All styles are available to all
users.

Patch by [personal profile] gchick.

Files modified:
  • cgi-bin/LJ/Customize.pm
  • cgi-bin/LJ/S2Theme.pm
  • cgi-bin/LJ/Widget/CurrentTheme.pm
  • cgi-bin/LJ/Widget/ThemeChooser.pm
  • cgi-bin/LJ/Widget/ThemeNav.pm
  • htdocs/customize/index.bml
  • htdocs/js/customize.js
--------------------------------------------------------------------------------
diff -r d40fdf239212 -r f83ad558778f cgi-bin/LJ/Customize.pm
--- a/cgi-bin/LJ/Customize.pm	Mon Dec 07 05:08:32 2009 +0000
+++ b/cgi-bin/LJ/Customize.pm	Mon Dec 07 05:10:29 2009 +0000
@@ -234,11 +234,11 @@ sub get_layouts_for_dropdown {
     my @layouts = map  {
         my $text = $pub->{$_}->{'name'};
         my $can_use_layer = LJ::S2::can_use_layer($u, $pub->{$_}->{'uniq'});
-        $text = "$text*" if $opts{filter_available} && !$can_use_layer; # for browsers that don't support disabled or colored options
+        $text = "$text*" if !$can_use_layer; # for browsers that don't support disabled or colored options
         {
             value => $_,
             text => $text,
-            disabled => $opts{filter_available} && !$can_use_layer,
+            disabled => !$can_use_layer,
         }
     }
     sort { $pub->{$a}->{'name'} cmp $pub->{$b}->{'name'} }
@@ -252,7 +252,7 @@ sub get_layouts_for_dropdown {
            } keys %$pub;
 
     # add custom layouts
-    push @layouts, $class->get_custom_layouts_for_dropdown($u, filter_available => $opts{filter_available});
+    push @layouts, $class->get_custom_layouts_for_dropdown($u);
     LJ::run_hook("modify_layout_list", \@layouts, user => $u, add_seps => 1);
 
     unshift @layouts, 0, LJ::Lang::ml('customize.layouts_for_dropdown.choose');
@@ -273,11 +273,11 @@ sub get_custom_layouts_for_dropdown {
 
     my @user = map {
         my $text = $userlay->{$_}->{'name'} ? $userlay->{$_}->{'name'} : LJ::Lang::ml('customize.layoutname.default', {'layoutid' => "\#$_"});
-        $text = "$text*" if $opts{filter_available} && !$has_cap; # for browsers that don't support disabled or colored options
+        $text = "$text*" if !$has_cap; # for browsers that don't support disabled or colored options
         {
             value => $_,
             text => $text,
-            disabled => $opts{filter_available} && !$has_cap,
+            disabled => !$has_cap,
         }
     }
     sort { $userlay->{$a}->{'name'} cmp $userlay->{$b}->{'name'} || $a <=> $b }
diff -r d40fdf239212 -r f83ad558778f cgi-bin/LJ/S2Theme.pm
--- a/cgi-bin/LJ/S2Theme.pm	Mon Dec 07 05:08:32 2009 +0000
+++ b/cgi-bin/LJ/S2Theme.pm	Mon Dec 07 05:10:29 2009 +0000
@@ -295,22 +295,6 @@ sub load_all {
     return @themes;
 }
 
-# given an array of themes, return an array of only those themes available to the given user
-sub filter_available {
-    my $class = shift;
-    my $u = shift;
-    my @themes = @_;
-
-    die "Invalid user object." unless LJ::isu($u);
-
-    my @themes_ret;
-    foreach my $theme (@themes) {
-        push @themes_ret, $theme if $theme->available_to($u);
-    }
-
-    return @themes_ret;
-}
-
 # custom layouts without themes need special treatment when creating an S2Theme object
 sub new_custom_layout {
     my $class = shift;
diff -r d40fdf239212 -r f83ad558778f cgi-bin/LJ/Widget/CurrentTheme.pm
--- a/cgi-bin/LJ/Widget/CurrentTheme.pm	Mon Dec 07 05:08:32 2009 +0000
+++ b/cgi-bin/LJ/Widget/CurrentTheme.pm	Mon Dec 07 05:10:29 2009 +0000
@@ -20,7 +20,6 @@ sub render_body {
     my $getextra = $u->user ne $remote->user ? "?authas=" . $u->user : "";
     my $getsep = $getextra ? "&" : "?";
 
-    my $filterarg = $opts{filter_available} ? "&filter_available=1" : "";
     my $showarg = $opts{show} != 12 ? "&show=$opts{show}" : "";
     my $no_theme_chooser = defined $opts{no_theme_chooser} ? $opts{no_theme_chooser} : 0;
     my $no_layer_edit = LJ::run_hook("no_theme_or_layer_edit", $u);
@@ -36,11 +35,11 @@ sub render_body {
     $ret .= "<img src='" . $theme->preview_imgurl . "' class='theme-current-image' />";
     $ret .= "<h3>" . $theme->name . "</h3>";
 
-    my $layout_link = "<a href='$LJ::SITEROOT/customize/$getextra${getsep}layoutid=" . $theme->layoutid . "$filterarg$showarg' class='theme-current-layout'><em>$layout_name</em></a>";
-    my $special_link_opts = "href='$LJ::SITEROOT/customize/$getextra${getsep}cat=special$filterarg$showarg' class='theme-current-cat'";
+    my $layout_link = "<a href='$LJ::SITEROOT/customize/$getextra${getsep}layoutid=" . $theme->layoutid . "$showarg' class='theme-current-layout'><em>$layout_name</em></a>";
+    my $special_link_opts = "href='$LJ::SITEROOT/customize/$getextra${getsep}cat=special$showarg' class='theme-current-cat'";
     $ret .= "<p class='theme-current-desc'>";
     if ($designer) {
-        my $designer_link = "<a href='$LJ::SITEROOT/customize/$getextra${getsep}designer=" . LJ::eurl($designer) . "$filterarg$showarg' class='theme-current-designer'>$designer</a>";
+        my $designer_link = "<a href='$LJ::SITEROOT/customize/$getextra${getsep}designer=" . LJ::eurl($designer) . "$showarg' class='theme-current-designer'>$designer</a>";
         if (LJ::run_hook("layer_is_special", $theme->uniq)) {
             $ret .= $class->ml('widget.currenttheme.specialdesc', {'aopts' => $special_link_opts, 'designer' => $designer_link});
         } else {
@@ -93,7 +92,7 @@ sub js {
                 var getArgs = LiveJournal.parseGetArgs(filter_link.href);
                 for (var arg in getArgs) {
                     if (!getArgs.hasOwnProperty(arg)) continue;
-                    if (arg == "authas" || arg == "filter_available" || arg == "show") continue;
+                    if (arg == "authas" || arg == "show") continue;
                     DOM.addEventListener(filter_link, "click", function (evt) { Customize.ThemeNav.filterThemes(evt, arg, getArgs[arg]) });
                     break;
                 }
diff -r d40fdf239212 -r f83ad558778f cgi-bin/LJ/Widget/ThemeChooser.pm
--- a/cgi-bin/LJ/Widget/ThemeChooser.pm	Mon Dec 07 05:08:32 2009 +0000
+++ b/cgi-bin/LJ/Widget/ThemeChooser.pm	Mon Dec 07 05:10:29 2009 +0000
@@ -26,11 +26,9 @@ sub render_body {
     my $layoutid = defined $opts{layoutid} ? $opts{layoutid} : 0;
     my $designer = defined $opts{designer} ? $opts{designer} : "";
     my $search = defined $opts{search} ? $opts{search} : "";
-    my $filter_available = defined $opts{filter_available} ? $opts{filter_available} : 0;
     my $page = $opts{page} || 1;
     my $show = $opts{show} || 12;
 
-    my $filterarg = $filter_available ? "&filter_available=1" : "";
     my $showarg = $show != 12 ? "&show=$opts{show}" : "";
 
     my $viewing_featured = !$cat && !$layoutid && !$designer;
@@ -61,11 +59,6 @@ sub render_body {
         @themes = LJ::S2Theme->load_by_search($search, $u);
     } else { # category is "featured"
         @themes = LJ::S2Theme->load_by_cat("featured");
-    }
-
-    if ($filter_available) {
-        push @getargs, "filter_available=$filter_available";
-        @themes = LJ::S2Theme->filter_available($u, @themes);
     }
 
     if ($show != 12) {
@@ -144,7 +137,7 @@ sub render_body {
         } elsif (!$theme->themeid && !$current_theme->themeid) {
             $theme_types{current} = 1 if $theme->layoutid == $current_theme->layoutid;
         }
-        $theme_types{upgrade} = 1 if !$filter_available && !$theme->available_to($u);
+        $theme_types{upgrade} = 1 if !$theme->available_to($u);
         $theme_types{special} = 1 if LJ::run_hook("layer_is_special", $theme->uniq);
 
         
@@ -195,11 +188,11 @@ sub render_body {
         $ret .= "<img src='$LJ::IMGPREFIX/customize/preview-theme.gif' class='theme-preview-image' /></a>";
         $ret .= $theme_icons;
 
-        my $layout_link = "<a href='$LJ::SITEROOT/customize/$getextra${getsep}layoutid=" . $theme->layoutid . "$filterarg$showarg' class='theme-layout'><em>$theme_layout_name</em></a>";
-        my $special_link_opts = "href='$LJ::SITEROOT/customize/$getextra${getsep}cat=special$filterarg$showarg' class='theme-cat'";
+        my $layout_link = "<a href='$LJ::SITEROOT/customize/$getextra${getsep}layoutid=" . $theme->layoutid . "$showarg' class='theme-layout'><em>$theme_layout_name</em></a>";
+        my $special_link_opts = "href='$LJ::SITEROOT/customize/$getextra${getsep}cat=special$showarg' class='theme-cat'";
         $ret .= "<div class='theme-action'><p class='theme-desc'>";
         if ($theme_designer) {
-            my $designer_link = "<a href='$LJ::SITEROOT/customize/$getextra${getsep}designer=" . LJ::eurl($theme_designer) . "$filterarg$showarg' class='theme-designer'>$theme_designer</a>";
+            my $designer_link = "<a href='$LJ::SITEROOT/customize/$getextra${getsep}designer=" . LJ::eurl($theme_designer) . "$showarg' class='theme-designer'>$theme_designer</a>";
             if ($theme_types{special}) {
                 $ret .= $class->ml('widget.themechooser.theme.specialdesc', {'aopts' => $special_link_opts, 'designer' => $designer_link});
             } else {
@@ -370,7 +363,7 @@ sub js {
                 } else {
                     for (var arg in getArgs) {
                         if (!getArgs.hasOwnProperty(arg)) continue;
-                        if (arg == "authas" || arg == "filter_available" || arg == "show") continue;
+                        if (arg == "authas" || arg == "show") continue;
                         DOM.addEventListener(filter_link, "click", function (evt) { Customize.ThemeNav.filterThemes(evt, arg, getArgs[arg]) });
                         break;
                     }
@@ -415,14 +408,9 @@ sub js {
                 layoutid: Customize.layoutid,
                 designer: Customize.designer,
                 search: Customize.search,
-                filter_available: Customize.filter_available,
                 page: Customize.page,
                 show: Customize.show,
                 theme_chooser_id: $('theme_chooser_id').value
-            });
-            Customize.CurrentTheme.updateContent({
-                filter_available: Customize.filter_available,
-                show: Customize.show
             });
             Customize.LayoutChooser.updateContent({
                 ad_layout_id: $('ad_layout_id').value
diff -r d40fdf239212 -r f83ad558778f cgi-bin/LJ/Widget/ThemeNav.pm
--- a/cgi-bin/LJ/Widget/ThemeNav.pm	Mon Dec 07 05:08:32 2009 +0000
+++ b/cgi-bin/LJ/Widget/ThemeNav.pm	Mon Dec 07 05:10:29 2009 +0000
@@ -29,11 +29,8 @@ sub render_body {
     my $layoutid = defined $opts{layoutid} ? $opts{layoutid} : 0;
     my $designer = defined $opts{designer} ? $opts{designer} : "";
     my $search = defined $opts{search} ? $opts{search} : "";
-    my $filter_available = defined $opts{filter_available} ? $opts{filter_available} : 0;
     my $page = defined $opts{page} ? $opts{page} : 1;
     my $show = defined $opts{show} ? $opts{show} : 12;
-
-    my $filterarg = $filter_available ? "filter_available=1" : "";
     my $showarg = $show != 12 ? "show=$opts{show}" : "";
 
     # we want to have "All" selected if we're filtering by layout or designer, or if we're searching
@@ -62,13 +59,7 @@ sub render_body {
     }
 
     my $ret;
-    $ret .= "<h2 class='widget-header'>" . $class->ml('widget.themenav.title');
-    $ret .= $class->start_form;
-    $ret .= "<span>" . $class->html_check( name => "filter_available", id => "filter_available", selected => $filter_available );
-    $ret .= " <label for='filter_available'>" . $class->ml('widget.themenav.filteravailable') . "</label>";
-    $ret .= " " . $class->html_submit( "filter" => $class->ml('widget.themenav.btn.filteravailable'), { id => "filter_btn" }) . "</span>";
-    $ret .= $class->end_form;
-    $ret .= "</h2>";
+    $ret .= "<h2 class='widget-header'>" . $class->ml('widget.themenav.title') . "</h2>";
 
     my @keywords = LJ::Customize->get_search_keywords_for_js($u);
     my $keywords_string = join(",", @keywords);
@@ -91,7 +82,6 @@ sub render_body {
         viewing_all => $viewing_all,
         cat_list => \@main_cats_sorted,
         getextra => $getextra,
-        filterarg => $filterarg,
         showarg => $showarg,
     );
     $ret .= "</ul>";
@@ -106,7 +96,6 @@ sub render_body {
             viewing_all => $viewing_all,
             cat_list => \@cats_sorted,
             getextra => $getextra,
-            filterarg => $filterarg,
             showarg => $showarg,
         );
         $ret .= "</ul>";
@@ -128,7 +117,6 @@ sub render_body {
         layoutid => $layoutid,
         designer => $designer,
         search => $search,
-        filter_available => $filter_available,
         page => $page,
         show => $show,
     );
@@ -181,13 +169,10 @@ sub print_cat_list {
 
         my $arg = "";
         $arg = "cat=$c" unless $c eq "featured";
-        if ($arg || $opts{filterarg} || $opts{showarg}) {
+        if ($arg || $opts{showarg}) {
             my $allargs = $arg;
-            $allargs .= "&" if $allargs && $opts{filterarg};
-            $allargs .= $opts{filterarg};
             $allargs .= "&" if $allargs && $opts{showarg};
             $allargs .= $opts{showarg};
-
             $arg = $opts{getextra} ? "&$allargs" : "?$allargs";
         }
 
@@ -207,15 +192,10 @@ sub handle_post {
 
     my $url = "$LJ::SITEROOT/customize/";
     if ($post->{filter}) {
-        $q_string =~ s/&?filter_available=\d//g;
         $q_string = "?$q_string" if $q_string;
         my $q_sep = $q_string ? "&" : "?";
+        $url .= $q_string;
 
-        if ($post->{filter_available}) {
-            $url .= "$q_string${q_sep}filter_available=1";
-        } else {
-            $url .= $q_string;
-        }
     } elsif ($post->{page}) {
         $q_string = "?$q_string" if $q_string;
         my $q_sep = $q_string ? "&" : "?";
@@ -238,13 +218,12 @@ sub handle_post {
             $url .= $q_string;
         }
     } elsif ($post->{search}) {
-        my $filter = ($q_string =~ /&?filter_available=\d/) ? "&filter_available=1" : "";
         my $show = ($q_string =~ /&?show=(\w+)/) ? "&show=$1" : "";
         my $authas = ($q_string =~ /&?authas=(\w+)/) ? "&authas=$1" : "";
         $q_string = "";
 
         $post->{search} = LJ::eurl($post->{search});
-        $url .= "?search=$post->{search}$authas$filter$show";
+        $url .= "?search=$post->{search}$authas$show";
     }
 
     return BML::redirect($url);
@@ -277,9 +256,6 @@ sub js {
                 });
             }
 
-            $('filter_btn').style.display = "none";
-            DOM.addEventListener($('filter_available'), "click", function (evt) { self.filterThemes(evt, "filter_available", $('filter_available').checked) });
-
             // add event listener to the search form
             DOM.addEventListener($('search_form'), "submit", function (evt) { self.filterThemes(evt, "search", $('search_box').value) });
 
@@ -291,7 +267,7 @@ sub js {
                 var getArgs = LiveJournal.parseGetArgs(filter_link.href);
                 for (var arg in getArgs) {
                     if (!getArgs.hasOwnProperty(arg)) continue;
-                    if (arg == "authas" || arg == "filter_available" || arg == "show") continue;
+                    if (arg == "authas" || arg == "show") continue;
                     DOM.addEventListener(filter_link, "click", function (evt) { self.filterThemes(evt, arg, getArgs[arg]) });
                     evt_listener_added = 1;
                     break;
@@ -304,18 +280,7 @@ sub js {
             });
         },
         filterThemes: function (evt, key, value) {
-            // filtering by availability, page, and show use the values of the other filters, so do not reset them in that case
-            if (key == "filter_available") {
-                if (value) {
-                    Customize.filter_available = 1;
-                } else {
-                    Customize.filter_available = 0;
-                }
-
-                // need to go back to page 1 if the filter was switched because
-                // the current page may no longer have any themes to show on it
-                Customize.page = 1;
-            } else if (key == "show") {
+            if (key == "show") {
                 // need to go back to page 1 if the show amount was switched because
                 // the current page may no longer have any themes to show on it
                 Customize.page = 1;
@@ -342,7 +307,6 @@ sub js {
                 layoutid: Customize.layoutid,
                 designer: Customize.designer,
                 search: Customize.search,
-                filter_available: Customize.filter_available,
                 page: Customize.page,
                 show: Customize.show,
                 theme_chooser_id: $('theme_chooser_id').value
@@ -361,7 +325,6 @@ sub js {
         },
         onData: function (data) {
             Customize.CurrentTheme.updateContent({
-                filter_available: Customize.filter_available,
                 show: Customize.show
             });
             Customize.hideHourglass();
diff -r d40fdf239212 -r f83ad558778f htdocs/customize/index.bml
--- a/htdocs/customize/index.bml	Mon Dec 07 05:08:32 2009 +0000
+++ b/htdocs/customize/index.bml	Mon Dec 07 05:10:29 2009 +0000
@@ -34,7 +34,6 @@ body<=
     my $layoutid = defined $GET{layoutid} ? $GET{layoutid} : 0;
     my $designer = defined $GET{designer} ? $GET{designer} : "";
     my $search = defined $GET{search} ? $GET{search} : "";
-    my $filter_available = defined $GET{filter_available} ? $GET{filter_available} : 0;
     my $page = defined $GET{page} ? $GET{page} : 1;
     my $show = defined $GET{show} ? $GET{show} : 12;
 
@@ -63,7 +62,7 @@ body<=
     my $current_theme = LJ::Widget::CurrentTheme->new;
     $headextra .= $current_theme->wrapped_js( page_js_obj => "Customize" );
     $ret .= "<div class='theme-current pkg'>";
-    $ret .= $current_theme->render( filter_available => $filter_available, show => $show );
+    $ret .= $current_theme->render( show => $show );
     $ret .= "</div><!-- end .theme-current -->";
 
     my $journal_titles = LJ::Widget::JournalTitles->new;
@@ -81,7 +80,6 @@ body<=
         layoutid => $layoutid,
         designer => $designer,
         search => $search,
-        filter_available => $filter_available,
         page => $page,
         show => $show,
         headextra => \$headextra,
diff -r d40fdf239212 -r f83ad558778f htdocs/js/customize.js
--- a/htdocs/js/customize.js	Mon Dec 07 05:08:32 2009 +0000
+++ b/htdocs/js/customize.js	Mon Dec 07 05:10:29 2009 +0000
@@ -5,7 +5,6 @@ Customize.init = function () {
     Customize.layoutid = 0;
     Customize.designer = "";
     Customize.search = "";
-    Customize.filter_available = 0;
     Customize.page = 1;
     Customize.show = 12;
     Customize.hourglass = null;
@@ -26,10 +25,6 @@ Customize.init = function () {
 
     if (pageGetArgs["search"]) {
         Customize.search = pageGetArgs["search"];
-    }
-
-    if (pageGetArgs["filter_available"]) {
-        Customize.filter_available = pageGetArgs["filter_available"];
     }
 
     if (pageGetArgs["page"]) {
--------------------------------------------------------------------------------

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