1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- import $ from 'jquery';
- import packages from '../utils/packages';
- import camelCase from 'mout/string/camelCase';
- import debounce from 'debounce';
- import contains from 'mout/string/contains';
- // Plugins sliders details
- $('.gpm-name, .gpm-actions').on('click', function(e) {
- let element = $(this);
- let target = $(e.target);
- let tag = target.prop('tagName').toLowerCase();
- if (tag === 'a' || element.parent('a').length || target.parent('a').length) { return true; }
- let wrapper = element.siblings('.gpm-details').find('.table-wrapper');
- wrapper.slideToggle({
- duration: 350,
- complete: () => {
- let visible = wrapper.is(':visible');
- wrapper
- .closest('tr')
- .find('.gpm-details-expand i')
- .removeClass('fa-chevron-' + (visible ? 'down' : 'up'))
- .addClass('fa-chevron-' + (visible ? 'up' : 'down'));
- }
- });
- });
- // Removing plugin
- $(document).on('click', '[data-plugin-action="remove-package"]', (event) => {
- packages.handleRemovingPackage('plugin', event);
- });
- // Reinstall plugin
- $(document).on('click', '[data-plugin-action="reinstall-package"]', (event) => {
- packages.handleReinstallPackage('plugin', event);
- });
- $(document).on('click', '[data-plugin-action="remove-dependency-package"]', (event) => {
- packages.handleRemovingDependency('plugin', event);
- });
- // Trigger the add new plugin / update plugin modal
- $(document).on('click', '[data-plugin-action="start-package-installation"]', (event) => {
- packages.handleGettingPackageDependencies('plugin', event, 'install');
- });
- // Trigger the update all plugins modal
- $(document).on('click', '[data-plugin-action="start-packages-update"]', (event) => {
- packages.handleGettingPackageDependencies('plugin', event);
- });
- // Install a plugin dependencies and the plugin
- $(document).on('click', '[data-plugin-action="install-dependencies-and-package"]', (event) => {
- packages.handleInstallingDependenciesAndPackage('plugin', event);
- });
- // Install a plugin
- $(document).on('click', '[data-plugin-action="install-package"]', (event) => {
- packages.handleInstallingPackage('plugin', event);
- });
- // Sort plugins/themes dropdown
- $(document).on('change', '.sort-actions select', (event) => {
- let direction = $('.sort-actions .sort-icon .fa').hasClass('fa-sort-amount-desc') ? 'desc' : 'asc';
- let sorting = $(event.currentTarget).val();
- packages.Sort[camelCase(`by-${sorting}`)](direction);
- });
- // Sort plugins/themes icon
- $(document).on('click', '.sort-icon', (event) => {
- let icon = $(event.currentTarget).find('.fa');
- let current = icon.hasClass('fa-sort-amount-asc') ? 'asc' : 'desc';
- let opposite = current === 'asc' ? 'desc' : 'asc';
- icon.removeClass(`fa-sort-amount-${current}`).addClass(`fa-sort-amount-${opposite}`);
- $('.sort-actions select').trigger('change');
- });
- // Filter plugin/theme
- $(document).on('input', '[data-gpm-filter]', debounce((event) => {
- let value = $($(event.currentTarget)).val();
- let items = $('[data-gpm-plugin], [data-gpm-theme]');
- items.hide().filter((index, item) => {
- item = $(item);
- return contains(item.data('gpm-plugin'), value) || contains(item.data('gpm-theme'), value) || contains(item.data('gpm-name').toLowerCase(), value.toLowerCase());
- }).show();
- }, 250));
|