alchemy_cms 7.1.0.pre.b1 → 7.1.0.pre.b2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/Gemfile +1 -1
- data/README.md +2 -2
- data/alchemy_cms.gemspec +1 -1
- data/app/assets/config/alchemy_manifest.js +3 -4
- data/app/assets/images/alchemy/missing-image.svg +1 -1
- data/app/assets/javascripts/alchemy/admin.js +0 -4
- data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +4 -4
- data/app/assets/javascripts/tinymce/icons/remixicons/icons.js +93 -0
- data/app/assets/javascripts/tinymce/plugins/alchemy_link/plugin.min.js +37 -18
- data/app/assets/stylesheets/alchemy/_variables.scss +11 -3
- data/app/assets/stylesheets/alchemy/archive.scss +5 -2
- data/app/assets/stylesheets/alchemy/buttons.scss +5 -4
- data/app/assets/stylesheets/alchemy/dialogs.scss +1 -1
- data/app/assets/stylesheets/alchemy/elements.scss +4 -5
- data/app/assets/stylesheets/tinymce/skins/content/alchemy/content.min.scss +69 -0
- data/app/assets/stylesheets/tinymce/skins/skintool.json +38 -0
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.css +711 -0
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.inline.css +705 -0
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.inline.min.css +7 -0
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.min.css +7 -0
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.mobile.css +29 -0
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.mobile.min.css +7 -0
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/fonts/tinymce-mobile.woff +0 -0
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/skin.min.scss +3798 -0
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/skin.mobile.css +677 -0
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/skin.mobile.min.css +7 -0
- data/app/controllers/alchemy/admin/pages_controller.rb +9 -4
- data/app/javascript/alchemy_admin/clipboard.js +16 -0
- data/app/javascript/alchemy_admin/components/tinymce.js +8 -20
- data/app/javascript/alchemy_admin/picture_editors.js +4 -2
- data/app/javascript/alchemy_admin/utils/debounce.js +10 -0
- data/app/javascript/alchemy_admin/utils/max.js +3 -0
- data/app/javascript/alchemy_admin.js +4 -10
- data/app/models/alchemy/page/page_naming.rb +7 -0
- data/app/models/alchemy/page.rb +2 -2
- data/app/models/alchemy/picture_variant.rb +11 -2
- data/app/models/concerns/alchemy/picture_thumbnails.rb +1 -1
- data/app/views/alchemy/admin/attachments/show.html.erb +2 -15
- data/app/views/alchemy/admin/pictures/_picture.html.erb +3 -5
- data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +1 -1
- data/app/views/alchemy/admin/resources/_filter.html.erb +1 -1
- data/app/views/alchemy/admin/resources/_per_page_select.html.erb +1 -1
- data/app/views/alchemy/admin/tinymce/_setup.html.erb +1 -2
- data/app/views/alchemy/ingredients/shared/_picture_tools.html.erb +2 -2
- data/bundles/shoelace.js +10 -0
- data/bundles/tinymce.js +20 -0
- data/config/alchemy/config.yml +11 -10
- data/config/brakeman.ignore +0 -34
- data/config/importmap.rb +9 -14
- data/config/initializers/dragonfly.rb +1 -0
- data/config/locales/alchemy.en.yml +2 -0
- data/lib/alchemy/config.rb +24 -2
- data/lib/alchemy/engine.rb +2 -1
- data/lib/alchemy/test_support/having_picture_thumbnails_examples.rb +6 -6
- data/lib/alchemy/tinymce.rb +13 -2
- data/lib/alchemy/version.rb +1 -1
- data/package.json +18 -6
- data/rollup.config.mjs +65 -0
- data/vendor/assets/stylesheets/tinymce/skins/content/default/content.min.css +1 -0
- data/vendor/javascript/clipboard.min.js +7 -0
- data/vendor/javascript/flatpickr.min.js +1 -0
- data/vendor/javascript/keymaster.min.js +1 -0
- data/vendor/javascript/rails-ujs.min.js +1 -0
- data/vendor/javascript/shoelace.min.js +995 -0
- data/vendor/javascript/sortable.min.js +7 -0
- data/vendor/javascript/tinymce.min.js +1 -0
- data/vendor/javascript/ungap-custom-elements.min.js +3 -0
- metadata +30 -38
- data/.codeclimate.yml +0 -35
- data/.editorconfig +0 -23
- data/.github/FUNDING.yml +0 -4
- data/.github/ISSUE_TEMPLATE/Bug_report.md +0 -22
- data/.github/ISSUE_TEMPLATE/Feature_request.md +0 -17
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -18
- data/.github/workflows/backport.yml +0 -36
- data/.github/workflows/brakeman-analysis.yml +0 -46
- data/.github/workflows/lint.yml +0 -37
- data/.github/workflows/stale.yml +0 -33
- data/.github/workflows/test.yml +0 -125
- data/.gitignore +0 -32
- data/.hound.yml +0 -9
- data/.localeapp/config.rb +0 -8
- data/.prettierrc +0 -6
- data/.rspec +0 -1
- data/.rubocop.yml +0 -7
- data/.standard.yml +0 -4
- data/.yardopts +0 -5
- data/app/assets/stylesheets/tinymce/skins/alchemy/content.min.css.scss +0 -94
- data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce-small.svg +0 -63
- data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce-small.ttf +0 -0
- data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce-small.woff +0 -0
- data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce.svg +0 -129
- data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce.ttf +0 -0
- data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce.woff +0 -0
- data/app/assets/stylesheets/tinymce/skins/alchemy/img/anchor.gif +0 -0
- data/app/assets/stylesheets/tinymce/skins/alchemy/img/loader.gif +0 -0
- data/app/assets/stylesheets/tinymce/skins/alchemy/img/object.gif +0 -0
- data/app/assets/stylesheets/tinymce/skins/alchemy/img/trans.gif +0 -0
- data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +0 -2077
- data/vendor/assets/javascripts/clipboard.min.js +0 -7
- data/vendor/assets/javascripts/keymaster.js +0 -296
- data/vendor/assets/javascripts/requestAnimationFrame.js +0 -31
- data/vendor/assets/javascripts/tinymce/license.txt +0 -504
- data/vendor/assets/javascripts/tinymce/tinymce.min.js +0 -2
@@ -0,0 +1,3 @@
|
|
1
|
+
/*! (c) Andrea Giammarchi @webreflection ISC */
|
2
|
+
!function(){var e=function(e,t){var n=function(e){for(var t=0,n=e.length;t<n;t++)r(e[t]);},r=function(e){var t=e.target,n=e.attributeName,r=e.oldValue;t.attributeChangedCallback(n,r,t.getAttribute(n));};return function(o,a){var l=o.constructor.observedAttributes;return l&&e(a).then((function(){new t(n).observe(o,{attributes:!0,attributeOldValue:!0,attributeFilter:l});for(var e=0,a=l.length;e<a;e++)o.hasAttribute(l[e])&&r({target:o,attributeName:l[e],oldValue:null});})),o}};function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function n(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,n){if(e){if("string"==typeof e)return t(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return "Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}(e))||n&&e&&"number"==typeof e.length){r&&(e=r);var o=0,a=function(){};return {s:a,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,i=!0,c=!1;return {s:function(){r=r.call(e);},n:function(){var e=r.next();return i=e.done,e},e:function(e){c=!0,l=e;},f:function(){try{i||null==r.return||r.return();}finally{if(c)throw l}}}}
|
3
|
+
/*! (c) Andrea Giammarchi - ISC */var r=!0,o=!1,a="querySelectorAll",l="querySelectorAll",i=self,c=i.document,u=i.Element,s=i.MutationObserver,f=i.Set,d=i.WeakMap,h=function(e){return l in e},v=[].filter,p=function(e){var t=new d,i=function(n,r){var o;if(r)for(var a,l=function(e){return e.matches||e.webkitMatchesSelector||e.msMatchesSelector}(n),i=0,c=y.length;i<c;i++)l.call(n,a=y[i])&&(t.has(n)||t.set(n,new f),(o=t.get(n)).has(a)||(o.add(a),e.handle(n,r,a)));else t.has(n)&&(o=t.get(n),t.delete(n),o.forEach((function(t){e.handle(n,r,t);})));},p=function(e){for(var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=0,r=e.length;n<r;n++)i(e[n],t);},y=e.query,g=e.root||c,m=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:MutationObserver,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:["*"],c=function t(o,l,i,c,u,s){var f,d=n(o);try{for(d.s();!(f=d.n()).done;){var h=f.value;(s||a in h)&&(u?i.has(h)||(i.add(h),c.delete(h),e(h,u)):c.has(h)||(c.add(h),i.delete(h),e(h,u)),s||t(h[a](l),l,i,c,u,r));}}catch(e){d.e(e);}finally{d.f();}},u=new l((function(e){if(i.length){var t,a=i.join(","),l=new Set,u=new Set,s=n(e);try{for(s.s();!(t=s.n()).done;){var f=t.value,d=f.addedNodes,h=f.removedNodes;c(h,a,l,u,o,o),c(d,a,l,u,r,o);}}catch(e){s.e(e);}finally{s.f();}}})),s=u.observe;return (u.observe=function(e){return s.call(u,e,{subtree:r,childList:r})})(t),u}(i,g,s,y),w=u.prototype.attachShadow;return w&&(u.prototype.attachShadow=function(e){var t=w.call(this,e);return m.observe(t),t}),y.length&&p(g[l](y)),{drop:function(e){for(var n=0,r=e.length;n<r;n++)t.delete(e[n]);},flush:function(){for(var e=m.takeRecords(),t=0,n=e.length;t<n;t++)p(v.call(e[t].removedNodes,h),!1),p(v.call(e[t].addedNodes,h),!0);},observer:m,parse:p}},y=self,g=y.document,m=y.Map,w=y.MutationObserver,b=y.Object,E=y.Set,S=y.WeakMap,A=y.Element,M=y.HTMLElement,O=y.Node,N=y.Error,C=y.TypeError,T=y.Reflect,q=b.defineProperty,D=b.keys,I=b.getOwnPropertyNames,P=b.setPrototypeOf,k=!self.customElements,L=function(e){for(var t=D(e),n=[],r=new E,o=t.length,a=0;a<o;a++){n[a]=e[t[a]];try{delete e[t[a]];}catch(e){r.add(a);}}return function(){for(var a=0;a<o;a++)r.has(a)||(e[t[a]]=n[a]);}};if(k){var x=function(){var e=this.constructor;if(!$.has(e))throw new C("Illegal constructor");var t=$.get(e);if(W)return F(W,t);var n=H.call(g,t);return F(P(n,e.prototype),t)},H=g.createElement,$=new m,_=new m,j=new m,R=new m,V=[],U=p({query:V,handle:function(e,t,n){var r=j.get(n);if(t&&!r.isPrototypeOf(e)){var o=L(e);W=P(e,r);try{new r.constructor;}finally{W=null,o();}}var a="".concat(t?"":"dis","connectedCallback");a in r&&e[a]();}}).parse,W=null,B=function(e){if(!_.has(e)){var t,n=new Promise((function(e){t=e;}));_.set(e,{$:n,_:t});}return _.get(e).$},F=e(B,w);self.customElements={define:function(e,t){if(R.has(e))throw new N('the name "'.concat(e,'" has already been used with this registry'));$.set(t,e),j.set(e,t.prototype),R.set(e,t),V.push(e),B(e).then((function(){U(g.querySelectorAll(e));})),_.get(e)._(t);},get:function(e){return R.get(e)},whenDefined:B},q(x.prototype=M.prototype,"constructor",{value:x}),self.HTMLElement=x,g.createElement=function(e,t){var n=t&&t.is,r=n?R.get(n):R.get(e);return r?new r:H.call(g,e)},"isConnected"in O.prototype||q(O.prototype,"isConnected",{configurable:!0,get:function(){return !(this.ownerDocument.compareDocumentPosition(this)&this.DOCUMENT_POSITION_DISCONNECTED)}});}else if(k=!self.customElements.get("extends-br"))try{var z=function e(){return self.Reflect.construct(HTMLBRElement,[],e)};z.prototype=HTMLLIElement.prototype;var G="extends-br";self.customElements.define("extends-br",z,{extends:"br"}),k=g.createElement("br",{is:G}).outerHTML.indexOf(G)<0;var J=self.customElements,K=J.get,Q=J.whenDefined;self.customElements.whenDefined=function(e){var t=this;return Q.call(this,e).then((function(n){return n||K.call(t,e)}))};}catch(e){}if(k){var X=function(e){var t=ae.get(e);ve(t.querySelectorAll(this),e.isConnected);},Y=self.customElements,Z=g.createElement,ee=Y.define,te=Y.get,ne=Y.upgrade,re=T||{construct:function(e){return e.call(this)}},oe=re.construct,ae=new S,le=new E,ie=new m,ce=new m,ue=new m,se=new m,fe=[],de=[],he=function(e){return se.get(e)||te.call(Y,e)},ve=p({query:de,handle:function(e,t,n){var r=ue.get(n);if(t&&!r.isPrototypeOf(e)){var o=L(e);we=P(e,r);try{new r.constructor;}finally{we=null,o();}}var a="".concat(t?"":"dis","connectedCallback");a in r&&e[a]();}}).parse,pe=p({query:fe,handle:function(e,t){ae.has(e)&&(t?le.add(e):le.delete(e),de.length&&X.call(de,e));}}).parse,ye=A.prototype.attachShadow;ye&&(A.prototype.attachShadow=function(e){var t=ye.call(this,e);return ae.set(this,t),t});var ge=function(e){if(!ce.has(e)){var t,n=new Promise((function(e){t=e;}));ce.set(e,{$:n,_:t});}return ce.get(e).$},me=e(ge,w),we=null;I(self).filter((function(e){return /^HTML.*Element$/.test(e)})).forEach((function(e){var t=self[e];function n(){var e=this.constructor;if(!ie.has(e))throw new C("Illegal constructor");var n=ie.get(e),r=n.is,o=n.tag;if(r){if(we)return me(we,r);var a=Z.call(g,o);return a.setAttribute("is",r),me(P(a,e.prototype),r)}return oe.call(this,t,[],e)}q(n.prototype=t.prototype,"constructor",{value:n}),q(self,e,{value:n});})),g.createElement=function(e,t){var n=t&&t.is;if(n){var r=se.get(n);if(r&&ie.get(r).tag===e)return new r}var o=Z.call(g,e);return n&&o.setAttribute("is",n),o},Y.get=he,Y.whenDefined=ge,Y.upgrade=function(e){var t=e.getAttribute("is");if(t){var n=se.get(t);if(n)return void me(P(e,n.prototype),t)}ne.call(Y,e);},Y.define=function(e,t,n){if(he(e))throw new N("'".concat(e,"' has already been defined as a custom element"));var r,o=n&&n.extends;ie.set(t,o?{is:e,tag:o}:{is:"",tag:e}),o?(r="".concat(o,'[is="').concat(e,'"]'),ue.set(r,t.prototype),se.set(e,t),de.push(r)):(ee.apply(Y,arguments),fe.push(r=e)),ge(e).then((function(){o?(ve(g.querySelectorAll(r)),le.forEach(X,[r])):pe(g.querySelectorAll(r));})),ce.get(e)._(t);};}}();
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alchemy_cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.1.0.pre.
|
4
|
+
version: 7.1.0.pre.b2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas von Deyen
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date:
|
16
|
+
date: 2024-01-09 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: actionmailer
|
@@ -718,25 +718,6 @@ executables: []
|
|
718
718
|
extensions: []
|
719
719
|
extra_rdoc_files: []
|
720
720
|
files:
|
721
|
-
- ".codeclimate.yml"
|
722
|
-
- ".editorconfig"
|
723
|
-
- ".github/FUNDING.yml"
|
724
|
-
- ".github/ISSUE_TEMPLATE/Bug_report.md"
|
725
|
-
- ".github/ISSUE_TEMPLATE/Feature_request.md"
|
726
|
-
- ".github/PULL_REQUEST_TEMPLATE.md"
|
727
|
-
- ".github/workflows/backport.yml"
|
728
|
-
- ".github/workflows/brakeman-analysis.yml"
|
729
|
-
- ".github/workflows/lint.yml"
|
730
|
-
- ".github/workflows/stale.yml"
|
731
|
-
- ".github/workflows/test.yml"
|
732
|
-
- ".gitignore"
|
733
|
-
- ".hound.yml"
|
734
|
-
- ".localeapp/config.rb"
|
735
|
-
- ".prettierrc"
|
736
|
-
- ".rspec"
|
737
|
-
- ".rubocop.yml"
|
738
|
-
- ".standard.yml"
|
739
|
-
- ".yardopts"
|
740
721
|
- CHANGELOG.md
|
741
722
|
- CODE_OF_CONDUCT.md
|
742
723
|
- CONTRIBUTING.md
|
@@ -774,6 +755,7 @@ files:
|
|
774
755
|
- app/assets/javascripts/alchemy/templates/node_folder.hbs
|
775
756
|
- app/assets/javascripts/alchemy/templates/page.hbs
|
776
757
|
- app/assets/javascripts/alchemy/templates/page_folder.hbs
|
758
|
+
- app/assets/javascripts/tinymce/icons/remixicons/icons.js
|
777
759
|
- app/assets/javascripts/tinymce/plugins/alchemy_link/plugin.min.js
|
778
760
|
- app/assets/stylesheets/alchemy/_custom-properties.scss
|
779
761
|
- app/assets/stylesheets/alchemy/_defaults.scss
|
@@ -824,18 +806,18 @@ files:
|
|
824
806
|
- app/assets/stylesheets/alchemy/typography.scss
|
825
807
|
- app/assets/stylesheets/alchemy/upload.scss
|
826
808
|
- app/assets/stylesheets/alchemy/welcome.sass
|
827
|
-
- app/assets/stylesheets/tinymce/skins/alchemy/content.min.
|
828
|
-
- app/assets/stylesheets/tinymce/skins/
|
829
|
-
- app/assets/stylesheets/tinymce/skins/alchemy/
|
830
|
-
- app/assets/stylesheets/tinymce/skins/alchemy/
|
831
|
-
- app/assets/stylesheets/tinymce/skins/alchemy/
|
832
|
-
- app/assets/stylesheets/tinymce/skins/alchemy/
|
833
|
-
- app/assets/stylesheets/tinymce/skins/alchemy/
|
834
|
-
- app/assets/stylesheets/tinymce/skins/alchemy/
|
835
|
-
- app/assets/stylesheets/tinymce/skins/alchemy/
|
836
|
-
- app/assets/stylesheets/tinymce/skins/alchemy/
|
837
|
-
- app/assets/stylesheets/tinymce/skins/alchemy/
|
838
|
-
- app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css
|
809
|
+
- app/assets/stylesheets/tinymce/skins/content/alchemy/content.min.scss
|
810
|
+
- app/assets/stylesheets/tinymce/skins/skintool.json
|
811
|
+
- app/assets/stylesheets/tinymce/skins/ui/alchemy/content.css
|
812
|
+
- app/assets/stylesheets/tinymce/skins/ui/alchemy/content.inline.css
|
813
|
+
- app/assets/stylesheets/tinymce/skins/ui/alchemy/content.inline.min.css
|
814
|
+
- app/assets/stylesheets/tinymce/skins/ui/alchemy/content.min.css
|
815
|
+
- app/assets/stylesheets/tinymce/skins/ui/alchemy/content.mobile.css
|
816
|
+
- app/assets/stylesheets/tinymce/skins/ui/alchemy/content.mobile.min.css
|
817
|
+
- app/assets/stylesheets/tinymce/skins/ui/alchemy/fonts/tinymce-mobile.woff
|
818
|
+
- app/assets/stylesheets/tinymce/skins/ui/alchemy/skin.min.scss
|
819
|
+
- app/assets/stylesheets/tinymce/skins/ui/alchemy/skin.mobile.css
|
820
|
+
- app/assets/stylesheets/tinymce/skins/ui/alchemy/skin.mobile.min.css
|
839
821
|
- app/components/alchemy/admin/node_select.rb
|
840
822
|
- app/components/alchemy/admin/page_select.rb
|
841
823
|
- app/components/alchemy/ingredients/audio_view.rb
|
@@ -902,6 +884,7 @@ files:
|
|
902
884
|
- app/helpers/alchemy/pages_helper.rb
|
903
885
|
- app/helpers/alchemy/url_helper.rb
|
904
886
|
- app/javascript/alchemy_admin.js
|
887
|
+
- app/javascript/alchemy_admin/clipboard.js
|
905
888
|
- app/javascript/alchemy_admin/components/alchemy_html_element.js
|
906
889
|
- app/javascript/alchemy_admin/components/button.js
|
907
890
|
- app/javascript/alchemy_admin/components/char_counter.js
|
@@ -943,9 +926,11 @@ files:
|
|
943
926
|
- app/javascript/alchemy_admin/spinner.js
|
944
927
|
- app/javascript/alchemy_admin/tags_autocomplete.js
|
945
928
|
- app/javascript/alchemy_admin/utils/ajax.js
|
929
|
+
- app/javascript/alchemy_admin/utils/debounce.js
|
946
930
|
- app/javascript/alchemy_admin/utils/dom_helpers.js
|
947
931
|
- app/javascript/alchemy_admin/utils/events.js
|
948
932
|
- app/javascript/alchemy_admin/utils/format.js
|
933
|
+
- app/javascript/alchemy_admin/utils/max.js
|
949
934
|
- app/javascript/alchemy_admin/utils/string_conversions.js
|
950
935
|
- app/javascript/menubar.js
|
951
936
|
- app/jobs/alchemy/base_job.rb
|
@@ -1248,6 +1233,8 @@ files:
|
|
1248
1233
|
- bin/rspec
|
1249
1234
|
- bin/setup
|
1250
1235
|
- bin/start
|
1236
|
+
- bundles/shoelace.js
|
1237
|
+
- bundles/tinymce.js
|
1251
1238
|
- config/alchemy/config.yml
|
1252
1239
|
- config/alchemy/modules.yml
|
1253
1240
|
- config/brakeman.ignore
|
@@ -1388,22 +1375,27 @@ files:
|
|
1388
1375
|
- lib/tasks/alchemy/upgrade.rake
|
1389
1376
|
- lib/tasks/alchemy/usage.rake
|
1390
1377
|
- package.json
|
1378
|
+
- rollup.config.mjs
|
1391
1379
|
- vendor/assets/fonts/remixicon.eot
|
1392
1380
|
- vendor/assets/fonts/remixicon.svg
|
1393
1381
|
- vendor/assets/fonts/remixicon.ttf
|
1394
1382
|
- vendor/assets/fonts/remixicon.woff
|
1395
1383
|
- vendor/assets/fonts/remixicon.woff2
|
1396
1384
|
- vendor/assets/images/Jcrop.gif
|
1397
|
-
- vendor/assets/javascripts/clipboard.min.js
|
1398
1385
|
- vendor/assets/javascripts/jquery_plugins/jquery.Jcrop.min.js
|
1399
1386
|
- vendor/assets/javascripts/jquery_plugins/select2.js
|
1400
|
-
- vendor/assets/javascripts/keymaster.js
|
1401
|
-
- vendor/assets/javascripts/requestAnimationFrame.js
|
1402
|
-
- vendor/assets/javascripts/tinymce/license.txt
|
1403
|
-
- vendor/assets/javascripts/tinymce/tinymce.min.js
|
1404
1387
|
- vendor/assets/stylesheets/alchemy_admin/select2.scss
|
1405
1388
|
- vendor/assets/stylesheets/jquery.Jcrop.min.scss
|
1406
1389
|
- vendor/assets/stylesheets/remixicon.scss
|
1390
|
+
- vendor/assets/stylesheets/tinymce/skins/content/default/content.min.css
|
1391
|
+
- vendor/javascript/clipboard.min.js
|
1392
|
+
- vendor/javascript/flatpickr.min.js
|
1393
|
+
- vendor/javascript/keymaster.min.js
|
1394
|
+
- vendor/javascript/rails-ujs.min.js
|
1395
|
+
- vendor/javascript/shoelace.min.js
|
1396
|
+
- vendor/javascript/sortable.min.js
|
1397
|
+
- vendor/javascript/tinymce.min.js
|
1398
|
+
- vendor/javascript/ungap-custom-elements.min.js
|
1407
1399
|
homepage: https://alchemy-cms.com
|
1408
1400
|
licenses:
|
1409
1401
|
- BSD New
|
data/.codeclimate.yml
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
---
|
2
|
-
engines:
|
3
|
-
brakeman:
|
4
|
-
enabled: true
|
5
|
-
csslint:
|
6
|
-
enabled: false
|
7
|
-
coffeelint:
|
8
|
-
enabled: false
|
9
|
-
duplication:
|
10
|
-
enabled: true
|
11
|
-
exclude_paths:
|
12
|
-
- "lib/alchemy/permissions.rb"
|
13
|
-
- "lib/alchemy/tasks/tidy.rb"
|
14
|
-
- "lib/tasks/alchemy/upgrade.rake"
|
15
|
-
config:
|
16
|
-
languages:
|
17
|
-
- ruby
|
18
|
-
eslint:
|
19
|
-
enabled: false
|
20
|
-
fixme:
|
21
|
-
enabled: false
|
22
|
-
rubocop:
|
23
|
-
enabled: false
|
24
|
-
ratings:
|
25
|
-
paths:
|
26
|
-
- Gemfile.lock
|
27
|
-
- "**.erb"
|
28
|
-
- "**.rb"
|
29
|
-
exclude_paths:
|
30
|
-
- "config/"
|
31
|
-
- "db/"
|
32
|
-
- "spec/"
|
33
|
-
- "lib/alchemy/upgrader/"
|
34
|
-
- "lib/rails/"
|
35
|
-
- "vendor/assets/"
|
data/.editorconfig
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
# EditorConfig is awesome: http://EditorConfig.org
|
2
|
-
|
3
|
-
# top-most EditorConfig file
|
4
|
-
root = true
|
5
|
-
|
6
|
-
# Unix-style newlines with a newline ending every file
|
7
|
-
[*]
|
8
|
-
charset = utf-8
|
9
|
-
end_of_line = lf
|
10
|
-
indent_size = 2
|
11
|
-
indent_style = space
|
12
|
-
insert_final_newline = true
|
13
|
-
trim_trailing_whitespace = true
|
14
|
-
tab_width = 2
|
15
|
-
|
16
|
-
[**.rb]
|
17
|
-
max_line_length = 100
|
18
|
-
|
19
|
-
[**.js, **.coffee]
|
20
|
-
max_line_length = 100
|
21
|
-
|
22
|
-
[*.md]
|
23
|
-
trim_trailing_whitespace = false
|
data/.github/FUNDING.yml
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
---
|
2
|
-
name: Bug report
|
3
|
-
about: Create a report to help us improve
|
4
|
-
|
5
|
-
---
|
6
|
-
|
7
|
-
### Steps to reproduce
|
8
|
-
|
9
|
-
How can we make this happen
|
10
|
-
|
11
|
-
### Expected behavior
|
12
|
-
|
13
|
-
Tell us what should happen
|
14
|
-
|
15
|
-
### Actual behavior
|
16
|
-
|
17
|
-
Tell us what happens instead
|
18
|
-
|
19
|
-
### System configuration
|
20
|
-
|
21
|
-
- Alchemy Version:
|
22
|
-
- Rails Version:
|
@@ -1,17 +0,0 @@
|
|
1
|
-
---
|
2
|
-
name: Feature request
|
3
|
-
about: Suggest an idea for this project
|
4
|
-
|
5
|
-
---
|
6
|
-
|
7
|
-
**Is your feature request related to a problem? Please describe.**
|
8
|
-
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
9
|
-
|
10
|
-
**Describe the solution you'd like**
|
11
|
-
A clear and concise description of what you want to happen.
|
12
|
-
|
13
|
-
**Describe alternatives you've considered**
|
14
|
-
A clear and concise description of any alternative solutions or features you've considered.
|
15
|
-
|
16
|
-
**Additional context**
|
17
|
-
Add any other context or screenshots about the feature request here.
|
@@ -1,18 +0,0 @@
|
|
1
|
-
## What is this pull request for?
|
2
|
-
|
3
|
-
Describe you pull request here...
|
4
|
-
|
5
|
-
Closes #<issue number> (Remove if not related to any issue)
|
6
|
-
|
7
|
-
### Notable changes (remove if none)
|
8
|
-
|
9
|
-
Explain any changes (maybe breaking?) that have been made.
|
10
|
-
|
11
|
-
### Screenshots
|
12
|
-
|
13
|
-
Remove if no visual changes have been made.
|
14
|
-
|
15
|
-
## Checklist
|
16
|
-
- [ ] I have followed [Pull Request guidelines](https://github.com/AlchemyCMS/alchemy_cms/blob/main/CONTRIBUTING.md)
|
17
|
-
- [ ] I have added a detailed description into each commit message
|
18
|
-
- [ ] I have added tests to cover this change
|
@@ -1,36 +0,0 @@
|
|
1
|
-
name: Backport
|
2
|
-
|
3
|
-
on:
|
4
|
-
pull_request_target:
|
5
|
-
types:
|
6
|
-
- closed
|
7
|
-
- labeled
|
8
|
-
|
9
|
-
jobs:
|
10
|
-
backport:
|
11
|
-
name: Backport
|
12
|
-
runs-on: ubuntu-latest
|
13
|
-
# Only react to merged PRs for security reasons.
|
14
|
-
# See https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target.
|
15
|
-
if: >
|
16
|
-
github.event.pull_request.merged
|
17
|
-
&& (
|
18
|
-
github.event.action == 'closed'
|
19
|
-
|| (
|
20
|
-
github.event.action == 'labeled'
|
21
|
-
&& contains(github.event.label.name, 'backport')
|
22
|
-
)
|
23
|
-
)
|
24
|
-
steps:
|
25
|
-
- name: Backport pull request
|
26
|
-
uses: sqren/backport-github-action@v8.9.7
|
27
|
-
with:
|
28
|
-
github_token: ${{ secrets.ALCHEMY_CI_BOT_ACCESS_TOKEN }}
|
29
|
-
auto_backport_label_prefix: backport-to-
|
30
|
-
add_original_reviewers: true
|
31
|
-
- name: Info log
|
32
|
-
if: ${{ success() }}
|
33
|
-
run: cat ~/.backport/backport.info.log
|
34
|
-
- name: Debug log
|
35
|
-
if: ${{ failure() }}
|
36
|
-
run: cat ~/.backport/backport.debug.log
|
@@ -1,46 +0,0 @@
|
|
1
|
-
# This workflow integrates Brakeman with GitHub's Code Scanning feature
|
2
|
-
# Brakeman is a static analysis security vulnerability scanner for Ruby on Rails applications
|
3
|
-
|
4
|
-
name: Brakeman Scan
|
5
|
-
|
6
|
-
on:
|
7
|
-
push:
|
8
|
-
branches: [main]
|
9
|
-
pull_request:
|
10
|
-
# The branches below must be a subset of the branches above
|
11
|
-
branches: [main]
|
12
|
-
schedule:
|
13
|
-
- cron: "40 4 * * 2"
|
14
|
-
|
15
|
-
jobs:
|
16
|
-
brakeman-scan:
|
17
|
-
name: Brakeman Scan
|
18
|
-
runs-on: ubuntu-latest
|
19
|
-
steps:
|
20
|
-
# Checkout the repository to the GitHub Actions runner
|
21
|
-
- name: Checkout
|
22
|
-
uses: actions/checkout@v3
|
23
|
-
|
24
|
-
# Customize the ruby version depending on your needs
|
25
|
-
- name: Set up Ruby
|
26
|
-
uses: ruby/setup-ruby@v1
|
27
|
-
with:
|
28
|
-
ruby-version: "3.0"
|
29
|
-
|
30
|
-
- name: Setup Brakeman
|
31
|
-
env:
|
32
|
-
BRAKEMAN_VERSION: "5.4" # SARIF support is provided in Brakeman version 4.10+
|
33
|
-
run: |
|
34
|
-
gem install brakeman --version $BRAKEMAN_VERSION
|
35
|
-
|
36
|
-
# Execute Brakeman CLI and generate a SARIF output with the security issues identified during the analysis
|
37
|
-
- name: Scan
|
38
|
-
continue-on-error: true
|
39
|
-
run: |
|
40
|
-
brakeman -f sarif -o output.sarif.json .
|
41
|
-
|
42
|
-
# Upload the SARIF file generated in the previous step
|
43
|
-
- name: Upload SARIF
|
44
|
-
uses: github/codeql-action/upload-sarif@v2
|
45
|
-
with:
|
46
|
-
sarif_file: output.sarif.json
|
data/.github/workflows/lint.yml
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
name: Lint
|
2
|
-
|
3
|
-
on: [pull_request]
|
4
|
-
|
5
|
-
jobs:
|
6
|
-
Standard:
|
7
|
-
runs-on: ubuntu-latest
|
8
|
-
steps:
|
9
|
-
- name: Checkout code
|
10
|
-
uses: actions/checkout@v3
|
11
|
-
- name: Install Ruby and gems
|
12
|
-
uses: ruby/setup-ruby@v1
|
13
|
-
with:
|
14
|
-
ruby-version: "3.0"
|
15
|
-
bundler-cache: true
|
16
|
-
- name: Lint Ruby files
|
17
|
-
run: bundle exec standardrb
|
18
|
-
Prettier:
|
19
|
-
runs-on: ubuntu-latest
|
20
|
-
steps:
|
21
|
-
- name: Checkout
|
22
|
-
uses: actions/checkout@v3
|
23
|
-
- name: Setup Node
|
24
|
-
uses: actions/setup-node@v3
|
25
|
-
with:
|
26
|
-
node-version: "18"
|
27
|
-
- name: Restore node_modules cache
|
28
|
-
uses: actions/cache@v3
|
29
|
-
with:
|
30
|
-
path: node_modules
|
31
|
-
key: ${{ runner.os }}-node-modules-${{ hashFiles('package.json') }}
|
32
|
-
restore-keys: |
|
33
|
-
${{ runner.os }}-node-modules
|
34
|
-
- name: Install dependencies
|
35
|
-
run: yarn install
|
36
|
-
- name: Lint code
|
37
|
-
run: yarn lint
|
data/.github/workflows/stale.yml
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
name: Mark stale issues and pull requests
|
2
|
-
|
3
|
-
on:
|
4
|
-
schedule:
|
5
|
-
- cron: "0 0 * * *"
|
6
|
-
|
7
|
-
jobs:
|
8
|
-
stale:
|
9
|
-
runs-on: ubuntu-latest
|
10
|
-
|
11
|
-
steps:
|
12
|
-
- uses: actions/stale@v5
|
13
|
-
with:
|
14
|
-
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
15
|
-
days-before-issue-stale: 180
|
16
|
-
days-before-close: 30
|
17
|
-
stale-issue-message: |
|
18
|
-
This issue has not seen any activity in a long time.
|
19
|
-
Please create a pull request with a fix or ask someone of the community if they can help.
|
20
|
-
This issue will be closed in 7 days if no further activity happens.
|
21
|
-
close-issue-message: |
|
22
|
-
This issue has not seen any activity in a long time.
|
23
|
-
If the issue described still exists in recent versions of Alchemy,
|
24
|
-
please open a new issue with. Thanks for reporting.
|
25
|
-
stale-pr-message: |
|
26
|
-
This pull request has not seen any activiy in a long time.
|
27
|
-
Probably because of missing tests or a necessary rebase.
|
28
|
-
This PR will be closed in 7 days if no further activity happens.
|
29
|
-
close-pr-message: |
|
30
|
-
This pull request has not seen any activiy in a long time.
|
31
|
-
Probably because of missing tests or a necessary rebase.
|
32
|
-
Please open a new PR to latest main if you want to continue working on this.
|
33
|
-
Thanks for the contribution.
|
data/.github/workflows/test.yml
DELETED
@@ -1,125 +0,0 @@
|
|
1
|
-
name: Test
|
2
|
-
|
3
|
-
on: [push, pull_request]
|
4
|
-
|
5
|
-
jobs:
|
6
|
-
RSpec:
|
7
|
-
runs-on: ubuntu-latest
|
8
|
-
strategy:
|
9
|
-
fail-fast: false
|
10
|
-
matrix:
|
11
|
-
rails:
|
12
|
-
- "7.0"
|
13
|
-
- "7.1"
|
14
|
-
ruby:
|
15
|
-
- "3.0"
|
16
|
-
- "3.1"
|
17
|
-
- "3.2"
|
18
|
-
- "3.3"
|
19
|
-
database:
|
20
|
-
- mysql
|
21
|
-
- postgresql
|
22
|
-
- mariadb
|
23
|
-
env:
|
24
|
-
DB: ${{ matrix.database }}
|
25
|
-
DB_USER: alchemy_user
|
26
|
-
DB_PASSWORD: password
|
27
|
-
DB_HOST: "127.0.0.1"
|
28
|
-
RAILS_ENV: test
|
29
|
-
RAILS_VERSION: ${{ matrix.rails }}
|
30
|
-
RUBY_YJIT_ENABLE: "1"
|
31
|
-
services:
|
32
|
-
postgres:
|
33
|
-
image: postgres:11
|
34
|
-
env:
|
35
|
-
POSTGRES_USER: alchemy_user
|
36
|
-
POSTGRES_PASSWORD: password
|
37
|
-
POSTGRES_DB: alchemy_cms_dummy_test
|
38
|
-
ports: ["5432:5432"]
|
39
|
-
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
40
|
-
mysql:
|
41
|
-
image: mysql:latest
|
42
|
-
ports: ["3306:3306"]
|
43
|
-
env:
|
44
|
-
MYSQL_USER: alchemy_user
|
45
|
-
MYSQL_PASSWORD: password
|
46
|
-
MYSQL_DATABASE: alchemy_cms_dummy_test
|
47
|
-
MYSQL_ROOT_PASSWORD: password
|
48
|
-
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=5
|
49
|
-
mariadb:
|
50
|
-
image: mariadb:latest
|
51
|
-
ports: ["3307:3306"]
|
52
|
-
env:
|
53
|
-
MARIADB_USER: alchemy_user
|
54
|
-
MARIADB_PASSWORD: password
|
55
|
-
MARIADB_DATABASE: alchemy_cms_dummy_test
|
56
|
-
MARIADB_ROOT_PASSWORD: password
|
57
|
-
options: --health-cmd="mariadb-admin ping" --health-interval=10s --health-timeout=5s --health-retries=5
|
58
|
-
steps:
|
59
|
-
- uses: actions/checkout@v3
|
60
|
-
- name: Set up Ruby
|
61
|
-
uses: ruby/setup-ruby@v1
|
62
|
-
with:
|
63
|
-
ruby-version: ${{ matrix.ruby }}
|
64
|
-
bundler-cache: true
|
65
|
-
- name: Restore apt cache
|
66
|
-
id: apt-cache
|
67
|
-
uses: actions/cache@v3
|
68
|
-
with:
|
69
|
-
path: /home/runner/apt/cache
|
70
|
-
key: ${{ runner.os }}-apt-${{ matrix.database }}
|
71
|
-
restore-keys: |
|
72
|
-
${{ runner.os }}-apt-
|
73
|
-
- name: Install Postgres headers
|
74
|
-
if: matrix.database == 'postgresql'
|
75
|
-
run: |
|
76
|
-
mkdir -p /home/runner/apt/cache
|
77
|
-
sudo apt update -qq
|
78
|
-
sudo apt install -qq --fix-missing libpq-dev -o dir::cache::archives="/home/runner/apt/cache"
|
79
|
-
sudo chown -R runner /home/runner/apt/cache
|
80
|
-
- name: Install MySQL headers
|
81
|
-
if: matrix.database == 'mysql' || matrix.database == 'mariadb'
|
82
|
-
run: |
|
83
|
-
mkdir -p /home/runner/apt/cache
|
84
|
-
sudo apt update -qq
|
85
|
-
sudo apt install -qq --fix-missing libmysqlclient-dev -o dir::cache::archives="/home/runner/apt/cache"
|
86
|
-
sudo chown -R runner /home/runner/apt/cache
|
87
|
-
- name: Restore node modules cache
|
88
|
-
id: yarn-cache
|
89
|
-
uses: actions/cache@v3
|
90
|
-
with:
|
91
|
-
path: spec/dummy/node_modules
|
92
|
-
key: ${{ runner.os }}-yarn-dummy-${{ hashFiles('./package.json') }}
|
93
|
-
restore-keys: |
|
94
|
-
${{ runner.os }}-yarn-dummy-
|
95
|
-
- name: Prepare database
|
96
|
-
run: |
|
97
|
-
bundle exec rake alchemy:spec:prepare
|
98
|
-
- name: Run tests & publish code coverage
|
99
|
-
uses: paambaati/codeclimate-action@v3.2.0
|
100
|
-
env:
|
101
|
-
CC_TEST_REPORTER_ID: bca4349e32f97919210ac8a450b04904b90683fcdd57d65a22c0f5065482bc22
|
102
|
-
with:
|
103
|
-
coverageCommand: bundle exec rspec
|
104
|
-
- uses: actions/upload-artifact@main
|
105
|
-
if: failure()
|
106
|
-
with:
|
107
|
-
name: Screenshots
|
108
|
-
path: spec/dummy/tmp/screenshots
|
109
|
-
Jest:
|
110
|
-
runs-on: ubuntu-latest
|
111
|
-
env:
|
112
|
-
NODE_ENV: test
|
113
|
-
steps:
|
114
|
-
- uses: actions/checkout@v3
|
115
|
-
- name: Restore node modules cache
|
116
|
-
uses: actions/cache@v3
|
117
|
-
with:
|
118
|
-
path: node_modules
|
119
|
-
key: ${{ runner.os }}-yarn-${{ hashFiles('./package.json') }}
|
120
|
-
restore-keys: |
|
121
|
-
${{ runner.os }}-yarn-
|
122
|
-
- name: Install yarn
|
123
|
-
run: yarn install
|
124
|
-
- name: Run jest
|
125
|
-
run: yarn jest --verbose
|
data/.gitignore
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
.idea
|
2
|
-
.yardoc
|
3
|
-
.DS_Store
|
4
|
-
.svn
|
5
|
-
doc/
|
6
|
-
rdoc/
|
7
|
-
Gemfile.lock
|
8
|
-
pkg
|
9
|
-
tmp
|
10
|
-
log
|
11
|
-
.sass-cache
|
12
|
-
spec/dummy/config/alchemy/config.yml
|
13
|
-
spec/dummy/db/*.sqlite3*
|
14
|
-
spec/dummy/postcss.config.js
|
15
|
-
spec/dummy/public/assets/
|
16
|
-
spec/dummy/uploads/
|
17
|
-
.rvmrc
|
18
|
-
/coverage/
|
19
|
-
*.gem
|
20
|
-
/index/
|
21
|
-
/.bundle/
|
22
|
-
.rbenv-version
|
23
|
-
.ruby-gemset
|
24
|
-
.ruby-version
|
25
|
-
.env
|
26
|
-
node_modules
|
27
|
-
yarn-error.log
|
28
|
-
yarn-debug.log*
|
29
|
-
.yarn-integrity
|
30
|
-
yarn.lock
|
31
|
-
/spec/dummy/public/pictures
|
32
|
-
.byebug_history
|
data/.hound.yml
DELETED
data/.localeapp/config.rb
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
require 'dotenv/load'
|
2
|
-
|
3
|
-
Localeapp.configure do |config|
|
4
|
-
config.api_key = ENV['LOCALEAPP_API_KEY']
|
5
|
-
config.translation_data_directory = 'config/locales'
|
6
|
-
config.synchronization_data_file = '.localeapp/log.yml'
|
7
|
-
config.daemon_pid_file = '.localeapp/localeapp.pid'
|
8
|
-
end
|
data/.prettierrc
DELETED
data/.rspec
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
--require spec_helper
|
data/.rubocop.yml
DELETED
data/.standard.yml
DELETED