Skip to content

Commit 00f7e2c

Browse files
author
Olga Lytvynenko
committed
MAGETWO-62745: Create modal window for subscription
1 parent 951fef1 commit 00f7e2c

File tree

3 files changed

+195
-0
lines changed

3 files changed

+195
-0
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
/**
4+
* Copyright © 2016 Magento. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
10+
<body>
11+
<referenceContainer name="content">
12+
<uiComponent name="analytics_subscription_form"/>
13+
</referenceContainer>
14+
</body>
15+
</page>
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © 2017 Magento. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
10+
<argument name="data" xsi:type="array">
11+
<item name="js_config" xsi:type="array">
12+
<item name="provider" xsi:type="string">analytics_subscription_form.analytics_subscription_form_data_source</item>
13+
<item name="deps" xsi:type="string">analytics_subscription_form.analytics_subscription_form_data_source</item>
14+
</item>
15+
<item name="label" xsi:type="string" translate="true">Analytics Subscription</item>
16+
<item name="config" xsi:type="array">
17+
<item name="dataScope" xsi:type="string">data</item>
18+
<item name="namespace" xsi:type="string">analytics_subscription_form</item>
19+
<item name="ajaxSaveType" xsi:type="string">simple</item>
20+
<item name="ajaxSave" xsi:type="string">true</item>
21+
</item>
22+
<item name="template" xsi:type="string">templates/form/collapsible</item>
23+
</argument>
24+
25+
<dataSource name="analytics_subscription_form_data_source">
26+
<argument name="dataProvider" xsi:type="configurableObject">
27+
<argument name="class" xsi:type="string">Magento\Cms\Model\Page\DataProvider</argument>
28+
<argument name="name" xsi:type="string">analytics_subscription_form_data_source</argument>
29+
<argument name="primaryFieldName" xsi:type="string">page_id</argument>
30+
<argument name="requestFieldName" xsi:type="string">page_id</argument>
31+
<argument name="data" xsi:type="array">
32+
<item name="config" xsi:type="array">
33+
<item name="submit_url" xsi:type="url" path="analytics/subscription/activate"/>
34+
<item name="postpone_url" xsi:type="url" path="analytics/subscription/postpone"/>
35+
<item name="clientConfig" xsi:type="array">
36+
<item name="validateBeforeSave" xsi:type="boolean">false</item>
37+
</item>
38+
</item>
39+
</argument>
40+
</argument>
41+
<argument name="data" xsi:type="array">
42+
<item name="js_config" xsi:type="array">
43+
<item name="component" xsi:type="string">Magento_Analytics/js/form/provider</item>
44+
</item>
45+
</argument>
46+
</dataSource>
47+
48+
<modal name="analytics_subscription_modal">
49+
<argument name="data" xsi:type="array">
50+
<item name="config" xsi:type="array">
51+
<item name="onCancel" xsi:type="string">actionCancel</item>
52+
<item name="state" xsi:type="boolean">true</item>
53+
<item name="options" xsi:type="array">
54+
<item name="title" xsi:type="string" translate="true">Subscription Confirmation</item>
55+
<item name="type" xsi:type="string">popup</item>
56+
<item name="responsive" xsi:type="boolean">true</item>
57+
<item name="innerScroll" xsi:type="boolean">true</item>
58+
<item name="autoOpen" xsi:type="boolean">true</item>
59+
<item name="buttons" xsi:type="array">
60+
<item name="0" xsi:type="array">
61+
<item name="text" xsi:type="string">Cancel</item>
62+
<item name="class" xsi:type="string">action-secondary</item>
63+
<item name="actions" xsi:type="array">
64+
<item name="0" xsi:type="array">
65+
<item name="targetName" xsi:type="string">${ $.provider }</item>
66+
<item name="actionName" xsi:type="string">postponeRequest</item>
67+
</item>
68+
<item name="1" xsi:type="array">
69+
<item name="targetName" xsi:type="string">${ $.name }</item>
70+
<item name="actionName" xsi:type="string">closeModal</item>
71+
</item>
72+
</item>
73+
</item>
74+
<item name="1" xsi:type="array">
75+
<item name="text" xsi:type="string">Ok</item>
76+
<item name="class" xsi:type="string">action-primary</item>
77+
<item name="actions" xsi:type="array">
78+
<item name="0" xsi:type="array">
79+
<item name="targetName" xsi:type="string">${ $.parentName }</item>
80+
<item name="actionName" xsi:type="string">save</item>
81+
</item>
82+
<item name="1" xsi:type="array">
83+
<item name="targetName" xsi:type="string">${ $.name }</item>
84+
<item name="actionName" xsi:type="string">closeModal</item>
85+
</item>
86+
</item>
87+
</item>
88+
</item>
89+
</item>
90+
</item>
91+
</argument>
92+
93+
<fieldset name="analytics_subscription_fieldset">
94+
<argument name="data" xsi:type="array">
95+
<item name="config" xsi:type="array">
96+
<item name="label" xsi:type="string"/>
97+
</item>
98+
</argument>
99+
100+
<field name="analytics_subscription_checkbox">
101+
<argument name="data" xsi:type="array">
102+
<item name="config" xsi:type="array">
103+
<item name="additionalClasses" xsi:type="string">admin__field-wide</item>
104+
<item name="description" xsi:type="string" translate="true">I agree with sending my system
105+
configuration and transaction data to Magento Analytics.
106+
</item>
107+
<item name="formElement" xsi:type="string">checkbox</item>
108+
<item name="dataScope" xsi:type="string">analytics_subscription_checkbox</item>
109+
<item name="valueMap" xsi:type="array">
110+
<item name="true" xsi:type="string">1</item>
111+
<item name="false" xsi:type="string">0</item>
112+
</item>
113+
<item name="value" xsi:type="string">1</item>
114+
</item>
115+
</argument>
116+
</field>
117+
</fieldset>
118+
</modal>
119+
</form>
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/**
2+
* Copyright © 2016 Magento. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
define(['jquery',
7+
'Magento_Ui/js/form/provider',
8+
'Magento_Ui/js/modal/alert'
9+
], function ($, Provider, alert) {
10+
'use strict';
11+
12+
return Provider.extend({
13+
defaults: {
14+
clientConfig: {
15+
urls: {
16+
postpone: '${ $.postpone_url }'
17+
}
18+
}
19+
},
20+
21+
/**
22+
* Send request to postpone component appearance for a certain time.
23+
*
24+
* @param {Object} [options] - Addtitional request options.
25+
* @returns {Provider} Chainable.
26+
*/
27+
postponeRequest: function (options) {
28+
var url = this.client.urls.postpone,
29+
data = this.data;
30+
31+
$.ajax({
32+
type: 'POST',
33+
url: url,
34+
data: data,
35+
showLoader: true,
36+
37+
/** @inheritdoc */
38+
success: function (xhr) {
39+
if (xhr.error) {
40+
alert({
41+
content: xhr.message
42+
});
43+
}
44+
},
45+
46+
/** @inheritdoc */
47+
error: function (xhr) {
48+
if (xhr.statusText === 'abort') {
49+
return;
50+
}
51+
52+
alert({
53+
content: 'Something went wrong.'
54+
});
55+
}
56+
}, options);
57+
58+
return this;
59+
}
60+
});
61+
});

0 commit comments

Comments
 (0)