isite 2022.8.5 → 2022.8.6

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 (39) hide show
  1. package/README.md +7 -7
  2. package/apps/client-side/app.js +251 -185
  3. package/apps/client-side/site_files/css/bootstrap5-addon.css +32 -5
  4. package/apps/client-side/site_files/css/bootstrap5.css +1 -1
  5. package/apps/client-side/site_files/css/bootstrap5.css.map +1 -0
  6. package/apps/client-side/site_files/css/effect.css +136 -77
  7. package/apps/client-side/site_files/css/layout.css +37 -44
  8. package/apps/client-side/site_files/css/modal.css +1 -1
  9. package/apps/client-side/site_files/css/normalize.css +146 -0
  10. package/apps/client-side/site_files/css/scrollbar.css +9 -5
  11. package/apps/client-side/site_files/html/directive/i-button.html +5 -0
  12. package/apps/client-side/site_files/html/directive/i-checkbox.html +4 -0
  13. package/apps/client-side/site_files/html/directive/i-checklist.html +6 -0
  14. package/apps/client-side/site_files/html/directive/i-control.html +5 -0
  15. package/apps/client-side/site_files/html/directive/i-date.html +21 -16
  16. package/apps/client-side/site_files/html/directive/i-datetime.html +31 -0
  17. package/apps/client-side/site_files/html/directive/i-file.html +3 -5
  18. package/apps/client-side/site_files/html/directive/i-list.html +2 -2
  19. package/apps/client-side/site_files/html/directive/i-radio.html +4 -0
  20. package/apps/client-side/site_files/html/directive/i-textarea.html +4 -0
  21. package/apps/client-side/site_files/html/directive/i-treenode.html +20 -0
  22. package/apps/client-side/site_files/html/directive/i-treeview.html +13 -0
  23. package/apps/client-side/site_files/html/directive/i-upload.html +5 -0
  24. package/apps/client-side/site_files/html/directive-core/i-date.html +64 -0
  25. package/apps/client-side/site_files/html/directive-core/i-list.html +22 -0
  26. package/apps/client-side/site_files/js/bootstrap-5-directive.js +226 -234
  27. package/apps/client-side/site_files/js/bootstrap.js.map +1 -0
  28. package/apps/client-side/site_files/js/directive.js +1865 -2044
  29. package/apps/client-side/site_files/js/directive.min.js +2 -2
  30. package/apps/client-side/site_files/js/site.js +1 -1
  31. package/apps/security/site_files/html/login_modal.html +18 -26
  32. package/index.js +2 -5
  33. package/lib/parser.js +519 -509
  34. package/lib/routing.js +21 -15
  35. package/lib/sessions.js +182 -247
  36. package/object-options/index.js +6 -4
  37. package/package.json +3 -2
  38. package/pull.bat +3 -0
  39. package/push.bat +2 -5
