Much UI work, significant improvement.
This commit is contained in:
parent
9c3af4c936
commit
5356f65ca3
44 changed files with 1865 additions and 1213 deletions
|
|
@ -1,11 +1,14 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-canvassers-Canvasser.html generated 2018-07-09T20:55:34.536Z by adl.to-selmer-templates.
|
||||
<!-- File form-canvassers-Canvasser.html generated 2018-07-10T15:25:24.210Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
|
||||
|
||||
{% block extra-head %}
|
||||
{% script "js/lib/node_modules/simplemde/dist/simplemde.min.js" %}
|
||||
{% style "js/lib/node_modules/simplemde/dist/simplemde.min.css" %}
|
||||
|
||||
{% script "js/lib/node_modules/simplemde/dist/simplemde.min.js" %}
|
||||
{% style "js/lib/node_modules/simplemde/dist/simplemde.min.css" %}
|
||||
{% script "/js/lib/node_modules/selectize/dist/js/standalone/selectize.min.js" %}
|
||||
{% style "/js/lib/node_modules/selectize/dist/css/selectize.css" %}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div id='content' class='edit'>
|
||||
|
|
@ -81,18 +84,86 @@ You are not permitted to view fullname of canvassers
|
|||
{% endif %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='avatar'>
|
||||
Avatar
|
||||
</label>
|
||||
{% if {{record.avatar}} %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<input id='avatar' name='avatar' type='file' value='{{record.avatar}}' maxlength='' size='16'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='avatar' name='avatar' class='pseudo-widget disabled'>
|
||||
{{record.avatar}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='avatar' name='avatar' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view avatar of canvassers
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<input id='avatar' name='avatar' type='file' value='{{record.avatar}}' maxlength='' size='16'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='avatar' name='avatar' class='pseudo-widget disabled'>
|
||||
{{record.avatar}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='avatar' name='avatar' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view avatar of canvassers
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
{% endif %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='bio'>
|
||||
Bio
|
||||
</label>
|
||||
{% if {{record.bio}} %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<textarea rows='8' cols='60' id='bio' name='bio'>
|
||||
{{record.bio}}
|
||||
</textarea>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='bio' name='bio' class='pseudo-widget disabled'>
|
||||
{{record.bio}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='bio' name='bio' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view bio of canvassers
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<textarea rows='8' cols='60' id='bio' name='bio'>
|
||||
{{record.bio}}
|
||||
</textarea>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='bio' name='bio' class='pseudo-widget disabled'>
|
||||
{{record.bio}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='bio' name='bio' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view bio of canvassers
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
{% endif %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='elector_id'>
|
||||
Elector_id
|
||||
</label>
|
||||
{% if {{record.elector_id}} %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<span class='select-box' farside='electors' found='true'>
|
||||
<input name='elector_id_search_box' onchange='$.getJSON("/auto/json/seach-strings-electors?gender=" + elector_id_search_box.text + "&email=" + elector_id_search_box.text + "&name=" + elector_id_search_box.text + "&phone=" + elector_id_search_box.text, null, function (data) {updateMenuOptions("elector_id", "id", ["gender", "email", "name", "phone"], data);})'/>
|
||||
<br/>
|
||||
<select id='elector_id' name='elector_id'>
|
||||
{% for r in electors %}<option value='{{r.id}}' {% ifequal record.elector_id r.id%}selected{% endifequal %}>{{r.name}} {{r.phone}} {{r.email}} {{r.gender}}</option>{% endfor %}
|
||||
{% for option in elector_id %}<option value='{{option.id}}' {% ifequal record.elector_id option.id%}selected{% endifequal %}>{{option.name}}</option>{% endfor %}
|
||||
</select>
|
||||
</span>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='elector_id' name='elector_id' class='pseudo-widget disabled'>
|
||||
|
|
@ -106,13 +177,9 @@ You are not permitted to view elector_id of canvassers
|
|||
{% endifmemberof %}
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<span class='select-box' farside='electors' found='true'>
|
||||
<input name='elector_id_search_box' onchange='$.getJSON("/auto/json/seach-strings-electors?gender=" + elector_id_search_box.text + "&email=" + elector_id_search_box.text + "&name=" + elector_id_search_box.text + "&phone=" + elector_id_search_box.text, null, function (data) {updateMenuOptions("elector_id", "id", ["gender", "email", "name", "phone"], data);})'/>
|
||||
<br/>
|
||||
<select id='elector_id' name='elector_id'>
|
||||
{% for r in electors %}<option value='{{r.id}}' {% ifequal record.elector_id r.id%}selected{% endifequal %}>{{r.name}} {{r.phone}} {{r.email}} {{r.gender}}</option>{% endfor %}
|
||||
{% for option in elector_id %}<option value='{{option.id}}' {% ifequal record.elector_id option.id%}selected{% endifequal %}>{{option.name}}</option>{% endfor %}
|
||||
</select>
|
||||
</span>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='elector_id' name='elector_id' class='pseudo-widget disabled'>
|
||||
|
|
@ -132,13 +199,9 @@ Address_id
|
|||
</label>
|
||||
{% if {{record.address_id}} %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<span class='select-box' farside='addresses' found='true'>
|
||||
<input name='address_id_search_box' onchange='$.getJSON("/auto/json/seach-strings-addresses?postcode=" + address_id_search_box.text + "&address=" + address_id_search_box.text, null, function (data) {updateMenuOptions("address_id", "id", ["postcode", "address"], data);})'/>
|
||||
<br/>
|
||||
<select id='address_id' name='address_id'>
|
||||
{% for r in addresses %}<option value='{{r.id}}' {% ifequal record.address_id r.id%}selected{% endifequal %}>{{r.address}} {{r.postcode}}</option>{% endfor %}
|
||||
{% for option in address_id %}<option value='{{option.id}}' {% ifequal record.address_id option.id%}selected{% endifequal %}>{{option.address}} {{option.postcode}}</option>{% endfor %}
|
||||
</select>
|
||||
</span>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='address_id' name='address_id' class='pseudo-widget disabled'>
|
||||
|
|
@ -152,13 +215,9 @@ You are not permitted to view address_id of canvassers
|
|||
{% endifmemberof %}
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<span class='select-box' farside='addresses' found='true'>
|
||||
<input name='address_id_search_box' onchange='$.getJSON("/auto/json/seach-strings-addresses?postcode=" + address_id_search_box.text + "&address=" + address_id_search_box.text, null, function (data) {updateMenuOptions("address_id", "id", ["postcode", "address"], data);})'/>
|
||||
<br/>
|
||||
<select id='address_id' name='address_id'>
|
||||
{% for r in addresses %}<option value='{{r.id}}' {% ifequal record.address_id r.id%}selected{% endifequal %}>{{r.address}} {{r.postcode}}</option>{% endfor %}
|
||||
{% for option in address_id %}<option value='{{option.id}}' {% ifequal record.address_id option.id%}selected{% endifequal %}>{{option.address}} {{option.postcode}}</option>{% endfor %}
|
||||
</select>
|
||||
</span>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='address_id' name='address_id' class='pseudo-widget disabled'>
|
||||
|
|
@ -246,13 +305,9 @@ Authority_id
|
|||
</label>
|
||||
{% if {{record.authority_id}} %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<span class='select-box' farside='authorities' found='true'>
|
||||
<input name='authority_id_search_box' onchange='$.getJSON("/auto/json/seach-strings-authorities?id=" + authority_id_search_box.text, null, function (data) {updateMenuOptions("authority_id", "id", ["id"], data);})'/>
|
||||
<br/>
|
||||
<select id='authority_id' name='authority_id'>
|
||||
{% for r in authorities %}<option value='{{r.id}}' {% ifequal record.authority_id r.id%}selected{% endifequal %}>{{r.id}}</option>{% endfor %}
|
||||
{% for option in authority_id %}<option value='{{option.id}}' {% ifequal record.authority_id option.id%}selected{% endifequal %}>{{option.id}}</option>{% endfor %}
|
||||
</select>
|
||||
</span>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='authority_id' name='authority_id' class='pseudo-widget disabled'>
|
||||
|
|
@ -266,13 +321,9 @@ You are not permitted to view authority_id of canvassers
|
|||
{% endifmemberof %}
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<span class='select-box' farside='authorities' found='true'>
|
||||
<input name='authority_id_search_box' onchange='$.getJSON("/auto/json/seach-strings-authorities?id=" + authority_id_search_box.text, null, function (data) {updateMenuOptions("authority_id", "id", ["id"], data);})'/>
|
||||
<br/>
|
||||
<select id='authority_id' name='authority_id'>
|
||||
{% for r in authorities %}<option value='{{r.id}}' {% ifequal record.authority_id r.id%}selected{% endifequal %}>{{r.id}}</option>{% endfor %}
|
||||
{% for option in authority_id %}<option value='{{option.id}}' {% ifequal record.authority_id option.id%}selected{% endifequal %}>{{option.id}}</option>{% endfor %}
|
||||
</select>
|
||||
</span>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='authority_id' name='authority_id' class='pseudo-widget disabled'>
|
||||
|
|
@ -326,11 +377,9 @@ Roles
|
|||
</label>
|
||||
{% if {{record.roles}} %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<span class='select-box' farside='roles' found='true'>
|
||||
<select id='roles' name='roles' multiple='multiple'>
|
||||
{% for r in roles %}<option value='{{r.role_id}}' {% ifequal record.roles r.role_id%}selected{% endifequal %}>{{r.name}}</option>{% endfor %}
|
||||
{% for option in roles %}<option value='{{option.role_id}}' {% ifequal record.roles option.role_id%}selected{% endifequal %}>{{option.name}}</option>{% endfor %}
|
||||
</select>
|
||||
</span>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='roles' name='roles' class='pseudo-widget disabled'>
|
||||
|
|
@ -344,11 +393,9 @@ You are not permitted to view roles of canvassers
|
|||
{% endifmemberof %}
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<span class='select-box' farside='roles' found='true'>
|
||||
<select id='roles' name='roles' multiple='multiple'>
|
||||
{% for r in roles %}<option value='{{r.role_id}}' {% ifequal record.roles r.role_id%}selected{% endifequal %}>{{r.name}}</option>{% endfor %}
|
||||
{% for option in roles %}<option value='{{option.role_id}}' {% ifequal record.roles option.role_id%}selected{% endifequal %}>{{option.name}}</option>{% endfor %}
|
||||
</select>
|
||||
</span>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='roles' name='roles' class='pseudo-widget disabled'>
|
||||
|
|
@ -384,20 +431,63 @@ To delete this canvassers record
|
|||
{% endblock %}
|
||||
{% block extra-tail %}
|
||||
<script type='text/javascript'>
|
||||
/**
|
||||
* update the select menu with id `wid` from this `data` whose fields include
|
||||
* this `entity_key` and these `fields`
|
||||
*/
|
||||
function updateMenuOptions(wid, entity_key, fields, data){
|
||||
$('#' + wid).children().filter(function(){
|
||||
return $(this).attr('selected') === undefined;
|
||||
}).remove().end();
|
||||
/**
|
||||
* selectize one select widget. Substitute the actual id of the widget for `elector_id`.
|
||||
*/
|
||||
$('#elector_id').selectize({
|
||||
valueField: 'id',
|
||||
labelField: 'name',
|
||||
searchField: 'name',
|
||||
options: [],
|
||||
create: false,
|
||||
|
||||
$.each(data, function(key, entry){
|
||||
$('#' + wid).append(
|
||||
$('<option></option>').attr('value', key).text(entry));
|
||||
});
|
||||
}
|
||||
load: function(query, callback) {
|
||||
console.log('Desperately seeking ' + query);
|
||||
if (query === null || !query.length) return callback();
|
||||
$.ajax({
|
||||
url: '/json/auto/search-strings-electors?name=' + query,
|
||||
type: 'GET',
|
||||
dataType: 'jsonp',
|
||||
error: function() {
|
||||
console.log( 'Query ' + query + ' failed.');
|
||||
callback();
|
||||
},
|
||||
success: function(res) {
|
||||
console.log('Received ' + res + ' records for ' + query);
|
||||
callback(res);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* selectize one select widget. Substitute the actual id of the widget for `address_id`.
|
||||
*/
|
||||
$('#address_id').selectize({
|
||||
valueField: 'id',
|
||||
labelField: 'name',
|
||||
searchField: 'name',
|
||||
options: [],
|
||||
create: false,
|
||||
|
||||
load: function(query, callback) {
|
||||
console.log('Desperately seeking ' + query);
|
||||
if (query === null || !query.length) return callback();
|
||||
$.ajax({
|
||||
url: '/json/auto/search-strings-electors?name=' + query,
|
||||
type: 'GET',
|
||||
dataType: 'jsonp',
|
||||
error: function() {
|
||||
console.log( 'Query ' + query + ' failed.');
|
||||
callback();
|
||||
},
|
||||
success: function(res) {
|
||||
console.log('Received ' + res + ' records for ' + query);
|
||||
callback(res);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
var simplemde = new SimpleMDE({
|
||||
autosave: {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue