CcmNG: Basic integration for TinyMCE

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5684 8810af33-2d31-482b-a856-94f89814c4df
jensp 2018-09-01 17:00:13 +00:00
parent 8da1e4c8c1
commit 216fd13620
24 changed files with 4508 additions and 604 deletions

View File

@ -1663,278 +1663,6 @@
}
}
},
"ccm-cms-tinymce": {
"version": "7.0.0",
"requires": {
"tinymce": "4.8.2"
},
"dependencies": {
"@types/jquery": {
"version": "3.3.6",
"bundled": true
},
"@types/tinymce": {
"version": "4.5.16",
"bundled": true,
"requires": {
"@types/jquery": "3.3.6"
}
},
"ansi-regex": {
"version": "2.1.1",
"bundled": true
},
"ansi-styles": {
"version": "2.2.1",
"bundled": true
},
"argparse": {
"version": "1.0.10",
"bundled": true,
"requires": {
"sprintf-js": "1.0.3"
}
},
"babel-code-frame": {
"version": "6.26.0",
"bundled": true,
"requires": {
"chalk": "1.1.3",
"esutils": "2.0.2",
"js-tokens": "3.0.2"
},
"dependencies": {
"chalk": {
"version": "1.1.3",
"bundled": true,
"requires": {
"ansi-styles": "2.2.1",
"escape-string-regexp": "1.0.5",
"has-ansi": "2.0.0",
"strip-ansi": "3.0.1",
"supports-color": "2.0.0"
}
}
}
},
"balanced-match": {
"version": "1.0.0",
"bundled": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"requires": {
"balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
"builtin-modules": {
"version": "1.1.1",
"bundled": true
},
"chalk": {
"version": "2.4.1",
"bundled": true,
"requires": {
"ansi-styles": "3.2.1",
"escape-string-regexp": "1.0.5",
"supports-color": "5.4.0"
},
"dependencies": {
"ansi-styles": {
"version": "3.2.1",
"bundled": true,
"requires": {
"color-convert": "1.9.2"
}
},
"supports-color": {
"version": "5.4.0",
"bundled": true,
"requires": {
"has-flag": "3.0.0"
}
}
}
},
"color-convert": {
"version": "1.9.2",
"bundled": true,
"requires": {
"color-name": "1.1.1"
}
},
"color-name": {
"version": "1.1.1",
"bundled": true
},
"commander": {
"version": "2.17.1",
"bundled": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true
},
"diff": {
"version": "3.5.0",
"bundled": true
},
"escape-string-regexp": {
"version": "1.0.5",
"bundled": true
},
"esprima": {
"version": "4.0.1",
"bundled": true
},
"esutils": {
"version": "2.0.2",
"bundled": true
},
"fs.realpath": {
"version": "1.0.0",
"bundled": true
},
"glob": {
"version": "7.1.2",
"bundled": true,
"requires": {
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
"inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
},
"has-ansi": {
"version": "2.0.0",
"bundled": true,
"requires": {
"ansi-regex": "2.1.1"
}
},
"has-flag": {
"version": "3.0.0",
"bundled": true
},
"inflight": {
"version": "1.0.6",
"bundled": true,
"requires": {
"once": "1.4.0",
"wrappy": "1.0.2"
}
},
"inherits": {
"version": "2.0.3",
"bundled": true
},
"js-tokens": {
"version": "3.0.2",
"bundled": true
},
"js-yaml": {
"version": "3.12.0",
"bundled": true,
"requires": {
"argparse": "1.0.10",
"esprima": "4.0.1"
}
},
"minimatch": {
"version": "3.0.4",
"bundled": true,
"requires": {
"brace-expansion": "1.1.11"
}
},
"once": {
"version": "1.4.0",
"bundled": true,
"requires": {
"wrappy": "1.0.2"
}
},
"path-is-absolute": {
"version": "1.0.1",
"bundled": true
},
"path-parse": {
"version": "1.0.6",
"bundled": true
},
"resolve": {
"version": "1.8.1",
"bundled": true,
"requires": {
"path-parse": "1.0.6"
}
},
"semver": {
"version": "5.5.0",
"bundled": true
},
"sprintf-js": {
"version": "1.0.3",
"bundled": true
},
"strip-ansi": {
"version": "3.0.1",
"bundled": true,
"requires": {
"ansi-regex": "2.1.1"
}
},
"supports-color": {
"version": "2.0.0",
"bundled": true
},
"tinymce": {
"version": "4.8.2",
"bundled": true
},
"tslib": {
"version": "1.9.3",
"bundled": true
},
"tslint": {
"version": "5.11.0",
"bundled": true,
"requires": {
"babel-code-frame": "6.26.0",
"builtin-modules": "1.1.1",
"chalk": "2.4.1",
"commander": "2.17.1",
"diff": "3.5.0",
"glob": "7.1.2",
"js-yaml": "3.12.0",
"minimatch": "3.0.4",
"resolve": "1.8.1",
"semver": "5.5.0",
"tslib": "1.9.3",
"tsutils": "2.29.0"
}
},
"tsutils": {
"version": "2.29.0",
"bundled": true,
"requires": {
"tslib": "1.9.3"
}
},
"typescript": {
"version": "3.0.1",
"bundled": true
},
"wrappy": {
"version": "1.0.2",
"bundled": true
}
}
},
"chalk": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",

View File

@ -6,7 +6,6 @@
},
"dependencies": {
"ccm-cms-pagemodelseditor": "7.0.0",
"ccm-cms-tinymce": "7.0.0",
"tinymce": "^4.8.2"
},
"devDependencies": {

View File

@ -38,6 +38,11 @@
<artifactId>requirejs-domready</artifactId>
<version>2.0.1-2</version>
</dependency>
<dependency>
<groupId>org.webjars.npm</groupId>
<artifactId>tinymce</artifactId>
<version>4.8.2</version>
</dependency>
<!-- <dependency>
<groupId>org.librecms</groupId>
<artifactId>ccm-cms-js</artifactId>
@ -199,6 +204,14 @@
<include>templates/</include>
</includes>
</overlay>
<overlay>
<groupId>org.librecms</groupId>
<artifactId>ccm-cms-tinymce</artifactId>
<type>jar</type>
<includes>
<include>scripts/</include>
</includes>
</overlay>
</overlays>
</configuration>
</plugin>

View File

@ -0,0 +1,6 @@
tinymce.init({
menubar: "edit view insert format tools table",
plugins: "ccm-cms-insertmedia code lists nonbreaking noneditable paste searchreplace table template visualblocks wordcount",
selector: ".tinymce",
toolbar: "undo redo formatselect bold italic underline strikethrough alignleft aligncenter alignright alignjustify alignnone insert indent outdent blockquote bullist numlist link unlink openlink insertmedia table",
});

View File

@ -0,0 +1,30 @@
import * as tinymce from "tinymce";
import "tinymce/themes/modern/theme";
import "tinymce/plugins/code";
import "tinymce/plugins/lists";
import "tinymce/plugins/nonbreaking";
import "tinymce/plugins/noneditable";
import "tinymce/plugins/paste";
import "tinymce/plugins/searchreplace";
import "tinymce/plugins/table";
import "tinymce/plugins/template";
import "tinymce/plugins/visualblocks";
import "tinymce/plugins/wordcount";
import plugin from "ccm-cms-tinymce";
require.context(
"file-loader?name=[path][name].[ext]"
+ "&context=node_modules/tinymce!tinymce/skins",
true,
/.*/,
);
tinymce.init({
//menubar: "tools",
plugins: "ccm-cms-tinymce-insertmedia code lists nonbreaking noneditable paste searchreplace table template visualblocks wordcount",
selector: ".tinymce",
//toolbar: "code",
});

View File

@ -2,6 +2,7 @@
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"rootDir": "src/main/typescript",
"sourceMap": true,
"strict": true,
"target": "es6",

View File

@ -6,7 +6,7 @@ module.exports = {
entry: {
"ccm-cms-pagemodelseditor": "./src/main/typescript/ccm-cms-pagemodelseditor.ts",
"ccm-cms-tinymce": "./src/main/typescript/ccm-cms-tinymce.ts",
// "ccm-cms-tinymce-loader": "./src/main/typescript/tinymce/ccm-cms-tinymce-loader.ts",
},
mode: "development",

View File

@ -5,28 +5,38 @@
"requires": true,
"dependencies": {
"@types/node": {
"version": "10.1.3",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.1.3.tgz",
"integrity": "sha512-GiCx7dRvta0hbxXoJFAUxz+CKX6bZSCKjM5slq2vPp/5zwK01T4ibYZkGr6EN4F2QmxDQR76/ZHg6q+7iFWCWw==",
"version": "10.7.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.7.1.tgz",
"integrity": "sha512-EGoI4ylB/lPOaqXqtzAyL8HcgOuCtH2hkEaLmkueOYufsTFWBn4VCvlCDC2HW8Q+9iF+QVC3sxjDKQYjHQeZ9w==",
"dev": true
},
"@types/react": {
"version": "16.3.14",
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.3.14.tgz",
"integrity": "sha512-wNUGm49fPl7eE2fnYdF0v5vSOrUMdKMQD/4NwtQRnb6mnPwtkhabmuFz37eq90+hhyfz0pWd38jkZHOcaZ6LGw==",
"@types/prop-types": {
"version": "15.5.5",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.5.tgz",
"integrity": "sha512-mOrlCEdwX3seT3n0AXNt4KNPAZZxcsABUHwBgFXOt+nvFUXkxCAO6UBJHPrDxWEa2KDMil86355fjo8jbZ+K0Q==",
"dev": true,
"requires": {
"csstype": "2.5.3"
"@types/react": "16.4.11"
}
},
"@types/react": {
"version": "16.4.11",
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.4.11.tgz",
"integrity": "sha512-1DQnmwO8u8N3ucvRX2ZLDEjQ2VctkAvL/rpbm2ev4uaZA0z4ysU+I0tk+K8ZLblC6p7MCgFyF+cQlSNIPUHzeQ==",
"dev": true,
"requires": {
"@types/prop-types": "15.5.5",
"csstype": "2.5.6"
}
},
"@types/react-dom": {
"version": "16.0.5",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.0.5.tgz",
"integrity": "sha512-ony2hEYlGXCLWNAWWgbsHR7qVvDbeMRFc5b43+7dhj3n+zXzxz81HV9Yjpc3JD8vLCiwYoSLqFCI6bD0+0zG2Q==",
"version": "16.0.7",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.0.7.tgz",
"integrity": "sha512-vaq4vMaJOaNgFff1t3LnHYr6vRa09vRspMkmLdXtFZmO1fwDI2snP+dpOkwrtlU8UC8qsqemCu4RmVM2OLq/fA==",
"dev": true,
"requires": {
"@types/node": "10.1.3",
"@types/react": "16.3.14"
"@types/node": "10.7.1",
"@types/react": "16.4.11"
}
},
"ansi-regex": {
@ -106,30 +116,43 @@
"ccm-pagemodelseditor": {
"version": "7.0.0",
"requires": {
"react": "16.4.0",
"react-dom": "16.4.0",
"react-modal": "3.4.5",
"react-redux": "5.0.7",
"redux": "4.0.0"
"react": "16.4.2",
"react-dom": "16.4.2",
"react-modal": "3.5.1"
},
"dependencies": {
"@types/node": {
"version": "10.1.3",
"version": "10.7.1",
"bundled": true
},
"@types/react": {
"version": "16.3.14",
"@types/prop-types": {
"version": "15.5.5",
"bundled": true,
"requires": {
"csstype": "2.5.3"
"@types/react": "16.4.11"
}
},
"@types/react": {
"version": "16.4.11",
"bundled": true,
"requires": {
"@types/prop-types": "15.5.5",
"csstype": "2.5.6"
}
},
"@types/react-dom": {
"version": "16.0.5",
"version": "16.0.7",
"bundled": true,
"requires": {
"@types/node": "10.1.3",
"@types/react": "16.3.14"
"@types/node": "10.7.1",
"@types/react": "16.4.11"
}
},
"@types/react-modal": {
"version": "3.2.1",
"bundled": true,
"requires": {
"@types/react": "16.4.11"
}
},
"ansi-regex": {
@ -170,6 +193,10 @@
"strip-ansi": "3.0.1",
"supports-color": "2.0.0"
}
},
"js-tokens": {
"version": "3.0.2",
"bundled": true
}
}
},
@ -202,7 +229,7 @@
"version": "3.2.1",
"bundled": true,
"requires": {
"color-convert": "1.9.1"
"color-convert": "1.9.2"
}
},
"supports-color": {
@ -215,18 +242,18 @@
}
},
"color-convert": {
"version": "1.9.1",
"version": "1.9.2",
"bundled": true,
"requires": {
"color-name": "1.1.3"
"color-name": "1.1.1"
}
},
"color-name": {
"version": "1.1.3",
"version": "1.1.1",
"bundled": true
},
"commander": {
"version": "2.15.1",
"version": "2.17.1",
"bundled": true
},
"concat-map": {
@ -238,7 +265,7 @@
"bundled": true
},
"csstype": {
"version": "2.5.3",
"version": "2.5.6",
"bundled": true
},
"diff": {
@ -257,7 +284,7 @@
"bundled": true
},
"esprima": {
"version": "4.0.0",
"version": "4.0.1",
"bundled": true
},
"esutils": {
@ -269,12 +296,12 @@
"bundled": true
},
"fbjs": {
"version": "0.8.16",
"version": "0.8.17",
"bundled": true,
"requires": {
"core-js": "1.2.7",
"isomorphic-fetch": "2.2.1",
"loose-envify": "1.3.1",
"loose-envify": "1.4.0",
"object-assign": "4.1.1",
"promise": "7.3.1",
"setimmediate": "1.0.5",
@ -308,10 +335,6 @@
"version": "3.0.0",
"bundled": true
},
"hoist-non-react-statics": {
"version": "2.5.0",
"bundled": true
},
"iconv-lite": {
"version": "0.4.23",
"bundled": true,
@ -331,13 +354,6 @@
"version": "2.0.3",
"bundled": true
},
"invariant": {
"version": "2.2.4",
"bundled": true,
"requires": {
"loose-envify": "1.3.1"
}
},
"is-stream": {
"version": "1.1.0",
"bundled": true
@ -351,30 +367,22 @@
}
},
"js-tokens": {
"version": "3.0.2",
"version": "4.0.0",
"bundled": true
},
"js-yaml": {
"version": "3.11.0",
"version": "3.12.0",
"bundled": true,
"requires": {
"argparse": "1.0.10",
"esprima": "4.0.0"
"esprima": "4.0.1"
}
},
"lodash": {
"version": "4.17.10",
"bundled": true
},
"lodash-es": {
"version": "4.17.10",
"bundled": true
},
"loose-envify": {
"version": "1.3.1",
"version": "1.4.0",
"bundled": true,
"requires": {
"js-tokens": "3.0.2"
"js-tokens": "4.0.0"
}
},
"minimatch": {
@ -408,7 +416,7 @@
"bundled": true
},
"path-parse": {
"version": "1.0.5",
"version": "1.0.6",
"bundled": true
},
"promise": {
@ -419,32 +427,31 @@
}
},
"prop-types": {
"version": "15.6.1",
"version": "15.6.2",
"bundled": true,
"requires": {
"fbjs": "0.8.16",
"loose-envify": "1.3.1",
"loose-envify": "1.4.0",
"object-assign": "4.1.1"
}
},
"react": {
"version": "16.4.0",
"version": "16.4.2",
"bundled": true,
"requires": {
"fbjs": "0.8.16",
"loose-envify": "1.3.1",
"fbjs": "0.8.17",
"loose-envify": "1.4.0",
"object-assign": "4.1.1",
"prop-types": "15.6.1"
"prop-types": "15.6.2"
}
},
"react-dom": {
"version": "16.4.0",
"version": "16.4.2",
"bundled": true,
"requires": {
"fbjs": "0.8.16",
"loose-envify": "1.3.1",
"fbjs": "0.8.17",
"loose-envify": "1.4.0",
"object-assign": "4.1.1",
"prop-types": "15.6.1"
"prop-types": "15.6.2"
}
},
"react-lifecycles-compat": {
@ -452,40 +459,20 @@
"bundled": true
},
"react-modal": {
"version": "3.4.5",
"version": "3.5.1",
"bundled": true,
"requires": {
"exenv": "1.2.2",
"prop-types": "15.6.1",
"prop-types": "15.6.2",
"react-lifecycles-compat": "3.0.4",
"warning": "3.0.0"
}
},
"react-redux": {
"version": "5.0.7",
"bundled": true,
"requires": {
"hoist-non-react-statics": "2.5.0",
"invariant": "2.2.4",
"lodash": "4.17.10",
"lodash-es": "4.17.10",
"loose-envify": "1.3.1",
"prop-types": "15.6.1"
}
},
"redux": {
"version": "4.0.0",
"bundled": true,
"requires": {
"loose-envify": "1.3.1",
"symbol-observable": "1.2.0"
}
},
"resolve": {
"version": "1.7.1",
"version": "1.8.1",
"bundled": true,
"requires": {
"path-parse": "1.0.5"
"path-parse": "1.0.6"
}
},
"safer-buffer": {
@ -515,41 +502,37 @@
"version": "2.0.0",
"bundled": true
},
"symbol-observable": {
"version": "1.2.0",
"bundled": true
},
"tslib": {
"version": "1.9.1",
"version": "1.9.3",
"bundled": true
},
"tslint": {
"version": "5.10.0",
"version": "5.11.0",
"bundled": true,
"requires": {
"babel-code-frame": "6.26.0",
"builtin-modules": "1.1.1",
"chalk": "2.4.1",
"commander": "2.15.1",
"commander": "2.17.1",
"diff": "3.5.0",
"glob": "7.1.2",
"js-yaml": "3.11.0",
"js-yaml": "3.12.0",
"minimatch": "3.0.4",
"resolve": "1.7.1",
"resolve": "1.8.1",
"semver": "5.5.0",
"tslib": "1.9.1",
"tsutils": "2.27.1"
"tslib": "1.9.3",
"tsutils": "2.29.0"
}
},
"tsutils": {
"version": "2.27.1",
"version": "2.29.0",
"bundled": true,
"requires": {
"tslib": "1.9.1"
"tslib": "1.9.3"
}
},
"typescript": {
"version": "2.8.3",
"version": "3.0.1",
"bundled": true
},
"ua-parser-js": {
@ -560,7 +543,7 @@
"version": "3.0.0",
"bundled": true,
"requires": {
"loose-envify": "1.3.1"
"loose-envify": "1.4.0"
}
},
"whatwg-fetch": {
@ -590,7 +573,7 @@
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "1.9.1"
"color-convert": "1.9.2"
}
},
"supports-color": {
@ -605,24 +588,24 @@
}
},
"color-convert": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
"integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
"version": "1.9.2",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz",
"integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==",
"dev": true,
"requires": {
"color-name": "1.1.3"
"color-name": "1.1.1"
}
},
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz",
"integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=",
"dev": true
},
"commander": {
"version": "2.15.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
"integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
"version": "2.17.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
"integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
"dev": true
},
"concat-map": {
@ -637,9 +620,9 @@
"integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
},
"csstype": {
"version": "2.5.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.5.3.tgz",
"integrity": "sha512-G5HnoK8nOiAq3DXIEoY2n/8Vb7Lgrms+jGJl8E4EJpQEeVONEnPFJSl8IK505wPBoxxtrtHhrRm4WX2GgdqarA==",
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.5.6.tgz",
"integrity": "sha512-tKPyhy0FmfYD2KQYXD5GzkvAYLYj96cMLXr648CKGd3wBe0QqoPipImjGiLze9c8leJK8J3n7ap90tpk3E6HGQ==",
"dev": true
},
"diff": {
@ -663,9 +646,9 @@
"dev": true
},
"esprima": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
"integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
},
"esutils": {
@ -675,13 +658,13 @@
"dev": true
},
"fbjs": {
"version": "0.8.16",
"resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz",
"integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=",
"version": "0.8.17",
"resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
"integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
"requires": {
"core-js": "1.2.7",
"isomorphic-fetch": "2.2.1",
"loose-envify": "1.3.1",
"loose-envify": "1.4.0",
"object-assign": "4.1.1",
"promise": "7.3.1",
"setimmediate": "1.0.5",
@ -723,11 +706,6 @@
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
"hoist-non-react-statics": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.0.tgz",
"integrity": "sha512-6Bl6XsDT1ntE0lHbIhr4Kp2PGcleGZ66qu5Jqk8lc0Xc/IeG6gVLmwUGs/K0Us+L8VWoKgj0uWdPMataOsm31w=="
},
"iconv-lite": {
"version": "0.4.23",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
@ -752,14 +730,6 @@
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true
},
"invariant": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
"integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
"requires": {
"loose-envify": "1.3.1"
}
},
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
@ -780,29 +750,19 @@
"integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls="
},
"js-yaml": {
"version": "3.11.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz",
"integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==",
"version": "3.12.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
"integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
"dev": true,
"requires": {
"argparse": "1.0.10",
"esprima": "4.0.0"
"esprima": "4.0.1"
}
},
"lodash": {
"version": "4.17.10",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
"integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg=="
},
"lodash-es": {
"version": "4.17.10",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.10.tgz",
"integrity": "sha512-iesFYPmxYYGTcmQK0sL8bX3TGHyM6b2qREaB4kamHfQyfPJP0xgoGxp19nsH16nsfquLdiyKyX3mQkfiSGV8Rg=="
},
"loose-envify": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
"integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"requires": {
"js-tokens": "3.0.2"
}
@ -846,9 +806,9 @@
"dev": true
},
"path-parse": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
"integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
"dev": true
},
"promise": {
@ -860,66 +820,43 @@
}
},
"prop-types": {
"version": "15.6.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz",
"integrity": "sha512-4ec7bY1Y66LymSUOH/zARVYObB23AT2h8cf6e/O6ZALB/N0sqZFEx7rq6EYPX2MkOdKORuooI/H5k9TlR4q7kQ==",
"version": "15.6.2",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz",
"integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==",
"requires": {
"fbjs": "0.8.16",
"loose-envify": "1.3.1",
"loose-envify": "1.4.0",
"object-assign": "4.1.1"
}
},
"react": {
"version": "16.4.0",
"resolved": "https://registry.npmjs.org/react/-/react-16.4.0.tgz",
"integrity": "sha512-K0UrkLXSAekf5nJu89obKUM7o2vc6MMN9LYoKnCa+c+8MJRAT120xzPLENcWSRc7GYKIg0LlgJRDorrufdglQQ==",
"version": "16.4.2",
"resolved": "https://registry.npmjs.org/react/-/react-16.4.2.tgz",
"integrity": "sha512-dMv7YrbxO4y2aqnvA7f/ik9ibeLSHQJTI6TrYAenPSaQ6OXfb+Oti+oJiy8WBxgRzlKatYqtCjphTgDSCEiWFg==",
"requires": {
"fbjs": "0.8.16",
"loose-envify": "1.3.1",
"fbjs": "0.8.17",
"loose-envify": "1.4.0",
"object-assign": "4.1.1",
"prop-types": "15.6.1"
"prop-types": "15.6.2"
}
},
"react-dom": {
"version": "16.4.0",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.4.0.tgz",
"integrity": "sha512-bbLd+HYpBEnYoNyxDe9XpSG2t9wypMohwQPvKw8Hov3nF7SJiJIgK56b46zHpBUpHb06a1iEuw7G3rbrsnNL6w==",
"version": "16.4.2",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.4.2.tgz",
"integrity": "sha512-Usl73nQqzvmJN+89r97zmeUpQDKDlh58eX6Hbs/ERdDHzeBzWy+ENk7fsGQ+5KxArV1iOFPT46/VneklK9zoWw==",
"requires": {
"fbjs": "0.8.16",
"loose-envify": "1.3.1",
"fbjs": "0.8.17",
"loose-envify": "1.4.0",
"object-assign": "4.1.1",
"prop-types": "15.6.1"
}
},
"react-redux": {
"version": "5.0.7",
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz",
"integrity": "sha512-5VI8EV5hdgNgyjfmWzBbdrqUkrVRKlyTKk1sGH3jzM2M2Mhj/seQgPXaz6gVAj2lz/nz688AdTqMO18Lr24Zhg==",
"requires": {
"hoist-non-react-statics": "2.5.0",
"invariant": "2.2.4",
"lodash": "4.17.10",
"lodash-es": "4.17.10",
"loose-envify": "1.3.1",
"prop-types": "15.6.1"
}
},
"redux": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/redux/-/redux-4.0.0.tgz",
"integrity": "sha512-NnnHF0h0WVE/hXyrB6OlX67LYRuaf/rJcbWvnHHEPCF/Xa/AZpwhs/20WyqzQae5x4SD2F9nPObgBh2rxAgLiA==",
"requires": {
"loose-envify": "1.3.1",
"symbol-observable": "1.2.0"
"prop-types": "15.6.2"
}
},
"resolve": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
"integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
"integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
"dev": true,
"requires": {
"path-parse": "1.0.5"
"path-parse": "1.0.6"
}
},
"safer-buffer": {
@ -959,50 +896,45 @@
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
"dev": true
},
"symbol-observable": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
"integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
},
"tslib": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.1.tgz",
"integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg==",
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
"dev": true
},
"tslint": {
"version": "5.10.0",
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz",
"integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=",
"version": "5.11.0",
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz",
"integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=",
"dev": true,
"requires": {
"babel-code-frame": "6.26.0",
"builtin-modules": "1.1.1",
"chalk": "2.4.1",
"commander": "2.15.1",
"commander": "2.17.1",
"diff": "3.5.0",
"glob": "7.1.2",
"js-yaml": "3.11.0",
"js-yaml": "3.12.0",
"minimatch": "3.0.4",
"resolve": "1.7.1",
"resolve": "1.8.1",
"semver": "5.5.0",
"tslib": "1.9.1",
"tsutils": "2.27.1"
"tslib": "1.9.3",
"tsutils": "2.29.0"
}
},
"tsutils": {
"version": "2.27.1",
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.1.tgz",
"integrity": "sha512-AE/7uzp32MmaHvNNFES85hhUDHFdFZp6OAiZcd6y4ZKKIg6orJTm8keYWBhIhrJQH3a4LzNKat7ZPXZt5aTf6w==",
"version": "2.29.0",
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
"integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
"dev": true,
"requires": {
"tslib": "1.9.1"
"tslib": "1.9.3"
}
},
"typescript": {
"version": "2.8.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.8.3.tgz",
"integrity": "sha512-K7g15Bb6Ra4lKf7Iq2l/I5/En+hLIHmxWZGq3D4DIRNFxMNV6j2SHSvDOqs2tGd4UvD/fJvrwopzQXjLrT7Itw==",
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.0.1.tgz",
"integrity": "sha512-zQIMOmC+372pC/CCVLqnQ0zSBiY7HHodU7mpQdjiZddek4GMj31I3dUJ7gAs9o65X7mnRma6OokOkc6f9jjfBg==",
"dev": true
},
"ua-parser-js": {

File diff suppressed because it is too large Load Diff

View File

@ -11,7 +11,7 @@
"main": "target/dist/ccm-cms-tinymce.js",
"types": "target/dist/ccm-cms-tinymce.d.ts",
"scripts": {
"build": "tsc",
"build": "webpack",
"tslint": "tslint --project ."
},
"dependencies": {
@ -19,7 +19,11 @@
},
"devDependencies": {
"@types/tinymce": "^4.5.16",
"file-loader": "^1.1.11",
"ts-loader": "^4.4.2",
"tslint": "^5.11.0",
"typescript": "^3.0.1"
"typescript": "^3.0.1",
"webpack": "^4.16.4",
"webpack-cli": "^3.1.0"
}
}

