views/backend/generator/fields/jquery_tab1.tt
// Placeholder for MSIE
if(navigator.userAgent.indexOf('MSIE') != -1){
$('[placeholder]').focus(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
input.removeClass('placeholder');
}
}).blur(function() {
var input = $(this);
if (input.val() == '' || input.val() == input.attr('placeholder')) {
input.addClass('placeholder');
input.val(input.attr('placeholder'));
}
}).blur();
$('[placeholder]').parents('form').submit(function() {
$(this).find('[placeholder]').each(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
})
});
}
// Tab forward one to two
$('.change_tab').click(function(e){
var this_button = $(this);
var check = 1;
var check_license = 1;
var oneauthor = 0;
$('.creator').children('div.row').each(function(){
if($(this).find('input[type!="hidden"]').eq(0).val() && $(this).find('input[type!="hidden"]').eq(0).hasClass('has-error')){
$(this).find('input[type!="hidden"]').removeClass("has-error");
$(this).find('input[type!="hidden"]').closest('div.input-group.mandatory').removeClass("has-error");
}
if($(this).find('input[type!="hidden"]').eq(1).val() && $(this).find('input[type!="hidden"]').eq(1).hasClass('has-error')){
$(this).find('input[type!="hidden"]').removeClass("has-error");
$(this).find('input[type!="hidden"]').closest('div.input-group.mandatory').removeClass("has-error");
}
if($(this).find('input[type!="hidden"]').eq(0).val() && $(this).find('input[type!="hidden"]').eq(1).val()){
oneauthor=1;
}
});
if (!oneauthor) {
check = 0;
var $first_person = $('.creator').children('div.row:first').find('input[type!="hidden"]');
if($first_person.eq(0).hasClass('required') && !$first_person.eq(0).val()){
$first_person.eq(0).addClass("has-error");
$first_person.closest('div.input-group.mandatory').addClass("has-error");
}
if($first_person.eq(1).hasClass('required') && !$first_person.eq(1).val()){
$first_person.eq(0).addClass("has-error");
$first_person.closest('div.input-group.mandatory').addClass("has-error");
}
}
[% FOR feature IN h.config.features.views.backend.publication.edit.js.validation %]
[% tmpl = feature.template _ '.tt'; INCLUDE $tmpl %]
[% END %]
if((this_button.attr('href') && (this_button.attr('href') == "#supplementary_fields" || this_button.attr('href') == "#related_material")) || ($(this).attr('name') == "finalSubmit" && ($(this).val() == "recSave" || $(this).val() == "recPublish" || $(this).val() == "recReturn"))){
if($('#id_data_reuse_license').length || $('#id_open_data_release').length){
if ($('.dropzone').first().children().length > 1 && $($('.dropzone').first().children()[1]).attr('class') != "fallback" && (!$('#id_open_data_release').is(':checked') || ($('#id_data_reuse_license').val() == ''))){
if($('#id_data_reuse_license').val() == '' && (!$('#id_other_data_license').length || $('#id_other_data_license').val() == '')){
$('#id_data_reuse_license').parent().removeClass('alert-info');
$('#id_data_reuse_license').parent().addClass('alert-danger');
alert('[% h.loc("forms.${type}.field.license.data_reuse_license.alert") %]');
//e.stopImmediatePropagation();
e.preventDefault();
}
if(!$('#id_open_data_release').is(':checked')) {
$('#odralert').removeClass('alert-info');
$('#odralert').addClass('alert-danger');
alert('[% h.loc("forms.${type}.field.license.open_data_release.alert") %]');
check_license = 0;
//e.stopImmediatePropagation();
e.preventDefault();
}
}
else if ($('.dropzone').first().children().length > 2 && $($('.dropzone').first().children()[1]).attr('class') == "fallback" && (!$('#id_open_data_release').is(':checked') || ($('#id_data_reuse_license').val() == ''))){
if($('#id_data_reuse_license').val() == '' && (!$('#id_other_data_license').length || $('#id_other_data_license').val() == '')){
$('#id_data_reuse_license').parent().removeClass('alert-info');
$('#id_data_reuse_license').parent().addClass('alert-danger');
alert('[% h.loc("forms.${type}.field.license.data_reuse_license.alert") %]');
//e.stopImmediatePropagation();
e.preventDefault();
}
if(!$('#id_open_data_release').is(':checked')) {
$('#odralert').removeClass('alert-info');
$('#odralert').addClass('alert-danger');
alert('[% h.loc("forms.${type}.field.license.open_data_release.alert") %]');
check_license = 0;
//e.stopImmediatePropagation();
e.preventDefault();
}
}
else {
if($('.dropzone').first().children().length == 1){
if($('#id_data_reuse_license').val() != ''){
$('#id_data_reuse_license').val('');
}
if($('#id_open_data_release').is(':checked')){
$('#id_open_data_release').prop("checked", false);
}
}
}
}
else if($('#id_pub_license').length){
if ($('.dropzone').first().children().length > 1 && $($('.dropzone').first().children()[1]).attr('class') != "fallback" && !$('#id_pub_license').is(':checked')){
$('#pub_license_alert').removeClass('alert-info');
$('#pub_license_alert').addClass('alert-danger');
alert('[% h.loc("forms.${type}.field.license.pub_license.alert") %]');
check_license = 0;
e.preventDefault();
}
else if ($('.dropzone').first().children().length > 2 && $($('.dropzone').first().children()[1]).attr('class') == "fallback" && !$('#id_pub_license').is(':checked')){
$('#pub_license_alert').removeClass('alert-info');
$('#pub_license_alert').addClass('alert-danger');
alert('[% h.loc("forms.${type}.field.license.pub_license.alert") %]');
check_license = 0;
e.preventDefault();
}
else {
if($('.dropzone').first().children().length == 1){
if($('#id_pub_license').is(':checked')){
$('#id_pub_license').prop("checked", false);
}
}
}
}
if($('#ddc').length && $('#ddc').find('select').hasClass('required')){
if ($('.dropzone').first().children().length > 1 && $($('.dropzone').first().children()[1]).attr('class') != "fallback" && (!$('#select_ddc_0').val() || $('#select_ddc_0').val() == "")){
$('#select_ddc_0').addClass('has-error');
$('#select_ddc_0').closest('div.input-group.mandatory').addClass("has-error");
check_license = 0;
e.preventDefault();
}
else if ($('.dropzone').first().children().length > 2 && $($('.dropzone').first().children()[1]).attr('class') == "fallback" && (!$('#select_ddc_0').val() || $('#select_ddc_0').val() == "")){
$('#select_ddc_0').addClass('has-error');
$('#select_ddc_0').closest('div.input-group.mandatory').addClass("has-error");
check_license = 0;
e.preventDefault();
}
}
}
if(!check || !check_license){
$('#basic_fields, #li_basic_fields').removeClass('active');
$('#file_upload, #li_file_upload').removeClass('active');
$('#supplementary_fields, #li_supplementary_fields').removeClass('active');
$('#related_material, #li_related_material').removeClass('active');
if(!check){
$('#basic_fields, #li_basic_fields').addClass('active');
}
else if(!check_license){
$('#file_upload, #li_file_upload').addClass('active');
}
$('#mandatory-field-error').removeClass('hidden');
$('#mandatory-field-error').addClass('show');
window.scrollTo(0, 0);
e.preventDefault(); // prevents submission of form
}
else if($(this).attr('name') == "finalSubmit" && ($(this).val() == "recSave" || $(this).val() == "recPublish" || $(this).val() == "recReturn")){
//window.scrollTo(0, 0);
//e.preventDefault();
}
else {
$('.creator.has-error').removeClass('has-error');
$('#mandatory-field-error').removeClass('show');
$('#mandatory-field-error').addClass('hidden');
if($(this).attr('name') != "finalSubmit"){
if(this_button.attr('href')){
var next_tab = this_button.attr('href').replace('#','');
$('#basic_fields, #li_basic_fields').removeClass('active');
$('#file_upload, #li_file_upload').removeClass('active');
$('#supplementary_fields, #li_supplementary_fields').removeClass('active');
$('#related_material, #li_related_material').removeClass('active');
$('#' + next_tab).addClass('active');
$('#li_' + next_tab).addClass('active');
e.preventDefault();
}
}
}
});
$('#authedtrans_0').change(function() {
var selected = $(this).val();
var seltext = $(this).find("option:selected").text();
$('.authedtrans:not(#authedtrans_0)').children().remove();
$('.authedtrans:not(#authedtrans_0)').append('<option value="' + selected + '">' + seltext + '</option>');
});
$(document).on('click', '.fullrow', function(){
//var index = $(this).parent().parent().parent().parent().index();
var index = $(this).closest('.row.authorspan').index();
if(parseInt(index) != 0){
//$(this).parent().parent().parent().parent().remove();
$(this).closest('.row.authorspan').remove();
}
});
$(document).on('click', '.author', function(){
var container = $(this).closest('div.creator');
container.find('input').each(function(){
if($(this).attr("readonly")){
$(this).removeAttr("readonly");
}
if($(this).is(':checked')){
$(this).removeAttr("checked");
}
this.value = "";
});
container.find('img').each(function(){
this.title = "";
this.src = librecat.uri_base + "/images/authorized_no.png";
});
});
$(document).on('click', '.connect', function(){
var index = $(this).parent().parent().parent().index();
$(this).parent().parent().parent().remove();
});
// Select author, editor, translator
function selectAuthedtrans(element){
var selected = $(element).val();
var index = $(element).attr('id').replace('authedtrans_','');
$('#id_au_type_'+index).val(selected);
}
$('button.cancel-button').click(function() {
window.location.href = '[% return_url || uri_base _ "/librecat" %]';
});
$("#id_conference_location").autocomplete({
messages: {
noResults: '',
results: function() {}
},
source: function (request, response) {
jQuery.getJSON(
"http://gd.geobytes.com/AutoCompleteCity?callback=?&q="+request.term,
function (data) {
response(data);
}
);
},
minLength: 3,
select: function (event, ui) {
var selectedObj = ui.item.value.replace(/, \w{1,},/,',');
$("#id_conference_location").val(selectedObj);
return false;
},
open: function () {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function () {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
});
$("#id_conference_location").autocomplete("option", "delay", 100);
// connect publications
$(function() {
$( "#connect_autocomplete" ).autocomplete({
source: librecat.uri_base + "/search_publication",
minLength: 0,
messages: {
noResults: '',
results: function() {}
},
select: function( event, ui ) {
var items = $('#relatesTo div.innerrow');
var index = items.index($('#relatesTo div.innerrow').last());
if(index > -1){
index++;
}
else{
index = 0;
}
$('#relatesTo').append('<div class="col-md-10 col-xs-12 col-md-offset-2 multirow"><div class="row innerrow"><div class="col-xs-3"><select class="relmat form-control" name="related_material.record.' + index + '.relation">[% FOREACH key IN h.config.lists.relations_record %]<option value="[% key.relation | html %]">[% h.loc("forms.relation.${key.relation}.select") %]</option>[% END %]</select></div><div class="col-md-7 col-xs-9"><div class="form-group col-xs-9"><span class="fa fa-file"></span> <a href="[% uri_base %]/record/' + ui.item.id + '" target="_blank">' + ui.item.title + '</a><input type="hidden" id="related_material_id_' + index +'" name="related_material.record.' + index + '.id" value="' + ui.item.id + '" /></div><div class="col-xs-1"><button class="btn btn-default remove_rel_rec"><span class="fa fa-minus"></span></button></div></div></div>');
$('.remove_rel_rec').bind("click",function(e){
full_remove_field($(this));
e.preventDefault();
});
},
close: function(){
$("#connect_autocomplete").val("");
},
});
});