Milimetric has submitted this change and it was merged.
Change subject: added autocomplete to the csv upload form
......................................................................
added autocomplete to the csv upload form
Change-Id: Iad5ddc4321229085289b1ddb8778195c173d6255
---
M wikimetrics/controllers/cohorts.py
M wikimetrics/database.py
M wikimetrics/static/js/cohortUpload.js
M wikimetrics/templates/csv_upload_form.html
4 files changed, 26 insertions(+), 4 deletions(-)
Approvals:
Milimetric: Verified; Looks good to me, approved
diff --git a/wikimetrics/controllers/cohorts.py
b/wikimetrics/controllers/cohorts.py
index e0616dc..6d134af 100644
--- a/wikimetrics/controllers/cohorts.py
+++ b/wikimetrics/controllers/cohorts.py
@@ -123,7 +123,10 @@
def cohort_upload():
""" View for uploading and validating a new cohort via CSV """
if request.method == 'GET':
- return render_template('csv_upload.html')
+ return render_template(
+ 'csv_upload.html',
+ projects=json.dumps(db.project_host_map.keys()),
+ )
elif request.method == 'POST':
try:
@@ -152,6 +155,7 @@
name=name,
project=project,
description=description,
+ projects=json.dumps(db.project_host_map.keys()),
)
except Exception, e:
app.logger.exception(str(e))
@@ -242,6 +246,13 @@
return json.dumps(available)
[email protected]('/cohorts/validate/project')
+def validate_cohort_project_allowed():
+ project = request.args.get('project')
+ valid = project in db.project_host_map
+ return json.dumps(valid)
+
+
def normalize_newlines(stream):
for line in stream:
if '\r' in line:
diff --git a/wikimetrics/database.py b/wikimetrics/database.py
index dc514aa..5e0dab0 100644
--- a/wikimetrics/database.py
+++ b/wikimetrics/database.py
@@ -33,7 +33,7 @@
def get_host_projects(host_id):
- cluster_url_fmt = 'http://noc.wikimedia.org/conf/s{0}.dblist'
+ cluster_url_fmt = 'https://noc.wikimedia.org/conf/s{0}.dblist'
url = cluster_url_fmt.format(host_id)
projects = urlopen(url).read().splitlines()
return (host_id, projects)
diff --git a/wikimetrics/static/js/cohortUpload.js
b/wikimetrics/static/js/cohortUpload.js
index b463e51..8aae272 100644
--- a/wikimetrics/static/js/cohortUpload.js
+++ b/wikimetrics/static/js/cohortUpload.js
@@ -9,6 +9,9 @@
messages: {
name: {
remote: 'This cohort name is taken.',
+ },
+ project: {
+ remote: 'That project does not exist.',
}
},
rules: {
@@ -17,6 +20,10 @@
cohortName: true,
remote: '/cohorts/validate/name',
},
+ project: {
+ required: true,
+ remote: '/cohorts/validate/project',
+ },
csv: {
required: true
}
diff --git a/wikimetrics/templates/csv_upload_form.html
b/wikimetrics/templates/csv_upload_form.html
index 00b9233..059044e 100644
--- a/wikimetrics/templates/csv_upload_form.html
+++ b/wikimetrics/templates/csv_upload_form.html
@@ -18,8 +18,12 @@
<div class="control-group">
<label for="project" class="control-label">Default Project</label>
<div class="controls">
- <input type="text" name="project" class="required" id="project"
value="{% if project %}{{project}}{% endif %}"/>
- <!--TODO: make this an autocomplete box-->
+ <input type="text" name="project" id="project"
+ value="{% if project %}{{project}}{% endif %}"
+ data-provide="typeahead"
+ data-source='{{projects}}'
+ autocomplete="off"
+ />
</div>
</div>
<div class="control-group">
--
To view, visit https://gerrit.wikimedia.org/r/75123
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Iad5ddc4321229085289b1ddb8778195c173d6255
Gerrit-PatchSet: 1
Gerrit-Project: analytics/wikimetrics
Gerrit-Branch: master
Gerrit-Owner: Milimetric <[email protected]>
Gerrit-Reviewer: Milimetric <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits