filenames
use kebab-case for file names remove camelCase and snake_case
This commit is contained in:
281
website/agenda/planung/js/edit-series.js
Normal file
281
website/agenda/planung/js/edit-series.js
Normal file
@@ -0,0 +1,281 @@
|
||||
/*
|
||||
show a series, its template, users and events
|
||||
*/
|
||||
|
||||
|
||||
// set checkbox values checked depending on value
|
||||
function initCheckBoxes(){
|
||||
$('div.editor input[type="checkbox"]').each(
|
||||
function () {
|
||||
if ($(this).attr('value')=='1'){
|
||||
$(this).attr('value','1');
|
||||
$(this).attr('checked','checked');
|
||||
}else{
|
||||
$(this).attr('value','0');
|
||||
$(this).attr('checked',null);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// add checkbox handler to change value on click
|
||||
function addCheckBoxHandler(){
|
||||
$('div.editor input[type="checkbox"]').click(
|
||||
function () {
|
||||
if ($(this).attr('value')=='1'){
|
||||
$(this).attr('value','0');
|
||||
}else{
|
||||
$(this).attr('value','1');
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// show/hide series member edit
|
||||
function edit_series_members(series_id){
|
||||
$('.edit_series_members_'+series_id).toggle();
|
||||
}
|
||||
|
||||
// show/hide schedule fields depending on period type for a given schedule element
|
||||
function showScheduleFields(id){
|
||||
var select='#'+id+' select[name="period_type"]';
|
||||
var type=$(select).val();
|
||||
//hide and show values for different schedule types
|
||||
if (type=='single'){
|
||||
$('#'+id+' div.cell.frequency').hide();
|
||||
$('#'+id+' div.cell.end').hide();
|
||||
$('#'+id+' div.cell.schedule_weekday').hide();
|
||||
$('#'+id+' div.cell.week_of_month').hide();
|
||||
$('#'+id+' div.cell.schedule_month').hide();
|
||||
$('#'+id+' div.cell.nextDay').hide();
|
||||
}else if(type=='days'){
|
||||
$('#'+id+' div.cell.frequency').show();
|
||||
$('#'+id+' div.cell.end').show();
|
||||
$('#'+id+' div.cell.schedule_weekday').hide();
|
||||
$('#'+id+' div.cell.week_of_month').hide();
|
||||
$('#'+id+' div.cell.schedule_month').hide();
|
||||
$('#'+id+' div.cell.nextDay').hide();
|
||||
}else if(type=='week_of_month'){
|
||||
$('#'+id+' div.cell.frequency').hide();
|
||||
$('#'+id+' div.cell.end').show();
|
||||
$('#'+id+' div.cell.schedule_weekday').show();
|
||||
$('#'+id+' div.cell.week_of_month').show();
|
||||
$('#'+id+' div.cell.schedule_month').show();
|
||||
$('#'+id+' div.cell.nextDay').show();
|
||||
}
|
||||
}
|
||||
|
||||
// show/hide schedule fields for all schedules
|
||||
function initScheduleFields(){
|
||||
$('div.row.schedule form').each(function(){
|
||||
var id = $(this).attr('id');
|
||||
if(contains(id,'schedule_'))showScheduleFields(id);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// preselect options in select boxes
|
||||
function setSelectedOptions(){
|
||||
$('#tabs-schedule select').each(
|
||||
function(){
|
||||
var value=$(this).attr('value');
|
||||
if (value==null) return;
|
||||
if (value=='') return;
|
||||
$(this).children().each(
|
||||
function(){
|
||||
if ($(this).attr('value')==value){
|
||||
$(this).attr('selected','selected');
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function initSelectChangeHandler(selector, name, title){
|
||||
$(selector).each(
|
||||
function(){
|
||||
//replace select by input, if no matching field
|
||||
var value=$(this).attr('value');
|
||||
|
||||
//check if a child is selected
|
||||
var found=0;
|
||||
$(this).children().each(function(){
|
||||
if (found==1) return;
|
||||
if ($(this).attr('value')==value){
|
||||
found=1;
|
||||
$(this).attr('selected');
|
||||
}else{
|
||||
$(this).removeAttr('selected');
|
||||
}
|
||||
});
|
||||
if(found==1){
|
||||
return;
|
||||
}
|
||||
|
||||
// find option with empty value
|
||||
$(this).children().each(function(){
|
||||
if ($(this).attr('value')==''){
|
||||
// add selected option
|
||||
$(this).parent().append('<option value="'+value+'" selected="1">'+value+' Min</option>');
|
||||
// add option to edit field
|
||||
$(this).parent().append(
|
||||
loc[title]+'<br>'+'<input name="'+name+'" value="'+value+'" class="'+name+'">'
|
||||
);
|
||||
}
|
||||
});
|
||||
setInputWidth();
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
//add handler to replace select boxes by input fields if choosen value is empty
|
||||
function addSelectChangeHandler(selector, name, title){
|
||||
$(selector).each(
|
||||
function(){
|
||||
$(this).change(function(){
|
||||
if($(this).val()==''){
|
||||
//replace select by input, copy value from select to input,
|
||||
var value=$(this).attr('value');
|
||||
$(this).parent().html(
|
||||
loc[title]+'<br>'
|
||||
+'<input name="'+name+'" value="'+value+'" class="'+name+'">'
|
||||
);
|
||||
}else{
|
||||
//set selected value to select
|
||||
$(this).attr('value',$(this).val());
|
||||
}
|
||||
setInputWidth();
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// print selected weekday before datetime picker
|
||||
function updateWeekdays(){
|
||||
$('.schedule input.datetimepicker.start').each(
|
||||
function(){
|
||||
var weekday=getWeekday(parseDateTime($(this).val()));
|
||||
if (weekday==null) weekday='';
|
||||
if (weekday=='undefined,') weekday='';
|
||||
$(this).parent().prev().html(weekday);
|
||||
}
|
||||
);
|
||||
|
||||
$('#tabs-events td.date').each(
|
||||
function(){
|
||||
var weekday=getWeekday(parseDateTime($(this).text()));
|
||||
//console.log(weekday)
|
||||
if (weekday==null) weekday='';
|
||||
if (weekday=='undefined,') weekday='';
|
||||
$(this).prev().html(weekday);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// change create schedule button name (add/remove)
|
||||
function updateScheduleButtonName(){
|
||||
var buttonChecked=$('#schedule_add input[name="exclude"]');
|
||||
|
||||
if(buttonChecked.prop('checked')){
|
||||
$('#addScheduleButton').text(loc['label_remove_schedule']);
|
||||
}else{
|
||||
$('#addScheduleButton').text(loc['label_add_schedule']);
|
||||
}
|
||||
}
|
||||
|
||||
// set css class on parent div to add margin on input fields
|
||||
function setInputWidth(){
|
||||
$('#content .editor div.cell input').each(function(){
|
||||
$(this).parent().addClass('containsInput');
|
||||
$(this).parent().removeClass('containsSelect');
|
||||
});
|
||||
$('#content .editor div.cell select').each(function(){
|
||||
$(this).parent().addClass('containsSelect');
|
||||
$(this).parent().removeClass('containsInput');
|
||||
});
|
||||
|
||||
$('#content .editor div.cell select[name="period_type"]').each(function(){
|
||||
if($(this).val()=='single'){
|
||||
$(this).parent().addClass('isSingle');
|
||||
$(this).addClass('isSingle');
|
||||
}else{
|
||||
$(this).parent().removeClass('isSingle');
|
||||
$(this).removeClass('isSingle');
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function checkExcerptField(){
|
||||
var elem = $('textarea[name="excerpt"]');
|
||||
if (elem.length==0) return;
|
||||
var length = elem.val().length;
|
||||
console.log("length="+length);
|
||||
if (length > 250){
|
||||
$('#excerpt_too_long').show();
|
||||
}else{
|
||||
$('#excerpt_too_long').hide();
|
||||
}
|
||||
}
|
||||
|
||||
function checkFields(){
|
||||
checkExcerptField();
|
||||
$('textarea[name="excerpt"]').on("keyup", function(){
|
||||
checkExcerptField();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
$(document).ready(
|
||||
function(){
|
||||
setupLocalization(
|
||||
function(){
|
||||
addBackButton();
|
||||
updateWeekdays();
|
||||
}
|
||||
);
|
||||
|
||||
initRegions(region);
|
||||
showDateTimePicker('input.datetimepicker.start', {
|
||||
onSelect: function(){updateWeekdays();}
|
||||
});
|
||||
showDatePicker ('input.datetimepicker.end', {
|
||||
onSelect: function(){updateWeekdays();}
|
||||
});
|
||||
|
||||
initCheckBoxes();
|
||||
addCheckBoxHandler();
|
||||
|
||||
$("#tabs").tabs();
|
||||
$('#tabs').removeClass('ui-widget ui-widget-content ui-corner-all');
|
||||
|
||||
updateScheduleButtonName();
|
||||
initScheduleFields();
|
||||
setSelectedOptions();
|
||||
|
||||
//if value is not selected in a option, replace select box by input field
|
||||
initSelectChangeHandler('#tabs-schedule .frequency select', 'frequency', 'frequency_days');
|
||||
addSelectChangeHandler( '#tabs-schedule .frequency select', 'frequency', 'frequency_days');
|
||||
|
||||
initSelectChangeHandler('#tabs-schedule .duration select', 'duration', 'duration_in_minutes');
|
||||
addSelectChangeHandler( '#tabs-schedule .duration select', 'duration', 'duration_in_minutes');
|
||||
|
||||
setInputWidth();
|
||||
|
||||
checkFields();
|
||||
|
||||
// $('#content div.cell input').change( function(){setInputWidth()});
|
||||
// $('#content div.cell select').change(function(){setInputWidth()});
|
||||
|
||||
$('textarea').autosize();
|
||||
|
||||
$('table#schedule_table').tablesorter({
|
||||
widgets: ["filter"],
|
||||
usNumberFormat : false
|
||||
});
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user