function generateStringId(charNb, allowedChars) {
if (typeof charNb === 'undefined') { charNb = 32; }
if (typeof allowedChars === 'undefined') { allowedChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; }
var text = "";
for( var i=0; i < charNb; i++ ) {
text += allowedChars.charAt(Math.floor(Math.random() * allowedChars.length));
}
return text;
}
function toggleFullScreen(outerWidgetId, innerWidgetId) {
if($(outerWidgetId).hasClass('full-size-overlay')) {
// Toggle from fullscreen to "normal"
$(outerWidgetId).removeClass('full-size-overlay');
$(innerWidgetId).removeClass('full-size-overlay-inner');
$('.pod-toggle-full-screen-button > i').removeClass('fa-compress')
$('.pod-toggle-full-screen-button > i').addClass('fa-expand')
} else {
// Toggle from normal to fullscreen
$(outerWidgetId).addClass('full-size-overlay');
$(innerWidgetId).addClass('full-size-overlay-inner');
$('.pod-toggle-full-screen-button > i').removeClass('fa-expand')
$('.pod-toggle-full-screen-button > i').addClass('fa-compress')
}
}
function initToolbarBootstrapBindings(richTextEditorId) {
// $('a[title]').tooltip({container:'body'});
$(richTextEditorId+' > .dropdown-menu input').click(function() {return false;})
.change(function () {$(this).parent('.dropdown-menu').siblings('.dropdown-toggle').dropdown('toggle');})
.keydown('esc', function () {this.value='';$(this).change();});
$('[data-role=magic-overlay]').each(function () {
var overlay = $(this), target = $(overlay.data('target'));
overlay.css('opacity', 0).css('position', 'absolute').offset(target.offset()).width(target.outerWidth()).height(target.outerHeight());
});
if ("onwebkitspeechchange" in document.createElement("input")) {
var editorOffset = $(richTextEditorId).offset();
$('#voiceBtn').css('position','absolute').offset({top: editorOffset.top, left: editorOffset.left+$(richTextEditorId).innerWidth()-35});
} else {
$('#voiceBtn').hide();
}
};
function showErrorAlert (reason, detail) {
var msg='';
if (reason==='unsupported-file-type') { msg = "Unsupported format " +detail; }
else {
console.log("error uploading file", reason, detail);
}
$('
'+
'File upload error '+msg+'
').prependTo('#alerts');
};
$(document).ready(function() {
/* EDIT CONTENT FORM */
$("#current-document-content-edit-form" ).css("display", "none");
$("#current-document-content-edit-button" ).click(function() {
$("#current-document-content" ).css("display", "none");
$("#current-document-content-edit-form" ).css("display", "block");
$("#current-document-toobar").css("display", "none");
});
$("#current-document-content-edit-cancel-button, #current-document-content-edit-cancel-button-top" ).click(function() {
$("#current-document-content" ).css("display", "block");
$("#current-document-content-edit-form" ).css("display", "none");
$("#current-document-toobar").css("display", "block");
});
$('#current-document-content-edit-save-button, #current-document-content-edit-save-button-top').on('click', function(e){
// We don't want this to act as a link so cancel the link action
e.preventDefault();
$('#current_node_textarea_wysiwyg').cleanHtml();
$('#current_node_textarea').val($('#current_node_textarea_wysiwyg').html());
$('#current-document-content-edit-form').submit();
});
$(function() {
$('.datetime-picker-input-div').datetimepicker({
language: 'fr-FR',
pickSeconds: false
});
});
// #################################
// ##
// ## The following JS code allow t
// ##
// ##
// Javascript to enable link to tab
var hash = document.location.hash;
var prefix = "tab-";
if (hash) {
$('.nav-tabs a[href='+hash.replace(prefix,"")+']').tab('show');
}
// Change hash for page-reload
$('.nav-tabs a').on('shown', function (e) {
window.location.hash = e.target.hash.replace("#", "#" + prefix);
});
// #################################
// ##
// ## Show/hide behavior
// ## for the main menu
// ##
// ##
$('a.toggle-child-menu-items').on('click', function (e) {
parent_id = $(this).parent().attr('id');
child = $('#'+parent_id+'-children');
togglebutton = $(this).children('i:first')
if(child.css('display')=='none'){
child.css("display", "block");
togglebutton.removeClass('icon-g-folder-plus');
togglebutton.attr('class', 'icon-g-folder-open');
console.log("class is: "+togglebutton.attr('class'));
} else {
child.css("display", "none");
togglebutton.removeClass('icon-g-folder-open');
togglebutton.addClass('icon-g-folder-plus');
console.log("class is: "+togglebutton.attr('class'));
}
});
// #################################
// ##
// ## large / small view of the document
// ## (toggle visibility of the left panel)
// ##
// ##
$('a#view-size-toggle-button-small').on('click', function (e) {
console.log("Toggle view mode");
$('#view-size-toggle-button-small').css('display', 'none');
$('#view-size-toggle-button-medium').css('display', 'block');
$('#view-size-toggle-button-large').css('display', 'none');
left_panel_id = '#application-left-panel'; // is span3 by default (to be hidden in fullscreen mode)
main_panel_id = '#application-main-panel'; // is span9 by default (to be 12 in fullscreen mode)
docu_panel_id = '#application-document-panel'; // is span5 by default (to be span8 in fullscreen mode)
metadata_panel_id = '#application-metadata-panel';
left_panel = $(left_panel_id);
main_panel = $(main_panel_id);
docu_panel = $(docu_panel_id);
metadata_panel = $(metadata_panel_id);
console.log("Toggle from small (default) to medium (no left tab)");
left_panel.css('display', 'block');
metadata_panel.css('display', 'block');
main_panel.removeClass('span9');
main_panel.removeClass('span12');
main_panel.addClass('span9');
docu_panel.removeClass('span5');
docu_panel.removeClass('span8');
docu_panel.removeClass('span12');
docu_panel.addClass('span5');
});
$('a#view-size-toggle-button-medium').on('click', function (e) {
console.log("Toggle view mode to: MEDIUM");
$('#view-size-toggle-button-small').css('display', 'none');
$('#view-size-toggle-button-medium').css('display', 'none');
$('#view-size-toggle-button-large').css('display', 'block');
left_panel_id = '#application-left-panel'; // is span3 by default (to be hidden in fullscreen mode)
main_panel_id = '#application-main-panel'; // is span9 by default (to be 12 in fullscreen mode)
docu_panel_id = '#application-document-panel'; // is span5 by default (to be span8 in fullscreen mode)
metadata_panel_id = '#application-metadata-panel';
left_panel = $(left_panel_id);
main_panel = $(main_panel_id);
docu_panel = $(docu_panel_id);
metadata_panel = $(metadata_panel_id);
left_panel.css('display', 'none');
metadata_panel.css('display', 'block');
main_panel.removeClass('span9');
main_panel.addClass('span12');
docu_panel.removeClass('span5');
docu_panel.removeClass('span12');
docu_panel.addClass('span8');
});
$('a#view-size-toggle-button-large').on('click', function (e) {
console.log("Toggle view mode to: LARGE");
$('#view-size-toggle-button-small').css('display', 'block');
$('#view-size-toggle-button-medium').css('display', 'none');
$('#view-size-toggle-button-large').css('display', 'none');
left_panel_id = '#application-left-panel'; // is span3 by default (to be hidden in fullscreen mode)
main_panel_id = '#application-main-panel'; // is span9 by default (to be 12 in fullscreen mode)
docu_panel_id = '#application-document-panel'; // is span5 by default (to be span8 in fullscreen mode)
metadata_panel_id = '#application-metadata-panel';
left_panel = $(left_panel_id);
main_panel = $(main_panel_id);
docu_panel = $(docu_panel_id);
metadata_panel = $(metadata_panel_id);
left_panel.css('display', 'none');
metadata_panel.css('display', 'none');
main_panel.removeClass('span9');
main_panel.addClass('span12');
docu_panel.removeClass('span5');
docu_panel.removeClass('span8');
docu_panel.addClass('span12');
});
// ALLOW TO SHOW POPOVER WITH SPECIFIC DATA
$('.item-with-data-popoverable').popover({ html: true});
/** Make calculator available on all pages */
$('#keyboard span').on('click', function (e) {
current_value = $(this).text()
if(current_value=='C') {
$('#calculation').val('');
$('#result').val('');
} else if(current_value=='=') {
string = $('#calculation').val().replace(/[^0-9+-/\*\%\(\)]/gi, ''); // replace('/[^0-9()*/-+]/g', "");
console.log("Compute value of "+string)
calculation = eval(string);
console.log("Result is: "+calculation)
$('#result').val(calculation)
} else {
field = $('#calculation')
field.oldval = field.val();
field.val(field.oldval+current_value)
}
});
});