focomy 0.1.120__tar.gz → 0.1.121__tar.gz
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.
- {focomy-0.1.120 → focomy-0.1.121}/PKG-INFO +1 -1
- {focomy-0.1.120 → focomy-0.1.121}/pyproject.toml +1 -1
- {focomy-0.1.120 → focomy-0.1.121}/themes/default/templates/base.html +159 -0
- {focomy-0.1.120 → focomy-0.1.121}/.gitignore +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/LICENSE +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/README.md +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/__init__.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/admin/__init__.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/admin/routes.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/admin/url.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/api/__init__.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/api/auth.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/api/comments.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/api/entities.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/api/forms.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/api/media.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/api/relations.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/api/revisions.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/api/schema.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/api/search.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/api/seo.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/cli.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/config.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/__init__.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/audit_log.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/category.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/channel.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/comment.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/edit_lock.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/form.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/form_submission.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/menu_item.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/news.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/page.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/plugin.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/plugin_developer.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/plugin_review.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/post.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/redirect.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/scheduled_action.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/series.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/site_setting.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/tag.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/user.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/widget.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/content_types/workflow_history.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/database.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/engine/__init__.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/engine/routes.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/main.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/migrations/env.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/migrations/script.py.mako +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/migrations/versions/2038bdf6693b_add_import_jobs_table.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/migrations/versions/3a1b2c3d4e5f_add_file_hash_to_media.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/models/__init__.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/models/auth.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/models/entity.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/models/import_job.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/models/media.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/models/relation.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/models/revision.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/plugins/__init__.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/plugins/base.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/plugins/hooks.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/plugins/loader.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/plugins/manager.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/rate_limit.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/relations.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/scaffold/.env.template +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/scaffold/.gitignore.template +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/scaffold/__init__.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/scaffold/config.yaml.template +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/scaffold/themes/default/templates/archive.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/scaffold/themes/default/templates/base.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/scaffold/themes/default/templates/category.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/scaffold/themes/default/templates/home.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/scaffold/themes/default/templates/post.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/scaffold/themes/default/templates/search.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/scaffold/themes/default/theme.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/schemas/__init__.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/schemas/import_schema.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/seo/__init__.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/__init__.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/api_auth.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/assets.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/audit.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/auth.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/block_converter.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/bulk.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/cache.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/channel.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/cleanup.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/comment.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/config_priority.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/deployment.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/edit_lock.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/entity.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/export.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/field.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/formula.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/i18n.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/index.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/invite.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/link_validator.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/logging.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/mail.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/marketplace.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/marketplace_verify.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/media.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/media_cleanup.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/menu.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/migration_helpers.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/oauth.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/pagination.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/plugin_resolver.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/plugin_sandbox.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/preview.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/query_optimizer.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/rbac.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/redirect.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/relation.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/revision.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/routing.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/sanitizer.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/schedule.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/search.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/sentry.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/seo.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/settings.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/spam_filter.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/storage.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/theme.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/theme_inheritance.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/thumbnail.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/update.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/widget.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/__init__.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/acf.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/analyzer.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/constants.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/content_sanitizer.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/diff_detector.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/dry_run.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/error_collector.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/id_resolver.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/import_service.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/importer.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/link_fixer.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/media.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/preview.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/redirects.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/rest_client.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/rollback.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/verification.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/wordpress_import/wxr_parser.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/services/workflow.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/backup.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/base.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/comments.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/components/editor.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/customize.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/dashboard.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/entity_form.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/entity_list.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/forgot_password.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/import.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/link_validator.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/login.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/media.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/menus.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/plugins.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/redirects.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/reset_password.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/settings.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/sitemap.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/system.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/themes.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/templates/admin/widgets.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/themes/__init__.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/themes/customizer.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/themes/manager.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/themes/marketplace.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/core/utils.py +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/static/favicon.svg +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/blog/templates/base.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/blog/templates/home.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/blog/templates/post.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/blog/theme.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/corporate/customizations.json +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/corporate/templates/base.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/corporate/templates/home.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/corporate/templates/page.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/corporate/theme.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/default/customizations.json +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/default/templates/404.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/default/templates/500.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/default/templates/archive.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/default/templates/category.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/default/templates/channel.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/default/templates/form.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/default/templates/form_success.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/default/templates/home.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/default/templates/page.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/default/templates/post.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/default/templates/search.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/default/templates/series.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/default/theme.yaml +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/minimal/templates/base.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/minimal/templates/home.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/minimal/templates/page.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/minimal/templates/post.html +0 -0
- {focomy-0.1.120 → focomy-0.1.121}/themes/minimal/theme.yaml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: focomy
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.121
|
|
4
4
|
Summary: The Most Beautiful CMS - A metadata-driven, zero-duplicate-code content management system
|
|
5
5
|
Project-URL: Homepage, https://github.com/focomy/focomy
|
|
6
6
|
Project-URL: Documentation, https://focomy.dev/docs
|
|
@@ -334,6 +334,57 @@
|
|
|
334
334
|
flex: 1;
|
|
335
335
|
font-family: monospace;
|
|
336
336
|
}
|
|
337
|
+
.image-field {
|
|
338
|
+
display: flex;
|
|
339
|
+
flex-direction: column;
|
|
340
|
+
gap: 0.5rem;
|
|
341
|
+
}
|
|
342
|
+
.image-field input[type="url"] {
|
|
343
|
+
width: 100%;
|
|
344
|
+
padding: 0.5rem;
|
|
345
|
+
background: #0f172a;
|
|
346
|
+
border: 1px solid #374151;
|
|
347
|
+
border-radius: 4px;
|
|
348
|
+
color: white;
|
|
349
|
+
font-size: 0.75rem;
|
|
350
|
+
}
|
|
351
|
+
.image-preview {
|
|
352
|
+
width: 100%;
|
|
353
|
+
height: 60px;
|
|
354
|
+
border: 1px dashed #374151;
|
|
355
|
+
border-radius: 4px;
|
|
356
|
+
display: flex;
|
|
357
|
+
align-items: center;
|
|
358
|
+
justify-content: center;
|
|
359
|
+
background: #0f172a;
|
|
360
|
+
overflow: hidden;
|
|
361
|
+
}
|
|
362
|
+
.image-preview img {
|
|
363
|
+
max-width: 100%;
|
|
364
|
+
max-height: 100%;
|
|
365
|
+
object-fit: contain;
|
|
366
|
+
}
|
|
367
|
+
.image-preview .no-image {
|
|
368
|
+
color: #64748b;
|
|
369
|
+
font-size: 0.75rem;
|
|
370
|
+
}
|
|
371
|
+
.image-field-actions {
|
|
372
|
+
display: flex;
|
|
373
|
+
gap: 0.5rem;
|
|
374
|
+
}
|
|
375
|
+
.image-field-actions button {
|
|
376
|
+
padding: 0.25rem 0.5rem;
|
|
377
|
+
font-size: 0.6875rem;
|
|
378
|
+
background: transparent;
|
|
379
|
+
border: 1px solid #374151;
|
|
380
|
+
color: #94a3b8;
|
|
381
|
+
border-radius: 4px;
|
|
382
|
+
cursor: pointer;
|
|
383
|
+
}
|
|
384
|
+
.image-field-actions button:hover {
|
|
385
|
+
background: #374151;
|
|
386
|
+
color: white;
|
|
387
|
+
}
|
|
337
388
|
#customize-panel-footer {
|
|
338
389
|
padding: 1rem;
|
|
339
390
|
display: flex;
|
|
@@ -390,6 +441,60 @@
|
|
|
390
441
|
<button type="button" id="customize-panel-close">×</button>
|
|
391
442
|
</div>
|
|
392
443
|
<div id="customize-panel-content">
|
|
444
|
+
<div class="customize-section">
|
|
445
|
+
<h3>サイトID</h3>
|
|
446
|
+
<div class="customize-field">
|
|
447
|
+
<label>サイトロゴ</label>
|
|
448
|
+
<div class="image-field">
|
|
449
|
+
<input type="url" id="site_logo" placeholder="https://example.com/logo.png">
|
|
450
|
+
<div class="image-preview" id="site_logo_preview">
|
|
451
|
+
<span class="no-image">画像未設定</span>
|
|
452
|
+
</div>
|
|
453
|
+
<div class="image-field-actions">
|
|
454
|
+
<button type="button" onclick="clearImageField('site_logo')">クリア</button>
|
|
455
|
+
</div>
|
|
456
|
+
</div>
|
|
457
|
+
</div>
|
|
458
|
+
<div class="customize-field">
|
|
459
|
+
<label>サイトアイコン</label>
|
|
460
|
+
<div class="image-field">
|
|
461
|
+
<input type="url" id="site_icon" placeholder="https://example.com/icon.png">
|
|
462
|
+
<div class="image-preview" id="site_icon_preview">
|
|
463
|
+
<span class="no-image">画像未設定</span>
|
|
464
|
+
</div>
|
|
465
|
+
<div class="image-field-actions">
|
|
466
|
+
<button type="button" onclick="clearImageField('site_icon')">クリア</button>
|
|
467
|
+
</div>
|
|
468
|
+
</div>
|
|
469
|
+
</div>
|
|
470
|
+
</div>
|
|
471
|
+
<div class="customize-section">
|
|
472
|
+
<h3>ヘッダー・背景</h3>
|
|
473
|
+
<div class="customize-field">
|
|
474
|
+
<label>ヘッダー画像</label>
|
|
475
|
+
<div class="image-field">
|
|
476
|
+
<input type="url" id="header_image" placeholder="https://example.com/header.jpg">
|
|
477
|
+
<div class="image-preview" id="header_image_preview">
|
|
478
|
+
<span class="no-image">画像未設定</span>
|
|
479
|
+
</div>
|
|
480
|
+
<div class="image-field-actions">
|
|
481
|
+
<button type="button" onclick="clearImageField('header_image')">クリア</button>
|
|
482
|
+
</div>
|
|
483
|
+
</div>
|
|
484
|
+
</div>
|
|
485
|
+
<div class="customize-field">
|
|
486
|
+
<label>背景画像</label>
|
|
487
|
+
<div class="image-field">
|
|
488
|
+
<input type="url" id="background_image" placeholder="https://example.com/bg.jpg">
|
|
489
|
+
<div class="image-preview" id="background_image_preview">
|
|
490
|
+
<span class="no-image">画像未設定</span>
|
|
491
|
+
</div>
|
|
492
|
+
<div class="image-field-actions">
|
|
493
|
+
<button type="button" onclick="clearImageField('background_image')">クリア</button>
|
|
494
|
+
</div>
|
|
495
|
+
</div>
|
|
496
|
+
</div>
|
|
497
|
+
</div>
|
|
393
498
|
<div class="customize-section">
|
|
394
499
|
<h3>カラー</h3>
|
|
395
500
|
<div class="customize-field">
|
|
@@ -492,6 +597,12 @@
|
|
|
492
597
|
}
|
|
493
598
|
} else if (setting.id === 'custom_css') {
|
|
494
599
|
document.getElementById('custom_css').value = setting.value || '';
|
|
600
|
+
} else if (['site_logo', 'site_icon', 'header_image', 'background_image'].includes(setting.id)) {
|
|
601
|
+
const input = document.getElementById(setting.id);
|
|
602
|
+
if (input) {
|
|
603
|
+
input.value = setting.value || '';
|
|
604
|
+
updateImagePreview(setting.id, setting.value || '');
|
|
605
|
+
}
|
|
495
606
|
}
|
|
496
607
|
});
|
|
497
608
|
|
|
@@ -506,6 +617,10 @@
|
|
|
506
617
|
// Get current form values
|
|
507
618
|
function getFormValues() {
|
|
508
619
|
return {
|
|
620
|
+
site_logo: document.getElementById('site_logo').value,
|
|
621
|
+
site_icon: document.getElementById('site_icon').value,
|
|
622
|
+
header_image: document.getElementById('header_image').value,
|
|
623
|
+
background_image: document.getElementById('background_image').value,
|
|
509
624
|
color_primary: document.getElementById('color_primary').value,
|
|
510
625
|
color_background: document.getElementById('color_background').value,
|
|
511
626
|
color_text: document.getElementById('color_text').value,
|
|
@@ -587,6 +702,17 @@
|
|
|
587
702
|
resetBtn.addEventListener('click', function() {
|
|
588
703
|
if (!confirm('変更をリセットしますか?')) return;
|
|
589
704
|
|
|
705
|
+
// Image fields
|
|
706
|
+
document.getElementById('site_logo').value = originalValues.site_logo || '';
|
|
707
|
+
updateImagePreview('site_logo', originalValues.site_logo || '');
|
|
708
|
+
document.getElementById('site_icon').value = originalValues.site_icon || '';
|
|
709
|
+
updateImagePreview('site_icon', originalValues.site_icon || '');
|
|
710
|
+
document.getElementById('header_image').value = originalValues.header_image || '';
|
|
711
|
+
updateImagePreview('header_image', originalValues.header_image || '');
|
|
712
|
+
document.getElementById('background_image').value = originalValues.background_image || '';
|
|
713
|
+
updateImagePreview('background_image', originalValues.background_image || '');
|
|
714
|
+
|
|
715
|
+
// Color fields
|
|
590
716
|
document.getElementById('color_primary').value = originalValues.color_primary || '#2563eb';
|
|
591
717
|
document.getElementById('color_primary_text').value = originalValues.color_primary || '#2563eb';
|
|
592
718
|
document.getElementById('color_background').value = originalValues.color_background || '#ffffff';
|
|
@@ -619,6 +745,39 @@
|
|
|
619
745
|
timer = setTimeout(() => fn.apply(this, args), delay);
|
|
620
746
|
};
|
|
621
747
|
}
|
|
748
|
+
|
|
749
|
+
// Update image preview
|
|
750
|
+
function updateImagePreview(fieldId, url) {
|
|
751
|
+
const previewEl = document.getElementById(fieldId + '_preview');
|
|
752
|
+
if (!previewEl) return;
|
|
753
|
+
|
|
754
|
+
if (url && url.trim()) {
|
|
755
|
+
previewEl.innerHTML = '<img src="' + url + '" alt="プレビュー" onerror="this.parentElement.innerHTML=\'<span class=no-image>読み込み失敗</span>\'">';
|
|
756
|
+
} else {
|
|
757
|
+
previewEl.innerHTML = '<span class="no-image">画像未設定</span>';
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
// Clear image field (global for onclick)
|
|
762
|
+
window.clearImageField = function(fieldId) {
|
|
763
|
+
const input = document.getElementById(fieldId);
|
|
764
|
+
if (input) {
|
|
765
|
+
input.value = '';
|
|
766
|
+
updateImagePreview(fieldId, '');
|
|
767
|
+
updatePreview();
|
|
768
|
+
}
|
|
769
|
+
};
|
|
770
|
+
|
|
771
|
+
// Image URL input listeners
|
|
772
|
+
['site_logo', 'site_icon', 'header_image', 'background_image'].forEach(function(fieldId) {
|
|
773
|
+
const input = document.getElementById(fieldId);
|
|
774
|
+
if (input) {
|
|
775
|
+
input.addEventListener('input', debounce(function() {
|
|
776
|
+
updateImagePreview(fieldId, input.value);
|
|
777
|
+
updatePreview();
|
|
778
|
+
}, 300));
|
|
779
|
+
}
|
|
780
|
+
});
|
|
622
781
|
})();
|
|
623
782
|
</script>
|
|
624
783
|
{% endif %}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{focomy-0.1.120 → focomy-0.1.121}/core/migrations/versions/2038bdf6693b_add_import_jobs_table.py
RENAMED
|
File without changes
|
{focomy-0.1.120 → focomy-0.1.121}/core/migrations/versions/3a1b2c3d4e5f_add_file_hash_to_media.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|