File "wpda_admin.js"
Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/wp-data-access/assets/js/wpda_admin.js
File size: 25.83 KB
MIME-type: text/plain
Charset: utf-8
function wpda_show_table_actions( schema_name, table_name, rownum, wpnonce, dbo_type, loading ) {
jQuery('#wpda_admin_menu_actions_' + rownum).toggle();
wpda_toggle_row_actions(rownum);
if (jQuery('#wpda_admin_menu_actions_' + rownum).html()===loading) {
url = location.pathname + '?action=wpda_show_table_actions';
jQuery.ajax({
method: 'POST',
url: url,
data: {
wpdaschema_name: schema_name,
table_name: table_name,
_wpnonce: wpnonce,
dbo_type: dbo_type,
rownum: rownum
}
}).done(
function(msg) {
jQuery('#wpda_admin_menu_actions_' + rownum).html(msg);
}
);
}
}
function wpda_toggle_row_actions( rownum ) {
if (jQuery('#wpda_admin_menu_actions_' + rownum).is(":visible")) {
jQuery("#rownum_" + rownum + " td div").removeClass("row-actions");
} else {
jQuery("#rownum_" + rownum + " td div").addClass("row-actions");
}
}
function wpda_list_table_favourite( schema_name, table_name ) {
if (jQuery('#span_favourites_'+ table_name).hasClass('dashicons-star-empty')) {
action = 'wpda_add_favourite';
} else {
action = 'wpda_rem_favourite';
}
url = location.pathname + '?action=' + action;
jQuery.ajax({
method: 'POST',
url: url,
data: {
wpdaschema_name: schema_name,
table_name: table_name
}
}).done(
function (msg) {
if (msg === '1') {
if (jQuery('#span_favourites_' + table_name).hasClass('dashicons-star-empty')) {
jQuery('#span_favourites_' + table_name)
.removeClass('dashicons-star-empty')
.addClass('dashicons-star-filled')
.prop('title', 'Remove from favourites');
} else {
jQuery('#span_favourites_' + table_name)
.removeClass('dashicons-star-filled')
.addClass('dashicons-star-empty')
.prop('title', 'Add to favourites');
}
if (jQuery('#wpda_main_favourites_list').val()!=='') {
jQuery("#wpda_main_form :input[name='action']").val('-1');
jQuery("#wpda_main_form :input[name='action2']").val('-1');
jQuery('#wpda_main_form').submit();
}
} else {
alert('Adding to favourites failed!');
}
}
);
}
function wpda_main_export_start() {
jQuery("#wpda_main_export_form").submit();
jQuery("#wpda_row_export_anchor").empty();
return false;
}
function wpda_main_export(schemaName, wpnonce, selectedRows) {
jQuery("#wpda_main_export_form__schema_name").val(schemaName);
jQuery("#wpda_main_export_form__wpnonce").val(wpnonce);
rows = JSON.parse(selectedRows);
for (var i=0; i<rows.length; i++) {
jQuery("#wpda_main_export_form").append("<input type='hidden' name='table_names[]' value='" + rows[i] + "' />");
}
jQuery("#wpda_row_export_anchor").append(
"<button class='button button-primary wpda_row_export_button' onclick='return wpda_main_export_start();'>Download export</button>"
);
}
function wpda_table_export(schemaName, tableNames, wpnonce, formatType, includeTableSettings) {
jQuery("#wpda_table_export_form__schema_name").val(schemaName);
jQuery("#wpda_table_export_form__table_names").val(tableNames);
jQuery("#wpda_table_export_form__format_type").val(formatType);
jQuery("#wpda_table_export_form__wpnonce").val(wpnonce);
jQuery("#wpda_table_export_form__include_table_settings").val(includeTableSettings);
jQuery("#wpda_table_export_form").submit();
}
function wpda_row_export_start() {
jQuery("#wpda_row_export_form").submit();
jQuery("#wpda_row_export_anchor").empty();
return false;
}
function wpda_row_export(pid, schemaName, tableNames, wpnonce, formatType, mysqlSet, showCreate, showComments, selectedRows) {
jQuery("#wpda_row_export_form__pid").val(pid);
jQuery("#wpda_row_export_form__schema_name").val(schemaName);
jQuery("#wpda_row_export_form__table_names").val(tableNames);
jQuery("#wpda_row_export_form__mysql_set").val(mysqlSet);
jQuery("#wpda_row_export_form__show_create").val(showCreate);
jQuery("#wpda_row_export_form__show_comments").val(showComments);
jQuery("#wpda_row_export_form__format_type").val(formatType);
jQuery("#wpda_row_export_form__wpnonce").val(wpnonce);
rows = JSON.parse(selectedRows);
for (var column in rows) {
for (var i=0; i<rows[column].length; i++) {
jQuery("#wpda_row_export_form").append("<input type='hidden' name='" + column + "[]' value='" + rows[column][i] + "' />");
}
}
jQuery("#wpda_row_export_anchor").append(
"<button class='button button-primary wpda_row_export_button' onclick='return wpda_row_export_start();'>Download " + (formatType==='' ? 'SQL' : formatType) + " export</button>"
);
}
function wpda_show_notice( value ) {
if (
value==='bulk-delete' ||
value==='bulk-drop' ||
value==='bulk-truncate'
) {
return confirm('You are about to permanently delete these items from your site.\nThis action cannot be undone.\n\'Cancel\' to stop, \'OK\' to delete.');
}
}
function wpda_action_button() {
action1 = jQuery("#wpda_main_form :input[name='action']").val();
if (action1!=="-1") {
return wpda_show_notice(action1);
}
action2 = jQuery("#wpda_main_form :input[name='action2']").val();
if (action2!=="-1") {
return wpda_show_notice(action2);
}
return true;
}
// Source: https://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery
var entityMap = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": ''',
'/': '/',
'`': '`',
'=': '='
};
// Source: https://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery
function escapeHtml(string) {
return String(string).replace(/[&<>"'`=\/]/g, function (s) {
return entityMap[s];
});
}
function submit_table_settings(rownum, schema_name, table_name) {
table_settings = {};
if (jQuery("input:radio[name ='" + table_name + "_row_count_estimate']:checked").val() === "true") {
table_settings['row_count_estimate'] = true;
} else if (jQuery("input:radio[name ='" + table_name + "_row_count_estimate']:checked").val() === "false") {
table_settings['row_count_estimate'] = false;
} else {
table_settings['row_count_estimate'] = null;
}
table_settings['row_count_estimate_value'] = jQuery("input:radio[name ='" + table_name + "_row_count_estimated_value']:checked").val();
table_settings['row_count_estimate_value_hard'] = jQuery("#" + table_name + "_row_count_estimated_value_hard").val();
table_settings['query_buffer_size'] =
jQuery('#' + table_name + '_query_buffer_size').val();
table_settings['row_level_security'] =
jQuery('#' + table_name + '_row_level_security').is(':checked') ? 'true' : 'false';
table_settings['hyperlink_definition'] =
jQuery('#' + table_name + 'table_top_setting_hyperlink_definition_json').is(':checked') ? 'json' : 'text';
jsonData = {};
jsonData['request_type'] = 'table_settings';
jsonData['table_settings'] = table_settings;
jsonData['unused'] = jQuery('#wpda_' + rownum + '_sql_dml').val();
// console.log(jsonData);
// console.log(JSON.stringify(jsonData));
// Submit
wpda_rest_api(
'save-settings',
{
action: 'table_settings',
dbs: schema_name,
tbl: table_name,
settings: JSON.stringify(jsonData),
},
(function(data) {
submitSettingsCallbackOk(data, rownum);
}),
submitSettingsCallbackError
);
return false;
}
function submitSettingsCallbackOk(response, rownum) {
if (response.code!==undefined && response.message!==undefined) {
switch(response.code) {
case "ok":
jQuery("#wpda_" + rownum + "_sql_dml").val("UPDATE");
jQuery.notify(response.message, "success");
break;
case "error":
jQuery.notify(response.message, "error");
break;
default:
jQuery.notify("Application error! Please contact the plugin development team.", "error");
}
} else {
submitSettingsCallbackError(response);
}
}
function submitSettingsCallbackError(response) {
if (response.code!==undefined && response.message!==undefined) {
switch(response.code) {
case "error":
jQuery.notify(response.message, "error");
break;
default:
jQuery.notify("Application error! Please contact the plugin development team.", "error");
}
} else {
jQuery.notify("Application error! Please contact the plugin development team.", "error");
}
}
function submit_column_settings(rownum, schema_name, table_name ) {
custom_settings = {};
list_labels = {};
form_labels = {};
column_media = {};
unused = {};
jQuery('#wpda_table_settings_' + rownum + ' .wpda_table_setting_item').each(function () {
element_id = jQuery(this).attr('id');
element_value = jQuery(this).val();
element_type = jQuery(this).attr('type');
is_custom_element = false;
for (i=0; i<custom_column_settings.length; i++) {
if (element_id.startsWith(custom_column_settings[i])) {
element_name = element_id.substr(custom_column_settings[i].length);
if (element_type==="checkbox") {
element_value = jQuery(this).is(':checked');
}
custom_settings[element_id] = element_value;
is_custom_element = true;
}
}
if (!is_custom_element) {
if (element_id.startsWith("list_label_")) {
element_name = element_id.substr(11);
list_labels[element_name] = element_value;
} else if (element_id.startsWith("form_label_")) {
element_name = element_id.substr(11);
form_labels[element_name] = element_value;
} else if (element_id.startsWith("column_media_")) {
element_name = element_id.substr(13);
element_old_value = jQuery('#column_media_' + element_name + '_old').val();
if (element_value !== element_old_value) {
media_dml = jQuery('#column_media_' + element_name + '_dml').val();
column_media[element_name] = {'value': element_value, 'dml': media_dml};
}
}
}
});
unused["sql_dml"] = jQuery('#wpda_' + rownum + '_sql_dml').val();
jsonData = {};
jsonData['request_type'] = 'column_settings';
jsonData['custom_settings'] = custom_settings;
jsonData['list_labels'] = list_labels;
jsonData['form_labels'] = form_labels;
jsonData['column_media'] = column_media;
jsonData['unused'] = unused;
// console.log(jsonData);
// console.log(JSON.stringify(jsonData));
// Submit
wpda_rest_api(
'save-settings',
{
action: 'column_settings',
dbs: schema_name,
tbl: table_name,
settings: JSON.stringify(jsonData),
},
(function(data) {
submitSettingsCallbackOk(data, rownum);
}),
submitSettingsCallbackError
);
return false;
}
function submit_hyperlinks(rownum, schema_name, table_name) {
hyperlinks = [];
unused = {};
isvalid = true;
jQuery("#wpda_" + rownum + "_add_hyperlink_body tr").each(function() {
let hyperlink_label, hyperlink_list, hyperlink_form, hyperlink_target, hyperlink_html;
jQuery(this).find("td .wpda_action_font").each(function() {
switch(jQuery(this).data("id")) {
case "hyperlink_label":
hyperlink_label = jQuery(this).val();
break;
case "hyperlink_list":
hyperlink_list = jQuery(this).is(':checked');
break;
case "hyperlink_form":
hyperlink_form = jQuery(this).is(':checked');
break;
case "hyperlink_target":
hyperlink_target = jQuery(this).is(':checked');
break;
case "hyperlink_html":
hyperlink_html = jQuery(this).val();
break;
}
});
if (hyperlink_label===""||hyperlink_html==="") {
alert('Hyperlink label and HTML must be entered');
isvalid = false;
} else {
let hyperlink_item = {
'hyperlink_label': hyperlink_label,
'hyperlink_list': hyperlink_list,
'hyperlink_form': hyperlink_form,
'hyperlink_target': hyperlink_target,
'hyperlink_html': escapeHtml(hyperlink_html)
};
hyperlinks.push(hyperlink_item);
}
});
if (!isvalid) {
return false;
}
unused["sql_dml"] = jQuery('#wpda_' + rownum + '_sql_dml').val();
jsonData = {};
jsonData['request_type'] = 'column_settings';
jsonData['hyperlinks'] = hyperlinks;
jsonData['unused'] = unused;
// console.log(jsonData);
// console.log(JSON.stringify(jsonData));
// Submit
wpda_rest_api(
'save-settings',
{
action: 'column_settings',
dbs: schema_name,
tbl: table_name,
settings: JSON.stringify(jsonData),
},
(function(data) {
submitSettingsCallbackOk(data, rownum);
}),
submitSettingsCallbackError
);
return false;
}
function submit_dashboard_menus(rownum, schema_name, table_name) {
menu = [];
isvalid = true;
jQuery("#wpda_" + rownum + "_add_dashboard_menu_body tr").each(function() {
let menu_name, menu_slug, menu_role, menu_id;
jQuery(this).find("td .wpda_action_font").each(function() {
switch(jQuery(this).data("id")) {
case "menu_name":
menu_name = jQuery(this).val();
break;
case "menu_slug":
menu_slug = jQuery(this).val();
break;
case "menu_role":
menu_role = jQuery(this).val();
break;
case "menu_id":
menu_id = jQuery(this).val();
break;
}
});
if (menu_name===""||menu_slug==="") {
alert('Menu name and slug must be entered');
isvalid = false;
} else {
let menu_item = {
'menu_name': menu_name,
'menu_slug': menu_slug,
'menu_role': menu_role,
'menu_id': menu_id
};
menu.push(menu_item);
}
});
if (!isvalid) {
return false;
}
jsonData = {};
jsonData['request_type'] = 'dashboard_menus';
jsonData['menu'] = menu;
if (wpdaDeletedDashboardMenus[rownum]!==undefined) {
jsonData['delete'] = wpdaDeletedDashboardMenus[rownum];
}
// console.log(jsonData);
// console.log(JSON.stringify(jsonData));
// Submit
wpda_rest_api(
'save-settings',
{
action: 'dashboard_menus',
dbs: schema_name,
tbl: table_name,
settings: JSON.stringify(jsonData),
},
(function(data) {
submitMenusCallbackOk(data, rownum);
}),
submitSettingsCallbackError
);
return false;
}
function submitMenusCallbackOk(response, rownum) {
if (response.code!==undefined && response.message!==undefined) {
switch(response.code) {
case "ok":
jQuery.notify(response.message, "success");
wpdaDeletedDashboardMenus[rownum] = [];
if (response.data!==undefined && Array.isArray(response.data)) {
for (let i=0; i<response.data.length; i++) {
jQuery("#wpda_" + rownum + "_add_dashboard_menu_body tr .wpda_dashboard_menu_id").each(function() {
if (jQuery(this).val()==="") {
jQuery(this).val(response.data[i].menu_id);
}
});
}
}
break;
case "error":
jQuery.notify(response.message, "error");
break;
default:
jQuery.notify("Application error! Please contact the plugin development team.", "error");
}
} else {
submitSettingsCallbackError(response);
}
}
function settab(rownum, tab) {
for (i = 1; i <= 6; i++) {
jQuery("#" + rownum + "-sel-" + i.toString()).removeClass('nav-tab-active');
jQuery("#" + rownum + "-tab-" + i.toString()).hide();
}
jQuery("#" + rownum + "-sel-" + tab).addClass('nav-tab-active');
jQuery("#" + rownum + "-tab-" + tab).show();
}
function backup_respository_tables(
app_table_name,
app_container_table_name,
app_apps_table_name,
table_settings_table_name,
media_table_name,
design_table_name,
data_projects_project_name,
data_projects_page_name,
data_projects_table_name,
data_publication_table_name,
menus_table_name,
csv_import_table_name,
logging_table_name
) {
jQuery('#app_table_name').val(app_table_name);
jQuery('#app_container_table_name').val(app_container_table_name);
jQuery('#app_apps_table_name').val(app_apps_table_name);
jQuery('#table_settings_table_name').val(table_settings_table_name);
jQuery('#media_table_name').val(media_table_name);
jQuery('#design_table_name').val(design_table_name);
jQuery('#data_projects_project_name').val(data_projects_project_name);
jQuery('#data_projects_page_name').val(data_projects_page_name);
jQuery('#data_projects_table_name').val(data_projects_table_name);
jQuery('#data_publication_table_name').val(data_publication_table_name);
jQuery('#menus_table_name').val(menus_table_name);
jQuery('#csv_import_table_name').val(csv_import_table_name);
jQuery('#logging_table_name').val(logging_table_name);
jQuery('#wpda-download-backup').submit();
}
function restore_respository_tables() {
if (!confirm("Restore repository tables? This action cannot be undone!\n\nIt might be wise to backup your actual repository tables first...")) {
return;
}
jQuery('#restore_app_table_name').val(jQuery("input[name='restore_app_table_name']:checked").val());
jQuery('#restore_app_container_table_name').val(jQuery("input[name='restore_app_container_table_name']:checked").val());
jQuery('#restore_app_apps_table_name').val(jQuery("input[name='restore_app_apps_table_name']:checked").val());
jQuery('#restore_table_settings_table_name').val(jQuery("input[name='restore_table_settings_table_name']:checked").val());
jQuery('#restore_media_table_name').val(jQuery("input[name='restore_media_table_name']:checked").val());
jQuery('#restore_design_table_name').val(jQuery("input[name='restore_design_table_name']:checked").val());
jQuery('#restore_data_projects_project_name').val(jQuery("input[name='restore_data_projects_project_name']:checked").val());
jQuery('#restore_data_projects_page_name').val(jQuery("input[name='restore_data_projects_project_name']:checked").val());
jQuery('#restore_data_projects_table_name').val(jQuery("input[name='restore_data_projects_table_name']:checked").val());
jQuery('#restore_data_publication_table_name').val(jQuery("input[name='restore_data_publication_table_name']:checked").val());
jQuery('#restore_menus_table_name').val(jQuery("input[name='restore_menus_table_name']:checked").val());
jQuery('#restore_csv_import_table_name').val(jQuery("input[name='restore_csv_import_table_name']:checked").val());
jQuery('#restore_logging_table_name').val(jQuery("input[name='restore_logging_table_name']:checked").val());
jQuery('#restore_date').val(jQuery('.wpda-restore-repository-backup-selected').data('backupDate'));
jQuery('#wpda-restore-respository').submit();
}
function get_table_row_count(wpnonce, schema_name, table_name) {
url = location.pathname + '?action=wpda_get_table_row_count';
jQuery.ajax({
method: 'POST',
url: url,
data: {
wpda_wpnonce: wpnonce,
wpdaschema_name: schema_name,
wpdatable_name: table_name
}
}).done(
function(msg) {
try {
json = JSON.parse(msg);
if (json[0].row_count === undefined) {
alert('Ajax error: row count failed');
} else {
jQuery("#" + table_name + "_row_count_estimated_value_hard").val(json[0].row_count);
}
} catch (e) {
alert('Ajax error: ' + e.message);
}
}
);
}
function expandFieldset(id) {
if (jQuery("#wpda_table_expand_" + id).is(":visible")) {
jQuery("#wpda_field_expand_" + id).removeClass("fa-minus-circle");
jQuery("#wpda_field_expand_" + id).addClass("fa-plus-circle");
jQuery("#wpda_fieldset_expand_" + id).val("off");
jQuery("#wpda_table_expand_" + id).css("display", "none");
} else {
jQuery("#wpda_field_expand_" + id).removeClass("fa-plus-circle");
jQuery("#wpda_field_expand_" + id).addClass("fa-minus-circle");
jQuery("#wpda_fieldset_expand_" + id).val("on");
jQuery("#wpda_table_expand_" + id).css("display", "table");
}
}
function wpda_add_icons_to_dialog_buttons() {
jQuery("div.ui-dialog div.ui-dialog-buttonset button").each(function() {
switch(jQuery(this).text()) {
case "OK":
case "Select":
case "Close":
jQuery(this).prepend('<i class="fas fa-check wpda_icon_on_button"></i> ');
break;
case "Apply":
jQuery(this).prepend('<i class="fas fa-code-commit wpda_icon_on_button"></i> ');
break;
case "Delete":
jQuery(this).prepend('<i class="fas fa-trash wpda_icon_on_button"></i> ');
break;
case "Keep":
jQuery(this).prepend('<i class="fas fa-eraser wpda_icon_on_button"></i> ');
break;
case "Cancel":
jQuery(this).prepend('<i class="fas fa-times-circle wpda_icon_on_button"></i> ');
break;
}
});
}
function wpda_dbinit_admin( schema_name, wpnonce ) {
jQuery.ajax({
method: 'POST',
url: wpda_admin_vars.wpda_ajaxurl + '?action=wpda_dbinit_admin',
data: {
wpdaschema_name: schema_name,
wpnonce: wpnonce,
}
}).done(
function(data) {
msg = JSON.parse(data);
if (msg.status==="OK") {
jQuery.notify('Database function wpda_get_wp_user_id() created', 'success');
} else {
console.log(msg);
jQuery.notify(msg.msg, 'error');
}
}
);
}
function wpda_toggle_password(id, e) {
// Change input type
let elm = document.getElementById(id);
if (elm.type === "password") {
elm.type = "text";
} else {
elm.type = "password";
}
// Change icon if applicable
let icn = jQuery(e.target);
if (icn.hasClass("fa-eye")) {
icn.addClass("fa-eye-slash").removeClass("fa-eye");
} else if (icn.hasClass("fa-eye-slash")) {
icn.addClass("fa-eye").removeClass("fa-eye-slash");
}
}
function wpda_alert(title, txt) {
jQuery("<p></p>").append(txt).dialog({
title: title,
modal: true,
buttons: {
OK: function() {
jQuery(this).dialog("close");
}
}
});
}
function wpda_confirm(title, txt) {
var defer = jQuery.Deferred();
jQuery("<p></p>").append(txt).dialog({
title: title,
modal: true,
buttons: {
OK: function() {
defer.resolve(true);
jQuery(this).dialog("close");
},
CANCEL: function() {
defer.resolve(false);
jQuery(this).dialog("close");
}
}
});
return defer.promise();
}
function restApiPanelOnChange(elem, panel) {
if (elem.is(":checked")) {
panel.show();
} else {
panel.hide();
}
}
function restApiAccessOnChange(elem, access) {
if (elem.val() === "anonymous") {
access.hide();
} else {
access.show();
}
}
function submit_rest_api(schema_name, table_name, settings ) {
// Submit
wpda_rest_api(
'save-settings',
{
action: 'rest_api',
dbs: schema_name,
tbl: table_name,
settings: JSON.stringify(settings),
},
(function(data) {
submitSettingsCallbackOk(data, "norownum");
}),
submitSettingsCallbackError
);
return false;
}
function restApiTestCallbackOk(response, rownum) {
if (response.code!==undefined && response.message!==undefined) {
switch(response.code) {
case "ok":
jQuery.notify("Please check your console...", "success");
console.log(response);
break;
default:
jQuery.notify("Please check your console...", "error");
console.error(response);
}
} else {
restApiTestCallbackError(response);
}
}
function restApiTestCallbackError(response) {
if (response.code!==undefined && response.message!==undefined) {
jQuery.notify("Please check your console...", "error");
console.error(response);
} else {
jQuery.notify("Please check your console...", "error");
}
}
var wpdaDeletedDashboardMenus = [];
function deleteDashboardMenu(element, rownum) {
let menu_id = jQuery(element).closest("tr").find(".wpda_dashboard_menu_id").val();
if (wpdaDeletedDashboardMenus[rownum]===undefined) {
wpdaDeletedDashboardMenus[rownum] = [];
}
wpdaDeletedDashboardMenus[rownum].push(menu_id);
jQuery(element).closest("tr").remove();
}
wpdaMediaFrames = [];
function wpdaInitMediaItem(mediaId, mediaContainer, mediaItem, mediaType, dataType, title, buttonText, mediaTypes) {
wpdaMediaFrames[mediaId] = null;
jQuery("#media_" + mediaId + "_upload_button").on("click", function (e) {
e.preventDefault();
if (wpdaMediaFrames[mediaId]!==null) {
wpdaMediaFrames[mediaId].open();
wpdaSetMediaSelection(
mediaItem,
wpdaMediaFrames[mediaId]
);
} else {
wpdaMediaFrames[mediaId] = wp.media({
title: title,
button: {
text: buttonText
},
library: {
type: mediaTypes
},
multiple: dataType==="number" ? "false" : "true",
render: false
});
wpdaMediaFrames[mediaId].on("select", function () {
if ('number' === dataType) {
attachment = wpdaMediaFrames[mediaId].state().get('selection').first().toJSON();
} else {
attachment = wpdaMediaFrames[mediaId].state().get('selection').toJSON();
}
wpdaGetMedia(
mediaContainer,
mediaItem,
dataType,
attachment,
mediaType
);
});
wpdaMediaFrames[mediaId].open();
wpdaSetMediaSelection(
mediaItem,
wpdaMediaFrames[mediaId]
);
}
});
jQuery("#media_" + mediaId + "_remove_button").on("click", function (e) {
e.preventDefault();
mediaContainer.empty();
mediaItem.val('');
});
}
function wpdaGetMedia(mediaContainer, mediaItem, dataType, attachment, attachmentType) {
mediaContainer.empty();
if ('number' === dataType) {
mediaItem.val(attachment.id);
mediaContainer.append(
wpdaGetMediaContent(attachment, attachmentType)
);
} else {
mediaItem.val('');
for (var i = 0; i < attachment.length; ++i) {
if (attachment[i].id !== '') {
if (mediaItem.val() === '') {
mediaItem.val(attachment[i].id);
} else {
mediaItem.val(
mediaItem.val() + ',' + attachment[i].id
);
}
mediaContainer.append(
wpdaGetMediaContent(attachment[i], attachmentType)
);
}
}
}
}
function wpdaGetMediaContent(attachment, attachmentType) {
switch(attachmentType) {
case 'image':
return wpdaGetMediaImage(attachment)
case 'video':
return wpdaGetMediaVideo(attachment)
case 'audio':
return wpdaGetMediaAudio(attachment)
default:
return wpdaGetMediaItem(attachment)
}
}
function wpdaGetMediaItem(attachment) {
return `
<span class="wpda_media_container wpda_media">
<a href="${attachment.url}" target="_blank">
<img src="${attachment.icon}">
<br/>
${attachment.title}
</a>
</span>
`;
}
function wpdaGetMediaImage(attachment) {
return `
<span class="wpda_media_container wpda_image">
<img src="${attachment.url}"/>
</span>
`;
}
function wpdaGetMediaAudio(attachment) {
return `
<span class="wpda_media_container wpda_audio">
<audio src="${attachment.url}" controls></audio>
</span>
`;
}
function wpdaGetMediaVideo(attachment) {
return `
<span class="wpda_media_container wpda_video">
<video controls>
<source src="${attachment.url}">
</video>
</span>
`;
}
function wpdaSetMediaSelection(mediaItem, frame) {
// Selects selected media in media uploader.
selection = frame.state().get('selection');
media_ids = mediaItem.val();
media_ids = media_ids.split(',');
media_ids.forEach(
function (id) {
attachment = wp.media.attachment(id);
attachment.fetch();
selection.add(attachment ? [attachment] : []);
}
);
}