diff options
author | Stas Vilchik <vilchiks@gmail.com> | 2015-05-18 16:29:19 +0200 |
---|---|---|
committer | Stas Vilchik <vilchiks@gmail.com> | 2015-05-19 18:20:09 +0200 |
commit | e59e4aa2c06a57566f148f4217d286461231ae58 (patch) | |
tree | ad0918eb06b2474a6c71997b7ff573bbb93e0170 /server/sonar-web/src/main/coffee/apps/issues/router.coffee | |
parent | 8d82c9cf9ba88c1517604b4063ad0fc2a9a1bb9a (diff) | |
download | sonarqube-e59e4aa2c06a57566f148f4217d286461231ae58.tar.gz sonarqube-e59e4aa2c06a57566f148f4217d286461231ae58.zip |
change web structure: separate components
Diffstat (limited to 'server/sonar-web/src/main/coffee/apps/issues/router.coffee')
-rw-r--r-- | server/sonar-web/src/main/coffee/apps/issues/router.coffee | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/server/sonar-web/src/main/coffee/apps/issues/router.coffee b/server/sonar-web/src/main/coffee/apps/issues/router.coffee new file mode 100644 index 00000000000..ca220549f1f --- /dev/null +++ b/server/sonar-web/src/main/coffee/apps/issues/router.coffee @@ -0,0 +1,58 @@ +# +# SonarQube, open source software quality management tool. +# Copyright (C) 2008-2014 SonarSource +# mailto:contact AT sonarsource DOT com +# +# SonarQube is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. +# +# SonarQube is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +define [ + 'components/navigator/router' +], ( + Router +) -> + + class extends Router + routes: + '': 'home' + ':query': 'index' + + + initialize: (options) -> + super + @listenTo options.app.state, 'change:filter', @updateRoute + + + home: -> + if @options.app.state.get 'isContext' + @navigate 'resolved=false', { trigger: true, replace: true } + else + @options.app.controller.showHomePage() + + + index: (query) -> + query = @options.app.controller.parseQuery query + if query.id? + filter = @options.app.filters.get query.id + delete query.id + filter.fetch().done => + if Object.keys(query).length > 0 + @options.app.controller.applyFilter filter, true + @options.app.state.setQuery query + @options.app.state.set changed: true + else + @options.app.controller.applyFilter filter + else + @options.app.state.setQuery query |