Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 19 additions & 2 deletions dt-assets/functions/details-bar.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,13 @@ function dt_print_details_bar(

$picture_style = !class_exists( 'Disciple_Tools_Storage' ) ? 'cursor: default !important;' : '';
$record_picture = isset( $dt_post['record_picture']['thumb'] ) ? $dt_post['record_picture']['thumb'] : null;
$record_thumbnail = isset( $dt_post['record_picture']['thumb'] ) ? $dt_post['record_picture']['thumb'] : null;
$record_large_thumbnail = isset( $dt_post['record_picture']['large'] ) ? $dt_post['record_picture']['large'] : null;

$picture = apply_filters( 'dt_record_picture', $record_picture, $dt_post_type, $post_id );
$picture_thumbnail = apply_filters( 'dt_record_picture', $record_thumbnail, $dt_post_type, $post_id );
$picture_large_thumbnail = apply_filters( 'dt_record_picture', $record_large_thumbnail, $dt_post_type, $post_id );

$icon = apply_filters( 'dt_record_icon', null, $dt_post_type, $dt_post );

$type_color = isset( $dt_post['type']['key'], $post_settings['fields']['type']['default'][$dt_post['type']['key']]['color'] ) ? $post_settings['fields']['type']['default'][$dt_post['type']['key']]['color'] : '#000000';
Expand Down Expand Up @@ -109,8 +115,13 @@ class="second-bar" id="second-bar-large">
<td style="padding: 0">
<?php
if ( !empty( $picture ) ) : ?>
<img class="dt-storage-upload details-bar-picture" src="<?php echo esc_html( $picture )?>"

<img class="dt-storage-picture details-bar-picture"
src="<?php echo esc_html( $picture_thumbnail )?>"
alt="<?php esc_attr_e( 'Record Picture', 'disciple_tools' ) ?>"
style="<?php echo esc_attr( $picture_style ) ?>"
data-picture_url="<?php echo esc_html( $picture )?>"
data-picture_large_thumbnail_url="<?php echo esc_html( $picture_large_thumbnail )?>"
data-storage_upload_post_type="<?php echo esc_attr( $dt_post_type )?>"
data-storage_upload_post_id="<?php echo esc_attr( $post_id )?>"
data-storage_upload_meta_key="record_picture"
Expand Down Expand Up @@ -282,9 +293,15 @@ class="second-bar" id="second-bar-small">
<div class="cell small-10 center" style="display: flex; justify-content: center">
<div style="display: flex">
<?php $picture = apply_filters( 'dt_record_picture', $record_picture, $dt_post_type, $post_id );
$picture_thumbnail = apply_filters( 'dt_record_picture', $record_thumbnail, $dt_post_type, $post_id );
if ( !empty( $picture ) ) : ?>
<img class="dt-storage-upload details-bar-picture" src="<?php echo esc_html( $picture )?>"
<img class="dt-storage-picture details-bar-picture"
src="<?php echo esc_html( $picture_thumbnail )?>"
style="<?php echo esc_attr( $picture_style ) ?>"
alt="<?php esc_attr_e( 'Record Picture', 'disciple_tools' ) ?>"
data-picture_url="<?php echo esc_html( $picture )?>"
data-picture_large_thumbnail_url="<?php echo esc_html( $picture_large_thumbnail )?>"

data-storage_upload_post_type="<?php echo esc_attr( $dt_post_type )?>"
data-storage_upload_post_id="<?php echo esc_attr( $post_id )?>"
data-storage_upload_meta_key="record_picture"
Expand Down
1 change: 1 addition & 0 deletions dt-assets/functions/enqueue-scripts.php
Original file line number Diff line number Diff line change
Expand Up @@ -448,6 +448,7 @@ function dt_site_scripts() {
'error_msg' => __( 'Unable to upload, please try again', 'disciple_tools' ),
'but_upload' => __( 'Upload', 'disciple_tools' ),
'but_delete' => __( 'Delete Existing File', 'disciple_tools' ),
'but_replace' => __( 'Replace Existing Image', 'disciple_tools' ),
'delete_msg' => __( 'Are you sure you wish to delete existing file?', 'disciple_tools' ),
'delete_success_msg' => __( 'Successfully Deleted!', 'disciple_tools' ),
'delete_error_msg' => __( 'Delete failed, please try again', 'disciple_tools' ),
Expand Down
75 changes: 75 additions & 0 deletions dt-assets/js/dt-storage.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ jQuery(document).ready(function ($) {

$(document).on('click', '.dt-storage-upload', function (e) {
const element = $(e.target);

// Close the dt-storage-picture modal
if ($('#dt-storage-picture').length) {
$('#dt-storage-picture').foundation('close');
}

display_storage_upload_modal(
$(element).data('storage_upload_post_type'),
$(element).data('storage_upload_post_id'),
Expand All @@ -13,6 +19,21 @@ jQuery(document).ready(function ($) {
);
});

$(document).on('click', '.dt-storage-picture', function (e) {
const element = $(e.target);

display_picture_modal(
$(element).data('picture_large_thumbnail_url'),
$(element).data('picture_url'),
$(element).attr('alt'),
$(element).data('storage_upload_post_type'),
$(element).data('storage_upload_post_id'),
$(element).data('storage_upload_meta_key'),
$(element).data('storage_upload_key_prefix'),
$(element).data('storage_upload_delete_enabled') !== undefined,
);
});

/**
* Utility Functions
*/
Expand Down Expand Up @@ -219,6 +240,60 @@ jQuery(document).ready(function ($) {
$('#dt_storage_upload_modal').foundation('open');
}

function display_picture_modal(
large_thumbnail_url,
picture_url,
image_alt,
post_type,
post_id,
meta_key,
key_prefix,
delete_enabled = false,
) {
const modal_html = `
<div class="reveal medium" id="dt-storage-picture" data-reveal data-reset-on-close>
<style>
#dt-storage-picture {
text-align: center;
}

#dt-storage-picture img {
max-width: 100%;
height: auto;
margin: 1rem auto 2rem;
display: block;
}
</style>
<h3>${escape(storage_settings?.translations?.modals?.upload?.title)}</h3>
<img src="${large_thumbnail_url}" class="" alt="${image_alt}" onerror="this.onerror=null;this.src='${picture_url}';"/>

<button class="dt-storage-upload button" data-storage_upload_post_type="${post_type}" data-storage_upload_post_id="${post_id}" data-storage_upload_meta_key="${meta_key}" data-storage_upload_key_prefix="${key_prefix}"
data-storage_upload_delete_enabled="${delete_enabled}">${escape(storage_settings?.translations?.modals?.upload?.but_replace)}</button>

<button class="close-button" data-close aria-label="${escape(storage_settings?.translations?.modals?.upload?.but_close)}" type="button">
<span aria-hidden="true">&times;</span>
</button>
</div>
`;
// Ensure to remove previous stale modal html, before appending generated code.
$(document.body).find('[id=dt-storage-picture]').remove();
$(document.body).append(modal_html);

// Activate upload widgets.
// activate_storage_upload_modal_widgets(
// post_type,
// post_id,
// meta_key,
// key_prefix,
// );

// Reload reveal foundation object, in order to detect recently added upload modal element.
$(document).foundation();

// Open upload modal.
$('#dt-storage-picture').foundation('open');
}

function activate_storage_upload_modal_widgets(
post_type,
post_id,
Expand Down
9 changes: 6 additions & 3 deletions dt-posts/posts.php
Original file line number Diff line number Diff line change
Expand Up @@ -2606,11 +2606,14 @@ public static function adjust_post_custom_fields( $post_type, int $post_id, arra
}
} else if ( isset( $field_settings[$key] ) && $field_settings[$key]['type'] === 'image' ){
if ( !empty( $value[0]['value'] ) ){
if ( class_exists( 'DT_Storage' ) && DT_Storage::is_enabled() ){
if ( class_exists( 'DT_Storage' ) && DT_Storage::is_enabled() ) {
$fields[$key] = [
'thumb' => DT_storage::get_thumbnail_url( $value[0]['value'] ),
'full' => DT_storage::get_file_url( $value[0]['value'] ),
'thumb' => DT_Storage::get_thumbnail_url( $value[0]['value'] ),
'full' => DT_Storage::get_file_url( $value[0]['value'] ),
];
if ( method_exists( 'DT_Storage', 'get_large_thumbnail_url' ) ) {
$fields[$key]['large'] = DT_Storage::get_large_thumbnail_url( $value[0]['value'] );
}
}
}
} else {
Expand Down