From 7d1d53ebcb965fab2c6eea8cf9034532385949c1 Mon Sep 17 00:00:00 2001 From: Jimmy Zelinskie Date: Fri, 27 Mar 2015 17:07:06 -0400 Subject: [PATCH] custom trigger: initial setup wizard --- endpoints/callbacks.py | 24 ------------- endpoints/web.py | 24 ++++++++++++- .../repo-view/repo-panel-builds.html | 4 +-- static/directives/setup-trigger-dialog.html | 5 +++ static/directives/trigger-setup-custom.html | 16 +++++++++ .../js/directives/ui/trigger-setup-custom.js | 35 +++++++++++++++++++ static/js/services/key-service.js | 1 - static/js/services/trigger-service.js | 8 +++-- 8 files changed, 86 insertions(+), 31 deletions(-) create mode 100644 static/directives/trigger-setup-custom.html create mode 100644 static/js/directives/ui/trigger-setup-custom.js diff --git a/endpoints/callbacks.py b/endpoints/callbacks.py index 334374757..cbe96f6e7 100644 --- a/endpoints/callbacks.py +++ b/endpoints/callbacks.py @@ -277,27 +277,3 @@ def attach_github_build_trigger(namespace, repository): return redirect(full_url) abort(403) - -@callback.route('/custom/callback/trigger/', methods=['GET']) -@callback.route('/custom/callback/trigger//__new', methods=['GET']) -@require_session_login -@parse_repository_name -def activate_custom_build_trigger(namespace, repository): - permission = AdministerRepositoryPermission(namespace, repository) - if permission.can(): - repo = model.get_repository(namespace, repository) - if not repo: - msg = 'Invalid repository: %s/%s' % (namespace, repository) - abort(404, message=msg) - - trigger = model.create_build_trigger(repo, 'custom', None, current_user.db_user()) - - # TODO(jschorr): Remove once the new layout is in place. - admin_path = '%s/%s/%s' % (namespace, repository, 'admin') - full_url = '%s%s%s' % (url_for('web.repository', path=admin_path), '?tab=trigger&new_trigger=', - trigger.uuid) - - logger.debug('Redirecting to full url: %s', full_url) - return redirect(full_url) - - abort(403) diff --git a/endpoints/web.py b/endpoints/web.py index c3af01e44..bbb282be3 100644 --- a/endpoints/web.py +++ b/endpoints/web.py @@ -13,7 +13,7 @@ from data.model.oauth import DatabaseAuthorizationProvider from app import app, billing as stripe, build_logs, avatar, signer from auth.auth import require_session_login, process_oauth from auth.permissions import (AdministerOrganizationPermission, ReadRepositoryPermission, - SuperUserPermission) + SuperUserPermission, AdministerRepositoryPermission) from util.invoice import renderInvoiceToPdf from util.seo import render_snapshot @@ -511,3 +511,25 @@ def download_logs_archive(): headers={"Content-Disposition": "attachment;filename=erlogs.tar.gz"}) abort(403) + +@web.route('/customtrigger/setup/', methods=['GET']) +@require_session_login +@parse_repository_name +def attach_custom_build_trigger(namespace, repository_name): + permission = AdministerRepositoryPermission(namespace, repository_name) + if permission.can(): + repo = model.get_repository(namespace, repository_name) + if not repo: + msg = 'Invalid repository: %s/%s' % (namespace, repository_name) + abort(404, message=msg) + + trigger = model.create_build_trigger(repo, 'custom', None, current_user.db_user()) + + repo_path = '%s/%s' % (namespace, repository_name) + full_url = '%s%s%s' % (url_for('web.repository', path=repo_path), '?tab=builds&newtrigger=', + trigger.uuid) + + logger.debug('Redirecting to full url: %s', full_url) + return redirect(full_url) + + abort(403) diff --git a/static/directives/repo-view/repo-panel-builds.html b/static/directives/repo-view/repo-panel-builds.html index c9e2b65a8..637eddc2d 100644 --- a/static/directives/repo-view/repo-panel-builds.html +++ b/static/directives/repo-view/repo-panel-builds.html @@ -88,7 +88,7 @@