Skip to content

Instantly share code, notes, and snippets.

@OniOni
Created July 9, 2012 20:45
Show Gist options
  • Save OniOni/3078785 to your computer and use it in GitHub Desktop.
Save OniOni/3078785 to your computer and use it in GitHub Desktop.
Code for having a popup encouraging free users to subscribe after minutes are over.
diff --git a/hostess/maitred/maitred/controllers/bugs.py b/hostess/maitred/maitred/controllers/bugs.py
index 39913e5..a456743 100644
--- a/hostess/maitred/maitred/controllers/bugs.py
+++ b/hostess/maitred/maitred/controllers/bugs.py
@@ -168,6 +168,7 @@ class BugsController(BaseController):
if c.loginname:
c.user = User.load(c.loginname)
c.subscribed = c.user.get_ancestor().get('SubscriptionActive')
+ c.minutes = c.user.get_minutes(type="ScoutCredits")
force_flash = request.params.get('force_flash', None)
session['live_scout_views'] = session.get('live_scout_views', 0) + 1
diff --git a/hostess/maitred/maitred/public/js/scout/scout.js b/hostess/maitred/maitred/public/js/scout/scout.js
index 05e032f..1371c48 100644
--- a/hostess/maitred/maitred/public/js/scout/scout.js
+++ b/hostess/maitred/maitred/public/js/scout/scout.js
@@ -937,12 +937,32 @@ scout.control.submitBug = function() {
}, takeScreenShot, "json");
};
+scout.control.setUpSubscribePopup = function () {
+ console.log('subscribed '+window.subscribed+' minutes :'+window.minutes+' of type '+typeof window.minutes);
+ if ((!window.subscribed || window.subscribed == 'None') && typeof window.minutes == 'number') {
+ var url = '/scout/live/'+scout.scoutIds[scout.curTabId]+'/status' + '?' + scout.paramVars;
+
+ $.getJSON(url , function (data) {
+ if (data.status == 'in progress') {
+ console.log('Arming timer, will fire in '+window.minutes+' mins.');
+ window.setTimeout(function () {
+ showSubscribe();
+ }, window.minutes * 60000);
+ } else {
+ console.log('Checking status in 10 seconds');
+ window.setTimeout(scout.control.setUpSubscribePopup, 10000);
+ }
+ });
+ }
+};
+
scout.control.initFirstJob = function() {
var wrap = $('#main .wrap');
wrap.height(scout.view.getAvailableHeight() - scout.wrapOffset);
scout.view.createNewTabHtml(scout.curTabId);
scout.control.switchToTab(scout.curTabId);
+ scout.control.setUpSubscribePopup();
scout.control.jobStatusLoop();
};
diff --git a/hostess/maitred/maitred/templates/scout/scout.mako b/hostess/maitred/maitred/templates/scout/scout.mako
index bc1c47f..11ba010 100644
--- a/hostess/maitred/maitred/templates/scout/scout.mako
+++ b/hostess/maitred/maitred/templates/scout/scout.mako
@@ -15,6 +15,7 @@
${h.javascript_link("/js/jquery/jquery.blockUI.js")}
${h.javascript_link("/js/quicksignup.js")}
<script type="text/javascript">
+ window.minutes = ${c.minutes if type(c.minutes) in (int, long) else '"'+c.minutes+'"'};
window.subscribed = "${c.subscribed}";
window.initialJobId = "${c.job_id}";
window.initialTaskId = "${c.task['id']}";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment