isite 2023.1.8 → 2023.1.10
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/apps/charts/app.js +1 -1
- package/apps/charts/site_files/html/index.html +1 -1
- package/apps/charts/site_files/js/chart-animated.js +1 -20
- package/apps/charts/site_files/js/charts.js +1 -1
- package/apps/charts/site_files/js/custom.js +151 -153
- package/apps/client-side/site_files/css/bootstrap5-addon.css +18 -6
- package/apps/client-side/site_files/css/print.css +1 -0
- package/apps/client-side/site_files/html/directive/i-date-old.html +24 -0
- package/apps/client-side/site_files/html/directive/i-date.html +19 -15
- package/apps/client-side/site_files/html/directive/i-datetime.html +11 -22
- package/apps/client-side/site_files/js/bootstrap-5-directive.js +70 -105
- package/apps/client-side/site_files/js/site.js +8 -1
- package/index.js +1 -0
- package/lib/mongodb.js +2 -1
- package/lib/security.js +9 -5
- package/object-options/index.js +4 -4
- package/package.json +1 -1
|
@@ -1,161 +1,159 @@
|
|
|
1
|
-
;
|
|
2
1
|
((w, d) => {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
2
|
+
const YXChart = {
|
|
3
|
+
data: [
|
|
4
|
+
{
|
|
5
|
+
country: 'USA',
|
|
6
|
+
visits: 3025,
|
|
7
|
+
},
|
|
8
|
+
],
|
|
9
|
+
|
|
10
|
+
colors: {
|
|
11
|
+
saturation: 0.4,
|
|
12
|
+
list: ['#ff5722'],
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
yAxes: [
|
|
16
|
+
{
|
|
17
|
+
type: 'CategoryAxis',
|
|
18
|
+
renderer: {
|
|
19
|
+
minGridDistance: 20,
|
|
20
|
+
grid: {
|
|
21
|
+
location: 0,
|
|
22
|
+
},
|
|
16
23
|
},
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"type": "CategoryAxis",
|
|
20
|
-
"renderer": {
|
|
21
|
-
"minGridDistance": 20,
|
|
22
|
-
"grid": {
|
|
23
|
-
"location": 0
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
"dataFields": {
|
|
27
|
-
"category": "country"
|
|
28
|
-
}
|
|
29
|
-
}],
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"xAxes": [{
|
|
33
|
-
"type": "ValueAxis",
|
|
34
|
-
"renderer": {
|
|
35
|
-
"maxLabelPosition": 0.98
|
|
36
|
-
}
|
|
37
|
-
}],
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"series": [{
|
|
41
|
-
"name": "test name",
|
|
42
|
-
"type": "ColumnSeries",
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
"dataFields": {
|
|
46
|
-
"categoryY": "country",
|
|
47
|
-
"valueX": "visits"
|
|
48
|
-
},
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"defaultState": {
|
|
52
|
-
"ransitionDuration": 1000
|
|
53
|
-
},
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"sequencedInterpolation": !0,
|
|
57
|
-
"sequencedInterpolationDelay": 100,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
"columns": {
|
|
61
|
-
"template": {
|
|
62
|
-
"tooltipText": "",
|
|
63
|
-
"fill": "#0000ff"
|
|
64
|
-
},
|
|
65
|
-
"strokeOpacity": 0
|
|
66
|
-
}
|
|
67
|
-
}],
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
"cursor": {
|
|
71
|
-
"type": "XYCursor",
|
|
72
|
-
"behavior": "zoomY"
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
const XYChart = {
|
|
77
|
-
"colors": {
|
|
78
|
-
"saturation": 0.4,
|
|
79
|
-
"list" : [
|
|
80
|
-
"#ff5722"
|
|
81
|
-
]
|
|
24
|
+
dataFields: {
|
|
25
|
+
category: 'country',
|
|
82
26
|
},
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
"type": "CategoryAxis",
|
|
95
|
-
"renderer": {
|
|
96
|
-
"minGridDistance": 20,
|
|
97
|
-
"grid": {
|
|
98
|
-
"location": 0
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
"dataFields": {
|
|
102
|
-
"category": "country"
|
|
103
|
-
}
|
|
104
|
-
}],
|
|
105
|
-
"series": [{
|
|
106
|
-
"name": "test name",
|
|
107
|
-
"type": "ColumnSeries",
|
|
108
|
-
"dataFields": {
|
|
109
|
-
"categoryX": "country",
|
|
110
|
-
"valueY": "visits"
|
|
111
|
-
},
|
|
112
|
-
"columns": {
|
|
113
|
-
"template": {
|
|
114
|
-
"tooltipText": "",
|
|
115
|
-
"fill": "#0000ff"
|
|
116
|
-
},
|
|
117
|
-
"strokeOpacity": 0
|
|
118
|
-
},
|
|
119
|
-
"defaultState": {
|
|
120
|
-
"ransitionDuration": 1000
|
|
121
|
-
},
|
|
122
|
-
"sequencedInterpolation": !0,
|
|
123
|
-
"sequencedInterpolationDelay": 100
|
|
124
|
-
}],
|
|
125
|
-
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
|
|
30
|
+
xAxes: [
|
|
31
|
+
{
|
|
32
|
+
type: 'ValueAxis',
|
|
33
|
+
renderer: {
|
|
34
|
+
maxLabelPosition: 0.98,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
],
|
|
126
38
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
};
|
|
39
|
+
series: [
|
|
40
|
+
{
|
|
41
|
+
name: 'test name',
|
|
42
|
+
type: 'ColumnSeries',
|
|
132
43
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
44
|
+
dataFields: {
|
|
45
|
+
categoryY: 'country',
|
|
46
|
+
valueX: 'visits',
|
|
47
|
+
},
|
|
136
48
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
XYChart.series[0].dataFields.valueY = options.y;
|
|
141
|
-
if(options.color){
|
|
142
|
-
XYChart.colors.list[0] = options.color;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
XYChart.data = options.data;
|
|
146
|
-
am4core.createFromConfig(XYChart, document.querySelector(options.selector), am4charts.XYChart);
|
|
147
|
-
} else if (options.type == 'yx') {
|
|
148
|
-
YXChart.yAxes[0].dataFields.category = options.y;
|
|
149
|
-
YXChart.series[0].dataFields.categoryY = options.y;
|
|
150
|
-
YXChart.series[0].dataFields.valueX = options.x;
|
|
151
|
-
if(options.color){
|
|
152
|
-
YXChart.colors.list[0] = options.color;
|
|
153
|
-
}
|
|
154
|
-
YXChart.data = options.data;
|
|
155
|
-
am4core.createFromConfig(YXChart, document.querySelector(options.selector), am4charts.XYChart);
|
|
156
|
-
}
|
|
49
|
+
defaultState: {
|
|
50
|
+
ransitionDuration: 1000,
|
|
51
|
+
},
|
|
157
52
|
|
|
158
|
-
|
|
159
|
-
|
|
53
|
+
sequencedInterpolation: !0,
|
|
54
|
+
sequencedInterpolationDelay: 100,
|
|
160
55
|
|
|
161
|
-
|
|
56
|
+
columns: {
|
|
57
|
+
template: {
|
|
58
|
+
tooltipText: '',
|
|
59
|
+
fill: '#0000ff',
|
|
60
|
+
},
|
|
61
|
+
strokeOpacity: 0,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
|
|
66
|
+
cursor: {
|
|
67
|
+
type: 'XYCursor',
|
|
68
|
+
behavior: 'zoomY',
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
const XYChart = {
|
|
73
|
+
colors: {
|
|
74
|
+
saturation: 0.4,
|
|
75
|
+
list: ['#ff5722'],
|
|
76
|
+
},
|
|
77
|
+
data: [
|
|
78
|
+
{
|
|
79
|
+
country: 'USA',
|
|
80
|
+
visits: 3025,
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
yAxes: [
|
|
84
|
+
{
|
|
85
|
+
type: 'ValueAxis',
|
|
86
|
+
renderer: {
|
|
87
|
+
maxLabelPosition: 0.98,
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
xAxes: [
|
|
92
|
+
{
|
|
93
|
+
type: 'CategoryAxis',
|
|
94
|
+
renderer: {
|
|
95
|
+
minGridDistance: 20,
|
|
96
|
+
grid: {
|
|
97
|
+
location: 0,
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
dataFields: {
|
|
101
|
+
category: 'country',
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
series: [
|
|
106
|
+
{
|
|
107
|
+
name: 'test name',
|
|
108
|
+
type: 'ColumnSeries',
|
|
109
|
+
dataFields: {
|
|
110
|
+
categoryX: 'country',
|
|
111
|
+
valueY: 'visits',
|
|
112
|
+
},
|
|
113
|
+
columns: {
|
|
114
|
+
template: {
|
|
115
|
+
tooltipText: '',
|
|
116
|
+
fill: '#0000ff',
|
|
117
|
+
},
|
|
118
|
+
strokeOpacity: 0,
|
|
119
|
+
},
|
|
120
|
+
defaultState: {
|
|
121
|
+
ransitionDuration: 1000,
|
|
122
|
+
},
|
|
123
|
+
sequencedInterpolation: !0,
|
|
124
|
+
sequencedInterpolationDelay: 100,
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
|
|
128
|
+
cursor: {
|
|
129
|
+
type: 'XYCursor',
|
|
130
|
+
behavior: 'zoomX',
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
w.site = w.site || {};
|
|
135
|
+
w.site.create_chart = function (options) {
|
|
136
|
+
am4core.useTheme(am4themes_animated);
|
|
137
|
+
|
|
138
|
+
if (options.type == 'xy') {
|
|
139
|
+
XYChart.xAxes[0].dataFields.category = options.x;
|
|
140
|
+
XYChart.series[0].dataFields.categoryX = options.x;
|
|
141
|
+
XYChart.series[0].dataFields.valueY = options.y;
|
|
142
|
+
if (options.color) {
|
|
143
|
+
XYChart.colors.list[0] = options.color;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
XYChart.data = options.data;
|
|
147
|
+
am4core.createFromConfig(XYChart, document.querySelector(options.selector), am4charts.XYChart);
|
|
148
|
+
} else if (options.type == 'yx') {
|
|
149
|
+
YXChart.yAxes[0].dataFields.category = options.y;
|
|
150
|
+
YXChart.series[0].dataFields.categoryY = options.y;
|
|
151
|
+
YXChart.series[0].dataFields.valueX = options.x;
|
|
152
|
+
if (options.color) {
|
|
153
|
+
YXChart.colors.list[0] = options.color;
|
|
154
|
+
}
|
|
155
|
+
YXChart.data = options.data;
|
|
156
|
+
am4core.createFromConfig(YXChart, document.querySelector(options.selector), am4charts.XYChart);
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
})(window, document);
|
|
@@ -42,6 +42,7 @@ body {
|
|
|
42
42
|
}
|
|
43
43
|
label {
|
|
44
44
|
float: left;
|
|
45
|
+
color: var(--label-color);
|
|
45
46
|
}
|
|
46
47
|
.ar label {
|
|
47
48
|
float: right;
|
|
@@ -66,7 +67,7 @@ fieldset legend {
|
|
|
66
67
|
width: auto;
|
|
67
68
|
padding: 5px;
|
|
68
69
|
}
|
|
69
|
-
.ar fieldset legend{
|
|
70
|
+
.ar fieldset legend {
|
|
70
71
|
float: right;
|
|
71
72
|
}
|
|
72
73
|
legend::after {
|
|
@@ -124,19 +125,30 @@ i-file button {
|
|
|
124
125
|
i-upload {
|
|
125
126
|
display: inline-block;
|
|
126
127
|
}
|
|
127
|
-
i-date .
|
|
128
|
+
i-date .left-10,
|
|
129
|
+
i-datetime .left-10 {
|
|
130
|
+
margin-left: 10px;
|
|
131
|
+
}
|
|
132
|
+
i-date .fas,
|
|
133
|
+
i-datetime .fas {
|
|
128
134
|
font-size: 24px;
|
|
129
135
|
vertical-align: middle;
|
|
130
136
|
margin-top: 5px;
|
|
137
|
+
cursor: pointer;
|
|
138
|
+
}
|
|
139
|
+
i-date .fas:hover,
|
|
140
|
+
i-datetime .fas:hover {
|
|
141
|
+
font-size: 26px;
|
|
131
142
|
}
|
|
132
143
|
i-date p,
|
|
133
144
|
i-datetime p {
|
|
134
|
-
margin
|
|
145
|
+
margin: 0 !important;
|
|
135
146
|
}
|
|
136
|
-
i-
|
|
137
|
-
|
|
138
|
-
|
|
147
|
+
i-date input,
|
|
148
|
+
i-datetime input {
|
|
149
|
+
margin: 0 !important;
|
|
139
150
|
}
|
|
151
|
+
|
|
140
152
|
.modal-content {
|
|
141
153
|
width: 75vw;
|
|
142
154
|
height: 100vh;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<div class="mb-3">
|
|
2
|
+
<label> {{label}} </label>
|
|
3
|
+
<div class="row" ng-hide="editOnly">
|
|
4
|
+
<p ng-click="editOnly = true" class="blue border padding pointer">
|
|
5
|
+
<span>{{model.selectedDay.name || '__'}} </span> / <span>{{model.selectedMonth.name || '______'}}</span> / <span>{{model.selectedYear.name || '____'}}</span>
|
|
6
|
+
</p>
|
|
7
|
+
</div>
|
|
8
|
+
<div class="row dashed padding margin" ng-show="editOnly">
|
|
9
|
+
<div class="col3">
|
|
10
|
+
<i-list label="{{dayTitle}}" v="{{v}}" items="days" ng-search="$selectedDay" ng-model="model.selectedDay"></i-list>
|
|
11
|
+
</div>
|
|
12
|
+
<div class="col4">
|
|
13
|
+
<i-list label="{{monthTitle}}" v="{{v}}" items="monthes" ng-search="$selectedMonth" ng-model="model.selectedMonth"></i-list>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="col3">
|
|
16
|
+
<i-list label="{{yearTitle}}" v="{{v}}" items="years" ng-search="$selectedYear" ng-model="model.selectedYear" active-value="model.activeYear"></i-list>
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
<div class="col2">
|
|
20
|
+
<br />
|
|
21
|
+
<i-button type="save default" ng-click="updateDate()"></i-button>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
<div class="mb-3">
|
|
2
|
-
<label> {{
|
|
2
|
+
<label for="{{id2}}" class="form-label"> <span class="red bold"> {{requird}} </span> {{label}}</label>
|
|
3
3
|
<div class="row" ng-hide="editOnly">
|
|
4
|
-
<p ng-click="editOnly = true" class="blue border padding pointer">
|
|
5
|
-
<span>{{model.selectedDay
|
|
4
|
+
<p ng-click="editOnly = true" class="blue bold border padding pointer">
|
|
5
|
+
<span class="bold">{{model.selectedDay || '__'}} </span> <span class="orange"> / </span> <span class="bold">{{model.selectedMonth.name || '______'}}</span> <span class="orange"> / </span> <span class="bold">{{model.selectedYear || '____'}}</span>
|
|
6
6
|
</p>
|
|
7
7
|
</div>
|
|
8
|
-
<div class="row
|
|
9
|
-
<div class="
|
|
10
|
-
<
|
|
8
|
+
<div class="row" ng-show="editOnly">
|
|
9
|
+
<div class="col10">
|
|
10
|
+
<input
|
|
11
|
+
id="{{id2}}"
|
|
12
|
+
ng-disabled="disabled"
|
|
13
|
+
autofocus
|
|
14
|
+
type="date"
|
|
15
|
+
ng-model="ngModel1"
|
|
16
|
+
ng-change="ngChange()"
|
|
17
|
+
ngKeydown="ngKeydown()"
|
|
18
|
+
class="form-control"
|
|
19
|
+
placeholder="{{placeholder}}"
|
|
20
|
+
aria-label="{{label}}"
|
|
21
|
+
/>
|
|
11
22
|
</div>
|
|
12
|
-
<div class="col4">
|
|
13
|
-
<i-list label="{{monthTitle}}" v="{{v}}" items="monthes" ng-search="$selectedMonth" ng-model="model.selectedMonth"></i-list>
|
|
14
|
-
</div>
|
|
15
|
-
<div class="col3">
|
|
16
|
-
<i-list label="{{yearTitle}}" v="{{v}}" items="years" ng-search="$selectedYear" ng-model="model.selectedYear" active-value="model.activeYear"></i-list>
|
|
17
|
-
</div>
|
|
18
|
-
|
|
19
23
|
<div class="col2">
|
|
20
|
-
<
|
|
21
|
-
<i-button type="save default" ng-click="updateDate()"></i-button>
|
|
24
|
+
<i class="fas fa-save" ng-click="updateDate()"></i>
|
|
22
25
|
</div>
|
|
26
|
+
<div class="invalid-feedback"></div>
|
|
23
27
|
</div>
|
|
24
28
|
</div>
|
|
@@ -1,32 +1,21 @@
|
|
|
1
1
|
<div class="mb-3">
|
|
2
|
-
<label> {{
|
|
2
|
+
<label for="{{id2}}" class="form-label"> <span class="red bold"> {{requird}} </span> {{label}}</label>
|
|
3
3
|
<div class="row" ng-hide="editOnly">
|
|
4
|
-
<p ng-click="editOnly = true" class="blue
|
|
5
|
-
<span>{{model.selectedDay
|
|
6
|
-
<span class="bold green">{{model.selectedMinute
|
|
4
|
+
<p ng-click="editOnly = true" class="blue border padding pointer">
|
|
5
|
+
<span class="bold">{{model.selectedDay || '__'}} </span> <span class="orange"> / </span> <span class="bold">{{model.selectedMonth.name || '______'}}</span> <span class="orange"> / </span> <span class="bold">{{model.selectedYear || '____'}}</span>
|
|
6
|
+
<span class="black left-10"> ( </span> <span class="bold green">{{model.selectedHour || '__'}}</span> <span class="orange"> : </span> <span class="green bold">{{model.selectedMinute || '__'}} </span> <span class="black"> ) </span>
|
|
7
7
|
</p>
|
|
8
8
|
</div>
|
|
9
|
-
<div class="row
|
|
10
|
-
<div class="
|
|
11
|
-
<
|
|
12
|
-
</div>
|
|
13
|
-
<div class="col3">
|
|
14
|
-
<i-list label="{{monthTitle}}" items="monthes" ng-search="$selectedMonth" ng-model="model.selectedMonth"></i-list>
|
|
9
|
+
<div class="row" ng-show="editOnly">
|
|
10
|
+
<div class="col6">
|
|
11
|
+
<input id="date_{{id2}}" ng-disabled="disabled" autofocus type="date" ng-model="ngModel1" class="form-control" aria-label="{{label}}" />
|
|
15
12
|
</div>
|
|
16
|
-
<div class="
|
|
17
|
-
<
|
|
13
|
+
<div class="col4">
|
|
14
|
+
<input id="time_{{id2}}" ng-disabled="disabled" autofocus min="00:00" max="23:59" type="time" ng-model="ngModel2" class="form-control" aria-label="{{label}}" />
|
|
18
15
|
</div>
|
|
19
|
-
|
|
20
16
|
<div class="col2">
|
|
21
|
-
<i
|
|
22
|
-
</div>
|
|
23
|
-
<div class="col2">
|
|
24
|
-
<i-list label="{{minuteTitle}}" items="minutes" ng-search="$selectedMinute" ng-model="model.selectedMinute"></i-list>
|
|
25
|
-
</div>
|
|
26
|
-
<div class="row">
|
|
27
|
-
<br />
|
|
28
|
-
<i-button type="save default" ng-click="updateDate()"></i-button>
|
|
17
|
+
<i class="fas fa-save" ng-click="updateDate()"></i>
|
|
29
18
|
</div>
|
|
19
|
+
<div class="invalid-feedback"></div>
|
|
30
20
|
</div>
|
|
31
|
-
<div class="invalid-feedback"></div>
|
|
32
21
|
</div>
|