@social-mail/social-mail-client 1.2.641 → 1.2.643
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/AdminAppIndex.pack.js +526 -566
- package/dist/admin/AdminAppIndex.pack.js.map +1 -1
- package/dist/admin/AdminAppIndex.pack.min.js +9 -13
- package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
- package/dist/admin/commands/AdminCommands.d.ts +0 -1
- package/dist/admin/commands/AdminCommands.d.ts.map +1 -1
- package/dist/admin/commands/AdminCommands.js +0 -4
- package/dist/admin/commands/AdminCommands.js.map +1 -1
- package/dist/admin/drawer/AdminDrawer.d.ts.map +1 -1
- package/dist/admin/drawer/AdminDrawer.js +0 -4
- package/dist/admin/drawer/AdminDrawer.js.map +1 -1
- package/dist/common/commands/CommonCommands.d.ts +1 -1
- package/dist/common/commands/CommonCommands.d.ts.map +1 -1
- package/dist/common/commands/CommonCommands.js +3 -3
- package/dist/common/commands/CommonCommands.js.map +1 -1
- package/dist/common/controls/phone-editor/PhoneEditor.d.ts +3 -0
- package/dist/common/controls/phone-editor/PhoneEditor.d.ts.map +1 -1
- package/dist/common/controls/phone-editor/PhoneEditor.js +25 -4
- package/dist/common/controls/phone-editor/PhoneEditor.js.map +1 -1
- package/dist/common/pages/stores/StoreDetailPage.d.ts +2 -2
- package/dist/common/pages/stores/StoreDetailPage.d.ts.map +1 -1
- package/dist/common/pages/stores/StoreDetailPage.js +2 -8
- package/dist/common/pages/stores/StoreDetailPage.js.map +1 -1
- package/dist/common/pages/stores/payment-gateway/PaymentGatewayEditorPage.d.ts +10 -0
- package/dist/common/pages/stores/payment-gateway/PaymentGatewayEditorPage.d.ts.map +1 -0
- package/dist/common/pages/stores/payment-gateway/PaymentGatewayEditorPage.js +87 -0
- package/dist/common/pages/stores/payment-gateway/PaymentGatewayEditorPage.js.map +1 -0
- package/dist/common/pages/stores/payment-gateway/PaymentGatewayListPage.d.ts +23 -0
- package/dist/common/pages/stores/payment-gateway/PaymentGatewayListPage.d.ts.map +1 -0
- package/dist/common/pages/stores/payment-gateway/PaymentGatewayListPage.js +129 -0
- package/dist/common/pages/stores/payment-gateway/PaymentGatewayListPage.js.map +1 -0
- package/dist/common/pages/stores/products/EditProductListPage.d.ts +2 -2
- package/dist/common/pages/stores/products/EditProductListPage.d.ts.map +1 -1
- package/dist/common/pages/stores/products/EditProductListPage.js.map +1 -1
- package/dist/common/pages/stores/settings/EditSettingsPage.d.ts +2 -2
- package/dist/common/pages/stores/settings/EditSettingsPage.d.ts.map +1 -1
- package/dist/common/pages/stores/settings/EditSettingsPage.js +4 -4
- package/dist/common/pages/stores/settings/EditSettingsPage.js.map +1 -1
- package/dist/model/model.d.ts +50 -51
- package/dist/model/model.d.ts.map +1 -1
- package/dist/model/model.js +195 -205
- package/dist/model/model.js.map +1 -1
- package/dist/public/channel/ChannelView.pack.js +303 -261
- package/dist/public/channel/ChannelView.pack.js.map +1 -1
- package/dist/public/channel/ChannelView.pack.min.js +2 -2
- package/dist/public/channel/ChannelView.pack.min.js.map +1 -1
- package/dist/public/preview/zip/DownloadZip.pack.js +303 -261
- package/dist/public/preview/zip/DownloadZip.pack.js.map +1 -1
- package/dist/public/preview/zip/DownloadZip.pack.min.js +1 -1
- package/dist/public/preview/zip/DownloadZip.pack.min.js.map +1 -1
- package/dist/public/store/Store.d.ts +2 -2
- package/dist/public/store/Store.d.ts.map +1 -1
- package/dist/public/store/Store.js +29 -7
- package/dist/public/store/Store.js.map +1 -1
- package/dist/public/store/Store.pack.js +19655 -18064
- package/dist/public/store/Store.pack.js.map +1 -1
- package/dist/public/store/Store.pack.min.js +370 -161
- package/dist/public/store/Store.pack.min.js.map +1 -1
- package/dist/public/store/StoreItemDetailView.d.ts +1 -0
- package/dist/public/store/StoreItemDetailView.d.ts.map +1 -1
- package/dist/public/store/StoreItemDetailView.js +24 -8
- package/dist/public/store/StoreItemDetailView.js.map +1 -1
- package/dist/public/store/StoreItemListView.d.ts.map +1 -1
- package/dist/public/store/StoreItemListView.js +7 -4
- package/dist/public/store/StoreItemListView.js.map +1 -1
- package/dist/public/store/StoreUrlService.d.ts +22 -15
- package/dist/public/store/StoreUrlService.d.ts.map +1 -1
- package/dist/public/store/StoreUrlService.js +39 -12
- package/dist/public/store/StoreUrlService.js.map +1 -1
- package/dist/public/store/cart/ShoppingCart.pack.js +303 -261
- package/dist/public/store/cart/ShoppingCart.pack.js.map +1 -1
- package/dist/public/store/cart/ShoppingCart.pack.min.js +2 -2
- package/dist/public/store/cart/ShoppingCart.pack.min.js.map +1 -1
- package/dist/public/user/SiteLogin.d.ts +28 -0
- package/dist/public/user/SiteLogin.d.ts.map +1 -0
- package/dist/public/user/SiteLogin.js +224 -0
- package/dist/public/user/SiteLogin.js.map +1 -0
- package/dist/public/user/WebSiteUserService.d.ts +10 -0
- package/dist/public/user/WebSiteUserService.d.ts.map +1 -0
- package/dist/public/user/WebSiteUserService.js +52 -0
- package/dist/public/user/WebSiteUserService.js.map +1 -0
- package/dist/services/store/StoreItemService.d.ts +1 -1
- package/dist/services/store/StoreItemService.d.ts.map +1 -1
- package/dist/services/store/StoreItemService.js +6 -6
- package/dist/services/store/StoreItemService.js.map +1 -1
- package/dist/services/store/StoreService.d.ts +5 -5
- package/dist/services/store/StoreService.d.ts.map +1 -1
- package/dist/services/store/StoreService.js +7 -7
- package/dist/services/store/StoreService.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/web/AppIndex.pack.js +528 -301
- package/dist/web/AppIndex.pack.js.map +1 -1
- package/dist/web/AppIndex.pack.min.js +8 -8
- package/dist/web/AppIndex.pack.min.js.map +1 -1
- package/dist/web/drawer/AppDrawer.d.ts +1 -1
- package/dist/web/drawer/AppDrawer.js +2 -2
- package/dist/web/drawer/AppDrawer.js.map +1 -1
- package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.d.ts +1 -1
- package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.d.ts.map +1 -1
- package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.js +108 -56
- package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.js.map +1 -1
- package/node_modules/@web-atoms/entity/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@web-atoms/entity/package.json +1 -1
- package/node_modules/@web-atoms/entity/src/services/BaseEntityService.ts +109 -54
- package/package.json +2 -2
- package/src/admin/commands/AdminCommands.ts +0 -5
- package/src/admin/drawer/AdminDrawer.tsx +0 -5
- package/src/common/commands/CommonCommands.ts +3 -4
- package/src/common/controls/phone-editor/PhoneEditor.tsx +24 -1
- package/src/common/pages/stores/StoreDetailPage.tsx +4 -8
- package/src/common/pages/stores/payment-gateway/PaymentGatewayEditorPage.tsx +62 -0
- package/src/common/pages/stores/payment-gateway/PaymentGatewayListPage.tsx +94 -0
- package/src/common/pages/stores/products/EditProductListPage.tsx +2 -2
- package/src/common/pages/stores/settings/EditSettingsPage.tsx +3 -3
- package/src/model/model.ts +69 -86
- package/src/public/store/Store.tsx +18 -4
- package/src/public/store/StoreItemDetailView.tsx +17 -4
- package/src/public/store/StoreItemListView.tsx +4 -2
- package/src/public/store/StoreUrlService.ts +62 -27
- package/src/public/user/SiteLogin.tsx +239 -0
- package/src/public/user/WebSiteUserService.ts +39 -0
- package/src/services/store/StoreItemService.ts +6 -4
- package/src/services/store/StoreService.ts +11 -11
- package/src/web/drawer/AppDrawer.tsx +2 -2
- package/dist/admin/pages/stores/AdminStoreDetailPage.d.ts +0 -11
- package/dist/admin/pages/stores/AdminStoreDetailPage.d.ts.map +0 -1
- package/dist/admin/pages/stores/AdminStoreDetailPage.js +0 -122
- package/dist/admin/pages/stores/AdminStoreDetailPage.js.map +0 -1
- package/dist/admin/pages/stores/AdminStoreList.d.ts +0 -13
- package/dist/admin/pages/stores/AdminStoreList.d.ts.map +0 -1
- package/dist/admin/pages/stores/AdminStoreList.js +0 -131
- package/dist/admin/pages/stores/AdminStoreList.js.map +0 -1
- package/dist/common/pages/stores/templates/EditStoreTemplatesPage.d.ts +0 -11
- package/dist/common/pages/stores/templates/EditStoreTemplatesPage.d.ts.map +0 -1
- package/dist/common/pages/stores/templates/EditStoreTemplatesPage.js +0 -28
- package/dist/common/pages/stores/templates/EditStoreTemplatesPage.js.map +0 -1
- package/src/admin/pages/stores/AdminStoreDetailPage.tsx +0 -102
- package/src/admin/pages/stores/AdminStoreList.tsx +0 -109
- package/src/common/pages/stores/templates/EditStoreTemplatesPage.tsx +0 -19
|
@@ -71,44 +71,9 @@ export interface ICollection<T> extends Array<T> {
|
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
const ArrayPrototype = Array.prototype as any;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
ArrayPrototype.selectMany = function(x) {
|
|
78
|
-
const r = [];
|
|
79
|
-
for (const iterator of this) {
|
|
80
|
-
const items = x(iterator);
|
|
81
|
-
if (Array.isArray(items)) {
|
|
82
|
-
r.push(... items);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return r;
|
|
86
|
-
};
|
|
87
|
-
ArrayPrototype.firstOrDefault = function(f) {
|
|
88
|
-
if (f) {
|
|
89
|
-
return ArrayPrototype.find.apply(this, arguments);
|
|
90
|
-
}
|
|
91
|
-
return this[0];
|
|
92
|
-
};
|
|
93
|
-
ArrayPrototype.sum = function(f) {
|
|
94
|
-
let n = 0;
|
|
95
|
-
for (const iterator of this) {
|
|
96
|
-
n += f(iterator) ?? 0;
|
|
97
|
-
}
|
|
98
|
-
return n;
|
|
99
|
-
};
|
|
100
|
-
ArrayPrototype.average = function(f) {
|
|
101
|
-
if (this.length === 0) {
|
|
102
|
-
return 0;
|
|
103
|
-
}
|
|
104
|
-
let n = 0;
|
|
105
|
-
for (const iterator of this) {
|
|
106
|
-
n += f(iterator) ?? 0;
|
|
107
|
-
}
|
|
108
|
-
return n / this.length;
|
|
109
|
-
};
|
|
110
|
-
ArrayPrototype.orderBy = function(f) {
|
|
111
|
-
return this.sort((a, b) => {
|
|
74
|
+
|
|
75
|
+
const orderBy = function (f) {
|
|
76
|
+
return [].concat(this).sort((a, b) => {
|
|
112
77
|
const ak = f(a);
|
|
113
78
|
const bk = f(b);
|
|
114
79
|
if (typeof ak === "string") {
|
|
@@ -117,9 +82,9 @@ ArrayPrototype.orderBy = function(f) {
|
|
|
117
82
|
return ak - bk;
|
|
118
83
|
});
|
|
119
84
|
};
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
return this.sort((a, b) => {
|
|
85
|
+
|
|
86
|
+
const orderByDescending = function (f) {
|
|
87
|
+
return [].concat(this).sort((a, b) => {
|
|
123
88
|
const ak = f(a);
|
|
124
89
|
const bk = f(b);
|
|
125
90
|
if (typeof ak === "string") {
|
|
@@ -128,19 +93,109 @@ ArrayPrototype.orderByDescending = function(f) {
|
|
|
128
93
|
return bk - ak;
|
|
129
94
|
});
|
|
130
95
|
};
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
96
|
+
|
|
97
|
+
Object.defineProperties(ArrayPrototype, {
|
|
98
|
+
where: {
|
|
99
|
+
enumerable: false,
|
|
100
|
+
value: ArrayPrototype.filter,
|
|
101
|
+
configurable: true
|
|
102
|
+
},
|
|
103
|
+
any: {
|
|
104
|
+
enumerable: false,
|
|
105
|
+
value: ArrayPrototype.some,
|
|
106
|
+
configurable: true
|
|
107
|
+
},
|
|
108
|
+
select: {
|
|
109
|
+
enumerable: false,
|
|
110
|
+
value: ArrayPrototype.map,
|
|
111
|
+
configurable: true
|
|
112
|
+
},
|
|
113
|
+
selectMany: {
|
|
114
|
+
enumerable: false,
|
|
115
|
+
value(x) {
|
|
116
|
+
const r = [];
|
|
117
|
+
for (const iterator of this) {
|
|
118
|
+
const items = x(iterator);
|
|
119
|
+
if (Array.isArray(items)) {
|
|
120
|
+
r.push(... items);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return r;
|
|
124
|
+
},
|
|
125
|
+
configurable: true
|
|
126
|
+
},
|
|
127
|
+
firstOrDefault: {
|
|
128
|
+
enumerable: false,
|
|
129
|
+
value(f) {
|
|
130
|
+
if (f) {
|
|
131
|
+
return ArrayPrototype.find.apply(this, arguments);
|
|
132
|
+
}
|
|
133
|
+
return this[0];
|
|
134
|
+
},
|
|
135
|
+
configurable: true
|
|
136
|
+
},
|
|
137
|
+
sum: {
|
|
138
|
+
enumerable: false,
|
|
139
|
+
value(f) {
|
|
140
|
+
let n = 0;
|
|
141
|
+
for (const iterator of this) {
|
|
142
|
+
n += f(iterator) ?? 0;
|
|
143
|
+
}
|
|
144
|
+
return n;
|
|
145
|
+
},
|
|
146
|
+
configurable: true
|
|
147
|
+
},
|
|
148
|
+
average: {
|
|
149
|
+
enumerable: false,
|
|
150
|
+
value(f) {
|
|
151
|
+
if (this.length === 0) {
|
|
152
|
+
return 0;
|
|
153
|
+
}
|
|
154
|
+
let n = 0;
|
|
155
|
+
for (const iterator of this) {
|
|
156
|
+
n += f(iterator) ?? 0;
|
|
157
|
+
}
|
|
158
|
+
return n / this.length;
|
|
159
|
+
},
|
|
160
|
+
configurable: true
|
|
161
|
+
},
|
|
162
|
+
orderBy: {
|
|
163
|
+
enumerable: false,
|
|
164
|
+
value: orderBy,
|
|
165
|
+
configurable: true
|
|
166
|
+
},
|
|
167
|
+
thenBy: {
|
|
168
|
+
enumerable: false,
|
|
169
|
+
value: orderBy, configurable: false
|
|
170
|
+
},
|
|
171
|
+
orderByDescending: {
|
|
172
|
+
enumerable: false,
|
|
173
|
+
value: orderByDescending,
|
|
174
|
+
configurable: true
|
|
175
|
+
},
|
|
176
|
+
thenByDescending: {
|
|
177
|
+
enumerable: false,
|
|
178
|
+
value: orderByDescending,
|
|
179
|
+
configurable: false
|
|
180
|
+
},
|
|
181
|
+
count: {
|
|
182
|
+
enumerable: false,
|
|
183
|
+
value(f) {
|
|
184
|
+
if (!f) {
|
|
185
|
+
return this.length;
|
|
186
|
+
}
|
|
187
|
+
let length = 0;
|
|
188
|
+
for (const iterator of this) {
|
|
189
|
+
if (f(iterator)) {
|
|
190
|
+
length++;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return length;
|
|
194
|
+
},
|
|
195
|
+
configurable: false
|
|
141
196
|
}
|
|
142
|
-
|
|
143
|
-
};
|
|
197
|
+
|
|
198
|
+
});
|
|
144
199
|
|
|
145
200
|
export interface IMethod {
|
|
146
201
|
select?: [string, ... any[]];
|
|
@@ -380,7 +435,7 @@ export default abstract class BaseEntityService extends HttpSession {
|
|
|
380
435
|
entity,
|
|
381
436
|
args
|
|
382
437
|
}
|
|
383
|
-
})
|
|
438
|
+
}) as Promise<T>;
|
|
384
439
|
}
|
|
385
440
|
|
|
386
441
|
public save<T extends IClrEntity>(body: T, cloner?: (c: Cloner<T>) => Cloner<T>, trace?: boolean): Promise<T>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@social-mail/social-mail-client",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.643",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"@web-atoms/data-styles": "^1.0.123",
|
|
18
18
|
"@web-atoms/date-time": "^1.1.0",
|
|
19
19
|
"@web-atoms/email-dom": "^1.0.32",
|
|
20
|
-
"@web-atoms/entity": "^2.4.
|
|
20
|
+
"@web-atoms/entity": "^2.4.60",
|
|
21
21
|
"@web-atoms/module-loader": "^2.1.43",
|
|
22
22
|
"@web-atoms/web-controls": "^2.4.56",
|
|
23
23
|
"reflect-metadata": "^0.1.13",
|
|
@@ -47,11 +47,6 @@ export default class AdminCommands extends CommonCommands {
|
|
|
47
47
|
openPage: () => import("../pages/repair/RepairPage")
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
-
static editStores = Command.create({
|
|
51
|
-
route: "/admin/stores",
|
|
52
|
-
openPage: () => import("../pages/stores/AdminStoreList")
|
|
53
|
-
});
|
|
54
|
-
|
|
55
50
|
static editSmsSources = Command.create({
|
|
56
51
|
route: "/admin/sms-sources",
|
|
57
52
|
openPage: () => import("../pages/incoming-sms-sources/EditIncomingSmsSourcePage")
|
|
@@ -81,11 +81,6 @@ export default class AdminDrawer extends Drawer {
|
|
|
81
81
|
label="Sms Sources"
|
|
82
82
|
commandLink={AdminCommands.editSmsSources.displayRoute({})}
|
|
83
83
|
/>
|
|
84
|
-
<MenuItem
|
|
85
|
-
icon="fas fa-dollar"
|
|
86
|
-
label="Stores"
|
|
87
|
-
commandLink={AdminCommands.editStores.displayRoute({})}
|
|
88
|
-
/>
|
|
89
84
|
<MenuItem
|
|
90
85
|
icon="fas fa-gear"
|
|
91
86
|
label="Config"
|
|
@@ -75,12 +75,11 @@ export default class CommonCommands extends Commands {
|
|
|
75
75
|
openPage: () => import("../pages/stores/settings/EditSettingsPage")
|
|
76
76
|
});
|
|
77
77
|
|
|
78
|
-
static
|
|
79
|
-
route: "/stores/
|
|
80
|
-
openPage: () => import("../pages/stores/
|
|
78
|
+
static paymentConfig = Command.create({
|
|
79
|
+
route: "/stores/payment-gateways/{storeID}",
|
|
80
|
+
openPage: () => import("../pages/stores/payment-gateway/PaymentGatewayListPage")
|
|
81
81
|
});
|
|
82
82
|
|
|
83
|
-
|
|
84
83
|
static editProduct = Command.create({
|
|
85
84
|
route: "/stores/product/{storeItemID}",
|
|
86
85
|
routeOrder: 200,
|
|
@@ -1,12 +1,35 @@
|
|
|
1
1
|
import XNode from "@web-atoms/core/dist/core/XNode";
|
|
2
2
|
import { AtomControl } from "@web-atoms/core/dist/web/controls/AtomControl";
|
|
3
|
-
import { CountrySelect } from "../countries/CountrySelect";
|
|
3
|
+
import { CountrySelect, formatForCountry, isdForCountry } from "../countries/CountrySelect";
|
|
4
|
+
import Bind from "@web-atoms/core/dist/core/Bind";
|
|
5
|
+
import MaskedInput from "@web-atoms/web-controls/dist/basic/MaskedInput";
|
|
4
6
|
|
|
5
7
|
export default class PhoneEditor extends AtomControl {
|
|
8
|
+
|
|
9
|
+
country: any;
|
|
10
|
+
|
|
11
|
+
phoneNumberText: any;
|
|
12
|
+
|
|
13
|
+
value: any;
|
|
14
|
+
|
|
6
15
|
protected preCreate(): void {
|
|
16
|
+
this.country = "IN";
|
|
17
|
+
this.phoneNumberText = "";
|
|
18
|
+
this.value = null;
|
|
7
19
|
this.render(<div data-layout="row">
|
|
8
20
|
<CountrySelect
|
|
21
|
+
value={Bind.twoWaysImmediate(() => this.country)}
|
|
22
|
+
/>
|
|
23
|
+
<MaskedInput
|
|
24
|
+
data-mask={Bind.oneWayAsync(() => formatForCountry(this.country))}
|
|
25
|
+
value={Bind.twoWaysImmediate(() => this.phoneNumberText)}
|
|
9
26
|
/>
|
|
10
27
|
</div>);
|
|
28
|
+
|
|
29
|
+
this.bindEvent(this.element, "input", async () => {
|
|
30
|
+
const isdCode = await isdForCountry(this.country);
|
|
31
|
+
const phoneNumber = this.phoneNumberText.replace(/[^0-9]/g,"");
|
|
32
|
+
this.value = isdCode.startsWith("+") ? isdCode + phoneNumber: `+${isdCode}${phoneNumber}`;
|
|
33
|
+
});
|
|
11
34
|
}
|
|
12
35
|
}
|
|
@@ -4,7 +4,7 @@ import AtomRepeater from "@web-atoms/web-controls/dist/basic/AtomRepeater";
|
|
|
4
4
|
import { ContentPage } from "@web-atoms/web-controls/dist/mobile-app/MobileApp";
|
|
5
5
|
import StoreService from "../../../services/store/StoreService";
|
|
6
6
|
import InjectProperty from "@web-atoms/core/dist/core/InjectProperty";
|
|
7
|
-
import {
|
|
7
|
+
import { IStoreJournal, IWebSiteFolder } from "../../../model/model";
|
|
8
8
|
import Bind from "@web-atoms/core/dist/core/Bind";
|
|
9
9
|
import AppCommands from "../../../web/commands/AppCommands";
|
|
10
10
|
import CommonCommands from "../../commands/CommonCommands";
|
|
@@ -23,7 +23,7 @@ export default class StoreDetailPage extends ContentPage<{ id: any }> {
|
|
|
23
23
|
@InjectProperty
|
|
24
24
|
storeOrderService: StoreOrderService;
|
|
25
25
|
|
|
26
|
-
model:
|
|
26
|
+
model: IWebSiteFolder;
|
|
27
27
|
|
|
28
28
|
items: IStoreJournal[] = [];
|
|
29
29
|
selectedItem: IStoreJournal = null;
|
|
@@ -34,7 +34,7 @@ export default class StoreDetailPage extends ContentPage<{ id: any }> {
|
|
|
34
34
|
|
|
35
35
|
this.model = await this.storeService.get(this.parameters.id);
|
|
36
36
|
|
|
37
|
-
this.title = `${this.model.name} Orders`;
|
|
37
|
+
this.title = `${this.model.folder.name} Orders`;
|
|
38
38
|
|
|
39
39
|
this.headerRenderer = () => <div data-layout="flex-wrap-padding">
|
|
40
40
|
<input type="search" value={Bind.twoWaysImmediate(() => this.search)}/>
|
|
@@ -44,13 +44,9 @@ export default class StoreDetailPage extends ContentPage<{ id: any }> {
|
|
|
44
44
|
text="Products"
|
|
45
45
|
/>
|
|
46
46
|
<a data-click-event="route"
|
|
47
|
-
href={CommonCommands.
|
|
47
|
+
href={CommonCommands.paymentConfig.displayRoute({ storeID: this.parameters.id})}
|
|
48
48
|
text="Settings"
|
|
49
49
|
></a>
|
|
50
|
-
<a data-click-event="route"
|
|
51
|
-
href={CommonCommands.editStoreTemplates.displayRoute({ storeID: this.parameters.id})}
|
|
52
|
-
text="Templates"
|
|
53
|
-
></a>
|
|
54
50
|
</div>;
|
|
55
51
|
|
|
56
52
|
this.renderer = <div>
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ContentPage } from "@web-atoms/web-controls/dist/mobile-app/MobileApp";
|
|
2
|
+
import { IStoreLedger, StoreLedgerPaymentGatewayArray } from "../../../../model/model";
|
|
3
|
+
import XNode from "@web-atoms/core/dist/core/XNode";
|
|
4
|
+
import Form from "@web-atoms/web-controls/dist/basic/Form";
|
|
5
|
+
import FormField from "@web-atoms/web-controls/dist/basic/FormField";
|
|
6
|
+
import Bind from "@web-atoms/core/dist/core/Bind";
|
|
7
|
+
import Select from "@web-atoms/web-controls/dist/basic/Select";
|
|
8
|
+
import { SaveIconTextButton } from "../../../controls/buttons/IconButton";
|
|
9
|
+
import Action from "@web-atoms/core/dist/view-model/Action";
|
|
10
|
+
import InjectProperty from "@web-atoms/core/dist/core/InjectProperty";
|
|
11
|
+
import EntityService from "../../../../services/EntityService";
|
|
12
|
+
|
|
13
|
+
export default class PaymentGatewayEditorPage extends ContentPage<IStoreLedger> {
|
|
14
|
+
|
|
15
|
+
model: IStoreLedger;
|
|
16
|
+
|
|
17
|
+
@InjectProperty
|
|
18
|
+
entityService: EntityService;
|
|
19
|
+
|
|
20
|
+
async init() {
|
|
21
|
+
|
|
22
|
+
this.title = "Payment Gateway";
|
|
23
|
+
|
|
24
|
+
this.model = this.parameters;
|
|
25
|
+
|
|
26
|
+
this.renderer = <div>
|
|
27
|
+
<Form>
|
|
28
|
+
<FormField label="Type">
|
|
29
|
+
<Select
|
|
30
|
+
items={StoreLedgerPaymentGatewayArray}
|
|
31
|
+
value={Bind.twoWaysImmediate(() => this.model.paymentGateway)}
|
|
32
|
+
/>
|
|
33
|
+
</FormField>
|
|
34
|
+
<FormField label="Name">
|
|
35
|
+
<input value={Bind.twoWaysImmediate(() => this.model.name)}/>
|
|
36
|
+
</FormField>
|
|
37
|
+
<FormField label="Description">
|
|
38
|
+
<input value={Bind.twoWaysImmediate(() => this.model.description)}/>
|
|
39
|
+
</FormField>
|
|
40
|
+
<FormField label="MerchantID">
|
|
41
|
+
<input value={Bind.twoWaysImmediate(() => this.model.merchantID)}/>
|
|
42
|
+
</FormField>
|
|
43
|
+
<FormField label="Username/Access ID/Key Index">
|
|
44
|
+
<input value={Bind.twoWaysImmediate(() => this.model.username)}/>
|
|
45
|
+
</FormField>
|
|
46
|
+
<FormField label="Password/Secret/Key">
|
|
47
|
+
<input value={Bind.twoWaysImmediate(() => this.model.password)}/>
|
|
48
|
+
</FormField>
|
|
49
|
+
<div data-layout="sticky-command-row">
|
|
50
|
+
<SaveIconTextButton data-submit-event="submitForm" />
|
|
51
|
+
</div>
|
|
52
|
+
</Form>
|
|
53
|
+
</div>;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@Action({ onEvent: "submitForm", close: true })
|
|
57
|
+
async submitForm() {
|
|
58
|
+
await this.entityService.save(this.model, (c) => c);
|
|
59
|
+
return this.model;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import InjectProperty from "@web-atoms/core/dist/core/InjectProperty";
|
|
2
|
+
import XNode from "@web-atoms/core/dist/core/XNode";
|
|
3
|
+
import { Inject } from "@web-atoms/core/dist/di/Inject";
|
|
4
|
+
import AtomRepeater from "@web-atoms/web-controls/dist/basic/AtomRepeater";
|
|
5
|
+
import MasterDetailPage from "@web-atoms/web-controls/dist/mobile-app/MasterDetailPage";
|
|
6
|
+
import EntityService from "../../../../services/EntityService";
|
|
7
|
+
import InfiniteRepeater from "../../../controls/repeater/InfiniteRepeater";
|
|
8
|
+
import { IStoreLedger, StoreLedger } from "../../../../model/model";
|
|
9
|
+
import Bind from "@web-atoms/core/dist/core/Bind";
|
|
10
|
+
import { Sql } from "../../../Sql";
|
|
11
|
+
import Action from "@web-atoms/core/dist/view-model/Action";
|
|
12
|
+
import PageNavigator from "@web-atoms/web-controls/dist/PageNavigator";
|
|
13
|
+
import PaymentGatewayEditorPage from "./PaymentGatewayEditorPage";
|
|
14
|
+
import { AddIconButton, AddIconTextButton } from "../../../controls/buttons/IconButton";
|
|
15
|
+
|
|
16
|
+
export default class PaymentGatewayListPage extends MasterDetailPage {
|
|
17
|
+
|
|
18
|
+
parameters: { storeID };
|
|
19
|
+
|
|
20
|
+
@InjectProperty
|
|
21
|
+
entityService: EntityService;
|
|
22
|
+
|
|
23
|
+
search: string = "";
|
|
24
|
+
|
|
25
|
+
items: IStoreLedger[] = [];
|
|
26
|
+
|
|
27
|
+
repeater: AtomRepeater;
|
|
28
|
+
|
|
29
|
+
async init() {
|
|
30
|
+
|
|
31
|
+
this.headerRenderer = () => <div>
|
|
32
|
+
<input type="search" value={Bind.twoWaysImmediate(() => this.search)}/>
|
|
33
|
+
</div>;
|
|
34
|
+
|
|
35
|
+
this.renderer = <div>
|
|
36
|
+
<AtomRepeater
|
|
37
|
+
data-layout="data-grid"
|
|
38
|
+
data-selection-updated-event="itemSelected"
|
|
39
|
+
data-items-updated-event="itemsLoaded"
|
|
40
|
+
presenter={Bind.presenter((c) => this.repeater = c)}
|
|
41
|
+
items={this.items}
|
|
42
|
+
{ ... InfiniteRepeater.pagedItems((start) => (c, e, cancelToken) => this.load({ start, search: this.search, cancelToken }))}
|
|
43
|
+
itemRenderer={(x: IStoreLedger) => <div>
|
|
44
|
+
<label text={x.ledgerID}/>
|
|
45
|
+
<label text={x.paymentGateway}/>
|
|
46
|
+
<label text={x.name}/>
|
|
47
|
+
</div>}
|
|
48
|
+
/>
|
|
49
|
+
</div>;
|
|
50
|
+
|
|
51
|
+
this.footerRenderer = () => <div>
|
|
52
|
+
<AddIconTextButton data-click-event="addItem" />
|
|
53
|
+
</div>;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
load( { start, cancelToken, search } ) {
|
|
57
|
+
const { storeID } = this.parameters;
|
|
58
|
+
let q = this.entityService.query(StoreLedger)
|
|
59
|
+
.where({ storeID }, (p) => (x) => x.storeID === p.storeID && x.paymentGateway !== null);
|
|
60
|
+
if (search) {
|
|
61
|
+
q = q.where({ search }, (p) => (x) => Sql.text.iLike(x.description, p.search));
|
|
62
|
+
}
|
|
63
|
+
return q.toPagedList({
|
|
64
|
+
start,
|
|
65
|
+
cancelToken
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@Action({ onEvent: "itemSelected"})
|
|
70
|
+
itemSelected() {
|
|
71
|
+
const data = this.repeater.selectedItem;
|
|
72
|
+
if (!data) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
this.openDetail(PaymentGatewayEditorPage, data);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@Action({ onEvent: "itemsLoaded"})
|
|
79
|
+
itemsLoaded() {
|
|
80
|
+
this.repeater.selectedItem = this.items[0];
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@Action({ onEvent: "addItem"})
|
|
84
|
+
addItem() {
|
|
85
|
+
const { storeID } = this.parameters;
|
|
86
|
+
const item = StoreLedger.create({
|
|
87
|
+
storeID,
|
|
88
|
+
head: "Income"
|
|
89
|
+
});
|
|
90
|
+
this.items.add(item);
|
|
91
|
+
this.repeater.selectedItem = item;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ContentPage } from "@web-atoms/web-controls/dist/mobile-app/MobileApp";
|
|
2
|
-
import {
|
|
2
|
+
import { IStoreItem, IWebSiteFolder, StoreItem } from "../../../../model/model";
|
|
3
3
|
import XNode from "@web-atoms/core/dist/core/XNode";
|
|
4
4
|
import AtomRepeater, { SelectorCheckBox } from "@web-atoms/web-controls/dist/basic/AtomRepeater";
|
|
5
5
|
import InfiniteRepeater from "../../../controls/repeater/InfiniteRepeater";
|
|
@@ -21,7 +21,7 @@ export default class EditProductListPage extends ContentPage<{ storeID }> {
|
|
|
21
21
|
|
|
22
22
|
items: IStoreItem[] = [];
|
|
23
23
|
|
|
24
|
-
store:
|
|
24
|
+
store: IWebSiteFolder = null;
|
|
25
25
|
|
|
26
26
|
selectedItem = null;
|
|
27
27
|
|
|
@@ -3,7 +3,7 @@ import XNode from "@web-atoms/core/dist/core/XNode";
|
|
|
3
3
|
import AtomRepeater from "@web-atoms/web-controls/dist/basic/AtomRepeater";
|
|
4
4
|
import { ContentPage } from "@web-atoms/web-controls/dist/mobile-app/MobileApp";
|
|
5
5
|
import EntityService from "../../../../services/EntityService";
|
|
6
|
-
import {
|
|
6
|
+
import { IStoreConfig, IWebSiteFolder, StoreConfig, WebSiteFolder } from "../../../../model/model";
|
|
7
7
|
import CollectionEditorEx from "../../../controls/collection-editor/CollectionEditorEx";
|
|
8
8
|
import Bind from "@web-atoms/core/dist/core/Bind";
|
|
9
9
|
|
|
@@ -12,13 +12,13 @@ export default class EditSettingsPage extends ContentPage<{storeID}> {
|
|
|
12
12
|
@InjectProperty
|
|
13
13
|
entityService: EntityService;
|
|
14
14
|
|
|
15
|
-
model:
|
|
15
|
+
model: IWebSiteFolder = null;
|
|
16
16
|
|
|
17
17
|
async init() {
|
|
18
18
|
|
|
19
19
|
const { storeID } = this.parameters;
|
|
20
20
|
|
|
21
|
-
this.model = await this.entityService.query(
|
|
21
|
+
this.model = await this.entityService.query(WebSiteFolder).where({ storeID}, (p) => (x) => x.folderID === p.storeID)
|
|
22
22
|
.include((x) => [x.configs])
|
|
23
23
|
.firstOrDefault();
|
|
24
24
|
|