isite 2022.8.3 → 2022.8.4

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.
@@ -15,6 +15,12 @@ module.exports = function (site) {
15
15
  });
16
16
  });
17
17
 
18
+ site.get({
19
+ name: '/x-images',
20
+ path: __dirname + '/site_files/images',
21
+ public: true,
22
+ });
23
+
18
24
  site.get({
19
25
  name: '/x-js',
20
26
  path: __dirname + '/site_files/js',
@@ -160,6 +166,7 @@ module.exports = function (site) {
160
166
  __dirname + '/site_files/css/fonts.css',
161
167
  __dirname + '/site_files/css/font-droid.css',
162
168
  __dirname + '/site_files/css/effect.css',
169
+ __dirname + '/site_files/css/scrollbar.css',
163
170
  __dirname + '/site_files/css/table.css',
164
171
  __dirname + '/site_files/css/tabs.css',
165
172
  __dirname + '/site_files/css/help.css',
@@ -28,15 +28,38 @@ label {
28
28
  .ar label {
29
29
  float: right;
30
30
  }
31
+ fieldset {
32
+ padding: var(--fieldset-padding);
33
+ margin: var(--fieldset-margin);
34
+ background: var(--fieldset-background);
35
+ border: var(--fieldset-border);
36
+ }
37
+
38
+ fieldset legend {
39
+ color: var(--legend-color);
40
+ font-size: var(--legend-font-size);
41
+ text-shadow: var(--legend-text-shadow);
42
+ font-weight: var(--legend-font-weight);
43
+ background: var(--fieldset-background);
44
+ border: var(--legend-border);
45
+ }
46
+ i-textarea {
47
+ margin: 10px;
48
+ }
31
49
  i-checkbox,
32
50
  i-radio {
33
51
  align-self: center;
34
52
  margin-left: 1.5em;
35
53
  margin-right: 1.5em;
54
+ white-space: nowrap;
36
55
  }
56
+
37
57
  i-button {
38
58
  display: contents;
39
59
  }
60
+ i-button button {
61
+ margin: 5px;
62
+ }
40
63
  i-file {
41
64
  padding: 10px !important;
42
65
  border: 1px dashed var(--theme-color);
@@ -50,8 +73,24 @@ i-file .view button {
50
73
  width: 40px;
51
74
  height: 40px;
52
75
  }
76
+ i-date .fa {
77
+ font-size: 24px;
78
+ vertical-align: middle;
79
+ margin-top: 5px;
80
+ }
81
+ .modal-content {
82
+ width: 75%;
83
+ }
84
+ .modal-body {
85
+ padding: 10px;
86
+ display: block;
87
+ }
88
+ .modal-footer {
89
+ display: block;
90
+ width: 100%;
91
+ }
53
92
  .dropdown-content {
54
- top: 55px;
93
+ top: 35px;
55
94
  }
56
95
  .v-tabs .nav-link {
57
96
  color: #aaa;
@@ -49,15 +49,33 @@
49
49
  }
50
50
 
51
51
  .dropdown-item {
52
+ display: inline-block;
52
53
  cursor: pointer;
53
54
  background: var(--dropdown-background);
55
+ padding: 0px;
56
+ margin: 0px;
57
+ transition: all .1s ease;
54
58
  }
55
59
  .dropdown-item p {
56
- color: var(--dropdown-color);
57
- font-size: var(--dropdown-font-size);
60
+ color: #055160;
61
+ font-size: 14px;
62
+ font-weight: bold;
58
63
  background: transparent;
64
+ text-align: left;
65
+ }
66
+ .ar .dropdown-item p{
67
+ text-align: right;
59
68
  }
60
69
  .dropdown-item small {
61
- color: var(--dropdown-color2);
62
- font-size: var(--dropdown-font-size2);
70
+ color: antiquewhite;
71
+ font-size: 9px;
72
+ text-align: left;
73
+ padding: 3px;
74
+ background: #198754;
75
+ font-weight: bold;
76
+ padding-right: 9px;
77
+ padding-left: 9px;
78
+ }
79
+ .ar .dropdown-item small{
80
+ text-align: right;
63
81
  }
@@ -1,285 +1,285 @@
1
1
  @media all {
2
- .pointer {
3
- cursor: pointer;
4
- }
5
-
6
- .bold {
7
- font-weight: bold;
8
- }
9
-
10
- .italic {
11
- font-style: italic;
12
- }
13
-
14
- .center,
15
- .center p,
16
- .center span,
17
- .center label,
18
- .center b,
19
- .center i,
20
- .center img {
21
- margin: 0 auto !important;
22
- text-align: center !important;
23
- }
24
-
25
- .float-none{
26
- float: none !important;
27
- }
28
- .center i.center {
29
- vertical-align: text-bottom;
30
- }
31
-
32
- .left {
33
- float: left !important;
34
- }
35
-
36
- .right {
37
- float: right !important;
38
- }
39
-
40
- .text-center {
41
- text-align: center !important;
42
- }
43
-
44
- .text-left {
45
- text-align: left !important;
46
- }
47
-
48
- .text-right {
49
- text-align: right !important;
50
- }
51
-
52
- .border {
53
- border: 1px solid #bbb;
54
- }
55
-
56
- .dashed {
57
- border: 2px dashed #030303;
58
- }
59
-
60
- .margin {
61
- margin: 3px;
62
- }
63
-
64
- .padding {
65
- padding: 3px;
66
- }
67
-
68
- .text-shadow {
69
- text-shadow: 1px 1px 1px #000;
70
- }
71
-
72
- .box-shadow {
73
- box-shadow: 1px 1px 8px 2px #000;
74
- }
75
-
76
- .block {
77
- display: block;
78
- }
79
-
80
- .none {
81
- display: none;
82
- }
83
-
84
- .inline {
85
- display: inline-block;
86
- }
87
-
88
- .inline-grid {
89
- display: inline-grid;
90
- }
91
-
92
- .small {
93
- font-size: small;
94
- }
95
-
96
- .smaller {
97
- font-size: smaller;
98
- }
99
-
100
- .x-small {
101
- font-size: x-small;
102
- }
103
-
104
- .xx-small {
105
- font-size: xx-small;
106
- }
107
-
108
- .medium {
109
- font-size: medium;
110
- }
111
-
112
- .large {
113
- font-size: large;
114
- }
115
-
116
- .larger {
117
- font-size: larger;
118
- }
119
-
120
- .v {
121
- font-size: x-large;
122
- }
123
-
124
- .error {
125
- text-align: center;
126
- color: red;
127
- }
128
-
129
- .xx-large {
130
- font-size: xx-large;
131
- }
132
-
133
- .appearance-none {
134
- -moz-appearance: none;
135
- -webkit-appearance: none;
136
- appearance: none;
137
- }
138
-
139
- .no-border {
140
- border: none !important;
141
- }
142
-
143
- .no-border-left {
144
- border-left: none !important;
145
- }
146
-
147
- .no-border-right {
148
- border-right: none !important;
149
- }
150
-
151
- .no-border-top {
152
- border-top: none !important;
153
- }
154
-
155
- .no-border-bottom {
156
- border-bottom: none !important;
157
- }
158
-
159
- .no-border-radius {
160
- border-radius: 0px !important;
161
- }
162
-
163
- .paper {
164
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15), 0 10px 0 -5px #eee, 0 10px 1px -4px rgba(0, 0, 0, 0.15), 0 20px 0 -10px #eee, 0 20px 1px -9px rgba(0, 0, 0, 0.15);
165
- }
166
-
167
- .full-width {
168
- width: 100%;
169
- margin: 0px;
170
- }
171
-
172
- .hover-scale:hover {
173
- transform: scale(1.1);
174
- }
175
-
176
- .multi-lines {
177
- white-space: pre-wrap;
178
- }
179
-
180
- .ww {
181
- width: 250px !important;
182
- white-space: pre-line !important;
183
- }
184
- .w0 {
185
- width: 1px !important;
186
- white-space: nowrap !important;
187
- }
188
-
189
- .w50,
190
- .w50 input {
191
- min-width: 50px !important;
192
- width: 50px !important;
193
- white-space: pre-line !important;
194
- }
195
-
196
- .w100,
197
- .w100 input {
198
- width: 100px !important;
199
- min-width: 100px !important;
200
- white-space: pre-line !important;
201
- }
202
-
203
- .w125,
204
- .w125 input {
205
- width: 125px !important;
206
- min-width: 125px !important;
207
- white-space: pre-line !important;
208
- }
209
-
210
- .w150,
211
- .w150 input {
212
- width: 150px !important;
213
- min-width: 150px !important;
214
- white-space: pre-line !important;
215
- }
216
-
217
- .w175,
218
- .w175 input {
219
- width: 175px !important;
220
- min-width: 175px !important;
221
- white-space: pre-line !important;
222
- }
223
-
224
- .w200,
225
- .w200 input {
226
- width: 200px !important;
227
- min-width: 200px !important;
228
- white-space: pre-line !important;
229
- }
230
-
231
- .w225,
232
- .w225 input {
233
- width: 225px !important;
234
- min-width: 225px !important;
235
- white-space: pre-line !important;
236
- }
237
-
238
- .w250,
239
- .w250 input {
240
- width: 250px !important;
241
- min-width: 250px !important;
242
- white-space: pre-line !important;
243
- }
244
-
245
- .w275,
246
- .w275 input {
247
- width: 275px !important;
248
- min-width: 275px !important;
249
- white-space: pre-line !important;
250
- }
251
-
252
- .w300,
253
- .w300 input {
254
- width: 300px !important;
255
- min-width: 300px !important;
256
- white-space: pre-line !important;
257
- }
258
-
259
- .w350,
260
- .w350 input {
261
- width: 350px !important;
262
- min-width: 350px !important;
263
- white-space: pre-line !important;
264
- }
265
-
266
- .w400,
267
- .w400 input {
268
- width: 400px !important;
269
- min-width: 400px !important;
270
- white-space: pre-line !important;
271
- }
272
-
273
- .w450,
274
- .w450 input {
275
- width: 450px !important;
276
- min-width: 450px !important;
277
- white-space: pre-line !important;
278
- }
279
- .w500,
280
- .w500 input {
281
- width: 500px !important;
282
- min-width: 500px !important;
283
- white-space: pre-line !important;
284
- }
2
+ .pointer {
3
+ cursor: pointer;
4
+ }
5
+
6
+ .bold {
7
+ font-weight: bold;
8
+ }
9
+
10
+ .italic {
11
+ font-style: italic;
12
+ }
13
+
14
+ .center,
15
+ .center p,
16
+ .center span,
17
+ .center label,
18
+ .center b,
19
+ .center i,
20
+ .center img {
21
+ margin: 0 auto !important;
22
+ text-align: center !important;
23
+ }
24
+
25
+ .float-none {
26
+ float: none !important;
27
+ }
28
+ .center i.center {
29
+ vertical-align: text-bottom;
30
+ }
31
+
32
+ .left {
33
+ float: left !important;
34
+ }
35
+
36
+ .right {
37
+ float: right !important;
38
+ }
39
+
40
+ .text-center {
41
+ text-align: center !important;
42
+ }
43
+
44
+ .text-left {
45
+ text-align: left !important;
46
+ }
47
+
48
+ .text-right {
49
+ text-align: right !important;
50
+ }
51
+
52
+ .border {
53
+ border: 1px solid var(--theme-color);
54
+ }
55
+
56
+ .dashed {
57
+ border: 2px dashed var(--theme-color);
58
+ }
59
+
60
+ .margin {
61
+ margin: 3px;
62
+ }
63
+
64
+ .padding {
65
+ padding: 3px;
66
+ }
67
+
68
+ .text-shadow {
69
+ text-shadow: 1px 1px 1px #000;
70
+ }
71
+
72
+ .box-shadow {
73
+ box-shadow: 1px 1px 8px 2px #000;
74
+ }
75
+
76
+ .block {
77
+ display: block;
78
+ }
79
+
80
+ .none {
81
+ display: none;
82
+ }
83
+
84
+ .inline {
85
+ display: inline-block;
86
+ }
87
+
88
+ .inline-grid {
89
+ display: inline-grid;
90
+ }
91
+
92
+ .small {
93
+ font-size: small;
94
+ }
95
+
96
+ .smaller {
97
+ font-size: smaller;
98
+ }
99
+
100
+ .x-small {
101
+ font-size: x-small;
102
+ }
103
+
104
+ .xx-small {
105
+ font-size: xx-small;
106
+ }
107
+
108
+ .medium {
109
+ font-size: medium;
110
+ }
111
+
112
+ .large {
113
+ font-size: large;
114
+ }
115
+
116
+ .larger {
117
+ font-size: larger;
118
+ }
119
+
120
+ .v {
121
+ font-size: x-large;
122
+ }
123
+
124
+ .error {
125
+ text-align: center;
126
+ color: red;
127
+ }
128
+
129
+ .xx-large {
130
+ font-size: xx-large;
131
+ }
132
+
133
+ .appearance-none {
134
+ -moz-appearance: none;
135
+ -webkit-appearance: none;
136
+ appearance: none;
137
+ }
138
+
139
+ .no-border {
140
+ border: none !important;
141
+ }
142
+
143
+ .no-border-left {
144
+ border-left: none !important;
145
+ }
146
+
147
+ .no-border-right {
148
+ border-right: none !important;
149
+ }
150
+
151
+ .no-border-top {
152
+ border-top: none !important;
153
+ }
154
+
155
+ .no-border-bottom {
156
+ border-bottom: none !important;
157
+ }
158
+
159
+ .no-border-radius {
160
+ border-radius: 0px !important;
161
+ }
162
+
163
+ .paper {
164
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15), 0 10px 0 -5px #eee, 0 10px 1px -4px rgba(0, 0, 0, 0.15), 0 20px 0 -10px #eee, 0 20px 1px -9px rgba(0, 0, 0, 0.15);
165
+ }
166
+
167
+ .full-width {
168
+ width: 100%;
169
+ margin: 0px;
170
+ }
171
+
172
+ .hover-scale:hover {
173
+ transform: scale(1.1);
174
+ }
175
+
176
+ .multi-lines {
177
+ white-space: pre-wrap;
178
+ }
179
+
180
+ .ww {
181
+ width: 250px !important;
182
+ white-space: pre-line !important;
183
+ }
184
+ .w0 {
185
+ width: 1px !important;
186
+ white-space: nowrap !important;
187
+ }
188
+
189
+ .w50,
190
+ .w50 input {
191
+ min-width: 50px !important;
192
+ width: 50px !important;
193
+ white-space: pre-line !important;
194
+ }
195
+
196
+ .w100,
197
+ .w100 input {
198
+ width: 100px !important;
199
+ min-width: 100px !important;
200
+ white-space: pre-line !important;
201
+ }
202
+
203
+ .w125,
204
+ .w125 input {
205
+ width: 125px !important;
206
+ min-width: 125px !important;
207
+ white-space: pre-line !important;
208
+ }
209
+
210
+ .w150,
211
+ .w150 input {
212
+ width: 150px !important;
213
+ min-width: 150px !important;
214
+ white-space: pre-line !important;
215
+ }
216
+
217
+ .w175,
218
+ .w175 input {
219
+ width: 175px !important;
220
+ min-width: 175px !important;
221
+ white-space: pre-line !important;
222
+ }
223
+
224
+ .w200,
225
+ .w200 input {
226
+ width: 200px !important;
227
+ min-width: 200px !important;
228
+ white-space: pre-line !important;
229
+ }
230
+
231
+ .w225,
232
+ .w225 input {
233
+ width: 225px !important;
234
+ min-width: 225px !important;
235
+ white-space: pre-line !important;
236
+ }
237
+
238
+ .w250,
239
+ .w250 input {
240
+ width: 250px !important;
241
+ min-width: 250px !important;
242
+ white-space: pre-line !important;
243
+ }
244
+
245
+ .w275,
246
+ .w275 input {
247
+ width: 275px !important;
248
+ min-width: 275px !important;
249
+ white-space: pre-line !important;
250
+ }
251
+
252
+ .w300,
253
+ .w300 input {
254
+ width: 300px !important;
255
+ min-width: 300px !important;
256
+ white-space: pre-line !important;
257
+ }
258
+
259
+ .w350,
260
+ .w350 input {
261
+ width: 350px !important;
262
+ min-width: 350px !important;
263
+ white-space: pre-line !important;
264
+ }
265
+
266
+ .w400,
267
+ .w400 input {
268
+ width: 400px !important;
269
+ min-width: 400px !important;
270
+ white-space: pre-line !important;
271
+ }
272
+
273
+ .w450,
274
+ .w450 input {
275
+ width: 450px !important;
276
+ min-width: 450px !important;
277
+ white-space: pre-line !important;
278
+ }
279
+ .w500,
280
+ .w500 input {
281
+ width: 500px !important;
282
+ min-width: 500px !important;
283
+ white-space: pre-line !important;
284
+ }
285
285
  }
@@ -12,16 +12,19 @@
12
12
  i-image {
13
13
  width: auto !important;
14
14
  height: auto !important;
15
+ margin: 5px;
15
16
  }
16
17
  i-image img {
17
- width: 150px;
18
- height: 150px;
18
+ width: 128px;
19
+ height: 128px;
19
20
  transition: all 0.5s ease;
20
21
  -moz-transition: all 0.5s ease;
21
22
  -webkit-transition: all 0.5s ease;
22
23
  -ms-transition: all 0.5s ease;
23
- background-image: url('/images/no.jpg');
24
+ background-image: url('/x-images/no.jpg');
24
25
  background-size: contain;
26
+ background-repeat: no-repeat;
27
+ border: 1px dashed var(--theme-color);
25
28
  }
26
29
 
27
30
  i-image.full img {
@@ -35,10 +38,13 @@ i-image.logo img {
35
38
  width: 48px;
36
39
  height: 48px;
37
40
  }
38
-
41
+ i-image.logo64 img {
42
+ width: 64px;
43
+ height: 64px;
44
+ }
39
45
  i-image.photo img {
40
- width: 128px;
41
- height: 128px;
46
+ width: 256px;
47
+ height: 256px;
42
48
  }
43
49
 
44
50
  i-image.hover img:hover {
@@ -0,0 +1,19 @@
1
+ <div class="row i-date2">
2
+ <div class="control">
3
+ <label> {{label}} </label>
4
+ <div class="row dashed">
5
+ <div class="col1 padding" ng-click="setDay()">
6
+ <i class="fa fa-calendar-day"></i>
7
+ </div>
8
+ <div class="col4 padding">
9
+ <i-list items="days" ng-model="model.selectedDay" ng-change="updateDate()"></i-list>
10
+ </div>
11
+ <div class="col4 padding">
12
+ <i-list items="monthes" ng-model="model.selectedMonth" ng-change="updateDate()"></i-list>
13
+ </div>
14
+ <div class="col4 padding">
15
+ <i-list items="years" ng-search="searchYear" ng-model="model.selectedYear" ng-change="updateDate()"></i-list>
16
+ </div>
17
+ </div>
18
+ </div>
19
+ </div>
@@ -1,22 +1,20 @@
1
- <div class="dropdown i-list" >
2
- <div class="control">
3
- <label> {{label}} </label>
4
- <input ng-focus="focus()" class="full-width text dropdown-text form-control {{css}}" ng-disabled="disabled" v="{{v}}" readonly ng-model="ngModel.$display" />
5
- </div>
1
+ <div class="dropdown i-list">
2
+ <div class="control">
3
+ <label> {{label}} </label>
4
+ <input ng-focus="focus()" class="full-width text dropdown-text form-control {{css}}" ng-disabled="disabled" v="{{v}}" readonly ng-model="ngModel.$display" />
5
+ </div>
6
6
 
7
- <div class="dropdown-content">
8
- <div class="row padding" ng-show="showSearch">
9
- <input class="full-width search form-control" ng-model="ngSearch" />
10
- <br />
11
- </div>
7
+ <div class="dropdown-content">
8
+ <div class="padding" ng-show="showSearch">
9
+ <input class="full-width search form-control" ng-model="ngSearch" />
10
+ </div>
12
11
 
13
- <div class="row padding dropdown-item center" ng-repeat="item in items | filter:{ $display : ngSearch}" ng-click="updateModel(item)">
14
- <p>{{getValue(item)}}</p>
15
- <small> {{getValue2(item)}} </small>
16
- </div>
12
+ <div class="dropdown-item row" ng-repeat="item in items | filter:{ $display : ngSearch}" ng-click="updateModel(item)">
13
+ <p>{{getValue(item)}} <small ng-show="display2"> {{getValue2(item)}} </small></p>
14
+ </div>
17
15
 
18
- <div class="row center padding pointer">
19
- <a class="btn red" ng-click="updateModel({})"> <i class="fa fa-trash"></i> Clear </a>
20
- </div>
16
+ <div class="row center padding pointer">
17
+ <a class="btn red" ng-click="updateModel({})"> <i class="fa fa-trash"></i> Clear </a>
21
18
  </div>
19
+ </div>
22
20
  </div>
@@ -158,32 +158,41 @@ app.directive('iButton', function () {
158
158
  },
159
159
  link: function ($scope, element, attrs, ctrl) {
160
160
  $scope.type = $scope.type || '';
161
- if ($scope.type.like('*exit*') || $scope.type.like('*close*')) {
162
- $scope.fa = 'times';
163
- } else if ($scope.type.like('*view*') || $scope.type.like('*details*')) {
164
- $scope.fa = 'file';
165
- } else if ($scope.type.like('*add*') || $scope.type.like('*new*')) {
166
- $scope.fa = 'plus-circle';
161
+ $scope.class = $scope.class = 'btn-dark';
162
+ $scope.fa = $scope.fa || $scope.label ? '' : 'fas fa-play';
163
+
164
+ if ($scope.type.like('*add*') || $scope.type.like('*new*')) {
165
+ $scope.fa = 'fas fa-plus';
166
+ $scope.class = 'btn-primary';
167
167
  } else if ($scope.type.like('*update*') || $scope.type.like('*edit*')) {
168
- $scope.fa = 'edit';
168
+ $scope.fa = 'fas fa-edit';
169
+ $scope.class = 'btn-warning';
169
170
  } else if ($scope.type.like('*save*')) {
170
- $scope.fa = 'save';
171
+ $scope.fa = 'fas fa-save';
172
+ $scope.class = 'btn-success';
173
+ } else if ($scope.type.like('*view*') || $scope.type.like('*details*')) {
174
+ $scope.fa = 'fas fa-eye';
175
+ $scope.class = 'btn-info';
171
176
  } else if ($scope.type.like('*delete*') || $scope.type.like('*remove*')) {
172
- $scope.fa = 'trash';
177
+ $scope.fa = 'fas fa-trash';
178
+ $scope.class = 'btn-danger';
179
+ } else if ($scope.type.like('*exit*') || $scope.type.like('*close*')) {
180
+ $scope.fa = 'fas fa-times-circle';
181
+ $scope.class = 'btn-danger';
173
182
  } else if ($scope.type.like('*print*')) {
174
- $scope.fa = 'print';
183
+ $scope.fa = 'fas fa-print';
184
+ $scope.class = 'btn-secondary';
175
185
  } else if ($scope.type.like('*search*')) {
176
186
  $scope.fa = 'search';
177
187
  } else if ($scope.type.like('*export*') || $scope.type.like('*excel*')) {
178
- $scope.fa = 'table';
179
- } else {
180
- $scope.class = 'btn-primary';
188
+ $scope.fa = 'fas fa-file-export';
189
+ $scope.class = 'btn-secondary';
181
190
  }
182
191
  $scope.$watch('loading', (loading) => {
183
- if (loading === 'true' ) {
184
- $scope.busy = true
192
+ if (loading === 'true') {
193
+ $scope.busy = true;
185
194
  } else {
186
- $scope.busy = false
195
+ $scope.busy = false;
187
196
  }
188
197
  });
189
198
  },
@@ -191,6 +200,7 @@ app.directive('iButton', function () {
191
200
  <button class="btn {{class}}" type="button" ng-click="click()" ng-disabled="busy">
192
201
  <span ng-show="busy" class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
193
202
  {{label}}
203
+ <i class="{{fa}}"></i>
194
204
  </button>
195
205
  `,
196
206
  };
@@ -220,9 +230,10 @@ app.directive('iList', [
220
230
  items: '=',
221
231
  },
222
232
  link: function ($scope, element, attrs, ctrl) {
223
- $scope.display = attrs.display = attrs.display || 'name';
224
- $scope.primary = attrs.primary = attrs.primary || 'id';
225
- attrs.space = attrs.space || ' ';
233
+ $scope.primary = $scope.primary || 'id';
234
+ $scope.display = $scope.display || 'name';
235
+ $scope.display2 = $scope.display2 || '';
236
+ $scope.space = $scope.space || ' - ';
226
237
  attrs.ngValue = attrs.ngValue || '';
227
238
 
228
239
  $scope.searchElement = $(element).find('.dropdown .search');
@@ -306,7 +317,11 @@ app.directive('iList', [
306
317
 
307
318
  if (items) {
308
319
  items.forEach((item) => {
309
- item.$display = $scope.getValue(item) + attrs.space + $scope.getValue2(item);
320
+ if ($scope.display2) {
321
+ item.$display = $scope.getValue(item) + $scope.space + $scope.getValue2(item);
322
+ } else {
323
+ item.$display = $scope.getValue(item);
324
+ }
310
325
  });
311
326
  }
312
327
 
@@ -314,7 +329,12 @@ app.directive('iList', [
314
329
  items.forEach((item) => {
315
330
  if (isite.getValue(item, $scope.primary) == isite.getValue($scope.ngModel, $scope.primary)) {
316
331
  $scope.ngModel = item;
317
- item.$display = $scope.getValue(item) + attrs.space + $scope.getValue2(item);
332
+ if ($scope.display2) {
333
+ item.$display = $scope.getValue(item) + $scope.space + $scope.getValue2(item);
334
+ } else {
335
+ item.$display = $scope.getValue(item);
336
+ }
337
+
318
338
  input.val(item.$display);
319
339
  }
320
340
  });
@@ -327,16 +347,26 @@ app.directive('iList', [
327
347
  $scope.ngModel = ngModel;
328
348
 
329
349
  if (ngModel) {
330
- input.val(' ' + $scope.getNgModelValue(ngModel) + attrs.space + $scope.getNgModelValue2(ngModel));
350
+ if ($scope.display2) {
351
+ input.val(' ' + $scope.getNgModelValue(ngModel) + $scope.space + $scope.getNgModelValue2(ngModel));
352
+ } else {
353
+ input.val(' ' + $scope.getNgModelValue(ngModel));
354
+ }
331
355
  }
332
356
  });
333
357
 
334
358
  $scope.updateModel = function (item) {
335
359
  $scope.ngModel = $scope.getNgValue(item, $scope.ngValue);
336
- input.val($scope.getNgModelValue($scope.ngModel) + attrs.space + $scope.getNgModelValue2($scope.ngModel));
360
+ if ($scope.display2) {
361
+ input.val($scope.getNgModelValue($scope.ngModel) + $scope.space + $scope.getNgModelValue2($scope.ngModel));
362
+ } else {
363
+ input.val($scope.getNgModelValue($scope.ngModel));
364
+ }
337
365
  $timeout(() => {
338
- $scope.ngChange();
339
- });
366
+ if ($scope.ngChange) {
367
+ $scope.ngChange();
368
+ }
369
+ }, 100);
340
370
  $scope.hide();
341
371
  };
342
372
  },
@@ -364,7 +394,7 @@ app.directive('iChecklist', [
364
394
  link: function ($scope, element, attrs, ctrl) {
365
395
  $scope.primary = $scope.primary || 'id';
366
396
  $scope.display = $scope.display || 'name';
367
- $scope.class2 = $scope.class2 || 'col3';
397
+ $scope.class2 = $scope.class2 || 'col';
368
398
  $scope.selectedItems = [];
369
399
 
370
400
  $scope.$watch('ngModel', (ngModel) => {
@@ -446,132 +476,86 @@ app.directive('iChecklist', [
446
476
  };
447
477
  },
448
478
  ]);
479
+
449
480
  app.directive('iDate', function () {
450
481
  return {
451
- link: function (scope, element, attrs) {
452
- if (typeof attrs.disabled !== 'undefined') {
453
- attrs.disabled = 'disabled';
454
- } else {
455
- attrs.disabled = '';
456
- }
457
-
458
- $(element)
459
- .find('select')
460
- .focus(() => {
461
- $('.popup').hide();
462
- });
463
-
464
- scope.days1 = [];
465
- for (let i = 1; i < 32; i++) {
466
- scope.days1.push(i);
467
- }
468
- scope.years1 = [];
469
- for (let i = 1900; i < 2100; i++) {
470
- scope.years1.push(i);
471
- }
472
- scope.monthes1 = ['يناير', 'فبراير', 'مارس', 'ابريل', 'مايو', 'يونيو', 'يوليو', 'اغسطس', 'سبتمبر', 'اكتوبر', 'نوفمبر', 'ديسمبر'];
473
- },
474
482
  restrict: 'E',
475
- require: 'ngModel',
483
+ required: 'ngModel',
476
484
  scope: {
477
- v: '@',
478
485
  label: '@',
479
- disabled: '@',
486
+ year: '@',
480
487
  ngModel: '=',
488
+ ngChange: '&',
481
489
  },
482
- template: `
483
- <div class="row i-date">
484
-
485
- <div class=" control">
486
- <label> {{label}} </label>
487
- <div class="row">
488
- <div class="col3 day">
489
- <select ng-disabled="disabled" v="{{v}}" ng-model="ngModel.day" class="appearance-none no-border-left no-border-radius" >
490
- <option ng-repeat="d1 in days1" ng-value="d1"> {{d1}} </option>
491
- </select>
492
- </div>
493
- <div class="col5 month">
494
- <select ng-disabled="disabled" v="{{v}}" ng-model="ngModel.month" class="appearance-none no-border-left no-border-right no-border-radius" >
495
- <option ng-repeat="m1 in monthes1" ng-value="$index"> {{m1}} </option>
496
- </select>
497
- </div>
498
- <div class="col4 year">
499
- <select ng-disabled="disabled" v="{{v}}" ng-model="ngModel.year" class="appearance-none no-border-right no-border-radius" >
500
- <option ng-repeat="y1 in years1" ng-value="y1"> {{y1}} </option>
501
- </select>
502
- </div>
503
- </div>
504
- </div>
505
-
506
-
507
- </div>
508
- `,
509
- };
510
- });
511
-
512
- app.directive('iDate2', function () {
513
- return {
514
490
  link: function ($scope, element, attrs) {
515
491
  if (typeof attrs.disabled !== 'undefined') {
516
492
  attrs.disabled = 'disabled';
517
493
  } else {
518
494
  attrs.disabled = '';
519
495
  }
496
+ $scope.year = $scope.year ? parseInt($scope.year) : 1960;
520
497
 
521
- $scope.y_search = attrs.year || '202';
522
- $scope.m_search = attrs.month || '';
523
- $scope.d_search = attrs.day || '';
498
+ $scope.model = {};
524
499
 
525
- $scope.days1 = [];
500
+ $scope.days = [];
526
501
  for (let i = 1; i < 32; i++) {
527
- $scope.days1.push({
502
+ $scope.days.push({
528
503
  id: i,
529
504
  name: i,
530
505
  });
531
506
  }
532
- $scope.years1 = [];
533
- for (let i = 1900; i < 2100; i++) {
534
- $scope.years1.push({
507
+ $scope.years = [];
508
+ for (let i = $scope.year; i < 2100; i++) {
509
+ $scope.years.push({
535
510
  id: i,
536
511
  name: i,
537
512
  });
538
513
  }
539
-
540
- $scope.monthes1 = [
541
- { id: 0, name: 'يناير / Jan' },
542
- { id: 1, name: 'فبراير / Feb' },
543
- { id: 2, name: 'مارس / Mar' },
544
- { id: 3, name: 'ابريل / Aper' },
545
- { id: 4, name: 'مايو / May' },
546
- { id: 5, name: 'يونيو / June' },
547
- { id: 6, name: 'يوليو / Jule' },
548
- { id: 7, name: 'اغسطس / Aug' },
549
- { id: 8, name: 'سبتمبر / Sep' },
550
- { id: 9, name: 'اكتوبر / Oct' },
551
- { id: 10, name: 'نوفمبر / Nov' },
552
- { id: 11, name: 'ديسمبر / Des' },
553
- ];
554
-
555
- $scope.model = null;
514
+ $scope.lang = site.session ? site.session.lang : 'en';
515
+ if ($scope.lang === 'ar') {
516
+ $scope.monthes = [
517
+ { id: 0, name: 'يناير' },
518
+ { id: 1, name: 'فبراير' },
519
+ { id: 2, name: 'مارس' },
520
+ { id: 3, name: 'ابريل' },
521
+ { id: 4, name: 'مايو' },
522
+ { id: 5, name: 'يونيو' },
523
+ { id: 6, name: 'يوليو' },
524
+ { id: 7, name: 'اغسطس' },
525
+ { id: 8, name: 'سبتمبر' },
526
+ { id: 9, name: 'اكتوبر' },
527
+ { id: 10, name: 'نوفمبر' },
528
+ { id: 11, name: 'ديسمبر' },
529
+ ];
530
+ } else {
531
+ $scope.monthes = [
532
+ { id: 0, name: 'Jan' },
533
+ { id: 1, name: 'Feb' },
534
+ { id: 2, name: 'Mar' },
535
+ { id: 3, name: 'Aper' },
536
+ { id: 4, name: 'May' },
537
+ { id: 5, name: 'June' },
538
+ { id: 6, name: 'Jule' },
539
+ { id: 7, name: 'Aug' },
540
+ { id: 8, name: 'Sep' },
541
+ { id: 9, name: 'Oct' },
542
+ { id: 10, name: 'Nov' },
543
+ { id: 11, name: 'Des' },
544
+ ];
545
+ }
556
546
 
557
547
  $scope.$watch('ngModel', function (ngModel) {
558
548
  if (ngModel) {
559
549
  ngModel = new Date(ngModel);
560
550
  $scope.model = $scope.model || {};
561
- $scope.model.day = ngModel.getDate();
562
- $scope.model.day_name = $scope.model.day;
563
- $scope.model.month = ngModel.getMonth();
564
- $scope.model.month_name = $scope.monthes1.find((m) => m.id == $scope.model.month).name;
565
- $scope.model.year = ngModel.getFullYear();
566
- $scope.model.year_name = $scope.model.year;
551
+ $scope.model.selectedDay = $scope.days.find((d) => d.id == ngModel.getDate());
552
+ $scope.model.selectedMonth = $scope.monthes.find((m) => m.id == ngModel.getMonth());
553
+ $scope.model.selectedYear = $scope.years.find((y) => y.id == ngModel.getFullYear());
567
554
  } else {
568
555
  $scope.model = $scope.model || {};
569
- $scope.model.day = 0;
570
- $scope.model.day_name = '';
571
- $scope.model.month = -1;
572
- $scope.model.month_name = '';
573
- $scope.model.year = 0;
574
- $scope.model.year_name = '';
556
+ $scope.model.selectedDay = null;
557
+ $scope.model.selectedMonth = null;
558
+ $scope.model.selectedYear = null;
575
559
  }
576
560
  });
577
561
 
@@ -579,21 +563,11 @@ app.directive('iDate2', function () {
579
563
  $scope.ngModel = new Date();
580
564
  };
581
565
  $scope.updateDate = function (date) {
582
- if (date.year) {
583
- $scope.model.year = date.year.id;
584
- $scope.model.year_name = date.year.name;
585
- } else if (date.month) {
586
- $scope.model.month = date.month.id;
587
- $scope.model.month_name = date.month.name;
588
- } else if (date.day) {
589
- $scope.model.day = date.day.id;
590
- $scope.model.day_name = date.day.name;
591
- }
592
-
593
- if ($scope.model && $scope.model.year && $scope.model.day && $scope.model.month > -1) {
594
- $scope.ngModel = new Date($scope.model.year, $scope.model.month, $scope.model.day, 0, 0, 0);
595
- } else {
596
- delete $scope.ngModel;
566
+ if ($scope.model.selectedDay && $scope.model.selectedMonth && $scope.model.selectedYear) {
567
+ $scope.ngModel = new Date($scope.model.selectedYear.id, $scope.model.selectedMonth.id, $scope.model.selectedDay.id, 0, 0, 0);
568
+ if ($scope.ngChange) {
569
+ $scope.ngChange();
570
+ }
597
571
  }
598
572
  };
599
573
  },
@@ -605,7 +579,7 @@ app.directive('iDate2', function () {
605
579
  label: '@',
606
580
  ngModel: '=',
607
581
  },
608
- template: `/*##client-side/sub/i-date2.content.html*/`,
582
+ template: `/*##client-side/directive/i-date.html*/`,
609
583
  };
610
584
  });
611
585
 
Binary file
package/lib/cookie.js CHANGED
@@ -6,7 +6,7 @@ module.exports = function init(req, res, ____0) {
6
6
  return cookie.get(key);
7
7
  }
8
8
  };
9
-
9
+ cookie.newList = [];
10
10
  cookie.parse = (cookies) => {
11
11
  let obj = {};
12
12
  if (!cookies) {
@@ -41,8 +41,6 @@ module.exports = function init(req, res, ____0) {
41
41
  return out;
42
42
  };
43
43
 
44
- cookie.obj = cookie.parse(req.headers.cookie || '');
45
- cookie.newList = [];
46
44
  cookie.write = () => {
47
45
  let csList = [];
48
46
 
@@ -61,7 +59,7 @@ module.exports = function init(req, res, ____0) {
61
59
  expires: ____0.options.session.timeout,
62
60
  path: '/',
63
61
  },
64
- _options,
62
+ _options
65
63
  );
66
64
 
67
65
  cookie.newList.push({
@@ -78,6 +76,6 @@ module.exports = function init(req, res, ____0) {
78
76
  }
79
77
  return value;
80
78
  };
81
-
79
+ cookie.obj = cookie.parse(req.headers.cookie || '');
82
80
  return cookie;
83
81
  };
package/lib/routing.js CHANGED
@@ -1188,6 +1188,8 @@ module.exports = function init(____0) {
1188
1188
  ____0.server = null;
1189
1189
 
1190
1190
  _0xrrxo.start = function (_ports, callback) {
1191
+ ____0.startTime = Date.now();
1192
+
1191
1193
  const ports = [];
1192
1194
 
1193
1195
  if (_ports && ____0.typeof(_ports) !== 'Array') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isite",
3
- "version": "2022.08.03",
3
+ "version": "2022.08.04",
4
4
  "description": "Create Enterprise Multi-Language Web Site [Fast and Easy] ",
5
5
  "main": "index.js",
6
6
  "repository": {
@@ -1,64 +0,0 @@
1
- <div class="row i-date2">
2
- <div class="control">
3
- <label> {{label}} </label>
4
- <div class="row">
5
- <div class="col1 center" ng-click="setDay()">
6
- <i class="fa fa-calendar-day"></i>
7
- </div>
8
- <div class="col2 day">
9
- <div class="dropdown">
10
- <div class="control">
11
- <input class="full-width text dropdown-text {{css}}" ng-disabled="disabled" v="{{v}}" readonly ng-model="model.day_name" />
12
- </div>
13
-
14
- <div class="dropdown-content">
15
- <div class="row padding" >
16
- <input class="full-width search" ng-model="d_search" />
17
- <br />
18
- </div>
19
-
20
- <div class="row padding dropdown-item" ng-repeat="d in days1| filter : d_search">
21
- <p class="center" ng-click="updateDate({day : d})">{{d.name}}</p>
22
- </div>
23
- </div>
24
- </div>
25
- </div>
26
- <div class="col5 month">
27
- <div class="dropdown">
28
- <div class="control">
29
- <input class="full-width text dropdown-text {{css}}" ng-disabled="disabled" v="{{v}}" readonly ng-model="model.month_name" />
30
- </div>
31
-
32
- <div class="dropdown-content">
33
- <div class="row padding" >
34
- <input class="full-width search" ng-model="m_search" />
35
- <br />
36
- </div>
37
-
38
- <div class="row padding dropdown-item" ng-repeat="m in monthes1 | filter : m_search">
39
- <p class="center" ng-click="updateDate({month : m})">{{m.name}}</p>
40
- </div>
41
- </div>
42
- </div>
43
- </div>
44
- <div class="col4 year">
45
- <div class="dropdown">
46
- <div class="control">
47
- <input class="full-width text dropdown-text {{css}}" ng-disabled="disabled" v="{{v}}" readonly ng-model="model.year_name" />
48
- </div>
49
-
50
- <div class="dropdown-content">
51
- <div class="row padding">
52
- <input class="full-width search" ng-model="y_search" />
53
- <br />
54
- </div>
55
-
56
- <div class="row padding dropdown-item" ng-repeat="y in years1 | filter : y_search">
57
- <p class="center" ng-click="updateDate({year : y})">{{y.name}}</p>
58
- </div>
59
- </div>
60
- </div>
61
- </div>
62
- </div>
63
- </div>
64
- </div>