From 91937d5b312a37d2b602623f57dad3c0ae8af813 Mon Sep 17 00:00:00 2001 From: Fatih Acet Date: Fri, 3 Jun 2016 00:00:48 +0300 Subject: Added a new common util called $.timefor. It will use $.timeago behind the scene and it does the opposite of what $.timeago does. $.timefor("Thu Jun 05 2016 23:40:39 GMT+0300 (EEST)") will return "3 days remaining". --- app/assets/javascripts/lib/common_utils.js.coffee | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 app/assets/javascripts/lib/common_utils.js.coffee diff --git a/app/assets/javascripts/lib/common_utils.js.coffee b/app/assets/javascripts/lib/common_utils.js.coffee new file mode 100644 index 00000000000..a7cc07608ab --- /dev/null +++ b/app/assets/javascripts/lib/common_utils.js.coffee @@ -0,0 +1,24 @@ +((w) -> + + jQuery.timefor = (time, suffix, expiredLabel) -> + + return '' unless time + + suffix or= 'remaining' + expiredLabel or= 'expired' + + jQuery.timeago.settings.allowFuture = yes + + { suffixFromNow } = jQuery.timeago.settings.strings + jQuery.timeago.settings.strings.suffixFromNow = suffix + + timefor = $.timeago time + + if timefor.indexOf('ago') > -1 + timefor = expiredLabel + + jQuery.timeago.settings.strings.suffixFromNow = suffixFromNow + + return timefor + +) window -- cgit v1.2.1 From 5cae36d16ca730c057badb0f41ee25a9830e5abd Mon Sep 17 00:00:00 2001 From: Fatih Acet Date: Fri, 3 Jun 2016 00:01:11 +0300 Subject: Show milestone remaining tooltip in right sidebar. --- app/assets/javascripts/milestone_select.js.coffee | 15 +++++++++++++-- app/helpers/milestones_helper.rb | 15 ++++++++++----- app/views/shared/issuable/_sidebar.html.haml | 6 ++++-- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/milestone_select.js.coffee b/app/assets/javascripts/milestone_select.js.coffee index 345a0e447af..e8d489dce9e 100644 --- a/app/assets/javascripts/milestone_select.js.coffee +++ b/app/assets/javascripts/milestone_select.js.coffee @@ -24,11 +24,21 @@ class @MilestoneSelect if issueUpdateURL milestoneLinkTemplate = _.template( - '<%= _.escape(title) %>' + ' + + <%= _.escape(title) %> + + ' ) milestoneLinkNoneTemplate = '
None
' + collapsedSidebarLabelTemplate = _.template( + ' + <%= _.escape(title) %> + ' + ) + $dropdown.glDropdown( data: (term, callback) -> $.ajax( @@ -122,8 +132,9 @@ class @MilestoneSelect if data.milestone? data.milestone.namespace = _this.currentProject.namespace data.milestone.path = _this.currentProject.path + data.milestone.remaining = $.timefor data.milestone.due_date $value.html(milestoneLinkTemplate(data.milestone)) - $sidebarCollapsedValue.find('span').text(data.milestone.title) + $sidebarCollapsedValue.find('span').html(collapsedSidebarLabelTemplate(data.milestone)) else $value.html(milestoneLinkNoneTemplate) $sidebarCollapsedValue.find('span').text('No') diff --git a/app/helpers/milestones_helper.rb b/app/helpers/milestones_helper.rb index 87fc2db6901..2abb0e9b179 100644 --- a/app/helpers/milestones_helper.rb +++ b/app/helpers/milestones_helper.rb @@ -54,13 +54,18 @@ module MilestonesHelper end end - def milestone_remaining_days(milestone) + def milestone_remaining_days(milestone, withContentTag = true) if milestone.expired? - content_tag(:strong, 'expired') + if withContentTag then content_tag(:strong, 'expired') else 'expired' end elsif milestone.due_date - days = milestone.remaining_days - content = content_tag(:strong, days) - content << " #{'day'.pluralize(days)} remaining" + days = milestone.remaining_days + + if withContentTag + content = content_tag(:strong, days) + content << " #{'day'.pluralize(days)} remaining" + else + "#{days} #{'day'.pluralize(days)} remaining" + end end end end diff --git a/app/views/shared/issuable/_sidebar.html.haml b/app/views/shared/issuable/_sidebar.html.haml index c1eec450193..be038cab94d 100644 --- a/app/views/shared/issuable/_sidebar.html.haml +++ b/app/views/shared/issuable/_sidebar.html.haml @@ -56,7 +56,8 @@ = icon('clock-o') %span - if issuable.milestone - = issuable.milestone.title + %span.has-tooltip{"data-container" => "body", "data-placement" => "left", "data-original-title" => milestone_remaining_days(issuable.milestone, false)} + = issuable.milestone.title - else None .title.hide-collapsed @@ -67,7 +68,8 @@ .value.bold.hide-collapsed - if issuable.milestone = link_to namespace_project_milestone_path(@project.namespace, @project, issuable.milestone) do - = issuable.milestone.title + %span.has-tooltip{"data-container" => "body", "data-original-title" => milestone_remaining_days(issuable.milestone, false)} + = issuable.milestone.title - else .light None -- cgit v1.2.1 From 7cb9c7d8ea97a17029a7b24b5bcc870f1063e025 Mon Sep 17 00:00:00 2001 From: Fatih Acet Date: Fri, 3 Jun 2016 00:23:18 +0300 Subject: Update CHANGELOG. Add milestone expire date to the right sidebar. --- CHANGELOG | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG b/CHANGELOG index 27f60c7de06..d9beae0a066 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -30,6 +30,7 @@ v 8.9.0 (unreleased) - Add Application Setting to configure Container Registry token expire delay (default 5min) - Cache assigned issue and merge request counts in sidebar nav - Cache project build count in sidebar nav + - Add milestone expire date to the right sidebar v 8.8.3 - Fix 404 page when viewing TODOs that contain milestones or labels in different projects. !4312 -- cgit v1.2.1 From 0dba294f99e5ec672b4a8a97b5d51ac79a3efc8b Mon Sep 17 00:00:00 2001 From: Fatih Acet Date: Mon, 6 Jun 2016 18:50:38 +0300 Subject: Favor the ternary operator. :police_car: --- app/helpers/milestones_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/milestones_helper.rb b/app/helpers/milestones_helper.rb index 2abb0e9b179..f6a8ae3fd63 100644 --- a/app/helpers/milestones_helper.rb +++ b/app/helpers/milestones_helper.rb @@ -56,7 +56,7 @@ module MilestonesHelper def milestone_remaining_days(milestone, withContentTag = true) if milestone.expired? - if withContentTag then content_tag(:strong, 'expired') else 'expired' end + withContentTag ? content_tag(:strong, 'expired') : 'expired' elsif milestone.due_date days = milestone.remaining_days -- cgit v1.2.1 From 480d74685dff61fdbcf3034224fa201d60181445 Mon Sep 17 00:00:00 2001 From: Fatih Acet Date: Wed, 8 Jun 2016 18:18:54 +0300 Subject: Use title attribute instead of data-original-title. --- app/assets/javascripts/milestone_select.js.coffee | 4 ++-- app/views/shared/issuable/_sidebar.html.haml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/milestone_select.js.coffee b/app/assets/javascripts/milestone_select.js.coffee index a5c5a349f10..df6ba3167db 100644 --- a/app/assets/javascripts/milestone_select.js.coffee +++ b/app/assets/javascripts/milestone_select.js.coffee @@ -25,7 +25,7 @@ class @MilestoneSelect if issueUpdateURL milestoneLinkTemplate = _.template( ' - + <%= _.escape(title) %> ' @@ -34,7 +34,7 @@ class @MilestoneSelect milestoneLinkNoneTemplate = '
None
' collapsedSidebarLabelTemplate = _.template( - ' + ' <%= _.escape(title) %> ' ) diff --git a/app/views/shared/issuable/_sidebar.html.haml b/app/views/shared/issuable/_sidebar.html.haml index dafd11b90da..8cfda130836 100644 --- a/app/views/shared/issuable/_sidebar.html.haml +++ b/app/views/shared/issuable/_sidebar.html.haml @@ -56,7 +56,7 @@ = icon('clock-o') %span - if issuable.milestone - %span.has-tooltip{"data-container" => "body", "data-placement" => "left", "data-original-title" => milestone_remaining_days(issuable.milestone, false)} + %span.has-tooltip{title: milestone_remaining_days(issuable.milestone), data: {container: 'body', html: 1, placement: 'left'}} = issuable.milestone.title - else None @@ -68,7 +68,7 @@ .value.bold.hide-collapsed - if issuable.milestone = link_to namespace_project_milestone_path(@project.namespace, @project, issuable.milestone) do - %span.has-tooltip{"data-container" => "body", "data-original-title" => milestone_remaining_days(issuable.milestone, false)} + %span.has-tooltip{ "title" => milestone_remaining_days(issuable.milestone), data: {container: 'body', html: 1 } } = issuable.milestone.title - else .light None -- cgit v1.2.1 From b868b814167564176bc6a08d01170e6a43c97fc4 Mon Sep 17 00:00:00 2001 From: Fatih Acet Date: Wed, 8 Jun 2016 18:19:04 +0300 Subject: Revert milestone_remaining_days helper. --- app/helpers/milestones_helper.rb | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/app/helpers/milestones_helper.rb b/app/helpers/milestones_helper.rb index f6a8ae3fd63..87fc2db6901 100644 --- a/app/helpers/milestones_helper.rb +++ b/app/helpers/milestones_helper.rb @@ -54,18 +54,13 @@ module MilestonesHelper end end - def milestone_remaining_days(milestone, withContentTag = true) + def milestone_remaining_days(milestone) if milestone.expired? - withContentTag ? content_tag(:strong, 'expired') : 'expired' + content_tag(:strong, 'expired') elsif milestone.due_date - days = milestone.remaining_days - - if withContentTag - content = content_tag(:strong, days) - content << " #{'day'.pluralize(days)} remaining" - else - "#{days} #{'day'.pluralize(days)} remaining" - end + days = milestone.remaining_days + content = content_tag(:strong, days) + content << " #{'day'.pluralize(days)} remaining" end end end -- cgit v1.2.1 From 4f5ee68f09672d08a4e3997a771e062f56665dab Mon Sep 17 00:00:00 2001 From: Fatih Acet Date: Wed, 8 Jun 2016 18:41:03 +0300 Subject: Copy changes for milestone due dates. --- app/assets/javascripts/lib/common_utils.js.coffee | 2 +- app/helpers/milestones_helper.rb | 2 +- app/views/projects/milestones/show.html.haml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/lib/common_utils.js.coffee b/app/assets/javascripts/lib/common_utils.js.coffee index a7cc07608ab..0000e99a650 100644 --- a/app/assets/javascripts/lib/common_utils.js.coffee +++ b/app/assets/javascripts/lib/common_utils.js.coffee @@ -5,7 +5,7 @@ return '' unless time suffix or= 'remaining' - expiredLabel or= 'expired' + expiredLabel or= 'Past due' jQuery.timeago.settings.allowFuture = yes diff --git a/app/helpers/milestones_helper.rb b/app/helpers/milestones_helper.rb index 87fc2db6901..e28ca13ec23 100644 --- a/app/helpers/milestones_helper.rb +++ b/app/helpers/milestones_helper.rb @@ -56,7 +56,7 @@ module MilestonesHelper def milestone_remaining_days(milestone) if milestone.expired? - content_tag(:strong, 'expired') + content_tag(:strong, 'Past Due') elsif milestone.due_date days = milestone.remaining_days content = content_tag(:strong, days) diff --git a/app/views/projects/milestones/show.html.haml b/app/views/projects/milestones/show.html.haml index 19944e3e023..58b1f8f664f 100644 --- a/app/views/projects/milestones/show.html.haml +++ b/app/views/projects/milestones/show.html.haml @@ -6,7 +6,7 @@ - if @milestone.closed? Closed - elsif @milestone.expired? - Expired + Past Due - else Open %span.identifier -- cgit v1.2.1 From 58456e26f5149eb60a401f7f400effe994c59360 Mon Sep 17 00:00:00 2001 From: Fatih Acet Date: Wed, 8 Jun 2016 19:40:32 +0300 Subject: Fixes for MR comments. --- app/assets/javascripts/milestone_select.js.coffee | 4 ++-- app/helpers/milestones_helper.rb | 2 +- app/views/projects/milestones/show.html.haml | 2 +- app/views/shared/issuable/_sidebar.html.haml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/milestone_select.js.coffee b/app/assets/javascripts/milestone_select.js.coffee index df6ba3167db..648e1f3bde0 100644 --- a/app/assets/javascripts/milestone_select.js.coffee +++ b/app/assets/javascripts/milestone_select.js.coffee @@ -25,7 +25,7 @@ class @MilestoneSelect if issueUpdateURL milestoneLinkTemplate = _.template( ' - + <%= _.escape(title) %> ' @@ -34,7 +34,7 @@ class @MilestoneSelect milestoneLinkNoneTemplate = '
None
' collapsedSidebarLabelTemplate = _.template( - ' + ' <%= _.escape(title) %> ' ) diff --git a/app/helpers/milestones_helper.rb b/app/helpers/milestones_helper.rb index e28ca13ec23..b3e6e468ecd 100644 --- a/app/helpers/milestones_helper.rb +++ b/app/helpers/milestones_helper.rb @@ -56,7 +56,7 @@ module MilestonesHelper def milestone_remaining_days(milestone) if milestone.expired? - content_tag(:strong, 'Past Due') + content_tag(:strong, 'Past due') elsif milestone.due_date days = milestone.remaining_days content = content_tag(:strong, days) diff --git a/app/views/projects/milestones/show.html.haml b/app/views/projects/milestones/show.html.haml index 58b1f8f664f..fe3dde8b251 100644 --- a/app/views/projects/milestones/show.html.haml +++ b/app/views/projects/milestones/show.html.haml @@ -6,7 +6,7 @@ - if @milestone.closed? Closed - elsif @milestone.expired? - Past Due + Past due - else Open %span.identifier diff --git a/app/views/shared/issuable/_sidebar.html.haml b/app/views/shared/issuable/_sidebar.html.haml index 8993261d22a..d2b0d956d07 100644 --- a/app/views/shared/issuable/_sidebar.html.haml +++ b/app/views/shared/issuable/_sidebar.html.haml @@ -53,7 +53,7 @@ .value.bold.hide-collapsed - if issuable.milestone = link_to namespace_project_milestone_path(@project.namespace, @project, issuable.milestone) do - %span.has-tooltip{ "title" => milestone_remaining_days(issuable.milestone), data: {container: 'body', html: 1 } } + %span.has-tooltip{title: milestone_remaining_days(issuable.milestone), data: {container: 'body', html: 1}} = issuable.milestone.title - else .light None -- cgit v1.2.1