pfisjs/views/actorselector_inlay.jade

221 lines
7.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

include mixins
include mixins_day
- var actual_background = "yellow";
mixin do_actor(actor)
- var my_class;
- if(actor.available === false) my_class = "panel-danger";
- actual_actor_id === actor.id ? my_class = "panel-success" : my_class="panel-default";
.panel(class=my_class, id=actor.id, data-actorname=actor.name, data-actor="", data-status="#{actor.status}", data-available="#{actor.available}")
.panel-heading(onclick="select_actor('#{actor.id}');")
- var my_cursor = "cursor: pointer;";
//- actor.available ? my_cursor = "cursor: pointer;" : my_cursor = "cursor: auto;"
h4.panel-title(style=my_cursor)
| #{actor.name}
if(actor.available === false)
.small(style="color: #a94442; margin-bottom: 0px;")
i Abwesend
|    
| !{actor.unavailable_reason}
if(actor.other_events_today.length > 0)
.panel-body
p(style="margin-bottom: 0px;")
| Heute bereits eingebunden in:
each ev in actor.other_events_today
+pevent_with_thereafter_timeline("", ev, false)
//- ul(style="margin-bottom: 0px; padding-inline-start: 15px;")
//- each ev in actor.other_events_today
//- li
//- i !{ev.name}
//- |
//- span.small !{ev.name_secondary}
//- .small !{ev.time}
//- if(ev.is_involved_in_mainevent === false)
//- .small [Nicht direkt in Haupt-Ereignis eingebunden.]
//- if(ev.roles !== "")
//- .small Mitwirkung: #{ev.roles}
//- if(ev.thereafterevents.length > 0)
//- ul(style="margin-bottom: 0px; padding-inline-start: 15px;")
//- each tev in ev.thereafterevents
//- li
//- i !{tev.name}
//- |
//- span.small !{ev.name_secondary}
//- .small !{tev.time}
//- if(tev.roles !== "")
//- .small Mitwirkung: #{tev.roles}
mixin do_unit(unit)
- var my_uid = generateUID();
- var my_border_color = unit.is_pastoral ? "border-color: "+ unit.color +"; " : "";
- var my_background_image = unit.is_pastoral ? "background-image: linear-gradient(to bottom,"+unit.color+" 50%, #ffffff 100%); border-color: #ffffff; background-color: #ffffff; border-top-left-radius: 0px; border-top-right-radius: 0px;" : "";
- var my_border_top_color = unit.is_pastoral ? "border-top-color: #ffffff;" : "";
- var in_class = unit.subunits.length > 0 ? "in" : "";
.panel.panel-default.panel_group_and_unit(id=my_uid, data-elemname=unit.name, data-parishdb="", data-dn=unit.dn, data-elemtype="unit", data-depth=unit.depth, style=my_border_color )
.panel-heading(style=my_background_image)
h4.panel-title(data-toggle="collapse", data-target="#PANEL_"+my_uid, aria-expanded="false", aria-controls="PANEL_"+my_uid) #{unit.name}
//- border-bottom: 2px solid #{elem.color};
.panel-collapse.collapse(class=in_class, id="PANEL_"+my_uid)
.panel-body(style="padding: 10px; "+my_border_top_color)
if unit.actors.length > 0
each actor in unit.actors
+do_actor(actor)
if unit.subunits.length > 0
each sub in unit.subunits
+do_unit(sub)
.subroot
.new_flex_zero(style="margin-bottom: 20px;")
.container-fluid
h4 Beteiligten aus der Liste hinzufügen
label
input(type="checkbox", id="show_retired")
//- checked
span
span Ausgeschiedene anzeigen
form(class="form-horizontal", method="POST", action="", id="form_actorselector")
input(type="hidden", name="actual_actor_id", id="actual_actor_id", value="#{actual_actor_id}")
input(type="hidden", name="actual_actor_name", id="actual_actor_name", value="#{actual_actor_name}")
input(type="hidden", name="for_role", id="for_role", value="#{for_role}")
button(class="btn btn-success btn-sm", type="submit", id="submit_button")
span(class="glyphicon glyphicon-ok", aria-hidden="true")
span
span Übernehmen
//- goto_mainpage();
button(class="btn btn-warning btn-sm", type="button", onclick="history.back();")
span(class="glyphicon glyphicon-remove-circle", aria-hidden="true")
span
span Abbrechen
p.small(style="margin-top: 7px; margin-bottom: 0px; font-weight: bold;") Aktuell ausgewählt
p(style="font-size: 100%; font-weight: bold; margin-bottom: 0px;")
- var actual_name = (actual_actor_name === "" ? "" : actual_actor_name)
span#actual_name #{actual_name}
#errorpane
.new_flex_one(style="padding-bottom: 200px;")
.container-fluid
for unit in units
+do_unit(unit)
script.
pcal_pentry_edit_manager.show_searchbar("adjust_visible_actors(this);");
if("#{actual_actor_id}" === "")
$("#submit_button").prop('disabled', true);
$("#show_retired").change(function()
{
if(this.checked)
$("[data-status='retired']").show();
else
$("[data-status='retired']").hide();
});
$("[data-status='retired']").hide();
select_actor = function(actor_id)
{
console.log("SELECTED: " + actor_id);
var actual_id = $("#actual_actor_id").val();
console.log(actual_id);
if(actual_id === actor_id)
{
console.log("NOTHIN CHANGED");
return;
}
var new_panel = $("#" + actor_id).closest('.panel');
//if(new_panel.hasClass("panel-danger")) // i. e.: not available
// return;
if(actual_id !== "") {
var replace_class = "panel-default";
var old_panel = $("#" + actual_id).closest('.panel');
console.log(old_panel.data("available"));
console.log(old_panel);
if(old_panel.data("available") == false) replace_class = "panel-danger";
old_panel.removeClass('panel-success').addClass(replace_class);
}
var replace_class = 'panel-default';
if(new_panel.hasClass("panel-danger"))
replace_class = "panel-danger";
new_panel.removeClass(replace_class).addClass('panel-success');
$("#actual_actor_id").val(actor_id);
var actorname = $("#"+actor_id).data("actorname");
$("#actual_actor_name").val(actorname);
$("#actual_name").text(actorname);
$("#errorpane").empty();
$("#submit_button").prop('disabled', false);
}
function set_visibility_according_to_filter(substrRegex, elems) {
var units_are_shown = false;
if(!units_are_shown) {
$("[data-elemtype='unit']").each(function(index) {
var panel_id = "#PANEL_" + $(this).prop('id');
$(panel_id).collapse('show');
});
console.log('SHOW ALL UNITS');
units_are_shown = true;
}
var actual_id = $("#actual_actor_id").val();
elems.each(function(index) {
my_panel = $(this);
var txt = my_panel.data("actorname");
var id = my_panel.prop('id');
if(substrRegex.test(txt)) {
my_panel.show();
if(actual_id === id) {
$("#submit_button").prop('disabled', false);
$("#errorpane").empty();
}
}
else {
my_panel.hide();
if(actual_id === id) {
$("#submit_button").prop('disabled', true);
$("#errorpane").html(get_compiled_message("danger", "Auswahl ungültig", "Durch die Filterangabe wurde Ihre Auswahl ungültig!"));
}
}
});
}
function adjust_visible_actors(my_input) {
console.log(my_input.value);
// regex used to determine if a string contains the substring `q`
substrRegex = new RegExp(my_input.value, 'i');
set_visibility_according_to_filter(substrRegex, $("[data-status='active']"));
if( $("#show_retired").prop('checked') ) {
set_visibility_according_to_filter(substrRegex, $("[data-status='retired']"));
}
}
$("#form_actorselector").on('submit', function(e) {
var data = {
for_role: $("#for_role").val(),
name : $("#actual_actor_name").val(),
id : $("#actual_actor_id").val()
};
pcal_pentry_edit_manager.add_involved(data);
e.preventDefault();
});