View File

@ -39,24 +39,18 @@
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<!-- <resource>
<directory>src/main/typescript</directory>
</resource>
<resource>
<directory>${project.build.directory}/generated-resources</directory>
</resource>
<!--<resource>
<directory>${project.build.directory}/maven-shared-archive-resources/ccm-pagemodelseditor</directory>
</resource> -->
</resources>
<plugins>
<!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-remote-resources-plugin</artifactId> <version>1.5</version> <configuration> <resourceBundles>
<resourceBundle>org.libreccm:ccm-pagemodelseditor:${project.version}</resourceBundle> </resourceBundles> </configuration> <executions> <execution> <goals> <goal>process</goal> </goals> </execution> </executions> </plugin> -->
<plugin>
<!--<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
@ -74,15 +68,6 @@
<nodeVersion>v8.11.4</nodeVersion>
</configuration>
</execution>
<!--<execution>
<id>npm link ccm-pagemodelseditor</id>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>link ccm-pagemodelseditor</arguments>
</configuration>
</execution>-->
<execution>
<id>npm install</id>
<goals>
@ -108,7 +93,7 @@
</configuration>
</execution>
</executions>
</plugin>
</plugin>-->
</plugins>
</build>

View File

@ -0,0 +1,47 @@
tinymce.PluginManager.add("ccm-cms-insertmedia", function(editor, url) {
console.log("Adding plugin ccm-cms-insertmedia...");
editor.addButton(
"insertmedia",
{
icon: "image",
onclick: function() {
openDialog(editor);
},
tooltip: "Insert media",
},
);
editor.addMenuItem(
"insert-media",
{
text: "Insert media",
context: "tools",
onclock: function() {
openDialog(editor);
},
},
);
});
function openDialog(editor) {
console.log("Opening dialog");
editor.windowManager.open(
{
body: [
{
label: "Search term",
name: "searchterm",
type: "textbox"
},
],
onsubmit: function(event) {
},
title: "Insert media",
});
}

