FIX: fixed #25

Replaced MiniSearchBar with search2
This commit is contained in:
Keanu D?lle 2022-03-16 12:37:16 +01:00
parent ab80df92be
commit 6e3e61add6
3 changed files with 47 additions and 10 deletions

View File

@ -64,13 +64,15 @@
<div class="form-group row"> <div class="form-group row">
<label for="edit_event_search-searchbar" class="col-sm-3 col-form-label">Einsatzverantwortlich</label> <label for="edit_event_search-searchbar" class="col-sm-3 col-form-label">Einsatzverantwortlich</label>
<div class="col-sm-9"> <div class="col-sm-9">
{{> search base="edit_event_search" type="member"}} {{search2 type="member" classname="search_member_responsible" value_id=member_responsible
value=member_responsible_name}}
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label for="edit_event_organiser_search-searchbar" class="col-sm-3 col-form-label">Veranstalter</label> <label for="edit_event_organiser_search-searchbar" class="col-sm-3 col-form-label">Veranstalter</label>
<div class="col-sm-9"> <div class="col-sm-9">
{{> search base="edit_event_organiser_search" type="organiser"}} {{search2 type="organiser" classname="search_organiser" value_id=organiser_id
value=organiser_name}}
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">

View File

@ -251,8 +251,11 @@ EventBilling = (function () {
let eu_instances = {}; let eu_instances = {};
let load_local_templates = async function () { let load_local_templates = async function () {
const eu_instance_card = $.get("/templates/eb_eu_instance_card.hbs"); const eu_instance_card = $.get("/templates/eb_eu_instance_card.hbs");
await Promise.all([eu_instance_card]).then(function (res) { const new_position_instance = $.get("/templates/eb_eu_instance_card_new_position_instance.hbs");
await Promise.all([eu_instance_card, new_position_instance]).then(function (res) {
templates.eu_instance_card = Handlebars.compile(res[0]); templates.eu_instance_card = Handlebars.compile(res[0]);
templates.new_position_instance = Handlebars.compile(res[1]);
Handlebars.registerPartial('new_position_instance', templates.new_position_instance);
}); });
}; };
let setup = async function () { let setup = async function () {
@ -275,7 +278,6 @@ EventBilling = (function () {
} }
$(".eu_instances_container").append(templates.eu_instance_card(instance)); $(".eu_instances_container").append(templates.eu_instance_card(instance));
console.log(instance);
} }
@ -285,16 +287,31 @@ EventBilling = (function () {
//Apply remove/restore position_instance button listeners //Apply remove/restore position_instance button listeners
$(".remove_position_instance_button").off("click").on("click", delete_position_btn); $(".remove_position_instance_button").off("click").on("click", delete_position_btn);
$(".remove_new_position_instance_button").off("click").on("click", function () {
$(this).closest(".card").remove();
});
$(".restore_position_instance_button").off("click").on("click", restore_position_btn); $(".restore_position_instance_button").off("click").on("click", restore_position_btn);
$(".approve_times_btn").off("click").on("click", approve_times); $(".approve_times_btn").off("click").on("click", approve_times);
$(".qsf").off("change").on("change", function () { //Show save button if instance changed $(".qsf").off("change").on("change", function () { //Show save button if instance changed
$(this).closest(".position_instance").addClass("modified"); $(this).closest(".position_instance").addClass("modified");
$(this).closest(".instance").find(".eb_eu_instance_save_btn").show(); $(this).closest(".instance").find(".eb_eu_instance_save_btn").show();
}) });
let add_new_position_instance_listener = function(){
$(this).closest(".new_position_instances").append(templates.new_position_instance);
$(".new_position_instance").off("click");
$(".new_position_instance:last-child").on("click", add_new_position_instance_listener);
$(".remove_new_position_instance_button").off("click").on("click", function () {
$(this).closest(".card").remove();
$(".new_position_instance").off("click");
$(".new_position_instance:last-child").on("click", add_new_position_instance_listener);
});
}
$(".new_position_instance:last-child").off("click").on("click", function(){
add_new_position_instance_listener(this);
});
$(".remove_new_position_instance_button").off("click").on("click", function () {
$(this).closest(".card").remove();
});
}; };
let save = async function () { let save = async function () {
//TODO: use global save_pending_requests() //TODO: use global save_pending_requests()
@ -381,7 +398,8 @@ EventBilling = (function () {
} }
if (!error_occured) { if (!error_occured) {
save_btn.hide(); save_btn.hide();
await setup(); parent.find(".marked-for-delete").remove();
parent.find(".modified").removeClass("modified");
} }
}, function () { }, function () {
//Failure //Failure
@ -442,7 +460,9 @@ EventBilling = (function () {
} }
}); });
if (is_ok(res)) { if (is_ok(res)) {
window.location.href = "/portal/eb/personnel_billing?event_id=" + event.entity_id; setTimeout(function(){
window.location.href = "/portal/eb/personnel_billing?event_id=" + event.entity_id;
}, 500);
} else { } else {
throw res; throw res;
} }

View File

@ -162,6 +162,21 @@ Search2 = (function () {
let res = res_map.get($(this).data("entity-id")); let res = res_map.get($(this).data("entity-id"));
setValue(this, res.entity_id, res.identifier+" ("+res.numberplate+")"); setValue(this, res.entity_id, res.identifier+" ("+res.numberplate+")");
}; };
}else if (type === "organiser") {
options.url = "/api/event_organisers/";
options.get_data = {
"q": searchbar.val()
};
options.res_handler = function (data) {
$.each(data.organisers, function (index, value) {
res_map.set(value.entity_id, value);
overlay_list.append("<span tabindex=\"0\" class=\"search2-result-overlay-list-entry\" data-entity-id=\"" + value.entity_id + "\"><li class='list-group-item'><span class=\"badge badge-secondary\">Hinzufügen:</span> " + value.company + " : "+value.firstname + " " + value.lastname +"</li></span>");
});
};
options.overlay_click_handler = function () {
let res = res_map.get($(this).data("entity-id"));
setValue(this, res.entity_id, res.company+" "+res.firstname+" "+res.lastname);
};
}else { }else {
console.error("Unknown search type: " + type); console.error("Unknown search type: " + type);
return; return;