diff --git a/r2/r2/lib/pages/pages.py b/r2/r2/lib/pages/pages.py index c43a22a29..ccb561c8c 100644 --- a/r2/r2/lib/pages/pages.py +++ b/r2/r2/lib/pages/pages.py @@ -4052,19 +4052,23 @@ class Bookings(object): return "%s (%s*)" % nums -class PromoteInventory(Templated): +class PromoteInventory(PromoteLinkBase): def __init__(self, start, end, target): Templated.__init__(self) self.start = start self.end = end + self.default_start = start.strftime('%m/%d/%Y') + self.default_end = end.strftime('%m/%d/%Y') self.target = target self.display_name = target.pretty_name if target.is_collection: self.sr_input = None self.collection_input = target.collection.name + self.targeting_type = "collection" else: self.sr_input = target.subreddit_name self.collection_input = None + self.targeting_type = "collection" if target.subreddit_name == Frontpage.name else "one" self.setup() def setup(self): @@ -4133,6 +4137,17 @@ class PromoteInventory(Templated): self.rows = rows + default_sr = None + if not self.target.is_collection and self.sr_input: + default_sr = Subreddit._by_name(self.sr_input) + self.subreddit_selector = SubredditSelector( + default_sr=default_sr, + include_user_subscriptions=False) + + self.get_locations() + self.get_collections() + + class PromoteReport(Templated): def __init__(self, links, link_text, owner_name, bad_links, start, end): self.links = links diff --git a/r2/r2/public/static/css/reddit.less b/r2/r2/public/static/css/reddit.less index 6c39bd10d..0884a16a5 100644 --- a/r2/r2/public/static/css/reddit.less +++ b/r2/r2/public/static/css/reddit.less @@ -5913,8 +5913,10 @@ div #campaign-field { } } -.create-promotion { - +.inventory-dashboard { + .geotargeting-group { + display: none; + } } .sponsored-page { @@ -6474,15 +6476,20 @@ dd { margin-left: 20px; } .inventory-table { font-size: smaller; - text-align: center; + text-align: right; margin-top: 20px; th, td { - padding: 2px; + padding: 3px; } th { border-bottom: 1px solid #000000; + text-align: right; + + &:first-child { + text-align: left; + } } td.title { diff --git a/r2/r2/public/static/js/sponsored.js b/r2/r2/public/static/js/sponsored.js index c82051114..05da24767 100644 --- a/r2/r2/public/static/js/sponsored.js +++ b/r2/r2/public/static/js/sponsored.js @@ -702,6 +702,45 @@ r.sponsored = { calc_bid: function(impressions, cpm_pennies) { return (Math.floor(impressions * cpm_pennies / 1000) / 100).toFixed(2) }, + + render_timing_duration: function($form, ndays) { + $form.find('.timing-field .duration').text( + ndays + " " + ((ndays > 1) ? r._("days") : r._("day"))); + }, + + fill_inventory_form: function() { + var $form = $('.inventory-dashboard'), + targeting = this.get_targeting($form), + timing = this.get_timing($form); + + this.render_timing_duration($form, timing.duration); + }, + + submit_inventory_form: function() { + var $form = $('.inventory-dashboard'), + targeting = this.get_targeting($form), + timing = this.get_timing($form); + + var data = { + startdate: timing.startdate, + enddate: timing.enddate, + }; + + if (targeting.type === 'collection') { + data.collection_name = targeting.collection; + } + else if (targeting.type === 'subreddit') { + data.sr_name = targeting.sr; + } + + this.reload_with_params(data); + }, + + reload_with_params: function(data) { + var queryString = '?' + $.param(data); + var location = window.location; + window.location = location.origin + location.pathname + queryString; + }, } var dateFromInput = function(selector, offset) { diff --git a/r2/r2/templates/promoteinventory.html b/r2/r2/templates/promoteinventory.html index 45afe1708..95a748d79 100644 --- a/r2/r2/templates/promoteinventory.html +++ b/r2/r2/templates/promoteinventory.html @@ -22,6 +22,7 @@ <%! from r2.lib import js + import simplejson %> <%namespace name="pr" file="promotelinkbase.html" /> @@ -29,43 +30,23 @@ ${unsafe(js.use('sponsored'))} -

promoted link inventory for ${thing.display_name}

- -
-
- - - - - - - - - - - - - - - -
start - <%pr:datepicker name="startdate" value="${thing.start.strftime('%m/%d/%Y')}" - minDateSrc="date-min" initfuncname="init_startdate" - min_date_offset="86400000"> - function(elem) { check_enddate(elem, $("#enddate")); return elem; } - -
end - <%pr:datepicker name="enddate" value="${thing.end.strftime('%m/%d/%Y')}" - minDateSrc="startdate" initfuncname="init_enddate" - min_date_offset="86400000"> - function(elem) { return elem; } - -
subreddit - - ${error_field("SUBREDDIT_NOEXIST", "sr_name", "div")} -
- -
+ @@ -82,22 +63,31 @@ ${unsafe(js.use('sponsored'))} %for column in row.columns: - + %endfor %endfor
%if not row.is_total: -
${row.info['author']}
-
${column}${column}