diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2026-06-27 16:58:53 +0200 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2026-06-27 16:58:53 +0200 |
| commit | 420506e58fdfc84f1a5bede0a01dedf0af3bb4f3 (patch) | |
| tree | 57726b40e8aa9ccf80f874f39d3facefc0331420 /public/assets/tinymce/plugins/lists | |
| parent | 241d5e91b2b6716e2861cc77d319c3d3568343a8 (diff) | |
Stage 7: Rails 7.2 → 8.1 on Ruby 3.2.11
- Bump Rails to 8.1.3 (Ruby unchanged at 3.2.11, new gemset rails8-upgrade)
- config.load_defaults 8.1; merge app:update diffs for all environment files
- Remove routing-filter 0.7.0; replace with native scope '(:locale)' in
routes.rb and default_url_options in ApplicationController
- Delete config/initializers/routing_filter_rails71_patch.rb
- Replace vendored TinyMCE 3.x (~200 files) with tinymce-rails ~> 8.3;
migrate admin_interface.js from jQuery .tinymce()/advanced theme to
tinymce.init(); add config/tinymce.yml; note: TinyMCE 7+ is GPL
- rails-i18n ~> 8.0 added explicitly (previously indirect dependency)
- awesome_nested_set, acts-as-taggable-on pinned to git main/master
(gemspec activerecord < 8.1 ceiling; no functional incompatibility;
repin to version once upstream releases updated gemspecs)
- globalize ~> 7.0, libxml-ruby ~> 5.0, nokogiri ~> 1.18, pg ~> 1.5
- sass-rails, coffee-rails, uglifier moved from :assets group to main
(Sprockets 4 convention; :assets group no longer meaningful)
- Node: head, draft, lock_owner marked belongs_to optional: true
- Page: node, user, editor marked belongs_to optional: true
- Static assets in public/images/ and public/javascripts/ referenced via
plain HTML tags; Rails 8 load_defaults raises on pipeline helpers for
undeclared assets
- sessions_controller_test.rb: remove stale require and dead rescue_action
- users_controller_test.rb: assert button[type=submit] not input[type=submit]
(Rails 8 button_to renders <button> not <input>)
- test_helper.rb: node.reload after children.create! (awesome_nested_set
3.9.0 does not refresh parent in memory after callback)
- 129 runs, 339 assertions, 3 failures, 0 errors — identical baseline to 7.2
Diffstat (limited to 'public/assets/tinymce/plugins/lists')
4 files changed, 3 insertions, 0 deletions
diff --git a/public/assets/tinymce/plugins/lists/plugin-8a2f7d65361be6c4814204d000731c0521529556456630eb573c4ee3b5e93fd2.js b/public/assets/tinymce/plugins/lists/plugin-8a2f7d65361be6c4814204d000731c0521529556456630eb573c4ee3b5e93fd2.js new file mode 100644 index 0000000..5be84d1 --- /dev/null +++ b/public/assets/tinymce/plugins/lists/plugin-8a2f7d65361be6c4814204d000731c0521529556456630eb573c4ee3b5e93fd2.js | |||
| @@ -0,0 +1 @@ | |||
| !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=t=>!(t=>null==t)(t),s=t=>"function"==typeof t;const r=(t,e)=>t===e,n=()=>false;class o{tag;value;static singletonNone=new o(!1);constructor(t,e){this.tag=t,this.value=e}static some(t){return new o(!0,t)}static none(){return o.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?o.some(t(this.value)):o.none()}bind(t){return this.tag?t(this.value):o.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:o.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(t??"Called getOrDie on None")}static from(t){return e(t)?o.some(t):o.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}const a=Array.prototype.slice,i=(t,e,s)=>{for(let r=0,n=t.length;r<n;r++){const n=t[r];if(e(n,r))return o.some(n);if(s(n,r))break}return o.none()};s(Array.from)&&Array.from;const l=(t,e,s=r)=>t.exists(t=>s(t,e)),u=(c=/^\s+|\s+$/g,t=>t.replace(c,""));var c;const d=t=>{const e=(t=>{const e=a.call(t,0);return e.reverse(),e})(u(t).split("")),s=((t,e)=>{const s=t.length,r=new Array(s);for(let n=0;n<s;n++){const s=t[n];r[n]=e(s,n)}return r})(e,(t,e)=>{const s=t.toUpperCase().charCodeAt(0)-"A".charCodeAt(0)+1;return Math.pow(26,e)*s});return r=(t,e)=>t+e,n=0,((t,e)=>{for(let s=0,r=t.length;s<r;s++)e(t[s],s)})(s,(t,e)=>{n=r(n,t)}),n;var r,n},g=t=>{if(--t<0)return"";{const e=t%26,s=Math.floor(t/26);return g(s)+String.fromCharCode("A".charCodeAt(0)+e)}},m=t=>{const e=parseInt(t.start,10);return l(t.listStyleType,"upper-alpha")?g(e):l(t.listStyleType,"lower-alpha")?g(e).toLowerCase():t.start},h=t=>t.options.get("forced_root_block");const p=t=>s=>e(s)&&t.test(s.nodeName),y=p(/^(OL|UL|DL)$/),v=p(/^(TH|TD)$/),f=p(/^(LI|DT|DD)$/),b=(t,e)=>i(t,y,v).exists(t=>t.nodeName===e&&!(t=>/\btox\-/.test(t.className))(t)),C=(t,e)=>{const s=t.selection.getNode();return e({parents:t.dom.getParents(s),element:s}),t.on("NodeChange",e),()=>t.off("NodeChange",e)},L=(t,e)=>{const s=t.dom.getParent(e,"ol,ul,dl");return((t,e)=>null!==e&&!t.dom.isEditable(e))(t,s)||!t.selection.isEditable()},S=t=>e(t)&&"ol"===t.nodeName.toLowerCase(),A=["OL","UL","DL"],T=A.join(","),N=(t,e)=>{const s=e||t.selection.getStart(!0);return t.dom.getParent(s,T,w(t,s,t.selection.isCollapsed()))},w=(t,e,s)=>{const r=t.dom.getParents(e,t.dom.isBlock),o=(a=e=>(!s||(e=>e.nodeName.toLowerCase()!==h(t))(e))&&O(t.schema,e),i(r,a,n));var a;return o.getOr(t.getBody())},O=(t,e)=>!y(e)&&!f(e)&&((t,e)=>{for(let s=0,r=t.length;s<r;s++)if(e(t[s]))return!0;return!1})(A,s=>t.isValidChild(e.nodeName,s)),x=(t,e)=>s=>(s.setEnabled(t.selection.isEditable()),C(t,r=>{s.setActive(b(r.parents,e)),s.setEnabled(!L(t,r.element)&&t.selection.isEditable())})),D=(t,e)=>s=>C(t,r=>s.setEnabled(b(r.parents,e)&&!L(t,r.element)));t.add("lists",t=>((t=>{t.addCommand("mceListProps",()=>{(t=>{const e=N(t);S(e)&&!L(t,e)&&t.windowManager.open({title:"List Properties",body:{type:"panel",items:[{type:"input",name:"start",label:"Start list at number",inputMode:"numeric"}]},initialData:{start:m({start:t.dom.getAttrib(e,"start","1"),listStyleType:o.from(t.dom.getStyle(e,"list-style-type"))})},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],onSubmit:e=>{(t=>{switch((t=>/^[0-9]+$/.test(t)?2:/^[A-Z]+$/.test(t)?0:/^[a-z]+$/.test(t)?1:t.length>0?4:3)(t)){case 2:return o.some({listStyleType:o.none(),start:t});case 0:return o.some({listStyleType:o.some("upper-alpha"),start:d(t).toString()});case 1:return o.some({listStyleType:o.some("lower-alpha"),start:d(t).toString()});case 3:return o.some({listStyleType:o.none(),start:""});case 4:return o.none()}})(e.getData().start).each(e=>{t.execCommand("mceListUpdate",!1,{attrs:{start:"1"===e.start?"":e.start},styles:{"list-style-type":e.listStyleType.getOr("")}})}),e.close()}})})(t)})})(t),(t=>{const e=e=>()=>t.execCommand(e);t.hasPlugin("advlist")||(t.ui.registry.addToggleButton("numlist",{icon:"ordered-list",active:!1,tooltip:"Numbered list",onAction:e("InsertOrderedList"),onSetup:x(t,"OL")}),t.ui.registry.addToggleButton("bullist",{icon:"unordered-list",active:!1,tooltip:"Bullet list",onAction:e("InsertUnorderedList"),onSetup:x(t,"UL")}))})(t),(t=>{const e={text:"List properties...",icon:"ordered-list",onAction:()=>t.execCommand("mceListProps"),onSetup:D(t,"OL")};t.ui.registry.addMenuItem("listprops",e),t.ui.registry.addContextMenu("lists",{update:e=>{const s=N(t,e);return S(s)?["listprops"]:[]}})})(t),(t=>({backspaceDelete:e=>{t.execCommand("mceListBackspaceDelete",!1,e)}}))(t)))}(); | |||
diff --git a/public/assets/tinymce/plugins/lists/plugin-8a2f7d65361be6c4814204d000731c0521529556456630eb573c4ee3b5e93fd2.js.gz b/public/assets/tinymce/plugins/lists/plugin-8a2f7d65361be6c4814204d000731c0521529556456630eb573c4ee3b5e93fd2.js.gz new file mode 100644 index 0000000..1a1c5b4 --- /dev/null +++ b/public/assets/tinymce/plugins/lists/plugin-8a2f7d65361be6c4814204d000731c0521529556456630eb573c4ee3b5e93fd2.js.gz | |||
| Binary files differ | |||
diff --git a/public/assets/tinymce/plugins/lists/plugin.js b/public/assets/tinymce/plugins/lists/plugin.js new file mode 120000 index 0000000..8973f8e --- /dev/null +++ b/public/assets/tinymce/plugins/lists/plugin.js | |||
| @@ -0,0 +1 @@ | |||
| plugin-8a2f7d65361be6c4814204d000731c0521529556456630eb573c4ee3b5e93fd2.js \ No newline at end of file | |||
diff --git a/public/assets/tinymce/plugins/lists/plugin.js.gz b/public/assets/tinymce/plugins/lists/plugin.js.gz new file mode 120000 index 0000000..2834740 --- /dev/null +++ b/public/assets/tinymce/plugins/lists/plugin.js.gz | |||
| @@ -0,0 +1 @@ | |||
| plugin-8a2f7d65361be6c4814204d000731c0521529556456630eb573c4ee3b5e93fd2.js.gz \ No newline at end of file | |||
