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"]) {
--------------------------------------------------------------------------------