isite 2024.8.15 → 2024.8.17

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.
Files changed (31) hide show
  1. package/README.md +1 -1
  2. package/apps/client-side/site_files/css/bootstrap5-addon.css +21 -13
  3. package/apps/client-side/site_files/css/dropdown.css +12 -8
  4. package/apps/client-side/site_files/css/effect.css +32 -11
  5. package/apps/client-side/site_files/css/form.css +8 -2
  6. package/apps/client-side/site_files/css/images.css +3 -38
  7. package/apps/client-side/site_files/css/layout.css +7 -2
  8. package/apps/client-side/site_files/css/table.css +4 -2
  9. package/apps/client-side/site_files/css/theme_paper.css +182 -182
  10. package/apps/client-side/site_files/html/directive/i-image.html +1 -1
  11. package/apps/client-side/site_files/html/directive/i-list.html +1 -1
  12. package/apps/client-side/site_files/html/directive-core/i-date.html +6 -50
  13. package/apps/client-side/site_files/js/bootstrap-5-addon.js +3 -0
  14. package/apps/client-side/site_files/js/bootstrap-5-directive.js +18 -7
  15. package/apps/client-side/site_files/js/directive.js +25 -33
  16. package/apps/client-side/site_files/js/ref.js +12 -12
  17. package/apps/client-side/site_files/js/ref.min.js +1 -1
  18. package/apps/client-side/site_files/js/site.js +49 -47
  19. package/apps/client-side/site_files/js/site.min.js +1 -1
  20. package/apps/security/site_files/html/login_modal.html +1 -1
  21. package/apps/security/site_files/html/register_modal.html +1 -1
  22. package/isite_files/html/login.html +1 -1
  23. package/isite_files/html/navbar.html +61 -52
  24. package/lib/collection.js +19 -16
  25. package/lib/mongodb.js +10 -4
  26. package/lib/parser.js +1 -0
  27. package/lib/security.js +3 -0
  28. package/lib/session.js +3 -0
  29. package/lib/words.js +2 -0
  30. package/object-options/lib/fn.js +8 -0
  31. package/package.json +1 -1
