media-selector.js
3.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
var WPML_Media_Selector = WPML_Media_Selector || {};
jQuery(function ($) {
"use strict";
var dashboardTable = $('#icl-tm-translation-dashboard');
dashboardTable.find('tbody :checkbox').on('change', showMediaSelector);
function showMediaSelector() {
var hasMedia = $(this).closest('tr').data('has-media');
if (hasMedia) {
var checkbox = $(this);
var postSelected = checkbox.prop('checked');
var currentRow = $(this).closest('tr');
var postId = currentRow.attr('id').replace(/^row_/, '');
var mediaSelectorRow = $('#js-wpml-media-selector-' + postId);
}
if (postSelected) {
if (mediaSelectorRow.length) {
mediaSelectorRow.show();
} else {
loadMediaSelectorContent(currentRow, postId, checkbox);
}
} else if ( mediaSelectorRow ) {
mediaSelectorRow.find('label :checkbox').prop('checked', false);
mediaSelectorRow.hide();
}
}
function loadMediaSelectorContent(currentRow, postId, checkbox) {
var mediaSelectorContainer = {};
var rowWidth = currentRow.find('td:visible').length;
var data = {
action: "wpml_media_load_image_selector",
post_id: postId,
languages: getTargetLanguages()
};
var mediaSelectorRow = $(
'<tr class="hidden"><td colspan="' + rowWidth + '"></td></tr>' +
'<tr id="js-wpml-media-selector-' + postId + '" class="wpml-media-selector">' +
'<td colspan="' + rowWidth + '"></td>' +
'</tr>'
);
mediaSelectorRow.insertAfter(currentRow);
var postType = currentRow.data('post-type');
var preLoader = $('#wpml-media-selector-preloader').html().replace(/%POST_TYPE%/, postType);
mediaSelectorContainer = $('#js-wpml-media-selector-' + postId).find('td');
mediaSelectorContainer.html(preLoader);
checkbox.prop('disabled', true);
$.ajax({
url: ajaxurl,
type: "POST",
dataType: "json",
data: data,
success: function (response) {
if (response.success && response.data.media_files_count) {
mediaSelectorContainer.find('.wpml-media-selector-wrapper-inner').html(response.data.html);
} else {
mediaSelectorRow.remove();
}
checkbox.prop('disabled', false);
}
});
}
function getTargetLanguages() {
var languages = [];
$(':radio[name^="tr_action"][value="1"]:checked', '#icl_tm_languages').each(function () {
languages.push($(this).attr('name').replace(/^tr_action\[/, '').replace(/\]$/, ''));
});
return languages;
}
$('#wpml-media-basket-notice').on('click', hideBasketNotice);
function hideBasketNotice() {
$.ajax({
url: ajaxurl,
type: "POST",
dataType: "json",
data: {action: 'dismiss_media_basket_notice'},
success: function (response) {
if (response.data.status) {
$('#wpml-media-basket-notice').fadeOut();
}
}
});
}
$('body').on('click', '.js-wpml-media-selector-toggle', toogleMediaList);
function toogleMediaList(event) {
event.preventDefault();
$(this).toggleClass('collapsed');
$('.wpml-media-selector-wrapper').toggle();
$.ajax({
url: ajaxurl,
type: "POST",
dataType: "json",
data: {action: 'wpml_media_toogle_show_media_selector'}
});
return false;
}
});