Fixed performance of Plugins / Themes sort in the installation table

This commit is contained in:
Djamil Legato
2022-02-04 16:46:04 -08:00
parent a165b670f9
commit d0a41b8187
3 changed files with 107 additions and 41 deletions

View File

@@ -9779,76 +9779,111 @@ var Sorter = /*#__PURE__*/function () {
packages_createClass(Sorter, [{
key: "getElements",
value: function getElements(elements, container) {
this.elements = elements || external_jQuery_default()('[data-gpm-plugin], [data-gpm-theme]');
this.container = container || external_jQuery_default()('.gpm-plugins > table > tbody, .gpm-themes > .themes.card-row');
this.elements = elements || document.querySelectorAll('[data-gpm-plugin], [data-gpm-theme]');
this.container = container || document.querySelector('.gpm-plugins > table > tbody, .gpm-themes > .themes.card-row');
return this.elements;
}
}, {
key: "byCommon",
value: function byCommon() {
var _this = this;
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
var elements = this.getElements().sort(function (a, b) {
var A = external_jQuery_default()(a).data(data).toString().toLowerCase();
var B = external_jQuery_default()(b).data(data).toString().toLowerCase();
var elements = this.getElements();
this.removeGumroad();
Array.from(elements).sort(function (a, b) {
var A = a.dataset[data].toString().toLowerCase();
var B = b.dataset[data].toString().toLowerCase();
return Sorter.sort(A, B, direction);
}).forEach(function (element) {
_this.container.appendChild(element);
});
return elements.appendTo(this.container);
this.addGumroad();
return this.container;
}
}, {
key: "byName",
value: function byName() {
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-name';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmName';
return this.byCommon(direction, data);
}
}, {
key: "byAuthor",
value: function byAuthor() {
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-author';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmAuthor';
return this.byCommon(direction, data);
}
}, {
key: "byOfficial",
value: function byOfficial() {
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-official';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmOfficial';
return this.byCommon(direction, data);
}
}, {
key: "byPremium",
value: function byPremium() {
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmPremium';
return this.byCommon(direction, data);
}
}, {
key: "byReleaseDate",
value: function byReleaseDate() {
var _this2 = this;
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-release-date';
var elements = this.getElements().sort(function (a, b) {
var A = new Date(external_jQuery_default()(a).data(data)).getTime();
var B = new Date(external_jQuery_default()(b).data(data)).getTime();
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmReleaseDate';
var elements = this.getElements();
this.removeGumroad();
Array.from(elements).sort(function (a, b) {
var A = new Date(a.dataset[data]).getTime();
var B = new Date(b.dataset[data]).getTime();
return Sorter.sort(A, B, direction === 'asc' ? 'desc' : 'asc');
}).forEach(function (element) {
_this2.container.appendChild(element);
});
elements.appendTo(this.container);
this.addGumroad();
return this.container;
}
}, {
key: "byUpdatable",
value: function byUpdatable() {
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-updatable';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmUpdatable';
return this.byCommon(direction, data);
}
}, {
key: "byEnabled",
value: function byEnabled() {
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-enabled';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmEnabled';
return this.byCommon(direction, data);
}
}, {
key: "byTesting",
value: function byTesting() {
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-testing';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpmTesting';
return this.byCommon(direction, data);
}
}, {
key: "addGumroad",
value: function addGumroad() {
if (window.GumroadOverlay) {
window.GumroadOverlay.startNodeAdditionObserver();
}
}
}, {
key: "removeGumroad",
value: function removeGumroad() {
if (window.GumroadOverlay) {
window.GumroadOverlay.nodeAdditionObserver.disconnect();
}
}
}], [{
key: "sort",
value: function sort(A, B) {
@@ -9887,7 +9922,7 @@ var Packages = /*#__PURE__*/function () {
}, {
key: "removePackage",
value: function removePackage(type, slug) {
var _this = this;
var _this3 = this;
var url = Packages.getRemovePackageUrl(type);
utils_request(url, {
@@ -9900,7 +9935,7 @@ var Packages = /*#__PURE__*/function () {
external_jQuery_default()('.remove-package-confirm').addClass('hidden');
if (response.dependencies && response.dependencies.length > 0) {
_this.addDependenciesToList(response.dependencies);
_this3.addDependenciesToList(response.dependencies);
external_jQuery_default()('.remove-package-dependencies').removeClass('hidden');
} else {
@@ -9946,7 +9981,7 @@ var Packages = /*#__PURE__*/function () {
}, {
key: "removeDependency",
value: function removeDependency(type, slug, button) {
var _this2 = this;
var _this4 = this;
var url = Packages.getRemovePackageUrl(type);
utils_request(url, {
@@ -9960,7 +9995,7 @@ var Packages = /*#__PURE__*/function () {
button.replaceWith(external_jQuery_default()('<span>Removed successfully</span>'));
if (response.dependencies && response.dependencies.length > 0) {
_this2.addDependenciesToList(response.dependencies, slug);
_this4.addDependenciesToList(response.dependencies, slug);
}
}
});
@@ -10096,7 +10131,7 @@ var Packages = /*#__PURE__*/function () {
}, {
key: "handleInstallingDependenciesAndPackage",
value: function handleInstallingDependenciesAndPackage(type, event) {
var _this3 = this;
var _this5 = this;
var slugs = Packages.getSlugsFromEvent(event);
event.preventDefault();
@@ -10108,7 +10143,7 @@ var Packages = /*#__PURE__*/function () {
external_jQuery_default()('[data-packages-modal] .installing-dependencies').addClass('hidden');
external_jQuery_default()('[data-packages-modal] .installing-package').removeClass('hidden');
_this3.installPackages(type, slugs, function () {
_this5.installPackages(type, slugs, function () {
external_jQuery_default()('[data-packages-modal] .installing-package').addClass('hidden');
external_jQuery_default()('[data-packages-modal] .installation-complete').removeClass('hidden');