wagtail-cjkcms 24.3.1__py2.py3-none-any.whl → 25.1.6__py2.py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. cjkcms/.DS_Store +0 -0
  2. cjkcms/__init__.py +1 -1
  3. cjkcms/blocks/__init__.py +4 -0
  4. cjkcms/blocks/content/countdown.py +116 -0
  5. cjkcms/blocks/content_blocks.py +46 -9
  6. cjkcms/migrations/0018_layoutsettings_search_format.py +10 -5
  7. cjkcms/migrations/0019_layoutsettings_searchbox_input_class_and_more.py +28 -11
  8. cjkcms/migrations/0020_socialmediasettings_github_and_more.py +18 -11
  9. cjkcms/migrations/0021_remove_layoutsettings_navbar_color_scheme_and_more.py +85 -0
  10. cjkcms/migrations/0022_cjkcmspage_breadcrumb_label_and_more.py +23 -0
  11. cjkcms/migrations/0023_alter_navbar_language.py +18 -0
  12. cjkcms/models/admin_sidebar.py +0 -28
  13. cjkcms/models/page_models.py +33 -0
  14. cjkcms/models/snippet_models.py +22 -7
  15. cjkcms/models/wagtailsettings_models.py +40 -21
  16. cjkcms/settings.py +96 -64
  17. cjkcms/static/.DS_Store +0 -0
  18. cjkcms/static/cjkcms/css/cjkcms-custom-theme-disabled.css +73 -0
  19. cjkcms/static/cjkcms/css/cjkcms-front.css +41 -5
  20. cjkcms/static/cjkcms/js/cjkcms-front.js +2 -2
  21. cjkcms/static/vendor/.DS_Store +0 -0
  22. cjkcms/static/vendor/mdb/.DS_Store +0 -0
  23. cjkcms/static/vendor/mdb/css/.DS_Store +0 -0
  24. cjkcms/static/vendor/mdb/css/mdb.min.css +18 -0
  25. cjkcms/static/vendor/mdb/css/mdb.min.css.map +1 -0
  26. cjkcms/static/vendor/mdb/js/.DS_Store +0 -0
  27. cjkcms/static/vendor/mdb/js/mdb.umd.min.js +21 -0
  28. cjkcms/static/vendor/mdb/js/mdb.umd.min.js.map +1 -0
  29. cjkcms/static/vendor/simplycountdown/css/circle.css +73 -0
  30. cjkcms/static/vendor/simplycountdown/css/cyber.css +155 -0
  31. cjkcms/static/vendor/simplycountdown/css/dark.css +85 -0
  32. cjkcms/static/vendor/simplycountdown/css/light.css +85 -0
  33. cjkcms/static/vendor/simplycountdown/css/losange.css +83 -0
  34. cjkcms/static/vendor/simplycountdown/js/simplyCountdown.umd.js +2 -0
  35. cjkcms/static/vendor/simplycountdown/js/simplyCountdown.umd.js.map +1 -0
  36. cjkcms/templates/.DS_Store +0 -0
  37. cjkcms/templates/404.html +72 -104
  38. cjkcms/templates/cjkcms/.DS_Store +0 -0
  39. cjkcms/templates/cjkcms/blocks/base_link_block.html +48 -51
  40. cjkcms/templates/cjkcms/blocks/button_block.html +2 -2
  41. cjkcms/templates/cjkcms/blocks/card_landing1.html +2 -2
  42. cjkcms/templates/cjkcms/blocks/card_landing2.html +3 -3
  43. cjkcms/templates/cjkcms/blocks/countdown.html +24 -0
  44. cjkcms/templates/cjkcms/blocks/highlight_block.html +21 -0
  45. cjkcms/templates/cjkcms/blocks/pricelistitem_block.html +9 -5
  46. cjkcms/templates/cjkcms/pages/base.html +3 -3
  47. cjkcms/templates/cjkcms/pages/page.mini.html +1 -1
  48. cjkcms/templates/cjkcms/pages/search.html +10 -1
  49. cjkcms/templates/cjkcms/robots.txt +0 -4
  50. cjkcms/templates/cjkcms/snippets/breadcrumbs.html +2 -2
  51. cjkcms/templates/cjkcms/snippets/frontend_assets.html +8 -0
  52. cjkcms/templates/cjkcms/snippets/navbar.html +12 -9
  53. cjkcms/templates/cjkcms/snippets/navbar_search.html +6 -35
  54. cjkcms/templates/cjkcms/snippets/navbar_search_modal.html +34 -0
  55. cjkcms/templatetags/cjkcms_tags.py +80 -17
  56. cjkcms/tests/test_countdown_block.py +100 -0
  57. cjkcms/tests/test_search_blocks.py +10 -10
  58. cjkcms/tests/test_templatetags.py +19 -1
  59. cjkcms/tests/test_urls.py +8 -6
  60. cjkcms/urls.py +3 -0
  61. cjkcms/views.py +80 -78
  62. cjkcms/wagtail_hooks.py +37 -5
  63. {wagtail_cjkcms-24.3.1.dist-info → wagtail_cjkcms-25.1.6.dist-info}/METADATA +6 -6
  64. {wagtail_cjkcms-24.3.1.dist-info → wagtail_cjkcms-25.1.6.dist-info}/RECORD +70 -42
  65. {wagtail_cjkcms-24.3.1.dist-info → wagtail_cjkcms-25.1.6.dist-info}/WHEEL +1 -1
  66. /cjkcms/tests/media/images/{test_d8sVYy7.original.png → test_O3GLriA.original.png} +0 -0
  67. /cjkcms/tests/media/original_images/{test_d8sVYy7.png → test_O3GLriA.png} +0 -0
  68. {wagtail_cjkcms-24.3.1.dist-info → wagtail_cjkcms-25.1.6.dist-info}/LICENSE +0 -0
  69. {wagtail_cjkcms-24.3.1.dist-info → wagtail_cjkcms-25.1.6.dist-info}/entry_points.txt +0 -0
  70. {wagtail_cjkcms-24.3.1.dist-info → wagtail_cjkcms-25.1.6.dist-info}/top_level.txt +0 -0
