From 7d1da29e973564009510031cb63a7f25065db352 Mon Sep 17 00:00:00 2001 From: Stefan Botzenhart Date: Thu, 10 Sep 2015 12:41:08 +0200 Subject: [PATCH 1/3] Ignore all kinds of local and plugin gemfiles --- .gitignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 929b650877..eeb9ac20d0 100644 --- a/.gitignore +++ b/.gitignore @@ -70,8 +70,8 @@ /tmp/test/* /*.rbc /doc/app -/Gemfile.local -/Gemfile.plugins +/Gemfile.local* +/Gemfile.plugins* /.rvmrc* /.ruby-version /.ruby-gemset From bed42fa28fb0bbea16b0d4ff6914984faaf2ebd4 Mon Sep 17 00:00:00 2001 From: Stefan Botzenhart Date: Thu, 10 Sep 2015 12:41:39 +0200 Subject: [PATCH 2/3] Define new project work package path This being defined to use it from now on to link to a work package including the project scope. Afaik there's no reason to link to a work package without project scope. --- config/routes.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/routes.rb b/config/routes.rb index 7cece0e8fa..d3d427e769 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -315,6 +315,8 @@ OpenProject::Application.routes.draw do get '/create_new' => 'work_packages#index', on: :collection end + get '/work_packages/:id(/:tab)' => 'work_packages#index', as: 'work_package' + resources :activity, :activities, only: :index, controller: 'activities' resources :boards do From 9c6128737bb48b5c1e6c8ccc115f924586654a7a Mon Sep 17 00:00:00 2001 From: Stefan Botzenhart Date: Thu, 10 Sep 2015 12:45:17 +0200 Subject: [PATCH 3/3] Open work packages from timelines in new tab --- .../timelines/timeline_modal_views.feature | 102 ++++-------------- .../templates/timelines/timeline_table.html | 2 +- frontend/app/timelines/models/mixins/ui.js | 15 ++- 3 files changed, 27 insertions(+), 92 deletions(-) diff --git a/features/timelines/timeline_modal_views.feature b/features/timelines/timeline_modal_views.feature index d8f961afed..22829502da 100644 --- a/features/timelines/timeline_modal_views.feature +++ b/features/timelines/timeline_modal_views.feature @@ -31,90 +31,28 @@ Feature: Timeline View Tests I want edit planning elements via a modal window Background: - Given there is 1 user with: - | login | manager | - - And there is a role "manager" - And the role "manager" may have the following rights: - | view_timelines | - | edit_timelines | - | view_work_packages | - - And there is a project named "ecookbook" - And I am working in project "ecookbook" - - And there is a timeline "Testline" for project "ecookbook" - - And the project uses the following modules: - | timelines | - - And the user "manager" is a "manager" - - And there are the following work packages: - | Start date | Due date | description | responsible | Subject | - | 2012-01-01 | 2012-01-31 | #2 http://google.de | manager | January | - | 2012-02-01 | 2012-02-24 | Avocado Rincon | manager | February | - - And I am already logged in as "manager" + Given there is 1 user with: + | login | manager | + And there is a role "manager" + And the role "manager" may have the following rights: + | view_timelines | + | edit_timelines | + | view_work_packages | + And there is a project named "ecookbook" + And I am working in project "ecookbook" + And there is a timeline "Testline" for project "ecookbook" + And the project uses the following modules: + | timelines | + And the user "manager" is a "manager" + And there are the following work packages: + | Start date | Due date | description | responsible | Subject | + | 2012-01-01 | 2012-01-31 | #2 http://google.de | manager | January | + | 2012-02-01 | 2012-02-24 | Avocado Rincon | manager | February | + And I am already logged in as "manager" @javascript Scenario: planning element click should show modal window - When I go to the page of the timeline "Testline" of the project called "ecookbook" - And I wait for timeline to load table - And I click on the Planning Element with name "January" - Then I should see a modal window - And I should see "#1: January" in the modal - And I should see "http://google.de" in the modal - And I should see "01/01/2012" in the modal - And I should see "01/31/2012" in the modal - And I should see "New timeline report" - And I should be on the page of the timeline "Testline" of the project called "ecookbook" - When I ctrl-click on "#2" in the modal - Then I should see "February" in the new window - Then I should see "Avocado Rincon" in the new window - - @javascript - Scenario: closing the modal window with changes should display a warning message - When the role "manager" may have the following rights: - | view_timelines | - | edit_timelines | - | view_work_packages | - | edit_work_packages | - And I go to the page of the timeline "Testline" of the project called "ecookbook" - And I wait for timeline to load table - And I click on the Planning Element with name "January" - And I click on the first anchor matching "Update" in the modal - And I fill in "work_package_journal_notes" with "A new comment" in the modal - And I click on the div "ui-dialog-closer" - And I confirm the JS confirm dialog - Then I should not see a modal window - # Hack to ensure that this scenario does not interfere with the next one. As - # closing the modal will trigger the timeline to be reloaded we have to - # ensure, that this request is finished before starting the next scenario. - # Otherwise the data required to successfully finish the request (esp. the - # project) might already be removed for the next senario. - Given I wait for the AJAX requests to finish - - @javascript - Scenario: closing the modal window after adding a related work package should not display a warning message - When the role "manager" may have the following rights: - | view_timelines | - | edit_timelines | - | view_work_packages | - | edit_work_packages | - | manage_work_package_relations | - And I go to the page of the timeline "Testline" of the project called "ecookbook" + When I go to the page of the timeline "Testline" of the project called "ecookbook" And I wait for timeline to load table And I click on the Planning Element with name "January" - And I click on "Add related work package" in the modal - And I fill in "relation_to_id" with "3" in the modal - And I press "Add" in the modal - And I wait for the AJAX requests to finish - And I click on the div "ui-dialog-closer" - Then I should not see a modal window - # Hack to ensure that this scenario does not interfere with the next one. As - # closing the modal will trigger the timeline to be reloaded we have to - # ensure, that this request is finished before starting the next scenario. - # Otherwise the data required to successfully finish the request (esp. the - # project) might already be removed for the next senario. - Given I wait for the AJAX requests to finish + Then I should see "January" in the new window diff --git a/frontend/app/templates/timelines/timeline_table.html b/frontend/app/templates/timelines/timeline_table.html index f1b4aa2e70..13071ac019 100644 --- a/frontend/app/templates/timelines/timeline_table.html +++ b/frontend/app/templates/timelines/timeline_table.html @@ -50,7 +50,7 @@ - {{ row.text | characters:40 }} + {{ row.text | characters:40 }}
diff --git a/frontend/app/timelines/models/mixins/ui.js b/frontend/app/timelines/models/mixins/ui.js index 00aab0b926..3a5bb67435 100644 --- a/frontend/app/timelines/models/mixins/ui.js +++ b/frontend/app/timelines/models/mixins/ui.js @@ -983,15 +983,12 @@ module.exports = function($timeout) { e.unhover(); e.click(function(e) { - if (Timeline.USE_MODALS) { - var payload = node.getData(); - if (e.which == 1 && !e.ctrlKey && !e.metaKey) { - timeline.modalHelper.createModal(payload.getUrl()); - e.stopPropagation(); - } else { - window.open(payload.getUrl(), '_blank'); - } - } + var payload = node.getData(); + var url = payload.getUrl(); + + window.open(url, '_blank'); + + e.stopPropagation(); }); e.attr({'cursor': 'pointer'}); e.hover(