json-object-editor 0.10.312 → 0.10.400
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 +8 -0
- package/best-practices.md +0 -0
- package/css/joe-styles.css +59 -1
- package/css/joe.css +59 -1
- package/js/JsonObjectEditor.jquery.craydent.js +231 -39
- package/js/joe-full.js +562 -50
- package/js/joe.js +231 -39
- package/js/plugins/48_tinymce.min.js +11 -0
- package/js/plugins/tinymce/CHANGELOG.md +3738 -0
- package/js/plugins/tinymce/icons/default/icons.min.js +1 -0
- package/js/plugins/tinymce/js/tinymce/icons/default/icons.min.js +1 -0
- package/js/plugins/tinymce/js/tinymce/langs/README.md +3 -0
- package/js/plugins/tinymce/js/tinymce/license.md +6 -0
- package/js/plugins/tinymce/js/tinymce/models/dom/model.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/accordion/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/advlist/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/anchor/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/autolink/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/autoresize/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/autosave/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/charmap/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/code/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/codesample/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/directionality/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/emoticons/js/emojiimages.js +1 -0
- package/js/plugins/tinymce/js/tinymce/plugins/emoticons/js/emojiimages.min.js +3 -0
- package/js/plugins/tinymce/js/tinymce/plugins/emoticons/js/emojis.js +1 -0
- package/js/plugins/tinymce/js/tinymce/plugins/emoticons/js/emojis.min.js +2 -0
- package/js/plugins/tinymce/js/tinymce/plugins/emoticons/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/fullscreen/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/ar.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/bg_BG.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/ca.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/cs.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/da.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/de.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/el.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/en.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/es.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/eu.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/fa.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/fi.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/fr_FR.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/he_IL.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/hi.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/hr.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/hu_HU.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/id.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/it.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/ja.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/kk.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/ko_KR.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/ms.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/nb_NO.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/nl.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/pl.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/pt_BR.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/pt_PT.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/ro.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/ru.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/sk.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/sl_SI.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/sv_SE.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/th_TH.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/tr.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/uk.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/vi.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/zh_CN.js +87 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/zh_TW.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/image/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/importcss/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/insertdatetime/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/link/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/lists/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/media/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/nonbreaking/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/pagebreak/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/preview/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/quickbars/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/save/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/searchreplace/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/table/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/visualblocks/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/visualchars/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/wordcount/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/dark/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/dark/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/default/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/default/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/document/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/document/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/tinymce-5/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/tinymce-5/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/tinymce-5-dark/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/tinymce-5-dark/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/writer/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/writer/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide/content.inline.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide/content.inline.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide/skin.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide/skin.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide-dark/content.inline.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide-dark/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide-dark/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide-dark/skin.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide-dark/skin.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5/content.inline.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5/skin.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5/skin.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5-dark/content.inline.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5-dark/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5-dark/skin.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/themes/silver/theme.min.js +332 -0
- package/js/plugins/tinymce/js/tinymce/tinymce.d.ts +3350 -0
- package/js/plugins/tinymce/js/tinymce/tinymce.min.js +331 -0
- package/js/plugins/tinymce/langs/README.md +3 -0
- package/js/plugins/tinymce/license.md +6 -0
- package/js/plugins/tinymce/models/dom/model.min.js +4 -0
- package/js/plugins/tinymce/plugins/accordion/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/advlist/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/anchor/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/autolink/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/autoresize/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/autosave/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/charmap/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/code/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/codesample/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/directionality/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/emoticons/js/emojiimages.js +1 -0
- package/js/plugins/tinymce/plugins/emoticons/js/emojiimages.min.js +3 -0
- package/js/plugins/tinymce/plugins/emoticons/js/emojis.js +1 -0
- package/js/plugins/tinymce/plugins/emoticons/js/emojis.min.js +2 -0
- package/js/plugins/tinymce/plugins/emoticons/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/fullscreen/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/ar.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/bg_BG.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/ca.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/cs.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/da.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/de.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/el.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/en.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/es.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/eu.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/fa.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/fi.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/fr_FR.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/he_IL.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/hi.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/hr.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/hu_HU.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/id.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/it.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/ja.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/kk.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/ko_KR.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/ms.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/nb_NO.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/nl.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/pl.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/pt_BR.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/pt_PT.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/ro.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/ru.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/sk.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/sl_SI.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/sv_SE.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/th_TH.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/tr.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/uk.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/vi.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/zh_CN.js +87 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/zh_TW.js +93 -0
- package/js/plugins/tinymce/plugins/help/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/image/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/importcss/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/insertdatetime/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/link/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/lists/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/media/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/nonbreaking/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/pagebreak/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/preview/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/quickbars/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/save/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/searchreplace/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/table/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/visualblocks/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/visualchars/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/wordcount/plugin.min.js +4 -0
- package/js/plugins/tinymce/skins/content/dark/content.js +1 -0
- package/js/plugins/tinymce/skins/content/dark/content.min.css +1 -0
- package/js/plugins/tinymce/skins/content/default/content.js +1 -0
- package/js/plugins/tinymce/skins/content/default/content.min.css +1 -0
- package/js/plugins/tinymce/skins/content/document/content.js +1 -0
- package/js/plugins/tinymce/skins/content/document/content.min.css +1 -0
- package/js/plugins/tinymce/skins/content/tinymce-5/content.js +1 -0
- package/js/plugins/tinymce/skins/content/tinymce-5/content.min.css +1 -0
- package/js/plugins/tinymce/skins/content/tinymce-5-dark/content.js +1 -0
- package/js/plugins/tinymce/skins/content/tinymce-5-dark/content.min.css +1 -0
- package/js/plugins/tinymce/skins/content/writer/content.js +1 -0
- package/js/plugins/tinymce/skins/content/writer/content.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide/content.inline.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide/content.inline.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide/content.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide/content.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide/skin.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide/skin.min.css +23 -0
- package/js/plugins/tinymce/skins/ui/oxide/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide - Copy/content.inline.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide - Copy/content.inline.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide - Copy/content.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide - Copy/content.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide - Copy/skin.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide - Copy/skin.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide - Copy/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide - Copy/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide-dark/content.inline.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide-dark/content.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide-dark/content.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide-dark/skin.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide-dark/skin.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5/content.inline.js +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5/content.js +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5/content.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5/skin.js +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5/skin.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5-dark/content.inline.js +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5-dark/content.js +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5-dark/skin.js +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/themes/silver/theme.min.js +332 -0
- package/js/plugins/tinymce/tinymce.d.ts +3350 -0
- package/js/plugins/tinymce/tinymce.min.js +331 -0
- package/js/plugins/tinymce.min.js +331 -11
- package/package.json +1 -1
- package/server/modules/Storage.js +58 -1
- package/server/schemas/status.js +3 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
## CHANGELOG
|
|
2
2
|
|
|
3
|
+
### 0.10.400
|
|
4
|
+
- Initial work with ai partner
|
|
5
|
+
- button field added
|
|
6
|
+
- getFromServer added to object options
|
|
7
|
+
- best practices doc added
|
|
8
|
+
|
|
3
9
|
### 0.10.300
|
|
4
10
|
- initial aws fix for bucketname
|
|
5
11
|
310 - added tag_id to tags
|
|
6
12
|
311 - fixed undefined icon bug in autocomplete
|
|
7
13
|
312 - sourcemap fixed, status subset bug fixed.
|
|
14
|
+
320 - Upgraded tinyMCE
|
|
15
|
+
321 - added code to status
|
|
8
16
|
|
|
9
17
|
### 0.10.200
|
|
10
18
|
227 - no product user select
|
|
File without changes
|
package/css/joe-styles.css
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
@charset "utf-8";
|
|
2
2
|
/* JOE UI Styles */
|
|
3
3
|
/* theme: #006688, 0,102,136*/
|
|
4
|
+
|
|
5
|
+
:root {
|
|
6
|
+
--tinymce-offset: 55px;
|
|
7
|
+
}
|
|
4
8
|
.clear{
|
|
5
9
|
clear:both;
|
|
6
10
|
}
|
|
@@ -2889,6 +2893,9 @@ joe-datepicker-holder > .Zebra_DatePicker.dp_visible {
|
|
|
2889
2893
|
margin:0;
|
|
2890
2894
|
line-height: 24px;
|
|
2891
2895
|
}
|
|
2896
|
+
.joe-object-field.button-field .joe-button {
|
|
2897
|
+
float:none;
|
|
2898
|
+
}
|
|
2892
2899
|
.joe-object-field .joe-button,
|
|
2893
2900
|
capp-card joe-button {
|
|
2894
2901
|
border-radius: 20px;
|
|
@@ -3711,7 +3718,7 @@ joe-message-holder {
|
|
|
3711
3718
|
/* background: #fff; */
|
|
3712
3719
|
overflow: hidden;
|
|
3713
3720
|
display:none;
|
|
3714
|
-
z-index:
|
|
3721
|
+
z-index:10000;
|
|
3715
3722
|
/* opacity: 1; */
|
|
3716
3723
|
}
|
|
3717
3724
|
joe-message-holder.active{
|
|
@@ -3866,7 +3873,58 @@ div.mce-fullscreen{
|
|
|
3866
3873
|
right: 0px !important;
|
|
3867
3874
|
width: auto !important;
|
|
3868
3875
|
}
|
|
3876
|
+
.tox-statusbar__branding,
|
|
3877
|
+
.tox-promotion {
|
|
3878
|
+
display: none !important;
|
|
3879
|
+
}
|
|
3880
|
+
|
|
3881
|
+
/* .tox {
|
|
3882
|
+
--tox-bg-color: #f2f2f2;
|
|
3883
|
+
--tox-toolbar-bg: #f2f2f2;
|
|
3884
|
+
--tox-sidebar-bg: #f2f2f2;
|
|
3885
|
+
--tox-dialog-bg: #f2f2f2;
|
|
3886
|
+
} */
|
|
3887
|
+
|
|
3888
|
+
/* Make sure TinyMCE UI always floats above other parts of the UI */
|
|
3889
|
+
.tox {
|
|
3890
|
+
z-index: 10000 !important;
|
|
3891
|
+
}
|
|
3892
|
+
|
|
3893
|
+
.tox-editor-container {
|
|
3894
|
+
position: relative !important;
|
|
3895
|
+
z-index: 10000 !important;
|
|
3896
|
+
}
|
|
3897
|
+
|
|
3898
|
+
/* Also ensure the panel or overlay doesn't clip dropdowns */
|
|
3899
|
+
.joe-overlay-panel,
|
|
3900
|
+
.joe-tinymce-holder {
|
|
3901
|
+
overflow: visible !important;
|
|
3902
|
+
}
|
|
3903
|
+
.tox.tox-tinymce.tox-fullscreen {
|
|
3904
|
+
left: var(--tinymce-offset) !important;
|
|
3905
|
+
top: var(--tinymce-offset) !important;
|
|
3906
|
+
|
|
3907
|
+
width: calc(100vw - var(--tinymce-offset) - 5px) !important;
|
|
3908
|
+
height: calc(100vh - var(--tinymce-offset) - 5px) !important;
|
|
3909
|
+
position: fixed !important;
|
|
3910
|
+
z-index: 20000 !important; /* stay above most UI, but still under your header/sidebar if needed */
|
|
3911
|
+
}
|
|
3869
3912
|
|
|
3913
|
+
/* Remove rounded corners and apply gold border to TinyMCE wrapper */
|
|
3914
|
+
.tox.tox-tinymce {
|
|
3915
|
+
border: 1px solid #dca042 !important;
|
|
3916
|
+
border-radius: 0 !important;
|
|
3917
|
+
}
|
|
3918
|
+
|
|
3919
|
+
/* Remove radius inside the editor area */
|
|
3920
|
+
.tox .tox-editor-container {
|
|
3921
|
+
border-radius: 0 !important;
|
|
3922
|
+
}
|
|
3923
|
+
|
|
3924
|
+
/* Optional: remove radius from content iframe too */
|
|
3925
|
+
.tox .tox-edit-area iframe {
|
|
3926
|
+
border-radius: 0 !important;
|
|
3927
|
+
}
|
|
3870
3928
|
/*-------------------------------------------------------------------->
|
|
3871
3929
|
From the Datepicker file, thanks zebra
|
|
3872
3930
|
<--------------------------------------------------------------------*/
|
package/css/joe.css
CHANGED
|
@@ -487,6 +487,10 @@
|
|
|
487
487
|
* Apache 2.0 License */.geocoder-control-input{position:absolute;left:0;top:0;background-color:#fff;background-repeat:no-repeat;background-image:url(../img/search.png);background-size:26px;border:0;padding:0;text-indent:6px;font-size:13px;height:26px;width:100%;line-height:26px;background-position:right center;cursor:pointer}.geocoder-control{width:26px;height:26px;-webkit-transition:width .175s ease-in;-moz-transition:width .175s ease-in;-ms-transition:width .175s ease-in;-o-transition:width .175s ease-in;transition:width .175s ease-in}.geocoder-control-expanded,.leaflet-touch .geocoder-control-expanded{width:275px}.geocoder-control-input.geocoder-control-loading{background-image:url(../img/loading.gif);background-size:26px}@media only screen and (min--moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2/1),only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2){.geocoder-control-input{background-image:url(../img/search@2x.png)}.geocoder-control-input.geocoder-control-loading{background-image:url(../img/loading@2x.gif)}}.geocoder-control-input:focus{outline:0;cursor:text}.geocoder-control-input::-ms-clear{display:none}.geocoder-control-suggestions{width:100%;position:absolute;top:26px;left:0;list-style:none;padding:0;margin:10px 0 0;overflow:hidden;display:none}.geocoder-control-suggestions .geocoder-control-suggestion{font-size:13px;padding:7px;background:#fff;border-top:1px solid #f1f1f1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.geocoder-control-suggestions .geocoder-control-suggestion:first-child{border:0}.geocoder-control-suggestions .geocoder-control-suggestion.geocoder-control-selected,.geocoder-control-suggestions .geocoder-control-suggestion:hover{background:#00c0ff;border-color:#00c0ff}.leaflet-right .geocoder-control-suggestions{left:auto;right:0}.leaflet-right .geocoder-control-input{left:auto;right:0}.leaflet-touch .geocoder-control{width:30px;height:30px}.leaflet-touch .geocoder-control.geocoder-control-expanded{width:275px}.leaflet-touch .geocoder-control-input{height:30px;line-height:30px;background-size:30px}.leaflet-touch .geocoder-control-suggestions{top:30px}.leaflet-oldie .geocoder-control-input,.leaflet-oldie .geocoder-control-suggestions{border:1px solid #999}@charset "utf-8";
|
|
488
488
|
/* JOE UI Styles */
|
|
489
489
|
/* theme: #006688, 0,102,136*/
|
|
490
|
+
|
|
491
|
+
:root {
|
|
492
|
+
--tinymce-offset: 55px;
|
|
493
|
+
}
|
|
490
494
|
.clear{
|
|
491
495
|
clear:both;
|
|
492
496
|
}
|
|
@@ -3375,6 +3379,9 @@ joe-datepicker-holder > .Zebra_DatePicker.dp_visible {
|
|
|
3375
3379
|
margin:0;
|
|
3376
3380
|
line-height: 24px;
|
|
3377
3381
|
}
|
|
3382
|
+
.joe-object-field.button-field .joe-button {
|
|
3383
|
+
float:none;
|
|
3384
|
+
}
|
|
3378
3385
|
.joe-object-field .joe-button,
|
|
3379
3386
|
capp-card joe-button {
|
|
3380
3387
|
border-radius: 20px;
|
|
@@ -4197,7 +4204,7 @@ joe-message-holder {
|
|
|
4197
4204
|
/* background: #fff; */
|
|
4198
4205
|
overflow: hidden;
|
|
4199
4206
|
display:none;
|
|
4200
|
-
z-index:
|
|
4207
|
+
z-index:10000;
|
|
4201
4208
|
/* opacity: 1; */
|
|
4202
4209
|
}
|
|
4203
4210
|
joe-message-holder.active{
|
|
@@ -4352,7 +4359,58 @@ div.mce-fullscreen{
|
|
|
4352
4359
|
right: 0px !important;
|
|
4353
4360
|
width: auto !important;
|
|
4354
4361
|
}
|
|
4362
|
+
.tox-statusbar__branding,
|
|
4363
|
+
.tox-promotion {
|
|
4364
|
+
display: none !important;
|
|
4365
|
+
}
|
|
4366
|
+
|
|
4367
|
+
/* .tox {
|
|
4368
|
+
--tox-bg-color: #f2f2f2;
|
|
4369
|
+
--tox-toolbar-bg: #f2f2f2;
|
|
4370
|
+
--tox-sidebar-bg: #f2f2f2;
|
|
4371
|
+
--tox-dialog-bg: #f2f2f2;
|
|
4372
|
+
} */
|
|
4373
|
+
|
|
4374
|
+
/* Make sure TinyMCE UI always floats above other parts of the UI */
|
|
4375
|
+
.tox {
|
|
4376
|
+
z-index: 10000 !important;
|
|
4377
|
+
}
|
|
4378
|
+
|
|
4379
|
+
.tox-editor-container {
|
|
4380
|
+
position: relative !important;
|
|
4381
|
+
z-index: 10000 !important;
|
|
4382
|
+
}
|
|
4383
|
+
|
|
4384
|
+
/* Also ensure the panel or overlay doesn't clip dropdowns */
|
|
4385
|
+
.joe-overlay-panel,
|
|
4386
|
+
.joe-tinymce-holder {
|
|
4387
|
+
overflow: visible !important;
|
|
4388
|
+
}
|
|
4389
|
+
.tox.tox-tinymce.tox-fullscreen {
|
|
4390
|
+
left: var(--tinymce-offset) !important;
|
|
4391
|
+
top: var(--tinymce-offset) !important;
|
|
4392
|
+
|
|
4393
|
+
width: calc(100vw - var(--tinymce-offset) - 5px) !important;
|
|
4394
|
+
height: calc(100vh - var(--tinymce-offset) - 5px) !important;
|
|
4395
|
+
position: fixed !important;
|
|
4396
|
+
z-index: 20000 !important; /* stay above most UI, but still under your header/sidebar if needed */
|
|
4397
|
+
}
|
|
4355
4398
|
|
|
4399
|
+
/* Remove rounded corners and apply gold border to TinyMCE wrapper */
|
|
4400
|
+
.tox.tox-tinymce {
|
|
4401
|
+
border: 1px solid #dca042 !important;
|
|
4402
|
+
border-radius: 0 !important;
|
|
4403
|
+
}
|
|
4404
|
+
|
|
4405
|
+
/* Remove radius inside the editor area */
|
|
4406
|
+
.tox .tox-editor-container {
|
|
4407
|
+
border-radius: 0 !important;
|
|
4408
|
+
}
|
|
4409
|
+
|
|
4410
|
+
/* Optional: remove radius from content iframe too */
|
|
4411
|
+
.tox .tox-edit-area iframe {
|
|
4412
|
+
border-radius: 0 !important;
|
|
4413
|
+
}
|
|
4356
4414
|
/*-------------------------------------------------------------------->
|
|
4357
4415
|
From the Datepicker file, thanks zebra
|
|
4358
4416
|
<--------------------------------------------------------------------*/
|
|
@@ -476,6 +476,7 @@ function JsonObjectEditor(specs){
|
|
|
476
476
|
respond_timeout = setTimeout(self.respond,200);
|
|
477
477
|
}
|
|
478
478
|
});
|
|
479
|
+
self.initButtons();
|
|
479
480
|
initialized = true;
|
|
480
481
|
self.respond();
|
|
481
482
|
endLogGroup();
|
|
@@ -483,7 +484,38 @@ function JsonObjectEditor(specs){
|
|
|
483
484
|
|
|
484
485
|
callback && callback();
|
|
485
486
|
};
|
|
487
|
+
this.initButtons = function(){
|
|
488
|
+
// 🧩 Joe Button Universal Click Handler
|
|
489
|
+
$(document).on('click', 'joe-button', function(e) {
|
|
490
|
+
e.preventDefault();
|
|
486
491
|
|
|
492
|
+
var $btn = $(this);
|
|
493
|
+
var actionName = $btn.attr('action');
|
|
494
|
+
|
|
495
|
+
if (!actionName) {
|
|
496
|
+
console.warn('No action defined for joe-button');
|
|
497
|
+
return;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
var currentObject = _joe.current ? _joe.current.object : null;
|
|
501
|
+
var currentSchema = _joe.current && _joe.current.schema;
|
|
502
|
+
var currentSchemaMethods = currentSchema ? currentSchema.methods : null;
|
|
503
|
+
|
|
504
|
+
// Priority 1: Backend async
|
|
505
|
+
if (JOE.async && typeof JOE.async[actionName] === 'function') {
|
|
506
|
+
JOE.async[actionName](currentObject, e);
|
|
507
|
+
return;
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
// Priority 2: Schema-defined client methods
|
|
511
|
+
if (currentSchemaMethods && typeof currentSchemaMethods[actionName] === 'function') {
|
|
512
|
+
currentSchemaMethods[actionName](currentObject, e);
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
console.warn('No method found for joe-button action:', actionName);
|
|
517
|
+
});
|
|
518
|
+
}
|
|
487
519
|
this.resizeOk = function(){
|
|
488
520
|
if(!$c.isMobile()){
|
|
489
521
|
return true;
|
|
@@ -3369,7 +3401,9 @@ this.renderHTMLContent = function(specs){
|
|
|
3369
3401
|
case 'color':
|
|
3370
3402
|
html+= self.renderColorField(prop);
|
|
3371
3403
|
break;
|
|
3372
|
-
|
|
3404
|
+
case 'button':
|
|
3405
|
+
html += self.renderButtonField(prop);
|
|
3406
|
+
break;
|
|
3373
3407
|
case 'group':
|
|
3374
3408
|
html+= self.renderCheckboxGroupField(prop);
|
|
3375
3409
|
break;
|
|
@@ -5565,53 +5599,110 @@ this.renderHTMLContent = function(specs){
|
|
|
5565
5599
|
var tinyconfig = {};
|
|
5566
5600
|
this.renderTinyMCEField = function(prop){
|
|
5567
5601
|
/*|{
|
|
5568
|
-
tags:'render,field,wysiwyg'
|
|
5602
|
+
tags:'render,field,wysiwyg,tinyMCE',
|
|
5569
5603
|
}|*/
|
|
5570
|
-
|
|
5571
|
-
|
|
5572
|
-
|
|
5573
|
-
|
|
5574
|
-
|
|
5575
|
-
|
|
5576
|
-
|
|
5577
|
-
|
|
5604
|
+
const locked = self.propAsFuncOrValue(prop.locked) ? 'disabled' : '';
|
|
5605
|
+
const heightStyle = (prop.height) ? `style="height:${prop.height};"` : '';
|
|
5606
|
+
const editor_id = cuid();
|
|
5607
|
+
|
|
5608
|
+
const html =
|
|
5609
|
+
`<div class="joe-tinymce-holder joe-texteditor-field joe-field wysiwyg-field"
|
|
5610
|
+
data-texteditor_id="${editor_id}"
|
|
5611
|
+
data-ftype="tinymce"
|
|
5612
|
+
data-name="${prop.name}">
|
|
5613
|
+
<textarea id="${editor_id}" class="joe-tinymce" ${locked} ${heightStyle}>${prop.value || ''}</textarea>
|
|
5614
|
+
</div>`;
|
|
5615
|
+
|
|
5578
5616
|
return html;
|
|
5579
5617
|
};
|
|
5580
5618
|
|
|
5581
5619
|
this.readyTinyMCEs = function() {
|
|
5582
5620
|
tinymce.init({
|
|
5583
5621
|
selector: ".joe-tinymce",
|
|
5584
|
-
|
|
5585
|
-
|
|
5586
|
-
|
|
5587
|
-
|
|
5588
|
-
|
|
5589
|
-
|
|
5590
|
-
|
|
5591
|
-
|
|
5592
|
-
|
|
5593
|
-
|
|
5594
|
-
|
|
5595
|
-
|
|
5596
|
-
|
|
5597
|
-
|
|
5598
|
-
|
|
5599
|
-
|
|
5600
|
-
|
|
5601
|
-
|
|
5602
|
-
|
|
5603
|
-
|
|
5604
|
-
|
|
5605
|
-
|
|
5622
|
+
base_url: '/JsonObjectEditor/js/plugins/tinymce',
|
|
5623
|
+
suffix: '.min',
|
|
5624
|
+
license_key: 'gpl',
|
|
5625
|
+
browser_spellcheck: true,
|
|
5626
|
+
contextmenu: false,
|
|
5627
|
+
content_style: `
|
|
5628
|
+
body {
|
|
5629
|
+
font-size: 16px;
|
|
5630
|
+
line-height: 21px;
|
|
5631
|
+
}
|
|
5632
|
+
`,
|
|
5633
|
+
plugins: ['table', 'wordcount', 'link', 'image', 'code', 'searchreplace', 'autoresize', 'fullscreen', 'lists'],
|
|
5634
|
+
|
|
5635
|
+
toolbar: 'fullscreen | undo redo | h1 h2 h3 h4 h5 |bold italic removeformat | bullist numlist outdent indent | code',
|
|
5636
|
+
|
|
5637
|
+
// Local TinyMCE asset paths
|
|
5638
|
+
skin_url: '/JsonObjectEditor/js/plugins/tinymce/skins/ui/oxide/',
|
|
5639
|
+
content_css:'/JsonObjectEditor/js/plugins/tinymce/skins/content/default/content.css',
|
|
5640
|
+
theme_url: '/JsonObjectEditor/js/plugins/tinymce/themes/silver/theme.min.js',
|
|
5641
|
+
icons_url: '/JsonObjectEditor/js/plugins/tinymce/icons/default/icons.min.js',
|
|
5642
|
+
|
|
5643
|
+
// Optional: hook into instance ready for dynamic height
|
|
5644
|
+
init_instance_callback: function(editor) {
|
|
5645
|
+
const textarea = editor.targetElm;
|
|
5646
|
+
const fieldContainer = textarea.closest('.wysiwyg-field');
|
|
5647
|
+
if (fieldContainer) {
|
|
5648
|
+
const fieldName = fieldContainer.getAttribute('data-name');
|
|
5649
|
+
const field = self.getField(fieldName);
|
|
5650
|
+
if (field && field.height) {
|
|
5651
|
+
const iframe = editor.getContainer().querySelector('iframe');
|
|
5652
|
+
if (iframe) {
|
|
5653
|
+
iframe.style.height = `${field.height}px`;
|
|
5654
|
+
}
|
|
5655
|
+
}
|
|
5656
|
+
}
|
|
5606
5657
|
}
|
|
5607
|
-
|
|
5608
|
-
});
|
|
5658
|
+
});
|
|
5609
5659
|
|
|
5610
5660
|
};
|
|
5661
|
+
this.cleanTinyMCEs = function(html) {
|
|
5662
|
+
const temp = document.createElement('div');
|
|
5663
|
+
temp.innerHTML = html;
|
|
5664
|
+
|
|
5665
|
+
// Loop through all elements
|
|
5666
|
+
temp.querySelectorAll('*').forEach(el => {
|
|
5667
|
+
// Remove all data-* attributes
|
|
5668
|
+
[...el.attributes].forEach(attr => {
|
|
5669
|
+
if (attr.name.startsWith('data-')) {
|
|
5670
|
+
el.removeAttribute(attr.name);
|
|
5671
|
+
}
|
|
5672
|
+
|
|
5673
|
+
// Optionally clean up some noisy inline styles
|
|
5674
|
+
if (attr.name === 'style') {
|
|
5675
|
+
const styleVal = attr.value.toLowerCase();
|
|
5676
|
+
if (
|
|
5677
|
+
styleVal.includes('font-weight: 400') ||
|
|
5678
|
+
styleVal.includes('font-family') ||
|
|
5679
|
+
styleVal.includes('white-space:pre') ||
|
|
5680
|
+
styleVal.includes('line-height') ||
|
|
5681
|
+
styleVal.includes('margin') ||
|
|
5682
|
+
styleVal.includes('orphans') || // lol
|
|
5683
|
+
styleVal.includes('widows')
|
|
5684
|
+
) {
|
|
5685
|
+
el.removeAttribute('style');
|
|
5686
|
+
}
|
|
5687
|
+
}
|
|
5688
|
+
});
|
|
5689
|
+
|
|
5690
|
+
// Clean up empty span tags (common from Google Docs)
|
|
5691
|
+
if (
|
|
5692
|
+
el.tagName === 'SPAN' &&
|
|
5693
|
+
el.attributes.length === 0 &&
|
|
5694
|
+
el.textContent.trim() === ''
|
|
5695
|
+
) {
|
|
5696
|
+
el.remove();
|
|
5697
|
+
}
|
|
5698
|
+
});
|
|
5699
|
+
|
|
5700
|
+
return temp.innerHTML;
|
|
5701
|
+
}
|
|
5611
5702
|
self.texteditors = [];
|
|
5612
5703
|
|
|
5613
5704
|
this.readyTextEditors = this.readyTinyMCEs;
|
|
5614
|
-
encapsulateFieldType('wysiwyg',self.renderTinyMCEField,{ready:self.readyTextEditors});
|
|
5705
|
+
encapsulateFieldType('wysiwyg',self.renderTinyMCEField,{ready:self.readyTextEditors,clean:this.cleanTinyMCEs});
|
|
5615
5706
|
|
|
5616
5707
|
/*----------------------------->
|
|
5617
5708
|
Y | Object Field
|
|
@@ -5663,7 +5754,59 @@ Y | Object Field
|
|
|
5663
5754
|
var html= 'passthrough';
|
|
5664
5755
|
return html;
|
|
5665
5756
|
};
|
|
5757
|
+
/*----------------------------->
|
|
5758
|
+
BTN | BTN Field
|
|
5759
|
+
<-----------------------------*/
|
|
5760
|
+
this.renderButtonField = function(prop) {
|
|
5761
|
+
/*|{
|
|
5762
|
+
tags:'render,field,button',
|
|
5763
|
+
specs:'display,method,color,schema,svg,bgcolor'
|
|
5764
|
+
}|*/
|
|
5765
|
+
var itemObj = self.current.object || {}; // support field functions needing context
|
|
5766
|
+
|
|
5767
|
+
var display = self.propAsFuncOrValue(prop.display, itemObj);
|
|
5768
|
+
var method = self.propAsFuncOrValue(prop.method, itemObj);
|
|
5769
|
+
var color = self.propAsFuncOrValue(prop.color, itemObj);
|
|
5770
|
+
var schema = self.propAsFuncOrValue(prop.schema, itemObj);
|
|
5771
|
+
var svgOverride = self.propAsFuncOrValue(prop.svg, itemObj);
|
|
5772
|
+
var title = self.propAsFuncOrValue(prop.title, itemObj);
|
|
5773
|
+
var bgcolor = self.propAsFuncOrValue(prop.bgcolor, itemObj);
|
|
5774
|
+
var cssclass = self.propAsFuncOrValue(prop.cssclass, itemObj)||' joe-nofloat';
|
|
5775
|
+
var svgMarkup = '';
|
|
5776
|
+
|
|
5777
|
+
// 1. Try to pull menuicon from schema if schema is provided
|
|
5778
|
+
if (schema && _joe && _joe.Schemas && _joe.Schemas[schema] && _joe.Schemas[schema].menuicon) {
|
|
5779
|
+
svgMarkup = _joe.Schemas[schema].menuicon;
|
|
5780
|
+
}
|
|
5781
|
+
|
|
5782
|
+
// 2. Direct SVG overrides schema icon if provided
|
|
5783
|
+
if (svgOverride) {
|
|
5784
|
+
svgMarkup = '<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">' + svgOverride + '</svg>';
|
|
5785
|
+
}
|
|
5666
5786
|
|
|
5787
|
+
// 3. Build the button
|
|
5788
|
+
var styleAttr = bgcolor ? 'style="background-color: ' + bgcolor + ';"' : '';
|
|
5789
|
+
|
|
5790
|
+
var html = '<joe-button class="joe-button joe-field '+cssclass
|
|
5791
|
+
+ (color ? ' joe-' + color + '-button' : '')
|
|
5792
|
+
+ '" name="' + (prop.name || '') + '" '
|
|
5793
|
+
+ (schema ? 'schema="' + schema + '" ' : '')
|
|
5794
|
+
+ (method ? 'action="' + method + '" ' : '')
|
|
5795
|
+
+ (color ? 'color="' + color + '" ' : '')
|
|
5796
|
+
+ (title ? 'title="' + title + '" ' : '')
|
|
5797
|
+
+ styleAttr + ' '
|
|
5798
|
+
+ 'data-btnid="' + (prop.name || '') + '">';
|
|
5799
|
+
|
|
5800
|
+
if (svgMarkup) {
|
|
5801
|
+
html += svgMarkup + ' ';
|
|
5802
|
+
}
|
|
5803
|
+
|
|
5804
|
+
html += (display || "Button") + '</joe-button>';
|
|
5805
|
+
|
|
5806
|
+
return html;
|
|
5807
|
+
};
|
|
5808
|
+
|
|
5809
|
+
encapsulateFieldType('button', self.renderButtonField);
|
|
5667
5810
|
/*----------------------------->
|
|
5668
5811
|
27 | Comments
|
|
5669
5812
|
<-----------------------------*/
|
|
@@ -7875,6 +8018,9 @@ Field Rendering Helpers
|
|
|
7875
8018
|
//var parentFind = $('.joe-overlay.active');
|
|
7876
8019
|
|
|
7877
8020
|
parentFind.find('.joe-field').each(function(){
|
|
8021
|
+
if (this.nodeName.toLowerCase() === 'joe-button') {
|
|
8022
|
+
return true; // Skip buttons, they are action elements only
|
|
8023
|
+
}
|
|
7878
8024
|
if($(this).parents('.objectList-field,.objectlist-field').length){
|
|
7879
8025
|
return true;
|
|
7880
8026
|
}
|
|
@@ -7912,7 +8058,7 @@ Field Rendering Helpers
|
|
|
7912
8058
|
case 'text':
|
|
7913
8059
|
default:
|
|
7914
8060
|
|
|
7915
|
-
prop =
|
|
8061
|
+
prop = this.getAttribute('data-name') || this.getAttribute('name')
|
|
7916
8062
|
if(prop && prop != 'undefined') {//make sure it's suppoesed to be a prop field
|
|
7917
8063
|
switch ($(this).data('ftype')) {
|
|
7918
8064
|
case 'passthrough':
|
|
@@ -7931,8 +8077,13 @@ Field Rendering Helpers
|
|
|
7931
8077
|
object[prop] =(editor)? editor.getData():self.current.object[prop];
|
|
7932
8078
|
break;
|
|
7933
8079
|
case 'tinymce':
|
|
7934
|
-
var editor = tinymce.editors.where({id:$(this).data('texteditor_id')})[0]||false;
|
|
7935
|
-
object[prop] =(editor)? editor.getContent():self.current.object[prop];
|
|
8080
|
+
// var editor = tinymce.editors.where({id:$(this).data('texteditor_id')})[0]||false;
|
|
8081
|
+
// object[prop] =(editor)? editor.getContent():self.current.object[prop];
|
|
8082
|
+
// break;
|
|
8083
|
+
var editorId = this.getAttribute('data-texteditor_id');
|
|
8084
|
+
var editor = window.tinymce?.get(editorId);
|
|
8085
|
+
object[prop] = (editor) ? editor.getContent() : self.current.object[prop];
|
|
8086
|
+
object[prop] = self.cleanTinyMCEs(object[prop]);
|
|
7936
8087
|
break;
|
|
7937
8088
|
|
|
7938
8089
|
case 'multisorter':
|
|
@@ -8062,7 +8213,48 @@ Field Rendering Helpers
|
|
|
8062
8213
|
return constructed;
|
|
8063
8214
|
//return object;
|
|
8064
8215
|
};
|
|
8065
|
-
|
|
8216
|
+
this.Object.getFromServer = function(id, specs, callback) {
|
|
8217
|
+
/*|{
|
|
8218
|
+
featured:true,
|
|
8219
|
+
tags:'load','get'
|
|
8220
|
+
description:'retrieves a fresh object from server and updates Joe current object'
|
|
8221
|
+
}|*/
|
|
8222
|
+
var specs = specs || {};
|
|
8223
|
+
var schemaName = specs.schema || _joe.current.schemaName || (_joe.current.schema && _joe.current.schema.__schemaname);
|
|
8224
|
+
var goto = (specs.goto === false)?false: true;
|
|
8225
|
+
if (!schemaName || !id) {
|
|
8226
|
+
console.warn('Cannot fetch object: missing schema or ID.');
|
|
8227
|
+
if (callback) callback(false);
|
|
8228
|
+
return;
|
|
8229
|
+
}
|
|
8230
|
+
|
|
8231
|
+
var url = '/API/object/' + schemaName + '/_id/' + id;
|
|
8232
|
+
|
|
8233
|
+
$.get(url, function(data) {
|
|
8234
|
+
if (!data || !data._id) {
|
|
8235
|
+
console.warn('No object returned from server.');
|
|
8236
|
+
if (callback) callback(false);
|
|
8237
|
+
return;
|
|
8238
|
+
}
|
|
8239
|
+
var toUpdate = _joe.search(id)[0] || false;
|
|
8240
|
+
if (toUpdate) {
|
|
8241
|
+
$.extend(true, toUpdate, data);
|
|
8242
|
+
}
|
|
8243
|
+
if(goto){
|
|
8244
|
+
if(_joe.current.object && _joe.current.object._id == data._id){
|
|
8245
|
+
//already on the same object
|
|
8246
|
+
_joe.current.object = data; // 🛠️ Fresh object loaded
|
|
8247
|
+
|
|
8248
|
+
}
|
|
8249
|
+
var specs = $.extend({},_joe.current.specs||{},{schema:schemaName,force:true}); // 🛠️ Use current view specs if available
|
|
8250
|
+
_joe.show(data, specs); // 🖌️ Full repaint using Joe system
|
|
8251
|
+
}
|
|
8252
|
+
if (callback) callback(true, data);
|
|
8253
|
+
}).fail(function(err) {
|
|
8254
|
+
console.error('Error fetching object from server:', err);
|
|
8255
|
+
if (callback) callback(false);
|
|
8256
|
+
});
|
|
8257
|
+
};
|
|
8066
8258
|
/*-------------------------------------------------------------------->
|
|
8067
8259
|
EXPORT DATA
|
|
8068
8260
|
<--------------------------------------------------------------------*/
|