mozreview: use new hostingservice fields to disable autoland in UI (
bug 1243530) r?mdoglio
MozReview-Commit-ID: LKaVIRB4wAf
--- a/pylib/mozreview/mozreview/static/mozreview/js/autoland.js
+++ b/pylib/mozreview/mozreview/static/mozreview/js/autoland.js
@@ -27,17 +27,17 @@
event.preventDefault();
$("#activity-indicator").fadeOut("fast");
})
)
)
.show();
}
- if (!MozReview.hasTryRepository) {
+ if (!MozReview.autolandingToTryEnabled) {
try_trigger.attr('title', 'Try builds cannot be triggered for this repository');
} else if ($("#draft-banner").is(":visible")) {
try_trigger.attr('title', 'Try builds cannot be triggered on draft review requests');
} else if (!MozReview.hasScmLevel1) {
try_trigger.attr('title', 'You do not have the required scm level to trigger a try build');
} else if (!MozReview.reviewRequestPending) {
try_trigger.attr('title', 'You can not trigger a try build on a closed review request');
} else {
@@ -253,17 +253,17 @@
);
// Add the handler back in case it was an intermittent
// failure and we want to allow a retry.
autoland_trigger.click(autoland_confirm);
});
}
- if (MozReview.landingRepository === '') {
+ if (!MozReview.autolandingEnabled) {
autoland_trigger.attr('title', 'Landing is not supported for this repository');
} else if ($("#draft-banner").is(":visible")) {
autoland_trigger.attr('title', 'Draft review requests cannot be landed');
} else if (!MozReview.hasScmLevel3) {
autoland_trigger.attr('title', 'You must have scm_level_3 access to land');
} else if (!MozReview.reviewRequestPending) {
try_trigger.attr('title', 'You can not autoland from a closed review request');
} else {
--- a/pylib/mozreview/mozreview/static/mozreview/js/init_rr.js
+++ b/pylib/mozreview/mozreview/static/mozreview/js/init_rr.js
@@ -15,17 +15,18 @@ var MozReview = {};
// The current user's scm level has been injected in an invisible div.
MozReview.scmLevel = $("#scm-level").data("scm-level");
MozReview.hasScmLevel1 = MozReview.scmLevel >= 1;
MozReview.hasScmLevel3 = MozReview.scmLevel == 3;
// Whether or not the repository has associated try and landing repositories
// is in an invisible div.
- MozReview.hasTryRepository = $("#repository").data("has-try-repository");
+ MozReview.autolandingToTryEnabled = $("#repository").data("autolanding-to-try-enabled");
+ MozReview.autolandingEnabled = $("#repository").data("autolanding-enabled");
MozReview.landingRepository = $("#repository").data("landing-repository");
console.log("Found parent review request ID: " + parentID);
var page = RB.PageManager.getPage();
// Setup a CSS class so we can differentiate between parent
// and commit review requests.
--- a/pylib/mozreview/mozreview/templates/mozreview/repository.html
+++ b/pylib/mozreview/mozreview/templates/mozreview/repository.html
@@ -1,6 +1,7 @@
{% load mozreview %}
<div id="repository"
data-required-ldap-group="{{ review_request.repository|required_ldap_group }}"
- data-has-try-repository="{{ review_request.repository|has_try_repository }}"
+ data-autolanding-to-try-enabled="{{ review_request.repository|autolanding_to_try_enabled }}"
+ data-autolanding-enabled="{{ review_request.repository|autolanding_enabled }}"
data-landing-repository="{{ review_request.repository|landing_repository }}">
</div>
--- a/pylib/mozreview/mozreview/templatetags/mozreview.py
+++ b/pylib/mozreview/mozreview/templatetags/mozreview.py
@@ -55,19 +55,28 @@ def scm_level(mozreview_profile):
def required_ldap_group(repository):
try:
return repository.extra_data['required_ldap_group']
except (AttributeError, KeyError):
return ''
@register.filter()
-def has_try_repository(repository):
+def autolanding_to_try_enabled(repository):
try:
- return ('true' if repository.extra_data['try_repository_url']
+ return ('true' if repository.extra_data['autolanding_to_try_enabled']
+ else 'false')
+ except (AttributeError, KeyError):
+ return 'false'
+
+
+@register.filter()
+def autolanding_enabled(repository):
+ try:
+ return ('true' if repository.extra_data['autolanding_enabled']
else 'false')
except (AttributeError, KeyError):
return 'false'
@register.filter()
def landing_repository(repository):
try: