diff --git a/public/assets/js/build-plugins/loc.js b/public/assets/js/build-plugins/loc.js index d71a42ad..45eeac91 100644 --- a/public/assets/js/build-plugins/loc.js +++ b/public/assets/js/build-plugins/loc.js @@ -4,6 +4,7 @@ var locPlugin = PHPCI.UiPlugin.extend({ title: 'Lines of Code', lastData: null, displayOnUpdate: false, + rendered: false, register: function() { var self = this; @@ -14,8 +15,7 @@ var locPlugin = PHPCI.UiPlugin.extend({ }); $(window).on('build-updated', function(data) { - if (data.queryData.status > 1) { - self.displayOnUpdate = true; + if (data.queryData.status > 1 && !self.rendered) { query(); } }); @@ -29,10 +29,7 @@ var locPlugin = PHPCI.UiPlugin.extend({ onUpdate: function(e) { this.lastData = e.queryData; - - if (this.displayOnUpdate) { - this.displayChart(); - } + this.displayChart(); }, displayChart: function() { @@ -42,6 +39,8 @@ var locPlugin = PHPCI.UiPlugin.extend({ return; } + this.rendered = true; + $('#phploc-lines').empty().animate({height: '275px'}); var titles = ['Build', 'Lines', 'Comment Lines', 'Non-Comment Lines', 'Logical Lines']; diff --git a/public/assets/js/build-plugins/phpcs.js b/public/assets/js/build-plugins/phpcs.js index aaac3ec9..ce302965 100644 --- a/public/assets/js/build-plugins/phpcs.js +++ b/public/assets/js/build-plugins/phpcs.js @@ -3,8 +3,8 @@ var phpcsPlugin = PHPCI.UiPlugin.extend({ css: 'col-lg-12 col-md-12 col-sm-12 col-xs-12', title: 'PHP Code Sniffer', lastData: null, - displayOnUpdate: false, box: true, + rendered: false, register: function() { var self = this; @@ -14,16 +14,14 @@ var phpcsPlugin = PHPCI.UiPlugin.extend({ self.onUpdate(data); }); - $(window).on('build-updated', function(data) { - if (data.queryData.status > 1) { - self.displayOnUpdate = true; + $(window).on('build-updated', function() { + if (!self.rendered) { query(); } }); }, render: function() { - return $('' + '' + '' + @@ -35,10 +33,11 @@ var phpcsPlugin = PHPCI.UiPlugin.extend({ }, onUpdate: function(e) { - if (this.lastData && this.lastData[0]) { + if (!e.queryData) { return; } + this.rendered = true; this.lastData = e.queryData; var errors = this.lastData[0].meta_value; diff --git a/public/assets/js/build-plugins/phpdoccheck.js b/public/assets/js/build-plugins/phpdoccheck.js index 89d8b449..adfb75ff 100644 --- a/public/assets/js/build-plugins/phpdoccheck.js +++ b/public/assets/js/build-plugins/phpdoccheck.js @@ -5,6 +5,7 @@ var phpdoccheckPlugin = PHPCI.UiPlugin.extend({ lastData: null, displayOnUpdate: false, box: true, + rendered: false, register: function() { var self = this; @@ -14,8 +15,8 @@ var phpdoccheckPlugin = PHPCI.UiPlugin.extend({ self.onUpdate(data); }); - $(window).on('build-updated', function(data) { - if (data.queryData.status > 1) { + $(window).on('build-updated', function() { + if (!self.rendered) { self.displayOnUpdate = true; query(); } @@ -23,7 +24,6 @@ var phpdoccheckPlugin = PHPCI.UiPlugin.extend({ }, render: function() { - return $('
' + '' + '' + @@ -37,10 +37,11 @@ var phpdoccheckPlugin = PHPCI.UiPlugin.extend({ }, onUpdate: function(e) { - if (this.lastData && this.lastData[0]) { + if (!e.queryData) { return; } + this.rendered = true; this.lastData = e.queryData; var errors = this.lastData[0].meta_value; diff --git a/public/assets/js/build-plugins/phpmd.js b/public/assets/js/build-plugins/phpmd.js index abf90f4c..c2e6c7e1 100644 --- a/public/assets/js/build-plugins/phpmd.js +++ b/public/assets/js/build-plugins/phpmd.js @@ -5,6 +5,7 @@ var phpmdPlugin = PHPCI.UiPlugin.extend({ lastData: null, displayOnUpdate: false, box: true, + rendered: false, register: function() { var self = this; @@ -14,8 +15,8 @@ var phpmdPlugin = PHPCI.UiPlugin.extend({ self.onUpdate(data); }); - $(window).on('build-updated', function(data) { - if (data.queryData.status > 1) { + $(window).on('build-updated', function() { + if (!self.rendered) { self.displayOnUpdate = true; query(); } @@ -36,10 +37,11 @@ var phpmdPlugin = PHPCI.UiPlugin.extend({ }, onUpdate: function(e) { - if (this.lastData && this.lastData[0]) { + if (!e.queryData) { return; } + this.rendered = true; this.lastData = e.queryData; var errors = this.lastData[0].meta_value; diff --git a/public/assets/js/build-plugins/phpunit.js b/public/assets/js/build-plugins/phpunit.js index c09855a9..1afe4d27 100644 --- a/public/assets/js/build-plugins/phpunit.js +++ b/public/assets/js/build-plugins/phpunit.js @@ -5,6 +5,7 @@ var phpunitPlugin = PHPCI.UiPlugin.extend({ lastData: null, displayOnUpdate: false, box: true, + rendered: false, register: function() { var self = this; @@ -14,8 +15,8 @@ var phpunitPlugin = PHPCI.UiPlugin.extend({ self.onUpdate(data); }); - $(window).on('build-updated', function(data) { - if (data.queryData.status > 1) { + $(window).on('build-updated', function() { + if (!self.rendered) { self.displayOnUpdate = true; query(); } @@ -33,10 +34,11 @@ var phpunitPlugin = PHPCI.UiPlugin.extend({ }, onUpdate: function(e) { - if (this.lastData && this.lastData[0]) { + if (!e.queryData) { return; } + this.rendered = true; this.lastData = e.queryData; var tests = this.lastData[0].meta_value; diff --git a/public/assets/js/build-plugins/warnings.js b/public/assets/js/build-plugins/warnings.js index 70d2b4b2..7ae48970 100644 --- a/public/assets/js/build-plugins/warnings.js +++ b/public/assets/js/build-plugins/warnings.js @@ -12,6 +12,7 @@ var warningsPlugin = PHPCI.UiPlugin.extend({ }, data: {}, displayOnUpdate: false, + rendered: false, register: function() { var self = this; @@ -26,7 +27,7 @@ var warningsPlugin = PHPCI.UiPlugin.extend({ }); $(window).on('build-updated', function(data) { - if (data.queryData.status > 1) { + if (!self.rendered && data.queryData.status > 1) { self.displayOnUpdate = true; for (var query in queries) { queries[query](); @@ -68,6 +69,7 @@ var warningsPlugin = PHPCI.UiPlugin.extend({ displayChart: function() { var self = this; + self.rendered = true; $('#build-warnings').empty().animate({height: '275px'}); diff --git a/public/assets/js/phpci.js b/public/assets/js/phpci.js index 05d4c3cb..9d86b849 100644 --- a/public/assets/js/phpci.js +++ b/public/assets/js/phpci.js @@ -317,8 +317,19 @@ var PHPCIObject = Class.extend({ updateInterval: null, init: function(build) { + var self = this; this.buildId = build; this.registerQuery('build-updated', 10); + + $(window).on('build-updated', function(data) { + + // If the build has finished, stop updating every 10 seconds: + if (data.queryData.status > 1) { + self.cancelQuery('build-updated'); + $(window).trigger({type: 'build-complete'}); + } + + }); }, registerQuery: function(name, seconds, query) { @@ -337,12 +348,16 @@ var PHPCIObject = Class.extend({ }; if (seconds != -1) { - setInterval(cb, seconds * 1000); + self.queries[name] = setInterval(cb, seconds * 1000); } return cb; }, + cancelQuery: function (name) { + clearInterval(this.queries[name]); + }, + registerPlugin: function(plugin) { this.plugins[plugin.id] = plugin; plugin.register();