View File

@ -0,0 +1,7 @@
import * as tinymce from "tinymce";
import plugin from "./plugin";
tinymce.PluginManager.add("ccm-cms-insertmedia", plugin);
export default function() {};

View File

@ -0,0 +1,69 @@
import * as tinymce from "tinymce";
const plugin = (editor: tinymce.Editor, url: string): void => {
editor.addButton(
"insert-media",
{
text: "Insert media",
icon: false,
onclick: function() {
openDialog(editor);
}
}
);
editor.addMenuItem(
"insert-media",
{
text: "Insert media",
context: "tools",
onclock: function() {
openDialog(editor);
}
}
);
};
// tinymce.PluginManager.add("ccm-cms-insertmedia",
// function(editor: tinymce.Editor,
// url: string): void {
//
// editor.addButton(
// "insert-media",
// {
// text: "Insert media",
// icon: false,
// onclick: function() {
// openDialog(editor);
// }
// }
// );
//
// editor.addMenuItem(
// "insert-media",
// {
// text: "Insert media",
// context: "tools",
// onclock: function() {
// openDialog(editor);
// }
// }
// );
// });
function openDialog(editor: tinymce.Editor): void {
editor.windowManager.open(
{},
{
title: "Insert media",
body: [
{ label: "Search term", name: "searchterm", type: "textbox" }
],
onsubmit: function(event: Event) {
},
});
}
export default plugin;

