include mixins - var parent_event_uuid = (pentrytype === "tevent" ? parent_event.uuid : ""); - var pentryfunction = (pentrytype === "tevent" ? "event" : pentrytype); - var generateUID = function() { return "a"+("000000" + (Math.random()*Math.pow(36,6) << 0).toString(36)).slice(-6) }; doctype html html include header script(src='/javascripts/socket.io.js' ) script(src="/javascripts/jquery.loading.min.js") link(href="/stylesheets/jquery.loading.min.css", rel="stylesheet") script(src="/javascripts/typeahead.jquery.min.js") link(href="/stylesheets/mytypeahead.css", rel="stylesheet") script(src="/javascripts/validator.min.js") link(href="/stylesheets/style_day.css", rel="stylesheet") style. .panel { margin-bottom: 5px; } .panel-title { cursor: pointer; } //- .panel_group_and_unit { border-width: 3px; } body .modal.fade(id="confirmDelete", role="dialog", aria-labelledby="confirmDeleteLabel", aria-hidden="true") .modal-dialog(role="document") .modal-content .modal-header button(type="button", class="close", data-dismiss="modal", aria-hidden="true") × h4(class="modal-title", id="confirmDeleteLabel") Löschen bestätigen .modal-body p Sind Sie sicher, dass Sie das Ereignis löschen wollen? .modal-footer button(type="button", class="btn btn-default", data-dismiss="modal") Abbrechen button(type="button", class="btn btn-danger", id="confirm") Löschen .root .new_flex_zero +nav_with_form("PfarrInfoSystem", "PfIS", "entryeditnav") .container-fluid h1 #{pentrytype_pretty} #{edit_type} .small #{date.weekday_short}, #{date.day}. #{date.month} #{date.year} .subroot(style="height: 100%;") .container-fluid p Lade Kalendereintrag ... script. var scroll_top = 0; var scroll_top_body = 0; $('.noEnterSubmit').keypress(function(e){ if ( e.which == 13 ) e.preventDefault(); }); $("#entryeditnav-form").on('submit', function(e){ console.log('FILTER SUBMIT'); e.preventDefault(); }); function get_compiled_message(type, headline, message) { return ''; }; var sockets = io.connect(); function compile_data_for_socketio(custom) { var data = { pentrytype : "#{pentrytype}", day: "#{date.date}", pentry: "#{pentry.uuid}", pcalview : "#{pcalview}", data : custom }; if("#{pentrytype}" === "tevent") { data.parent_event = "#{parent_event_uuid}"; } return data; } function goto_mainpage() { $('body').loading(); console.log("#{pentryfunction}"); sockets.emit("get_rendered_#{pentryfunction}", compile_data_for_socketio({})); } $(document).ready(function(){ goto_mainpage(); console.log('NOW EMITTING'); }); function set_pastoralunit(data) { $('body').loading(); sockets.emit('pentry_set_pastoralunit', compile_data_for_socketio({punit: data})); } function add_location(data) { $('body').loading(); sockets.emit('pentry_add_location', compile_data_for_socketio({location: data})); } function edit_location(data) { $('body').loading(); sockets.emit('pentry_edit_location', compile_data_for_socketio({location: data})); } function add_involved(data) { $('body').loading(); sockets.emit('pentry_add_involved', compile_data_for_socketio({involved: data})); } function edit_involved(data) { $('body').loading(); sockets.emit('pentry_edit_involved', compile_data_for_socketio({involved: data})); } function add_role(data) { $('body').loading(); sockets.emit('event_add_role', compile_data_for_socketio({role: data})); }; function edit_role(data) { $('body').loading(); sockets.emit('event_edit_role', compile_data_for_socketio({role: data})); }; sockets.on('get_rendered_pentry_result', function(data) { console.log('get_rendered_pentry_result'); history.replaceState({direction: 'back'}, document.title, location.pathname); history.pushState({direction: 'mainpage'}, document.title, location.pathname); $("#entryeditnav-form").empty(); $(".root").children(".subroot").remove(); $(".root").append(data.html); $(".subroot > .new_flex_one").scrollTop(scroll_top); $("html, body").scrollTop(scroll_top_body); scroll_top = 0; scroll_top_body = 0; $('body').loading('stop'); }); $('#confirmDelete').on('show.bs.modal', function (e) { $etype = $(e.relatedTarget).attr('data-delete-type'); $ename = $(e.relatedTarget).attr('data-delete-name'); $(this).find('.modal-body p').text("Sind Sie sicher, dass Sie \"" + $ename + "\" als " + $etype + " löschen wollen?"); console.log($etype); if($etype === "Dienst") { var fieldset = $(e.relatedTarget).closest('fieldset'); $(this).find('.modal-footer #confirm').data('fieldset', fieldset); } else { // Pass form reference to modal for submission on yes/ok var tr = $(e.relatedTarget).closest('tr'); $(this).find('.modal-footer #confirm').data('tr', tr); } $(this).find('.modal-footer #confirm').data('delete-type', $etype); }); $('#confirmDelete').find('.modal-footer #confirm').on('click', function() { $etype = $(this).data('delete-type'); console.log($etype); if($etype === "Dienst") { var fieldset = $(this).data('fieldset'); var uid = fieldset.data('uid'); sockets.emit('event_remove_role', compile_data_for_socketio({role: uid})); } else { var tr = $(this).data('tr'); var uid = tr.data('uid'); if($etype === "Ort") { sockets.emit('pentry_remove_location', compile_data_for_socketio({location: uid})); } else { var role = tr.data('role'); sockets.emit('pentry_remove_involved', compile_data_for_socketio({role: role, involved: uid})); } } }); sockets.on('pentry_remove_involved_result', function(data) { if(data.result === "OK") { var tr = $('#confirmDelete').find('.modal-footer #confirm').data('tr'); if(tr.is(":last-child") && tr.is(":first-child")) { var table = tr.closest("table"); var t_parent = table.parent(); table.remove(); t_parent.append("