@@ -1,184 +1,184 @@
1
1
  :root {
2
-
3
- --theme-color: #317cb9;
4
- --theme-color2: #2f8033;
5
- --theme-color3: #3f51b5;
6
- --font-family: Arabic, English , sans-serif, Tahoma, serif;
7
- --bs-body-font-family : Arabic, English , sans-serif, Tahoma, serif;
8
- --font-weight: normal;
9
- --font-size: 14px;
10
- --line-height: 1.5;
11
- --float: left;
12
- --direction: ltr;
13
- --text-align: left;
14
- --color: #030303;
15
- --background-color: #ffffff;
16
- --box-shadow-color: #272727;
17
- --border: 1px solid #353535;
18
- --zoom: 90%;
19
- --user-select: none;
20
-
21
- --body-background: #ffffff;
22
- --body-margin-top: 70px;
23
- --body-margin-bottom: 300px;
24
-
25
- --h-font-weight: normal;
26
-
27
- --navbar-color: #fff;
28
- --navbar-span-color: #fff;
29
- --navbar-background-color: var(--theme-color);
30
- --navbar-box-shadow-color: #272727;
31
- --navbar-li-border-radius: 15px;
32
- --navbar-li-border: none;
33
-
34
- --tabs-color: #fff;
35
- --tabs-background-color: var(--theme-color);
36
- --tabs-background-color2: var(--theme-color);
37
- --tabs-header-width: 20%;
38
- --tabs-content-width: 80%;
39
-
40
- --tabs-header-link-font-size: 18px;
41
- --tabs-header-link-font-weight: 700;
42
- --tabs-header-link-color: #272727;
43
- --tabs-header-link-color2: #ffffff;
44
- --tabs-header-link-background: none;
45
- --tabs-header-link-border: none;
46
- --tabs-header-link-border-bottom: 1px solid var(--theme-color);
47
- --tabs-header-link-radius: 0px;
48
-
49
- --tab-animation-name: animateleft;
50
- --tab-animation-duration: 1s;
51
-
52
- --treeview-color: #000000;
53
- --treeview-color2: #ffffff;
54
- --treeview-background-color: none;
55
- --treeview-border-color: #000000;
56
- --treeview-background-color2: #404040;
57
- --treeview-display-color: #0000ff;
58
-
59
- --form-color: #000000;
60
- --form-background-color: none;
61
-
62
- --label-color : #000;
63
- --label-font-size: 16px;
64
- --label-font-weight: normal;
65
- --label-text-align: var(--text-align);
66
- --label-background : none;
67
-
68
- --input-color: #0000ff;
69
- --input-background-color: #ffffff;
70
- --input-height: 35px;
71
- --input-padding: 6px 12px;
72
- --input-font-size: 14px;
73
- --input-font-wight: normal;
74
- --input-border-radius: 0px;
75
- --input-border-width: 0 0 1px;
76
- --input-border-color: rgba(211, 211, 211, 0.91);
77
- --input-focus-border-width: 0 0 2px;
78
- --input-focus-border-color: var(--theme-color);
79
-
80
- --dropdown-color : green;
81
- --dropdown-background : #fff;
82
- --dropdown-font-size : 14px;
83
- --dropdown-color2 : #000;
84
- --dropdown-font-size2 : 12px;
85
-
86
- --textarea-border-width: 1px;
87
- --select-appearance: none;
88
- --select-font-size: var(--input-font-size);
89
- --select-color: #ffffff;
90
- --select-height: 35px;
91
-
92
- --btn-color: #000;
93
- --btn-background: #ffffff;
94
- --btn-box-shadow: none;
95
- --btn-box-shadow-color: #272727;
96
- --btn-border-radius: 5px;
97
- --btn-border: 1px solid #ddd;
98
-
99
- --btn-display: inline-block;
100
- --btn-cursor: pointer;
101
- --btn-min-width: 90px;
102
- --btn-min-height: 36px;
103
- --btn-font-weight: 400;
104
-
105
- --btn-text-decoration: none;
106
- --btn-text-align: center;
107
- --btn-vertical-align: middle;
108
- --btn-margin: 10px;
109
- --btn-padding: 7px 9px;
110
- --btn-font-size: 14px;
111
- --btn-user-select: none;
112
-
113
- --btn-add-color: #000;
114
- --btn-add-background-color: #ffffff;
115
- --btn-update-color: #000;
116
- --btn-update-background-color: #ffffff;
117
- --btn-save-color: #000;
118
- --btn-save-background-color: #ffffff;
119
- --btn-delete-color: #000;
120
- --btn-delete-background-color: #ffffff;
121
- --btn-view-color: #000;
122
- --btn-view-background-color: #ffffff;
123
- --btn-exit-color: #000;
124
- --btn-exit-background-color: #ffffff;
125
- --btn-search-color: #000;
126
- --btn-search-background-color: #ffffff;
127
- --btn-print-color: #000;
128
- --btn-print-background-color: #ffffff;
129
- --btn-export-color: #000000;
130
- --btn-export-background-color: #ffffff;
131
- --btn-sgin-color: #000000;
132
- --btn-sgin-background-color: #ffffff;
133
-
134
- --i-image-border: 3px dashed var(--theme-color);
135
- --i-image-view-border: 2px solid var(--theme-color);
136
-
137
- --fieldset-border: 1px solid var(--theme-color);
138
- --fieldset-background: none;
139
- --fieldset-margin : 10px;
140
- --fieldset-padding : 5px;
141
- --legend-color: var(--theme-color);
142
- --legend-text-shadow: none;
143
- --legend-font-size: 18px;
144
- --legend-font-weight: bold;
145
- --legend-border: none;
146
-
147
- --modal-background: var(--theme-color);
148
- --modal-content-background: #ffffff;
149
- --modal-content-border: 3px solid var(--theme-color);
150
- --modal-color: #000;
151
- --modal-animation-name: animateleft;
152
- --modal-animation-duration: 0.4s;
153
- --modal-header-color: #fff;
154
- --modal-footer-color: #fff;
155
- --modal-header-background-color: var(--theme-color);
156
- --modal-footer-background-color: #ffffff;
157
- --modal-box-shadow-color: #272727;
158
-
159
- --table-color: #030303;
160
- --table-background-color: #ffffff;
161
- --table-border: 1px solid #bbb;
162
- --table-hover-background-color: #eee;
163
- --table-th-color: #fff;
164
-
165
- --help-height: 110px;
166
- --help-border: 1px solid #272727;
167
- --help-border-radius: 0px;
168
- --help-background-color: #3f51b5;
169
- --help-opacity: 1;
170
- --help-content-color: #ffffff;
171
-
172
- --main-menu-item-padding: 5px;
173
- --main-menu-item-border: 3px solid var(--theme-color);
174
- --main-menu-item-border-radius: 15px;
175
- --main-menu-item-background-color: #fff;
176
- --main-menu-h2-color: #000;
177
- --main-menu-p-color: #000;
178
-
179
- --scrollbar-width : 10px;
180
- --scrollbar-color: #ffeb3b;
181
- --scrollbar-outline:1px solid var(--scrollbar-color);
182
- --scrollbar-background-color: #272727;
183
- --scrollbar-box-shadow: inset 0 0 6px #4caf50;
2
+ --theme-color: #317cb9;
3
+ --theme-color2: #2f8033;
4
+ --theme-color3: #3f51b5;
5
+ --font-family: Arabic, English, sans-serif, Tahoma, serif;
6
+ --bs-body-font-family: Arabic, English, sans-serif, Tahoma, serif;
7
+ --font-weight: normal;
8
+ --font-size: 14px;
9
+ --line-height: 1.5;
10
+ --float: left;
11
+ --direction: ltr;
12
+ --text-align: left;
13
+ --color: #030303;
14
+ --background-color: #ffffff;
15
+ --box-shadow-color: #272727;
16
+ --border: 1px solid #353535;
17
+ --zoom: 90%;
18
+ --user-select: none;
19
+
20
+ --body-background: #ffffff;
21
+ --body-margin-top: 70px;
22
+ --body-margin-bottom: 300px;
23
+
24
+ --h-font-weight: normal;
25
+
26
+ --navbar-color: #fff;
27
+ --navbar-span-color: #fff;
28
+ --navbar-background-color: var(--theme-color);
29
+ --navbar-box-shadow-color: #272727;
30
+ --navbar-li-border-radius: 15px;
31
+ --navbar-li-border: none;
32
+
33
+ --tabs-color: #fff;
34
+ --tabs-background-color: var(--theme-color);
35
+ --tabs-background-color2: var(--theme-color);
36
+ --tabs-header-width: 20%;
37
+ --tabs-content-width: 80%;
38
+
39
+ --tabs-header-link-font-size: 18px;
40
+ --tabs-header-link-font-weight: 700;
41
+ --tabs-header-link-color: #272727;
42
+ --tabs-header-link-color2: #ffffff;
43
+ --tabs-header-link-background: none;
44
+ --tabs-header-link-border: none;
45
+ --tabs-header-link-border-bottom: 1px solid var(--theme-color);
46
+ --tabs-header-link-radius: 0px;
47
+
48
+ --tab-animation-name: animateleft;
49
+ --tab-animation-duration: 1s;
50
+
51
+ --treeview-color: #000000;
52
+ --treeview-color2: #ffffff;
53
+ --treeview-background-color: none;
54
+ --treeview-border-color: #000000;
55
+ --treeview-background-color2: #404040;
56
+ --treeview-display-color: #0000ff;
57
+
58
+ --form-color: #000000;
59
+ --form-background-color: none;
60
+
61
+ --label-color: #000;
62
+ --label-font-size: 16px;
63
+ --label-font-weight: normal;
64
+ --label-text-align: var(--text-align);
65
+ --label-background: none;
66
+
67
+ --input-color: #0000ff;
68
+ --input-background-color: #ffffff;
69
+ --input-height: 35px;
70
+ --input-padding: 6px 12px;
71
+ --input-font-size: 14px;
72
+ --input-font-wight: normal;
73
+ --input-border-radius: 0px;
74
+ --input-border-width: 0 0 1px;
75
+ --input-border-color: rgba(211, 211, 211, 0.91);
76
+ --input-focus-border-width: 0 0 2px;
77
+ --input-focus-border-color: var(--theme-color);
78
+
79
+ --dropdown-color: green;
80
+ --dropdown-background: #fff;
81
+ --dropdown-font-size: 14px;
82
+ --dropdown-color2: #000;
83
+ --dropdown-font-size2: 12px;
84
+
85
+ --textarea-border-width: 1px;
86
+ --select-appearance: none;
87
+ --select-font-size: var(--input-font-size);
88
+ --select-color: #ffffff;
89
+ --select-height: 35px;
90
+
91
+ --btn-color: #000;
92
+ --btn-background: #ffffff;
93
+ --btn-box-shadow: none;
94
+ --btn-box-shadow-color: #272727;
95
+ --btn-border-radius: 5px;
96
+ --btn-border: 1px solid #ddd;
97
+
98
+ --btn-display: inline-block;
99
+ --btn-cursor: pointer;
100
+ --btn-min-width: 90px;
101
+ --btn-min-height: 36px;
102
+ --btn-font-weight: 400;
103
+
104
+ --btn-text-decoration: none;
105
+ --btn-text-align: center;
106
+ --btn-vertical-align: middle;
107
+ --btn-margin: 10px;
108
+ --btn-padding: 7px 9px;
109
+ --btn-font-size: 14px;
110
+ --btn-user-select: none;
111
+
112
+ --btn-add-color: #000;
113
+ --btn-add-background-color: #ffffff;
114
+ --btn-update-color: #000;
115
+ --btn-update-background-color: #ffffff;
116
+ --btn-save-color: #000;
117
+ --btn-save-background-color: #ffffff;
118
+ --btn-delete-color: #000;
119
+ --btn-delete-background-color: #ffffff;
120
+ --btn-view-color: #000;
121
+ --btn-view-background-color: #ffffff;
122
+ --btn-exit-color: #000;
123
+ --btn-exit-background-color: #ffffff;
124
+ --btn-search-color: #000;
125
+ --btn-search-background-color: #ffffff;
126
+ --btn-print-color: #000;
127
+ --btn-print-background-color: #ffffff;
128
+ --btn-export-color: #000000;
129
+ --btn-export-background-color: #ffffff;
130
+ --btn-sgin-color: #000000;
131
+ --btn-sgin-background-color: #ffffff;
132
+
133
+ --i-image-border: 3px dashed var(--theme-color);
134
+ --i-image-view-border: 2px solid var(--theme-color);
135
+
136
+ --fieldset-border: none;
137
+ --fieldset-border-radius : 10px;
138
+ --fieldset-background: #e9ecef;
139
+ --fieldset-margin: 10px;
140
+ --fieldset-padding: 5px;
141
+ --legend-color: #5a5a5a;
142
+ --legend-text-shadow: none;
143
+ --legend-font-size: 24px;
144
+ --legend-font-weight: bold;
145
+ --legend-border: none;
146
+
147
+ --modal-background: var(--theme-color);
148
+ --modal-content-background: #ffffff;
149
+ --modal-content-border: 3px solid var(--theme-color);
150
+ --modal-color: #000;
151
+ --modal-animation-name: animateleft;
152
+ --modal-animation-duration: 0.4s;
153
+ --modal-header-color: #fff;
154
+ --modal-footer-color: #fff;
155
+ --modal-header-background-color: var(--theme-color);
156
+ --modal-footer-background-color: #ffffff;
157
+ --modal-box-shadow-color: #272727;
158
+
159
+ --table-color: #030303;
160
+ --table-background-color: #ffffff;
161
+ --table-border: 1px solid #bbb;
162
+ --table-hover-background-color: #eee;
163
+ --table-th-color: #fff;
164
+
165
+ --help-height: 110px;
166
+ --help-border: 1px solid #272727;
167
+ --help-border-radius: 0px;
168
+ --help-background-color: #3f51b5;
169
+ --help-opacity: 1;
170
+ --help-content-color: #ffffff;
171
+
172
+ --main-menu-item-padding: 5px;
173
+ --main-menu-item-border: 3px solid var(--theme-color);
174
+ --main-menu-item-border-radius: 15px;
175
+ --main-menu-item-background-color: #fff;
176
+ --main-menu-h2-color: #000;
177
+ --main-menu-p-color: #000;
178
+
179
+ --scrollbar-width: 10px;
180
+ --scrollbar-color: #ffeb3b;
181
+ --scrollbar-outline: 1px solid var(--scrollbar-color);
182
+ --scrollbar-background-color: #272727;
183
+ --scrollbar-box-shadow: inset 0 0 6px #4caf50;
184
184
  }