View File

@ -3,13 +3,13 @@
"jsx": "React",
"module": "commonjs",
"moduleResolution": "node",
"outDir": "target/dist",
"rootDir": "src/main/typescript",
"sourceMap": true,
"declaration": true,
"strict": true,
"target": "es6"
},
"include": [
"src/main/typescript/**/*"
"src/main/typescript/tinymce/plugins/ccm-cms-tinymce-insertmedia/**/*"
]
}

View File

@ -0,0 +1,25 @@
const path = require("path");
module.exports = {
devtool: "source-map",
entry: {
"ccm-cms-tinymce-insertmedia/plugin": "./src/main/typescript/tinymce/plugins/ccm-cms-tinymce-insertmedia/index.ts",
},
output: {
path: path.resolve(__dirname, "target/generated-resources/tinymce/plugins"),
filename: "[name].js"
},
resolve: {
extensions: [".webpack.js", "web.js", ".ts", ".tsx", ".js"]
},
module: {
rules: [
{ test: /\.tsx?$/, loader: "ts-loader"}
]
}
};

View File

@ -83,15 +83,18 @@ public class CMSConfig {
*/
@Setting
private List<String> dhtmlEditorConfig = Arrays.asList(new String[]{
"TinyMCE.Config", "/scripts/dist/ccm-cms-tinymce.js"});
// "TinyMCE.Config", "/tinymce/tinymce_cms_config.js"});
"TinyMCE.Config", "scripts/ccm-cms/tinymce-loader.js"
});
// "TinyMCE.Config", "scripts/dist/tinymce/tinymce_cms_config.js"});
/**
* Defines which plugins to use, e.g.TableOperations,CSS Format:
* [string,string,string]
*/
@Setting
private List<String> dhtmlEditorPlugins = Collections.emptyList();
private List<String> dhtmlEditorPlugins = Arrays.asList(new String[]{
"scripts/ccm-cms/tinymce/plugins/insertmedia.js"
});
/**
* Prevent undesirable functions from being made available, eg images should

View File

@ -79,7 +79,7 @@ public final class BebopConfig {
@Setting
// private String dhtmlEditorSrcFile = "/ccm-editor/ccm-editor-loader.js";
private String dhtmlEditorSrcFile = "/tinymce/js/tinymce/tinymce.min.js";
private String dhtmlEditorSrcFile = "/webjars/tinymce/4.8.2/tinymce.js";
@Setting
private Boolean showClassName = false;

View File

@ -112,7 +112,7 @@ public class DHTMLEditor extends TextArea {
"/ccm-editor/ccm-editor-loader.js");
public static final Config STANDARD = new Config("tinymce.config",
"/tinymce(tinymce-config.js");
"/tinymce/tinymce-config.js");
private String m_name;
private String m_path;

View File

@ -267,9 +267,14 @@
<xsl:if test="@name=$first-match">
<!--<script src="{./@editor_src}"></script>-->
<script src="{./@editor_src}"></script>
<script src="{./bebop:config[@name='TinyMCE.Config']/@path}">
</script>
<xsl:if test="bebop:plugin">
<xsl:for-each select="bebop:plugin">
<script src="{$context-prefix}/{./@name}"></script>
</xsl:for-each>
</xsl:if>
</xsl:if>
@ -285,6 +290,8 @@
<xsl:value-of disable-output-escaping="no" select="text()"/>
</textarea>
</xsl:template>
<!-- DE Benutze Xinha -->