disco_app 0.9.5 → 0.9.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/disco_app/components/ui-kit/cards/card-footer.es6.jsx +11 -0
- data/app/assets/javascripts/disco_app/components/ui-kit/cards/card-header.es6.jsx +11 -0
- data/app/assets/javascripts/disco_app/components/ui-kit/cards/card.es6.jsx +10 -3
- data/app/assets/javascripts/disco_app/components/ui-kit/cards/cart-section-title.es6.jsx +4 -2
- data/app/assets/javascripts/disco_app/components/ui-kit/tables/table.es6.jsx +22 -0
- data/app/assets/javascripts/disco_app/components/ui-kit/ui-layout/ui-layout-item.es6.jsx +11 -0
- data/app/assets/javascripts/disco_app/components/ui-kit/ui-layout/ui-layout-section.es6.jsx +19 -0
- data/app/assets/javascripts/disco_app/components/ui-kit/ui-layout/ui-layout-sections.es6.jsx +11 -0
- data/app/assets/javascripts/disco_app/components/ui-kit/ui-layout/ui-layout.es6.jsx +11 -0
- data/app/assets/javascripts/disco_app/components/ui-kit/ui-layout/ui-page-actions.es6.jsx +11 -2
- data/app/assets/stylesheets/disco_app/frame/_buttons.scss +4 -4
- data/app/assets/stylesheets/disco_app/frame/_forms.scss +1 -1
- data/app/assets/stylesheets/disco_app/ui-kit/_ui-kit.scss +35 -35
- data/app/assets/stylesheets/disco_app/ui-kit/_ui-layout.scss +5 -0
- data/app/assets/stylesheets/disco_app/ui-kit/_ui-tabs.scss +1 -1
- data/app/models/disco_app/concerns/renders_assets.rb +23 -7
- data/app/views/layouts/embedded_app.html.erb +2 -1
- data/lib/disco_app/version.rb +1 -1
- data/test/dummy/config/environments/production.rb +1 -1
- data/test/fixtures/assets/test.min.js +1 -0
- data/test/models/disco_app/renders_assets_test.rb +5 -1
- metadata +38 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d035f8b1439fcfce3409281206fb5c7491d184732b6ae470dd39e9a687bc1cf2
|
4
|
+
data.tar.gz: 5a59b8325edc3fc9f497689752e6a43d26073191b6bdc65721f46b4b650d0e1e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bbf3ba9e91a16e369e194029da37bb3999189b042be2a2cd39d2e3826dda975ddfc60655863165a742e0992a214953b1996da0e7ec7e8d41d8e6e123b9f35e38
|
7
|
+
data.tar.gz: 1e7c6492bde9f652dc376423e4787b83267e8b3ab05609c5501d1bf334aedf28cbe156b817ea86da9ea750f7bb820d72d6977d06ff38b35ff21c8ac995b9ec6e
|
@@ -1,9 +1,16 @@
|
|
1
|
-
const Card = ({ children }) => {
|
1
|
+
const Card = ({ children, aside }) => {
|
2
|
+
|
3
|
+
const className = classNames({
|
4
|
+
'next-card': true,
|
5
|
+
'next-card--aside': aside
|
6
|
+
});
|
7
|
+
|
2
8
|
return (
|
3
|
-
<div className=
|
9
|
+
<div className={className}>{children}</div>
|
4
10
|
);
|
5
11
|
};
|
6
12
|
|
7
13
|
Card.PropTypes = {
|
8
|
-
children: React.PropTypes.node
|
14
|
+
children: React.PropTypes.node,
|
15
|
+
aside: React.PropTypes.bool
|
9
16
|
};
|
@@ -1,7 +1,9 @@
|
|
1
1
|
const CardSectionTitle = ({ title }) => {
|
2
|
-
return
|
2
|
+
return (
|
3
|
+
<h3 className="next-heading">{title}</h3>
|
4
|
+
);
|
3
5
|
};
|
4
6
|
|
5
7
|
CardSectionTitle.propTypes = {
|
6
|
-
title: React.PropTypes.string
|
8
|
+
title: React.PropTypes.string.isRequired
|
7
9
|
};
|
@@ -0,0 +1,22 @@
|
|
1
|
+
const Table = ({ children, scrollable, sticky }) => {
|
2
|
+
|
3
|
+
const className = classNames({
|
4
|
+
'table-wrapper': true,
|
5
|
+
'table-wrapper--scrollable': scrollable,
|
6
|
+
'table-wrapper--sticky': sticky
|
7
|
+
});
|
8
|
+
|
9
|
+
return (
|
10
|
+
<div className={className}>
|
11
|
+
<table className="expanded">
|
12
|
+
{children}
|
13
|
+
</table>
|
14
|
+
</div>
|
15
|
+
);
|
16
|
+
};
|
17
|
+
|
18
|
+
Card.PropTypes = {
|
19
|
+
children: React.PropTypes.node.isRequired,
|
20
|
+
scrollable: React.PropTypes.bool,
|
21
|
+
sticky: React.PropTypes.bool
|
22
|
+
};
|
@@ -0,0 +1,19 @@
|
|
1
|
+
const UILayoutSection = ({ children, secondary }) => {
|
2
|
+
|
3
|
+
const className = classNames({
|
4
|
+
'ui-layout__section': true,
|
5
|
+
'ui-layout__section--primary': !secondary,
|
6
|
+
'ui-layout__section--secondary': secondary
|
7
|
+
});
|
8
|
+
|
9
|
+
return (
|
10
|
+
<div className={className}>
|
11
|
+
{children}
|
12
|
+
</div>
|
13
|
+
);
|
14
|
+
};
|
15
|
+
|
16
|
+
UILayoutSection.propTypes = {
|
17
|
+
children: React.PropTypes.node,
|
18
|
+
secondary: React.PropTypes.bool
|
19
|
+
};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
const UIPageActions = ({ label, disabled, secondaryHref, secondaryLabel }) => {
|
1
|
+
const UIPageActions = ({ label, disabled, secondaryButtons, secondaryHref, secondaryLabel }) => {
|
2
2
|
|
3
3
|
const buttonClassName = classNames({
|
4
4
|
'btn': true,
|
@@ -7,7 +7,15 @@ const UIPageActions = ({ label, disabled, secondaryHref, secondaryLabel }) => {
|
|
7
7
|
});
|
8
8
|
|
9
9
|
let secondaryElement = null;
|
10
|
-
if(
|
10
|
+
if(secondaryButtons) {
|
11
|
+
secondaryElement = (
|
12
|
+
<div className="ui-page-actions__secondary">
|
13
|
+
<div className="button-group">
|
14
|
+
{secondaryButtons}
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
);
|
18
|
+
} else if(secondaryHref) {
|
11
19
|
secondaryElement = (
|
12
20
|
<div className="ui-page-actions__secondary">
|
13
21
|
<div className="button-group">
|
@@ -34,6 +42,7 @@ const UIPageActions = ({ label, disabled, secondaryHref, secondaryLabel }) => {
|
|
34
42
|
UIPageActions.propTypes = {
|
35
43
|
label: React.PropTypes.string.isRequired,
|
36
44
|
disabled: React.PropTypes.bool,
|
45
|
+
secondaryButtons: React.PropTypes.node,
|
37
46
|
secondaryHref: React.PropTypes.string,
|
38
47
|
secondaryLabel: React.PropTypes.string
|
39
48
|
};
|
@@ -31,19 +31,19 @@
|
|
31
31
|
.btn, .btn-default {
|
32
32
|
background-color: #fcfcfc;
|
33
33
|
border: 1px solid #e3e3e3;
|
34
|
-
color: #
|
34
|
+
color: #0078bd;
|
35
35
|
|
36
36
|
&:hover, &:focus, &.focus {
|
37
37
|
background-color: #efefef;
|
38
38
|
border-color: #d6d6d6;
|
39
|
-
color: #
|
39
|
+
color: #0078bd;
|
40
40
|
}
|
41
41
|
}
|
42
42
|
|
43
43
|
// Primary button
|
44
44
|
.btn-primary {
|
45
|
-
background-color: #
|
46
|
-
border: 1px solid #
|
45
|
+
background-color: #0078bd;
|
46
|
+
border: 1px solid #0078bd;
|
47
47
|
color: #fff;
|
48
48
|
|
49
49
|
&:hover, &:focus, &.focus {
|
@@ -424,12 +424,12 @@ strong {
|
|
424
424
|
|
425
425
|
a {
|
426
426
|
text-decoration: none;
|
427
|
-
color: #
|
427
|
+
color: #0078bd;
|
428
428
|
cursor: pointer;
|
429
429
|
}
|
430
430
|
|
431
431
|
a:hover {
|
432
|
-
color: #
|
432
|
+
color: #0069a6;
|
433
433
|
text-decoration: underline;
|
434
434
|
}
|
435
435
|
|
@@ -617,7 +617,7 @@ a.type--blog-category:active {
|
|
617
617
|
}
|
618
618
|
|
619
619
|
.type--info {
|
620
|
-
color: #
|
620
|
+
color: #0078bd;
|
621
621
|
}
|
622
622
|
|
623
623
|
.type--white {
|
@@ -1357,14 +1357,14 @@ a.type--subdued:hover {
|
|
1357
1357
|
|
1358
1358
|
.btn-default, .btn {
|
1359
1359
|
background-color: #ffffff;
|
1360
|
-
color: #
|
1360
|
+
color: #0078bd;
|
1361
1361
|
border: 1px solid #d3dbe2;
|
1362
1362
|
}
|
1363
1363
|
|
1364
1364
|
.btn-default:hover, .btn:hover, .btn-default:focus, .btn:focus, .btn-default.focus, .focus.btn, .btn-default:active, .btn:active, .btn-default.active, .active.btn {
|
1365
1365
|
border: 1px solid #d3dbe2;
|
1366
1366
|
background-color: #f5f6f7;
|
1367
|
-
color: #
|
1367
|
+
color: #0078bd;
|
1368
1368
|
text-decoration: none;
|
1369
1369
|
}
|
1370
1370
|
|
@@ -1374,33 +1374,33 @@ a.type--subdued:hover {
|
|
1374
1374
|
}
|
1375
1375
|
|
1376
1376
|
.btn-primary {
|
1377
|
-
background-color: #
|
1377
|
+
background-color: #0078bd;
|
1378
1378
|
color: #ffffff;
|
1379
|
-
border: 1px solid #
|
1379
|
+
border: 1px solid #0078bd;
|
1380
1380
|
}
|
1381
1381
|
|
1382
1382
|
.btn-primary:hover, .btn-primary:focus, .btn-primary.focus, .btn-primary:active, .btn-primary.active {
|
1383
|
-
border: 1px solid #
|
1384
|
-
background-color: #
|
1383
|
+
border: 1px solid #0069a6;
|
1384
|
+
background-color: #0069a6;
|
1385
1385
|
color: #ffffff;
|
1386
1386
|
text-decoration: none;
|
1387
1387
|
}
|
1388
1388
|
|
1389
1389
|
.btn-primary:active, .btn-primary.active, .btn-primary.rte-command-active {
|
1390
1390
|
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2) inset;
|
1391
|
-
background: #
|
1391
|
+
background: #0069a6;
|
1392
1392
|
}
|
1393
1393
|
|
1394
1394
|
.btn-destroy {
|
1395
1395
|
background-color: #ffffff;
|
1396
|
-
color: #
|
1396
|
+
color: #0078bd;
|
1397
1397
|
border: 1px solid #d3dbe2;
|
1398
1398
|
}
|
1399
1399
|
|
1400
1400
|
.btn-destroy:hover, .btn-destroy:focus, .btn-destroy.focus, .btn-destroy:active, .btn-destroy.active {
|
1401
1401
|
border: 1px solid #d3dbe2;
|
1402
1402
|
background-color: #ff5d5d;
|
1403
|
-
color: #
|
1403
|
+
color: #0078bd;
|
1404
1404
|
text-decoration: none;
|
1405
1405
|
}
|
1406
1406
|
|
@@ -1670,7 +1670,7 @@ input[type="submit"].btn-disabled.btn--outline,
|
|
1670
1670
|
background-color: transparent !important;
|
1671
1671
|
border: none;
|
1672
1672
|
cursor: pointer;
|
1673
|
-
color: #
|
1673
|
+
color: #0078bd;
|
1674
1674
|
text-decoration: none;
|
1675
1675
|
vertical-align: initial;
|
1676
1676
|
}
|
@@ -1686,7 +1686,7 @@ input[type="submit"].btn-disabled.btn--outline,
|
|
1686
1686
|
|
1687
1687
|
.btn--plain:hover,
|
1688
1688
|
.btn--link:hover {
|
1689
|
-
color: #
|
1689
|
+
color: #0069a6;
|
1690
1690
|
text-decoration: underline;
|
1691
1691
|
}
|
1692
1692
|
|
@@ -1736,7 +1736,7 @@ input[type="submit"].btn-disabled.btn--outline,
|
|
1736
1736
|
}
|
1737
1737
|
|
1738
1738
|
.segmented > li .btn.btn-primary {
|
1739
|
-
border: 1px solid #
|
1739
|
+
border: 1px solid #0078bd;
|
1740
1740
|
border-right-color: #3e89b5;
|
1741
1741
|
}
|
1742
1742
|
|
@@ -1756,7 +1756,7 @@ input[type="submit"].btn-disabled.btn--outline,
|
|
1756
1756
|
}
|
1757
1757
|
|
1758
1758
|
.segmented > li:last-child .btn.btn-primary {
|
1759
|
-
border-right-color: #
|
1759
|
+
border-right-color: #0078bd;
|
1760
1760
|
}
|
1761
1761
|
|
1762
1762
|
.segmented > li.middle-child > .btn {
|
@@ -2297,7 +2297,7 @@ input[type="submit"].btn-disabled.btn--outline,
|
|
2297
2297
|
}
|
2298
2298
|
|
2299
2299
|
.next-card__section--accentuated {
|
2300
|
-
background-color: #
|
2300
|
+
background-color: #0078bd;
|
2301
2301
|
}
|
2302
2302
|
|
2303
2303
|
.next-card__section--accentuated .next-heading {
|
@@ -2560,7 +2560,7 @@ input, textarea {
|
|
2560
2560
|
}
|
2561
2561
|
|
2562
2562
|
input:focus, input.focus, textarea:focus, textarea.focus {
|
2563
|
-
border: 1px solid #
|
2563
|
+
border: 1px solid #0078bd;
|
2564
2564
|
outline: none;
|
2565
2565
|
}
|
2566
2566
|
|
@@ -2680,7 +2680,7 @@ input[type=checkbox], input[type=radio] {
|
|
2680
2680
|
}
|
2681
2681
|
|
2682
2682
|
input[type=checkbox]:focus, input[type=radio]:focus {
|
2683
|
-
outline: 2px auto #
|
2683
|
+
outline: 2px auto #0078bd;
|
2684
2684
|
}
|
2685
2685
|
|
2686
2686
|
input[type=file] {
|
@@ -2763,7 +2763,7 @@ select.error {
|
|
2763
2763
|
|
2764
2764
|
select:focus, select.focus {
|
2765
2765
|
outline: none;
|
2766
|
-
border: 1px solid #
|
2766
|
+
border: 1px solid #0078bd;
|
2767
2767
|
}
|
2768
2768
|
|
2769
2769
|
select.full-width {
|
@@ -2955,7 +2955,7 @@ span.arrow {
|
|
2955
2955
|
}
|
2956
2956
|
|
2957
2957
|
.styled-file-input .btn > span, .styled-file-input .btn--plain > span {
|
2958
|
-
color: #
|
2958
|
+
color: #0078bd;
|
2959
2959
|
}
|
2960
2960
|
|
2961
2961
|
.styled-file-input .btn > label, .styled-file-input .btn--plain > label {
|
@@ -3070,8 +3070,8 @@ span.arrow {
|
|
3070
3070
|
}
|
3071
3071
|
|
3072
3072
|
.radio-filter-input:checked + .radio-filter-all:before {
|
3073
|
-
background: #
|
3074
|
-
border-color: #
|
3073
|
+
background: #0078bd;
|
3074
|
+
border-color: #0078bd;
|
3075
3075
|
}
|
3076
3076
|
|
3077
3077
|
.radio-filter-input:checked + .radio-filter-store:before {
|
@@ -3098,7 +3098,7 @@ span.arrow {
|
|
3098
3098
|
}
|
3099
3099
|
|
3100
3100
|
input[type="checkbox"].dom-switch ~ .dom-switch-button {
|
3101
|
-
color: #
|
3101
|
+
color: #0078bd;
|
3102
3102
|
font-weight: normal;
|
3103
3103
|
cursor: pointer;
|
3104
3104
|
}
|
@@ -3243,7 +3243,7 @@ input[type=button].next-input--button {
|
|
3243
3243
|
}
|
3244
3244
|
|
3245
3245
|
.next-input:focus, .next-input--stylized:focus, .next-textarea:focus {
|
3246
|
-
border: 1px solid #
|
3246
|
+
border: 1px solid #0078bd;
|
3247
3247
|
}
|
3248
3248
|
|
3249
3249
|
.next-form.next-form--full-width {
|
@@ -3322,7 +3322,7 @@ input[type=submit].next-input--submit {
|
|
3322
3322
|
padding: 10px 15px;
|
3323
3323
|
border: none;
|
3324
3324
|
border-radius: 3px;
|
3325
|
-
background-color: #
|
3325
|
+
background-color: #0078bd;
|
3326
3326
|
color: #ffffff;
|
3327
3327
|
font-size: 13px;
|
3328
3328
|
}
|
@@ -3576,11 +3576,11 @@ input[type=checkbox].next-checkbox {
|
|
3576
3576
|
}
|
3577
3577
|
|
3578
3578
|
.next-radio:active ~ .next-radio--styled, .next-radio:focus .next-radio--styled {
|
3579
|
-
border-color: #
|
3579
|
+
border-color: #0078bd;
|
3580
3580
|
}
|
3581
3581
|
|
3582
3582
|
.next-radio:checked ~ .next-radio--styled::after {
|
3583
|
-
background-color: #
|
3583
|
+
background-color: #0078bd;
|
3584
3584
|
-webkit-transform: translate(-50%, -50%) scale(1);
|
3585
3585
|
-ms-transform: translate(-50%, -50%) scale(1);
|
3586
3586
|
transform: translate(-50%, -50%) scale(1);
|
@@ -3611,11 +3611,11 @@ input[type=checkbox].next-checkbox {
|
|
3611
3611
|
}
|
3612
3612
|
|
3613
3613
|
.next-checkbox:active ~ .next-checkbox--styled, .next-checkbox:focus ~ .next-checkbox--styled {
|
3614
|
-
border-color: #
|
3614
|
+
border-color: #0078bd;
|
3615
3615
|
}
|
3616
3616
|
|
3617
3617
|
.next-input--is-focused {
|
3618
|
-
border: 1px solid #
|
3618
|
+
border: 1px solid #0078bd;
|
3619
3619
|
}
|
3620
3620
|
|
3621
3621
|
.next-input--has-error {
|
@@ -3634,7 +3634,7 @@ input[type=checkbox].next-checkbox {
|
|
3634
3634
|
}
|
3635
3635
|
|
3636
3636
|
.next-select__wrapper.next-input--is-focused {
|
3637
|
-
border-color: #
|
3637
|
+
border-color: #0078bd;
|
3638
3638
|
}
|
3639
3639
|
|
3640
3640
|
.next-select__wrapper .next-icon {
|
@@ -3747,7 +3747,7 @@ input[type=checkbox].next-checkbox {
|
|
3747
3747
|
}
|
3748
3748
|
|
3749
3749
|
.next-field--connected:focus:not(.btn) + .next-field--connected, .next-field--connected.next-input--is-focused + .next-field--connected {
|
3750
|
-
border-left: solid 1px #
|
3750
|
+
border-left: solid 1px #0078bd;
|
3751
3751
|
}
|
3752
3752
|
|
3753
3753
|
.next-field--connected.btn:focus + .next-field--connected {
|
@@ -4041,11 +4041,11 @@ input[type=checkbox].next-checkbox {
|
|
4041
4041
|
}
|
4042
4042
|
|
4043
4043
|
.next-icon--color-blue {
|
4044
|
-
fill: #
|
4044
|
+
fill: #0078bd;
|
4045
4045
|
}
|
4046
4046
|
|
4047
4047
|
.next-icon--blue {
|
4048
|
-
fill: #
|
4048
|
+
fill: #0078bd;
|
4049
4049
|
}
|
4050
4050
|
|
4051
4051
|
.next-icon--color-blue-lighter {
|
@@ -4474,7 +4474,7 @@ th.is-sortable {
|
|
4474
4474
|
|
4475
4475
|
th.is-sortable:hover {
|
4476
4476
|
background: #eff9fd;
|
4477
|
-
color: #
|
4477
|
+
color: #0078bd;
|
4478
4478
|
}
|
4479
4479
|
|
4480
4480
|
th.sorted-desc > span, th.sorted-asc > span {
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'render_anywhere'
|
2
|
+
require 'uglifier'
|
2
3
|
|
3
4
|
module DiscoApp::Concerns::RendersAssets
|
4
5
|
extend ActiveSupport::Concern
|
@@ -34,9 +35,12 @@ module DiscoApp::Concerns::RendersAssets
|
|
34
35
|
# tags created or updated after being rendered to the
|
35
36
|
# storefront.
|
36
37
|
#
|
37
|
-
#
|
38
|
-
#
|
39
|
-
#
|
38
|
+
# minify: Optional. Whether Javascript assets should be minified
|
39
|
+
# after being rendered. Defaults to true in production
|
40
|
+
# environments, false otherwise. Note that stylesheet
|
41
|
+
# assets, when uploaded as .scss files, are
|
42
|
+
# automatically minified by Shopify, so we don't need to
|
43
|
+
# do it on our end.
|
40
44
|
#
|
41
45
|
def renders_assets(*asset_groups)
|
42
46
|
options = asset_groups.last.is_a?(Hash) ? asset_groups.pop : {}
|
@@ -62,7 +66,8 @@ module DiscoApp::Concerns::RendersAssets
|
|
62
66
|
{
|
63
67
|
assets: nil,
|
64
68
|
triggered_by: nil,
|
65
|
-
|
69
|
+
script_tags: nil,
|
70
|
+
minify: Rails.env.production?
|
66
71
|
}
|
67
72
|
end
|
68
73
|
|
@@ -95,7 +100,7 @@ module DiscoApp::Concerns::RendersAssets
|
|
95
100
|
shopify_asset = shop.temp {
|
96
101
|
ShopifyAPI::Asset.create(
|
97
102
|
key: asset,
|
98
|
-
value: render_asset_group_asset(asset, public_urls)
|
103
|
+
value: render_asset_group_asset(asset, public_urls, options)
|
99
104
|
)
|
100
105
|
}
|
101
106
|
|
@@ -117,8 +122,8 @@ module DiscoApp::Concerns::RendersAssets
|
|
117
122
|
private
|
118
123
|
|
119
124
|
# Render an individual asset within an asset group.
|
120
|
-
def render_asset_group_asset(asset, public_urls)
|
121
|
-
render_asset_renderer.render_to_string(
|
125
|
+
def render_asset_group_asset(asset, public_urls, options)
|
126
|
+
rendered_asset = render_asset_renderer.render_to_string(
|
122
127
|
template: asset,
|
123
128
|
layout: nil,
|
124
129
|
locals: {
|
@@ -126,6 +131,17 @@ module DiscoApp::Concerns::RendersAssets
|
|
126
131
|
:@public_urls => public_urls
|
127
132
|
}
|
128
133
|
)
|
134
|
+
|
135
|
+
if should_be_minified?(asset, options)
|
136
|
+
::Uglifier.compile(rendered_asset)
|
137
|
+
else
|
138
|
+
rendered_asset
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
# Return true if the given asset should be minified with Uglifier.
|
143
|
+
def should_be_minified?(asset, options)
|
144
|
+
asset.to_s.end_with?('.js') and options[:minify]
|
129
145
|
end
|
130
146
|
|
131
147
|
def render_asset_renderer
|
@@ -24,7 +24,8 @@
|
|
24
24
|
ShopifyApp.Bar.initialize({
|
25
25
|
title: "<%= yield(:title) %>",
|
26
26
|
icon: "<%= image_url("disco_app/icon.svg") %>",
|
27
|
-
buttons: <%= content_for?(:buttons) ? content_for(:buttons) : '{}'
|
27
|
+
buttons: <%= content_for?(:buttons) ? content_for(:buttons) : '{}' %>,
|
28
|
+
breadcrumb: <%= content_for?(:breadcrumb) ? content_for(:breadcrumb) : 'undefined' %>
|
28
29
|
});
|
29
30
|
</script>
|
30
31
|
|
data/lib/disco_app/version.rb
CHANGED
@@ -32,7 +32,7 @@ Rails.application.configure do
|
|
32
32
|
|
33
33
|
# Compress JavaScripts and CSS.
|
34
34
|
config.assets.js_compressor = :uglifier
|
35
|
-
|
35
|
+
config.assets.css_compressor = :sass
|
36
36
|
|
37
37
|
# Do not fallback to assets pipeline if a precompiled asset is missed.
|
38
38
|
config.assets.compile = false
|
@@ -0,0 +1 @@
|
|
1
|
+
var locale="sv";
|
@@ -61,7 +61,11 @@ class DiscoApp::RendersAssetsTest < ActiveSupport::TestCase
|
|
61
61
|
##
|
62
62
|
|
63
63
|
test 'individual js asset renders correctly' do
|
64
|
-
assert_equal asset_fixture('test.js'), @js_configuration.send('render_asset_group_asset', 'assets/test.js', {})
|
64
|
+
assert_equal asset_fixture('test.js'), @js_configuration.send('render_asset_group_asset', 'assets/test.js', {}, {})
|
65
|
+
end
|
66
|
+
|
67
|
+
test 'individual js asset renders correctly with minification' do
|
68
|
+
assert_equal asset_fixture('test.min.js').strip, @js_configuration.send('render_asset_group_asset', 'assets/test.js', {}, minify: true)
|
65
69
|
end
|
66
70
|
|
67
71
|
test 'js asset group renders and uploads to shopify' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: disco_app
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gavin Ballard
|
@@ -66,20 +66,6 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 4.0.2
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: bootstrap-sass
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: 3.3.5.1
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 3.3.5.1
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: jquery-rails
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -234,6 +220,34 @@ dependencies:
|
|
234
220
|
- - "~>"
|
235
221
|
- !ruby/object:Gem::Version
|
236
222
|
version: 0.0.12
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: sass
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - "~>"
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: 3.4.22
|
230
|
+
type: :runtime
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - "~>"
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: 3.4.22
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: uglifier
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ">="
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: 1.3.0
|
244
|
+
type: :runtime
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: 1.3.0
|
237
251
|
- !ruby/object:Gem::Dependency
|
238
252
|
name: sqlite3
|
239
253
|
requirement: !ruby/object:Gem::Requirement
|
@@ -338,6 +352,8 @@ files:
|
|
338
352
|
- app/assets/javascripts/disco_app/components/custom/shop_list.js.jsx
|
339
353
|
- app/assets/javascripts/disco_app/components/custom/shop_row.js.jsx
|
340
354
|
- app/assets/javascripts/disco_app/components/custom/shopify_admin_link.js.jsx
|
355
|
+
- app/assets/javascripts/disco_app/components/ui-kit/cards/card-footer.es6.jsx
|
356
|
+
- app/assets/javascripts/disco_app/components/ui-kit/cards/card-header.es6.jsx
|
341
357
|
- app/assets/javascripts/disco_app/components/ui-kit/cards/card-section.es6.jsx
|
342
358
|
- app/assets/javascripts/disco_app/components/ui-kit/cards/card.es6.jsx
|
343
359
|
- app/assets/javascripts/disco_app/components/ui-kit/cards/cart-section-title.es6.jsx
|
@@ -351,9 +367,14 @@ files:
|
|
351
367
|
- app/assets/javascripts/disco_app/components/ui-kit/icons/icon-chevron.es6.jsx
|
352
368
|
- app/assets/javascripts/disco_app/components/ui-kit/icons/next-icon.es6.jsx
|
353
369
|
- app/assets/javascripts/disco_app/components/ui-kit/input_select.es6.jsx
|
370
|
+
- app/assets/javascripts/disco_app/components/ui-kit/tables/table.es6.jsx
|
354
371
|
- app/assets/javascripts/disco_app/components/ui-kit/ui-layout/ui-annotated-section.es6.jsx
|
355
372
|
- app/assets/javascripts/disco_app/components/ui-kit/ui-layout/ui-empty-state.es6.jsx
|
356
373
|
- app/assets/javascripts/disco_app/components/ui-kit/ui-layout/ui-footer-help.es6.jsx
|
374
|
+
- app/assets/javascripts/disco_app/components/ui-kit/ui-layout/ui-layout-item.es6.jsx
|
375
|
+
- app/assets/javascripts/disco_app/components/ui-kit/ui-layout/ui-layout-section.es6.jsx
|
376
|
+
- app/assets/javascripts/disco_app/components/ui-kit/ui-layout/ui-layout-sections.es6.jsx
|
377
|
+
- app/assets/javascripts/disco_app/components/ui-kit/ui-layout/ui-layout.es6.jsx
|
357
378
|
- app/assets/javascripts/disco_app/components/ui-kit/ui-layout/ui-page-actions.es6.jsx
|
358
379
|
- app/assets/javascripts/disco_app/disco_app.js
|
359
380
|
- app/assets/javascripts/disco_app/frame.js
|
@@ -621,6 +642,7 @@ files:
|
|
621
642
|
- test/fixtures/api/widget_store/shop.json
|
622
643
|
- test/fixtures/api/widget_store/webhooks.json
|
623
644
|
- test/fixtures/assets/test.js
|
645
|
+
- test/fixtures/assets/test.min.js
|
624
646
|
- test/fixtures/disco_app/application_charges.yml
|
625
647
|
- test/fixtures/disco_app/plan_codes.yml
|
626
648
|
- test/fixtures/disco_app/plans.yml
|
@@ -768,6 +790,7 @@ test_files:
|
|
768
790
|
- test/fixtures/api/widget_store/charges/activate_application_charge_request.json
|
769
791
|
- test/fixtures/api/widget_store/shop.json
|
770
792
|
- test/fixtures/assets/test.js
|
793
|
+
- test/fixtures/assets/test.min.js
|
771
794
|
- test/fixtures/widget_configurations.yml
|
772
795
|
- test/fixtures/js_configurations.yml
|
773
796
|
- test/fixtures/disco_app/plan_codes.yml
|