feat(demo): add story 1 — Sorano: Rock and Time
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
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));
|
||||
Reference in New Issue
Block a user