Browse Source

Applied fixes and improvements based on PR comments

pull/988/head
Val Rudi 8 years ago
parent
commit
b4e9a024d9
  1. 15
      src/css_composer/view/CssRulesView.js
  2. 26
      test/specs/css_composer/view/CssRulesView.js

15
src/css_composer/view/CssRulesView.js

@ -78,7 +78,10 @@ module.exports = require('backbone').View.extend({
},
getMediaWidth(mediaText) {
return mediaText && mediaText.replace('(max-width: ', '').replace(')', '');
return (
mediaText &&
mediaText.replace(`(${this.config.mediaCondition}: `, '').replace(')', '')
);
},
render() {
@ -92,8 +95,14 @@ module.exports = require('backbone').View.extend({
this.em
.get('DeviceManager')
.getAll()
.forEach(function(model) {
const blockId = pfx + 'rules-' + model.get('widthMedia');
.map(model => model.get('widthMedia'))
.sort(
(left, right) =>
((right && right.replace('px', '')) || Number.MAX_VALUE) -
((left && left.replace('px', '')) || Number.MAX_VALUE)
)
.forEach(widthMedia => {
const blockId = pfx + 'rules-' + widthMedia;
$(`<div id="${blockId}"></div>`).appendTo(frag);
});

26
test/specs/css_composer/view/CssRulesView.js

@ -9,14 +9,19 @@ module.exports = {
const prefix = 'rules-';
const devices = [
{
name: 'Desktop',
width: '',
widthMedia: ''
name: 'Mobile portrait',
width: '320px',
widthMedia: '480px'
},
{
name: 'Tablet',
width: '768px',
widthMedia: '992px'
},
{
name: 'Desktop',
width: '',
widthMedia: ''
}
];
@ -48,8 +53,17 @@ module.exports = {
expect(obj.$el.html()).toExist();
const foundStylesContainers = obj.$el.find('div');
expect(foundStylesContainers.length).toEqual(devices.length);
const sortedDevicesWidthMedia = devices
.map(dvc => dvc.widthMedia)
.sort((left, right) => {
return (
((right && right.replace('px', '')) || Number.MAX_VALUE) -
((left && left.replace('px', '')) || Number.MAX_VALUE)
);
});
foundStylesContainers.each(function($styleC, idx) {
expect($styleC.id).toEqual(prefix + devices[idx].widthMedia);
expect($styleC.id).toEqual(prefix + sortedDevicesWidthMedia[idx]);
});
});
@ -61,9 +75,7 @@ module.exports = {
it('Render new rule', () => {
obj.collection.add({});
expect(
obj.$el.find(`#${prefix}${devices[0].widthMedia}`).html()
).toExist();
expect(obj.$el.find(`#${prefix}`).html()).toExist();
});
});
}

Loading…
Cancel
Save