Speakers form is now working pretty well. Including delete.
This commit is contained in:
@@ -438,7 +438,7 @@ function handle_url_and_message(name: string, value: null|string) {
|
||||
window.parent.postMessage(message, "*");
|
||||
} else {
|
||||
url.searchParams.delete(name);
|
||||
// history.pushState({}, '', url);
|
||||
history.pushState({}, '', url);
|
||||
|
||||
// console.log('url:', url);
|
||||
// pushState({}, '', url.search);
|
||||
|
||||
@@ -822,7 +822,7 @@ export let get_ae_obj_li_for_obj_id_crud = async function get_ae_obj_li_for_obj_
|
||||
|
||||
|
||||
// Updated 2023-07-24
|
||||
export let create_ae_obj_crud = async function create_ae_obj_crud({api_cfg, obj_type, field_name=null, field_value=null, fields={}, key, jwt=null, headers={}, params={}, data={}, return_obj=false, return_meta=false, log_lvl=0}) {
|
||||
export let create_ae_obj_crud = async function create_ae_obj_crud({api_cfg, obj_type, field_name=null, field_value=null, fields={}, key, jwt=null, headers={}, params={}, data={}, return_obj=false, obj_v_name='', return_meta=false, log_lvl=0}) {
|
||||
if (log_lvl) {
|
||||
console.log('*** create_ae_obj_crud() ***');
|
||||
}
|
||||
@@ -831,6 +831,12 @@ export let create_ae_obj_crud = async function create_ae_obj_crud({api_cfg, obj_
|
||||
data['jwt'] = jwt;
|
||||
// NOTE: The key and or JWT should be in the header of the DELETE, GET, PATCH, POST
|
||||
|
||||
// This obj_v_name is the view name to use when returning data. Do not prefix it with v_. This is checked and done automatically by the API.
|
||||
// This is not currently being exposed to other areas of the code. It is only used here. For now?
|
||||
if (obj_v_name) {
|
||||
obj_v_name = '';
|
||||
}
|
||||
|
||||
let endpoint = '';
|
||||
if (obj_type == 'account') {
|
||||
endpoint = `/crud/account`;
|
||||
@@ -864,6 +870,7 @@ export let create_ae_obj_crud = async function create_ae_obj_crud({api_cfg, obj_
|
||||
endpoint = `/crud/event/presentation`;
|
||||
} else if (obj_type == 'event_presenter') {
|
||||
endpoint = `/crud/event/presenter`;
|
||||
// obj_v_name = 'event_presenter_soft_links';
|
||||
} else if (obj_type == 'event_session') {
|
||||
endpoint = `/crud/event/session`;
|
||||
} else if (obj_type == 'event_track') {
|
||||
@@ -906,6 +913,11 @@ export let create_ae_obj_crud = async function create_ae_obj_crud({api_cfg, obj_
|
||||
|
||||
if (return_obj) {
|
||||
params['return_obj'] = true;
|
||||
|
||||
// Pass along the view name to use for returning data.
|
||||
if (obj_v_name) {
|
||||
params['obj_v_name'] = obj_v_name;
|
||||
}
|
||||
} else {
|
||||
params['return_obj'] = false; // NOTE: This is needed because the current default on the API is to return the object.
|
||||
}
|
||||
@@ -955,7 +967,7 @@ export let create_ae_obj_crud = async function create_ae_obj_crud({api_cfg, obj_
|
||||
|
||||
|
||||
// Updated 2023-06-28
|
||||
export let update_ae_obj_id_crud = async function update_ae_obj_id_crud({api_cfg, obj_type, obj_id, field_name, field_value, fields={}, key, jwt=null, headers={}, params={}, data={}, return_obj=false, return_meta=false, log_lvl=0}) {
|
||||
export let update_ae_obj_id_crud = async function update_ae_obj_id_crud({api_cfg, obj_type, obj_id, field_name, field_value, fields={}, key, jwt=null, headers={}, params={}, data={}, return_obj=false, obj_v_name='', return_meta=false, log_lvl=0}) {
|
||||
if (log_lvl) {
|
||||
console.log('*** update_ae_obj_id_crud() ***');
|
||||
}
|
||||
@@ -964,6 +976,12 @@ export let update_ae_obj_id_crud = async function update_ae_obj_id_crud({api_cfg
|
||||
data['jwt'] = jwt;
|
||||
// NOTE: The key and or JWT should be in the header of the DELETE, GET, PATCH, POST
|
||||
|
||||
// This obj_v_name is the view name to use when returning data. Do not prefix it with v_. This is checked and done automatically by the API.
|
||||
// This is not currently being exposed to other areas of the code. It is only used here. For now?
|
||||
if (obj_v_name) {
|
||||
obj_v_name = '';
|
||||
}
|
||||
|
||||
let endpoint = '';
|
||||
if (obj_type == 'account') {
|
||||
endpoint = `/crud/account/${obj_id}`;
|
||||
@@ -997,6 +1015,7 @@ export let update_ae_obj_id_crud = async function update_ae_obj_id_crud({api_cfg
|
||||
endpoint = `/crud/event/presentation/${obj_id}`;
|
||||
} else if (obj_type == 'event_presenter') {
|
||||
endpoint = `/crud/event/presenter/${obj_id}`;
|
||||
// obj_v_name = 'event_presenter_soft_links';
|
||||
} else if (obj_type == 'event_session') {
|
||||
endpoint = `/crud/event/session/${obj_id}`;
|
||||
} else if (obj_type == 'event_track') {
|
||||
@@ -1039,6 +1058,13 @@ export let update_ae_obj_id_crud = async function update_ae_obj_id_crud({api_cfg
|
||||
|
||||
if (return_obj) {
|
||||
params['return_obj'] = true;
|
||||
|
||||
// Pass along the view name to use for returning data.
|
||||
if (obj_v_name) {
|
||||
params['obj_v_name'] = obj_v_name;
|
||||
}
|
||||
} else {
|
||||
params['return_obj'] = false; // NOTE: This is needed because the current default on the API is to return the object.
|
||||
}
|
||||
|
||||
if (field_name) {
|
||||
|
||||
@@ -172,15 +172,15 @@ if ($ae_loc.mod.events.event_id) {
|
||||
// $slct_trigger = 'load__event_presenter_obj_li';
|
||||
// }
|
||||
|
||||
// $: if ($slct_trigger == 'load__event_presenter_obj_li' && $slct.event_id) {
|
||||
// console.log(`load__event_presenter_obj_li event_id: ${$slct.event_id}`);
|
||||
$: if ($slct_trigger == 'load__event_presenter_obj_li' && $slct.event_id) {
|
||||
console.log(`load__event_presenter_obj_li event_id: ${$slct.event_id}`);
|
||||
|
||||
// $slct_trigger = null;
|
||||
$slct_trigger = null;
|
||||
|
||||
// // $slct.event_id = $ae_loc.event_id;
|
||||
// // handle_load_ae_obj_id__event({event_id: $slct.event_id, try_cache: false});
|
||||
// handle_load_ae_obj_li__event_presenter({event_id: $slct.event_id, try_cache: false});
|
||||
// }
|
||||
// $slct.event_id = $ae_loc.event_id;
|
||||
// handle_load_ae_obj_id__event({event_id: $slct.event_id, try_cache: false});
|
||||
handle_load_ae_obj_li__event_presenter({event_id: $slct.event_id, try_cache: false});
|
||||
}
|
||||
|
||||
async function handle_load_ae_obj_li__event_presenter({event_id, try_cache=true}) {
|
||||
console.log('*** handle_load_ae_obj_li__event_presenter() ***');
|
||||
@@ -281,6 +281,69 @@ async function handle_load_ae_obj_id__event_presenter({event_presenter_id, try_c
|
||||
return ae_event_presenter_obj_get_promise;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// // let delete_event_presenter_obj_promise: Promise<any>;
|
||||
// let delete_event_presenter_obj_promise;
|
||||
// async function handle_delete_event_presenter_obj({event_presenter_id, hosted_file_id=null, method='delete'}) {
|
||||
// console.log('*** handle_delete_event_presenter_obj() ***');
|
||||
|
||||
// // if (hosted_file_id) {
|
||||
// // let delete_hosted_file_obj_promise = api.delete_hosted_file({
|
||||
// // api_cfg: $ae_api,
|
||||
// // hosted_file_id: hosted_file_id,
|
||||
// // link_to_type: 'event_presenter',
|
||||
// // link_to_id: event_presenter_id,
|
||||
// // rm_orphan: true,
|
||||
// // // params: params,
|
||||
// // key: $ae_api.api_crud_super_key,
|
||||
// // log_lvl: 2
|
||||
// // })
|
||||
// // .then(function (hosted_file_obj_delete_result) {
|
||||
// // if (hosted_file_obj_delete_result) {
|
||||
// // // console.log(`Result:`, hosted_file_obj_delete_result);
|
||||
|
||||
// // dispatch(
|
||||
// // 'deleted__hosted_file_obj',
|
||||
// // {
|
||||
// // hosted_file_id: hosted_file_id,
|
||||
// // }
|
||||
// // );
|
||||
// // }
|
||||
// // })
|
||||
// // .catch(function (error) {
|
||||
// // console.log('The result was null or false when trying to delete.', error);
|
||||
// // });
|
||||
// // }
|
||||
|
||||
// delete_event_presenter_obj_promise = api.delete_ae_obj_id_crud({
|
||||
// api_cfg: $ae_api,
|
||||
// obj_type: 'event_presenter',
|
||||
// obj_id: event_presenter_id,
|
||||
// method: method,
|
||||
// // params: params,
|
||||
// key: $ae_api.api_crud_super_key,
|
||||
// log_lvl: 0
|
||||
// })
|
||||
// .then(function (event_presenter_obj_delete_result) {
|
||||
// if (event_presenter_obj_delete_result) {
|
||||
// // console.log(`Result:`, event_presenter_obj_delete_result);
|
||||
|
||||
// }
|
||||
// })
|
||||
// .catch(function (error) {
|
||||
// console.log('The result was null or false when trying to delete.', error);
|
||||
// });
|
||||
|
||||
// return delete_event_presenter_obj_promise;
|
||||
// }
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
@@ -237,23 +237,43 @@ async function handle_submit_form(event) {
|
||||
data: event_presenter_do
|
||||
});
|
||||
console.log(ae_promises.create__event_presenter);
|
||||
$ae_loc.mod.events.presenter_link = `${$ae_loc.site_domain}/events_speakers/load?event_presenter_id=${$slct.event_presenter_id}`;
|
||||
console.log('Speaker link:', $ae_loc.mod.events.presenter_link);
|
||||
if (ae_promises.create__event_presenter.event_presenter_id_random) {
|
||||
$slct.event_presenter_id = ae_promises.create__event_presenter.event_presenter_id_random;
|
||||
$slct.event_presenter_obj = ae_promises.create__event_presenter;
|
||||
|
||||
$ae_loc.mod.events.presenter_link = `${$ae_loc.site_domain}/events_speakers/load?event_presenter_id=${$slct.event_presenter_id}`;
|
||||
console.log('Speaker link:', $ae_loc.mod.events.presenter_link);
|
||||
|
||||
// This should no longer be needed! Will add a check later to trigger this or a second create if something does not look correct.
|
||||
// $slct_trigger = 'load__event_presenter_obj';
|
||||
|
||||
$ae_sess.mod.events.submit_status = 'created';
|
||||
} else {
|
||||
console.log('No event_presenter_id_random was found. Something may have gone wrong.');
|
||||
$ae_sess.mod.events.submit_status = 'created_unknown';
|
||||
}
|
||||
$ae_loc.mod.events.disable_submit__event_presenter_obj = false;
|
||||
$ae_sess.mod.events.submit_status = 'created';
|
||||
|
||||
$slct_trigger = 'load__event_presenter_obj';
|
||||
} else {
|
||||
ae_promises.update__event_presenter_obj = await handle_update__event_presenter({
|
||||
obj_type: 'event_presenter',
|
||||
obj_id: $slct.event_presenter_id,
|
||||
data: event_presenter_do
|
||||
});
|
||||
$ae_loc.mod.events.disable_submit__event_presenter_obj = false;
|
||||
$ae_sess.mod.events.submit_status = 'updated';
|
||||
console.log(ae_promises.update__event_presenter_obj);
|
||||
if (ae_promises.update__event_presenter_obj.event_presenter_id_random) {
|
||||
$slct.event_presenter_obj = ae_promises.update__event_presenter_obj;
|
||||
|
||||
$slct_trigger = 'load__event_presenter_obj';
|
||||
// $slct_trigger = 'load__event_presenter_obj';
|
||||
$ae_sess.mod.events.submit_status = 'updated';
|
||||
} else {
|
||||
console.log('No event_presenter_id_random was found. Something may have gone wrong.');
|
||||
$ae_sess.mod.events.submit_status = 'updated_unknown';
|
||||
|
||||
console.log('Trigger a reload of the object.');
|
||||
$slct_trigger = 'load__event_presenter_obj';
|
||||
}
|
||||
$ae_loc.mod.events.disable_submit__event_presenter_obj = false;
|
||||
}
|
||||
|
||||
if ($slct.event_presenter_id) {
|
||||
@@ -266,6 +286,8 @@ async function handle_submit_form(event) {
|
||||
} else if ($store_current_tab == 'files' && $slct.event_presenter_id) {
|
||||
$store_current_tab = 'summary';
|
||||
}
|
||||
|
||||
$slct_trigger = 'load__event_presenter_obj_li';
|
||||
} else {
|
||||
console.log('No obj ID found!');
|
||||
}
|
||||
@@ -318,8 +340,20 @@ async function handle_submit_form_files(event) {
|
||||
obj_id: $slct.event_presenter_id,
|
||||
data: event_presenter_do
|
||||
});
|
||||
console.log(ae_promises.update__event_presenter_obj);
|
||||
if (ae_promises.update__event_presenter_obj.event_presenter_id_random) {
|
||||
$slct.event_presenter_obj = ae_promises.update__event_presenter_obj;
|
||||
|
||||
// $slct_trigger = 'load__event_presenter_obj';
|
||||
$ae_sess.mod.events.submit_status = 'updated';
|
||||
} else {
|
||||
console.log('No event_presenter_id_random was found. Something may have gone wrong.');
|
||||
$ae_sess.mod.events.submit_status = 'updated_unknown';
|
||||
|
||||
console.log('Trigger a reload of the object.');
|
||||
$slct_trigger = 'load__event_presenter_obj';
|
||||
}
|
||||
$ae_sess.mod.events.disable_submit__event_presenter_obj = false;
|
||||
$ae_sess.mod.events.submit_status = 'updated';
|
||||
|
||||
if ($store_current_tab == 'files' && $slct.event_presenter_id) {
|
||||
$store_current_tab = 'summary';
|
||||
@@ -370,6 +404,7 @@ async function handle_create__event_presenter({
|
||||
obj_type: obj_type,
|
||||
fields: data,
|
||||
key: $ae_api.api_crud_super_key,
|
||||
return_obj: true,
|
||||
log_lvl: 2
|
||||
})
|
||||
.then(async function (create__obj_result) {
|
||||
@@ -402,6 +437,7 @@ async function handle_update__event_presenter({
|
||||
obj_id: obj_id,
|
||||
fields: data,
|
||||
key: $ae_api.api_crud_super_key,
|
||||
return_obj: true,
|
||||
log_lvl: 2
|
||||
})
|
||||
.then(async function (update__obj_result) {
|
||||
@@ -449,6 +485,66 @@ function send_summary_email() {
|
||||
body_html: body_html,
|
||||
});
|
||||
}
|
||||
|
||||
// let delete_event_presenter_obj_promise: Promise<any>;
|
||||
let delete_event_presenter_obj_promise;
|
||||
async function handle_delete_event_presenter_obj({event_presenter_id, hosted_file_id=null, method='delete'}) {
|
||||
console.log('*** handle_delete_event_presenter_obj() ***');
|
||||
|
||||
if (hosted_file_id) {
|
||||
// let delete_hosted_file_obj_promise = api.delete_hosted_file({
|
||||
// api_cfg: $ae_api,
|
||||
// hosted_file_id: hosted_file_id,
|
||||
// link_to_type: 'event_presenter',
|
||||
// link_to_id: event_presenter_id,
|
||||
// rm_orphan: true,
|
||||
// // params: params,
|
||||
// key: $ae_api.api_crud_super_key,
|
||||
// log_lvl: 2
|
||||
// })
|
||||
// .then(function (hosted_file_obj_delete_result) {
|
||||
// if (hosted_file_obj_delete_result) {
|
||||
// // console.log(`Result:`, hosted_file_obj_delete_result);
|
||||
|
||||
// dispatch(
|
||||
// 'deleted__hosted_file_obj',
|
||||
// {
|
||||
// hosted_file_id: hosted_file_id,
|
||||
// }
|
||||
// );
|
||||
// }
|
||||
// })
|
||||
// .catch(function (error) {
|
||||
// console.log('The result was null or false when trying to delete.', error);
|
||||
// });
|
||||
}
|
||||
|
||||
delete_event_presenter_obj_promise = await api.delete_ae_obj_id_crud({
|
||||
api_cfg: $ae_api,
|
||||
obj_type: 'event_presenter',
|
||||
obj_id: event_presenter_id,
|
||||
method: method,
|
||||
// params: params,
|
||||
key: $ae_api.api_crud_super_key,
|
||||
log_lvl: 2
|
||||
})
|
||||
.then(function (event_presenter_obj_delete_result) {
|
||||
if (event_presenter_obj_delete_result) {
|
||||
// console.log(`Result:`, event_presenter_obj_delete_result);
|
||||
|
||||
}
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.log('The result was null or false when trying to delete.', error);
|
||||
});
|
||||
|
||||
console.log('Trigger a reload of the object list.');
|
||||
$slct_trigger = 'load__event_presenter_obj_li';
|
||||
|
||||
parent.onClose();
|
||||
|
||||
return delete_event_presenter_obj_promise;
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- @component This is the Event Presenters modal edit form. -->
|
||||
@@ -675,7 +771,7 @@ function send_summary_email() {
|
||||
ds_code="events_speakers__form__waiver_html"
|
||||
ds_type="html"
|
||||
for_type="devent"
|
||||
for_id={$slct.event_id}
|
||||
for_id={$slct.event_presenter_id}
|
||||
ds_name="Default: Events Speaker Form - Waiver HTML"
|
||||
display="block"
|
||||
class_li=""
|
||||
@@ -935,20 +1031,52 @@ function send_summary_email() {
|
||||
{#if $slct.event_presenter_id}
|
||||
<!-- {#if $ae_loc.trusted_access} -->
|
||||
<span class="ae_actions">
|
||||
|
||||
{#if $slct.event_presenter_id}
|
||||
{#if $ae_loc.administrator_access}
|
||||
<button
|
||||
on:click={() => {
|
||||
if (!confirm('CURRENTLY DISABLED: Are you sure you want to delete this presenter?')) {return false;}
|
||||
// handle_delete_event_presenter_obj({event_presenter_id: $slct.event_presenter_id, method: 'delete'});
|
||||
if (!confirm('Are you sure you want to delete this speaker?')) {return false;}
|
||||
handle_delete_event_presenter_obj({event_presenter_id: $slct.event_presenter_id, method: 'delete'});
|
||||
|
||||
// $slct.event_presenter_id = null;
|
||||
// $slct.event_presenter_obj = {};
|
||||
$slct.event_presenter_id = null;
|
||||
$slct.event_presenter_obj = {};
|
||||
}}
|
||||
class="btn variant-glass-warning mx-1"
|
||||
class:hidden={!$ae_loc.administrator_access}
|
||||
title="CURRENTLY DISABLED: Delete record permanently"
|
||||
class="btn variant-glass-warning mx-1 text-xs" type="button"
|
||||
title="Delete record permanently"
|
||||
>
|
||||
<span class="fas fa-minus mx-1"></span> Delete
|
||||
</button>
|
||||
{:else if $ae_loc.trusted_access}
|
||||
<button
|
||||
on:click={() => {
|
||||
if (!confirm('Are you sure you want to disable this speaker?')) {return false;}
|
||||
handle_delete_event_presenter_obj({event_presenter_id: $slct.event_presenter_id, method: 'disable'});
|
||||
|
||||
$slct.event_presenter_id = null;
|
||||
$slct.event_presenter_obj = {};
|
||||
}}
|
||||
class="btn variant-glass-warning mx-1 text-xs" type="button"
|
||||
title="Disable record to delete"
|
||||
>
|
||||
<span class="fas fa-minus mx-1"></span> Delete
|
||||
</button>
|
||||
{:else}
|
||||
<button
|
||||
on:click={() => {
|
||||
if (!confirm('Are you sure you want to hide this speaker?')) {return false;}
|
||||
handle_delete_event_presenter_obj({event_presenter_id: $slct.event_presenter_id, method: 'hide'});
|
||||
|
||||
$slct.event_presenter_id = null;
|
||||
$slct.event_presenter_obj = {};
|
||||
}}
|
||||
class="btn variant-glass-warning mx-1 text-xs" type="button"
|
||||
title="Hide record to delete"
|
||||
>
|
||||
<span class="fas fa-comment-slash mx-1"></span> Delete
|
||||
</button>
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
<button
|
||||
class="btn variant-soft-secondary"
|
||||
|
||||
Reference in New Issue
Block a user