@@ -161,17 +161,6 @@ class LayoutSettings(ClusterableModel, BaseSiteSetting):
161
161
  verbose_name=_("Default SEO Image"),
162
162
  )
163
163
 
164
- navbar_color_scheme = models.CharField(
165
- blank=True,
166
- max_length=50,
167
- choices=None,
168
- default="",
169
- verbose_name=_("Navbar color scheme"),
170
- help_text=_(
171
- "Optimizes text and other navbar elements for use with light or dark backgrounds."
172
- ), # noqa
173
- )
174
-
175
164
  navbar_class = models.CharField(
176
165
  blank=True,
177
166
  max_length=255,
@@ -199,7 +188,7 @@ class LayoutSettings(ClusterableModel, BaseSiteSetting):
199
188
  navbar_collapse_mode = models.CharField(
200
189
  blank=True,
201
190
  max_length=50,
202
- choices=None,
191
+ choices=[],
203
192
  default="",
204
193
  verbose_name=_("Collapse navbar menu"),
205
194
  help_text=_(
@@ -209,7 +198,7 @@ class LayoutSettings(ClusterableModel, BaseSiteSetting):
209
198
  navbar_format = models.CharField(
210
199
  blank=True,
211
200
  max_length=50,
212
- choices=None,
201
+ choices=[],
213
202
  default="",
214
203
  verbose_name=_("Navbar format"),
215
204
  )
@@ -260,7 +249,7 @@ class LayoutSettings(ClusterableModel, BaseSiteSetting):
260
249
  blank=True,
261
250
  null=True,
262
251
  max_length=255,
263
- choices=None,
252
+ choices=[],
264
253
  default=None,
265
254
  verbose_name=_("Language selector"),
266
255
  help_text=_("Choose lang choice selector"),
@@ -271,6 +260,23 @@ class LayoutSettings(ClusterableModel, BaseSiteSetting):
271
260
  verbose_name=_("Breadcrumbs"),
272
261
  help_text=_("Show breadcrumbs in page header"),
273
262
  )
263
+
264
+ # # defines layout for the breadcrumb: full, shortened
265
+ # breadcrumb_layout_default = "full"
266
+ # breadcrumb_layout_choices = (
267
+ # ("full", _("Display full")),
268
+ # ("shortened_dots", _("Shortened with dots in middle levels")),
269
+ # ("shortened_mobile_dots", _("Shortened with dots on mobile view")),
270
+ # )
271
+
272
+ # breadcrumb_layout = models.CharField(
273
+ # max_length=255,
274
+ # choices=breadcrumb_layout_choices,
275
+ # default=breadcrumb_layout_default,
276
+ # blank=True,
277
+ # verbose_name=_("Breadcrumbs layout"),
278
+ # )
279
+
274
280
  breadcrumb_icon = models.CharField(
275
281
  blank=True,
276
282
  max_length=32,
@@ -279,10 +285,25 @@ class LayoutSettings(ClusterableModel, BaseSiteSetting):
279
285
  help_text=_("Bootstrap icon name. See docs for built-in options."),
280
286
  )
281
287
 
288
+ color_scheme = models.CharField(
289
+ blank=True,
290
+ max_length=50,
291
+ choices=[],
292
+ default="",
293
+ verbose_name=_("Color scheme"),
294
+ help_text=_("Default light/dark/custom theme. (MD/Bootstrap only)"), # noqa
295
+ )
296
+
297
+ light_dark_switch = models.BooleanField(
298
+ default=False,
299
+ verbose_name=_("Light/Dark switch"),
300
+ help_text=_("Show switch to toggle light/dark theme (MD/Bootstrap only)"),
301
+ )
302
+
282
303
  frontend_theme = models.CharField(
283
304
  blank=True,
284
305
  max_length=50,
285
- choices=None,
306
+ choices=[],
286
307
  default="",
287
308
  verbose_name=_("Theme variant"),
288
309
  help_text=cms_settings.CJKCMS_FRONTEND_THEME_HELP,
@@ -361,7 +382,6 @@ class LayoutSettings(ClusterableModel, BaseSiteSetting):
361
382
  ),
362
383
  MultiFieldPanel(
363
384
  [
364
- FieldPanel("navbar_color_scheme"),
365
385
  FieldPanel("navbar_class"),
366
386
  FieldPanel("navbar_fixed"),
367
387
  FieldPanel("navbar_wrapper_fluid"),
@@ -396,6 +416,7 @@ class LayoutSettings(ClusterableModel, BaseSiteSetting):
396
416
  ),
397
417
  MultiFieldPanel(
398
418
  [
419
+ FieldPanel("color_scheme"),
399
420
  FieldPanel("frontend_theme"),
400
421
  FieldPanel("base_template"),
401
422
  FieldPanel("awesome_cdn"),
@@ -429,8 +450,8 @@ class LayoutSettings(ClusterableModel, BaseSiteSetting):
429
450
  "navbar_collapse_mode"
430
451
  ).choices = cms_settings.CJKCMS_FRONTEND_NAVBAR_COLLAPSE_MODE_CHOICES # type: ignore
431
452
  self._meta.get_field(
432
- "navbar_color_scheme"
433
- ).choices = cms_settings.CJKCMS_FRONTEND_NAVBAR_COLOR_SCHEME_CHOICES # type: ignore
453
+ "color_scheme"
454
+ ).choices = cms_settings.CJKCMS_FRONTEND_COLOR_SCHEME_CHOICES # type: ignore
434
455
  self._meta.get_field(
435
456
  "navbar_format"
436
457
  ).choices = cms_settings.CJKCMS_FRONTEND_NAVBAR_FORMAT_CHOICES # type: ignore
@@ -447,9 +468,7 @@ class LayoutSettings(ClusterableModel, BaseSiteSetting):
447
468
  self.navbar_collapse_mode = (
448
469
  cms_settings.CJKCMS_FRONTEND_NAVBAR_COLLAPSE_MODE_DEFAULT
449
470
  )
450
- self.navbar_color_scheme = (
451
- cms_settings.CJKCMS_FRONTEND_NAVBAR_COLOR_SCHEME_DEFAULT
452
- )
471
+ self.color_scheme = cms_settings.CJKCMS_FRONTEND_COLOR_SCHEME_DEFAULT
453
472
  self.navbar_format = cms_settings.CJKCMS_FRONTEND_NAVBAR_FORMAT_DEFAULT
454
473
  self.search_format = cms_settings.CJKCMS_FRONTEND_SEARCH_FORMAT_DEFAULT
455
474
  self.base_template = cms_settings.CJKCMS_BASE_TEMPLATE_DEFAULT
cjkcms/settings.py CHANGED
@@ -89,10 +89,11 @@ class _DefaultSettings:
89
89
  ("cjkcms/snippets/bottom_corner_lang_selector.html", "Bottom Corner Selector"),
90
90
  ]
91
91
 
92
- CJKCMS_FRONTEND_NAVBAR_COLOR_SCHEME_DEFAULT = "navbar-light"
93
- CJKCMS_FRONTEND_NAVBAR_COLOR_SCHEME_CHOICES = [
94
- ("navbar-light", "Light - for use with a light-colored navbar"),
95
- ("navbar-dark", "Dark - for use with a dark-colored navbar"),
92
+ CJKCMS_FRONTEND_COLOR_SCHEME_DEFAULT = "light"
93
+ CJKCMS_FRONTEND_COLOR_SCHEME_CHOICES = [
94
+ ("light", "Light theme"),
95
+ ("dark", "Dark theme"),
96
+ ("custom", "Custom from cjkcms-custom-theme.css"),
96
97
  ]
97
98
 
98
99
  CJKCMS_FRONTEND_NAVBAR_CLASS_DEFAULT = "bg-light"
@@ -113,9 +114,10 @@ class _DefaultSettings:
113
114
  CJKCMS_FRONTEND_THEME_DEFAULT = "bootstrap5"
114
115
  CJKCMS_FRONTEND_THEME_CHOICES = (
115
116
  ("bootstrap5", "Default - Bootstrap 5 (CDN)"),
117
+ ("mdb", "MDBootstrap 5 (CDN)"),
116
118
  ("python-webpack", "Python Webpack Boilerplate by Michael Yin"),
117
- ("mdb.light", "MDBootstrap 5 (CDN)"),
118
- ("mdb.dark", "MDBootstrap 5 dark (CDN)"),
119
+ ("mdb.light", "MDBootstrap 5 (local)"),
120
+ ("mdb.dark", "MDBootstrap 5 dark (local)"),
119
121
  ("bootswatch.cerulean", "Bootswatch Cerulean (CDN)"),
120
122
  ("bootswatch.cosmo", "Bootswatch Cosmo (CDN)"),
121
123
  ("bootswatch.cyborg", "Bootswatch Cyborg (CDN)"),
@@ -149,116 +151,120 @@ class _DefaultSettings:
149
151
  CJKCMS_THEME_FILES = {
150
152
  "python-webpack": ["@include", "@include"], # this entry will be ignored
151
153
  "bootstrap5": [
152
- "https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.2/css/bootstrap.min.css",
153
- "https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.2/js/bootstrap.bundle.min.js",
154
+ "https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/css/bootstrap.min.css",
155
+ "https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/js/bootstrap.bundle.min.js",
154
156
  ],
155
- "mdb.light": [
156
- "https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/6.4.2/mdb.min.css",
157
- "https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/6.4.2/mdb.min.js",
157
+ "mdb": [
158
+ "https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/8.1.0/mdb.min.css",
159
+ "https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/8.1.0/mdb.umd.min.js",
158
160
  ],
159
- "mdb.dark": [
160
- "https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/6.4.2/mdb.dark.min.css",
161
- "https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/6.4.2/mdb.min.js",
161
+ "mdb.light": [ # 8.1.0
162
+ "vendor/mdb/css/mdb.min.css",
163
+ "vendor/mdb/js/mdb.umd.min.js",
164
+ ],
165
+ "mdb.dark": [ # 8.1.0
166
+ "vendor/mdb/css/mdb.dark.min.css",
167
+ "vendor/mdb/js/mdb.umd.min.js",
162
168
  ],
163
169
  "bootswatch.cerulean": [
164
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/cerulean/bootstrap.min.css",
165
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
170
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/cerulean/bootstrap.min.css",
171
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
166
172
  ],
167
173
  "bootswatch.cosmo": [
168
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/cosmo/bootstrap.min.css",
169
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
174
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/cosmo/bootstrap.min.css",
175
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
170
176
  ],
171
177
  "bootswatch.cyborg": [
172
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/cyborg/bootstrap.min.css",
173
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
178
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/cyborg/bootstrap.min.css",
179
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
174
180
  ],
175
181
  "bootswatch.darkly": [
176
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/darkly/bootstrap.min.css",
177
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
182
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/darkly/bootstrap.min.css",
183
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
178
184
  ],
179
185
  "bootswatch.flatly": [
180
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/flatly/bootstrap.min.css",
181
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
186
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/flatly/bootstrap.min.css",
187
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
182
188
  ],
183
189
  "bootswatch.journal": [
184
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/journal/bootstrap.min.css",
185
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
190
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/journal/bootstrap.min.css",
191
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
186
192
  ],
187
193
  "bootswatch.litera": [
188
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/litera/bootstrap.min.css",
189
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
194
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/litera/bootstrap.min.css",
195
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
190
196
  ],
191
197
  "bootswatch.lumen": [
192
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/lumen/bootstrap.min.css",
193
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
198
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/lumen/bootstrap.min.css",
199
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
194
200
  ],
195
201
  "bootswatch.lux": [
196
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/lux/bootstrap.min.css",
197
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
202
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/lux/bootstrap.min.css",
203
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
198
204
  ],
199
205
  "bootswatch.materia": [
200
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/materia/bootstrap.min.css",
201
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
206
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/materia/bootstrap.min.css",
207
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
202
208
  ],
203
209
  "bootswatch.minty": [
204
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/minty/bootstrap.min.css",
205
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
210
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/minty/bootstrap.min.css",
211
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
206
212
  ],
207
213
  "bootswatch.morph": [
208
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/morph/bootstrap.min.css",
209
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
214
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/morph/bootstrap.min.css",
215
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
210
216
  ],
211
217
  "bootswatch.pulse": [
212
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/pulse/bootstrap.min.css",
213
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
218
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/pulse/bootstrap.min.css",
219
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
214
220
  ],
215
221
  "bootswatch.quartz": [
216
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/quartz/bootstrap.min.css",
217
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
222
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/quartz/bootstrap.min.css",
223
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
218
224
  ],
219
225
  "bootswatch.sandstone": [
220
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/sandstone/bootstrap.min.css",
221
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
226
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/sandstone/bootstrap.min.css",
227
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
222
228
  ],
223
229
  "bootswatch.simplex": [
224
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/simplex/bootstrap.min.css",
225
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
230
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/simplex/bootstrap.min.css",
231
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
226
232
  ],
227
233
  "bootswatch.sketchy": [
228
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/sketchy/bootstrap.min.css",
229
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
234
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/sketchy/bootstrap.min.css",
235
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
230
236
  ],
231
237
  "bootswatch.slate": [
232
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/slate/bootstrap.min.css",
233
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
238
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/slate/bootstrap.min.css",
239
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
234
240
  ],
235
241
  "bootswatch.solar": [
236
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/solar/bootstrap.min.css",
237
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
242
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/solar/bootstrap.min.css",
243
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
238
244
  ],
239
245
  "bootswatch.spacelab": [
240
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/spacelab/bootstrap.min.css",
241
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
246
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/spacelab/bootstrap.min.css",
247
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
242
248
  ],
243
249
  "bootswatch.superhero": [
244
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/superhero/bootstrap.min.css",
245
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
250
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/superhero/bootstrap.min.css",
251
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
246
252
  ],
247
253
  "bootswatch.united": [
248
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/united/bootstrap.min.css",
249
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
254
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/united/bootstrap.min.css",
255
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
250
256
  ],
251
257
  "bootswatch.vapor": [
252
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/vapor/bootstrap.min.css",
253
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
258
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/vapor/bootstrap.min.css",
259
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
254
260
  ],
255
261
  "bootswatch.yeti": [
256
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/yeti/bootstrap.min.css",
257
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
262
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/yeti/bootstrap.min.css",
263
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
258
264
  ],
259
265
  "bootswatch.zephyr": [
260
- "https://cdn.jsdelivr.net/npm/bootswatch@5.3.2/dist/zephyr/bootstrap.min.css",
261
- "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js",
266
+ "https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/zephyr/bootstrap.min.css",
267
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js",
262
268
  ],
263
269
  }
264
270
 
@@ -360,6 +366,29 @@ class _DefaultSettings:
360
366
  ("hidden", "Hidden for all"),
361
367
  )
362
368
 
369
+ CJKCMS_HIGHLIGHT_COLORS = (
370
+ ("primary", "Dark Blue"),
371
+ ("secondary", "Gray"),
372
+ ("success", "Green"),
373
+ ("danger", "Red"),
374
+ ("warning", "Yellow"),
375
+ ("info", "Light Blue"),
376
+ ("light", "Light"),
377
+ ("dark", "Dark"),
378
+ )
379
+ CJKCMS_HIGHLIGHT_DEFAULT_COLOR = "none"
380
+
381
+ FONT_AWESOME_ICONS = (
382
+ ("fa-solid fa-circle-check", "Checkmark"),
383
+ ("fa-solid fa-scissors", "Scissors"),
384
+ ("fa-solid fa-pencil", "Pencil"),
385
+ ("fa-solid fa-question", "Question mark"),
386
+ ("fa-solid fa-globe", "Globe"),
387
+ ("fa-regular fa-folder", "Folder"),
388
+ ("fa-solid fa-triangle-exclamation", "Warning Triangle"),
389
+ )
390
+ FONT_AWESOME_ICONS_DEFAULT = "fa-solid fa-circle-check"
391
+
363
392
  BANNER = None
364
393
  BANNER_BACKGROUND = "#f00"
365
394
  BANNER_TEXT_COLOR = "#fff"
@@ -449,6 +478,9 @@ class _DefaultSettings:
449
478
  ("btn-outline-link", "Link Outline"),
450
479
  ]
451
480
 
481
+ CJKCMS_VERSION_MONITOR_TOKEN = "" # blank token = disabled version monitor api
482
+ CJKCMS_VERSION_MONITOR_ALLOWED_DOMAINS = [] # disallow from any domain by default
483
+
452
484
  def __getattribute__(self, attr: str):
453
485
  # First load from Django settings.
454
486
  # If it does not exist, load from _DefaultSettings.
Binary file
@@ -0,0 +1,73 @@
1
+
2
+ :root {
3
+ /* --bs-blue: #0d6efd;
4
+ --bs-indigo: #6610f2;
5
+ --bs-purple: #6f42c1;
6
+ --bs-pink: #d63384;
7
+ --bs-red: #dc3545;
8
+ --bs-orange: #fd7e14;
9
+ --bs-yellow: #ffc107;
10
+ --bs-green: #198754;
11
+ --bs-teal: #20c997;
12
+ --bs-cyan: #0dcaf0;
13
+ --bs-black: #000;
14
+ --bs-white: #fff;
15
+ --bs-gray: #6c757d;
16
+ --bs-gray-dark: #343a40;
17
+ --bs-gray-100: #f8f9fa;
18
+ --bs-gray-200: #e9ecef;
19
+ --bs-gray-300: #dee2e6;
20
+ --bs-gray-400: #ced4da;
21
+ --bs-gray-500: #adb5bd;
22
+ --bs-gray-600: #6c757d;
23
+ --bs-gray-700: #495057;
24
+ --bs-gray-800: #343a40;
25
+ --bs-gray-900: #212529;
26
+ --bs-primary: #0d6efd;
27
+ --bs-secondary: #6c757d;
28
+ --bs-success: #198754;
29
+ --bs-info: #0dcaf0;
30
+ --bs-warning: #ffc107;
31
+ --bs-danger: #dc3545;
32
+ --bs-light: #f8f9fa;
33
+ --bs-dark: #212529;
34
+ --bs-primary-rgb: 13, 110, 253;
35
+ --bs-secondary-rgb: 108, 117, 125;
36
+ --bs-success-rgb: 25, 135, 84;
37
+ --bs-info-rgb: 13, 202, 240;
38
+ --bs-warning-rgb: 255, 193, 7;
39
+ --bs-danger-rgb: 220, 53, 69;
40
+ --bs-light-rgb: 248, 249, 250;
41
+ --bs-dark-rgb: 33, 37, 41;
42
+ --bs-white-rgb: 255, 255, 255;
43
+ --bs-black-rgb: 0, 0, 0;
44
+ --bs-body-color-rgb: 33, 37, 41;
45
+ --bs-body-bg-rgb: 255, 255, 255;
46
+ --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
47
+ --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
48
+ --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
49
+ --bs-body-font-family: var(--bs-font-sans-serif);
50
+ --bs-body-font-size: 1rem;
51
+ --bs-body-font-weight: 400;
52
+ --bs-body-line-height: 1.5;
53
+ --bs-body-color: #212529;
54
+ --bs-body-bg: #fff;
55
+ --bs-border-width: 1px;
56
+ --bs-border-style: solid;
57
+ --bs-border-color: #dee2e6;
58
+ --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
59
+ --bs-border-radius: 0.375rem;
60
+ --bs-border-radius-sm: 0.25rem;
61
+ --bs-border-radius-lg: 0.5rem;
62
+ --bs-border-radius-xl: 1rem;
63
+ --bs-border-radius-2xl: 2rem;
64
+ --bs-border-radius-pill: 50rem;
65
+ --bs-code-color: #d63384;
66
+ --bs-highlight-bg: #fff3cd;
67
+ --bs-link-color: #008bbb;
68
+ --bs-link-hover-color: #ff8300;
69
+ --bs-link-color-rgb: 0, 139, 187;
70
+ --bs-link-hover-color-rgb: 255, 131, 0;
71
+ */
72
+
73
+ }
@@ -82,6 +82,11 @@ License: https://github.com/coderedcorp/coderedcms/blob/dev/LICENSE
82
82
  content: ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ";
83
83
  }
84
84
 
85
+ .leaders-dots {
86
+ border-bottom: 1px dotted currentColor;
87
+ margin-bottom: 5px;
88
+ }
89
+
85
90
  .leaders span:first-child {
86
91
  padding-right: 0.33em;
87
92
  background: white;
@@ -248,13 +253,39 @@ License: https://github.com/coderedcorp/coderedcms/blob/dev/LICENSE
248
253
  }
249
254
 
250
255
  .-fixed-img-offset {
251
- margin-top: 76px;
256
+ margin-top: 104px;
252
257
  }
253
258
 
254
259
  .-fixed-offset {
255
- margin-top: 56px;
260
+ margin-top: 104px;
261
+ }
262
+
263
+ .cjkcms-navbar-center-fixed-img-offset {
264
+ margin-top: 175px;
265
+ }
266
+
267
+ .cjkcms-navbar-center-fixed-offset {
268
+ margin-top: 104px;
269
+ }
270
+
271
+ .cjkcms-navbar-center {
272
+ text-align: center;
273
+ }
274
+
275
+ .cjkcms-navbar-center .navbar-collapse {
276
+ justify-content: center;
277
+ }
278
+
279
+ .cjkcms-navbar-center .navbar-brand {
280
+ margin: 0;
281
+ }
282
+
283
+ .cjkcms-navbar-center .navbar-brand img {
284
+ height: 150px;
285
+ width: auto;
256
286
  }
257
287
 
288
+
258
289
  [class^="container"] [class^="container"] {
259
290
  width: 100%;
260
291
  padding: 0;
@@ -300,6 +331,11 @@ License: https://github.com/coderedcorp/coderedcms/blob/dev/LICENSE
300
331
  border: gray 1px solid;
301
332
  }
302
333
 
303
- /* .form-control .is-valid {
304
- padding-right: 12px;
305
- } */
334
+ /* this can be used to create a stretched-link with a hidden button */
335
+ .zero-sized {
336
+ opacity: 0;
337
+ overflow: hidden;
338
+ height: 0;
339
+ width: 0;
340
+ display: block;
341
+ }
@@ -15,7 +15,7 @@ CJK CMS based on CodeRed CMS
15
15
  * This file must run with "pure" JavaScript - assume jQuery or any other
16
16
  * scripts are not yet loaded.
17
17
  */
18
- const libs = {
18
+ const cjkcms_libs = {
19
19
  masonry: {
20
20
  url: "https://cdn.jsdelivr.net/npm/masonry-layout@4.2.2/dist/masonry.pkgd.min.js",
21
21
  integrity: "sha256-Nn1q/fx0H7SNLZMQ5Hw5JLaTRZp0yILA/FRexe19VdI=",
@@ -116,7 +116,7 @@ document.addEventListener("DOMContentLoaded", function() {
116
116
 
117
117
  /** Masonry **/
118
118
  if (document.querySelectorAll("[data-masonry]").length > 0) {
119
- load_script(libs.masonry);
119
+ load_script(cjkcms_libs.masonry);
120
120
  }
121
121
 
122
122
  /** Film Strip Controls **/
Binary file
Binary file
Binary file