Skip to content

Commit 92c0616

Browse files
authored
Merge pull request #22 from LIN3S/feature/es6-refactor
Refactored the JS code
2 parents 789998e + 6e52355 commit 92c0616

10 files changed

Lines changed: 99 additions & 73 deletions

File tree

src/LIN3S/AdminBundle/Resources/private/js/app.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,13 @@
1010
* @author Gorka Laucirica <gorka.lauzirika@gmail.com>
1111
*/
1212

13-
'use strict';
14-
1513
import {onDomReady} from 'lin3s-event-bus';
16-
1714
import 'picturefill';
1815
import FastClick from 'fastclick';
1916
import svg4everybody from 'svg4everybody';
2017
import {initParsley} from 'lin3s-front-foundation';
2118

19+
import './polyfills';
2220
import './filter';
2321
import './form-collection-type';
2422
import './menu';

src/LIN3S/AdminBundle/Resources/private/js/filter.js

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,22 @@
1010
* @author Gorka Laucirica <gorka.lauzirika@gmail.com>
1111
*/
1212

13-
'use strict';
14-
1513
import {onDomReady} from 'lin3s-event-bus';
16-
1714
import $ from 'jquery';
1815

19-
function onReady() {
16+
const onReady = () => {
2017
if ($('.filter').length === 0) {
2118
return;
2219
}
2320

24-
$('.filter__filter-by').change(function () {
25-
var $options = $('.filter__options');
21+
const $options = $('.filter__options');
2622

23+
$('.filter__filter-by').on('change', () => {
2724
$options.children().addClass('filter__option--hidden').attr('name', '');
2825
$options
2926
.find('[data-filter-field="' + $(this).val() + '"]')
30-
.removeClass('filter__option--hidden').attr('name', 'filter').focus();
27+
.removeClass('filter__option--hidden').attr('name', 'filter').trigger('focus');
3128
});
32-
}
29+
};
3330

3431
onDomReady(onReady);

src/LIN3S/AdminBundle/Resources/private/js/form-collection-type.js

Lines changed: 45 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -10,45 +10,53 @@
1010
* @author Gorka Laucirica <gorka.lauzirika@gmail.com>
1111
*/
1212

13-
'use strict';
14-
1513
import {onDomReady} from 'lin3s-event-bus';
16-
1714
import $ from 'jquery';
1815

19-
let $form, $collectionHolder;
20-
21-
function addFormType($aCollectionHolder) {
22-
let
23-
prototype = $aCollectionHolder.attr('data-prototype'),
24-
prototypeName = $aCollectionHolder.attr('data-prototype-name'),
25-
regExp = new RegExp(prototypeName === undefined ? '__name__' : prototypeName, 'g'),
26-
index = $aCollectionHolder.find(':input').length,
27-
newForm = prototype.replace(regExp, index);
28-
29-
$(newForm).appendTo($aCollectionHolder);
30-
$aCollectionHolder.data('index', index + 1);
31-
}
32-
33-
function onReady() {
34-
$form = $('form');
35-
36-
$('.form__collection-item-toggle').click(function () {
37-
$(this).parents('.form__collection-item').toggleClass('form__collection-item--hidden')
38-
});
39-
40-
$form.on('click', '.js-collection-add', function () {
41-
$collectionHolder = $(this).closest('.form__collection').find('.form__collection-items').first();
42-
addFormType($collectionHolder);
43-
44-
return false;
45-
});
46-
47-
$form.on('click', '.js-collection-remove', function () {
48-
$(this).closest('.form__collection-item').remove();
49-
50-
return false;
51-
});
52-
}
16+
const
17+
addFormType = ($aCollectionHolder) => {
18+
let
19+
prototype = $aCollectionHolder.attr('data-prototype'),
20+
prototypeName = $aCollectionHolder.attr('data-prototype-name'),
21+
regExp = new RegExp(prototypeName === undefined ? '__name__' : prototypeName, 'g'),
22+
index = $aCollectionHolder.find(':input').length,
23+
newForm = prototype.replace(regExp, index);
24+
25+
$(newForm).appendTo($aCollectionHolder);
26+
$aCollectionHolder.data('index', index + 1);
27+
},
28+
onReady = () => {
29+
const
30+
$formCollectionAddButtons = $('.js-collection-add'),
31+
$formCollectionRemoveButtons = $('.js-collection-remove'),
32+
$formToggles = $('.form__collection-item-toggle');
33+
34+
Array.from($formCollectionAddButtons).forEach(formCollectionAddButton => {
35+
const $formCollectionAddButton = $(formCollectionAddButton);
36+
37+
$formCollectionAddButton.on('click', () => {
38+
const $collectionHolder = $formCollectionAddButton
39+
.closest('.form__collection').find('.form__collection-items').first();
40+
addFormType($collectionHolder);
41+
42+
return false;
43+
});
44+
});
45+
46+
Array.from($formCollectionRemoveButtons).forEach(formCollectionRemoveButton => {
47+
const $formCollectionRemoveButton = $(formCollectionRemoveButton);
48+
$formCollectionRemoveButton.closest('.form__collection-item').remove();
49+
50+
return false;
51+
});
52+
53+
Array.from($formToggles).forEach(formToggle => {
54+
const $formToggle = $(formToggle);
55+
56+
$formToggle.on('click', function () {
57+
$formToggle.closest('.form__collection-item').toggleClass('form__collection-item--hidden')
58+
});
59+
});
60+
};
5361

5462
onDomReady(onReady);

src/LIN3S/AdminBundle/Resources/private/js/menu.js

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,25 @@
1010
* @author Gorka Laucirica <gorka.lauzirika@gmail.com>
1111
*/
1212

13-
'use strict';
14-
1513
import {onDomReady} from 'lin3s-event-bus';
16-
1714
import $ from 'jquery';
1815

19-
function onReady() {
20-
$('.menu-toggle').click(function () {
21-
var $menu = $(this).parents('.menu');
16+
const onReady = () => {
17+
const $menuToggle = $('.menu-toggle');
18+
19+
$menuToggle.on('click', () => {
20+
const $menu = $menuToggle.closest('.menu');
21+
22+
$menuToggle.toggleClass('menu-toggle--visible');
2223

23-
$(this).toggleClass('menu-toggle--visible');
2424
if ($menu.hasClass('menu--open')) {
2525
$menu.attr('style', '');
2626
} else {
2727
$menu.height($menu.get(0).scrollHeight);
2828
}
29+
2930
$menu.toggleClass('menu--open');
3031
});
31-
}
32+
};
3233

3334
onDomReady(onReady);

src/LIN3S/AdminBundle/Resources/private/js/panel.js

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,19 @@
1010
* @author Gorka Laucirica <gorka.lauzirika@gmail.com>
1111
*/
1212

13-
'use strict';
14-
1513
import {onDomReady} from 'lin3s-event-bus';
16-
1714
import $ from 'jquery';
1815

19-
function onReady() {
20-
$('.panel__header').click(function () {
21-
$(this).parent().toggleClass('panel--closed');
16+
const onReady = () => {
17+
const $panelHeaders = $('.panel__header');
18+
19+
Array.from($panelHeaders).forEach(panelHeader => {
20+
const $panelHeader = $(panelHeader);
21+
22+
$panelHeader.on('click', () => {
23+
$panelHeader.parent().toggleClass('panel--closed');
24+
});
2225
});
23-
}
26+
};
2427

2528
onDomReady(onReady);
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/*
2+
* This file is part of the Admin Bundle.
3+
*
4+
* Copyright (c) 2015-2016 LIN3S <info@lin3s.com>
5+
*
6+
* For the full copyright and license information, please view the LICENSE
7+
* file that was distributed with this source code.
8+
*
9+
* @author Mikel Tuesta <mikeltuesta@gmail.com>
10+
*/
11+
12+
if (typeof Array.from === 'undefined') {
13+
Array.from = require('array-from'); // eslint-disable-line no-undef
14+
}

src/LIN3S/AdminBundle/Resources/private/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
"build:prod": "node_modules/.bin/webpack --config=./webpack.bundle.config.babel.js -p"
4343
},
4444
"dependencies": {
45+
"array-from": "^2.1.1",
4546
"fastclick": "^1.0.6",
4647
"jquery": "^3.2.1",
4748
"lin3s-css-grid": "^0.3.0",

src/LIN3S/AdminBundle/Resources/private/yarn.lock

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,10 @@ array-find-index@^1.0.1:
115115
version "1.0.2"
116116
resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
117117

118+
array-from@^2.1.1:
119+
version "2.1.1"
120+
resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195"
121+
118122
array-map@~0.0.0:
119123
version "0.0.0"
120124
resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662"

src/LIN3S/AdminBundle/Resources/public/js/bundle.min.js

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/LIN3S/AdminBundle/Resources/public/js/bundle.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)