Keine Beteiligten ausgewählt.

"); } else tr.remove(); } $('#confirmDelete').modal('hide'); $('#messageview_involved_' + data.role).append(data.html); }); sockets.on('pentry_remove_location_result', function(data) { if(data.result === "OK") { var tr = $('#confirmDelete').find('.modal-footer #confirm').data('tr'); if(tr.is(":last-child") && tr.is(":first-child")) { var table = tr.closest("table"); var t_parent = table.parent(); table.remove(); t_parent.append("

Keine Orte ausgewählt.

"); } else tr.remove(); } $('#confirmDelete').modal('hide'); $('#messageview_locations').append(data.html); }); sockets.on('event_remove_role_result',function(data){ var fieldset = $('#confirmDelete').find('.modal-footer #confirm').data('fieldset'); var is_last_role = (fieldset.is(":last-child") && fieldset.is(":first-child")); var f_parent = fieldset.parent(); fieldset.remove(); if(is_last_role) f_parent.append("

Keine Dienste angegeben.

") $('#confirmDelete').modal('hide'); }); function save_tevent() { var event = { uuid : "#{pentry.uuid}", name : $("#edit_name").val(), name_secondary: $("#edit_name_secondary").val(), visibility: $("#combo_type").val(), end : $("#edit_end").val(), end_is_vague : $("#check_end_is_vague").prop("checked"), description : $("#area_description").val(), annotations : $("#area_annotations").val() }; return event; } function save_event() { event = save_tevent(); event.start = $("#edit_begin").val(); return event; } function save_away() { var away = { uuid : "#{pentry.uuid}", reason: $("#edit_reason").val() }; return away; } function save_keep_in_mind() { var keep_in_mind = { uuid : "#{pentry.uuid}", name : $("#edit_name").val(), description: $("#area_description").val() }; return keep_in_mind; } function save_todo() { var todo = { uuid : "#{pentry.uuid}", name : $("#edit_name").val(), description: $("#area_description").val() }; return todo; } function save_vehicle_use() { var vehicle_use = { uuid : "#{pentry.uuid}", name : $("#edit_name").val(), description: $("#area_description").val(), vehicle_id: $("#combo_vehicle").val() }; return vehicle_use; } function save_and_goto(subpage, subpage_data) { $('body').loading(); var data = {}; data["#{pentryfunction}"] = save_#{pentrytype}(); sockets.emit('#{pentryfunction}_save', compile_data_for_socketio(data)); console.log('subpage: ', subpage); console.log('subbpage_data: ', subpage_data); scroll_top = $(".subroot > .new_flex_one").scrollTop(); scroll_top_body = $("html, body").scrollTop(); switch(subpage) { case "select_pastoralunit": sockets.emit('render_pastoralunitselector', compile_data_for_socketio({})); break; case "add_predefined_location": sockets.emit('render_locationselector', compile_data_for_socketio({})); break; case "add_location": sockets.emit('render_locationeditor', compile_data_for_socketio({ type: "add" })); break; case "edit_location": sockets.emit('render_locationeditor', compile_data_for_socketio({ type: "edit", location: subpage_data.location })); break; case "add_actor": sockets.emit('render_actorselector', compile_data_for_socketio(subpage_data)); break; case "add_role": sockets.emit('render_roleeditor', compile_data_for_socketio({type: "add"})); break; case "edit_role": sockets.emit('render_roleeditor', compile_data_for_socketio({type: "edit", role: subpage_data.role})); break; case "add_involved": sockets.emit('render_involvededitor', compile_data_for_socketio({type: "add", role: subpage_data.role})); break; case "edit_involved": sockets.emit('render_involvededitor', compile_data_for_socketio({type: "edit", role: subpage_data.role, involved: subpage_data.involved})); break; case "add_parishdbpersongroup": sockets.emit('render_parishdbpersongroupselector', compile_data_for_socketio({role: subpage_data.role})); break; } } sockets.on('render_locationselector_result', function(data) { console.log('got locationselector'); history.pushState({direction: 'locationselector'}, document.title, location.pathname); $(".root").children(".subroot").remove(); $(".root").append(data.html); $("html, body").scrollTop(0); $(".root").scrollTop(0); $('body').loading('stop'); }); sockets.on('render_locationeditor_result', function(data) { console.log('got locationeditor'); history.pushState({direction: 'locationeditor'}, document.title, location.pathname); $(".root").children(".subroot").remove(); $(".root").append(data.html); $("html, body").scrollTop(0); $(".root").scrollTop(0); $('body').loading('stop'); }); sockets.on('render_pastoralunitselector_result', function(data) { console.log('got pastoralunitsecelcotr'); history.pushState({direction: 'pastoralunitselector'}, document.title, location.pathname); $(".root").children(".subroot").remove(); $(".root").append(data.html); $("html, body").scrollTop(0); $(".root").scrollTop(0); $('body').loading('stop'); }); sockets.on('render_actorselector_result', function(data) { console.log('got actorselector'); history.pushState({direction: 'actorselector'}, document.title, location.pathname); $(".root").children(".subroot").remove(); $(".root").append(data.html); $("html, body").scrollTop(0); $(".root").scrollTop(0); $('body').loading('stop'); }); function show_searchbar(functiontocall) { $("#entryeditnav-form").append("
"); } /*function show_submitbutton(id, functioncall, extrahtml) { console.log(functioncall); $("#entryeditnav-form").append(''); }*/ sockets.on('render_parishdbpersongroupselector_result', function(data) { console.log('got parishdbpersongroupselector'); history.pushState({direction: 'parishdbpersongroupselector'}, document.title, location.pathname); $(".root").children(".subroot").remove(); $(".root").append(data.html); $("html, body").scrollTop(0); $(".root").scrollTop(0); $('body').loading('stop'); }); sockets.on('render_involvededitor_result', function(data) { console.log('got involvededitor'); history.pushState({direction: 'involvededitor'}, document.title, location.pathname); $(".root").children(".subroot").remove(); $(".root").append(data.html); $("html, body").scrollTop(0); $(".root").scrollTop(0); $('body').loading('stop'); }); sockets.on('render_roleeditor_result', function(data) { console.log('got roleeditor'); history.pushState({direction: 'roleeditor'}, document.title, location.pathname); $(".root").children(".subroot").remove(); $(".root").append(data.html); $("html, body").scrollTop(0); $(".root").scrollTop(0); $('body').loading('stop'); }); // HANDLE SIMPLE BACK // history.replaceState({direction: 'back'}, document.title, location.pathname); // history.pushState({direction: 'mainpage'}, document.title, location.pathname); window.addEventListener("popstate", function(e) { console.log(e.state); if(e.state !== null) { if(e.state.direction === "back") { history.replaceState(null, document.title, location.pathname); setTimeout(function(){ location.replace("#{pentry_href}/cancel?pcalview=#{pcalview}"); },0); } if(e.state.direction === "mainpage") goto_mainpage(); } }, false);