Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
Feature flag auto-expanding media previews
Browse files Browse the repository at this point in the history
Conflicts:
	r2/r2/models/link.py
  • Loading branch information
madbook committed Oct 7, 2016
1 parent 2fba350 commit e0c16b8
Show file tree
Hide file tree
Showing 7 changed files with 64 additions and 32 deletions.
7 changes: 6 additions & 1 deletion r2/r2/controllers/api.py
Expand Up @@ -2709,7 +2709,7 @@ def POST_upload_sr_img(self, file, header, name, form_id, img_type,
over_18 = VBoolean('over_18'),
allow_top = VBoolean('allow_top'),
show_media = VBoolean('show_media'),
show_media_preview = VBoolean('show_media_preview'),
# show_media_preview = VBoolean('show_media_preview'),
public_traffic = VBoolean('public_traffic'),
collapse_deleted_comments = VBoolean('collapse_deleted_comments'),
exclude_banned_modqueue = VBoolean('exclude_banned_modqueue'),
Expand Down Expand Up @@ -2777,6 +2777,11 @@ def apply_wikid_field(sr, form, pagename, value, field):
value = request.params.get('related_subreddits')
kw['related_subreddits'] = validator.run(value)

if feature.is_enabled('autoexpand_media_previews'):
validator = VBoolean('show_media_preview')
value = request.params.get('show_media_preview')
kw["show_media_preview"] = validator.run(value)

# the status button is outside the form -- have to reset by hand
form.parent().set_html('.status', "")

Expand Down
5 changes: 5 additions & 0 deletions r2/r2/controllers/post.py
Expand Up @@ -57,6 +57,11 @@ def POST_unlogged_options(self, all_langs, pref_lang):
all_langs=VOneOf('all-langs', ('all', 'some'), default='all'),
**PREFS_VALIDATORS)
def POST_options(self, all_langs, **prefs):
if feature.is_enabled("autoexpand_media_previews"):
validator = VOneOf('media_preview', ('on', 'off', 'subreddit'))
value = request.params.get('media_preview')
prefs["pref_media_preview"] = validator.run(value)

u = UrlParser(c.site.path + "prefs")

filter_prefs(prefs, c.user)
Expand Down
4 changes: 4 additions & 0 deletions r2/r2/lib/pages/pages.py
Expand Up @@ -1294,8 +1294,10 @@ def __init__(self, done=False, error_style_override=None, generic_error=None):
use_other_theme = False
theme.checked = True

feature_autoexpand_media_previews = feature.is_enabled("autoexpand_media_previews")
Templated.__init__(self, done=done,
error_style_override=error_style_override,
feature_autoexpand_media_previews=feature_autoexpand_media_previews,
generic_error=generic_error, themes=themes, use_other_theme=use_other_theme)


