97 lines
2.5 KiB
JavaScript
97 lines
2.5 KiB
JavaScript
$(document).on('turbolinks:load', init_path_modal);
|
|
|
|
function init_path_modal() {
|
|
path_modal_action();
|
|
path_validation_action();
|
|
path_type_init();
|
|
path_validation($("input[id='procedure_path']"));
|
|
}
|
|
|
|
function path_modal_action() {
|
|
$('#publish-modal').on('show.bs.modal', function (event) {
|
|
$("#publish-modal .modal-body .table .tr-content").hide();
|
|
|
|
var button = $(event.relatedTarget) // Button that triggered the modal
|
|
var modal_title = button.data('modal_title'); // Extract info from data-* attributes
|
|
var modal_index = button.data('modal_index'); // Extract info from data-* attributes
|
|
|
|
var modal = $(this)
|
|
modal.find('#publish-modal-title').html(modal_title);
|
|
$("#publish-modal .modal-body .table #"+modal_index).show();
|
|
})
|
|
}
|
|
|
|
function path_validation_action() {
|
|
$("input[id='procedure_path']").keyup(function (key) {
|
|
if (key.keyCode != 13)
|
|
path_validation(this);
|
|
});
|
|
}
|
|
|
|
function togglePathMessage(valid, mine) {
|
|
$('#path-messages .message').hide();
|
|
|
|
if (valid === true && mine === true) {
|
|
$('#path_is_mine').show();
|
|
} else if (valid === true && mine === false) {
|
|
$('#path_is_not_mine').show();
|
|
} else if (valid === false && mine === null) {
|
|
$('#path_is_invalid').show();
|
|
}
|
|
|
|
if ((valid && mine === null) || mine === true)
|
|
$('#publish-modal #publish').removeAttr('disabled')
|
|
else
|
|
$('#publish-modal #publish').attr('disabled', 'disabled')
|
|
}
|
|
|
|
function path_validation(el) {
|
|
var valid = validatePath($(el).val());
|
|
toggleErrorClass(el, valid);
|
|
togglePathMessage(valid, null);
|
|
}
|
|
|
|
function validatePath(path) {
|
|
var re = /^[a-z0-9_\-]{3,50}$/;
|
|
return re.test(path);
|
|
}
|
|
|
|
function path_type_init() {
|
|
display = 'label';
|
|
|
|
var bloodhound = new Bloodhound({
|
|
datumTokenizer: Bloodhound.tokenizers.obj.whitespace(display),
|
|
queryTokenizer: Bloodhound.tokenizers.whitespace,
|
|
|
|
remote: {
|
|
url: '/admin/procedures/path_list?request=%QUERY',
|
|
wildcard: '%QUERY'
|
|
}
|
|
});
|
|
bloodhound.initialize();
|
|
|
|
$("#procedure_path").typeahead({
|
|
minLength: 1
|
|
}, {
|
|
display: display,
|
|
source: bloodhound,
|
|
templates: {
|
|
empty: 'Ce lien est disponible !',
|
|
suggestion: Handlebars.compile("<div class='path-mine-{{mine}}'>{{label}}</div>")
|
|
},
|
|
limit: 5
|
|
});
|
|
|
|
$('#procedure_path').bind('typeahead:select', function(ev, suggestion) {
|
|
togglePathMessage(true, suggestion['mine']);
|
|
});
|
|
}
|
|
|
|
function transfer_errors_message(show) {
|
|
if(show){
|
|
$("#not_found_admin").slideDown(100)
|
|
}
|
|
else {
|
|
$("#not_found_admin").slideUp(100)
|
|
}
|
|
}
|