@@ -1,7 +1,7 @@
1
1
  <div class="text-center pointer" ng-click="upload()">
2
2
  <input class="hidden" type="file" name="fileToUpload" accept="{{accept}}" />
3
3
  <div class="center">
4
- <img ng-src="{{ngModel.url}}" ngClick="ngClick()" onerror="this.src='/images/no.jpg'" />
4
+ <img onclick="site.zoomElement(this)" ng-src="{{ngModel.url}}" ngClick="ngClick()" onerror="this.src='/images/no.jpg'" />
5
5
  <i-button type="upload" ng-click="upload()"></i-button>
6
6
  <i-button type="delete" ng-click="delete()"></i-button>
7
7
  </div>
@@ -1,7 +1,7 @@
1
1
  <div class="dropdown i-list">
2
2
  <div class="mb-3 {{class2}}">
3
3
  <label class="form-label"> <span class="red bold"> {{requird}} </span> {{label}} </label>
4
- <input class="full-width text dropdown-text form-control {{css}}" v="{{v}}" readonly ng-model="ngModel.$display" />
4
+ <input ng-focus="focus()" class="full-width text dropdown-text form-control {{css}}" v="{{v}}" readonly ng-model="ngModel.$display" />
5
5
  </div>
6
6
 
7
7
  <div class="dropdown-content">
