first commit
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
/*globals jQuery, post_edit_languages_data, icl_ajx_url */
|
||||
|
||||
function build_language_links(data, $, container) {
|
||||
"use strict";
|
||||
|
||||
const getNewQueryString = function(sourceUrl, newQueryArgs) {
|
||||
const url = new URL(sourceUrl),
|
||||
search = url.searchParams;
|
||||
|
||||
for (let key in newQueryArgs) {
|
||||
if (Object.prototype.hasOwnProperty.call(newQueryArgs, key)) {
|
||||
search.set(key, newQueryArgs[key]);
|
||||
}
|
||||
}
|
||||
|
||||
return search.toString();
|
||||
};
|
||||
|
||||
var urlData;
|
||||
if (data.hasOwnProperty('language_links')) {
|
||||
var languages_container = $('<ul></ul>');
|
||||
languages_container.prependTo(container);
|
||||
|
||||
/** @namespace data.language_links */
|
||||
/** @namespace data.statuses */
|
||||
for (var i = 0; i < data.language_links.length; i++) {
|
||||
var item = data.language_links[i];
|
||||
var is_current = item.current || false;
|
||||
var language_code = item.code;
|
||||
var language_count = item.count;
|
||||
var language_name = item.name;
|
||||
var statuses = item.statuses;
|
||||
var type = item.type;
|
||||
|
||||
var language_item = $('<li></li>');
|
||||
language_item.addClass('language_' + language_code);
|
||||
if (i > 0) {
|
||||
language_item.append(' | ');
|
||||
}
|
||||
|
||||
var language_summary = $('<span></span>');
|
||||
language_summary.addClass('count');
|
||||
language_summary.addClass(language_code);
|
||||
language_summary.text(' (' + ( language_count < 0 ? "0" : language_count ) + ')');
|
||||
|
||||
var current;
|
||||
if (is_current) {
|
||||
current = $('<strong></strong>');
|
||||
} else if (language_count >= 0) {
|
||||
current = $('<a></a>');
|
||||
urlData = {
|
||||
post_type: type,
|
||||
lang: language_code
|
||||
};
|
||||
|
||||
if (statuses && statuses.length) {
|
||||
urlData.post_status = statuses.join(',');
|
||||
}
|
||||
|
||||
current.attr('href', '?' + getNewQueryString(location.href, urlData));
|
||||
} else {
|
||||
current = $('<span></span>');
|
||||
}
|
||||
|
||||
current.append(language_name);
|
||||
current.appendTo(language_item);
|
||||
current.append(language_summary);
|
||||
|
||||
language_item.appendTo(languages_container);
|
||||
}
|
||||
|
||||
$(document).trigger('wpml_language_links_added', [languages_container]);
|
||||
}
|
||||
}
|
||||
|
||||
jQuery(function ($) {
|
||||
"use strict";
|
||||
|
||||
var data = post_edit_languages_data;
|
||||
var subsubsub = $('.subsubsub');
|
||||
var container = subsubsub.next('.icl_subsubsub');
|
||||
|
||||
if (container.length === 0) {
|
||||
container = $('<div></div>');
|
||||
container.addClass('icl_subsubsub');
|
||||
|
||||
subsubsub.after(container);
|
||||
}
|
||||
|
||||
build_language_links(data, $, container);
|
||||
});
|
||||
Reference in New Issue
Block a user