summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/modules/widgets/milestone/milestone.js')
-rw-r--r--plugins/jetpack/modules/widgets/milestone/milestone.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/plugins/jetpack/modules/widgets/milestone/milestone.js b/plugins/jetpack/modules/widgets/milestone/milestone.js
new file mode 100644
index 00000000..3780dec6
--- /dev/null
+++ b/plugins/jetpack/modules/widgets/milestone/milestone.js
@@ -0,0 +1,49 @@
+/* global MilestoneConfig */
+
+var Milestone = ( function( $ ) {
+ var Milestone = function( args ) {
+ var $widget = $( '#' + args.id ),
+ id = args.id,
+ refresh = args.refresh * 1000;
+
+ this.timer = function() {
+ var instance = this;
+
+ $.ajax( {
+ url: MilestoneConfig.api_root + 'jetpack/v4/widgets/' + id,
+ success: function( result ) {
+ $widget.find( '.milestone-countdown' ).replaceWith( result.message );
+ refresh = result.refresh * 1000;
+
+ if ( ! refresh ) {
+ return;
+ }
+
+ setTimeout( function() {
+ instance.timer();
+ }, refresh );
+ },
+ } );
+ };
+
+ if ( refresh > 0 ) {
+ this.timer();
+ }
+ };
+ return function( args ) {
+ return new Milestone( args );
+ };
+} )( jQuery );
+
+( function() {
+ var i,
+ MilestoneInstances = {};
+
+ if ( typeof MilestoneConfig === 'undefined' ) {
+ return;
+ }
+
+ for ( i = 0; i < MilestoneConfig.instances.length; i++ ) {
+ MilestoneInstances[ i ] = new Milestone( MilestoneConfig.instances[ i ] );
+ }
+} )();