From 5cb59a3e46d9745c61e096a3dfdc313bb85f4cb4 Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Tue, 4 Nov 2014 10:37:29 +0100 Subject: [PATCH] SONAR-5718 Show error popup --- .../src/main/coffee/common/processes.coffee | 38 +++++++++++++++---- .../src/main/coffee/issues/controller.coffee | 13 ++++--- server/sonar-web/src/main/less/ui.less | 16 +++++++- .../resources/org/sonar/l10n/core.properties | 1 + 4 files changed, 55 insertions(+), 13 deletions(-) diff --git a/server/sonar-web/src/main/coffee/common/processes.coffee b/server/sonar-web/src/main/coffee/common/processes.coffee index 3e63cf83e06..21c7ab1266c 100644 --- a/server/sonar-web/src/main/coffee/common/processes.coffee +++ b/server/sonar-web/src/main/coffee/common/processes.coffee @@ -9,8 +9,8 @@ _.extend process, addBackgroundProcess: -> uid = _.uniqueId 'process' - @queue[uid] = new Date() - setTimeout (=> @showSpinner uid if @isBackgroundProcessAlive uid), @timeout + @renderSpinner uid + @queue[uid] = setTimeout (=> @showSpinner uid), @timeout uid @@ -19,23 +19,47 @@ _.extend process, finishBackgroundProcess: (uid) -> - delete @queue[uid] - @removeSpinner uid + if @isBackgroundProcessAlive uid + clearInterval @queue[uid] + delete @queue[uid] + @removeSpinner uid - showSpinner: (uid) -> + failBackgroundProcess: (uid) -> + if @isBackgroundProcessAlive uid + clearInterval @queue[uid] + delete @queue[uid] + spinner = @getSpinner uid + spinner.addClass 'process-spinner-failed' + spinner.text t 'process.fail' + close = $('').html('').addClass 'process-spinner-close' + close.appendTo spinner + close.on 'click', => @removeSpinner uid + + + renderSpinner: (uid) -> id = "spinner-#{uid}" spinner = $ '
' spinner.addClass 'process-spinner' spinner.prop 'id', id - spinner.text t 'process.still_working' + text = t 'process.still_working' + text = 'Still Working...' if text == 'process.still_working' + spinner.text text spinner.appendTo $('body') + + + showSpinner: (uid) -> + spinner = @getSpinner(uid) setTimeout (-> spinner.addClass 'shown'), @fadeTimeout removeSpinner: (uid) -> + @getSpinner(uid).remove() + + + getSpinner: (uid) -> id = "spinner-#{uid}" - $('#' + id).remove() + $('#' + id) _.extend window, process: process diff --git a/server/sonar-web/src/main/coffee/issues/controller.coffee b/server/sonar-web/src/main/coffee/issues/controller.coffee index 58263c8dc02..2c00adf1641 100644 --- a/server/sonar-web/src/main/coffee/issues/controller.coffee +++ b/server/sonar-web/src/main/coffee/issues/controller.coffee @@ -59,25 +59,25 @@ define [ _.extend data, @options.app.state.get 'query' fetchIssuesProcess = window.process.addBackgroundProcess() - $.get "#{baseUrl}/api/issues/search", data, (r) => + $.get "#{baseUrl}/api/issues/search", data + .done (r) => issues = @options.app.issues.parseIssues r if firstPage @options.app.issues.reset issues else @options.app.issues.add issues - FACET_DATA_FIELDS.forEach (field) => @options.app.facets[field] = r[field] @options.app.facets.reset @_allFacets() @options.app.facets.add r.facets, merge: true @enableFacets @_enabledFacets() - @options.app.state.set page: r.p pageSize: r.ps total: r.total maxResultsReached: r.p * r.ps >= r.total - window.process.finishBackgroundProcess fetchIssuesProcess + .fail -> + window.process.failBackgroundProcess fetchIssuesProcess fetchNextPage: -> @@ -99,9 +99,12 @@ define [ facet.set enabled: true else p = window.process.addBackgroundProcess() - @requestFacet(id).done => + @requestFacet(id) + .done => facet.set enabled: true window.process.finishBackgroundProcess p + .fail -> + window.process.failBackgroundProcess p disableFacet: (id) -> diff --git a/server/sonar-web/src/main/less/ui.less b/server/sonar-web/src/main/less/ui.less index 3ba3a87670f..5b1776e0228 100644 --- a/server/sonar-web/src/main/less/ui.less +++ b/server/sonar-web/src/main/less/ui.less @@ -406,7 +406,7 @@ input[type=button] { top: 0; left: 50%; width: 300px; margin-left: -150px; - padding: 3px 0; + line-height: 22px; background-color: #f0e8ac; border-radius: 0 0 3px 3px; text-align: center; @@ -415,3 +415,17 @@ input[type=button] { &.shown { opacity: 1; } } + +.process-spinner-failed { + background-color: @red; + color: @white; +} + +.process-spinner-close { + float: right; + margin-right: 5px; + padding: 3px; + background: none !important; + border: none !important; + line-height: 1; +} diff --git a/sonar-core/src/main/resources/org/sonar/l10n/core.properties b/sonar-core/src/main/resources/org/sonar/l10n/core.properties index e369300c7ab..61e917b5c76 100644 --- a/sonar-core/src/main/resources/org/sonar/l10n/core.properties +++ b/sonar-core/src/main/resources/org/sonar/l10n/core.properties @@ -533,6 +533,7 @@ libraries.page=Libraries #------------------------------------------------------------------------------ process.still_working=Still Working... +process.fail=Failed #------------------------------------------------------------------------------ -- 2.39.5