alchemy-chimera 1.0.4 → 1.0.5

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/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 1.0.5 (2022-07-06)
2
+
3
+ * Fix page title containing 'undefined'
4
+ * Update styles
5
+ * Add support for "private" document fields
6
+
1
7
  ## 1.0.4 (2022-05-31)
2
8
 
3
9
  * Add delete page
@@ -266,212 +266,235 @@ alchemy-widgets-navigation {
266
266
  opacity: 0;
267
267
  }
268
268
 
269
- alchemy-table .aft-column-filters input {
270
- @extend .chimera-input-field;
271
- width: 100%;
272
- }
269
+ .chimera-wrapper {
273
270
 
274
- alchemy-form {
275
- .error-area:not(:empty) {
276
- @extend .error, .alert-box;
277
- margin-top: 0;
271
+ alchemy-table .aft-column-filters input {
272
+ @extend .chimera-input-field;
273
+ width: 100%;
278
274
  }
279
- }
280
275
 
281
- alchemy-field {
282
- border: 1px solid var(--color-box-border);
283
- background-color: white;
284
- border-radius: 4px;
285
-
286
- // In case something goes wrong:
287
- min-height: 1rem;
288
-
289
- alchemy-label {
290
- padding-left: 1rem;
291
- line-height: 3rem;
292
- font-size: 16px;
293
- font-weight: 500;
294
- color: var(--color-title);
295
- border-bottom: 1px solid var(--color-box-border);
276
+ alchemy-form {
277
+ .error-area:not(:empty) {
278
+ @extend .error, .alert-box;
279
+ margin-top: 0;
280
+ }
296
281
  }
297
282
 
298
- alchemy-field-translatable {
299
- .prefix-buttons {
300
- width: 100%;
283
+ alchemy-field:not([view-type="view_inline"]):not([view-type="inline"]) {
284
+ border: 1px solid var(--color-box-border);
285
+ background-color: white;
286
+ border-radius: 4px;
287
+
288
+ // In case something goes wrong:
289
+ min-height: 1rem;
290
+
291
+ alchemy-label {
292
+ padding-left: 1rem;
293
+ line-height: 3rem;
294
+ font-size: 16px;
295
+ font-weight: 500;
296
+ color: var(--color-title);
301
297
  border-bottom: 1px solid var(--color-box-border);
298
+ }
299
+
300
+ alchemy-field-translatable {
301
+ .prefix-buttons {
302
+ width: 100%;
303
+ border-bottom: 1px solid var(--color-box-border);
304
+ display: flex;
305
+
306
+ button {
307
+ flex: 10;
308
+ font-size: 16px;
309
+ font-weight: 500;
310
+ color: var(--button-text-color);
311
+ letter-spacing: 0px;
312
+ background: transparent;
313
+ border: none;
314
+ cursor: pointer;
315
+
316
+ height: 3rem;
317
+ display: flex;
318
+ flex-flow: column;
319
+ justify-content: center;
320
+ align-items: center;
321
+
322
+ &.active {
323
+ box-shadow: inset 0 -2px var(--color-active);
324
+ }
325
+
326
+ &:hover {
327
+ background-color: var(--button-bg-hover-color);
328
+ }
329
+ }
330
+ }
331
+ }
332
+
333
+ .field {
302
334
  display: flex;
335
+ padding: 1rem;
336
+ flex: 10;
303
337
 
304
- button {
338
+ > * {
305
339
  flex: 10;
306
- font-size: 16px;
307
- font-weight: 500;
308
- color: var(--button-text-color);
309
- letter-spacing: 0px;
310
- background: transparent;
311
- border: none;
312
- cursor: pointer;
340
+ }
341
+
342
+ > alchemy-widget {
343
+ border: 1px solid var(--color-input-border);
344
+ padding: 0 12px;
345
+ }
346
+ }
313
347
 
348
+ .field {
349
+ input[type="text"],
350
+ input[type="number"],
351
+ input[type="color"],
352
+ input[type="datetime-local"],
353
+ input[type="password"] {
354
+ @extend .chimera-input-field;
314
355
  height: 3rem;
315
- display: flex;
316
- flex-flow: column;
317
- justify-content: center;
318
- align-items: center;
356
+ }
319
357
 
320
- &.active {
321
- box-shadow: inset 0 -2px var(--color-active);
322
- }
358
+ textarea {
359
+ @extend .chimera-input-field;
360
+ min-height: 5rem;
361
+ padding: 1rem;
362
+ }
323
363
 
324
- &:hover {
325
- background-color: var(--button-bg-hover-color);
326
- }
364
+ input[type="color"] {
365
+ background-color: transparent;
366
+ border: none;
367
+ padding: 0;
327
368
  }
328
369
  }
329
370
  }
330
371
 
331
- .field {
332
- display: flex;
333
- padding: 1rem;
334
- flex: 10;
335
-
336
- > * {
337
- flex: 10;
372
+ alchemy-field-array {
373
+ .add-entry {
374
+ @extend .btn;
375
+ margin: 1rem 0 0 1rem;
338
376
  }
339
377
 
340
- > alchemy-widget {
341
- border: 1px solid var(--color-input-border);
342
- padding: 0 12px;
378
+ button.remove {
379
+ @extend .btn;
380
+ @extend .danger;
381
+ min-width: 6rem;
382
+ margin: 0 1rem 1rem 0;
343
383
  }
344
- }
345
384
 
346
- .field {
347
- input[type="text"],
348
- input[type="number"],
349
- input[type="color"],
350
- input[type="datetime-local"],
351
- input[type="password"] {
352
- @extend .chimera-input-field;
353
- height: 3rem;
385
+ .entries {
386
+ margin-top: 0.5rem;
354
387
  }
355
388
 
356
- textarea {
357
- @extend .chimera-input-field;
358
- min-height: 5rem;
359
- padding: 1rem;
389
+ alchemy-field-array-entry:not(:last-of-type) {
390
+ //border-bottom: 1px solid gray;
391
+ position: relative;
392
+
393
+ &::after {
394
+ display: block;
395
+ content: " ";
396
+ background-color: lightgray;
397
+ position: absolute;
398
+ bottom: 0;
399
+ height: 1px;
400
+ left: 50%;
401
+ transform: translateX(-50%);
402
+ width: 80%;
403
+ }
360
404
  }
361
405
 
362
- input[type="color"] {
363
- background-color: transparent;
364
- border: none;
365
- padding: 0;
406
+ alchemy-field-array-entry:not(:first-of-type) {
407
+ margin-top: 1rem;
366
408
  }
367
409
  }
368
- }
369
410
 
370
- alchemy-field-array {
371
- .add-entry {
372
- @extend .btn;
373
- margin: 1rem 0 0 1rem;
374
- }
411
+ .chimera-editor-widgets {
375
412
 
376
- button.remove {
377
- @extend .btn;
378
- @extend .danger;
379
- min-width: 6rem;
380
- margin: 0 1rem 1rem 0;
381
- }
382
-
383
- .entries {
384
- margin-top: 0.5rem;
385
- }
413
+ alchemy-widgets-column.toc-col {
414
+ flex: 2 2;
415
+ }
386
416
 
387
- alchemy-field-array-entry:not(:last-of-type) {
388
- //border-bottom: 1px solid gray;
389
- position: relative;
390
-
391
- &::after {
392
- display: block;
393
- content: " ";
394
- background-color: lightgray;
395
- position: absolute;
396
- bottom: 0;
397
- height: 1px;
398
- left: 50%;
399
- transform: translateX(-50%);
400
- width: 80%;
417
+ table-of-contents[elements-selector="alchemy-field"] {
418
+ align-self: start;
419
+ top: 2rem;
420
+ position: sticky;
421
+
422
+ ol {
423
+ list-style: none;
424
+ margin: 0 0 0 2rem;
425
+ padding: 0;
426
+
427
+ li {
428
+ a {
429
+ display: block;
430
+ line-height: 2rem;
431
+ border-bottom: 1px solid #aaa;
432
+ text-decoration: none;
433
+ opacity: 0.5;
434
+ color: #0070e4;
435
+ }
436
+ }
437
+
438
+ li a.visible {
439
+ opacity: 1;
440
+ }
441
+ }
401
442
  }
402
443
  }
403
444
 
404
- alchemy-field-array-entry:not(:first-of-type) {
405
- margin-top: 1rem;
445
+ alchemy-field-schema {
446
+ alchemy-field {
447
+ border: none;
448
+ margin-bottom: 1rem;
449
+ }
406
450
  }
407
- }
408
451
 
409
- .chimera-editor-widgets {
410
-
411
- alchemy-widgets-column.toc-col {
412
- flex: 2 2;
452
+ .aft-actions {
453
+ a {
454
+ color: var(--button-text-color);
455
+ background-color: var(--button-bg-color);
456
+ padding: 0.5rem;
457
+ border-radius: 6px;
458
+ margin: 0.2rem;
459
+ display: inline-block;
460
+
461
+ &:hover {
462
+ background-color: var(--button-bg-hover-color);
463
+ }
464
+ }
413
465
  }
414
466
 
415
- table-of-contents[elements-selector="alchemy-field"] {
416
- align-self: start;
417
- top: 2rem;
418
- position: sticky;
467
+ .chimera-confirm-page {
468
+ flex: 1;
469
+ justify-content: center;
470
+ display: flex;
471
+ align-items: center;
472
+ flex-flow: column;
473
+ flex-direction: column;
419
474
 
420
- ol {
421
- list-style: none;
422
- margin: 0 0 0 2rem;
423
- padding: 0;
424
-
425
- li {
426
- a {
427
- display: block;
428
- line-height: 2rem;
429
- border-bottom: 1px solid #aaa;
430
- text-decoration: none;
431
- opacity: 0.5;
432
- color: #0070e4;
433
- }
434
- }
435
-
436
- li a.visible {
437
- opacity: 1;
438
- }
475
+ .action-buttons {
476
+ display: flex;
477
+ gap: 1rem;
439
478
  }
440
479
  }
441
- }
442
480
 
443
- alchemy-field-schema {
444
- alchemy-field {
445
- border: none;
446
- margin-bottom: 1rem;
481
+ al-file {
482
+ button {
483
+ @extend .btn;
484
+ }
447
485
  }
448
- }
449
486
 
450
- .aft-actions {
451
- a {
452
- color: var(--button-text-color);
453
- background-color: var(--button-bg-color);
454
- padding: 0.5rem;
455
- border-radius: 6px;
456
- margin: 0.2rem;
457
- display: inline-block;
458
-
459
- &:hover {
460
- background-color: var(--button-bg-hover-color);
487
+ alchemy-password-input {
488
+ label:first-of-type {
489
+ margin-bottom: 0;
461
490
  }
462
- }
463
- }
464
491
 
465
- .chimera-confirm-page {
466
- flex: 1;
467
- justify-content: center;
468
- display: flex;
469
- align-items: center;
470
- flex-flow: column;
471
- flex-direction: column;
492
+ .repeat-input-label {
493
+ margin-top: 1rem;
494
+ }
472
495
 
473
- .action-buttons {
474
- display: flex;
475
- gap: 1rem;
496
+ .inputbox {
497
+ background: initial;
498
+ }
476
499
  }
477
500
  }
package/bootstrap.js CHANGED
@@ -1,4 +1,5 @@
1
1
  alchemy.requirePlugin('widget');
2
+ alchemy.requirePlugin('form');
2
3
 
3
4
  // Define the default options
4
5
  let options = {
@@ -12,7 +12,7 @@ const Editor = Function.inherits('Alchemy.Controller.Chimera', 'Editor');
12
12
  *
13
13
  * @author Jelle De Loecker <jelle@elevenways.be>
14
14
  * @since 1.0.1
15
- * @version 1.0.1
15
+ * @version 1.0.5
16
16
  *
17
17
  * @param {String} title
18
18
  */
@@ -27,6 +27,8 @@ Editor.setMethod(function setTitle(title) {
27
27
  if (title && window_title) {
28
28
  window_title += ' | ';
29
29
  }
30
+ } else {
31
+ window_title = '';
30
32
  }
31
33
 
32
34
  if (title) {
@@ -123,7 +125,7 @@ Editor.setAction(async function add(conduit, model_name) {
123
125
  *
124
126
  * @author Jelle De Loecker <jelle@elevenways.be>
125
127
  * @since 0.1.0
126
- * @version 1.0.2
128
+ * @version 1.0.5
127
129
  *
128
130
  * @param {Conduit} conduit
129
131
  * @param {String} model_name
@@ -138,6 +140,8 @@ Editor.setAction(async function edit(conduit, model_name, pk_val) {
138
140
  let record = await model.findByPk(pk_val);
139
141
  let message_type = conduit.param('message');
140
142
 
143
+ record.keepPrivateFields();
144
+
141
145
  let context_variables = {
142
146
  record,
143
147
  };
@@ -223,7 +227,7 @@ Editor.setAction(async function trash(conduit, model_name, pk_val) {
223
227
  *
224
228
  * @author Jelle De Loecker <jelle@elevenways.be>
225
229
  * @since 1.0.0
226
- * @version 1.0.4
230
+ * @version 1.0.5
227
231
  *
228
232
  * @param {Conduit} conduit
229
233
  * @param {String} model_name
@@ -278,6 +282,8 @@ Editor.setAction(async function records(conduit, model_name) {
278
282
  result = [],
279
283
  record,
280
284
  main;
285
+
286
+ records.keepPrivateFields();
281
287
 
282
288
  for (record of records) {
283
289
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "alchemy-chimera",
3
3
  "description": "Chimera plugin for Alchemy MVC",
4
- "version": "1.0.4",
4
+ "version": "1.0.5",
5
5
  "author": "Jelle De Loecker <jelle@elevenways.be>",
6
6
  "keywords": [
7
7
  "alchemy",
@@ -12,11 +12,11 @@
12
12
  "repository": "11ways/alchemy-chimera",
13
13
  "peerDependencies": {
14
14
  "alchemy-acl" : "~0.7.0",
15
- "alchemymvc" : "~1.2.1",
15
+ "alchemymvc" : "~1.2.4",
16
16
  "alchemy-widget": "~0.1.2"
17
17
  },
18
18
  "license": "MIT",
19
19
  "engines": {
20
- "node" : ">=12.0.0"
20
+ "node" : ">=14.0.0"
21
21
  }
22
22
  }