From 3f109b182cd3fa3d80f3a3b56e90fa4283e64e86 Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Tue, 30 Jun 2015 14:53:32 +0200 Subject: [PATCH] improve the web app start --- .../src/main/js/apps/drilldown/app.js | 45 ++- .../src/main/js/apps/measures/app.js | 307 +++++++++--------- .../app/views/analysis_reports/index.html.erb | 8 - .../app/views/drilldown/measures.html.erb | 4 +- .../app/views/measures/search.html.erb | 4 +- 5 files changed, 179 insertions(+), 189 deletions(-) delete mode 100644 server/sonar-web/src/main/webapp/WEB-INF/app/views/analysis_reports/index.html.erb diff --git a/server/sonar-web/src/main/js/apps/drilldown/app.js b/server/sonar-web/src/main/js/apps/drilldown/app.js index a6d9b5546b3..e46612c1a13 100644 --- a/server/sonar-web/src/main/js/apps/drilldown/app.js +++ b/server/sonar-web/src/main/js/apps/drilldown/app.js @@ -22,31 +22,30 @@ define([ ], function (SourceViewer) { var $ = jQuery, - App = new Marionette.Application(); - - App.addRegions({ - viewerRegion: '#source-viewer' - }); - - App.addInitializer(function () { - $('.js-drilldown-link').on('click', function (e) { - e.preventDefault(); - $(e.currentTarget).closest('table').find('.selected').removeClass('selected'); - $(e.currentTarget).closest('tr').addClass('selected'); - var uuid = $(e.currentTarget).data('uuid'), - viewer = new SourceViewer(); - App.viewerRegion.show(viewer); - viewer.open(uuid); - if (window.drilldown.period != null) { - viewer.on('loaded', function () { - viewer.filterLinesByDate(window.drilldown.period, window.drilldown.periodName); + App = new Marionette.Application(), + init = function (options) { + App.addRegions({ viewerRegion: options.el }); + $('.js-drilldown-link').on('click', function (e) { + e.preventDefault(); + $(e.currentTarget).closest('table').find('.selected').removeClass('selected'); + $(e.currentTarget).closest('tr').addClass('selected'); + var uuid = $(e.currentTarget).data('uuid'), + viewer = new SourceViewer(); + App.viewerRegion.show(viewer); + viewer.open(uuid); + if (window.drilldown.period != null) { + viewer.on('loaded', function () { + viewer.filterLinesByDate(window.drilldown.period, window.drilldown.periodName); + }); + } }); - } + }; + + App.on('start', function (options) { + window.requestMessages().done(function () { + init.call(App, options); }); }); - var l10nXHR = window.requestMessages(); - l10nXHR.done(function () { - App.start(); - }); + return App; }); diff --git a/server/sonar-web/src/main/js/apps/measures/app.js b/server/sonar-web/src/main/js/apps/measures/app.js index 5885cbe87ba..d5f3110dbc5 100644 --- a/server/sonar-web/src/main/js/apps/measures/app.js +++ b/server/sonar-web/src/main/js/apps/measures/app.js @@ -17,8 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -define( - [ +define([ './measures-filter-bar', 'components/navigator/filters/base-filters', 'components/navigator/filters/checkbox-filters', @@ -29,164 +28,160 @@ define( 'components/navigator/filters/string-filters', 'components/navigator/filters/metric-filters' ], - function (FilterBar, BaseFilters, CheckboxFilterView, ChoiceFilters, AjaxSelectFilters, - FavoriteFilters, RangeFilters, StringFilterView, MetricFilterView) { - - var NavigatorApp = new Marionette.Application(); - - - NavigatorApp.addRegions({ - filtersRegion: '.navigator-filters' - }); - - - NavigatorApp.addInitializer(function () { - this.filters = new BaseFilters.Filters(); - - if (_.isObject(window.SS.favorites)) { - this.filters.add([ - new BaseFilters.Filter({ - type: FavoriteFilters.FavoriteFilterView, - enabled: true, - optional: false, - choices: window.SS.favorites, - favoriteUrl: '/measures/filter', - manageUrl: '/measures/manage' - })]); - } - - this.filters.add([ - new BaseFilters.Filter({ - name: window.SS.phrases.components, - property: 'qualifiers[]', - type: ChoiceFilters.ChoiceFilterView, - enabled: true, - optional: false, - choices: window.SS.qualifiers, - defaultValue: window.SS.phrases.any - }), - - new BaseFilters.Filter({ - name: window.SS.phrases.componentsOf, - property: 'base', - type: AjaxSelectFilters.ComponentFilterView, - multiple: false, - enabled: false, - optional: true - }), - - new BaseFilters.Filter({ - name: window.SS.phrases.favoritesOnly, - property: 'onFavourites', - type: CheckboxFilterView, - enabled: false, - optional: true - }), - - new BaseFilters.Filter({ - name: window.SS.phrases.date, - propertyFrom: 'fromDate', - propertyTo: 'toDate', - type: RangeFilters.DateRangeFilterView, - enabled: false, - optional: true - }), - - new BaseFilters.Filter({ - name: window.SS.phrases.keyContains, - property: 'keySearch', - type: StringFilterView, - enabled: false, - optional: true - }) - ]); - }); - - NavigatorApp.addInitializer(function () { - this.filters.add([ - new BaseFilters.Filter({ - name: window.SS.phrases.lastAnalysis, - propertyFrom: 'ageMinDays', - propertyTo: 'ageMaxDays', - type: RangeFilters.RangeFilterView, - placeholder: window.SS.phrases.days, - enabled: false, - optional: true - }), - - new BaseFilters.Filter({ - name: window.SS.phrases.metric, - property: 'c3', - type: MetricFilterView, - metrics: window.SS.metrics, - periods: window.SS.metricPeriods, - operations: { 'eq': '=', 'lt': '<', 'lte': '≤', 'gt': '>', 'gte': '≥' }, - enabled: false, - optional: true - }), - - new BaseFilters.Filter({ - name: window.SS.phrases.metric, - property: 'c2', - type: MetricFilterView, - metrics: window.SS.metrics, - periods: window.SS.metricPeriods, - operations: { 'eq': '=', 'lt': '<', 'lte': '≤', 'gt': '>', 'gte': '≥' }, - enabled: false, - optional: true - }), - - new BaseFilters.Filter({ - name: window.SS.phrases.metric, - property: 'c1', - type: MetricFilterView, - metrics: window.SS.metrics, - periods: window.SS.metricPeriods, - operations: { 'eq': '=', 'lt': '<', 'lte': '≤', 'gt': '>', 'gte': '≥' }, - enabled: false, - optional: true - }), - - new BaseFilters.Filter({ - name: window.SS.phrases.nameContains, - property: 'nameSearch', - type: StringFilterView, - enabled: false, - optional: true - }), - - new BaseFilters.Filter({ - name: window.SS.phrases.alert, - property: 'alertLevels[]', - type: ChoiceFilters.ChoiceFilterView, - enabled: false, - optional: true, - choices: { - 'error': window.SS.phrases.error, - 'warn': window.SS.phrases.warning, - 'ok': window.SS.phrases.ok + function (FilterBar, BaseFilters, CheckboxFilterView, ChoiceFilters, AjaxSelectFilters, FavoriteFilters, + RangeFilters, StringFilterView, MetricFilterView) { + + var NavigatorApp = new Marionette.Application(), + init = function () { + NavigatorApp.addRegions({ filtersRegion: '.navigator-filters' }); + + this.filters = new BaseFilters.Filters(); + + if (_.isObject(window.SS.favorites)) { + this.filters.add([ + new BaseFilters.Filter({ + type: FavoriteFilters.FavoriteFilterView, + enabled: true, + optional: false, + choices: window.SS.favorites, + favoriteUrl: '/measures/filter', + manageUrl: '/measures/manage' + }) + ]); } - }) - ]); - - - this.filterBarView = new FilterBar({ - collection: this.filters, - extra: { - sort: '', - asc: false - } - }); + this.filters.add([ + new BaseFilters.Filter({ + name: window.SS.phrases.components, + property: 'qualifiers[]', + type: ChoiceFilters.ChoiceFilterView, + enabled: true, + optional: false, + choices: window.SS.qualifiers, + defaultValue: window.SS.phrases.any + }), + + new BaseFilters.Filter({ + name: window.SS.phrases.componentsOf, + property: 'base', + type: AjaxSelectFilters.ComponentFilterView, + multiple: false, + enabled: false, + optional: true + }), + + new BaseFilters.Filter({ + name: window.SS.phrases.favoritesOnly, + property: 'onFavourites', + type: CheckboxFilterView, + enabled: false, + optional: true + }), + + new BaseFilters.Filter({ + name: window.SS.phrases.date, + propertyFrom: 'fromDate', + propertyTo: 'toDate', + type: RangeFilters.DateRangeFilterView, + enabled: false, + optional: true + }), + + new BaseFilters.Filter({ + name: window.SS.phrases.keyContains, + property: 'keySearch', + type: StringFilterView, + enabled: false, + optional: true + }) + ]); + + this.filters.add([ + new BaseFilters.Filter({ + name: window.SS.phrases.lastAnalysis, + propertyFrom: 'ageMinDays', + propertyTo: 'ageMaxDays', + type: RangeFilters.RangeFilterView, + placeholder: window.SS.phrases.days, + enabled: false, + optional: true + }), + + new BaseFilters.Filter({ + name: window.SS.phrases.metric, + property: 'c3', + type: MetricFilterView, + metrics: window.SS.metrics, + periods: window.SS.metricPeriods, + operations: { 'eq': '=', 'lt': '<', 'lte': '≤', 'gt': '>', 'gte': '≥' }, + enabled: false, + optional: true + }), + + new BaseFilters.Filter({ + name: window.SS.phrases.metric, + property: 'c2', + type: MetricFilterView, + metrics: window.SS.metrics, + periods: window.SS.metricPeriods, + operations: { 'eq': '=', 'lt': '<', 'lte': '≤', 'gt': '>', 'gte': '≥' }, + enabled: false, + optional: true + }), + + new BaseFilters.Filter({ + name: window.SS.phrases.metric, + property: 'c1', + type: MetricFilterView, + metrics: window.SS.metrics, + periods: window.SS.metricPeriods, + operations: { 'eq': '=', 'lt': '<', 'lte': '≤', 'gt': '>', 'gte': '≥' }, + enabled: false, + optional: true + }), + + new BaseFilters.Filter({ + name: window.SS.phrases.nameContains, + property: 'nameSearch', + type: StringFilterView, + enabled: false, + optional: true + }), + + new BaseFilters.Filter({ + name: window.SS.phrases.alert, + property: 'alertLevels[]', + type: ChoiceFilters.ChoiceFilterView, + enabled: false, + optional: true, + choices: { + 'error': window.SS.phrases.error, + 'warn': window.SS.phrases.warning, + 'ok': window.SS.phrases.ok + } + }) + ]); + + this.filterBarView = new FilterBar({ + collection: this.filters, + extra: { + sort: '', + asc: false + } + }); + + this.filtersRegion.show(this.filterBarView); + + if (window.queryParams) { + NavigatorApp.filterBarView.restoreFromQuery(window.queryParams); + } + key.setScope('list'); + }; - this.filtersRegion.show(this.filterBarView); + NavigatorApp.on('start', function () { + init.call(NavigatorApp); }); - - NavigatorApp.start(); - if (window.queryParams) { - NavigatorApp.filterBarView.restoreFromQuery(window.queryParams); - } - key.setScope('list'); + return NavigatorApp; }); diff --git a/server/sonar-web/src/main/webapp/WEB-INF/app/views/analysis_reports/index.html.erb b/server/sonar-web/src/main/webapp/WEB-INF/app/views/analysis_reports/index.html.erb deleted file mode 100644 index ed62d9a203e..00000000000 --- a/server/sonar-web/src/main/webapp/WEB-INF/app/views/analysis_reports/index.html.erb +++ /dev/null @@ -1,8 +0,0 @@ -<% content_for :script do %> - -<% end %> - - -
- -
diff --git a/server/sonar-web/src/main/webapp/WEB-INF/app/views/drilldown/measures.html.erb b/server/sonar-web/src/main/webapp/WEB-INF/app/views/drilldown/measures.html.erb index a5dfbc1bcb3..fd73a9ea7d2 100644 --- a/server/sonar-web/src/main/webapp/WEB-INF/app/views/drilldown/measures.html.erb +++ b/server/sonar-web/src/main/webapp/WEB-INF/app/views/drilldown/measures.html.erb @@ -135,6 +135,8 @@ <% content_for :extra_script do %> <% end %> diff --git a/server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/search.html.erb b/server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/search.html.erb index c5ae501edc9..f731ded1dc9 100644 --- a/server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/search.html.erb +++ b/server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/search.html.erb @@ -126,6 +126,8 @@ <% end %> -- 2.39.5