Fix tooltips
This commit is contained in:
parent
e56c0a4763
commit
778e9d90da
|
@ -35,6 +35,7 @@ export default class GroupLabelSubscription {
|
||||||
this.$unsubscribeButtons.attr('data-url', url);
|
this.$unsubscribeButtons.attr('data-url', url);
|
||||||
|
|
||||||
axios.post(url)
|
axios.post(url)
|
||||||
|
.then(() => GroupLabelSubscription.setNewTooltip($btn))
|
||||||
.then(() => this.toggleSubscriptionButtons())
|
.then(() => this.toggleSubscriptionButtons())
|
||||||
.catch(() => flash(__('There was an error when subscribing to this label.')));
|
.catch(() => flash(__('There was an error when subscribing to this label.')));
|
||||||
}
|
}
|
||||||
|
@ -44,4 +45,14 @@ export default class GroupLabelSubscription {
|
||||||
this.$subscribeButtons.toggleClass('hidden');
|
this.$subscribeButtons.toggleClass('hidden');
|
||||||
this.$unsubscribeButtons.toggleClass('hidden');
|
this.$unsubscribeButtons.toggleClass('hidden');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static setNewTooltip($button) {
|
||||||
|
if (!$button.hasClass('js-subscribe-button')) return;
|
||||||
|
|
||||||
|
const type = $button.hasClass('js-group-level') ? 'group' : 'project';
|
||||||
|
const title = `Unsubscribe at ${type} level`;
|
||||||
|
const $unsubscribeButton = $('.js-unsubscribe-button', $button.closest('.label-actions-list'));
|
||||||
|
|
||||||
|
$unsubscribeButton.tooltip('hide').attr('title', title).tooltip('fixTitle');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,15 +35,22 @@ export default class ProjectLabelSubscription {
|
||||||
this.$buttons.attr('data-status', newStatus);
|
this.$buttons.attr('data-status', newStatus);
|
||||||
this.$buttons.find('> span').text(newAction);
|
this.$buttons.find('> span').text(newAction);
|
||||||
|
|
||||||
this.$buttons.map((button) => {
|
this.$buttons.map((i, button) => {
|
||||||
const $button = $(button);
|
const $button = $(button);
|
||||||
|
const originalTitle = $button.attr('data-original-title');
|
||||||
|
|
||||||
if ($button.attr('data-original-title')) {
|
if (originalTitle) ProjectLabelSubscription.setNewTitle($button, originalTitle, newStatus, newAction);
|
||||||
$button.tooltip('hide').attr('data-original-title', newAction).tooltip('fixTitle');
|
|
||||||
}
|
|
||||||
|
|
||||||
return button;
|
return button;
|
||||||
});
|
});
|
||||||
}).catch(() => flash(__('There was an error subscribing to this label.')));
|
}).catch(() => flash(__('There was an error subscribing to this label.')));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static setNewTitle($button, originalTitle, newStatus, newAction) {
|
||||||
|
const newStatusVerb = newStatus.slice(0, -1);
|
||||||
|
const actionRegexp = new RegExp(newStatusVerb, 'i');
|
||||||
|
const newTitle = originalTitle.replace(actionRegexp, newAction);
|
||||||
|
|
||||||
|
$button.tooltip('hide').attr('data-original-title', newTitle).tooltip('fixTitle');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
- toggle_subscription_path = toggle_subscription_label_path(label, @project) if current_user
|
- toggle_subscription_path = toggle_subscription_label_path(label, @project) if current_user
|
||||||
- show_label_merge_requests_link = show_label_issuables_link?(label, :merge_requests, project: @project)
|
- show_label_merge_requests_link = show_label_issuables_link?(label, :merge_requests, project: @project)
|
||||||
- show_label_issues_link = show_label_issuables_link?(label, :issues, project: @project)
|
- show_label_issues_link = show_label_issuables_link?(label, :issues, project: @project)
|
||||||
- tooltip_title = "#{status.unsubscribed? ? 'Subscribe' : 'Unsubscribe'} at #{label.is_a?(ProjectLabel) ? 'project' : 'group'} level"
|
- tooltip_title = "#{status.unsubscribed? ? 'Subscribe' : 'Unsubscribe'} at #{status.sub('-', ' ')}"
|
||||||
|
|
||||||
%li.label-list-item{ id: label_css_id, data: { id: label.id } }
|
%li.label-list-item{ id: label_css_id, data: { id: label.id } }
|
||||||
= render "shared/label_row", label: label, subject: subject, force_priority: force_priority
|
= render "shared/label_row", label: label, subject: subject, force_priority: force_priority
|
||||||
|
@ -61,7 +61,7 @@
|
||||||
%button.js-subscribe-button.label-subscribe-button.btn.btn-default{ class: ('hidden' unless status.unsubscribed?), data: { status: status, url: toggle_subscription_project_label_path(@project, label) } }
|
%button.js-subscribe-button.label-subscribe-button.btn.btn-default{ class: ('hidden' unless status.unsubscribed?), data: { status: status, url: toggle_subscription_project_label_path(@project, label) } }
|
||||||
%span= _('Subscribe at project level')
|
%span= _('Subscribe at project level')
|
||||||
%li
|
%li
|
||||||
%button.js-subscribe-button.label-subscribe-button.btn.btn-default{ class: ('hidden' unless status.unsubscribed?), data: { status: status, url: toggle_subscription_group_label_path(label.group, label) } }
|
%button.js-subscribe-button.js-group-level.label-subscribe-button.btn.btn-default{ class: ('hidden' unless status.unsubscribed?), data: { status: status, url: toggle_subscription_group_label_path(label.group, label) } }
|
||||||
%span= _('Subscribe at group level')
|
%span= _('Subscribe at group level')
|
||||||
- else
|
- else
|
||||||
%button.js-subscribe-button.label-subscribe-button.btn.btn-default{ data: { status: status, url: toggle_subscription_path, toggle: 'tooltip' }, title: tooltip_title }
|
%button.js-subscribe-button.label-subscribe-button.btn.btn-default{ data: { status: status, url: toggle_subscription_path, toggle: 'tooltip' }, title: tooltip_title }
|
||||||
|
|
Loading…
Reference in New Issue