112 lines
3.2 KiB
Plaintext
112 lines
3.2 KiB
Plaintext
include mixins
|
|
|
|
- var my_roles_string = JSON.stringify(roles);
|
|
- var my_already_defined_roles = JSON.stringify(already_defined_roles);
|
|
|
|
doctype html
|
|
html
|
|
include header
|
|
script(src="/javascripts/typeahead.jquery.min.js")
|
|
link(href="/stylesheets/mytypeahead.css", rel="stylesheet")
|
|
script(src="/javascripts/validator.min.js")
|
|
body(style="overflow: hidden;")
|
|
|
|
.container-horizontal(style="overflow: hidden;")
|
|
|
|
.flex-one(style="overflow: hidden; height: 100%;")
|
|
|
|
.container-vertical
|
|
|
|
.flex-zero
|
|
+nav("PfarrInfoSystem", "dropdown_menu")
|
|
|
|
.container-fluid(style="margin-bottom: 18px;")
|
|
p.
|
|
Bitte geben Sie den Namen für den Dienst ein!
|
|
|
|
|
|
.flex-one(style="overflow: auto; padding-left: 15px; padding-right: 15px;")
|
|
form(class="form-horizontal" method="POST", action="#{pentry_edit_base}/#{submit_dest}", id="form")
|
|
input(type="hidden", name="role_uid", value="#{role_uid}")
|
|
button(class="btn btn-success btn-xs", type="submit", id="submit_button")
|
|
span(class="glyphicon glyphicon-ok", aria-hidden="true")
|
|
span
|
|
span Übernehmen
|
|
|
|
br
|
|
span
|
|
|
|
.form-group
|
|
label(for='role_name', class="col-sm-2 control-label") Name
|
|
.col-sm-10
|
|
input(type="text", name="role_name", id="role_name", class="col-sm-12 typeahead form-control", data-role_is_unique="bar", value="#{role_name}", required)
|
|
.help-block.with-errors
|
|
|
|
script.
|
|
|
|
var substringMatcher = function(strs) {
|
|
return function findMatches(q, cb) {
|
|
var matches, substringRegex;
|
|
|
|
// an array that will be populated with substring matches
|
|
matches = [];
|
|
|
|
// regex used to determine if a string contains the substring `q`
|
|
substrRegex = new RegExp(q, 'i');
|
|
|
|
// iterate through the pool of strings and for any string that
|
|
// contains the substring `q`, add it to the `matches` array
|
|
$.each(strs, function(i, str) {
|
|
if (substrRegex.test(str)) {
|
|
matches.push(str);
|
|
}
|
|
});
|
|
|
|
cb(matches);
|
|
};
|
|
};
|
|
|
|
var roles = !{my_roles_string};
|
|
|
|
$("#role_name").typeahead({
|
|
hint: true,
|
|
highlight: true,
|
|
minLength: 0
|
|
},
|
|
{
|
|
name: 'roles',
|
|
source: substringMatcher(roles)
|
|
});
|
|
|
|
var submitted = false;
|
|
|
|
$('#form').validator({
|
|
custom: {
|
|
role_is_unique: function(el)
|
|
{
|
|
var already_defined_roles = !{my_already_defined_roles};
|
|
|
|
for(idx in already_defined_roles)
|
|
{
|
|
if(already_defined_roles[idx] === $("#role_name").val())
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
},
|
|
errors: {
|
|
role_is_unique: "Ein Dienst mit gleichem Namen existiert bereits; bitte wählen Sie einen anderen Namen!"
|
|
}
|
|
}).on('submit', function(e) {
|
|
if( ! e.isDefaultPrevented() )
|
|
{
|
|
console.log('SUBMITTED: ');
|
|
console.log(submitted);
|
|
if(submitted)
|
|
e.preventDefault();
|
|
submitted = true;
|
|
}
|
|
});
|
|
})
|