Bamboo deployment dashboard slow when displaying many deployment projects

XMLWordPrintable

      Running 66 deployment projects noticeably slows down Bamboo's dashboard. The slowness is mostly coming from line 46774 of the batch.js file:

      (function(){function i(e){return n.isArray(e)?n.reduce(e,function(e,t){return e[t]=null,e},{}):e}function s(e,t){if(!e||t==null)return t;if(typeof e=="string"||e instanceof String){if(typeof t!=""+e)throw"The typeof "+t+" is "+typeof t+" but expected it to be "+e;return t}if(n.isArray(e)||e===Array){if(!u(t))throw"Array type expected, but nonnull, non-Array value provided.";return e===Array||!e[0]?t:n.map(t,n.bind(s,null,e[0]))}if(typeof e!="function")throw"Invalid expected type "+e+". Should be falsy, String, Array, Backbone.Collection constructor, or function.";return t instanceof e?t:o(e)?new e(s([e.model],t)):new e(t)}function o(e,t){return e&&(e.__super__ instanceof(t||r.Collection)||e.__super__===(t||r.Collection).prototype||e===(t||r.Collection))}function u(e){return n.has(e,"length")&&!(e instanceof String||n.has({string:1,"function":1},typeof e)||e instanceof r.Collection)}function a(e,t){var r={};return n.each(e,function(e,n){if(!!t[n]&&!f(e,t[n])){if(!e||f(t[n],e))return;throw n+" has conflicted type descriptors."}r[n]=e}),r}function f(e,t){return!t||t===e?!0:!e||typeof e=="string"?!1:e instanceof Array?t===Array||t instanceof Array&&f(e[0],t[0]):typeof t!="function"?!1:o(t)?o(e,t):e.prototype instanceof t}function l(e){return n.isObject(e)?n.reduce(e,function(e,t,r){return t&&n.isFunction(t.toJSON)?e[r]=t.toJSON():n.isArray(t)&&(e[r]=n.map(t,function(e){return e&&n.isFunction(e.toJSON)?e.toJSON():e})),e},e):e}function c(e){return function(){var n=e.call(this);return l(n)}}function h(e){return function r(s,o){var u,a=n.extend({},s),f;return s&&s.mixins&&(f=s.mixins,delete a.mixins),u=e.call(this,a,o),this.prototype.namedEvents&&t.Mixins.applyMixin(u,{namedEvents:this.prototype.namedEvents}),this.prototype.namedAttributes&&t.Mixins.applyMixin(u,{namedAttributes:this.prototype.namedAttributes}),f&&n.each(s.mixins,function(e){t.Mixins.applyMixin(u,e)}),u.prototype.namedEvents&&t.Mixins.applyMixin(u,t.EventsMixinCreator.create(u.prototype.namedEvents)),u.prototype.namedAttributes&&(u.prototype.namedAttributes=i(u.prototype.namedAttributes),t.Mixins.applyMixin(u,t.AttributesMixinCreator.create(u.prototype.namedAttributes))),u.prototype.toJSON&&(u.prototype.toJSON=c(u.prototype.toJSON)),u.extend=r,u}}function p(e,t){var r=e.prototype,i=t.prototype,o=r.set;i.set=function(e,t,r){var i,u=this.namedAttributes;if(!u||e==null)return o.apply(this,arguments);n.isObject(e)?(i=n.clone(e),r=t):(i={},i[e]=t);for(var a in i){if(!n.has(i,a))continue;if(!n.has(u,a))throw"Attribute '"+a+"' does not exist";i[a]=s(u[a],i[a])}return o.call(this,i,r)};var u=r.get;i.get=function(e){if(this.namedAttributes&&!n.has(this.namedAttributes,e))throw"Attribute '"+e+"' does not exist";return u.apply(this,arguments)}}function d(e){var t=e.extend(),n=e.extend;return t.extend=h(n),t}function v(e){var t=d(e);return p(e,t),t}var e=this,t;typeof exports!="undefined"?t=exports:t=e.Brace={};var n=e._;!n&&typeof require!="undefined"&&(n=require("underscore"));var r=e.Backbone;!r&&typeof require!="undefined"&&(r=require("backbone")),t.Mixins={createMethodName:function(e,t){return e+t.charAt(0).toUpperCase()+t.substr(1)},applyMixin:function(e,t){n.forEach(n.keys(t),function(r){var s=e.prototype;if("initialize"===r){var o=s.initialize;s.initialize=function(){o&&o.apply(this,arguments),t.initialize.apply(this,arguments)};return}if("validate"===r){var u=s.validate;s.validate=function(){if(u){var e=u.apply(this,arguments);if(e)return e}return t.validate.apply(this,arguments)};return}if("defaults"===r){var f=s.defaults||(s.defaults={}),l=t[r];for(var c in l){if(f.hasOwnProperty(c))throw"Mixin error: class already has default '"+c+"' defined";f[c]=l[c]}return}if("namedAttributes"===r){var h=i(s.namedAttributes)||{},p=i(t[r]);s.namedAttributes=n.extend(h,a(p,h));return}if("namedEvents"===r){if(!n.isArray(t[r]))throw"Expects events member on mixin to be an array";s.namedEvents||(s.namedEvents=[]),s.namedEvents=n.uniq(s.namedEvents.concat(t[r]));return}if(s.hasOwnProperty(r))throw"Mixin error: class already has property '"+r+"' defined";s[r]=t[r]},this)}},t.AttributesMixinCreator={create:function(e){var r={};return e||(e={}),n.has(e,"id")||(e.id=null),n.each(e,function(e,n){var i=t.Mixins.createMethodName("set",n);r[i]=function(e,t){return this.set(n,e,t)};var s=t.Mixins.createMethodName("get",n);r[s]=function(){return this.get(n)}}),r},ensureType:s},t.EventsMixinCreator={create:function(e){var r={},i=function(e){var i=t.Mixins.createMethodName("on",e);r[i]=function(){return this.on.apply(this,[e].concat(n.toArray(arguments)))};var s=t.Mixins.createMethodName("trigger",e);r[s]=function(){return this.trigger.apply(this,[e].concat(n.toArray(arguments)))}};return n.each(e,n.bind(i,this)),r}},t.Model=v(r.Model),t.Collection=d(r.Collection),t.View=d(r.View),t.Router=d(r.Router)})();
      

            Assignee:
            Don Willis
            Reporter:
            ArmenA
            Votes:
            7 Vote for this issue
            Watchers:
            17 Start watching this issue

              Created:
              Updated:
              Resolved: