biz9-logic 4.0.20 → 4.0.22
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/biz9_config +1 -1
- package/index.js +111 -49
- package/main.js +10 -1
- package/main_test.js +112 -0
- package/package.json +1 -1
- package/test.js +26 -3
package/biz9_config
CHANGED
package/index.js
CHANGED
|
@@ -28,10 +28,9 @@ class Template{
|
|
|
28
28
|
Field.get_test("Primary"));
|
|
29
29
|
let template_sub_title_list = ["Header","Navigation","Body","Footer"];
|
|
30
30
|
for(let a=0;a<template_sub_title_list.length;a++){
|
|
31
|
-
|
|
31
|
+
template = Sub_Item.get_test_bind_new_child(Number.get_id(),template_sub_title_list[a],template,template,template);
|
|
32
32
|
}
|
|
33
33
|
template = Sub_Item.get_test_bind_item_sub_item(template);
|
|
34
|
-
Log.w('template_sec',template.header.section_1.section_1);
|
|
35
34
|
return template;
|
|
36
35
|
};
|
|
37
36
|
}
|
|
@@ -48,27 +47,59 @@ class Page{
|
|
|
48
47
|
}
|
|
49
48
|
page = Sub_Item.get_test_bind_item_sub_item(page);
|
|
50
49
|
|
|
51
|
-
|
|
50
|
+
return page;
|
|
52
51
|
};
|
|
53
52
|
}
|
|
54
53
|
class Product{
|
|
55
|
-
static get_test = (title) =>{
|
|
54
|
+
static get_test = (title,option) =>{
|
|
55
|
+
if(!option){
|
|
56
|
+
option={};
|
|
57
|
+
}
|
|
56
58
|
let product = DataItem.get_new_full_item(
|
|
57
59
|
DataItem.get_new(DataType.PRODUCT,Number.get_id()),
|
|
58
60
|
DataItem.get_new(DataType.PRODUCT,0),
|
|
59
61
|
DataItem.get_new(DataType.PRODUCT,0),
|
|
60
62
|
Field.get_test(title));
|
|
61
|
-
product = Sub_Item.get_test_bind_new_child(Number.get_id(),title,product,product,product);
|
|
62
63
|
product.cost = String(Number.get_id()) + "." + String(Number.get_id());
|
|
63
64
|
product.old_cost = String(Number.get_id()) + "." + String(Number.get_id());
|
|
64
65
|
product.type = "Type "+String(Number.get_id());
|
|
65
66
|
product.sub_type = "Sub Type "+String(Number.get_id());
|
|
66
67
|
product.stock = String(Number.get_id(3-1));
|
|
68
|
+
//product.category = Category.get_type_category_list(DataType.PRODUCT)[Number.get_id(Category.get_type_category_list(DataType.PRODUCT).length-1)].title;
|
|
69
|
+
product.category ="Category " + String(Number.get_id());
|
|
70
|
+
if(option.get_items){
|
|
71
|
+
product = Sub_Item.get_test_bind_new_child(Number.get_id(),title,product,product,product);
|
|
67
72
|
for(let a=0;a<10;a++){
|
|
68
73
|
product=Sub_Item.get_test_bind_new_child(Number.get_id(),"Section " + String(a),product,product,product);
|
|
69
74
|
}
|
|
70
75
|
product = Sub_Item.get_test_bind_item_sub_item(product);
|
|
71
|
-
|
|
76
|
+
}
|
|
77
|
+
return product;
|
|
78
|
+
};
|
|
79
|
+
static get_test_list_by_category = (option) =>{
|
|
80
|
+
let product_list = [];
|
|
81
|
+
let category_count = 9;
|
|
82
|
+
let product_count = 19;
|
|
83
|
+
if(!option){
|
|
84
|
+
option={};
|
|
85
|
+
}
|
|
86
|
+
else{
|
|
87
|
+
if(option.category_count){
|
|
88
|
+
category_count = parseInt(option.category_count);
|
|
89
|
+
}
|
|
90
|
+
if(option.category_count){
|
|
91
|
+
product_count = parseInt(option.product_count);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
let category_list = Category.get_type_category_list(DataType.PRODUCT,category_count);
|
|
95
|
+
for(let a=0;a<category_list.length;a++){
|
|
96
|
+
for(let b=0;b<product_count;b++){
|
|
97
|
+
let product = Product.get_test("Product " + b);
|
|
98
|
+
product.category = category_list[Number.get_id(category_list.length-1)].title;
|
|
99
|
+
product_list.push(product);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return [category_list,product_list]
|
|
72
103
|
};
|
|
73
104
|
}
|
|
74
105
|
class Service{
|
|
@@ -114,24 +145,24 @@ class Event{
|
|
|
114
145
|
return event;
|
|
115
146
|
};
|
|
116
147
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
148
|
+
class Field{
|
|
149
|
+
static get_test = (title) =>{
|
|
150
|
+
let item = {
|
|
151
|
+
date_create:new moment().toISOString(),
|
|
152
|
+
date_save:new moment().toISOString(),
|
|
153
|
+
title:title,
|
|
154
|
+
setting_visible:"1",
|
|
155
|
+
photo_data:"/images/no_img.jpg",
|
|
156
|
+
title_url:Str.get_title_url(title),
|
|
157
|
+
sub_note : "Sub Note "+String(Number.get_id()),
|
|
158
|
+
note : "Note "+String(Number.get_id())
|
|
159
|
+
}
|
|
160
|
+
for(let b = 1;b<20;b++){
|
|
161
|
+
item['value_'+String(b)] = 'value ' + String(b);
|
|
162
|
+
}
|
|
163
|
+
return item;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
135
166
|
class FieldType {
|
|
136
167
|
static APP_ID='app_id';
|
|
137
168
|
static ID='id';
|
|
@@ -212,6 +243,15 @@ class DataType {
|
|
|
212
243
|
return String(Str.get_title(data_type.replaceAll('_',' ').replaceAll('dt','').replace('biz',''))).trim();
|
|
213
244
|
}
|
|
214
245
|
}
|
|
246
|
+
static get_item_list = () =>{
|
|
247
|
+
return [
|
|
248
|
+
{ title:DataType.get_title(DataType.BLOG_POST),type:DataType.BLOG_POST},
|
|
249
|
+
{ title:DataType.get_title(DataType.SERVICE),type:DataType.SERVICE},
|
|
250
|
+
{ title:DataType.get_title(DataType.EVENT),type:DataType.EVENT},
|
|
251
|
+
{ title:DataType.get_title(DataType.GALLERY),type:DataType.GALLERY},
|
|
252
|
+
{ title:DataType.get_title(DataType.PRODUCT),type:DataType.PRODUCT}
|
|
253
|
+
]
|
|
254
|
+
};
|
|
215
255
|
static ADMIN='admin_biz';
|
|
216
256
|
static BLANK='blank_biz';
|
|
217
257
|
static BUSINESS='business_biz';
|
|
@@ -383,7 +423,29 @@ class Obj {
|
|
|
383
423
|
return get_cloud_filter_obj_main(data_type,filter,sort_by,page_current,page_size);
|
|
384
424
|
}
|
|
385
425
|
};
|
|
386
|
-
class
|
|
426
|
+
class Category {
|
|
427
|
+
static get_test(){
|
|
428
|
+
let category = DataItem.get_new_full_item(
|
|
429
|
+
DataItem.get_new(DataType.CATEGORY,Number.get_id()),
|
|
430
|
+
DataItem.get_new(DataType.CATEGORY,0),
|
|
431
|
+
DataItem.get_new(DataType.CATEGORY,0),
|
|
432
|
+
Field.get_test("Category " +Number.get_id()));
|
|
433
|
+
category.type = Category.get_category_list()[Number.get_id(category_list.length-1)].data_type;
|
|
434
|
+
return category;
|
|
435
|
+
}
|
|
436
|
+
static get_type_category_list(type,count){
|
|
437
|
+
let category_list = [];
|
|
438
|
+
for(let a=0;a<count;a++){
|
|
439
|
+
let category = DataItem.get_new_full_item(
|
|
440
|
+
DataItem.get_new(DataType.CATEGORY,"Category "+Number.get_id()),
|
|
441
|
+
DataItem.get_new(DataType.CATEGORY,0),
|
|
442
|
+
DataItem.get_new(DataType.CATEGORY,0),
|
|
443
|
+
Field.get_test("Category " +Number.get_id()));
|
|
444
|
+
category.type = type
|
|
445
|
+
category_list.push(category);
|
|
446
|
+
}
|
|
447
|
+
return category_list;
|
|
448
|
+
};
|
|
387
449
|
static get_category_drop_down_list_by_list = (cat_list) => {
|
|
388
450
|
let category_list = [];
|
|
389
451
|
for(let a=0;a<cat_list.length;a++){
|
|
@@ -393,13 +455,13 @@ class Cat {
|
|
|
393
455
|
};
|
|
394
456
|
static get_category_list = () => {
|
|
395
457
|
return [
|
|
396
|
-
{
|
|
397
|
-
{
|
|
398
|
-
{
|
|
399
|
-
{
|
|
400
|
-
{
|
|
401
|
-
{
|
|
402
|
-
{
|
|
458
|
+
{data_type:DataType.BLOG_POST,value:DataType.BLOG_POST,label:"Blog Posts"},
|
|
459
|
+
{data_type:DataType.CONTENT,value:DataType.CONTENT,label:"Content"},
|
|
460
|
+
{data_type:DataType.EVENT,value:DataType.EVENT,label:"Events"},
|
|
461
|
+
{data_type:DataType.GALLERY,value:DataType.GALLERY,label:"Galleries"},
|
|
462
|
+
{data_type:DataType.SERVICE,value:DataType.SERVICE,label:"Services"},
|
|
463
|
+
{data_type:DataType.PRODUCT,value:DataType.PRODUCT,label:"Product"},
|
|
464
|
+
{data_type:DataType.TEMPLATE,value:DataType.TEMPLATE,label:"Template"}
|
|
403
465
|
];
|
|
404
466
|
};
|
|
405
467
|
static get_title_by_type = (data_type) => {
|
|
@@ -722,22 +784,22 @@ class Sub_Item{
|
|
|
722
784
|
item[Str.get_title_url(title)] = new_sub_item;
|
|
723
785
|
item.items.push(new_sub_item);
|
|
724
786
|
return item;
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
787
|
+
function get_bind_test_field(title){
|
|
788
|
+
let item = {
|
|
789
|
+
date_create:new moment().toISOString(),
|
|
790
|
+
date_save:new moment().toISOString(),
|
|
791
|
+
title:title,
|
|
792
|
+
setting_visible:"1",
|
|
793
|
+
photo_data:"/images/no_img.jpg",
|
|
794
|
+
title_url:Str.get_title_url(title),
|
|
795
|
+
sub_note : "Sub Note "+String(Number.get_id()),
|
|
796
|
+
note : "Note "+String(Number.get_id())
|
|
797
|
+
}
|
|
798
|
+
for(let b = 1;b<20;b++){
|
|
799
|
+
item['value_'+String(b)] = title+ ' value ' + String(b);
|
|
800
|
+
}
|
|
801
|
+
return item;
|
|
802
|
+
};
|
|
741
803
|
|
|
742
804
|
};
|
|
743
805
|
|
|
@@ -745,7 +807,7 @@ class Sub_Item{
|
|
|
745
807
|
module.exports = {
|
|
746
808
|
BiZ_Url,
|
|
747
809
|
Business,
|
|
748
|
-
|
|
810
|
+
Category,
|
|
749
811
|
CMS,
|
|
750
812
|
DataItem,
|
|
751
813
|
DataType,
|
package/main.js
CHANGED
|
@@ -56,10 +56,19 @@ const get_title_url_main = (title) => {
|
|
|
56
56
|
}
|
|
57
57
|
return title.replace(/[^a-z0-9]+/ig, "_").toLowerCase();
|
|
58
58
|
}
|
|
59
|
+
const get_title_main = (data_type) => {
|
|
60
|
+
if(!data_type){
|
|
61
|
+
return "";
|
|
62
|
+
}else{
|
|
63
|
+
return String(Str.get_title(data_type.replaceAll('_',' ').replaceAll('dt','').replace('biz',''))).trim();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
59
67
|
module.exports = {
|
|
60
68
|
get_new_item_main,
|
|
61
69
|
get_cloud_url_main,
|
|
62
70
|
get_cloud_filter_obj_main,
|
|
63
71
|
get_title_url_main,
|
|
64
|
-
get_new_full_item_main
|
|
72
|
+
get_new_full_item_main,
|
|
73
|
+
get_title_main
|
|
65
74
|
};
|
package/main_test.js
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
const { DataItem,DataType } = require('biz9-logic');
|
|
2
|
+
console.log('aaaaaa');
|
|
3
|
+
console.log('aaaaaa');
|
|
4
|
+
console.log('aaaaaa');
|
|
5
|
+
console.log(DataType);
|
|
6
|
+
console.log('bbbbbbbb');
|
|
7
|
+
const get_template_test = () =>{
|
|
8
|
+
let template = DataItem.get_new_full_item(
|
|
9
|
+
DataItem.get_new(DataType.TEMPLATE,Number.get_id()),
|
|
10
|
+
DataItem.get_new(DataType.TEMPLATE,0),
|
|
11
|
+
DataItem.get_new(DataType.TEMPLATE,0),
|
|
12
|
+
Field.get_test("Primary"));
|
|
13
|
+
let template_sub_title_list = ["Header","Navigation","Body","Footer"];
|
|
14
|
+
for(let a=0;a<template_sub_title_list.length;a++){
|
|
15
|
+
template = Sub_Item.get_test_bind_new_child(Number.get_id(),template_sub_title_list[a],template,template,template);
|
|
16
|
+
}
|
|
17
|
+
template = Sub_Item.get_test_bind_item_sub_item(template);
|
|
18
|
+
return template;
|
|
19
|
+
};
|
|
20
|
+
const get_page_test = (title) =>{
|
|
21
|
+
let page = DataItem.get_new_full_item(
|
|
22
|
+
DataItem.get_new(DataType.PAGE,Number.get_id()),
|
|
23
|
+
DataItem.get_new(DataType.PAGE,0),
|
|
24
|
+
DataItem.get_new(DataType.PAGE,0),
|
|
25
|
+
Field.get_test(title));
|
|
26
|
+
for(let a=0;a<20;a++){
|
|
27
|
+
page=Sub_Item.get_test_bind_new_child(Number.get_id(),"Section "+a,page,page,page);
|
|
28
|
+
}
|
|
29
|
+
page = Sub_Item.get_test_bind_item_sub_item(page);
|
|
30
|
+
return page;
|
|
31
|
+
}
|
|
32
|
+
const get_product_test = (title) =>{
|
|
33
|
+
let product = DataItem.get_new_full_item(
|
|
34
|
+
DataItem.get_new(DataType.PRODUCT,Number.get_id()),
|
|
35
|
+
DataItem.get_new(DataType.PRODUCT,0),
|
|
36
|
+
DataItem.get_new(DataType.PRODUCT,0),
|
|
37
|
+
Field.get_test(title));
|
|
38
|
+
product = Sub_Item.get_test_bind_new_child(Number.get_id(),title,product,product,product);
|
|
39
|
+
product.cost = String(Number.get_id()) + "." + String(Number.get_id());
|
|
40
|
+
product.old_cost = String(Number.get_id()) + "." + String(Number.get_id());
|
|
41
|
+
product.type = "Type "+String(Number.get_id());
|
|
42
|
+
product.sub_type = "Sub Type "+String(Number.get_id());
|
|
43
|
+
product.stock = String(Number.get_id(3-1));
|
|
44
|
+
for(let a=0;a<10;a++){
|
|
45
|
+
product=Sub_Item.get_test_bind_new_child(Number.get_id(),"Section " + String(a),product,product,product);
|
|
46
|
+
}
|
|
47
|
+
product = Sub_Item.get_test_bind_item_sub_item(product);
|
|
48
|
+
return product;
|
|
49
|
+
};
|
|
50
|
+
const get_service_test = (title) =>{
|
|
51
|
+
let service = DataItem.get_new_full_item(
|
|
52
|
+
DataItem.get_new(DataType.SERVICE,Number.get_id()),
|
|
53
|
+
DataItem.get_new(DataType.SERVICE,0),
|
|
54
|
+
DataItem.get_new(DataType.SERVICE,0),
|
|
55
|
+
Field.get_test(title));
|
|
56
|
+
service = Sub_Item.get_test_bind_new_child(Number.get_id(),title,service,service,service);
|
|
57
|
+
service.cost = String(Number.get_id()) + "." + String(Number.get_id());
|
|
58
|
+
service.old_cost = String(Number.get_id()) + "." + String(Number.get_id());
|
|
59
|
+
service.type = "Type "+String(Number.get_id());
|
|
60
|
+
service.sub_type = "Sub Type "+String(Number.get_id());
|
|
61
|
+
service.stock = String(Number.get_id(3-1));
|
|
62
|
+
for(let a=0;a<10;a++){
|
|
63
|
+
service=Sub_Item.get_test_bind_new_child(Number.get_id(),"Section " + String(a),service,service,service);
|
|
64
|
+
}
|
|
65
|
+
service = Sub_Item.get_test_bind_item_sub_item(service);
|
|
66
|
+
return service;
|
|
67
|
+
};
|
|
68
|
+
const get_event_test = (title) =>{
|
|
69
|
+
let event = DataItem.get_new_full_item(
|
|
70
|
+
DataItem.get_new(DataType.EVENT,Number.get_id()),
|
|
71
|
+
DataItem.get_new(DataType.EVENT,0),
|
|
72
|
+
DataItem.get_new(DataType.EVENT,0),
|
|
73
|
+
Field.get_test(title));
|
|
74
|
+
event = Sub_Item.get_test_bind_new_child(Number.get_id(),title,event,event,event);
|
|
75
|
+
event.cost = String(Number.get_id()) + "." + String(Number.get_id());
|
|
76
|
+
event.old_cost = String(Number.get_id()) + "." + String(Number.get_id());
|
|
77
|
+
event.date = String(String(Number.get_id(2030)) + "-" + String(Number.get_id(13)) + "-" + String(Number.get_id(30))).trim();
|
|
78
|
+
event.time = String(Number.get_id(24)) + ":" + String(Number.get_id(59));
|
|
79
|
+
event.website = "Website "+String(Number.get_id());
|
|
80
|
+
event.location = "Location "+String(Number.get_id());
|
|
81
|
+
event.meeting_link = "Meeting Link "+String(Number.get_id());
|
|
82
|
+
event.stock = String(Number.get_id(3-1));
|
|
83
|
+
for(let a=0;a<10;a++){
|
|
84
|
+
event=Sub_Item.get_test_bind_new_child(Number.get_id(),"Section " + String(a),event,event,event);
|
|
85
|
+
}
|
|
86
|
+
event = Sub_Item.get_test_bind_item_sub_item(event);
|
|
87
|
+
return event;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
const get_field_test = (title) =>{
|
|
91
|
+
let item = {
|
|
92
|
+
date_create:new moment().toISOString(),
|
|
93
|
+
date_save:new moment().toISOString(),
|
|
94
|
+
title:title,
|
|
95
|
+
setting_visible:"1",
|
|
96
|
+
photo_data:"/images/no_img.jpg",
|
|
97
|
+
title_url:Str.get_title_url(title),
|
|
98
|
+
sub_note : "Sub Note "+String(Number.get_id()),
|
|
99
|
+
note : "Note "+String(Number.get_id())
|
|
100
|
+
}
|
|
101
|
+
for(let b = 1;b<20;b++){
|
|
102
|
+
item['value_'+String(b)] = 'value ' + String(b);
|
|
103
|
+
}
|
|
104
|
+
return item;
|
|
105
|
+
}
|
|
106
|
+
module.exports = {
|
|
107
|
+
get_template_test,
|
|
108
|
+
get_page_test,
|
|
109
|
+
get_product_test,
|
|
110
|
+
get_service_test,
|
|
111
|
+
get_event_test
|
|
112
|
+
}
|
package/package.json
CHANGED
package/test.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const path = require('path');
|
|
2
2
|
const series = require('async-series');
|
|
3
|
-
const {DataItem,DataType,Url,Obj,BiZ_Url,Cat,Stock,Schedule,Storage,Business,Product,Service,Event,Template,Page} = require('./');
|
|
3
|
+
const {DataItem,DataType,Url,Obj,BiZ_Url,Cat,Stock,Schedule,Storage,Business,Product,Service,Event,Template,Page,Category} = require('./index');
|
|
4
4
|
const {Log,Test,Number} = require('biz9-utility');
|
|
5
5
|
const {Scriptz}= require('biz9-scriptz');
|
|
6
6
|
|
|
@@ -31,17 +31,40 @@ describe("connect", () => {
|
|
|
31
31
|
|
|
32
32
|
function(call) {
|
|
33
33
|
console.log('CONNECT-START');
|
|
34
|
+
|
|
35
|
+
/* --CONFIG--START */
|
|
34
36
|
//let biz9_config = Scriptz.get_biz9_config({biz9_config_file:path.resolve('../../biz9_config')});
|
|
35
37
|
//let cloud_url = Url.connect(biz9_config);
|
|
38
|
+
/* --CONFIG--END */
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
/* --DATA_TYPE--START */
|
|
42
|
+
//Log.w('data_type_list',DataType.get_item_list());
|
|
43
|
+
/* --DATA_TYPE--END */
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
/* --CATEGORY--START */
|
|
47
|
+
//Log.w("Category",Category.get_test("Category " + Number.get_id(),{get_items:false}));
|
|
48
|
+
//let category = Category.get_test_list_by_category();
|
|
49
|
+
/* --CATEGORY--END */
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
/* --PRODUCT--START */
|
|
53
|
+
//let product = Product.get_test_list_by_category();
|
|
54
|
+
//Log.w('product_test',Product.get_test("Product " + Number.get_id(),{get_items:false}));
|
|
55
|
+
Log.w('product_list_test',Product.get_test_list_by_category({get_items:false,product_count:2,category_count:3}));
|
|
56
|
+
//console.log(Product.get_test("Product " + Number.get_id(),{get_items:false}));
|
|
57
|
+
/* --PRODUCT--END */
|
|
58
|
+
|
|
36
59
|
//console.log(Template.get_test()); //get_template_test
|
|
37
60
|
//console.log(Business.get_test()); // get_business_test
|
|
38
61
|
// console.log(Page.get_test("Page " +String(Number.get_id()))); // get_page_test
|
|
39
|
-
console.log(Page.get_test("Page " +String("Cool"))); // get_page_test
|
|
62
|
+
//console.log(Page.get_test("Page " +String("Cool"))); // get_page_test
|
|
40
63
|
//console.log(Event.get_test());
|
|
41
64
|
//console.log(Product.get_test("Product " +String(Number.get_id()))); // get_product_test
|
|
42
65
|
//console.log(Service.get_test("Service " +String(Number.get_id()))); // get_service_test
|
|
43
66
|
//console.log(Event.get_test("Event " +String(Number.get_id()))); // get_service_test
|
|
44
|
-
//
|
|
67
|
+
//console.log(Category.get_test()); // get_category_test
|
|
45
68
|
//console.log(product.section_1);
|
|
46
69
|
//get page
|
|
47
70
|
|