@@ -2,62 +2,18 @@
2
2
  <div class="control">
3
3
  <label> {{label}} </label>
4
4
  <div class="row">
5
+ <br>
5
6
  <div class="col1 center" ng-click="setDay()">
6
7
  <i class="fa fa-calendar-day"></i>
7
8
  </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>
9
+ <div class="col3 day">
10
+ <i-list items="days1" ng-model="model.day" ng-change="updateDate()"></i-list>
25
11
  </div>
26
12
  <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>
13
+ <i-list items="monthes1" ng-model="model.month" ng-change="updateDate()"></i-list>
43
14
  </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>
15
+ <div class="col3 year">
16
+ <i-list items="years1" ng-model="model.year" ng-change="updateDate()"></i-list>
61
17
  </div>
62
18
  </div>
63
19
  </div>
@@ -17,3 +17,6 @@ site.vTab = function (name) {
17
17
  });
18
18
  };
19
19
 
20
+ window.addEventListener('click', (e) => {
21
+ $('.i-list .dropdown-content').css('display', 'none');
22
+ });
@@ -360,6 +360,10 @@ app.directive('iList', [
360
360
  if ($scope.v.like('*r*')) {
361
361
  $scope.requird = '*';
362
362
  }
363
+ $(element).on('click', (e) => {
364
+ e.stopPropagation();
365
+ e.preventDefault();
366
+ });
363
367
  $scope.searchElement = $(element).find('.dropdown .search input');
364
368
  $scope.popupElement = $(element).find('.dropdown .dropdown-content');
365
369
  let input = $(element).find('input.dropdown-text');
@@ -369,7 +373,11 @@ app.directive('iList', [
369
373
  $scope.hide = function () {
370
374
  $scope.popupElement.css('display', 'none');
371
375
  };
372
-
376
+ $scope.focus = function () {
377
+ $('.dropdown-content').css('display', 'none');
378
+ $scope.popupElement.css('display', 'block');
379
+ $scope.searchElement.focus();
380
+ };
373
381
  if (typeof attrs.disabled !== 'undefined') {
374
382
  attrs.disabled = 'disabled';
375
383
  } else {
@@ -381,17 +389,20 @@ app.directive('iList', [
381
389
  } else {
382
390
  $scope.fa_add = 'fa-plus';
383
391
  }
392
+ $scope.showSearch = false;
384
393
 
385
- if ($scope.ngSearch) {
394
+ if (typeof attrs.ngSearch == 'undefined') {
395
+ $scope.showSearch = !1;
396
+ } else {
386
397
  $scope.showSearch = !0;
387
398
  }
388
- if ($scope.ngGet) {
399
+
400
+ if (typeof attrs.ngSearch !== 'undefined' && attrs.ngSearch) {
401
+ $scope.showSearch = !0;
402
+ }
403
+ if (typeof attrs.ngGet !== 'undefined' && attrs.ngGet) {
389
404
  $scope.showSearch = !0;
390
405
  }
391
-
392
- $scope.focus = function () {
393
- $scope.searchElement.focus();
394
- };
395
406
 
396
407
  $scope.getValue = function (item) {
397
408
  let v = isite.getValue(item, $scope.display);
@@ -73,10 +73,6 @@ app.directive('iDate2', function () {
73
73
  attrs.disabled = '';
74
74
  }
75
75
 
76
- $scope.y_search = attrs.year || '202';
77
- $scope.m_search = attrs.month || '';
78
- $scope.d_search = attrs.day || '';
79
-
80
76
  $scope.days1 = [];
81
77
  for (let i = 1; i < 32; i++) {
82
78
  $scope.days1.push({
@@ -84,6 +80,7 @@ app.directive('iDate2', function () {
84
80
  name: i,
85
81
  });
86
82
  }
83
+
87
84
  $scope.years1 = [];
88
85
  for (let i = 1900; i < 2100; i++) {
89
86
  $scope.years1.push({
@@ -113,42 +110,24 @@ app.directive('iDate2', function () {
113
110
  if (ngModel) {
114
111
  ngModel = new Date(ngModel);
115
112
  $scope.model = $scope.model || {};
116
- $scope.model.day = ngModel.getDate();
117
- $scope.model.day_name = $scope.model.day;
118
- $scope.model.month = ngModel.getMonth();
119
- $scope.model.month_name = $scope.monthes1.find((m) => m.id == $scope.model.month).name;
120
- $scope.model.year = ngModel.getFullYear();
121
- $scope.model.year_name = $scope.model.year;
113
+ $scope.model.day = $scope.days1.find((d) => d.id == ngModel.getDate());
114
+ $scope.model.month = $scope.monthes1.find((m) => m.id == ngModel.getMonth());
115
+ $scope.model.year = $scope.years1.find((y) => y.id == ngModel.getFullYear());
122
116
  } else {
123
117
  $scope.model = $scope.model || {};
124
- $scope.model.day = 0;
125
- $scope.model.day_name = '';
126
- $scope.model.month = -1;
127
- $scope.model.month_name = '';
128
- $scope.model.year = 0;
129
- $scope.model.year_name = '';
118
+ $scope.model.day = null;
119
+ $scope.model.month = null;
120
+ $scope.model.year = null;
130
121
  }
131
122
  });
132
123
 
133
124
  $scope.setDay = function () {
134
125
  $scope.ngModel = new Date();
135
126
  };
136
- $scope.updateDate = function (date) {
137
- if (date.year) {
138
- $scope.model.year = date.year.id;
139
- $scope.model.year_name = date.year.name;
140
- } else if (date.month) {
141
- $scope.model.month = date.month.id;
142
- $scope.model.month_name = date.month.name;
143
- } else if (date.day) {
144
- $scope.model.day = date.day.id;
145
- $scope.model.day_name = date.day.name;
146
- }
147
127
 
128
+ $scope.updateDate = function () {
148
129
  if ($scope.model && $scope.model.year && $scope.model.day && $scope.model.month > -1) {
149
- $scope.ngModel = new Date($scope.model.year, $scope.model.month, $scope.model.day, 0, 0, 0);
150
- } else {
151
- delete $scope.ngModel;
130
+ $scope.ngModel = new Date($scope.model.year, $scope.model.month, $scope.model.day, 12, 0, 0);
152
131
  }
153
132
  };
154
133
  },
@@ -947,11 +926,23 @@ app.directive('iList', [
947
926
  }
948
927
 
949
928
  let input = $(element).find('input');
950
-
929
+ $(element).hover(
930
+ () => {
931
+ $scope.popupElement.css('display', 'block');
932
+ },
933
+ () => {
934
+ $scope.popupElement.css('display', 'none');
935
+ }
936
+ );
951
937
  $scope.focus = function () {
938
+ $('.i-list .dropdown-content').css('display', 'none');
939
+ $scope.popupElement.css('display', 'block');
952
940
  $scope.searchElement.focus();
953
941
  };
954
-
942
+
943
+ $scope.hide = function () {
944
+ $scope.popupElement.css('display', 'none');
945
+ };
955
946
 
956
947
  $scope.getValue = function (item) {
957
948
  let v = isite.getValue(item, $scope.display);
@@ -1025,7 +1016,8 @@ app.directive('iList', [
1025
1016
  input.val($scope.getNgModelValue($scope.ngModel) + attrs.space + $scope.getNgModelValue2($scope.ngModel));
1026
1017
  $timeout(() => {
1027
1018
  $scope.ngChange();
1028
- });
1019
+ }, 200);
1020
+ $scope.hide();
1029
1021
  };
1030
1022
  },
1031
1023
  template: `/*##client-side/directive-core/i-list.html*/`,