You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
3.8 KiB
JavaScript
121 lines
3.8 KiB
JavaScript
'use strict';
|
|
|
|
var j = jQuery.noConflict();
|
|
|
|
j(function() {
|
|
init_provider_changed_listener();
|
|
init_private_repo_changed_listener();
|
|
init_dashboard_listenes();
|
|
});
|
|
|
|
function init_provider_changed_listener() {
|
|
j('.dfg_install_package_form').on('change', 'select[name="provider_type"]', function(e) {
|
|
const selected_provider_name = e.target.value;
|
|
|
|
// Repo URL descriptions
|
|
j(`.dfg_install_package_form .dfg_repo_url_description`).addClass('dfg_hidden');
|
|
j(`.dfg_install_package_form #${selected_provider_name}-repo-url-description`).removeClass('dfg_hidden');
|
|
|
|
// Show "is private repository" row
|
|
j('.dfg_is_private_repository_row').removeClass('dfg_hidden');
|
|
|
|
// Refresh private repo fields
|
|
refresh_private_repo_fields();
|
|
});
|
|
}
|
|
|
|
function init_private_repo_changed_listener() {
|
|
j('.dfg_install_package_form').on('change', 'input[name="is_private_repository"]', function(e) {
|
|
refresh_private_repo_fields();
|
|
});
|
|
}
|
|
|
|
function refresh_private_repo_fields() {
|
|
const is_checked = j('.dfg_install_package_form input[name="is_private_repository"]').is(':checked');
|
|
const provider_type = j('.dfg_install_package_form select[name="provider_type"]').val();
|
|
|
|
j(`.dfg_install_package_form .dfg_username_row,
|
|
.dfg_install_package_form .dfg_password_row,
|
|
.dfg_install_package_form .dfg_access_token_row,
|
|
.dfg_install_package_form .dfg_access_token_description`).addClass('dfg_hidden');
|
|
|
|
if (is_checked) {
|
|
if (provider_type === 'github') {
|
|
j('.dfg_install_package_form .dfg_access_token_row').removeClass('dfg_hidden');
|
|
j(`.dfg_install_package_form #github-access-token-description`).removeClass('dfg_hidden');
|
|
}
|
|
|
|
if (provider_type === 'bitbucket') {
|
|
j(`.dfg_install_package_form .dfg_username_row,
|
|
.dfg_install_package_form .dfg_password_row`).removeClass('dfg_hidden');
|
|
}
|
|
|
|
if (provider_type === 'gitlab') {
|
|
j('.dfg_install_package_form .dfg_access_token_row').removeClass('dfg_hidden');
|
|
j(`.dfg_install_package_form #gitlab-access-token-description`).removeClass('dfg_hidden');
|
|
}
|
|
|
|
if (provider_type === 'gitea') {
|
|
j('.dfg_install_package_form .dfg_access_token_row').removeClass('dfg_hidden');
|
|
j(`.dfg_install_package_form #gitea-access-token-description`).removeClass('dfg_hidden');
|
|
}
|
|
}
|
|
}
|
|
|
|
function init_dashboard_listenes() {
|
|
j('.dfg_package_boxes a[data-copy-url-btn]').on('click', function(e) {
|
|
e.preventDefault();
|
|
const url = j(this).data('copy-url-btn');
|
|
let $text_el = j(this).find('.text');
|
|
navigator.clipboard.writeText(url).then(function() {
|
|
$text_el.text( dfg.copied_url_label );
|
|
setTimeout(function() {
|
|
$text_el.text( dfg.copy_url_label );
|
|
}, 2000);
|
|
});
|
|
});
|
|
|
|
j('.dfg_package_boxes a[data-show-ptd-btn]').on('click', function(e) {
|
|
e.preventDefault();
|
|
|
|
let $package_box_action = j(this).parent().find('.dfg_package_box_action');
|
|
$package_box_action.toggleClass('visible');
|
|
});
|
|
|
|
j('.dfg_package_boxes button[data-trigger-ptd-btn]').on('click', function(e) {
|
|
e.preventDefault();
|
|
const endpoint_url = j(this).data('trigger-ptd-btn');
|
|
let $parent_el = j(this);
|
|
let $parent_text_el = j(this).find('.text');
|
|
|
|
j.ajax({
|
|
url: endpoint_url,
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
beforeSend: function() {
|
|
$parent_el.addClass( 'loading' );
|
|
$parent_el.attr( 'disabled', true );
|
|
|
|
$parent_text_el.text( dfg.updating_now_label );
|
|
}
|
|
})
|
|
.done(function(response) {
|
|
if (response.success) {
|
|
$parent_text_el.text( dfg.update_completed_label );
|
|
|
|
setTimeout(function() {
|
|
if ( $parent_el.data('package-type') === 'theme') {
|
|
$parent_text_el.text( dfg.update_theme_label );
|
|
} else {
|
|
$parent_text_el.text( dfg.update_plugin_label );
|
|
}
|
|
$parent_el.removeAttr( 'disabled' );
|
|
}, 2000);
|
|
} else {
|
|
$parent_text_el.text( dfg.error_label );
|
|
}
|
|
|
|
$parent_el.removeClass( 'loading' );
|
|
});
|
|
});
|
|
} |