package/README.md CHANGED
@@ -88,8 +88,8 @@ site = isite({
88
88
  apps: !0,
89
89
  apps_dir: process.cwd() + '/apps',
90
90
  name: 'Your Site',
91
- dynamic: false, // (auto set )dynamic db & prot based on folder name [ smart-pos-3000 ]
92
- savingTime: 60,
91
+ dynamic: false, // (auto set )dynamic db & prot based on folder name [ smart-Your Site-3000 ]
92
+ savingTime: 60 // 60 minutes then save sessions and site data,
93
93
  log: !0,
94
94
  lang: 'ar',
95
95
  theme: 'default',
@@ -99,8 +99,8 @@ site = isite({
99
99
  enabled: false,
100
100
  port: null,
101
101
  ports: [],
102
- key: null,
103
- cert: null,
102
+ key: null // path or will use default,
103
+ cert: null // path or will use default,
104
104
  },
105
105
  mongodb: {
106
106
  enabled: !0,
@@ -124,7 +124,7 @@ site = isite({
124
124
  session: {
125
125
  timeout: 60 * 24 * 30,
126
126
  enabled: !0,
127
- storage: 'mongodb',
127
+ storage: 'file' || 'mongodb',
128
128
  db: null,
129
129
  collection: 'users_sessions',
130
130
  },
@@ -1043,8 +1043,8 @@ $scope.uploadFile = function (files) {
1043
1043
  site.onPOST('uploadFile', (req, res) => {
1044
1044
  var response = { done: !0 };
1045
1045
  var file = req.files.fileToUpload;
1046
- var newpath = site.dir + '/../../uploads/' + file.name;
1047
- site.mv(file.path, newpath, function (err) {
1046
+ var newpath = site.dir + '/../../uploads/' + file.originalFilename;
1047
+ site.mv(file.filepath, newpath, function (err) {
1048
1048
  if (err) {
1049
1049
  response.error = err;
1050
1050
  response.done = false;
@@ -1,277 +1,343 @@
1
1
  module.exports = function (site) {
2
- site.date = require(__dirname + '/site_files/js/hijri.js');
2
+ site.date = require(__dirname + "/site_files/js/hijri.js");
3
3
 
4
- site.post({ name: '/api/get_hijri_date', public: true }, (req, res) => {
4
+ site.post({ name: "/api/get_hijri_date", public: true }, (req, res) => {
5
5
  res.json({
6
6
  done: !0,
7
- hijri: site.date(req.data.date, 'YYYY/MM/DD').format('iYYYY/iMM/iDD'),
7
+ hijri: site.date(req.data.date, "YYYY/MM/DD").format("iYYYY/iMM/iDD"),
8
8
  });
9
9
  });
10
10
 
11
- site.post({ name: '/api/get_normal_date', public: true }, (req, res) => {
11
+ site.post({ name: "/api/get_normal_date", public: true }, (req, res) => {
12
12
  res.json({
13
13
  done: !0,
14
- date: site.date(req.data.hijri, 'iYYYY/iMM/iDD').format('YYYY/MM/DD'),
14
+ date: site.date(req.data.hijri, "iYYYY/iMM/iDD").format("YYYY/MM/DD"),
15
15
  });
16
16
  });
17
17
 
18
18
  site.get({
19
- name: '/x-images',
20
- path: __dirname + '/site_files/images',
19
+ name: "/x-images",
20
+ path: __dirname + "/site_files/images",
21
21
  public: true,
22
22
  });
23
23
 
24
24
  site.get({
25
- name: '/x-js',
26
- path: __dirname + '/site_files/js',
25
+ name: "/x-js",
26
+ path: __dirname + "/site_files/js",
27
27
  public: true,
28
- parser: 'js',
28
+ parser: "js",
29
29
  });
30
30
 
31
31
  site.get({
32
- name: ['/x-js/all.js'],
32
+ name: ["/x-js/all.js"],
33
33
  public: true,
34
- parser: 'js',
34
+ parser: "js",
35
35
  path: [
36
- __dirname + '/site_files/js/first.js',
37
- __dirname + '/site_files/js/jquery.js',
38
- __dirname + '/site_files/js/mustache.js',
39
- __dirname + '/site_files/js/base64.js',
40
- __dirname + '/site_files/js/site.js',
41
- __dirname + '/site_files/js/dom-to-image.js',
42
- __dirname + '/site_files/js/barcode.js',
43
- __dirname + '/site_files/js/qrcode.js',
44
- __dirname + '/site_files/js/angular.js',
45
- __dirname + '/site_files/js/app.js',
46
- __dirname + '/site_files/js/directive.js',
47
- __dirname + '/site_files/js/last.js',
36
+ __dirname + "/site_files/js/first.js",
37
+ __dirname + "/site_files/js/jquery.js",
38
+ __dirname + "/site_files/js/mustache.js",
39
+ __dirname + "/site_files/js/base64.js",
40
+ __dirname + "/site_files/js/site.js",
41
+ __dirname + "/site_files/js/dom-to-image.js",
42
+ __dirname + "/site_files/js/barcode.js",
43
+ __dirname + "/site_files/js/qrcode.js",
44
+ __dirname + "/site_files/js/angular.js",
45
+ __dirname + "/site_files/js/app.js",
46
+ __dirname + "/site_files/js/directive-core.js",
47
+ __dirname + "/site_files/js/directive.js",
48
+ __dirname + "/site_files/js/last.js",
48
49
  ],
49
50
  });
50
51
  site.get({
51
- name: ['/x-js/all.min.js'],
52
+ name: ["/x-js/all.min.js"],
52
53
  public: true,
53
- parser: 'js',
54
+ parser: "js",
54
55
  path: [
55
- __dirname + '/site_files/js/first.js',
56
- __dirname + '/site_files/js/jquery.js',
57
- __dirname + '/site_files/js/mustache.js',
58
- __dirname + '/site_files/js/base64.js',
59
- __dirname + '/site_files/js/site.min.js',
60
- __dirname + '/site_files/js/dom-to-image.min.js',
61
- __dirname + '/site_files/js/barcode.js',
62
- __dirname + '/site_files/js/qrcode.min.js',
63
- __dirname + '/site_files/js/angular.min.js',
64
- __dirname + '/site_files/js/app.js',
65
- __dirname + '/site_files/js/directive.min.js',
66
- __dirname + '/site_files/js/last.js',
56
+ __dirname + "/site_files/js/first.js",
57
+ __dirname + "/site_files/js/jquery.js",
58
+ __dirname + "/site_files/js/mustache.js",
59
+ __dirname + "/site_files/js/base64.js",
60
+ __dirname + "/site_files/js/site.min.js",
61
+ __dirname + "/site_files/js/dom-to-image.min.js",
62
+ __dirname + "/site_files/js/barcode.js",
63
+ __dirname + "/site_files/js/qrcode.min.js",
64
+ __dirname + "/site_files/js/angular.min.js",
65
+ __dirname + "/site_files/js/app.js",
66
+ __dirname + "/site_files/js/directive-core.js",
67
+ __dirname + "/site_files/js/directive.min.js",
68
+ __dirname + "/site_files/js/last.js",
67
69
  ],
68
70
  });
69
71
  site.get({
70
- name: ['/x-js/bootstrap-5-support.js'],
72
+ name: ["/x-js/bootstrap-5-support.js"],
71
73
  public: true,
72
- parser: 'js',
74
+ parser: "js",
73
75
  path: [
74
- __dirname + '/site_files/js/first.js',
75
- __dirname + '/site_files/js/jquery.js',
76
- __dirname + '/site_files/js/mustache.js',
77
- __dirname + '/site_files/js/base64.js',
78
- __dirname + '/site_files/js/site.js',
79
- __dirname + '/site_files/js/dom-to-image.js',
80
- __dirname + '/site_files/js/barcode.js',
81
- __dirname + '/site_files/js/qrcode.js',
82
- __dirname + '/site_files/js/angular.js',
83
- __dirname + '/site_files/js/app.js',
84
- __dirname + '/site_files/js/directive-core.js',
85
- __dirname + '/site_files/js/bootstrap-5-directive.js',
86
- __dirname + '/site_files/js/last.js',
87
- __dirname + '/site_files/js/bootstrap5.js',
88
- __dirname + '/site_files/js/bootstrap-5-addon.js',
76
+ __dirname + "/site_files/js/first.js",
77
+ __dirname + "/site_files/js/jquery.js",
78
+ __dirname + "/site_files/js/mustache.js",
79
+ __dirname + "/site_files/js/base64.js",
80
+ __dirname + "/site_files/js/site.js",
81
+ __dirname + "/site_files/js/dom-to-image.js",
82
+ __dirname + "/site_files/js/barcode.js",
83
+ __dirname + "/site_files/js/qrcode.js",
84
+ __dirname + "/site_files/js/angular.js",
85
+ __dirname + "/site_files/js/app.js",
86
+ __dirname + "/site_files/js/directive-core.js",
87
+ __dirname + "/site_files/js/bootstrap-5-directive.js",
88
+ __dirname + "/site_files/js/last.js",
89
+ __dirname + "/site_files/js/bootstrap5.js",
90
+ __dirname + "/site_files/js/bootstrap-5-addon.js",
89
91
  ],
90
92
  });
91
93
  site.get({
92
- name: '/x-css',
93
- path: __dirname + '/site_files/css',
94
+ name: "/x-css",
95
+ path: __dirname + "/site_files/css",
94
96
  public: true,
95
97
  });
96
98
  site.get({
97
- name: '/x-semantic-themes',
98
- path: __dirname + '/site_files/semantic-themes',
99
+ name: "/x-semantic-themes",
100
+ path: __dirname + "/site_files/semantic-themes",
99
101
  public: true,
100
102
  });
101
103
 
102
104
  site.get({
103
- name: '/x-fonts',
104
- path: __dirname + '/site_files/fonts',
105
+ name: "/x-fonts",
106
+ path: __dirname + "/site_files/fonts",
105
107
  public: true,
106
108
  });
107
109
  site.get({
108
- name: '/x-css/x-fonts',
109
- path: __dirname + '/site_files/fonts',
110
+ name: "/x-css/x-fonts",
111
+ path: __dirname + "/site_files/fonts",
110
112
  public: true,
111
113
  });
112
114
  site.get({
113
- name: '/webfonts',
114
- path: __dirname + '/site_files/webfonts',
115
+ name: "/webfonts",
116
+ path: __dirname + "/site_files/webfonts",
115
117
  public: true,
116
118
  });
117
119
  site.get({
118
- name: ['/x-css/all.css', '/x-css/site.css'],
119
- parser: 'css2',
120
+ name: ["/x-css/all.css", "/x-css/site.css"],
121
+ parser: "css2",
120
122
  public: true,
121
123
  compress: !0,
122
124
  path: [
123
- __dirname + '/site_files/css/theme.css',
124
- __dirname + '/site_files/css/layout.css',
125
- __dirname + '/site_files/css/scrollbar.css',
126
- __dirname + '/site_files/css/progress.css',
127
- __dirname + '/site_files/css/treeview.css',
128
- __dirname + '/site_files/css/main-menu.css',
129
- __dirname + '/site_files/css/images.css',
130
- __dirname + '/site_files/css/navbar.css',
131
- __dirname + '/site_files/css/form.css',
132
- __dirname + '/site_files/css/selector.css',
133
- __dirname + '/site_files/css/dropdown.css',
134
- __dirname + '/site_files/css/btn.css',
135
- __dirname + '/site_files/css/checkbox.css',
136
- __dirname + '/site_files/css/radio.css',
137
- __dirname + '/site_files/css/modal.css',
138
- __dirname + '/site_files/css/fixed_menu.css',
139
- __dirname + '/site_files/css/color.css',
140
- __dirname + '/site_files/css/fonts.css',
141
- __dirname + '/site_files/css/font-droid.css',
142
- __dirname + '/site_files/css/effect.css',
143
- __dirname + '/site_files/css/table.css',
144
- __dirname + '/site_files/css/tabs.css',
145
- __dirname + '/site_files/css/help.css',
146
- __dirname + '/site_files/css/print.css',
147
- __dirname + '/site_files/css/ui.css',
148
- __dirname + '/site_files/css/tableExport.css',
149
- __dirname + '/site_files/css/theme_paper.css',
150
- __dirname + '/site_files/css/font-awesome.css',
125
+ __dirname + "/site_files/css/normalize.css",
126
+ __dirname + "/site_files/css/theme.css",
127
+ __dirname + "/site_files/css/layout.css",
128
+ __dirname + "/site_files/css/scrollbar.css",
129
+ __dirname + "/site_files/css/progress.css",
130
+ __dirname + "/site_files/css/treeview.css",
131
+ __dirname + "/site_files/css/main-menu.css",
132
+ __dirname + "/site_files/css/images.css",
133
+ __dirname + "/site_files/css/navbar.css",
134
+ __dirname + "/site_files/css/form.css",
135
+ __dirname + "/site_files/css/selector.css",
136
+ __dirname + "/site_files/css/dropdown.css",
137
+ __dirname + "/site_files/css/btn.css",
138
+ __dirname + "/site_files/css/checkbox.css",
139
+ __dirname + "/site_files/css/radio.css",
140
+ __dirname + "/site_files/css/modal.css",
141
+ __dirname + "/site_files/css/fixed_menu.css",
142
+ __dirname + "/site_files/css/color.css",
143
+ __dirname + "/site_files/css/fonts.css",
144
+ __dirname + "/site_files/css/font-droid.css",
145
+ __dirname + "/site_files/css/effect.css",
146
+ __dirname + "/site_files/css/table.css",
147
+ __dirname + "/site_files/css/tabs.css",
148
+ __dirname + "/site_files/css/help.css",
149
+ __dirname + "/site_files/css/print.css",
150
+ __dirname + "/site_files/css/ui.css",
151
+ __dirname + "/site_files/css/tableExport.css",
152
+ __dirname + "/site_files/css/theme_paper.css",
153
+ __dirname + "/site_files/css/font-awesome.css",
151
154
  ],
152
155
  });
153
156
 
154
157
  site.get({
155
- name: ['/x-css/bootstrap-5-support.css', '/x-css/bootstrap-support.css'],
156
- parser: 'css2',
158
+ name: ["/x-css/bootstrap-5-support.css", "/x-css/bootstrap-support.css"],
159
+ parser: "css2",
157
160
  public: true,
158
161
  compress: !0,
159
162
  path: [
160
- __dirname + '/site_files/css/theme.css',
161
- __dirname + '/site_files/css/layout.css',
162
- __dirname + '/site_files/css/modal.css',
163
- __dirname + '/site_files/css/color.css',
164
- __dirname + '/site_files/css/images.css',
165
- __dirname + '/site_files/css/dropdown.css',
166
- __dirname + '/site_files/css/fonts.css',
167
- __dirname + '/site_files/css/font-droid.css',
168
- __dirname + '/site_files/css/effect.css',
169
- __dirname + '/site_files/css/scrollbar.css',
170
- __dirname + '/site_files/css/table.css',
171
- __dirname + '/site_files/css/tabs.css',
172
- __dirname + '/site_files/css/help.css',
173
- __dirname + '/site_files/css/print.css',
174
- __dirname + '/site_files/css/tableExport.css',
175
- __dirname + '/site_files/css/theme_paper.css',
176
- __dirname + '/site_files/css/bootstrap5.css',
177
- __dirname + '/site_files/css/bootstrap5-addon.css',
163
+ __dirname + "/site_files/css/normalize.css",
164
+ __dirname + "/site_files/css/theme.css",
165
+ __dirname + "/site_files/css/layout.css",
166
+ __dirname + "/site_files/css/modal.css",
167
+ __dirname + "/site_files/css/color.css",
168
+ __dirname + "/site_files/css/images.css",
169
+ __dirname + "/site_files/css/dropdown.css",
170
+ __dirname + "/site_files/css/fonts.css",
171
+ __dirname + "/site_files/css/font-droid.css",
172
+ __dirname + "/site_files/css/effect.css",
173
+ __dirname + "/site_files/css/scrollbar.css",
174
+ __dirname + "/site_files/css/table.css",
175
+ __dirname + "/site_files/css/tabs.css",
176
+ __dirname + "/site_files/css/help.css",
177
+ __dirname + "/site_files/css/print.css",
178
+ __dirname + "/site_files/css/tableExport.css",
179
+ __dirname + "/site_files/css/theme_paper.css",
180
+ __dirname + "/site_files/css/bootstrap5.css",
181
+ __dirname + "/site_files/css/bootstrap5-addon.css",
178
182
  ],
179
183
  });
180
184
 
181
- site.createDir(site.dir + '/../../uploads');
185
+ site.createDir(site.dir + "/../../uploads");
182
186
 
183
- site.post({ name: '/x-api/upload/image', public: true }, (req, res) => {
184
- site.createDir(site.options.upload_dir + '/' + req.headers['folder'], () => {
185
- site.createDir(site.options.upload_dir + '/' + req.headers['folder'] + '/images', () => {
186
- let response = {
187
- image: {},
188
- done: !0,
189
- };
190
- let file = req.files.fileToUpload;
191
- if (file) {
192
- let newName = 'image_' + (new Date().getTime().toString() + Math.random()).replaceAll('.', '_') + site.path.extname(file.originalFilename);
193
- let newpath = site.path.resolve(site.options.upload_dir + '/' + req.headers['folder'] + '/images/' + newName);
194
- site.mv(file.filepath, newpath, function (err) {
195
- if (err) {
196
- response.error = err;
197
- response.done = !1;
187
+ site.post({ name: "/x-api/upload/image", public: true }, (req, res) => {
188
+ site.createDir(
189
+ site.options.upload_dir + "/" + req.headers["folder"],
190
+ () => {
191
+ site.createDir(
192
+ site.options.upload_dir + "/" + req.headers["folder"] + "/images",
193
+ () => {
194
+ let response = {
195
+ image: {},
196
+ done: !0,
197
+ };
198
+ let file = req.files.fileToUpload;
199
+ if (file) {
200
+ let newName =
201
+ "image_" +
202
+ (new Date().getTime().toString() + Math.random()).replaceAll(
203
+ ".",
204
+ "_"
205
+ ) +
206
+ site.path.extname(file.originalFilename);
207
+ let newpath = site.path.resolve(
208
+ site.options.upload_dir +
209
+ "/" +
210
+ req.headers["folder"] +
211
+ "/images/" +
212
+ newName
213
+ );
214
+ site.mv(file.filepath, newpath, function (err) {
215
+ if (err) {
216
+ response.error = err;
217
+ response.done = !1;
218
+ } else {
219
+ response.image.name = file.originalFilename;
220
+ response.image.path = newpath;
221
+ response.image.url =
222
+ "/x-api/image/" + req.headers["folder"] + "/" + newName;
223
+ response.image.size = file.size;
224
+ }
225
+ res.json(response);
226
+ });
198
227
  } else {
199
- response.image.path = newpath;
200
- response.image.url = '/x-api/image/' + req.headers['folder'] + '/' + newName;
201
- response.image.size = file.size;
228
+ response.error = "no file";
229
+ response.done = !1;
230
+ res.json(response);
202
231
  }
203
- res.json(response);
204
- });
205
- } else {
206
- response.error = 'no file';
207
- response.done = !1;
208
- res.json(response);
209
- }
210
- });
211
- });
232
+ }
233
+ );
234
+ }
235
+ );
212
236
  });
213
237
 
214
- site.get({ name: '/x-api/image/:category/:name', public: true }, (req, res) => {
215
- res.set('Cache-Control', 'public, max-age=2592000');
216
- res.download(site.options.upload_dir + '/' + req.params.category + '/images/' + req.params.name);
217
- });
238
+ site.get(
239
+ { name: "/x-api/image/:category/:name", public: true },
240
+ (req, res) => {
241
+ res.set("Cache-Control", "public, max-age=2592000");
242
+ res.download(
243
+ site.options.upload_dir +
244
+ "/" +
245
+ req.params.category +
246
+ "/images/" +
247
+ req.params.name
248
+ );
249
+ }
250
+ );
218
251
 
219
- site.post({ name: '/x-api/upload/file', public: true }, (req, res) => {
220
- site.createDir(site.options.upload_dir + '/' + req.headers['folder'], () => {
221
- site.createDir(site.options.upload_dir + '/' + req.headers['folder'] + '/files', () => {
222
- let response = {
223
- file: {},
224
- done: !0,
225
- };
226
- let file = req.files.fileToUpload;
227
- if (!file) {
228
- response.done = !1;
229
- response.error = 'no file uploaded';
230
- res.json(response);
231
- return;
232
- }
233
- let newName = 'file_' + (new Date().getTime().toString() + Math.random()).replaceAll('.', '_') + site.path.extname(file.originalFilename);
234
- let newpath = site.path.resolve(site.options.upload_dir + '/' + req.headers['folder'] + '/files/' + newName);
235
- site.mv(file.filepath, newpath, function (err) {
236
- if (err) {
237
- response.error = err;
238
- response.done = !1;
252
+ site.post({ name: "/x-api/upload/file", public: true }, (req, res) => {
253
+ site.createDir(
254
+ site.options.upload_dir + "/" + req.headers["folder"],
255
+ () => {
256
+ site.createDir(
257
+ site.options.upload_dir + "/" + req.headers["folder"] + "/files",
258
+ () => {
259
+ let response = {
260
+ file: {},
261
+ done: !0,
262
+ };
263
+ let file = req.files.fileToUpload;
264
+ if (!file) {
265
+ response.done = !1;
266
+ response.error = "no file uploaded";
267
+ res.json(response);
268
+ return;
269
+ }
270
+ let newName =
271
+ "file_" +
272
+ (new Date().getTime().toString() + Math.random()).replaceAll(
273
+ ".",
274
+ "_"
275
+ ) +
276
+ site.path.extname(file.originalFilename);
277
+ let newpath = site.path.resolve(
278
+ site.options.upload_dir +
279
+ "/" +
280
+ req.headers["folder"] +
281
+ "/files/" +
282
+ newName
283
+ );
284
+ site.mv(file.filepath, newpath, function (err) {
285
+ if (err) {
286
+ response.error = err;
287
+ response.done = !1;
288
+ }
289
+ response.file.name = file.originalFilename;
290
+ response.file.path = newpath;
291
+ response.file.url =
292
+ "/x-api/file/" + req.headers["folder"] + "/" + newName;
293
+ response.file.size = file.size;
294
+ res.json(response);
295
+ });
239
296
  }
240
- response.file.path = newpath;
241
- response.file.url = '/x-api/file/' + req.headers['folder'] + '/' + newName;
242
- response.file.size = file.size;
243
- res.json(response);
244
- });
245
- });
246
- });
297
+ );
298
+ }
299
+ );
247
300
  });
248
301
 
249
- site.get({ name: '/x-api/file/:category/:name', public: true }, (req, res) => {
250
- res.download(site.options.upload_dir + '/' + req.params.category + '/files/' + req.params.name);
251
- });
302
+ site.get(
303
+ { name: "/x-api/file/:category/:name", public: true },
304
+ (req, res) => {
305
+ res.download(
306
+ site.options.upload_dir +
307
+ "/" +
308
+ req.params.category +
309
+ "/files/" +
310
+ req.params.name
311
+ );
312
+ }
313
+ );
252
314
 
253
315
  site.getTLV = function (name, value) {
254
- return Buffer.concat([Buffer.from([name], 'utf8'), Buffer.from([value.length], 'utf8'), Buffer.from(value, 'utf8')]);
316
+ return Buffer.concat([
317
+ Buffer.from([name], "utf8"),
318
+ Buffer.from([value.length], "utf8"),
319
+ Buffer.from(value, "utf8"),
320
+ ]);
255
321
  };
256
- site.onPOST('/x-api/zakat', (req, res) => {
322
+ site.onPOST("/x-api/zakat", (req, res) => {
257
323
  let obj = req.data || {};
258
324
  let value = [];
259
325
  if (obj.name) {
260
- value.push(site.getTLV('1', obj.name));
326
+ value.push(site.getTLV("1", obj.name));
261
327
  }
262
328
  if (obj.vat_number) {
263
- value.push(site.getTLV('2', obj.vat_number));
329
+ value.push(site.getTLV("2", obj.vat_number));
264
330
  }
265
331
  if (obj.time) {
266
- value.push(site.getTLV('3', obj.time));
332
+ value.push(site.getTLV("3", obj.time));
267
333
  }
268
334
  if (obj.total) {
269
- value.push(site.getTLV('4', obj.total));
335
+ value.push(site.getTLV("4", obj.total));
270
336
  }
271
337
  if (obj.vat_total) {
272
- value.push(site.getTLV('5', obj.vat_total));
338
+ value.push(site.getTLV("5", obj.vat_total));
273
339
  }
274
- value = Buffer.concat([...value]).toString('base64');
340
+ value = Buffer.concat([...value]).toString("base64");
275
341
  res.json({
276
342
  done: true,
277
343
  value: value,
@@ -27,6 +27,15 @@
27
27
  }
28
28
  }
29
29
 
30
+ :root {
31
+ --table-hover-background-color: #0dcaf09e;
32
+ }
33
+ body {
34
+ margin-bottom: 100px;
35
+ }
36
+ .container {
37
+ max-width: 90%;
38
+ }
30
39
  .ar .form-check .form-check-input {
31
40
  float: right;
32
41
  margin-right: -1.5em;
@@ -42,6 +51,7 @@ fieldset {
42
51
  margin: var(--fieldset-margin);
43
52
  background: var(--fieldset-background);
44
53
  border: var(--fieldset-border);
54
+ border-radius: 10px;
45
55
  }
46
56
 
47
57
  fieldset legend {
@@ -51,9 +61,19 @@ fieldset legend {
51
61
  font-weight: var(--legend-font-weight);
52
62
  background: var(--fieldset-background);
53
63
  border: var(--legend-border);
64
+ float: none;
65
+ width: auto;
66
+ padding: 5px;
67
+ }
68
+ legend::after {
69
+ content: ' : ';
70
+ }
71
+ .border {
72
+ border: 1px solid #ced4da !important;
73
+ border-radius: 0.375rem;
54
74
  }
55
75
  i-textarea {
56
- margin: 10px;
76
+ margin: 0px;
57
77
  }
58
78
  i-checkbox,
59
79
  i-radio {
@@ -69,6 +89,12 @@ i-button {
69
89
  i-button button {
70
90
  margin: 5px;
71
91
  }
92
+ i-button.default button {
93
+ margin: 3px;
94
+ padding: 3px;
95
+ width: 32px;
96
+ height: 32px;
97
+ }
72
98
  i-file {
73
99
  display: block;
74
100
  padding: 10px !important;
@@ -79,15 +105,16 @@ i-file {
79
105
  i-file button {
80
106
  max-width: 100px;
81
107
  }
82
- i-file .view button {
83
- width: 40px;
84
- height: 40px;
85
- }
108
+
86
109
  i-date .fa {
87
110
  font-size: 24px;
88
111
  vertical-align: middle;
89
112
  margin-top: 5px;
90
113
  }
114
+ i-date p,
115
+ i-datetime p {
116
+ margin-top: 10px !important;
117
+ }
91
118
  .modal-content {
92
119
  width: 75vw;
93
120
  height: 100vh;