diff --git a/r2/r2/lib/promote.py b/r2/r2/lib/promote.py
index e3f67eb03..d22b83712 100644
--- a/r2/r2/lib/promote.py
+++ b/r2/r2/lib/promote.py
@@ -72,6 +72,12 @@ def promo_edit_url(l):
def pay_url(l, indx):
return "%spromoted/pay/%s/%d" % (g.payment_domain, l._id36, indx)
+def view_live_url(l, srname):
+ url = get_domain(cname=False, subreddit=False)
+ if srname:
+ url += '/r/%s' % srname
+ return 'http://%s/?ad=%s' % (url, l._fullname)
+
# booleans
def is_promo(link):
@@ -249,12 +255,15 @@ class RenderableCampaign():
time = ungettext("day", "days", ndays))
self.bid = "%.2f" % bid
self.sr = sr
+ live = is_live_on_sr(link, sr)
self.status = dict(paid = bool(transaction),
complete = False,
free = (trans_id < 0),
pay_url = pay_url(link, indx),
- sponsor = c.user_is_sponsor)
+ view_live_url = view_live_url(link, sr),
+ sponsor = c.user_is_sponsor,
+ live = live)
if transaction:
if transaction.is_void():
self.status['paid'] = False
diff --git a/r2/r2/public/static/js/sponsored.js b/r2/r2/public/static/js/sponsored.js
index 2daad033f..81b61afac 100644
--- a/r2/r2/public/static/js/sponsored.js
+++ b/r2/r2/public/static/js/sponsored.js
@@ -105,6 +105,9 @@ function get_flag_class(flags) {
if(flags.free) {
css_class += " free";
}
+ if(flags.live) {
+ css_class += " live";
+ }
if(flags.complete) {
css_class += " complete";
}
@@ -134,6 +137,10 @@ $.new_campaign = function(indx, start_date, end_date, duration,
data += ("");
}
+ if (flags && flags.view_live_url) {
+ data += ("");
+ }
var row = [start_date, end_date, duration, "$" + bid, targeting, data];
$(".existing-campaigns .error").hide();
var css_class = get_flag_class(flags);
@@ -173,12 +180,18 @@ $.set_up_campaigns = function() {
var pay = "";
var free = "";
var repay = "";
+ var view = "";
$(".existing-campaigns tr").each(function() {
var tr = $(this);
var td = $(this).find("td:last");
var bid_td = $(this).find("td:first").next().next().next()
.addClass("bid");
+ var target_td = $(this).find("td:nth-child(5)")
if(td.length && ! td.children("button, span").length ) {
+ if(tr.hasClass("live")) {
+ $(target_td).append($(view).addClass("view")
+ .click(function() { view_campaign(tr) }));
+ }
/* once paid, we shouldn't muck around with the campaign */
if(!tr.hasClass("complete")) {
if (tr.hasClass("sponsor") && !tr.hasClass("free")) {
@@ -350,3 +363,7 @@ function free_campaign(elem) {
function pay_campaign(elem) {
$.redirect($(elem).find('input[name="pay_url"]').val());
}
+
+function view_campaign(elem) {
+ $.redirect($(elem).find('input[name="view_live_url"]').val());
+}