Expand Down Expand Up @@ -2995,12 +2997,14 @@ class CreateSubreddit(Templated):
"""reddit creation form."""
def __init__(self, site = None, name = '', captcha=None):
allow_image_upload = site and not site.quarantine
feature_autoexpand_media_previews = feature.is_enabled("autoexpand_media_previews")
Templated.__init__(self,
site=site,
name=name,
captcha=captcha,
comment_sorts=CommentSortMenu.visible_options(),
allow_image_upload=allow_image_upload,
feature_autoexpand_media_previews=feature_autoexpand_media_previews,
)
self.color_options = Subreddit.KEY_COLORS
self.subreddit_selector = SubredditSelector(
Expand Down
2 changes: 1 addition & 1 deletion r2/r2/lib/validator/preferences.py
Expand Up @@ -52,7 +52,7 @@
pref_numsites=VInt('numsites', 1, 100),
pref_lang=VLang('lang'),
pref_media=VOneOf('media', ('on', 'off', 'subreddit')),
pref_media_preview=VOneOf('media_preview', ('on', 'off', 'subreddit')),
# pref_media_preview=VOneOf('media_preview', ('on', 'off', 'subreddit')),
pref_compress=VBoolean('compress'),
pref_domain_details=VBoolean('domain_details'),
pref_min_link_score=VInt('min_link_score', -100, 100),
Expand Down
13 changes: 8 additions & 5 deletions r2/r2/models/link.py
Expand Up @@ -617,12 +617,12 @@ def add_props(cls, user, wrapped):
show_media = True

show_media_preview = False
if pref_media_preview == "on":
show_media_preview = True
elif pref_media_preview == "subreddit" and item.subreddit.show_media_preview:
show_media_preview = True
if feature.is_enabled('autoexpand_media_previews'):
if pref_media_preview == "on":
show_media_preview = True
elif pref_media_preview == "subreddit" and item.subreddit.show_media_preview:
show_media_preview = True

item.show_media_preview = show_media_preview
item.over_18 = item.over_18 or item.subreddit.over_18
item.nsfw = item.over_18 and user.pref_label_nsfw

Expand All @@ -646,6 +646,7 @@ def add_props(cls, user, wrapped):
else:
item.thumbnail = ""
item.preview_image = None
show_media_preview = False
elif not show_media:
item.thumbnail = ""
item.preview_image = None
Expand All @@ -666,6 +667,8 @@ def add_props(cls, user, wrapped):
item.thumbnail_sprited = True
item.preview_image = getattr(item, 'preview_object', None)

item.show_media_preview = show_media_preview

item.score = max(0, item.score)

if item.domain_override:
Expand Down
24 changes: 13 additions & 11 deletions r2/r2/templates/createsubreddit.html
Expand Up @@ -332,17 +332,19 @@
${_("show thumbnail images of content")}
</label>
</li>
<li>
<input class="nomargin" type="checkbox"
name="show_media_preview" id="show_media_preview"
%if thing.site and thing.site.show_media_preview:
checked="checked"
%endif
>
<label for="show_media_preview">
${_("expand media previews on comments pages")}
</label>
</li>
%if thing.feature_autoexpand_media_previews:
<li>
<input class="nomargin" type="checkbox"
name="show_media_preview" id="show_media_preview"
%if thing.site and thing.site.show_media_preview:
checked="checked"
%endif
>
<label for="show_media_preview">
${_("expand media previews on comments pages")}
</label>
</li>
%endif
%endif
<li>
<input class="nomargin" type="checkbox"
Expand Down
41 changes: 27 additions & 14 deletions r2/r2/templates/prefoptions.html
Expand Up @@ -143,10 +143,16 @@
${checkbox(_("open links in a new window"), "newwindow")}
</td>
</tr>
<tr class="preferences-media">
%if thing.feature_autoexpand_media_previews:
<tr class="preferences-media">
%else:
<tr>
%endif
<th>${_("media")}</th>
<td class="prefright">
<h6>${_("thumbnails")}</h6>
%if thing.feature_autoexpand_media_previews:
<h6>${_("thumbnails")}</h6>
%endif
%if not c.user.pref_compress:
${media_radio("on", _("show thumbnails next to links"))}
${media_radio("off", _("don't show thumbnails next to links"))}
Expand All @@ -155,20 +161,27 @@ <h6>${_("thumbnails")}</h6>
<p class="error">${_("to enable thumbnails, disable compressed link display")}</p>
<input type="hidden" name="media" value="${c.user.pref_media}"/>
%endif
<br>
%if thing.feature_autoexpand_media_previews:
<br>

<h6>${_("media previews")}</h6>
${media_preview_radio("on", _("auto-expand media previews"))}
${media_preview_radio("off", _("don't auto-expand media previews on comments pages"))}
${media_preview_radio("subreddit", _("expand media previews based on that subreddit's media preferences"))}
<br>
<h6>${_("media previews")}</h6>
${media_preview_radio("on", _("auto-expand media previews"))}
${media_preview_radio("off", _("don't auto-expand media previews on comments pages"))}
${media_preview_radio("subreddit", _("expand media previews based on that subreddit's media preferences"))}
<br>

<h6>${_("NSFW content")}</h6>
${checkbox(_("hide images for NSFW/18+ content "), "no_profanity", disabled = not c.user.pref_over_18, disabled_text = "(requires over 18)")}
&#32;
<span class="details">
${_("(Don't show thumbnails or media previews for anything labeled NSFW)")}
</span>
<h6>${_("NSFW content")}</h6>
${checkbox(_("hide images for NSFW/18+ content "), "no_profanity", disabled = not c.user.pref_over_18, disabled_text = "(requires over 18)")}
&#32;
<span class="details">
${_("(Don't show thumbnails or media previews for anything labeled NSFW)")}
</span>
%else:
${checkbox(_("make safe(r) for work "), "no_profanity", disabled = not c.user.pref_over_18, disabled_text = "(requires over 18)")}
<span class="details">
${_("(Don't show thumbnails next to anything labeled NSFW)")}
</span>
%endif
</td>
</tr>
<tr>
Expand Down

0 comments on commit e0c16b8

Please sign in to comment.