From f3ea04aef0c716511e7b4457756420bf086b8ab2 Mon Sep 17 00:00:00 2001 From: Max Goodman Date: Mon, 13 May 2013 00:05:20 -0700 Subject: [PATCH] Add intro widget to listing chooser with sample multireddits. --- r2/example.ini | 3 +++ r2/r2/lib/app_globals.py | 1 + r2/r2/lib/pages/pages.py | 15 +++++++++++++++ r2/r2/public/static/css/reddit.less | 18 ++++++++++++++++++ r2/r2/templates/listingchooser.html | 9 +++++++++ 5 files changed, 46 insertions(+) diff --git a/r2/example.ini b/r2/example.ini index ae7890470..a880e25dc 100644 --- a/r2/example.ini +++ b/r2/example.ini @@ -526,6 +526,9 @@ wiki_page_registration_info = registration_info # Template names to record render timings for timed_templates = Reddit, Link, Comment, LinkListing, NestedListing, SubredditTopBar +# sample multireddits (displayed when a user has no multis) +sample_multis = /user/reddit/m/hello, /user/reddit/m/world + [server:main] use = egg:Paste#http host = 0.0.0.0 diff --git a/r2/r2/lib/app_globals.py b/r2/r2/lib/app_globals.py index f06c152c2..bdeddcad2 100755 --- a/r2/r2/lib/app_globals.py +++ b/r2/r2/lib/app_globals.py @@ -186,6 +186,7 @@ class Globals(object): 'TRAFFIC_LOG_HOSTS', 'exempt_login_user_agents', 'timed_templates', + 'sample_multis', ], ConfigValue.str: [ diff --git a/r2/r2/lib/pages/pages.py b/r2/r2/lib/pages/pages.py index 29723314e..bc5e390ab 100755 --- a/r2/r2/lib/pages/pages.py +++ b/r2/r2/lib/pages/pages.py @@ -4104,13 +4104,20 @@ class ListingChooser(Templated): if c.show_mod_mail: self.add_item("other", _("moderating"), site=Mod, description=_("subreddits you mod")) + self.add_item("other", _("saved"), path='/user/%s/saved' % c.user.name) + self.show_samples = False if c.user_is_loggedin: multis = LabeledMulti.by_owner(c.user) multis.sort(key=lambda multi: multi.name.lower()) for multi in multis: self.add_item("multi", multi.name, site=multi) + self.show_samples = not multis + + if self.show_samples: + self.add_samples() + self.selected_item = self.find_selected() if self.selected_item: self.selected_item["selected"] = True @@ -4124,6 +4131,14 @@ class ListingChooser(Templated): "selected": False, }) + def add_samples(self): + for path in g.sample_multis: + self.add_item( + section="sample", + name=path.rpartition('/')[2], + path=path, + ) + def find_selected(self): path = request.path matching = [] diff --git a/r2/r2/public/static/css/reddit.less b/r2/r2/public/static/css/reddit.less index 7f1a1980f..511f8d937 100755 --- a/r2/r2/public/static/css/reddit.less +++ b/r2/r2/public/static/css/reddit.less @@ -7022,6 +7022,24 @@ body.with-listing-chooser { padding: 4px; } + .intro { + background: lighten(#f6e69f, 5%); + border: 1px solid lighten(orange, 5%); + border-left: none; + border-right: none; + margin-bottom: 10px; + + p { + font-size: 1.15em; + margin: 4px; + margin-left: 8px; + } + + ul.multis { + margin: 6px 0; + } + } + ul.global, ul.other { padding: 8px 0; li { diff --git a/r2/r2/templates/listingchooser.html b/r2/r2/templates/listingchooser.html index a543537f4..58e0b9e33 100644 --- a/r2/r2/templates/listingchooser.html +++ b/r2/r2/templates/listingchooser.html @@ -43,6 +43,15 @@

${_('multireddits')}

+ %if thing.show_samples: +
+

${_('new! create sets of subreddits to view together.')}

+

${_('for starters, try one of these:')}

+ +
+ %endif