├── .gitignore ├── .idea ├── .name ├── artifacts │ ├── fincalcms_war.xml │ └── fincalcms_war_exploded.xml ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── encodings.xml ├── libraries │ ├── jetty_server_8_1_8.xml │ ├── jfinal_2_2_bin_with_src.xml │ └── lib.xml ├── misc.xml ├── modules.xml ├── uiDesigner.xml ├── vcs.xml └── workspace.xml ├── LICENSE ├── README.md ├── docs ├── Hook文档.md ├── finalcms.zip └── pictrues │ ├── CMS_Design_picture.png │ ├── menu_editconfiruration.png │ └── runConfiguration.png ├── fincalcms.iml ├── res ├── blog.sql ├── database_config.txt ├── ehcache.xml ├── log4j.properties ├── socket_config.txt └── url.sql ├── src ├── org │ └── yoqu │ │ └── cms │ │ ├── admin │ │ ├── config │ │ │ ├── AdminRoutes.java │ │ │ └── InjectManager.java │ │ └── modules │ │ │ ├── breadcrumbs │ │ │ └── BreadcrumbsModule.java │ │ │ ├── dashboard │ │ │ └── DashBoardController.java │ │ │ ├── menu │ │ │ ├── MenuController.java │ │ │ ├── MenuInvoke.java │ │ │ └── MenuModule.java │ │ │ ├── node │ │ │ ├── NodeController.java │ │ │ └── NodeInvoke.java │ │ │ ├── people │ │ │ └── PeopleController.java │ │ │ ├── role │ │ │ ├── RoleAccessInvoke.java │ │ │ ├── RoleController.java │ │ │ └── RoleInvoke.java │ │ │ ├── setting │ │ │ ├── SettingController.java │ │ │ └── SystemVariableInvoke.java │ │ │ └── user │ │ │ ├── UserController.java │ │ │ └── UserInvoke.java │ │ ├── core │ │ ├── aop │ │ │ ├── Hook.java │ │ │ ├── InvokeAfter.java │ │ │ ├── InvokeBefore.java │ │ │ └── SiteTitle.java │ │ ├── config │ │ │ ├── AppConfig.java │ │ │ ├── AuthManagerInterceptor.java │ │ │ ├── Constant.java │ │ │ ├── FinalBaseController.java │ │ │ ├── FinalCms.java │ │ │ ├── Module.java │ │ │ ├── StartFinalCMS.java │ │ │ └── SystemVariable.java │ │ ├── model │ │ │ ├── Client.java │ │ │ ├── Comment.java │ │ │ ├── Dictionary.java │ │ │ ├── DictionaryType.java │ │ │ ├── File.java │ │ │ ├── Menu.java │ │ │ ├── MenuType.java │ │ │ ├── Module.java │ │ │ ├── Node.java │ │ │ ├── Role.java │ │ │ ├── RoleAccess.java │ │ │ ├── RolePermission.java │ │ │ ├── Url.java │ │ │ ├── User.java │ │ │ ├── _MappingKit.java │ │ │ └── base │ │ │ │ ├── BaseClient.java │ │ │ │ ├── BaseComment.java │ │ │ │ ├── BaseDictionary.java │ │ │ │ ├── BaseDictionaryType.java │ │ │ │ ├── BaseFile.java │ │ │ │ ├── BaseMenu.java │ │ │ │ ├── BaseMenuType.java │ │ │ │ ├── BaseModule.java │ │ │ │ ├── BaseNode.java │ │ │ │ ├── BaseRole.java │ │ │ │ ├── BaseRoleAccess.java │ │ │ │ ├── BaseRolePermission.java │ │ │ │ ├── BaseUrl.java │ │ │ │ └── BaseUser.java │ │ ├── module │ │ │ ├── ModuleActionMapping.java │ │ │ └── ModuleHandler.java │ │ └── util │ │ │ ├── ClassPathScanHandler.java │ │ │ ├── FileNameMatcher.java │ │ │ ├── FinalProxy.java │ │ │ ├── JSONUtil.java │ │ │ ├── ModelGenerator.java │ │ │ ├── SqlHandle.java │ │ │ └── StringUtils.java │ │ ├── front │ │ ├── config │ │ │ └── FrontRoutes.java │ │ └── modules │ │ │ ├── index │ │ │ └── IndexController.java │ │ │ ├── message │ │ │ └── NotifyStackList.java │ │ │ └── node │ │ │ └── NodeController.java │ │ ├── nima │ │ ├── LoginHandler.java │ │ └── dao │ │ │ └── SessionDao.java │ │ └── plugin │ │ ├── SocketPlugin.java │ │ └── serve │ │ ├── META-INF │ │ └── MANIFEST.MF │ │ ├── MyserveConfig.java │ │ ├── SocketService.java │ │ └── core │ │ ├── CodeFactory.java │ │ ├── Decoder.java │ │ ├── Encoder.java │ │ ├── LoginSessionManager.java │ │ ├── MessageHandler.java │ │ ├── MessageHandlerInvocation.java │ │ ├── Notification.java │ │ ├── ServiceHandler.java │ │ ├── SessionManager.java │ │ ├── config │ │ ├── ClientSession.java │ │ ├── Constant.java │ │ ├── Routes.java │ │ └── ServeConfig.java │ │ └── parser │ │ ├── CommandParser.java │ │ ├── Parser.java │ │ └── exception │ │ ├── CommandMessageTypeException.java │ │ └── MessageTypeException.java └── test │ ├── Menu.java │ ├── MenuArray.java │ └── javaTest.java └── web ├── META-INF └── MANIFEST.MF ├── WEB-INF ├── classes │ ├── database_config.txt │ ├── ehcache.xml │ ├── log4j.properties │ ├── org │ │ └── yoqu │ │ │ └── cms │ │ │ └── core │ │ │ ├── config │ │ │ └── AppConfig.class │ │ │ ├── model │ │ │ ├── Comment.class │ │ │ ├── Dictionary.class │ │ │ ├── DictionaryType.class │ │ │ ├── Menu.class │ │ │ ├── Module.class │ │ │ ├── Node.class │ │ │ ├── Role.class │ │ │ ├── RolePermission.class │ │ │ ├── Url.class │ │ │ ├── User.class │ │ │ ├── _MappingKit.class │ │ │ └── base │ │ │ │ ├── BaseComment.class │ │ │ │ ├── BaseDictionary.class │ │ │ │ ├── BaseDictionaryType.class │ │ │ │ ├── BaseMenu.class │ │ │ │ ├── BaseModule.class │ │ │ │ ├── BaseNode.class │ │ │ │ ├── BaseRole.class │ │ │ │ ├── BaseRolePermission.class │ │ │ │ ├── BaseUrl.class │ │ │ │ └── BaseUser.class │ │ │ └── util │ │ │ ├── JSONUtil.class │ │ │ ├── ModelGenerator.class │ │ │ └── SqlHandle.class │ ├── socket_config.txt │ └── test │ │ └── javaTest.class ├── lib │ ├── c3p0-0.9.1.2.jar │ ├── commons-lang3-3.4.jar │ ├── cos-26Dec2008.jar │ ├── ehcache-core-2.5.2.jar │ ├── freemarker-2.3.20.jar │ ├── javassist-3.11.0.GA.jar │ ├── jetty-server-8.1.8.jar │ ├── jfinal-2.2-bin-with-src.jar │ ├── jfinal-weixin-1.8-bin-with-src.jar │ ├── json.jar │ ├── jzlib-1.1.3.jar │ ├── log4j-1.2.16.jar │ ├── mina-core-2.0.13.jar │ ├── mysql-connector-java-5.1.20-bin.jar │ ├── ognl-3.1.2.jar │ ├── slf4j-api-1.6.1.jar │ ├── slf4j-log4j12-1.6.1.jar │ ├── spring-2.5.6.SEC03.jar │ └── xbean-spring-4.5.jar └── web.xml ├── admin ├── 404.html ├── css │ ├── chartist.min.css │ ├── custom │ │ └── custom.min.css │ ├── jquery-jvectormap.css │ ├── layouts │ │ ├── page-center.css │ │ ├── style-fullscreen.css │ │ └── style-horizontal.css │ ├── materialize.min.css │ ├── perfect-scrollbar.css │ ├── plugins │ │ └── media-hover-effects.css │ ├── style-fullscreen.css │ └── style.min.css ├── dashboard.html ├── font │ ├── material-design-icons │ │ ├── Material-Design-Icons.eot- │ │ ├── Material-Design-Icons.svg │ │ ├── Material-Design-Icons.ttf │ │ ├── Material-Design-Icons.woff │ │ └── Material-Design-Icons.woff2 │ └── roboto │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-Bold.woff │ │ ├── Roboto-Bold.woff2 │ │ ├── Roboto-Light.ttf │ │ ├── Roboto-Light.woff │ │ ├── Roboto-Light.woff2 │ │ ├── Roboto-Medium.ttf │ │ ├── Roboto-Medium.woff │ │ ├── Roboto-Medium.woff2 │ │ ├── Roboto-Regular.ttf │ │ ├── Roboto-Regular.woff │ │ ├── Roboto-Regular.woff2 │ │ ├── Roboto-Thin.ttf │ │ ├── Roboto-Thin.woff │ │ └── Roboto-Thin.woff2 ├── images │ ├── amazon.jpg.png │ ├── avatar.jpg │ ├── favicon │ │ ├── apple-touch-icon-152x152.png │ │ └── favicon-32x32.png │ ├── flag-icons │ │ ├── China.png │ │ ├── France.png │ │ ├── Germany.png │ │ └── United-States.png │ ├── gallary │ │ ├── 1.jpg │ │ ├── 10.jpg │ │ ├── 11.jpg │ │ ├── 12.jpg │ │ ├── 13.jpg │ │ ├── 14.jpg │ │ ├── 15.jpg │ │ ├── 16.jpg │ │ ├── 17.jpg │ │ ├── 18.jpg │ │ ├── 19.jpg │ │ ├── 2.jpg │ │ ├── 20.jpg │ │ ├── 25.jpg │ │ ├── 26.jpg │ │ ├── 3.jpg │ │ ├── 30.jpg │ │ ├── 33.jpg │ │ ├── 4.jpg │ │ ├── 5.jpg │ │ ├── 6.jpg │ │ ├── 7.jpg │ │ ├── 8.jpg │ │ └── 9.jpg │ ├── generic-logo.png │ ├── img2.jpg │ ├── img3.jpg │ ├── img4.jpg │ ├── img5.jpg │ ├── img6.jpg │ ├── img7.jpg │ ├── img8.jpg │ ├── login-logo.png │ ├── map-marker.png │ ├── materialize-logo.png │ ├── office.jpg │ ├── sample-1.jpg │ ├── signature-scan.png │ ├── style_typography_roboto.png │ ├── user-bg.jpg │ └── user-profile-bg.jpg ├── js │ ├── custom-script.js │ ├── materialize.min.js │ ├── plugins.min.js │ └── plugins │ │ ├── angular-materialize.js │ │ ├── angular.min.js │ │ ├── animate-css │ │ └── animate.css │ │ ├── chartist-js │ │ ├── chartist-script.js │ │ ├── chartist.min.css │ │ └── chartist.min.js │ │ ├── chartjs │ │ ├── chart-script.js │ │ ├── chart.min.js │ │ └── chartjs-sample-chart.js │ │ ├── d3 │ │ └── d3.min.js │ │ ├── data-tables │ │ ├── css │ │ │ └── jquery.dataTables.min.css │ │ ├── data-tables-script.js │ │ ├── images │ │ │ ├── sort_asc.png │ │ │ ├── sort_asc_disabled.png │ │ │ ├── sort_both.png │ │ │ ├── sort_desc.png │ │ │ └── sort_desc_disabled.png │ │ └── js │ │ │ └── jquery.dataTables.min.js │ │ ├── dropify │ │ ├── css │ │ │ └── dropify.min.css │ │ ├── fonts │ │ │ ├── dropify.eot │ │ │ ├── dropify.svg │ │ │ ├── dropify.ttf │ │ │ └── dropify.woff │ │ └── js │ │ │ └── dropify.min.js │ │ ├── editable-table │ │ ├── mindmup-editabletable.js │ │ └── numeric-input-example.js │ │ ├── floatThead │ │ ├── jquery.floatThead-slim.min.js │ │ └── jquery.floatThead.min.js │ │ ├── flot-chart │ │ ├── flot-script.js │ │ ├── jquery.flot.min.js │ │ ├── jquery.flot.pie.js │ │ ├── jquery.flot.stack.js │ │ └── jquery.flot.time.js │ │ ├── formatter │ │ └── jquery.formatter.min.js │ │ ├── fullcalendar │ │ ├── css │ │ │ └── fullcalendar.min.css │ │ ├── fullcalendar-script.js │ │ ├── js │ │ │ └── fullcalendar.min.js │ │ └── lib │ │ │ ├── jquery-ui.custom.min.js │ │ │ └── moment.min.js │ │ ├── google-map │ │ └── google-map-script.js │ │ ├── iconselect │ │ └── jquery.qqFace.js │ │ ├── imagesloaded.pkgd.min.js │ │ ├── ionRangeSlider │ │ ├── css │ │ │ ├── ion.rangeSlider.css │ │ │ └── ion.rangeSlider.skinFlat.css │ │ ├── img │ │ │ └── sprite-skin-flat.png │ │ └── js │ │ │ └── ion.rangeSlider.js │ │ ├── jquery-1.11.2.min.js │ │ ├── jquery-cookies │ │ └── jquery.cookies.min.js │ │ ├── jquery-validation │ │ ├── additional-methods.min.js │ │ └── jquery.validate.min.js │ │ ├── jquery.nestable │ │ ├── jquery.nestable.js │ │ └── nestable.css │ │ ├── jsgrid │ │ ├── css │ │ │ ├── jsgrid-theme.min.css │ │ │ └── jsgrid.min.css │ │ └── js │ │ │ ├── db.js │ │ │ ├── jsgrid-script.js │ │ │ └── jsgrid.min.js │ │ ├── jvectormap │ │ ├── jquery-jvectormap-1.2.2.min.js │ │ ├── jquery-jvectormap-world-mill-en.js │ │ ├── jquery-jvectormap.css │ │ └── vectormap-script.js │ │ ├── magnific-popup │ │ ├── jquery.magnific-popup.min.js │ │ └── magnific-popup.css │ │ ├── markdown-js │ │ ├── css │ │ │ ├── editormd.css │ │ │ ├── editormd.logo.css │ │ │ ├── editormd.logo.min.css │ │ │ ├── editormd.min.css │ │ │ ├── editormd.preview.css │ │ │ └── editormd.preview.min.css │ │ ├── editormd.min.js │ │ ├── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── editormd-logo.eot │ │ │ ├── editormd-logo.svg │ │ │ ├── editormd-logo.ttf │ │ │ ├── editormd-logo.woff │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ │ ├── images │ │ │ ├── loading.gif │ │ │ ├── loading@2x.gif │ │ │ ├── loading@3x.gif │ │ │ └── logos │ │ │ │ ├── editormd-favicon-16x16.ico │ │ │ │ ├── editormd-favicon-24x24.ico │ │ │ │ ├── editormd-favicon-32x32.ico │ │ │ │ ├── editormd-favicon-48x48.ico │ │ │ │ ├── editormd-favicon-64x64.ico │ │ │ │ ├── editormd-logo-114x114.png │ │ │ │ ├── editormd-logo-120x120.png │ │ │ │ ├── editormd-logo-144x144.png │ │ │ │ ├── editormd-logo-16x16.png │ │ │ │ ├── editormd-logo-180x180.png │ │ │ │ ├── editormd-logo-240x240.png │ │ │ │ ├── editormd-logo-24x24.png │ │ │ │ ├── editormd-logo-320x320.png │ │ │ │ ├── editormd-logo-32x32.png │ │ │ │ ├── editormd-logo-48x48.png │ │ │ │ ├── editormd-logo-57x57.png │ │ │ │ ├── editormd-logo-64x64.png │ │ │ │ ├── editormd-logo-72x72.png │ │ │ │ ├── editormd-logo-96x96.png │ │ │ │ └── vi.png │ │ ├── lib │ │ │ ├── codemirror │ │ │ │ ├── AUTHORS │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── addon │ │ │ │ │ ├── comment │ │ │ │ │ │ ├── comment.js │ │ │ │ │ │ └── continuecomment.js │ │ │ │ │ ├── dialog │ │ │ │ │ │ ├── dialog.css │ │ │ │ │ │ └── dialog.js │ │ │ │ │ ├── display │ │ │ │ │ │ ├── fullscreen.css │ │ │ │ │ │ ├── fullscreen.js │ │ │ │ │ │ ├── panel.js │ │ │ │ │ │ ├── placeholder.js │ │ │ │ │ │ └── rulers.js │ │ │ │ │ ├── edit │ │ │ │ │ │ ├── closebrackets.js │ │ │ │ │ │ ├── closetag.js │ │ │ │ │ │ ├── continuelist.js │ │ │ │ │ │ ├── matchbrackets.js │ │ │ │ │ │ ├── matchtags.js │ │ │ │ │ │ └── trailingspace.js │ │ │ │ │ ├── fold │ │ │ │ │ │ ├── brace-fold.js │ │ │ │ │ │ ├── comment-fold.js │ │ │ │ │ │ ├── foldcode.js │ │ │ │ │ │ ├── foldgutter.css │ │ │ │ │ │ ├── foldgutter.js │ │ │ │ │ │ ├── indent-fold.js │ │ │ │ │ │ ├── markdown-fold.js │ │ │ │ │ │ └── xml-fold.js │ │ │ │ │ ├── hint │ │ │ │ │ │ ├── anyword-hint.js │ │ │ │ │ │ ├── css-hint.js │ │ │ │ │ │ ├── html-hint.js │ │ │ │ │ │ ├── javascript-hint.js │ │ │ │ │ │ ├── show-hint.css │ │ │ │ │ │ ├── show-hint.js │ │ │ │ │ │ ├── sql-hint.js │ │ │ │ │ │ └── xml-hint.js │ │ │ │ │ ├── lint │ │ │ │ │ │ ├── coffeescript-lint.js │ │ │ │ │ │ ├── css-lint.js │ │ │ │ │ │ ├── javascript-lint.js │ │ │ │ │ │ ├── json-lint.js │ │ │ │ │ │ ├── lint.css │ │ │ │ │ │ ├── lint.js │ │ │ │ │ │ └── yaml-lint.js │ │ │ │ │ ├── merge │ │ │ │ │ │ ├── merge.css │ │ │ │ │ │ └── merge.js │ │ │ │ │ ├── mode │ │ │ │ │ │ ├── loadmode.js │ │ │ │ │ │ ├── multiplex.js │ │ │ │ │ │ ├── multiplex_test.js │ │ │ │ │ │ ├── overlay.js │ │ │ │ │ │ └── simple.js │ │ │ │ │ ├── runmode │ │ │ │ │ │ ├── colorize.js │ │ │ │ │ │ ├── runmode-standalone.js │ │ │ │ │ │ ├── runmode.js │ │ │ │ │ │ └── runmode.node.js │ │ │ │ │ ├── scroll │ │ │ │ │ │ ├── annotatescrollbar.js │ │ │ │ │ │ ├── scrollpastend.js │ │ │ │ │ │ ├── simplescrollbars.css │ │ │ │ │ │ └── simplescrollbars.js │ │ │ │ │ ├── search │ │ │ │ │ │ ├── match-highlighter.js │ │ │ │ │ │ ├── matchesonscrollbar.css │ │ │ │ │ │ ├── matchesonscrollbar.js │ │ │ │ │ │ ├── search.js │ │ │ │ │ │ └── searchcursor.js │ │ │ │ │ ├── selection │ │ │ │ │ │ ├── active-line.js │ │ │ │ │ │ ├── mark-selection.js │ │ │ │ │ │ └── selection-pointer.js │ │ │ │ │ ├── tern │ │ │ │ │ │ ├── tern.css │ │ │ │ │ │ ├── tern.js │ │ │ │ │ │ └── worker.js │ │ │ │ │ └── wrap │ │ │ │ │ │ └── hardwrap.js │ │ │ │ ├── addons.min.js │ │ │ │ ├── bower.json │ │ │ │ ├── codemirror.min.css │ │ │ │ ├── codemirror.min.js │ │ │ │ ├── lib │ │ │ │ │ ├── codemirror.css │ │ │ │ │ └── codemirror.js │ │ │ │ ├── mode │ │ │ │ │ ├── apl │ │ │ │ │ │ ├── apl.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── asterisk │ │ │ │ │ │ ├── asterisk.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── clike │ │ │ │ │ │ ├── clike.js │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── scala.html │ │ │ │ │ ├── clojure │ │ │ │ │ │ ├── clojure.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── cobol │ │ │ │ │ │ ├── cobol.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── coffeescript │ │ │ │ │ │ ├── coffeescript.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── commonlisp │ │ │ │ │ │ ├── commonlisp.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── css │ │ │ │ │ │ ├── css.js │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── less.html │ │ │ │ │ │ ├── less_test.js │ │ │ │ │ │ ├── scss.html │ │ │ │ │ │ ├── scss_test.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── cypher │ │ │ │ │ │ ├── cypher.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── d │ │ │ │ │ │ ├── d.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── dart │ │ │ │ │ │ ├── dart.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── diff │ │ │ │ │ │ ├── diff.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── django │ │ │ │ │ │ ├── django.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── dockerfile │ │ │ │ │ │ ├── dockerfile.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── dtd │ │ │ │ │ │ ├── dtd.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── dylan │ │ │ │ │ │ ├── dylan.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── ebnf │ │ │ │ │ │ ├── ebnf.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── ecl │ │ │ │ │ │ ├── ecl.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── eiffel │ │ │ │ │ │ ├── eiffel.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── erlang │ │ │ │ │ │ ├── erlang.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── forth │ │ │ │ │ │ ├── forth.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── fortran │ │ │ │ │ │ ├── fortran.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── gas │ │ │ │ │ │ ├── gas.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── gfm │ │ │ │ │ │ ├── gfm.js │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── gherkin │ │ │ │ │ │ ├── gherkin.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── go │ │ │ │ │ │ ├── go.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── groovy │ │ │ │ │ │ ├── groovy.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── haml │ │ │ │ │ │ ├── haml.js │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── haskell │ │ │ │ │ │ ├── haskell.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── haxe │ │ │ │ │ │ ├── haxe.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── htmlembedded │ │ │ │ │ │ ├── htmlembedded.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── htmlmixed │ │ │ │ │ │ ├── htmlmixed.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── http │ │ │ │ │ │ ├── http.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── idl │ │ │ │ │ │ ├── idl.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── index.html │ │ │ │ │ ├── jade │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── jade.js │ │ │ │ │ ├── javascript │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── javascript.js │ │ │ │ │ │ ├── json-ld.html │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── typescript.html │ │ │ │ │ ├── jinja2 │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── jinja2.js │ │ │ │ │ ├── julia │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── julia.js │ │ │ │ │ ├── kotlin │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── kotlin.js │ │ │ │ │ ├── livescript │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── livescript.js │ │ │ │ │ ├── lua │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── lua.js │ │ │ │ │ ├── markdown │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── markdown.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── meta.js │ │ │ │ │ ├── mirc │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── mirc.js │ │ │ │ │ ├── mllike │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── mllike.js │ │ │ │ │ ├── modelica │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── modelica.js │ │ │ │ │ ├── nginx │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── nginx.js │ │ │ │ │ ├── ntriples │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── ntriples.js │ │ │ │ │ ├── octave │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── octave.js │ │ │ │ │ ├── pascal │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── pascal.js │ │ │ │ │ ├── pegjs │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── pegjs.js │ │ │ │ │ ├── perl │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── perl.js │ │ │ │ │ ├── php │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── php.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── pig │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── pig.js │ │ │ │ │ ├── properties │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── properties.js │ │ │ │ │ ├── puppet │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── puppet.js │ │ │ │ │ ├── python │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── python.js │ │ │ │ │ ├── q │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── q.js │ │ │ │ │ ├── r │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── r.js │ │ │ │ │ ├── rpm │ │ │ │ │ │ ├── changes │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── rpm.js │ │ │ │ │ ├── rst │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── rst.js │ │ │ │ │ ├── ruby │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── ruby.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── rust │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── rust.js │ │ │ │ │ ├── sass │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── sass.js │ │ │ │ │ ├── scheme │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── scheme.js │ │ │ │ │ ├── shell │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── shell.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── sieve │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── sieve.js │ │ │ │ │ ├── slim │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── slim.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── smalltalk │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── smalltalk.js │ │ │ │ │ ├── smarty │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── smarty.js │ │ │ │ │ ├── smartymixed │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── smartymixed.js │ │ │ │ │ ├── solr │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── solr.js │ │ │ │ │ ├── soy │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── soy.js │ │ │ │ │ ├── sparql │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── sparql.js │ │ │ │ │ ├── spreadsheet │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── spreadsheet.js │ │ │ │ │ ├── sql │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── sql.js │ │ │ │ │ ├── stex │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── stex.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── stylus │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── stylus.js │ │ │ │ │ ├── tcl │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── tcl.js │ │ │ │ │ ├── textile │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── textile.js │ │ │ │ │ ├── tiddlywiki │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── tiddlywiki.css │ │ │ │ │ │ └── tiddlywiki.js │ │ │ │ │ ├── tiki │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── tiki.css │ │ │ │ │ │ └── tiki.js │ │ │ │ │ ├── toml │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── toml.js │ │ │ │ │ ├── tornado │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── tornado.js │ │ │ │ │ ├── turtle │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── turtle.js │ │ │ │ │ ├── vb │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── vb.js │ │ │ │ │ ├── vbscript │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── vbscript.js │ │ │ │ │ ├── velocity │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── velocity.js │ │ │ │ │ ├── verilog │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── verilog.js │ │ │ │ │ ├── xml │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── xml.js │ │ │ │ │ ├── xquery │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── xquery.js │ │ │ │ │ ├── yaml │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── yaml.js │ │ │ │ │ └── z80 │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── z80.js │ │ │ │ ├── modes.min.js │ │ │ │ ├── package.json │ │ │ │ └── theme │ │ │ │ │ ├── 3024-day.css │ │ │ │ │ ├── 3024-night.css │ │ │ │ │ ├── ambiance-mobile.css │ │ │ │ │ ├── ambiance.css │ │ │ │ │ ├── base16-dark.css │ │ │ │ │ ├── base16-light.css │ │ │ │ │ ├── blackboard.css │ │ │ │ │ ├── cobalt.css │ │ │ │ │ ├── colorforth.css │ │ │ │ │ ├── eclipse.css │ │ │ │ │ ├── elegant.css │ │ │ │ │ ├── erlang-dark.css │ │ │ │ │ ├── lesser-dark.css │ │ │ │ │ ├── mbo.css │ │ │ │ │ ├── mdn-like.css │ │ │ │ │ ├── midnight.css │ │ │ │ │ ├── monokai.css │ │ │ │ │ ├── neat.css │ │ │ │ │ ├── neo.css │ │ │ │ │ ├── night.css │ │ │ │ │ ├── paraiso-dark.css │ │ │ │ │ ├── paraiso-light.css │ │ │ │ │ ├── pastel-on-dark.css │ │ │ │ │ ├── rubyblue.css │ │ │ │ │ ├── solarized.css │ │ │ │ │ ├── the-matrix.css │ │ │ │ │ ├── tomorrow-night-bright.css │ │ │ │ │ ├── tomorrow-night-eighties.css │ │ │ │ │ ├── twilight.css │ │ │ │ │ ├── vibrant-ink.css │ │ │ │ │ ├── xq-dark.css │ │ │ │ │ ├── xq-light.css │ │ │ │ │ └── zenburn.css │ │ │ ├── flowchart.min.js │ │ │ ├── jquery.flowchart.min.js │ │ │ ├── marked.min.js │ │ │ ├── prettify.min.js │ │ │ ├── raphael.min.js │ │ │ ├── sequence-diagram.min.js │ │ │ └── underscore.min.js │ │ └── plugins │ │ │ ├── code-block-dialog │ │ │ └── code-block-dialog.js │ │ │ ├── emoji-dialog │ │ │ ├── emoji-dialog.js │ │ │ └── emoji.json │ │ │ ├── goto-line-dialog │ │ │ └── goto-line-dialog.js │ │ │ ├── help-dialog │ │ │ ├── help-dialog.js │ │ │ └── help.md │ │ │ ├── html-entities-dialog │ │ │ ├── html-entities-dialog.js │ │ │ └── html-entities.json │ │ │ ├── image-dialog │ │ │ └── image-dialog.js │ │ │ ├── link-dialog │ │ │ └── link-dialog.js │ │ │ ├── plugin-template.js │ │ │ ├── preformatted-text-dialog │ │ │ └── preformatted-text-dialog.js │ │ │ ├── reference-link-dialog │ │ │ └── reference-link-dialog.js │ │ │ ├── table-dialog │ │ │ └── table-dialog.js │ │ │ └── test-plugin │ │ │ └── test-plugin.js │ │ ├── masonry.pkgd.min.js │ │ ├── morris-chart │ │ ├── morris-script.js │ │ ├── morris.css │ │ └── morris.min.js │ │ ├── perfect-scrollbar │ │ ├── perfect-scrollbar.css │ │ └── perfect-scrollbar.min.js │ │ ├── prism │ │ ├── prism.css │ │ └── prism.js │ │ ├── raphael │ │ └── raphael-min.js │ │ ├── sparkline │ │ ├── jquery.sparkline.min.js │ │ └── sparkline-script.js │ │ ├── sweetalert │ │ ├── sweetalert.css │ │ └── sweetalert.min.js │ │ ├── tags │ │ ├── jquery.tagsinput.min.css │ │ └── jquery.tagsinput.min.js │ │ ├── translator │ │ ├── jqueryTranslator.min.js │ │ └── translation-script.js │ │ ├── upload │ │ ├── jquery.uploadfile.min.js │ │ └── uploadfile.css │ │ └── xcharts │ │ ├── xcharts-script.js │ │ ├── xcharts.min.css │ │ └── xcharts.min.js ├── layout │ ├── layout_footer.html │ └── layout_header.html ├── login.html ├── menu │ ├── create.html │ ├── menu.html │ ├── menuEdit.html │ ├── menuItemCreate.html │ ├── menuItemEdit.html │ └── menuList.html ├── noPermission.html ├── node │ ├── create.html │ ├── edit.html │ └── nodeList.html ├── people │ ├── create.html │ ├── edit.html │ └── people.html ├── register.html ├── role │ └── role.html └── setting │ └── variable.html ├── front ├── about.html ├── css │ ├── animate.css │ ├── custom.css │ ├── hover-min.css │ ├── icon.css │ ├── materialize.css │ ├── materialize.min.css │ ├── mobile_style.css │ └── style.css ├── font │ ├── icon │ │ ├── iconfont.eot │ │ ├── iconfont.svg │ │ ├── iconfont.ttf │ │ └── iconfont.woff │ ├── material-design-icons │ │ ├── 2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2 │ │ ├── LICENSE.txt │ │ ├── Material-Design-Icons.eot │ │ ├── Material-Design-Icons.svg │ │ ├── Material-Design-Icons.ttf │ │ ├── Material-Design-Icons.woff │ │ └── Material-Design-Icons.woff2 │ └── roboto │ │ ├── Roboto-Bold.eot │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-Bold.woff │ │ ├── Roboto-Bold.woff2 │ │ ├── Roboto-Light.eot │ │ ├── Roboto-Light.ttf │ │ ├── Roboto-Light.woff │ │ ├── Roboto-Light.woff2 │ │ ├── Roboto-Medium.eot │ │ ├── Roboto-Medium.ttf │ │ ├── Roboto-Medium.woff │ │ ├── Roboto-Medium.woff2 │ │ ├── Roboto-Regular.eot │ │ ├── Roboto-Regular.ttf │ │ ├── Roboto-Regular.woff │ │ ├── Roboto-Regular.woff2 │ │ ├── Roboto-Thin.eot │ │ ├── Roboto-Thin.ttf │ │ ├── Roboto-Thin.woff │ │ └── Roboto-Thin.woff2 ├── img │ ├── alipay.jpg │ ├── hero-2.jpg │ ├── hero-3.jpg │ ├── hero-4.jpg │ ├── hero-5.jpg │ ├── hero.jpg │ ├── logo.png │ ├── myphoto.png │ ├── wechat.png │ ├── work_1.jpg │ ├── work_2.jpg │ ├── work_3.jpg │ ├── work_4.jpg │ ├── work_5.jpg │ └── work_6.jpg ├── index.html ├── js │ ├── about │ │ ├── bootstrap.min.js │ │ ├── css │ │ │ ├── animate.css │ │ │ ├── icomoon.css │ │ │ ├── magnific-popup.css │ │ │ ├── style.css │ │ │ └── style.css.map │ │ ├── fonts │ │ │ ├── bootstrap │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ ├── glyphicons-halflings-regular.woff2 │ │ │ │ └── index.html │ │ │ ├── icomoon │ │ │ │ ├── icomoon.eot │ │ │ │ ├── icomoon.svg │ │ │ │ ├── icomoon.ttf │ │ │ │ ├── icomoon.woff │ │ │ │ ├── icomoon │ │ │ │ │ ├── Read Me.txt │ │ │ │ │ ├── demo-files │ │ │ │ │ │ ├── demo.css │ │ │ │ │ │ └── demo.js │ │ │ │ │ ├── demo.html │ │ │ │ │ ├── fonts │ │ │ │ │ │ ├── icomoon.eot │ │ │ │ │ │ ├── icomoon.svg │ │ │ │ │ │ ├── icomoon.ttf │ │ │ │ │ │ └── icomoon.woff │ │ │ │ │ ├── selection.json │ │ │ │ │ └── style.css │ │ │ │ └── index.html │ │ │ └── index.html │ │ ├── jquery.countTo.js │ │ ├── jquery.easing.1.3.js │ │ ├── jquery.magnific-popup.min.js │ │ ├── jquery.min.js │ │ ├── jquery.stellar.min.js │ │ ├── jquery.waypoints.min.js │ │ ├── main.js │ │ ├── marked.js │ │ ├── modernizr-2.6.2.min.js │ │ └── respond.min.js │ ├── jquery-1.11.1.js │ ├── jquery-1.6.2.min.js │ ├── materialize.js │ ├── materialize.min.js │ └── plugins │ │ ├── img │ │ ├── close.png │ │ ├── loading.gif │ │ ├── next.png │ │ └── prev.png │ │ ├── lightbox │ │ ├── js │ │ │ ├── jquery-1.11.0.min.map │ │ │ └── lightbox.min.js │ │ └── lightbox.css │ │ └── tooltipster │ │ ├── css │ │ ├── themes │ │ │ ├── tooltipster-light.css │ │ │ ├── tooltipster-noir.css │ │ │ ├── tooltipster-punk.css │ │ │ └── tooltipster-shadow.css │ │ └── tooltipster.css │ │ └── js │ │ ├── jquery.tooltipster.js │ │ └── jquery.tooltipster.min.js ├── layout │ ├── layout_footer.html │ ├── layout_header.html │ └── layout_right.html └── node │ └── node.html └── upload ├── 8b4a353233393135363237070e.jpg ├── 8b4a353233393135363237070e1.jpg ├── 8b4a353233393135363237070e2.jpg ├── 8b4a353233393135363237070e3.jpg ├── 8b4a353233393135363237070e4.jpg ├── 8b4a353233393135363237070e5.jpg ├── idea.desktop ├── 头像.jpg ├── 头像1.jpg ├── 头像2.jpg └── 森林.jpg /.gitignore: -------------------------------------------------------------------------------- 1 | ### Example user template 2 | 3 | # IntelliJ project files 4 | .idea 5 | *.iml 6 | out 7 | gen 8 | ### Java template 9 | *.class 10 | 11 | # Mobile Tools for Java (J2ME) 12 | .mtj.tmp/ 13 | 14 | # Package Files # 15 | *.war 16 | *.ear 17 | 18 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 19 | hs_err_pid* 20 | 21 | # Created by .ignore support plugin (hsz.mobi) 22 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | fincalcms -------------------------------------------------------------------------------- /.idea/artifacts/fincalcms_war.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | $PROJECT_DIR$/out/artifacts/fincalcms_war 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/artifacts/fincalcms_war_exploded.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | $PROJECT_DIR$/out/artifacts/fincalcms_war_exploded 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/libraries/jetty_server_8_1_8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/jfinal_2_2_bin_with_src.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/lib.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | #finalcms 3 | 本项目基于java极速开发框架 **[JFinal](http://git.oschina.net/jfinal/jfinal)** 4 | >简化业务员代码量,极速的cms框架,java插件热插拔式支持系统工作,可任意定制系统的任意页面,插件只需要编译,界面安装即可使用.和系统插件完全分离 5 | 6 | 系统核心功能包括 7 | 1. **前台主题嵌套** 8 | 2. **页面样式定制** 9 | 3. **后台人员权限管理** 10 | 4. **插件管理** 11 | ##项目功能数据库设计图 ## 12 | ![design_picure](https://raw.githubusercontent.com/yoqu/finalcms/master/docs/pictrues/CMS_Design_picture.png) 13 | 14 | ##项目简介 15 | 16 | 17 | ## 如何使用 18 | #### 设置IDE 19 | 1. 下载源代码 20 | 2. 使用idea打开项目(项目使用idea 15.05的版本) 21 | 3. 主菜单的run选项卡设置 22 | ![选项卡设置](https://raw.githubusercontent.com/yoqu/finalcms/master/docs/pictrues/menu_editconfiruration.png) 23 | 4. 设置标红地方的参数 24 | ![runConfiguration](https://raw.githubusercontent.com/yoqu/finalcms/master/docs/pictrues/runConfiguration.png) 25 | >启动类为 __org.yoqu.cms.core.config.StartFinalCMS__ 26 | 27 | #### 导入数据到数据库 28 | 1. 项目中docs目录包含finalcms.sql文件,将其导入你的数据库中,数据库使用的是mysql。 29 | 2. 在res目录的database_config.txt文件中配置数据库链接信息 30 | 31 | #### 最后 32 | * 快捷键shift + F10运行项目. 33 | * 浏览器输入localhost即可访问. 34 | 35 | ##FAQ 36 | >* **问**:数据库字段修改如何同步到项目中. 37 | * **答**:运行核心util包中的ModelGenerator类重新生成(不推荐用户改动系统核心包) 38 | 39 | ********* 40 | 41 | >* **问**:运行项目显示80端口被占用. 42 | * **答**:1.关闭占用80端口的应用程序 2.在核心包的config包下StartFinalCMS类中修改START_PORT修改为你想要的启动端口 43 | 44 | ## 其他 45 | 46 | [Hook文档](https://github.com/yoqu/finalcms/blob/master/docs/Hook文档.md) 47 | 48 | #### 开发环境版本说明: 49 | * idea 15.0.4 50 | * jdk1.8 51 | * tomcat 7.0 52 | * mysql 5.6 53 | 54 | ### 后台默认管理员账号密码 55 | * admin 56 | * 123456 57 | ##关于 58 | 项目发起者: _yoqu_ 59 | -------------------------------------------------------------------------------- /docs/Hook文档.md: -------------------------------------------------------------------------------- 1 | # Final CMS系统Hook使用及定义 2 | >Hook中文译为钩子,基于Aop思想,在系统各个点中部署钩子,能够起到中间作用.Hook主要用来被模块进行调用实现系统的基本功能并能拓展使用. 3 | 4 | 5 | ************** 6 | ## Hook定义 7 | 8 | Hook分为``` @InvokeBefore("hookMethodName") @InvokeAfter("hookMethodName")``` 9 | InvokeBefore用于hook执行主体方法前插入方法执行代码 10 | InvokeAfter用于hook执行主体方法后插入方法执行代码 11 | Invoke注解用于方法体上,例如User模块下的Userinvoke类中的某一个方法 12 | ``` 13 | @InvokeBefore("FindUser_Before") 14 | @InvokeAfter("FindUser_After") 15 | public List finduserByNamePasswordOrName(String... parameters) { 16 | if (parameters.length == 2) { 17 | return User.dao.find("select * from user where name=? and password=? and is_delete=0", parameters); 18 | } else if (parameters.length == 1) { 19 | return User.dao.find("select * from user where name=? and is_delete=0", parameters); 20 | } else if (parameters.length == 0) { 21 | return User.dao.find("select * from user where is_delete=0"); 22 | } else return null; 23 | } 24 | ``` 25 | 26 | ## Hook使用说明 27 | 1.在模块目录中把你要实现hook 的类加上@Hook注解 28 | 2.新增一个方法,方法名称命名为[className][HookName](Class... ParameterTypes),例如我在UserController中加入一个PageInject_Before的Hook. 29 | ``` void userControllerPageInject__Before(Controller controller)``` 30 | ***注意*** 方法的首字母应该小写. 31 | 32 | **************** 33 | 34 | ## Hook函数记录 35 | | 函数名称 | 函数作用 | 36 | | ------------- |:-------------:| 37 | | ```void HookPageInject_Before(Controller controller) ```| 系统注入共用变量时调用的方法| 38 | | ```void HookSaveUser_Before(User user) ```| 系统执行保存用户操作(包括添加和更新)| 39 | | ```void HookPageInject_Before(Controller controller) ```| 系统注入共用变量时调用的方法| 40 | 41 | ## 注意事项 42 | 43 | - 在类中使用Hook不能使用父类的方法,因为调用的URl返回的结果并不一样. 44 | -------------------------------------------------------------------------------- /docs/finalcms.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/docs/finalcms.zip -------------------------------------------------------------------------------- /docs/pictrues/CMS_Design_picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/docs/pictrues/CMS_Design_picture.png -------------------------------------------------------------------------------- /docs/pictrues/menu_editconfiruration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/docs/pictrues/menu_editconfiruration.png -------------------------------------------------------------------------------- /docs/pictrues/runConfiguration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/docs/pictrues/runConfiguration.png -------------------------------------------------------------------------------- /fincalcms.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /res/database_config.txt: -------------------------------------------------------------------------------- 1 | jdbcUrl = jdbc:mysql://127.0.0.1/blog?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull 2 | user = root 3 | password =usbw 4 | devMode = true -------------------------------------------------------------------------------- /res/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=INFO, stdout, file 2 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 4 | log4j.appender.stdout.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n 5 | 6 | # Output to the File 7 | log4j.appender.file=org.apache.log4j.FileAppender 8 | log4j.appender.file.File=./jfinal_demo.log 9 | log4j.appender.file.layout=org.apache.log4j.PatternLayout 10 | log4j.appender.file.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n -------------------------------------------------------------------------------- /res/socket_config.txt: -------------------------------------------------------------------------------- 1 | hostname = 10.210.36.135 2 | port = 8888 3 | config=org.yoqu.cms.plugin.serve.MyserveConfig -------------------------------------------------------------------------------- /res/url.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Navicat Premium Data Transfer 3 | 4 | Source Server : localhost 5 | Source Server Type : MySQL 6 | Source Server Version : 50542 7 | Source Host : localhost 8 | Source Database : blog 9 | 10 | Target Server Type : MySQL 11 | Target Server Version : 50542 12 | File Encoding : utf-8 13 | 14 | Date: 08/30/2016 14:26:11 PM 15 | */ 16 | 17 | SET NAMES utf8; 18 | SET FOREIGN_KEY_CHECKS = 0; 19 | 20 | -- ---------------------------- 21 | -- Table structure for `url` 22 | -- ---------------------------- 23 | DROP TABLE IF EXISTS `url`; 24 | CREATE TABLE `url` ( 25 | `id` int(11) NOT NULL AUTO_INCREMENT, 26 | `module` varchar(255) DEFAULT NULL, 27 | `method` varchar(255) DEFAULT NULL, 28 | `controller` varchar(255) NOT NULL, 29 | `view` varchar(255) DEFAULT NULL, 30 | `url` varchar(255) DEFAULT NULL, 31 | `is_delete` int(11) DEFAULT NULL, 32 | PRIMARY KEY (`id`) 33 | ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1; 34 | 35 | -- ---------------------------- 36 | -- Records of `url` 37 | -- ---------------------------- 38 | BEGIN; 39 | INSERT INTO `url` VALUES ('1', 'people', 'create', 'org.yoqu.cms.admin.modules.people.Controller', null, '/admin/people/create', '0'), ('2', 'people', 'index', 'org.yoqu.cms.admin.modules.people.Controller', null, '/admin/people', '0'), ('3', 'people', 'edit', 'org.yoqu.cms.admin.modules.people.Controller', null, '/admin/people/edit', '0'), ('4', 'index', 'index', 'org.yoqu.cms.front.modules.index.IndexController', '/front/index', '/index', '0'); 40 | COMMIT; 41 | 42 | SET FOREIGN_KEY_CHECKS = 1; 43 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/admin/modules/breadcrumbs/BreadcrumbsModule.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.admin.modules.breadcrumbs; 2 | 3 | import com.jfinal.plugin.ehcache.CacheKit; 4 | import com.jfinal.plugin.ehcache.IDataLoader; 5 | import org.yoqu.cms.core.aop.Hook; 6 | import org.yoqu.cms.core.config.FinalBaseController; 7 | import org.yoqu.cms.core.config.Module; 8 | import org.yoqu.cms.core.model.Menu; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * Created by yoqu on 16-6-12. 14 | */ 15 | @Hook 16 | public class BreadcrumbsModule extends Module { 17 | 18 | public static final String VARIABLE = "breadcrumbs"; 19 | 20 | public static final Integer MENU_TYPE_LEFT = 5; 21 | 22 | /** 23 | * 通过Hook注入每个页面的面包屑 24 | * @see org.yoqu.cms.admin.config.InjectManager 25 | * @param controller 26 | */ 27 | public void breadcrumbsModule_AdminPageInject_Before(FinalBaseController controller) { 28 | String uri = controller.getRequest().getRequestURI(); 29 | List menus = CacheKit.get(MODULE, VARIABLE, new IDataLoader() { 30 | @Override 31 | public Object load() { 32 | return Menu.dao.sortMenu(Menu.dao.findAllMenuByType(MENU_TYPE_LEFT)); 33 | } 34 | }); 35 | controller.setAttr(VARIABLE, menus); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/admin/modules/dashboard/DashBoardController.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.admin.modules.dashboard; 2 | 3 | import com.jfinal.core.ActionKey; 4 | import com.jfinal.core.Controller; 5 | import org.yoqu.cms.core.aop.SiteTitle; 6 | import org.yoqu.cms.core.config.FinalBaseController; 7 | 8 | /** 9 | * Created by yoqu on 2016/4/18 0018. 10 | */ 11 | public class DashBoardController extends FinalBaseController { 12 | @SiteTitle("主页面板") 13 | public void index() { 14 | render("/admin/dashboard.html"); 15 | } 16 | 17 | //配置admin页面 18 | @ActionKey("/admin") 19 | public void admin() { 20 | redirect("/admin/dashboard"); 21 | } 22 | 23 | @SiteTitle("没有权限") 24 | @ActionKey("/admin/nopermission") 25 | public void nopermission() { 26 | System.out.println("test"); 27 | render("/admin/noPermission.html"); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/admin/modules/menu/MenuInvoke.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.admin.modules.menu; 2 | 3 | import org.json.JSONArray; 4 | import org.json.JSONException; 5 | import org.yoqu.cms.core.aop.InvokeBefore; 6 | import org.yoqu.cms.core.model.Menu; 7 | import org.yoqu.cms.core.util.FinalProxy; 8 | 9 | /** 10 | * Created by yoqu on 16-5-27. 11 | */ 12 | public class MenuInvoke { 13 | public static final String HOOK_SORT_MENU_ITEM_BEFORE = "SortMenuItem_Before"; 14 | public static final String HOOK_SAVE_MENU_ITEM_BEFORE = "SaveMenuItem_Before"; 15 | public static final String HOOK_UPDATE_MENU_ITEM_BEFORE = "UpdateMenuItem_Before"; 16 | private volatile static MenuInvoke menuHook; 17 | 18 | public static MenuInvoke getInstance() { 19 | if (menuHook == null) { 20 | synchronized (MenuInvoke.class) { 21 | menuHook = (MenuInvoke) new FinalProxy().createProxy(MenuInvoke.class); 22 | } 23 | } 24 | return menuHook; 25 | } 26 | 27 | @InvokeBefore(HOOK_SORT_MENU_ITEM_BEFORE) 28 | public void sortMenuItem(JSONArray arrays, int fid) throws JSONException { 29 | Menu.dao.updateMenu(arrays, fid); 30 | } 31 | 32 | @InvokeBefore(HOOK_SAVE_MENU_ITEM_BEFORE) 33 | public boolean saveMenuItem(Menu menu) { 34 | return menu.save(); 35 | } 36 | 37 | @InvokeBefore(HOOK_UPDATE_MENU_ITEM_BEFORE) 38 | public boolean updateMenuItem(Menu menu) { 39 | return menu.update(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/admin/modules/node/NodeInvoke.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.admin.modules.node; 2 | 3 | import com.jfinal.plugin.activerecord.Db; 4 | import com.jfinal.plugin.activerecord.Page; 5 | import org.yoqu.cms.core.config.SystemVariable; 6 | import org.yoqu.cms.core.aop.InvokeBefore; 7 | import org.yoqu.cms.core.config.Constant; 8 | import org.yoqu.cms.core.model.Node; 9 | import org.yoqu.cms.core.util.FinalProxy; 10 | 11 | /** 12 | * @author yoqu 13 | * @date 2016/5/11 0011 14 | * @description 15 | */ 16 | 17 | public class NodeInvoke { 18 | 19 | private volatile static NodeInvoke userHook; 20 | 21 | public static NodeInvoke getInstance() { 22 | if (userHook == null) { 23 | synchronized (NodeInvoke.class) { 24 | userHook = (NodeInvoke) new FinalProxy().createProxy(NodeInvoke.class); 25 | } 26 | } 27 | return userHook; 28 | } 29 | 30 | @InvokeBefore("FindNodeByPage_Before") 31 | public Page findNodeByPage(int pageNumber) { 32 | return Node.dao.paginate(pageNumber, Integer.parseInt(SystemVariable.get(Constant.PAGE_SIZE).trim()), "select *", "from node where is_delete=0 order by create_date desc"); 33 | } 34 | 35 | public boolean softDelete(int id) { 36 | if (Db.update("update node set is_delete=1 where id=?", id) > 0) { 37 | return true; 38 | } else { 39 | return false; 40 | } 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/admin/modules/role/RoleAccessInvoke.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.admin.modules.role; 2 | 3 | import org.yoqu.cms.core.model.RoleAccess; 4 | import org.yoqu.cms.core.util.FinalProxy; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * file name : RoleAccessInvoke.java 10 | * created at : 21:39 2016-08-06. 11 | * created by 970655147 [970655147] 12 | */ 13 | public class RoleAccessInvoke { 14 | 15 | // single 16 | private volatile static RoleAccessInvoke singleton; 17 | public static RoleAccessInvoke getInstance() { 18 | if (singleton == null) { 19 | synchronized (RoleAccessInvoke.class) { 20 | if(singleton == null) { 21 | singleton = (RoleAccessInvoke) new FinalProxy().createProxy(RoleAccessInvoke.class); 22 | } 23 | } 24 | } 25 | return singleton; 26 | } 27 | 28 | /** 29 | * @Name: findRoleAccessByRoleId 30 | * @Description: 根据给定的roleId查询到其可以访问的页面的相关数据[role数量有限, 请注意缓存相关数据] 31 | * @Param [roleId] 32 | * @Return java.util.List 33 | * @Create at 2016-08-06 22:35 by '970655147' 34 | */ 35 | public List findRoleAccessByRoleId(int roleId) { 36 | return RoleAccess.dao.find("select * " + 37 | "from role_access " + 38 | "where is_delete=0 and rId=?", roleId); 39 | } 40 | 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/admin/modules/setting/SettingController.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.admin.modules.setting; 2 | 3 | import org.yoqu.cms.admin.modules.menu.MenuInvoke; 4 | import org.yoqu.cms.core.aop.SiteTitle; 5 | import org.yoqu.cms.core.config.FinalBaseController; 6 | import org.yoqu.cms.core.config.SystemVariable; 7 | 8 | import java.util.HashMap; 9 | import java.util.Map; 10 | 11 | /** 12 | * @author yoqu 13 | * @date 2016/5/16 0016 14 | * @description 15 | */ 16 | public class SettingController extends FinalBaseController { 17 | 18 | @SiteTitle("内容设置") 19 | public void node() { 20 | 21 | } 22 | 23 | @SiteTitle("其他设置") 24 | public void other() { 25 | 26 | } 27 | 28 | @SiteTitle("系统变量设置") 29 | public void systemVariable() { 30 | if (getPara() == null) { 31 | HashMap variables = SystemVariable.getMap(); 32 | 33 | setAttr("variables", variables); 34 | render("/admin/setting/variable.html"); 35 | return; 36 | } 37 | switch (getPara()){ 38 | case "save": 39 | Map result = getParaMap(); 40 | if(SystemVariableInvoke.getInstance().saveVariable(result)){ 41 | 42 | redirect("/admin/setting/systemVariable"); 43 | } 44 | else{ 45 | renderJSONError("保存失败"); 46 | } 47 | break; 48 | default: 49 | renderNotFound(); 50 | break; 51 | } 52 | 53 | 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/admin/modules/setting/SystemVariableInvoke.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.admin.modules.setting; 2 | 3 | import org.yoqu.cms.admin.modules.menu.MenuInvoke; 4 | import org.yoqu.cms.core.config.FinalBaseController; 5 | import org.yoqu.cms.core.config.Module; 6 | import org.yoqu.cms.core.config.SystemVariable; 7 | import org.yoqu.cms.core.model.Dictionary; 8 | import org.yoqu.cms.core.util.FinalProxy; 9 | 10 | import java.util.HashMap; 11 | import java.util.Map; 12 | 13 | /** 14 | * Created by yoqu on 16-5-27. 15 | */ 16 | public class SystemVariableInvoke { 17 | private volatile static SystemVariableInvoke systemHook; 18 | 19 | public static SystemVariableInvoke getInstance() { 20 | if (systemHook == null) { 21 | synchronized (MenuInvoke.class) { 22 | systemHook = (SystemVariableInvoke) new FinalProxy().createProxy(SystemVariableInvoke.class); 23 | } 24 | } 25 | return systemHook; 26 | } 27 | 28 | 29 | public boolean saveVariable(Map result) { 30 | boolean flag = true; 31 | for (Map.Entry item : result.entrySet()) { 32 | if (!Dictionary.dao.update(item.getKey(), item.getValue()[0])) { 33 | flag = false; 34 | } 35 | } 36 | SystemVariable.clearCache(); 37 | return flag; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/aop/Hook.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.aop; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Created by yoqu on 2016/4/22 0022. 10 | */ 11 | @Target(ElementType.TYPE) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface Hook { 14 | boolean value() default true; 15 | } 16 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/aop/InvokeAfter.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.aop; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * @author yoqu 10 | * @date 2016/4/29 0029 11 | * @description 12 | */ 13 | @Target(ElementType.METHOD) 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface InvokeAfter { 16 | String value() ; 17 | } 18 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/aop/InvokeBefore.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.aop; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * @Author yoqu 10 | * @date 2016-04-26 11 | * @description 该注解用来判断方法是否要被回调. 12 | */ 13 | @Target(ElementType.METHOD) 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface InvokeBefore { 16 | String value() ; 17 | } -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/aop/SiteTitle.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.aop; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Created by yoqu on 2016/4/19 0019. 10 | */ 11 | @Target(ElementType.METHOD) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface SiteTitle { 14 | String value() default ""; 15 | } 16 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/config/Constant.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.config; 2 | 3 | /** 4 | * Created by yoqu on 2016/4/4 0004. 5 | */ 6 | public class Constant { 7 | public static final String USER = "user"; 8 | 9 | 10 | public static final String RESULT = "result"; 11 | public static final String SUCCESS = "SUCCESS"; 12 | public static final String FAIL = "FAIL"; 13 | public static final String INFO = "information"; 14 | public static final String ROLE_ADMIN = "admin";//admin role name is admin. 15 | 16 | /**********system variable start**********/ 17 | public static final String SITE_TITLE="site_title"; 18 | public static final String ONLINE_USER = "online_user"; 19 | public static final String ROLE="role"; 20 | public static final String SITE_URL="site_url"; 21 | public static final String PAGE_SIZE="page_size"; 22 | /**********system variable end**********/ 23 | 24 | /***********render url start************/ 25 | public static final String RENDER_ACCESS_DENIED="/admin/noPermission.html"; 26 | public static final String RENDER_ACCESS_NOT_FOUND="/admin/404.html"; 27 | /***********render url end************/ 28 | 29 | 30 | 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/config/FinalCms.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.config; 2 | 3 | import com.jfinal.aop.Interceptor; 4 | import com.jfinal.handler.Handler; 5 | import org.yoqu.cms.core.module.ModuleHandler; 6 | 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | /** 11 | * Created by yoqu on 16/8/29. 12 | */ 13 | public class FinalCms { 14 | 15 | private List handlers=new ArrayList<>(); 16 | 17 | private List interceptors=new ArrayList<>(); 18 | 19 | public List getInterceptors() { 20 | return interceptors; 21 | } 22 | public Interceptor[] getInterceptortoArray(){ 23 | return interceptors.toArray(new Interceptor[interceptors.size()]); 24 | } 25 | private static volatile FinalCms finalCms; 26 | 27 | public static FinalCms getInstance(){ 28 | synchronized (FinalCms.class){ 29 | if (finalCms!=null){ 30 | return finalCms; 31 | }else{ 32 | finalCms=new FinalCms(); 33 | return finalCms; 34 | } 35 | } 36 | } 37 | 38 | /** 39 | * 执行构造方法时候默认初始化AdminHandler 40 | */ 41 | public FinalCms(){ 42 | initHandlers(); 43 | initInterceptor(); 44 | } 45 | //初始化handler 46 | public void initHandlers(){ 47 | Handler handler=new ModuleHandler(); 48 | handlers.add(handler); 49 | } 50 | public void initInterceptor(){ 51 | AuthManagerInterceptor authManager = new AuthManagerInterceptor(); 52 | this.interceptors.add(authManager); 53 | } 54 | 55 | public List getHandlers() { 56 | return handlers; 57 | } 58 | 59 | 60 | } 61 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/config/Module.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.config; 2 | 3 | import com.jfinal.plugin.ehcache.CacheKit; 4 | import com.jfinal.plugin.redis.Cache; 5 | 6 | /** 7 | * Created by yoqu on 16-5-27. 8 | */ 9 | public abstract class Module { 10 | public static final String MODULE="module"; 11 | /** 12 | * 清除指定模块缓存 13 | */ 14 | public static void clearCache(Object key){ 15 | CacheKit.remove(MODULE,key); 16 | } 17 | 18 | /** 19 | * 清除所有模块的缓存. 20 | */ 21 | public static void clearCache(){ 22 | CacheKit.removeAll(MODULE); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/config/StartFinalCMS.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.config; 2 | 3 | import com.jfinal.core.JFinal; 4 | import com.jfinal.kit.PathKit; 5 | 6 | /** 7 | * Created by yoqu on 2016/4/21 0021. 8 | */ 9 | public class StartFinalCMS { 10 | private static int START_PORT = 8080;//项目启动端口 11 | 12 | //项目启动 13 | public static void main(String[] args) { 14 | JFinal.start(detectWebAppDir(), START_PORT, "/", 5); 15 | } 16 | 17 | private static String detectWebAppDir() { 18 | String rootClassPath = PathKit.getRootClassPath(); 19 | String[] temp = null; 20 | if (rootClassPath.indexOf("\\WEB-INF\\") != -1) 21 | temp = rootClassPath.split("\\\\"); 22 | else if (rootClassPath.indexOf("/WEB-INF/") != -1) 23 | temp = rootClassPath.split("/"); 24 | else 25 | throw new RuntimeException("WEB-INF directory not found."); 26 | return temp[temp.length - 3]; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/config/SystemVariable.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.config; 2 | 3 | import com.jfinal.plugin.ehcache.CacheKit; 4 | import com.jfinal.plugin.ehcache.IDataLoader; 5 | import com.jfinal.plugin.redis.Cache; 6 | import org.yoqu.cms.core.model.Dictionary; 7 | 8 | import java.util.HashMap; 9 | import java.util.List; 10 | 11 | /** 12 | * Created by yoqu on 2016/4/19 0019. 13 | */ 14 | public class SystemVariable { 15 | 16 | public static final String MODULE="systemVariable"; 17 | public static final String KEY="adminVariables"; 18 | 19 | public void init() { 20 | 21 | } 22 | 23 | public static String get(String key) { 24 | HashMap dictionaries=getMap(); 25 | return dictionaries.get(key); 26 | } 27 | 28 | public static HashMap getMap(){ 29 | return CacheKit.get(MODULE, KEY, new IDataLoader() { 30 | @Override 31 | public Object load() { 32 | HashMap systemConstant = new HashMap(); 33 | for (Dictionary dictionary : Dictionary.dao.getDictionaryList()) { 34 | systemConstant.put(dictionary.getName(), dictionary.getValue()); 35 | } 36 | return systemConstant; 37 | } 38 | }); 39 | } 40 | 41 | /** 42 | * 清除系统变量缓存... 43 | */ 44 | public static void clearCache(){ 45 | CacheKit.remove(MODULE,KEY); 46 | } 47 | 48 | } 49 | 50 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/Client.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model; 2 | 3 | import org.yoqu.cms.core.model.base.BaseClient; 4 | 5 | /** 6 | * Generated by JFinal. 7 | */ 8 | @SuppressWarnings("serial") 9 | public class Client extends BaseClient { 10 | public static final Client dao = new Client(); 11 | } 12 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/Comment.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model; 2 | 3 | import org.yoqu.cms.core.model.base.BaseComment; 4 | 5 | /** 6 | * Generated by JFinal. 7 | */ 8 | @SuppressWarnings("serial") 9 | public class Comment extends BaseComment { 10 | public static final Comment dao = new Comment(); 11 | } 12 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/Dictionary.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model; 2 | 3 | import com.jfinal.plugin.activerecord.Db; 4 | import org.yoqu.cms.core.model.base.BaseDictionary; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * Generated by JFinal. 10 | */ 11 | @SuppressWarnings("serial") 12 | public class Dictionary extends BaseDictionary { 13 | public static final Dictionary dao = new Dictionary(); 14 | 15 | public List getDictionaryList() { 16 | return find("select * from dictionary"); 17 | } 18 | 19 | public List getDictionaryList(Integer dictionType) { 20 | return find("select * from dictionary where typeid=?", dictionType); 21 | } 22 | 23 | public boolean update(Object key, Object value){ 24 | return Db.update("update dictionary set value=? where name=? and is_delete=0",value,key)>0?true:false; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/DictionaryType.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model; 2 | 3 | import org.yoqu.cms.core.model.base.BaseDictionaryType; 4 | 5 | /** 6 | * Generated by JFinal. 7 | */ 8 | @SuppressWarnings("serial") 9 | public class DictionaryType extends BaseDictionaryType { 10 | public static final DictionaryType dao = new DictionaryType(); 11 | } 12 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/File.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model; 2 | 3 | import org.yoqu.cms.core.model.base.BaseFile; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * Generated by JFinal. 9 | */ 10 | @SuppressWarnings("serial") 11 | public class File extends BaseFile { 12 | public static final File dao = new File(); 13 | 14 | public void updateFile(String files,String moduleName,int fid){ 15 | List newFiles =dao.find("select * from file where id in(?) and fid=-1", files); 16 | if (newFiles.size() > 0) { 17 | for (File f:newFiles){ 18 | f.setFid(fid); 19 | f.setModule(moduleName); 20 | f.update(); 21 | } 22 | } 23 | } 24 | public List findDeleteFile(String files,int fid){ 25 | return File.dao.find("select * from file where id not in(?) and fid=?", files, fid); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/MenuType.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model; 2 | 3 | import org.yoqu.cms.core.model.base.BaseMenuType; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * Generated by JFinal. 9 | */ 10 | @SuppressWarnings("serial") 11 | public class MenuType extends BaseMenuType { 12 | public static final MenuType dao = new MenuType(); 13 | 14 | public List findAllMenuType(){ 15 | return find("select * from menu_type where is_delete=0"); 16 | } 17 | 18 | public MenuType findByIdFirst(int id){ 19 | return findFirst("select * from menu_type where is_delete=0 and id=?",id); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/Module.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model; 2 | 3 | import org.yoqu.cms.core.model.base.BaseModule; 4 | 5 | /** 6 | * Generated by JFinal. 7 | */ 8 | @SuppressWarnings("serial") 9 | public class Module extends BaseModule { 10 | public static final Module dao = new Module(); 11 | } 12 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/Node.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model; 2 | 3 | import org.yoqu.cms.admin.modules.user.UserInvoke; 4 | import org.yoqu.cms.core.model.base.BaseNode; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * Generated by JFinal. 10 | */ 11 | @SuppressWarnings("serial") 12 | public class Node extends BaseNode { 13 | public static final Node dao = new Node(); 14 | 15 | public User getUser() { 16 | return UserInvoke.getInstance().findUserById(getUid()); 17 | } 18 | 19 | public List getListFile() { 20 | return File.dao.find("select * from file where fid=? and module='node'", getId()); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/Role.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model; 2 | 3 | import org.yoqu.cms.core.config.Constant; 4 | import org.yoqu.cms.core.model.base.BaseRole; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * Generated by JFinal. 10 | */ 11 | @SuppressWarnings("serial") 12 | public class Role extends BaseRole { 13 | public static final Role dao = new Role(); 14 | 15 | public Role findAdminRole() { 16 | List roles = dao.find("select * from role where name=?", Constant.ROLE_ADMIN); 17 | if (roles.size() > 0) { 18 | return roles.get(0); 19 | } else 20 | return null; 21 | } 22 | public List findAllRole(){ 23 | return dao.find("select * from role"); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/RoleAccess.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model; 2 | 3 | import org.yoqu.cms.core.model.base.BaseRoleAccess; 4 | 5 | /** 6 | * Generated by JFinal. 7 | */ 8 | @SuppressWarnings("serial") 9 | public class RoleAccess extends BaseRoleAccess { 10 | public static final RoleAccess dao = new RoleAccess(); 11 | } 12 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/RolePermission.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model; 2 | 3 | import org.yoqu.cms.core.model.base.BaseRolePermission; 4 | 5 | /** 6 | * Generated by JFinal. 7 | */ 8 | @SuppressWarnings("serial") 9 | public class RolePermission extends BaseRolePermission { 10 | public static final RolePermission dao = new RolePermission(); 11 | } 12 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/Url.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model; 2 | 3 | import org.yoqu.cms.core.model.base.BaseUrl; 4 | 5 | /** 6 | * Generated by JFinal. 7 | */ 8 | @SuppressWarnings("serial") 9 | public class Url extends BaseUrl { 10 | public static final Url dao = new Url(); 11 | } 12 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/User.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model; 2 | 3 | import org.yoqu.cms.core.model.base.BaseUser; 4 | 5 | /** 6 | * Generated by JFinal. 7 | */ 8 | 9 | public class User extends BaseUser { 10 | public static final User dao = new User(); 11 | 12 | 13 | public Role getRole() { 14 | return Role.dao.findById(getRid()); 15 | } 16 | 17 | 18 | @Override 19 | public String toString() { 20 | return "ID:" + getId() + "Name: " + getName() + " Password: " + getPassword() + " createDate: " + getCreateDate() + " lastDate:" + getLastDate() + "role: " + getRole(); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/_MappingKit.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model; 2 | 3 | import com.jfinal.plugin.activerecord.ActiveRecordPlugin; 4 | 5 | /** 6 | * Generated by JFinal, do not modify this file. 7 | *
 8 |  * Example:
 9 |  * public void configPlugin(Plugins me) {
10 |  *     ActiveRecordPlugin arp = new ActiveRecordPlugin(...);
11 |  *     _MappingKit.mapping(arp);
12 |  *     me.add(arp);
13 |  * }
14 |  * 
15 | */ 16 | public class _MappingKit { 17 | 18 | public static void mapping(ActiveRecordPlugin arp) { 19 | arp.addMapping("client", "id", Client.class); 20 | arp.addMapping("comment", "id", Comment.class); 21 | arp.addMapping("dictionary", "id", Dictionary.class); 22 | arp.addMapping("dictionary_type", "id", DictionaryType.class); 23 | arp.addMapping("file", "id", File.class); 24 | arp.addMapping("menu", "id", Menu.class); 25 | arp.addMapping("menu_type", "id", MenuType.class); 26 | arp.addMapping("module", "id", Module.class); 27 | arp.addMapping("node", "id", Node.class); 28 | arp.addMapping("role", "id", Role.class); 29 | arp.addMapping("role_access", "id", RoleAccess.class); 30 | arp.addMapping("role_permission", "id", RolePermission.class); 31 | arp.addMapping("url", "id", Url.class); 32 | arp.addMapping("user", "id", User.class); 33 | } 34 | } 35 | 36 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/base/BaseClient.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model.base; 2 | 3 | import com.jfinal.plugin.activerecord.Model; 4 | import com.jfinal.plugin.activerecord.IBean; 5 | 6 | /** 7 | * Generated by JFinal, do not modify this file. 8 | */ 9 | @SuppressWarnings("serial") 10 | public abstract class BaseClient> extends Model implements IBean { 11 | 12 | public void setId(java.lang.Integer id) { 13 | set("id", id); 14 | } 15 | 16 | public java.lang.Integer getId() { 17 | return get("id"); 18 | } 19 | 20 | public void setUsername(java.lang.String username) { 21 | set("username", username); 22 | } 23 | 24 | public java.lang.String getUsername() { 25 | return get("username"); 26 | } 27 | 28 | public void setPassword(java.lang.String password) { 29 | set("password", password); 30 | } 31 | 32 | public java.lang.String getPassword() { 33 | return get("password"); 34 | } 35 | 36 | public void setAddress(java.lang.String address) { 37 | set("address", address); 38 | } 39 | 40 | public java.lang.String getAddress() { 41 | return get("address"); 42 | } 43 | 44 | public void setIsActive(java.lang.Integer isActive) { 45 | set("is_active", isActive); 46 | } 47 | 48 | public java.lang.Integer getIsActive() { 49 | return get("is_active"); 50 | } 51 | 52 | public void setIsDelete(java.lang.Integer isDelete) { 53 | set("is_delete", isDelete); 54 | } 55 | 56 | public java.lang.Integer getIsDelete() { 57 | return get("is_delete"); 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/base/BaseComment.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model.base; 2 | 3 | import com.jfinal.plugin.activerecord.Model; 4 | import com.jfinal.plugin.activerecord.IBean; 5 | 6 | /** 7 | * Generated by JFinal, do not modify this file. 8 | */ 9 | @SuppressWarnings("serial") 10 | public abstract class BaseComment> extends Model implements IBean { 11 | 12 | public void setId(java.lang.Integer id) { 13 | set("id", id); 14 | } 15 | 16 | public java.lang.Integer getId() { 17 | return get("id"); 18 | } 19 | 20 | public void setNid(java.lang.Integer nid) { 21 | set("nid", nid); 22 | } 23 | 24 | public java.lang.Integer getNid() { 25 | return get("nid"); 26 | } 27 | 28 | public void setUid(java.lang.Integer uid) { 29 | set("uid", uid); 30 | } 31 | 32 | public java.lang.Integer getUid() { 33 | return get("uid"); 34 | } 35 | 36 | public void setContent(java.lang.String content) { 37 | set("content", content); 38 | } 39 | 40 | public java.lang.String getContent() { 41 | return get("content"); 42 | } 43 | 44 | public void setIsDelete(java.lang.Integer isDelete) { 45 | set("is_delete", isDelete); 46 | } 47 | 48 | public java.lang.Integer getIsDelete() { 49 | return get("is_delete"); 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/base/BaseDictionary.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model.base; 2 | 3 | import com.jfinal.plugin.activerecord.Model; 4 | import com.jfinal.plugin.activerecord.IBean; 5 | 6 | /** 7 | * Generated by JFinal, do not modify this file. 8 | */ 9 | @SuppressWarnings("serial") 10 | public abstract class BaseDictionary> extends Model implements IBean { 11 | 12 | public void setId(java.lang.Integer id) { 13 | set("id", id); 14 | } 15 | 16 | public java.lang.Integer getId() { 17 | return get("id"); 18 | } 19 | 20 | public void setTypeid(java.lang.Integer typeid) { 21 | set("typeid", typeid); 22 | } 23 | 24 | public java.lang.Integer getTypeid() { 25 | return get("typeid"); 26 | } 27 | 28 | public void setName(java.lang.String name) { 29 | set("name", name); 30 | } 31 | 32 | public java.lang.String getName() { 33 | return get("name"); 34 | } 35 | 36 | public void setValue(java.lang.String value) { 37 | set("value", value); 38 | } 39 | 40 | public java.lang.String getValue() { 41 | return get("value"); 42 | } 43 | 44 | public void setRemark(java.lang.String remark) { 45 | set("remark", remark); 46 | } 47 | 48 | public java.lang.String getRemark() { 49 | return get("remark"); 50 | } 51 | 52 | public void setIsDelete(java.lang.Integer isDelete) { 53 | set("is_delete", isDelete); 54 | } 55 | 56 | public java.lang.Integer getIsDelete() { 57 | return get("is_delete"); 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/base/BaseDictionaryType.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model.base; 2 | 3 | import com.jfinal.plugin.activerecord.Model; 4 | import com.jfinal.plugin.activerecord.IBean; 5 | 6 | /** 7 | * Generated by JFinal, do not modify this file. 8 | */ 9 | @SuppressWarnings("serial") 10 | public abstract class BaseDictionaryType> extends Model implements IBean { 11 | 12 | public void setId(java.lang.Integer id) { 13 | set("id", id); 14 | } 15 | 16 | public java.lang.Integer getId() { 17 | return get("id"); 18 | } 19 | 20 | public void setName(java.lang.String name) { 21 | set("name", name); 22 | } 23 | 24 | public java.lang.String getName() { 25 | return get("name"); 26 | } 27 | 28 | public void setRemark(java.lang.String remark) { 29 | set("remark", remark); 30 | } 31 | 32 | public java.lang.String getRemark() { 33 | return get("remark"); 34 | } 35 | 36 | public void setIsDelete(java.lang.Integer isDelete) { 37 | set("is_delete", isDelete); 38 | } 39 | 40 | public java.lang.Integer getIsDelete() { 41 | return get("is_delete"); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/base/BaseFile.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model.base; 2 | 3 | import com.jfinal.plugin.activerecord.Model; 4 | import com.jfinal.plugin.activerecord.IBean; 5 | 6 | /** 7 | * Generated by JFinal, do not modify this file. 8 | */ 9 | @SuppressWarnings("serial") 10 | public abstract class BaseFile> extends Model implements IBean { 11 | 12 | public void setId(java.lang.Integer id) { 13 | set("id", id); 14 | } 15 | 16 | public java.lang.Integer getId() { 17 | return get("id"); 18 | } 19 | 20 | public void setName(java.lang.String name) { 21 | set("name", name); 22 | } 23 | 24 | public java.lang.String getName() { 25 | return get("name"); 26 | } 27 | 28 | public void setSize(java.lang.String size) { 29 | set("size", size); 30 | } 31 | 32 | public java.lang.String getSize() { 33 | return get("size"); 34 | } 35 | 36 | public void setPath(java.lang.String path) { 37 | set("path", path); 38 | } 39 | 40 | public java.lang.String getPath() { 41 | return get("path"); 42 | } 43 | 44 | public void setModule(java.lang.String module) { 45 | set("module", module); 46 | } 47 | 48 | public java.lang.String getModule() { 49 | return get("module"); 50 | } 51 | 52 | public void setFid(java.lang.Integer fid) { 53 | set("fid", fid); 54 | } 55 | 56 | public java.lang.Integer getFid() { 57 | return get("fid"); 58 | } 59 | 60 | public void setUploadTime(java.util.Date uploadTime) { 61 | set("upload_time", uploadTime); 62 | } 63 | 64 | public java.util.Date getUploadTime() { 65 | return get("upload_time"); 66 | } 67 | 68 | } 69 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/base/BaseMenu.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model.base; 2 | 3 | import com.jfinal.plugin.activerecord.Model; 4 | import com.jfinal.plugin.activerecord.IBean; 5 | 6 | /** 7 | * Generated by JFinal, do not modify this file. 8 | */ 9 | @SuppressWarnings("serial") 10 | public abstract class BaseMenu> extends Model implements IBean { 11 | 12 | public void setId(java.lang.Integer id) { 13 | set("id", id); 14 | } 15 | 16 | public java.lang.Integer getId() { 17 | return get("id"); 18 | } 19 | 20 | public void setName(java.lang.String name) { 21 | set("name", name); 22 | } 23 | 24 | public java.lang.String getName() { 25 | return get("name"); 26 | } 27 | 28 | public void setRemark(java.lang.String remark) { 29 | set("remark", remark); 30 | } 31 | 32 | public java.lang.String getRemark() { 33 | return get("remark"); 34 | } 35 | 36 | public void setType(java.lang.Integer type) { 37 | set("type", type); 38 | } 39 | 40 | public java.lang.Integer getType() { 41 | return get("type"); 42 | } 43 | 44 | public void setUrl(java.lang.String url) { 45 | set("url", url); 46 | } 47 | 48 | public java.lang.String getUrl() { 49 | return get("url"); 50 | } 51 | 52 | public void setFid(java.lang.Integer fid) { 53 | set("fid", fid); 54 | } 55 | 56 | public java.lang.Integer getFid() { 57 | return get("fid"); 58 | } 59 | 60 | public void setIsDelete(java.lang.Integer isDelete) { 61 | set("is_delete", isDelete); 62 | } 63 | 64 | public java.lang.Integer getIsDelete() { 65 | return get("is_delete"); 66 | } 67 | 68 | } 69 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/base/BaseMenuType.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model.base; 2 | 3 | import com.jfinal.plugin.activerecord.Model; 4 | import com.jfinal.plugin.activerecord.IBean; 5 | 6 | /** 7 | * Generated by JFinal, do not modify this file. 8 | */ 9 | @SuppressWarnings("serial") 10 | public abstract class BaseMenuType> extends Model implements IBean { 11 | 12 | public void setId(java.lang.Integer id) { 13 | set("id", id); 14 | } 15 | 16 | public java.lang.Integer getId() { 17 | return get("id"); 18 | } 19 | 20 | public void setName(java.lang.String name) { 21 | set("name", name); 22 | } 23 | 24 | public java.lang.String getName() { 25 | return get("name"); 26 | } 27 | 28 | public void setIsDelete(java.lang.Integer isDelete) { 29 | set("is_delete", isDelete); 30 | } 31 | 32 | public java.lang.Integer getIsDelete() { 33 | return get("is_delete"); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/base/BaseModule.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model.base; 2 | 3 | import com.jfinal.plugin.activerecord.Model; 4 | import com.jfinal.plugin.activerecord.IBean; 5 | 6 | /** 7 | * Generated by JFinal, do not modify this file. 8 | */ 9 | @SuppressWarnings("serial") 10 | public abstract class BaseModule> extends Model implements IBean { 11 | 12 | public void setId(java.lang.Integer id) { 13 | set("id", id); 14 | } 15 | 16 | public java.lang.Integer getId() { 17 | return get("id"); 18 | } 19 | 20 | public void setName(java.lang.String name) { 21 | set("name", name); 22 | } 23 | 24 | public java.lang.String getName() { 25 | return get("name"); 26 | } 27 | 28 | public void setModuleUrl(java.lang.String moduleUrl) { 29 | set("module_url", moduleUrl); 30 | } 31 | 32 | public java.lang.String getModuleUrl() { 33 | return get("module_url"); 34 | } 35 | 36 | public void setIsDelete(java.lang.String isDelete) { 37 | set("is_delete", isDelete); 38 | } 39 | 40 | public java.lang.String getIsDelete() { 41 | return get("is_delete"); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/base/BaseRole.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model.base; 2 | 3 | import com.jfinal.plugin.activerecord.Model; 4 | import com.jfinal.plugin.activerecord.IBean; 5 | 6 | /** 7 | * Generated by JFinal, do not modify this file. 8 | */ 9 | @SuppressWarnings("serial") 10 | public abstract class BaseRole> extends Model implements IBean { 11 | 12 | public void setId(java.lang.Integer id) { 13 | set("id", id); 14 | } 15 | 16 | public java.lang.Integer getId() { 17 | return get("id"); 18 | } 19 | 20 | public void setName(java.lang.String name) { 21 | set("name", name); 22 | } 23 | 24 | public java.lang.String getName() { 25 | return get("name"); 26 | } 27 | 28 | public void setIsDelete(java.lang.Integer isDelete) { 29 | set("is_delete", isDelete); 30 | } 31 | 32 | public java.lang.Integer getIsDelete() { 33 | return get("is_delete"); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/base/BaseRoleAccess.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model.base; 2 | 3 | import com.jfinal.plugin.activerecord.Model; 4 | import com.jfinal.plugin.activerecord.IBean; 5 | 6 | /** 7 | * Generated by JFinal, do not modify this file. 8 | */ 9 | @SuppressWarnings("serial") 10 | public abstract class BaseRoleAccess> extends Model implements IBean { 11 | 12 | public void setId(java.lang.Integer id) { 13 | set("id", id); 14 | } 15 | 16 | public java.lang.Integer getId() { 17 | return get("id"); 18 | } 19 | 20 | public void setRId(java.lang.Integer rId) { 21 | set("rId", rId); 22 | } 23 | 24 | public java.lang.Integer getRId() { 25 | return get("rId"); 26 | } 27 | 28 | public void setAccess(java.lang.String access) { 29 | set("access", access); 30 | } 31 | 32 | public java.lang.String getAccess() { 33 | return get("access"); 34 | } 35 | 36 | public void setIsDelete(java.lang.Integer isDelete) { 37 | set("is_delete", isDelete); 38 | } 39 | 40 | public java.lang.Integer getIsDelete() { 41 | return get("is_delete"); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/base/BaseRolePermission.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model.base; 2 | 3 | import com.jfinal.plugin.activerecord.Model; 4 | import com.jfinal.plugin.activerecord.IBean; 5 | 6 | /** 7 | * Generated by JFinal, do not modify this file. 8 | */ 9 | @SuppressWarnings("serial") 10 | public abstract class BaseRolePermission> extends Model implements IBean { 11 | 12 | public void setId(java.lang.Integer id) { 13 | set("id", id); 14 | } 15 | 16 | public java.lang.Integer getId() { 17 | return get("id"); 18 | } 19 | 20 | public void setRid(java.lang.Integer rid) { 21 | set("rid", rid); 22 | } 23 | 24 | public java.lang.Integer getRid() { 25 | return get("rid"); 26 | } 27 | 28 | public void setModule(java.lang.String module) { 29 | set("module", module); 30 | } 31 | 32 | public java.lang.String getModule() { 33 | return get("module"); 34 | } 35 | 36 | public void setMethod(java.lang.String method) { 37 | set("method", method); 38 | } 39 | 40 | public java.lang.String getMethod() { 41 | return get("method"); 42 | } 43 | 44 | public void setIsDelete(java.lang.Integer isDelete) { 45 | set("is_delete", isDelete); 46 | } 47 | 48 | public java.lang.Integer getIsDelete() { 49 | return get("is_delete"); 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/model/base/BaseUrl.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.model.base; 2 | 3 | import com.jfinal.plugin.activerecord.Model; 4 | import com.jfinal.plugin.activerecord.IBean; 5 | 6 | /** 7 | * Generated by JFinal, do not modify this file. 8 | */ 9 | @SuppressWarnings("serial") 10 | public abstract class BaseUrl> extends Model implements IBean { 11 | 12 | public void setId(java.lang.Integer id) { 13 | set("id", id); 14 | } 15 | 16 | public java.lang.Integer getId() { 17 | return get("id"); 18 | } 19 | 20 | public void setModule(java.lang.String module) { 21 | set("module", module); 22 | } 23 | 24 | public java.lang.String getModule() { 25 | return get("module"); 26 | } 27 | 28 | public void setMethod(java.lang.String method) { 29 | set("method", method); 30 | } 31 | 32 | public java.lang.String getMethod() { 33 | return get("method"); 34 | } 35 | 36 | public void setController(java.lang.String controller) { 37 | set("controller", controller); 38 | } 39 | 40 | public java.lang.String getController() { 41 | return get("controller"); 42 | } 43 | 44 | public void setView(java.lang.String view) { 45 | set("view", view); 46 | } 47 | 48 | public java.lang.String getView() { 49 | return get("view"); 50 | } 51 | 52 | public void setUrl(java.lang.String url) { 53 | set("url", url); 54 | } 55 | 56 | public java.lang.String getUrl() { 57 | return get("url"); 58 | } 59 | 60 | public void setIsDelete(java.lang.Integer isDelete) { 61 | set("is_delete", isDelete); 62 | } 63 | 64 | public java.lang.Integer getIsDelete() { 65 | return get("is_delete"); 66 | } 67 | 68 | } 69 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/util/JSONUtil.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.util; 2 | 3 | import com.jfinal.core.Controller; 4 | import org.json.JSONException; 5 | import org.json.JSONObject; 6 | import org.yoqu.cms.core.config.Constant; 7 | 8 | /** 9 | * Created by yoqu on 2016/4/18 0018. 10 | */ 11 | public class JSONUtil { 12 | 13 | public static JSONObject writeSuccessInformation(String info) throws JSONException { 14 | return new JSONObject().put(Constant.INFO, info).put(Constant.RESULT, Constant.SUCCESS); 15 | } 16 | 17 | public static String writeSuccess() throws JSONException { 18 | return new JSONObject().put(Constant.RESULT, Constant.SUCCESS).toString(); 19 | } 20 | 21 | public static JSONObject writeFailInformation(String info) throws JSONException { 22 | return new JSONObject().put(Constant.INFO, info).put(Constant.RESULT, Constant.FAIL); 23 | } 24 | 25 | public static String writeFail() throws JSONException { 26 | return new JSONObject().put(Constant.RESULT, Constant.FAIL).toString(); 27 | } 28 | public static void writeJSONError(Controller c){ 29 | c.renderJson("json error"); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/core/util/StringUtils.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.core.util; 2 | 3 | import java.util.regex.Pattern; 4 | 5 | /** 6 | * @author yoqu 7 | * @date 2016/5/11 0011 8 | * @description 9 | */ 10 | public class StringUtils { 11 | 12 | 13 | /** 14 | * 判断是否是数字,是数字返回真,否则返回假 15 | * 16 | * @param value 17 | * @return 18 | */ 19 | public static boolean isNumbervalue(String value) { 20 | return Pattern.compile("^\\d+$").matcher(value).find(); 21 | } 22 | 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/front/config/FrontRoutes.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.front.config; 2 | 3 | import com.jfinal.config.Routes; 4 | import org.yoqu.cms.front.modules.index.IndexController; 5 | import org.yoqu.cms.front.modules.node.NodeController; 6 | 7 | /** 8 | * @author yoqu 9 | * @date 2016/5/12 0012 10 | * @description 11 | */ 12 | public class FrontRoutes extends Routes { 13 | 14 | 15 | @Override 16 | public void config() { 17 | add("/", IndexController.class); 18 | add("node", NodeController.class); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/front/modules/index/IndexController.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.front.modules.index; 2 | 3 | import com.jfinal.plugin.activerecord.Page; 4 | import org.yoqu.cms.admin.modules.node.NodeInvoke; 5 | import org.yoqu.cms.core.aop.SiteTitle; 6 | import org.yoqu.cms.core.config.FinalBaseController; 7 | import org.yoqu.cms.core.model.Node; 8 | import org.yoqu.cms.plugin.serve.core.Notification; 9 | 10 | /** 11 | * @author yoqu 12 | * @date 2016/5/12 0012 13 | * @description 14 | */ 15 | public class IndexController extends FinalBaseController { 16 | @SiteTitle("首页") 17 | public void index() { 18 | int page = getPara("page") != null ? getParaToInt("page") : 1; 19 | Page nodeList = NodeInvoke.getInstance().findNodeByPage(page); 20 | setAttr("nodeList", nodeList); 21 | render("/front/index.html"); 22 | } 23 | 24 | @SiteTitle("yoqu — 一个简单的javaweb开发者") 25 | public void about() { 26 | render("/front/about.html"); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/front/modules/message/NotifyStackList.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.front.modules.message; 2 | 3 | import java.util.Stack; 4 | 5 | /** 6 | * @author yoqu 7 | * @date 2016/6/2 0002 8 | * @description 9 | */ 10 | public class NotifyStackList { 11 | 12 | private static Stack notifies= new Stack<>(); 13 | 14 | public static void push(Notify notify){ 15 | notifies.push(notify); 16 | } 17 | 18 | public static Notify pop(){ 19 | return notifies.pop(); 20 | } 21 | 22 | /** 23 | * 有消息返回真 24 | */ 25 | public static boolean isNotify(){ 26 | return !notifies.isEmpty(); 27 | } 28 | 29 | class Notify { 30 | 31 | private String content; 32 | private String title; 33 | private String display; 34 | private String status; 35 | 36 | public String getContent() { 37 | return content; 38 | } 39 | 40 | public void setContent(String content) { 41 | this.content = content; 42 | } 43 | 44 | public String getTitle() { 45 | return title; 46 | } 47 | 48 | public void setTitle(String title) { 49 | this.title = title; 50 | } 51 | 52 | public String getDisplay() { 53 | return display; 54 | } 55 | 56 | public void setDisplay(String display) { 57 | this.display = display; 58 | } 59 | 60 | public String getStatus() { 61 | return status; 62 | } 63 | 64 | public void setStatus(String status) { 65 | this.status = status; 66 | } 67 | } 68 | 69 | } 70 | 71 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/front/modules/node/NodeController.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.front.modules.node; 2 | 3 | import org.yoqu.cms.core.config.Constant; 4 | import org.yoqu.cms.core.config.FinalBaseController; 5 | import org.yoqu.cms.core.model.Node; 6 | import org.yoqu.cms.core.util.StringUtils; 7 | 8 | /** 9 | * @author yoqu 10 | * @date 2016/5/12 0012 11 | * @description 12 | */ 13 | public class NodeController extends FinalBaseController { 14 | 15 | public void index() { 16 | if (getPara() != null) { 17 | if (!StringUtils.isNumbervalue(getPara())) { 18 | renderNotFound(); 19 | } else { 20 | Node node = Node.dao.findById(getParaToInt()); 21 | if (node == null) { 22 | render(Constant.RENDER_ACCESS_NOT_FOUND); 23 | return; 24 | } 25 | setAttr("node", node); 26 | setAttr("site_title", node.getTitle()); 27 | render("/front/node/node.html"); 28 | } 29 | } else { 30 | renderNotFound(); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/plugin/serve/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | 3 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/plugin/serve/MyserveConfig.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.plugin.serve; 2 | 3 | import com.jfinal.kit.PropKit; 4 | import org.yoqu.cms.nima.LoginHandler; 5 | import org.yoqu.cms.plugin.serve.core.config.Constant; 6 | import org.yoqu.cms.plugin.serve.core.config.Routes; 7 | import org.yoqu.cms.plugin.serve.core.config.ServeConfig; 8 | 9 | /** 10 | * @author yoqu 11 | * @date 2016/6/28 0028 12 | * @description 13 | */ 14 | public class MyserveConfig extends ServeConfig { 15 | 16 | @Override 17 | public void configRoute(Routes routes) { 18 | routes.add("user", LoginHandler.class); 19 | } 20 | 21 | @Override 22 | public void configConstant(Constant constant) { 23 | constant.port=PropKit.use("socket_config.txt").getInt("port"); 24 | constant.hostname=PropKit.use("socket_config.txt").get("hostname"); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/plugin/serve/core/CodeFactory.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.plugin.serve.core; 2 | 3 | import org.apache.mina.core.session.IoSession; 4 | import org.apache.mina.filter.codec.ProtocolCodecFactory; 5 | import org.apache.mina.filter.codec.ProtocolDecoder; 6 | import org.apache.mina.filter.codec.ProtocolEncoder; 7 | 8 | /** 9 | * @author yoqu 10 | * @date 2016/6/20 0020 11 | * @description 12 | */ 13 | public class CodeFactory implements ProtocolCodecFactory { 14 | 15 | @Override 16 | public ProtocolEncoder getEncoder(IoSession ioSession) throws Exception { 17 | return new Encoder(); 18 | } 19 | 20 | @Override 21 | public ProtocolDecoder getDecoder(IoSession ioSession) throws Exception { 22 | return new Decoder(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/plugin/serve/core/Encoder.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.plugin.serve.core; 2 | 3 | import org.apache.mina.core.buffer.IoBuffer; 4 | import org.apache.mina.core.session.IoSession; 5 | import org.apache.mina.filter.codec.ProtocolEncoder; 6 | import org.apache.mina.filter.codec.ProtocolEncoderOutput; 7 | import org.apache.mina.filter.codec.textline.LineDelimiter; 8 | import org.slf4j.Logger; 9 | import org.slf4j.LoggerFactory; 10 | 11 | import java.nio.charset.Charset; 12 | 13 | /** 14 | * @author yoqu 15 | * @date 2016/6/21 0021 16 | * @description 17 | */ 18 | public class Encoder implements ProtocolEncoder { 19 | private final static Logger log= LoggerFactory.getLogger(Encoder.class); 20 | // private final static Logger log= LoggerFactory.getLogger(Encoder.class); 21 | private final static Charset charset =Charset.forName("UTF-8"); 22 | 23 | @Override 24 | public void encode(IoSession ioSession, Object o, ProtocolEncoderOutput protocolEncoderOutput) throws Exception { 25 | log.info("#########encode..######"); 26 | IoBuffer buffer= IoBuffer.allocate(100).setAutoExpand(true); 27 | buffer.putString(o.toString(),charset.newEncoder()); 28 | buffer.putString(LineDelimiter.DEFAULT.getValue(),charset.newEncoder()); 29 | buffer.flip(); 30 | protocolEncoderOutput.write(buffer); 31 | } 32 | 33 | @Override 34 | public void dispose(IoSession ioSession) throws Exception { 35 | log.info("##########dispose##########"); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/plugin/serve/core/MessageHandler.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.plugin.serve.core; 2 | 3 | import org.apache.mina.core.session.IoSession; 4 | import org.json.JSONException; 5 | import org.json.JSONObject; 6 | import org.yoqu.cms.plugin.serve.core.config.ClientSession; 7 | 8 | /** 9 | * @author yoqu 10 | * @date 2016/6/23 0023 11 | * @description 12 | */ 13 | public abstract class MessageHandler { 14 | protected JSONObject message; 15 | protected IoSession session;//current session. 16 | private String type; 17 | 18 | public String getType() { 19 | return type; 20 | } 21 | 22 | public void setType(String type) { 23 | this.type = type; 24 | } 25 | 26 | public void init(IoSession session, String type, JSONObject message) { 27 | this.session = session; 28 | this.type = type; 29 | this.message = message; 30 | } 31 | 32 | public IoSession getSession() { 33 | return session; 34 | } 35 | 36 | public void setSession(IoSession session) { 37 | this.session = session; 38 | } 39 | 40 | public String writeSuccess(String type) throws JSONException { 41 | JSONObject result = new JSONObject(); 42 | result.put("result", "success"); 43 | result.put("type", type); 44 | return result.toString(); 45 | } 46 | 47 | public String writeError(String information) { 48 | return writeError(information,type); 49 | } 50 | 51 | public String writeError(String information,String messageType){ 52 | return "{result:\"error\",type:\""+messageType+"\",log:\"" + information + "\"}"; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/plugin/serve/core/MessageHandlerInvocation.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.plugin.serve.core; 2 | 3 | /** 4 | * @author yoqu 5 | * @date 2016/6/29 0029 6 | * @description 7 | */ 8 | public class MessageHandlerInvocation { 9 | } 10 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/plugin/serve/core/Notification.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.plugin.serve.core; 2 | 3 | import org.slf4j.Logger; 4 | import org.slf4j.LoggerFactory; 5 | import org.yoqu.cms.plugin.serve.core.config.ClientSession; 6 | 7 | import java.util.Map; 8 | 9 | /** 10 | * @author yoqu 11 | * @date 2016/6/22 0022 12 | * @description 13 | */ 14 | public class Notification { 15 | 16 | private static final Logger log= LoggerFactory.getLogger(Notification.class); 17 | public static void sendBroadcast(String message){ 18 | log.info("sendBroadcast to all session user start"); 19 | if(LoginSessionManager.getInstance().getSize()==0){ 20 | log.info("empty session send broadcast."); 21 | return ; 22 | } 23 | for(Map.Entry entry: LoginSessionManager.getInstance().getSessions()){ 24 | entry.getValue().writeMessage(message); 25 | } 26 | } 27 | 28 | public static void sendBroadcast(ClientSession session,String message){ 29 | log.info("sendBroadcast to one session user.."); 30 | session.writeMessage(message); 31 | } 32 | 33 | public static void sendMessage(String username,String message){ 34 | ClientSession session =LoginSessionManager.getInstance().getSession(username); 35 | session.writeMessage(message); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/plugin/serve/core/config/Constant.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.plugin.serve.core.config; 2 | 3 | /** 4 | * @author yoqu 5 | * @date 2016/6/28 0028 6 | * @description 7 | */ 8 | public class Constant { 9 | public static String hostname="localhost"; 10 | public static int port=8888; 11 | public static final String DEFAULT_METHOD="index"; 12 | 13 | public static final String JSON_ERROR="{result:\"error\",type:\"info\",log:\"JSON error\"}"; 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/plugin/serve/core/config/ServeConfig.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.plugin.serve.core.config; 2 | 3 | /** 4 | * @author yoqu 5 | * @date 2016/6/28 0028 6 | * @description 7 | */ 8 | public abstract class ServeConfig { 9 | 10 | public abstract void configRoute(Routes routes); 11 | 12 | public abstract void configConstant(Constant constant); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/plugin/serve/core/parser/Parser.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.plugin.serve.core.parser; 2 | 3 | import org.apache.mina.core.session.IoSession; 4 | import org.yoqu.cms.plugin.serve.core.parser.exception.CommandMessageTypeException; 5 | import org.yoqu.cms.plugin.serve.core.parser.exception.MessageTypeException; 6 | 7 | /** 8 | * @author yoqu 9 | * @date 2016/6/22 0022 10 | * @description 11 | */ 12 | public interface Parser { 13 | 14 | boolean isAuthMessage(Object message); 15 | 16 | Object parserMessage(Object message, IoSession session) throws CommandMessageTypeException, Exception; 17 | } 18 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/plugin/serve/core/parser/exception/CommandMessageTypeException.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.plugin.serve.core.parser.exception; 2 | 3 | /** 4 | * @author yoqu 5 | * @date 2016/6/22 0022 6 | * @description 7 | */ 8 | public class CommandMessageTypeException extends MessageTypeException { 9 | 10 | public CommandMessageTypeException() { 11 | super("Command message type not match."); 12 | } 13 | 14 | public CommandMessageTypeException(String message){ 15 | super(message); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/org/yoqu/cms/plugin/serve/core/parser/exception/MessageTypeException.java: -------------------------------------------------------------------------------- 1 | package org.yoqu.cms.plugin.serve.core.parser.exception; 2 | 3 | /** 4 | * @author yoqu 5 | * @date 2016/6/22 0022 6 | * @description 7 | */ 8 | public class MessageTypeException extends Exception { 9 | 10 | public MessageTypeException() { 11 | this("Message Type not match."); 12 | } 13 | 14 | public MessageTypeException(String message){ 15 | super(message); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/test/Menu.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import java.io.Serializable; 4 | import java.util.ArrayList; 5 | import java.util.List; 6 | 7 | /** 8 | * Created by yoqu on 16-5-24. 9 | */ 10 | public class Menu implements Serializable { 11 | public int id; 12 | public int fid; 13 | public String name; 14 | public List menuList; 15 | 16 | public Menu() { 17 | 18 | } 19 | 20 | public Menu(int id, String name) { 21 | this.id = id; 22 | this.name = name; 23 | } 24 | 25 | public Menu(int id, String name, int fid) { 26 | this.id = id; 27 | this.name = name; 28 | this.fid = fid; 29 | } 30 | 31 | 32 | public void addChild(Menu menu) { 33 | if (menuList == null) { 34 | menuList = new ArrayList<>(); 35 | } 36 | menuList.add(menu); 37 | } 38 | 39 | @Override 40 | public String toString() { 41 | return "id: " + id + "fid:" + fid + "list:" + menuList; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/test/MenuArray.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | /** 7 | * Created by yoqu on 16-5-24. 8 | */ 9 | public class MenuArray { 10 | public List menus; 11 | 12 | public MenuArray() { 13 | init(); 14 | } 15 | 16 | public void init() { 17 | menus = new ArrayList<>(); 18 | } 19 | 20 | public void insertMenu(Menu menu) { 21 | if (menu.fid == -1) { 22 | menus.add(menu); 23 | return; 24 | } 25 | insertChild(this.menus,menu); 26 | } 27 | 28 | private void insertChild(List menuList, Menu menu) { 29 | menuList.stream().forEach(item -> { 30 | if (item.id == menu.fid) { 31 | item.addChild(menu); 32 | return; 33 | } 34 | if (item.menuList!=null) { 35 | insertChild(item.menuList, menu); 36 | } 37 | }); 38 | } 39 | 40 | @Override 41 | public String toString() { 42 | return menus.toString(); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/test/javaTest.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import java.io.OutputStream; 4 | import java.util.ArrayList; 5 | import java.util.Arrays; 6 | import java.util.List; 7 | import java.util.concurrent.ExecutionException; 8 | import java.util.concurrent.ExecutorService; 9 | import java.util.concurrent.Executors; 10 | import java.util.concurrent.Future; 11 | 12 | /** 13 | * Created by yoqu on 2016/4/20 0020. 14 | */ 15 | public class javaTest { 16 | 17 | public static void main(String[] args) { 18 | String a="abc\\123"; 19 | String result=a.replace("\\","fenge"); 20 | System.out.println(result); 21 | } 22 | 23 | 24 | 25 | } 26 | -------------------------------------------------------------------------------- /web/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | 3 | -------------------------------------------------------------------------------- /web/WEB-INF/classes/database_config.txt: -------------------------------------------------------------------------------- 1 | jdbcUrl = jdbc:mysql://127.0.0.1/blog?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull 2 | user = root 3 | password =usbw 4 | devMode = true -------------------------------------------------------------------------------- /web/WEB-INF/classes/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=INFO, stdout, file 2 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 4 | log4j.appender.stdout.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n 5 | 6 | # Output to the File 7 | log4j.appender.file=org.apache.log4j.FileAppender 8 | log4j.appender.file.File=./jfinal_demo.log 9 | log4j.appender.file.layout=org.apache.log4j.PatternLayout 10 | log4j.appender.file.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/config/AppConfig.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/config/AppConfig.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/Comment.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/Comment.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/Dictionary.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/Dictionary.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/DictionaryType.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/DictionaryType.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/Menu.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/Menu.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/Module.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/Module.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/Node.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/Node.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/Role.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/Role.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/RolePermission.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/RolePermission.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/Url.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/Url.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/User.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/User.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/_MappingKit.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/_MappingKit.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseComment.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseComment.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseDictionary.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseDictionary.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseDictionaryType.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseDictionaryType.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseMenu.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseMenu.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseModule.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseModule.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseNode.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseNode.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseRole.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseRole.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseRolePermission.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseRolePermission.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseUrl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseUrl.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseUser.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/model/base/BaseUser.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/util/JSONUtil.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/util/JSONUtil.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/util/ModelGenerator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/util/ModelGenerator.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/org/yoqu/cms/core/util/SqlHandle.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/org/yoqu/cms/core/util/SqlHandle.class -------------------------------------------------------------------------------- /web/WEB-INF/classes/socket_config.txt: -------------------------------------------------------------------------------- 1 | hostname = 10.210.36.135 2 | port = 8888 3 | config=org.yoqu.cms.plugin.serve.MyserveConfig -------------------------------------------------------------------------------- /web/WEB-INF/classes/test/javaTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/classes/test/javaTest.class -------------------------------------------------------------------------------- /web/WEB-INF/lib/c3p0-0.9.1.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/c3p0-0.9.1.2.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/commons-lang3-3.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/commons-lang3-3.4.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/cos-26Dec2008.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/cos-26Dec2008.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/ehcache-core-2.5.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/ehcache-core-2.5.2.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/freemarker-2.3.20.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/freemarker-2.3.20.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/javassist-3.11.0.GA.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/javassist-3.11.0.GA.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/jetty-server-8.1.8.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/jetty-server-8.1.8.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/jfinal-2.2-bin-with-src.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/jfinal-2.2-bin-with-src.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/jfinal-weixin-1.8-bin-with-src.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/jfinal-weixin-1.8-bin-with-src.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/json.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/json.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/jzlib-1.1.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/jzlib-1.1.3.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/log4j-1.2.16.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/log4j-1.2.16.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/mina-core-2.0.13.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/mina-core-2.0.13.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/mysql-connector-java-5.1.20-bin.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/mysql-connector-java-5.1.20-bin.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/ognl-3.1.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/ognl-3.1.2.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/slf4j-api-1.6.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/slf4j-api-1.6.1.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/slf4j-log4j12-1.6.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/slf4j-log4j12-1.6.1.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/spring-2.5.6.SEC03.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/spring-2.5.6.SEC03.jar -------------------------------------------------------------------------------- /web/WEB-INF/lib/xbean-spring-4.5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/WEB-INF/lib/xbean-spring-4.5.jar -------------------------------------------------------------------------------- /web/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | finalcms 7 | 8 | index.html 9 | index.htm 10 | index.jsp 11 | default.html 12 | default.htm 13 | default.jsp 14 | 15 | 16 | jfinal 17 | com.jfinal.core.JFinalFilter 18 | 19 | configClass 20 | org.yoqu.cms.core.config.AppConfig 21 | 22 | 23 | 24 | jfinal 25 | /* 26 | 27 | -------------------------------------------------------------------------------- /web/admin/css/custom/custom.min.css: -------------------------------------------------------------------------------- 1 | .input-field .select-wrapper { 2 | margin-left: 3rem; 3 | } 4 | #menu .input-field .select-wrapper { 5 | margin-left: 0; 6 | } 7 | .input-field div.error{ 8 | position: relative; 9 | top: -1rem; 10 | left: 0rem; 11 | font-size: 0.8rem; 12 | color:#FF4081; 13 | -webkit-transform: translateY(0%); 14 | -ms-transform: translateY(0%); 15 | -o-transform: translateY(0%); 16 | transform: translateY(0%); 17 | } 18 | .input-field label.active{ 19 | width:100%; 20 | } -------------------------------------------------------------------------------- /web/admin/css/jquery-jvectormap.css: -------------------------------------------------------------------------------- 1 | .jvectormap-label { 2 | position: absolute; 3 | display: none; 4 | border: solid 1px #000; 5 | -webkit-border-radius: 3px; 6 | -moz-border-radius: 3px; 7 | border-radius: 3px; 8 | background-color: #292929; 9 | background-color: rgba(0,0,0,0.8); 10 | color: white; 11 | font-size: 12px; 12 | padding: 4px 10px; 13 | } 14 | 15 | .jvectormap-zoomin, .jvectormap-zoomout { 16 | position: absolute; 17 | left: 10px; 18 | background: #fff; 19 | border:1px solid #f0f0f0; 20 | box-shadow: 0 1px 1px rgba(0,0,0,0.1); 21 | padding: 0px; 22 | font-weight: bold; 23 | font-size: 20px; 24 | color: #aaa; 25 | width: 24px; 26 | height: 24px; 27 | line-height: 22px; 28 | text-align: center; 29 | cursor: pointer; 30 | } 31 | 32 | .jvectormap-zoomin { 33 | top: 10px; 34 | } 35 | 36 | .jvectormap-zoomout { 37 | top: 33px; 38 | } 39 | -------------------------------------------------------------------------------- /web/admin/css/layouts/page-center.css: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | height: 100%; 4 | } 5 | html { 6 | display: table; 7 | margin: auto; 8 | } 9 | body { 10 | display: table-cell; 11 | vertical-align: middle; 12 | } -------------------------------------------------------------------------------- /web/admin/css/layouts/style-fullscreen.css: -------------------------------------------------------------------------------- 1 | #main, footer { 2 | padding-left: 0px; 3 | } 4 | 5 | @media only screen and (min-width: 992px) { 6 | .sidebar-collapse { 7 | top: -52px; 8 | } 9 | } 10 | 11 | header .brand-logo { 12 | margin: 1px 0px; 13 | padding: 14px 60px; 14 | } 15 | 16 | header .brand-logo img { 17 | width: 172px; 18 | } 19 | 20 | .menu-sidebar-collapse { 21 | margin: 0 10px 0 18px; 22 | } 23 | 24 | .header-search-wrapper { 25 | margin-left: 250px; 26 | } 27 | 28 | .doughnut-chart-status { 29 | top: -85px; 30 | } 31 | -------------------------------------------------------------------------------- /web/admin/css/layouts/style-horizontal.css: -------------------------------------------------------------------------------- 1 | #main, footer { 2 | padding-left: 0px; 3 | } 4 | 5 | header .brand-logo { 6 | margin: 1px 0px; 7 | padding: 14px 10px; 8 | } 9 | 10 | header .brand-logo img { 11 | width: 172px; 12 | } 13 | 14 | #layouts-horizontal .sidebar-collapse { 15 | position: absolute; 16 | left: 10px; 17 | top: 10px; 18 | z-index: 999; 19 | } 20 | 21 | #ul-horizontal-nav > li > a { 22 | padding: 0 8px; 23 | } 24 | 25 | #horizontal-nav { 26 | margin-top: 64px; 27 | z-index: -1; 28 | } 29 | 30 | @media only screen and (min-width: 993px) { 31 | #content { 32 | margin-top: 65px; 33 | } 34 | } 35 | 36 | .doughnut-chart-status { 37 | top: -85px; 38 | } 39 | 40 | /*---------------------------------------- 41 | Horizontal Menu 42 | ------------------------------------------*/ 43 | #horizontal-nav ul li { 44 | text-align: center; 45 | } 46 | 47 | #horizontal-nav ul li a i { 48 | height: 0px; 49 | line-height: 45px; 50 | font-size: 1.4rem; 51 | } 52 | 53 | #horizontal-nav ul li a span { 54 | position: relative; 55 | top: 12px; 56 | } 57 | 58 | #horizontal-nav .dropdown-menu span i { 59 | line-height: 65px; 60 | } 61 | 62 | .dropdown-horizontal-list li a { 63 | min-width: 150px; 64 | text-align: left; 65 | font-size: 1.0rem; 66 | padding: 10px; 67 | font-weight: 400; 68 | } 69 | 70 | /*IE Specific CSS */ 71 | @media screen and (min-width: 0\0) and (min-resolution: 72dpi) { 72 | #horizontal-nav ul li { 73 | min-width: 110px; 74 | } 75 | #horizontal-nav .dropdown-menu span i { 76 | line-height: 0px; 77 | position: absolute; 78 | top: 10px; 79 | right: -20px; 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /web/admin/css/style-fullscreen.css: -------------------------------------------------------------------------------- 1 | #main, footer { 2 | padding-left: 0px; 3 | } 4 | 5 | @media only screen and (min-width: 992px) { 6 | .sidebar-collapse { 7 | top: -52px; 8 | } 9 | } 10 | 11 | header .brand-logo { 12 | margin: 1px 0px; 13 | padding: 14px 60px; 14 | } 15 | 16 | header .brand-logo img { 17 | width: 172px; 18 | } 19 | 20 | .menu-sidebar-collapse { 21 | margin: 0 10px 0 18px; 22 | } 23 | 24 | .header-search-wrapper { 25 | margin-left: 250px; 26 | } 27 | 28 | .doughnut-chart-status { 29 | top: -85px; 30 | } 31 | -------------------------------------------------------------------------------- /web/admin/font/material-design-icons/Material-Design-Icons.eot-: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/material-design-icons/Material-Design-Icons.eot- -------------------------------------------------------------------------------- /web/admin/font/material-design-icons/Material-Design-Icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/material-design-icons/Material-Design-Icons.ttf -------------------------------------------------------------------------------- /web/admin/font/material-design-icons/Material-Design-Icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/material-design-icons/Material-Design-Icons.woff -------------------------------------------------------------------------------- /web/admin/font/material-design-icons/Material-Design-Icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/material-design-icons/Material-Design-Icons.woff2 -------------------------------------------------------------------------------- /web/admin/font/roboto/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/roboto/Roboto-Bold.ttf -------------------------------------------------------------------------------- /web/admin/font/roboto/Roboto-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/roboto/Roboto-Bold.woff -------------------------------------------------------------------------------- /web/admin/font/roboto/Roboto-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/roboto/Roboto-Bold.woff2 -------------------------------------------------------------------------------- /web/admin/font/roboto/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/roboto/Roboto-Light.ttf -------------------------------------------------------------------------------- /web/admin/font/roboto/Roboto-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/roboto/Roboto-Light.woff -------------------------------------------------------------------------------- /web/admin/font/roboto/Roboto-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/roboto/Roboto-Light.woff2 -------------------------------------------------------------------------------- /web/admin/font/roboto/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/roboto/Roboto-Medium.ttf -------------------------------------------------------------------------------- /web/admin/font/roboto/Roboto-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/roboto/Roboto-Medium.woff -------------------------------------------------------------------------------- /web/admin/font/roboto/Roboto-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/roboto/Roboto-Medium.woff2 -------------------------------------------------------------------------------- /web/admin/font/roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /web/admin/font/roboto/Roboto-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/roboto/Roboto-Regular.woff -------------------------------------------------------------------------------- /web/admin/font/roboto/Roboto-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/roboto/Roboto-Regular.woff2 -------------------------------------------------------------------------------- /web/admin/font/roboto/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/roboto/Roboto-Thin.ttf -------------------------------------------------------------------------------- /web/admin/font/roboto/Roboto-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/roboto/Roboto-Thin.woff -------------------------------------------------------------------------------- /web/admin/font/roboto/Roboto-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/font/roboto/Roboto-Thin.woff2 -------------------------------------------------------------------------------- /web/admin/images/amazon.jpg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/amazon.jpg.png -------------------------------------------------------------------------------- /web/admin/images/avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/avatar.jpg -------------------------------------------------------------------------------- /web/admin/images/favicon/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/favicon/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /web/admin/images/favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /web/admin/images/flag-icons/China.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/flag-icons/China.png -------------------------------------------------------------------------------- /web/admin/images/flag-icons/France.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/flag-icons/France.png -------------------------------------------------------------------------------- /web/admin/images/flag-icons/Germany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/flag-icons/Germany.png -------------------------------------------------------------------------------- /web/admin/images/flag-icons/United-States.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/flag-icons/United-States.png -------------------------------------------------------------------------------- /web/admin/images/gallary/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/1.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/10.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/11.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/12.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/13.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/14.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/15.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/16.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/17.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/18.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/19.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/2.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/20.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/25.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/26.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/3.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/30.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/33.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/33.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/4.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/5.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/6.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/7.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/8.jpg -------------------------------------------------------------------------------- /web/admin/images/gallary/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/gallary/9.jpg -------------------------------------------------------------------------------- /web/admin/images/generic-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/generic-logo.png -------------------------------------------------------------------------------- /web/admin/images/img2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/img2.jpg -------------------------------------------------------------------------------- /web/admin/images/img3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/img3.jpg -------------------------------------------------------------------------------- /web/admin/images/img4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/img4.jpg -------------------------------------------------------------------------------- /web/admin/images/img5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/img5.jpg -------------------------------------------------------------------------------- /web/admin/images/img6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/img6.jpg -------------------------------------------------------------------------------- /web/admin/images/img7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/img7.jpg -------------------------------------------------------------------------------- /web/admin/images/img8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/img8.jpg -------------------------------------------------------------------------------- /web/admin/images/login-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/login-logo.png -------------------------------------------------------------------------------- /web/admin/images/map-marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/map-marker.png -------------------------------------------------------------------------------- /web/admin/images/materialize-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/materialize-logo.png -------------------------------------------------------------------------------- /web/admin/images/office.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/office.jpg -------------------------------------------------------------------------------- /web/admin/images/sample-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/sample-1.jpg -------------------------------------------------------------------------------- /web/admin/images/signature-scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/signature-scan.png -------------------------------------------------------------------------------- /web/admin/images/style_typography_roboto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/style_typography_roboto.png -------------------------------------------------------------------------------- /web/admin/images/user-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/user-bg.jpg -------------------------------------------------------------------------------- /web/admin/images/user-profile-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/images/user-profile-bg.jpg -------------------------------------------------------------------------------- /web/admin/js/plugins/data-tables/data-tables-script.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){ 2 | $('#data-table-simple').DataTable(); 3 | 4 | 5 | var table = $('#data-table-row-grouping').DataTable({ 6 | "columnDefs": [ 7 | { "visible": false, "targets": 2 } 8 | ], 9 | "order": [[ 2, 'asc' ]], 10 | "displayLength": 25, 11 | "drawCallback": function ( settings ) { 12 | var api = this.api(); 13 | var rows = api.rows( {page:'current'} ).nodes(); 14 | var last=null; 15 | 16 | api.column(2, {page:'current'} ).data().each( function ( group, i ) { 17 | if ( last !== group ) { 18 | $(rows).eq( i ).before( 19 | ''+group+'' 20 | ); 21 | 22 | last = group; 23 | } 24 | } ); 25 | } 26 | }); 27 | 28 | // Order by the grouping 29 | $('#data-table-row-grouping tbody').on( 'click', 'tr.group', function () { 30 | var currentOrder = table.order()[0]; 31 | if ( currentOrder[0] === 2 && currentOrder[1] === 'asc' ) { 32 | table.order( [ 2, 'desc' ] ).draw(); 33 | } 34 | else { 35 | table.order( [ 2, 'asc' ] ).draw(); 36 | } 37 | } ); 38 | 39 | 40 | }); -------------------------------------------------------------------------------- /web/admin/js/plugins/data-tables/images/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/data-tables/images/sort_asc.png -------------------------------------------------------------------------------- /web/admin/js/plugins/data-tables/images/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/data-tables/images/sort_asc_disabled.png -------------------------------------------------------------------------------- /web/admin/js/plugins/data-tables/images/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/data-tables/images/sort_both.png -------------------------------------------------------------------------------- /web/admin/js/plugins/data-tables/images/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/data-tables/images/sort_desc.png -------------------------------------------------------------------------------- /web/admin/js/plugins/data-tables/images/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/data-tables/images/sort_desc_disabled.png -------------------------------------------------------------------------------- /web/admin/js/plugins/dropify/fonts/dropify.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/dropify/fonts/dropify.eot -------------------------------------------------------------------------------- /web/admin/js/plugins/dropify/fonts/dropify.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/dropify/fonts/dropify.ttf -------------------------------------------------------------------------------- /web/admin/js/plugins/dropify/fonts/dropify.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/dropify/fonts/dropify.woff -------------------------------------------------------------------------------- /web/admin/js/plugins/editable-table/numeric-input-example.js: -------------------------------------------------------------------------------- 1 | /* global $ */ 2 | /* this is an example for validation and change events */ 3 | $.fn.numericInputExample = function () { 4 | 'use strict'; 5 | var element = $(this), 6 | footer = element.find('tfoot tr'), 7 | dataRows = element.find('tbody tr'), 8 | initialTotal = function () { 9 | var column, total; 10 | for (column = 1; column < footer.children().size(); column++) { 11 | total = 0; 12 | dataRows.each(function () { 13 | var row = $(this); 14 | total += parseFloat(row.children().eq(column).text()); 15 | }); 16 | footer.children().eq(column).text(total); 17 | }; 18 | }; 19 | element.find('td').on('change', function (evt) { 20 | var cell = $(this), 21 | column = cell.index(), 22 | total = 0; 23 | if (column === 0) { 24 | return; 25 | } 26 | element.find('tbody tr').each(function () { 27 | var row = $(this); 28 | total += parseFloat(row.children().eq(column).text()); 29 | }); 30 | if (column === 1 && total > 5000) { 31 | $('.alert').show(); 32 | return false; // changes can be rejected 33 | } else { 34 | $('.alert').hide(); 35 | footer.children().eq(column).text(total); 36 | } 37 | }).on('validate', function (evt, value) { 38 | var cell = $(this), 39 | column = cell.index(); 40 | if (column === 0) { 41 | return !!value && value.trim().length > 0; 42 | } else { 43 | return !isNaN(parseFloat(value)) && isFinite(value); 44 | } 45 | }); 46 | initialTotal(); 47 | return this; 48 | }; 49 | -------------------------------------------------------------------------------- /web/admin/js/plugins/ionRangeSlider/img/sprite-skin-flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/ionRangeSlider/img/sprite-skin-flat.png -------------------------------------------------------------------------------- /web/admin/js/plugins/jquery-cookies/jquery.cookies.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery Cookie Plugin v1.1 3 | * https://github.com/carhartl/jquery-cookie 4 | * 5 | * Copyright 2011, Klaus Hartl 6 | * Dual licensed under the MIT or GPL Version 2 licenses. 7 | * http://www.opensource.org/licenses/mit-license.php 8 | * http://www.opensource.org/licenses/GPL-2.0 9 | */ 10 | (function(e,t){function r(e){return e}function i(e){return decodeURIComponent(e.replace(n," "))}var n=/\+/g;e.cookie=function(n,s,o){if(arguments.length>1&&(!/Object/.test(Object.prototype.toString.call(s))||s==null)){o=e.extend({},e.cookie.defaults,o);if(s==null){o.expires=-1}if(typeof o.expires==="number"){var u=o.expires,a=o.expires=new Date;a.setDate(a.getDate()+u)}s=String(s);return t.cookie=[encodeURIComponent(n),"=",o.raw?s:encodeURIComponent(s),o.expires?"; expires="+o.expires.toUTCString():"",o.path?"; path="+o.path:"",o.domain?"; domain="+o.domain:"",o.secure?"; secure":""].join("")}o=s||e.cookie.defaults||{};var f=o.raw?r:i;var l=t.cookie.split("; ");for(var c=0,h;h=l[c]&&l[c].split("=");c++){if(f(h.shift())===n){return f(h.join("="))}}return null};e.cookie.defaults={};e.removeCookie=function(t,n){if(e.cookie(t)!==undefined){e.cookie(t,"",e.extend({},n,{expires:-1}));return true}return false}})(jQuery,document) -------------------------------------------------------------------------------- /web/admin/js/plugins/jvectormap/jquery-jvectormap.css: -------------------------------------------------------------------------------- 1 | .jvectormap-label { 2 | position: absolute; 3 | display: none; 4 | border: solid 1px #000; 5 | -webkit-border-radius: 3px; 6 | -moz-border-radius: 3px; 7 | border-radius: 3px; 8 | background-color: #292929; 9 | background-color: rgba(0,0,0,0.8); 10 | color: white; 11 | font-size: 12px; 12 | padding: 4px 10px; 13 | } 14 | 15 | .jvectormap-zoomin, .jvectormap-zoomout { 16 | position: absolute; 17 | left: 10px; 18 | background: #fff; 19 | border:1px solid #f0f0f0; 20 | box-shadow: 0 1px 1px rgba(0,0,0,0.1); 21 | padding: 0px; 22 | font-weight: bold; 23 | font-size: 20px; 24 | color: #aaa; 25 | width: 24px; 26 | height: 24px; 27 | line-height: 22px; 28 | text-align: center; 29 | cursor: pointer; 30 | } 31 | 32 | .jvectormap-zoomin { 33 | top: 10px; 34 | } 35 | 36 | .jvectormap-zoomout { 37 | top: 33px; 38 | } 39 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/css/editormd.logo.min.css: -------------------------------------------------------------------------------- 1 | /*! Editor.md v1.5.0 | editormd.logo.min.css | Open source online markdown editor. | MIT License | By: Pandao | https://github.com/pandao/editor.md | 2015-06-09 */ 2 | /*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */@font-face{font-family:editormd-logo;src:url(../fonts/editormd-logo.eot?-5y8q6h);src:url(.../fonts/editormd-logo.eot?#iefix-5y8q6h)format("embedded-opentype"),url(../fonts/editormd-logo.woff?-5y8q6h)format("woff"),url(../fonts/editormd-logo.ttf?-5y8q6h)format("truetype"),url(../fonts/editormd-logo.svg?-5y8q6h#icomoon)format("svg");font-weight:400;font-style:normal}.editormd-logo,.editormd-logo-1x,.editormd-logo-2x,.editormd-logo-3x,.editormd-logo-4x,.editormd-logo-5x,.editormd-logo-6x,.editormd-logo-7x,.editormd-logo-8x{font-family:editormd-logo;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;font-size:inherit;line-height:1;display:inline-block;text-rendering:auto;vertical-align:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.editormd-logo-1x:before,.editormd-logo-2x:before,.editormd-logo-3x:before,.editormd-logo-4x:before,.editormd-logo-5x:before,.editormd-logo-6x:before,.editormd-logo-7x:before,.editormd-logo-8x:before,.editormd-logo:before{content:"\e1987"}.editormd-logo-1x{font-size:1em}.editormd-logo-lg{font-size:1.2em}.editormd-logo-2x{font-size:2em}.editormd-logo-3x{font-size:3em}.editormd-logo-4x{font-size:4em}.editormd-logo-5x{font-size:5em}.editormd-logo-6x{font-size:6em}.editormd-logo-7x{font-size:7em}.editormd-logo-8x{font-size:8em}.editormd-logo-color{color:#2196F3} -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/fonts/editormd-logo.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/fonts/editormd-logo.eot -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/fonts/editormd-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Generated by IcoMoon 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/fonts/editormd-logo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/fonts/editormd-logo.ttf -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/fonts/editormd-logo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/fonts/editormd-logo.woff -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/loading.gif -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/loading@2x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/loading@2x.gif -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/loading@3x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/loading@3x.gif -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-favicon-16x16.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-favicon-16x16.ico -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-favicon-24x24.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-favicon-24x24.ico -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-favicon-32x32.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-favicon-32x32.ico -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-favicon-48x48.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-favicon-48x48.ico -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-favicon-64x64.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-favicon-64x64.ico -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-logo-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-logo-114x114.png -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-logo-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-logo-120x120.png -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-logo-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-logo-144x144.png -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-logo-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-logo-16x16.png -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-logo-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-logo-180x180.png -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-logo-240x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-logo-240x240.png -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-logo-24x24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-logo-24x24.png -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-logo-320x320.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-logo-320x320.png -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-logo-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-logo-32x32.png -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-logo-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-logo-48x48.png -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-logo-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-logo-57x57.png -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-logo-64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-logo-64x64.png -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-logo-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-logo-72x72.png -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/editormd-logo-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/editormd-logo-96x96.png -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/images/logos/vi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/admin/js/plugins/markdown-js/images/logos/vi.png -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2014 by Marijn Haverbeke and others 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/README.md: -------------------------------------------------------------------------------- 1 | # CodeMirror 2 | [![Build Status](https://travis-ci.org/codemirror/CodeMirror.svg)](https://travis-ci.org/codemirror/CodeMirror) 3 | [![NPM version](https://img.shields.io/npm/v/codemirror.svg)](https://www.npmjs.org/package/codemirror) 4 | [Funding status: ![maintainer happiness](https://marijnhaverbeke.nl/fund/status_s.png)](https://marijnhaverbeke.nl/fund/) 5 | 6 | CodeMirror is a JavaScript component that provides a code editor in 7 | the browser. When a mode is available for the language you are coding 8 | in, it will color your code, and optionally help with indentation. 9 | 10 | The project page is http://codemirror.net 11 | The manual is at http://codemirror.net/doc/manual.html 12 | The contributing guidelines are in [CONTRIBUTING.md](https://github.com/codemirror/CodeMirror/blob/master/CONTRIBUTING.md) 13 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/addon/dialog/dialog.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-dialog { 2 | position: absolute; 3 | left: 0; right: 0; 4 | background: white; 5 | z-index: 15; 6 | padding: .1em .8em; 7 | overflow: hidden; 8 | color: #333; 9 | } 10 | 11 | .CodeMirror-dialog-top { 12 | border-bottom: 1px solid #eee; 13 | top: 0; 14 | } 15 | 16 | .CodeMirror-dialog-bottom { 17 | border-top: 1px solid #eee; 18 | bottom: 0; 19 | } 20 | 21 | .CodeMirror-dialog input { 22 | border: none; 23 | outline: none; 24 | background: transparent; 25 | width: 20em; 26 | color: inherit; 27 | font-family: monospace; 28 | } 29 | 30 | .CodeMirror-dialog button { 31 | font-size: 70%; 32 | } 33 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/addon/display/fullscreen.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-fullscreen { 2 | position: fixed; 3 | top: 0; left: 0; right: 0; bottom: 0; 4 | height: auto; 5 | z-index: 9; 6 | } 7 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/addon/edit/trailingspace.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | CodeMirror.defineOption("showTrailingSpace", false, function(cm, val, prev) { 13 | if (prev == CodeMirror.Init) prev = false; 14 | if (prev && !val) 15 | cm.removeOverlay("trailingspace"); 16 | else if (!prev && val) 17 | cm.addOverlay({ 18 | token: function(stream) { 19 | for (var l = stream.string.length, i = l; i && /\s/.test(stream.string.charAt(i - 1)); --i) {} 20 | if (i > stream.pos) { stream.pos = i; return null; } 21 | stream.pos = l; 22 | return "trailingspace"; 23 | }, 24 | name: "trailingspace" 25 | }); 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/addon/fold/foldgutter.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-foldmarker { 2 | color: blue; 3 | text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px; 4 | font-family: arial; 5 | line-height: .3; 6 | cursor: pointer; 7 | } 8 | .CodeMirror-foldgutter { 9 | width: .7em; 10 | } 11 | .CodeMirror-foldgutter-open, 12 | .CodeMirror-foldgutter-folded { 13 | cursor: pointer; 14 | } 15 | .CodeMirror-foldgutter-open:after { 16 | content: "\25BE"; 17 | } 18 | .CodeMirror-foldgutter-folded:after { 19 | content: "\25B8"; 20 | } 21 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/addon/hint/show-hint.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-hints { 2 | position: absolute; 3 | z-index: 10; 4 | overflow: hidden; 5 | list-style: none; 6 | 7 | margin: 0; 8 | padding: 2px; 9 | 10 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 11 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 12 | box-shadow: 2px 3px 5px rgba(0,0,0,.2); 13 | border-radius: 3px; 14 | border: 1px solid silver; 15 | 16 | background: white; 17 | font-size: 90%; 18 | font-family: monospace; 19 | 20 | max-height: 20em; 21 | overflow-y: auto; 22 | } 23 | 24 | .CodeMirror-hint { 25 | margin: 0; 26 | padding: 0 4px; 27 | border-radius: 2px; 28 | max-width: 19em; 29 | overflow: hidden; 30 | white-space: pre; 31 | color: black; 32 | cursor: pointer; 33 | } 34 | 35 | li.CodeMirror-hint-active { 36 | background: #08f; 37 | color: white; 38 | } 39 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/addon/lint/coffeescript-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on coffeelint.js from http://www.coffeelint.org/js/coffeelint.js 5 | 6 | // declare global: coffeelint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "coffeescript", function(text) { 19 | var found = []; 20 | var parseError = function(err) { 21 | var loc = err.lineNumber; 22 | found.push({from: CodeMirror.Pos(loc-1, 0), 23 | to: CodeMirror.Pos(loc, 0), 24 | severity: err.level, 25 | message: err.message}); 26 | }; 27 | try { 28 | var res = coffeelint.lint(text); 29 | for(var i = 0; i < res.length; i++) { 30 | parseError(res[i]); 31 | } 32 | } catch(e) { 33 | found.push({from: CodeMirror.Pos(e.location.first_line, 0), 34 | to: CodeMirror.Pos(e.location.last_line, e.location.last_column), 35 | severity: 'error', 36 | message: e.message}); 37 | } 38 | return found; 39 | }); 40 | 41 | }); 42 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/addon/lint/css-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on csslint.js from https://github.com/stubbornella/csslint 5 | 6 | // declare global: CSSLint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "css", function(text) { 19 | var found = []; 20 | if (!window.CSSLint) return found; 21 | var results = CSSLint.verify(text), messages = results.messages, message = null; 22 | for ( var i = 0; i < messages.length; i++) { 23 | message = messages[i]; 24 | var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col; 25 | found.push({ 26 | from: CodeMirror.Pos(startLine, startCol), 27 | to: CodeMirror.Pos(endLine, endCol), 28 | message: message.message, 29 | severity : message.type 30 | }); 31 | } 32 | return found; 33 | }); 34 | 35 | }); 36 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/addon/lint/json-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on jsonlint.js from https://github.com/zaach/jsonlint 5 | 6 | // declare global: jsonlint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "json", function(text) { 19 | var found = []; 20 | jsonlint.parseError = function(str, hash) { 21 | var loc = hash.loc; 22 | found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column), 23 | to: CodeMirror.Pos(loc.last_line - 1, loc.last_column), 24 | message: str}); 25 | }; 26 | try { jsonlint.parse(text); } 27 | catch(e) {} 28 | return found; 29 | }); 30 | 31 | }); 32 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/addon/lint/yaml-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | // Depends on js-yaml.js from https://github.com/nodeca/js-yaml 15 | 16 | // declare global: jsyaml 17 | 18 | CodeMirror.registerHelper("lint", "yaml", function(text) { 19 | var found = []; 20 | try { jsyaml.load(text); } 21 | catch(e) { 22 | var loc = e.mark; 23 | found.push({ from: CodeMirror.Pos(loc.line, loc.column), to: CodeMirror.Pos(loc.line, loc.column), message: e.message }); 24 | } 25 | return found; 26 | }); 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/addon/mode/multiplex_test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function() { 5 | CodeMirror.defineMode("markdown_with_stex", function(){ 6 | var inner = CodeMirror.getMode({}, "stex"); 7 | var outer = CodeMirror.getMode({}, "markdown"); 8 | 9 | var innerOptions = { 10 | open: '$', 11 | close: '$', 12 | mode: inner, 13 | delimStyle: 'delim', 14 | innerStyle: 'inner' 15 | }; 16 | 17 | return CodeMirror.multiplexingMode(outer, innerOptions); 18 | }); 19 | 20 | var mode = CodeMirror.getMode({}, "markdown_with_stex"); 21 | 22 | function MT(name) { 23 | test.mode( 24 | name, 25 | mode, 26 | Array.prototype.slice.call(arguments, 1), 27 | 'multiplexing'); 28 | } 29 | 30 | MT( 31 | "stexInsideMarkdown", 32 | "[strong **Equation:**] [delim $][inner&tag \\pi][delim $]"); 33 | })(); 34 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/addon/runmode/colorize.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror"), require("./runmode")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror", "./runmode"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | var isBlock = /^(p|li|div|h\\d|pre|blockquote|td)$/; 15 | 16 | function textContent(node, out) { 17 | if (node.nodeType == 3) return out.push(node.nodeValue); 18 | for (var ch = node.firstChild; ch; ch = ch.nextSibling) { 19 | textContent(ch, out); 20 | if (isBlock.test(node.nodeType)) out.push("\n"); 21 | } 22 | } 23 | 24 | CodeMirror.colorize = function(collection, defaultMode) { 25 | if (!collection) collection = document.body.getElementsByTagName("pre"); 26 | 27 | for (var i = 0; i < collection.length; ++i) { 28 | var node = collection[i]; 29 | var mode = node.getAttribute("data-lang") || defaultMode; 30 | if (!mode) continue; 31 | 32 | var text = []; 33 | textContent(node, text); 34 | node.innerHTML = ""; 35 | CodeMirror.runMode(text.join(""), mode, node); 36 | 37 | node.className += " cm-s-default"; 38 | } 39 | }; 40 | }); 41 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/addon/scroll/simplescrollbars.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div { 2 | position: absolute; 3 | background: #ccc; 4 | -moz-box-sizing: border-box; 5 | box-sizing: border-box; 6 | border: 1px solid #bbb; 7 | border-radius: 2px; 8 | } 9 | 10 | .CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical { 11 | position: absolute; 12 | z-index: 6; 13 | background: #eee; 14 | } 15 | 16 | .CodeMirror-simplescroll-horizontal { 17 | bottom: 0; left: 0; 18 | height: 8px; 19 | } 20 | .CodeMirror-simplescroll-horizontal div { 21 | bottom: 0; 22 | height: 100%; 23 | } 24 | 25 | .CodeMirror-simplescroll-vertical { 26 | right: 0; top: 0; 27 | width: 8px; 28 | } 29 | .CodeMirror-simplescroll-vertical div { 30 | right: 0; 31 | width: 100%; 32 | } 33 | 34 | 35 | .CodeMirror-overlayscroll .CodeMirror-scrollbar-filler, .CodeMirror-overlayscroll .CodeMirror-gutter-filler { 36 | display: none; 37 | } 38 | 39 | .CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div { 40 | position: absolute; 41 | background: #bcd; 42 | border-radius: 3px; 43 | } 44 | 45 | .CodeMirror-overlayscroll-horizontal, .CodeMirror-overlayscroll-vertical { 46 | position: absolute; 47 | z-index: 6; 48 | } 49 | 50 | .CodeMirror-overlayscroll-horizontal { 51 | bottom: 0; left: 0; 52 | height: 6px; 53 | } 54 | .CodeMirror-overlayscroll-horizontal div { 55 | bottom: 0; 56 | height: 100%; 57 | } 58 | 59 | .CodeMirror-overlayscroll-vertical { 60 | right: 0; top: 0; 61 | width: 6px; 62 | } 63 | .CodeMirror-overlayscroll-vertical div { 64 | right: 0; 65 | width: 100%; 66 | } 67 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/addon/search/matchesonscrollbar.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-search-match { 2 | background: gold; 3 | border-top: 1px solid orange; 4 | border-bottom: 1px solid orange; 5 | -moz-box-sizing: border-box; 6 | box-sizing: border-box; 7 | opacity: .5; 8 | } 9 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/addon/tern/worker.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // declare global: tern, server 5 | 6 | var server; 7 | 8 | this.onmessage = function(e) { 9 | var data = e.data; 10 | switch (data.type) { 11 | case "init": return startServer(data.defs, data.plugins, data.scripts); 12 | case "add": return server.addFile(data.name, data.text); 13 | case "del": return server.delFile(data.name); 14 | case "req": return server.request(data.body, function(err, reqData) { 15 | postMessage({id: data.id, body: reqData, err: err && String(err)}); 16 | }); 17 | case "getFile": 18 | var c = pending[data.id]; 19 | delete pending[data.id]; 20 | return c(data.err, data.text); 21 | default: throw new Error("Unknown message type: " + data.type); 22 | } 23 | }; 24 | 25 | var nextId = 0, pending = {}; 26 | function getFile(file, c) { 27 | postMessage({type: "getFile", name: file, id: ++nextId}); 28 | pending[nextId] = c; 29 | } 30 | 31 | function startServer(defs, plugins, scripts) { 32 | if (scripts) importScripts.apply(null, scripts); 33 | 34 | server = new tern.Server({ 35 | getFile: getFile, 36 | async: true, 37 | defs: defs, 38 | plugins: plugins 39 | }); 40 | } 41 | 42 | var console = { 43 | log: function(v) { postMessage({type: "debug", message: v}); } 44 | }; 45 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "codemirror", 3 | "version":"5.0.0", 4 | "main": ["lib/codemirror.js", "lib/codemirror.css"], 5 | "ignore": [ 6 | "**/.*", 7 | "node_modules", 8 | "components", 9 | "bin", 10 | "demo", 11 | "doc", 12 | "test", 13 | "index.html", 14 | "package.json" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/mode/diff/diff.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineMode("diff", function() { 15 | 16 | var TOKEN_NAMES = { 17 | '+': 'positive', 18 | '-': 'negative', 19 | '@': 'meta' 20 | }; 21 | 22 | return { 23 | token: function(stream) { 24 | var tw_pos = stream.string.search(/[\t ]+?$/); 25 | 26 | if (!stream.sol() || tw_pos === 0) { 27 | stream.skipToEnd(); 28 | return ("error " + ( 29 | TOKEN_NAMES[stream.string.charAt(0)] || '')).replace(/ $/, ''); 30 | } 31 | 32 | var token_name = TOKEN_NAMES[stream.peek()] || stream.skipToEnd(); 33 | 34 | if (tw_pos === -1) { 35 | stream.skipToEnd(); 36 | } else { 37 | stream.pos = tw_pos; 38 | } 39 | 40 | return token_name; 41 | } 42 | }; 43 | }); 44 | 45 | CodeMirror.defineMIME("text/x-diff", "diff"); 46 | 47 | }); 48 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/mode/ecl/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: ECL mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

ECL mode

27 |
45 | 48 | 49 |

Based on CodeMirror's clike mode. For more information see HPCC Systems web site.

50 |

MIME types defined: text/x-ecl.

51 | 52 |
53 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/mode/http/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: HTTP mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

HTTP mode

27 | 28 | 29 |
39 | 40 | 43 | 44 |

MIME types defined: message/http.

45 |
46 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/mode/ntriples/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: NTriples mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 15 | 28 | 29 |
30 |

NTriples mode

31 |
32 | 39 |
40 | 41 | 44 |

MIME types defined: text/n-triples.

45 |
46 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/mode/ruby/test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function() { 5 | var mode = CodeMirror.getMode({indentUnit: 2}, "ruby"); 6 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } 7 | 8 | MT("divide_equal_operator", 9 | "[variable bar] [operator /=] [variable foo]"); 10 | 11 | MT("divide_equal_operator_no_spacing", 12 | "[variable foo][operator /=][number 42]"); 13 | 14 | })(); 15 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/mode/rust/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Rust mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Rust mode

27 | 28 | 29 |
52 | 53 | 58 | 59 |

MIME types defined: text/x-rustsrc.

60 |
61 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/mode/solr/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Solr mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 20 | 33 | 34 |
35 |

Solr mode

36 | 37 |
38 | 47 |
48 | 49 | 55 | 56 |

MIME types defined: text/x-solr.

57 |
58 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/mode/spreadsheet/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Spreadsheet mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 25 | 26 |
27 |

Spreadsheet mode

28 |
29 | 30 | 37 | 38 |

MIME types defined: text/x-spreadsheet.

39 | 40 |

The Spreadsheet Mode

41 |

Created by Robert Plummer

42 |
43 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/mode/tiddlywiki/tiddlywiki.css: -------------------------------------------------------------------------------- 1 | span.cm-underlined { 2 | text-decoration: underline; 3 | } 4 | span.cm-strikethrough { 5 | text-decoration: line-through; 6 | } 7 | span.cm-brace { 8 | color: #170; 9 | font-weight: bold; 10 | } 11 | span.cm-table { 12 | color: blue; 13 | font-weight: bold; 14 | } 15 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/mode/tiki/tiki.css: -------------------------------------------------------------------------------- 1 | .cm-tw-syntaxerror { 2 | color: #FFF; 3 | background-color: #900; 4 | } 5 | 6 | .cm-tw-deleted { 7 | text-decoration: line-through; 8 | } 9 | 10 | .cm-tw-header5 { 11 | font-weight: bold; 12 | } 13 | .cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/ 14 | padding-left: 10px; 15 | } 16 | 17 | .cm-tw-box { 18 | border-top-width: 0px ! important; 19 | border-style: solid; 20 | border-width: 1px; 21 | border-color: inherit; 22 | } 23 | 24 | .cm-tw-underline { 25 | text-decoration: underline; 26 | } -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/mode/z80/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Z80 assembly mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Z80 assembly mode

27 | 28 | 29 |
44 | 45 | 50 | 51 |

MIME type defined: text/x-z80.

52 |
53 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "codemirror", 3 | "version":"5.0.0", 4 | "main": "lib/codemirror.js", 5 | "description": "In-browser code editing made bearable", 6 | "licenses": [{"type": "MIT", 7 | "url": "http://codemirror.net/LICENSE"}], 8 | "directories": {"lib": "./lib"}, 9 | "scripts": {"test": "node ./test/run.js"}, 10 | "devDependencies": {"node-static": "0.6.0", 11 | "phantomjs": "1.9.2-5", 12 | "blint": ">=0.1.1"}, 13 | "bugs": "http://github.com/codemirror/CodeMirror/issues", 14 | "keywords": ["JavaScript", "CodeMirror", "Editor"], 15 | "homepage": "http://codemirror.net", 16 | "maintainers":[{"name": "Marijn Haverbeke", 17 | "email": "marijnh@gmail.com", 18 | "web": "http://marijnhaverbeke.nl"}], 19 | "repository": {"type": "git", 20 | "url": "https://github.com/codemirror/CodeMirror.git"} 21 | } 22 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/theme/ambiance-mobile.css: -------------------------------------------------------------------------------- 1 | .cm-s-ambiance.CodeMirror { 2 | -webkit-box-shadow: none; 3 | -moz-box-shadow: none; 4 | box-shadow: none; 5 | } 6 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/theme/cobalt.css: -------------------------------------------------------------------------------- 1 | .cm-s-cobalt.CodeMirror { background: #002240; color: white; } 2 | .cm-s-cobalt div.CodeMirror-selected { background: #b36539 !important; } 3 | .cm-s-cobalt.CodeMirror ::selection { background: rgba(179, 101, 57, .99); } 4 | .cm-s-cobalt.CodeMirror ::-moz-selection { background: rgba(179, 101, 57, .99); } 5 | .cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; } 6 | .cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; } 7 | .cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; } 8 | .cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; } 9 | .cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white !important; } 10 | 11 | .cm-s-cobalt span.cm-comment { color: #08f; } 12 | .cm-s-cobalt span.cm-atom { color: #845dc4; } 13 | .cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; } 14 | .cm-s-cobalt span.cm-keyword { color: #ffee80; } 15 | .cm-s-cobalt span.cm-string { color: #3ad900; } 16 | .cm-s-cobalt span.cm-meta { color: #ff9d00; } 17 | .cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; } 18 | .cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def { color: white; } 19 | .cm-s-cobalt span.cm-bracket { color: #d8d8d8; } 20 | .cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; } 21 | .cm-s-cobalt span.cm-link { color: #845dc4; } 22 | .cm-s-cobalt span.cm-error { color: #9d1e15; } 23 | 24 | .cm-s-cobalt .CodeMirror-activeline-background {background: #002D57 !important;} 25 | .cm-s-cobalt .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important} 26 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/theme/eclipse.css: -------------------------------------------------------------------------------- 1 | .cm-s-eclipse span.cm-meta {color: #FF1717;} 2 | .cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; } 3 | .cm-s-eclipse span.cm-atom {color: #219;} 4 | .cm-s-eclipse span.cm-number {color: #164;} 5 | .cm-s-eclipse span.cm-def {color: #00f;} 6 | .cm-s-eclipse span.cm-variable {color: black;} 7 | .cm-s-eclipse span.cm-variable-2 {color: #0000C0;} 8 | .cm-s-eclipse span.cm-variable-3 {color: #0000C0;} 9 | .cm-s-eclipse span.cm-property {color: black;} 10 | .cm-s-eclipse span.cm-operator {color: black;} 11 | .cm-s-eclipse span.cm-comment {color: #3F7F5F;} 12 | .cm-s-eclipse span.cm-string {color: #2A00FF;} 13 | .cm-s-eclipse span.cm-string-2 {color: #f50;} 14 | .cm-s-eclipse span.cm-qualifier {color: #555;} 15 | .cm-s-eclipse span.cm-builtin {color: #30a;} 16 | .cm-s-eclipse span.cm-bracket {color: #cc7;} 17 | .cm-s-eclipse span.cm-tag {color: #170;} 18 | .cm-s-eclipse span.cm-attribute {color: #00c;} 19 | .cm-s-eclipse span.cm-link {color: #219;} 20 | .cm-s-eclipse span.cm-error {color: #f00;} 21 | 22 | .cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff !important;} 23 | .cm-s-eclipse .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 24 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/theme/elegant.css: -------------------------------------------------------------------------------- 1 | .cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom {color: #762;} 2 | .cm-s-elegant span.cm-comment {color: #262; font-style: italic; line-height: 1em;} 3 | .cm-s-elegant span.cm-meta {color: #555; font-style: italic; line-height: 1em;} 4 | .cm-s-elegant span.cm-variable {color: black;} 5 | .cm-s-elegant span.cm-variable-2 {color: #b11;} 6 | .cm-s-elegant span.cm-qualifier {color: #555;} 7 | .cm-s-elegant span.cm-keyword {color: #730;} 8 | .cm-s-elegant span.cm-builtin {color: #30a;} 9 | .cm-s-elegant span.cm-link {color: #762;} 10 | .cm-s-elegant span.cm-error {background-color: #fdd;} 11 | 12 | .cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff !important;} 13 | .cm-s-elegant .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 14 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/theme/monokai.css: -------------------------------------------------------------------------------- 1 | /* Based on Sublime Text's Monokai theme */ 2 | 3 | .cm-s-monokai.CodeMirror {background: #272822; color: #f8f8f2;} 4 | .cm-s-monokai div.CodeMirror-selected {background: #49483E !important;} 5 | .cm-s-monokai.CodeMirror ::selection { background: rgba(73, 72, 62, .99); } 6 | .cm-s-monokai.CodeMirror ::-moz-selection { background: rgba(73, 72, 62, .99); } 7 | .cm-s-monokai .CodeMirror-gutters {background: #272822; border-right: 0px;} 8 | .cm-s-monokai .CodeMirror-guttermarker { color: white; } 9 | .cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; } 10 | .cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;} 11 | .cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0 !important;} 12 | 13 | .cm-s-monokai span.cm-comment {color: #75715e;} 14 | .cm-s-monokai span.cm-atom {color: #ae81ff;} 15 | .cm-s-monokai span.cm-number {color: #ae81ff;} 16 | 17 | .cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute {color: #a6e22e;} 18 | .cm-s-monokai span.cm-keyword {color: #f92672;} 19 | .cm-s-monokai span.cm-string {color: #e6db74;} 20 | 21 | .cm-s-monokai span.cm-variable {color: #a6e22e;} 22 | .cm-s-monokai span.cm-variable-2 {color: #9effff;} 23 | .cm-s-monokai span.cm-def {color: #fd971f;} 24 | .cm-s-monokai span.cm-bracket {color: #f8f8f2;} 25 | .cm-s-monokai span.cm-tag {color: #f92672;} 26 | .cm-s-monokai span.cm-link {color: #ae81ff;} 27 | .cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;} 28 | 29 | .cm-s-monokai .CodeMirror-activeline-background {background: #373831 !important;} 30 | .cm-s-monokai .CodeMirror-matchingbracket { 31 | text-decoration: underline; 32 | color: white !important; 33 | } 34 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/theme/neat.css: -------------------------------------------------------------------------------- 1 | .cm-s-neat span.cm-comment { color: #a86; } 2 | .cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; } 3 | .cm-s-neat span.cm-string { color: #a22; } 4 | .cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; } 5 | .cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; } 6 | .cm-s-neat span.cm-variable { color: black; } 7 | .cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; } 8 | .cm-s-neat span.cm-meta {color: #555;} 9 | .cm-s-neat span.cm-link { color: #3a3; } 10 | 11 | .cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff !important;} 12 | .cm-s-neat .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 13 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/theme/neo.css: -------------------------------------------------------------------------------- 1 | /* neo theme for codemirror */ 2 | 3 | /* Color scheme */ 4 | 5 | .cm-s-neo.CodeMirror { 6 | background-color:#ffffff; 7 | color:#2e383c; 8 | line-height:1.4375; 9 | } 10 | .cm-s-neo .cm-comment {color:#75787b} 11 | .cm-s-neo .cm-keyword, .cm-s-neo .cm-property {color:#1d75b3} 12 | .cm-s-neo .cm-atom,.cm-s-neo .cm-number {color:#75438a} 13 | .cm-s-neo .cm-node,.cm-s-neo .cm-tag {color:#9c3328} 14 | .cm-s-neo .cm-string {color:#b35e14} 15 | .cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color:#047d65} 16 | 17 | 18 | /* Editor styling */ 19 | 20 | .cm-s-neo pre { 21 | padding:0; 22 | } 23 | 24 | .cm-s-neo .CodeMirror-gutters { 25 | border:none; 26 | border-right:10px solid transparent; 27 | background-color:transparent; 28 | } 29 | 30 | .cm-s-neo .CodeMirror-linenumber { 31 | padding:0; 32 | color:#e0e2e5; 33 | } 34 | 35 | .cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; } 36 | .cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; } 37 | 38 | .cm-s-neo div.CodeMirror-cursor { 39 | width: auto; 40 | border: 0; 41 | background: rgba(155,157,162,0.37); 42 | z-index: 1; 43 | } 44 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/codemirror/theme/rubyblue.css: -------------------------------------------------------------------------------- 1 | .cm-s-rubyblue.CodeMirror { background: #112435; color: white; } 2 | .cm-s-rubyblue div.CodeMirror-selected { background: #38566F !important; } 3 | .cm-s-rubyblue.CodeMirror ::selection { background: rgba(56, 86, 111, 0.99); } 4 | .cm-s-rubyblue.CodeMirror ::-moz-selection { background: rgba(56, 86, 111, 0.99); } 5 | .cm-s-rubyblue .CodeMirror-gutters { background: #1F4661; border-right: 7px solid #3E7087; } 6 | .cm-s-rubyblue .CodeMirror-guttermarker { color: white; } 7 | .cm-s-rubyblue .CodeMirror-guttermarker-subtle { color: #3E7087; } 8 | .cm-s-rubyblue .CodeMirror-linenumber { color: white; } 9 | .cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white !important; } 10 | 11 | .cm-s-rubyblue span.cm-comment { color: #999; font-style:italic; line-height: 1em; } 12 | .cm-s-rubyblue span.cm-atom { color: #F4C20B; } 13 | .cm-s-rubyblue span.cm-number, .cm-s-rubyblue span.cm-attribute { color: #82C6E0; } 14 | .cm-s-rubyblue span.cm-keyword { color: #F0F; } 15 | .cm-s-rubyblue span.cm-string { color: #F08047; } 16 | .cm-s-rubyblue span.cm-meta { color: #F0F; } 17 | .cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; } 18 | .cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def { color: white; } 19 | .cm-s-rubyblue span.cm-bracket { color: #F0F; } 20 | .cm-s-rubyblue span.cm-link { color: #F4C20B; } 21 | .cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; } 22 | .cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; } 23 | .cm-s-rubyblue span.cm-error { color: #AF2018; } 24 | 25 | .cm-s-rubyblue .CodeMirror-activeline-background {background: #173047 !important;} 26 | -------------------------------------------------------------------------------- /web/admin/js/plugins/markdown-js/lib/jquery.flowchart.min.js: -------------------------------------------------------------------------------- 1 | /*! jQuery.flowchart.js v1.1.0 | jquery.flowchart.min.js | jQuery plugin for flowchart.js. | MIT License | By: Pandao | https://github.com/pandao/jquery.flowchart.js | 2015-03-09 */ 2 | (function(factory){if(typeof require==="function"&&typeof exports==="object"&&typeof module==="object"){module.exports=factory}else{if(typeof define==="function"){factory(jQuery,flowchart)}else{factory($,flowchart)}}}(function(jQuery,flowchart){(function($){$.fn.flowChart=function(options){options=options||{};var defaults={"x":0,"y":0,"line-width":2,"line-length":50,"text-margin":10,"font-size":14,"font-color":"black","line-color":"black","element-color":"black","fill":"white","yes-text":"yes","no-text":"no","arrow-end":"block","symbols":{"start":{"font-color":"black","element-color":"black","fill":"white"},"end":{"class":"end-element"}},"flowstate":{"past":{"fill":"#CCCCCC","font-size":12},"current":{"fill":"black","font-color":"white","font-weight":"bold"},"future":{"fill":"white"},"request":{"fill":"blue"},"invalid":{"fill":"#444444"},"approved":{"fill":"#58C4A3","font-size":12,"yes-text":"APPROVED","no-text":"n/a"},"rejected":{"fill":"#C45879","font-size":12,"yes-text":"n/a","no-text":"REJECTED"}}};return this.each(function(){var $this=$(this);var diagram=flowchart.parse($this.text());var settings=$.extend(true,defaults,options);$this.html("");diagram.drawSVG(this,settings)})}})(jQuery)})); -------------------------------------------------------------------------------- /web/admin/js/plugins/morris-chart/morris.css: -------------------------------------------------------------------------------- 1 | .morris-hover{position:absolute;z-index:1000}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#666;background:rgba(255,255,255,0.8);border:solid 2px rgba(230,230,230,0.8);font-family:sans-serif;font-size:12px;text-align:center}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0} 2 | .morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:0.1em 0} 3 | -------------------------------------------------------------------------------- /web/admin/js/plugins/tags/jquery.tagsinput.min.css: -------------------------------------------------------------------------------- 1 | div.tagsinput{border:1px solid #CCC;background:#FFF;padding:5px;width:300px;height:100px}div.tagsinput span.tag{border:1px solid #a5d24a;-moz-border-radius:2px;-webkit-border-radius:2px;display:block;float:left;padding:5px;text-decoration:none;background:#cde69c;color:#638421;margin-right:5px;margin-bottom:5px;font-family:helvetica;font-size:13px}div.tagsinput span.tag a{font-weight:bold;color:#82ad2b;text-decoration:none;font-size:11px}div.tagsinput input{width:80px;margin:0;font-family:helvetica;font-size:13px;border:1px solid transparent;padding:5px;background:transparent;color:#000;outline:0;margin-right:5px;margin-bottom:5px}div.tagsinput div{display:block;float:left}.tags_clear{clear:both;width:100%;height:0}.not_valid{background:#FBD8DB !important;color:#90111A !important} -------------------------------------------------------------------------------- /web/admin/js/plugins/translator/translation-script.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | switchLanguage(); 3 | })(); 4 | 5 | 6 | /**** Automatic Language Translation ****/ 7 | function switchLanguage() { 8 | 9 | var userLang = navigator.language || navigator.userLanguage; 10 | var language = 'en'; 11 | if(userLang == 'fr') language = 'fr'; 12 | if(userLang == 'es') language = 'es'; 13 | 14 | /* If user has selected a language, we apply it */ 15 | if ($.cookie('app-language')) { 16 | var language = $.cookie('app-language'); 17 | } 18 | /* We get current language on page load */ 19 | $("[data-translate]").jqTranslate('js/plugins/translator/translate', { 20 | forceLang: language 21 | }); 22 | 23 | /* Change language on click in a select input for example */ 24 | $('#switch-lang').on('change', function(e) { 25 | e.preventDefault(); 26 | language = $(this).val(); 27 | $("[data-translate]").jqTranslate('js/plugins/translator/translate', { 28 | forceLang: language 29 | }); 30 | 31 | /* We save language inside a cookie */ 32 | $.cookie('app-language', language); 33 | $.cookie('app-language', language, { path: '/' }); 34 | }); 35 | 36 | } -------------------------------------------------------------------------------- /web/admin/layout/layout_footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 18 |
19 | 20 | 21 | 22 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | <#macro script> 37 | <#nested> 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /web/front/css/custom.css: -------------------------------------------------------------------------------- 1 | .leftbox{ width:65px; height:auto; position:fixed; right:0; top:80%; margin-top:-125px; z-index:900;background: #eeeeee;} 2 | .leftbox a{ width:50px; height:50px; line-height:50px; float:left; display:block; text-align:right;} 3 | .leftbox .box1 i{ color:#4caf50;;} 4 | .leftbox .box2 i{ color:#42a5f5;} 5 | .leftbox .box3 i{ color:#546e7a;} 6 | .leftbox .box4 i{ color:#E6162D;} 7 | 8 | .focusImage:hover{ 9 | -webkit-transform: scale(1.1); 10 | -moz-transform: scale(1.1); 11 | -o-transform: scale(1.1); 12 | -ms-transform: scale(1.1); 13 | transform: scale(1.1); 14 | opacity:0.6; 15 | } 16 | .focusImage{ 17 | display: block; 18 | width: 100%; 19 | padding: 0; 20 | margin: 0; 21 | position: relative; 22 | -webkit-transition: all .4s ease-in-out; 23 | -moz-transition: all .4s ease-in-out; 24 | -o-transition: all .4s ease-in-out; 25 | -ms-transition: all .4s ease-in-out; 26 | transition: all .4s ease-in-out; 27 | opacity: 1; 28 | overflow: hidden; 29 | } -------------------------------------------------------------------------------- /web/front/css/mobile_style.css: -------------------------------------------------------------------------------- 1 | @media only screen and (max-device-width:480px){ 2 | .front-content{ 3 | border:none; 4 | } 5 | .front-content:before{ 6 | display: none; 7 | } 8 | .front-content:after{ 9 | display: none; 10 | } 11 | .spot{ 12 | display: none; 13 | } 14 | .spot-content .card{ 15 | margin-left: 0px; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /web/front/font/icon/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/icon/iconfont.eot -------------------------------------------------------------------------------- /web/front/font/icon/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/icon/iconfont.ttf -------------------------------------------------------------------------------- /web/front/font/icon/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/icon/iconfont.woff -------------------------------------------------------------------------------- /web/front/font/material-design-icons/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/material-design-icons/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2 -------------------------------------------------------------------------------- /web/front/font/material-design-icons/Material-Design-Icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/material-design-icons/Material-Design-Icons.eot -------------------------------------------------------------------------------- /web/front/font/material-design-icons/Material-Design-Icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/material-design-icons/Material-Design-Icons.ttf -------------------------------------------------------------------------------- /web/front/font/material-design-icons/Material-Design-Icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/material-design-icons/Material-Design-Icons.woff -------------------------------------------------------------------------------- /web/front/font/material-design-icons/Material-Design-Icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/material-design-icons/Material-Design-Icons.woff2 -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Bold.eot -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Bold.ttf -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Bold.woff -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Bold.woff2 -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Light.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Light.eot -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Light.ttf -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Light.woff -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Light.woff2 -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Medium.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Medium.eot -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Medium.ttf -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Medium.woff -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Medium.woff2 -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Regular.eot -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Regular.woff -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Regular.woff2 -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Thin.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Thin.eot -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Thin.ttf -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Thin.woff -------------------------------------------------------------------------------- /web/front/font/roboto/Roboto-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/font/roboto/Roboto-Thin.woff2 -------------------------------------------------------------------------------- /web/front/img/alipay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/img/alipay.jpg -------------------------------------------------------------------------------- /web/front/img/hero-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/img/hero-2.jpg -------------------------------------------------------------------------------- /web/front/img/hero-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/img/hero-3.jpg -------------------------------------------------------------------------------- /web/front/img/hero-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/img/hero-4.jpg -------------------------------------------------------------------------------- /web/front/img/hero-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/img/hero-5.jpg -------------------------------------------------------------------------------- /web/front/img/hero.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/img/hero.jpg -------------------------------------------------------------------------------- /web/front/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/img/logo.png -------------------------------------------------------------------------------- /web/front/img/myphoto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/img/myphoto.png -------------------------------------------------------------------------------- /web/front/img/wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/img/wechat.png -------------------------------------------------------------------------------- /web/front/img/work_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/img/work_1.jpg -------------------------------------------------------------------------------- /web/front/img/work_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/img/work_2.jpg -------------------------------------------------------------------------------- /web/front/img/work_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/img/work_3.jpg -------------------------------------------------------------------------------- /web/front/img/work_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/img/work_4.jpg -------------------------------------------------------------------------------- /web/front/img/work_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/img/work_5.jpg -------------------------------------------------------------------------------- /web/front/img/work_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/img/work_6.jpg -------------------------------------------------------------------------------- /web/front/js/about/fonts/bootstrap/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/js/about/fonts/bootstrap/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /web/front/js/about/fonts/bootstrap/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/js/about/fonts/bootstrap/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /web/front/js/about/fonts/bootstrap/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/js/about/fonts/bootstrap/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /web/front/js/about/fonts/bootstrap/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/js/about/fonts/bootstrap/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /web/front/js/about/fonts/bootstrap/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Silence is Eloquence 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /web/front/js/about/fonts/icomoon/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/js/about/fonts/icomoon/icomoon.eot -------------------------------------------------------------------------------- /web/front/js/about/fonts/icomoon/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/js/about/fonts/icomoon/icomoon.ttf -------------------------------------------------------------------------------- /web/front/js/about/fonts/icomoon/icomoon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/js/about/fonts/icomoon/icomoon.woff -------------------------------------------------------------------------------- /web/front/js/about/fonts/icomoon/icomoon/Read Me.txt: -------------------------------------------------------------------------------- 1 | Open *demo.html* to see a list of all the glyphs in your font along with their codes/ligatures. 2 | 3 | You won't need any of the files located under the *demo-files* directory when including the generated font in your own projects. 4 | 5 | You can import *selection.json* back to the IcoMoon app using the *Import Icons* button (or via Main Menu > Manage Projects) to retrieve your icon selection. 6 | -------------------------------------------------------------------------------- /web/front/js/about/fonts/icomoon/icomoon/demo-files/demo.js: -------------------------------------------------------------------------------- 1 | if (!('boxShadow' in document.body.style)) { 2 | document.body.setAttribute('class', 'noBoxShadow'); 3 | } 4 | 5 | document.body.addEventListener("click", function(e) { 6 | var target = e.target; 7 | if (target.tagName === "INPUT" && 8 | target.getAttribute('class').indexOf('liga') === -1) { 9 | target.select(); 10 | } 11 | }); 12 | 13 | (function() { 14 | var fontSize = document.getElementById('fontSize'), 15 | testDrive = document.getElementById('testDrive'), 16 | testText = document.getElementById('testText'); 17 | function updateTest() { 18 | testDrive.innerHTML = testText.value || String.fromCharCode(160); 19 | if (window.icomoonLiga) { 20 | window.icomoonLiga(testDrive); 21 | } 22 | } 23 | function updateSize() { 24 | testDrive.style.fontSize = fontSize.value + 'px'; 25 | } 26 | fontSize.addEventListener('change', updateSize, false); 27 | testText.addEventListener('input', updateTest, false); 28 | testText.addEventListener('change', updateTest, false); 29 | updateSize(); 30 | }()); 31 | -------------------------------------------------------------------------------- /web/front/js/about/fonts/icomoon/icomoon/fonts/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/js/about/fonts/icomoon/icomoon/fonts/icomoon.eot -------------------------------------------------------------------------------- /web/front/js/about/fonts/icomoon/icomoon/fonts/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/js/about/fonts/icomoon/icomoon/fonts/icomoon.ttf -------------------------------------------------------------------------------- /web/front/js/about/fonts/icomoon/icomoon/fonts/icomoon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/js/about/fonts/icomoon/icomoon/fonts/icomoon.woff -------------------------------------------------------------------------------- /web/front/js/about/fonts/icomoon/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Silence is Eloquence 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /web/front/js/about/fonts/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Silence is Eloquence 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /web/front/js/plugins/img/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/js/plugins/img/close.png -------------------------------------------------------------------------------- /web/front/js/plugins/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/js/plugins/img/loading.gif -------------------------------------------------------------------------------- /web/front/js/plugins/img/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/js/plugins/img/next.png -------------------------------------------------------------------------------- /web/front/js/plugins/img/prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/front/js/plugins/img/prev.png -------------------------------------------------------------------------------- /web/front/js/plugins/tooltipster/css/themes/tooltipster-light.css: -------------------------------------------------------------------------------- 1 | .tooltipster-light { 2 | border-radius: 5px; 3 | border: 1px solid #cccccc; 4 | background: #ededed; 5 | color: #666666; 6 | } 7 | .tooltipster-light .tooltipster-content { 8 | font-family: Arial, sans-serif; 9 | font-size: 14px; 10 | line-height: 16px; 11 | padding: 8px 10px; 12 | } -------------------------------------------------------------------------------- /web/front/js/plugins/tooltipster/css/themes/tooltipster-noir.css: -------------------------------------------------------------------------------- 1 | .tooltipster-noir { 2 | border-radius: 0px; 3 | border: 3px solid #2c2c2c; 4 | background: #fff; 5 | color: #2c2c2c; 6 | } 7 | .tooltipster-noir .tooltipster-content { 8 | font-family: 'Georgia', serif; 9 | font-size: 14px; 10 | line-height: 16px; 11 | padding: 8px 10px; 12 | } -------------------------------------------------------------------------------- /web/front/js/plugins/tooltipster/css/themes/tooltipster-punk.css: -------------------------------------------------------------------------------- 1 | .tooltipster-punk { 2 | border-radius: 5px; 3 | border-bottom: 3px solid #f71169; 4 | background: #2a2a2a; 5 | color: #fff; 6 | } 7 | .tooltipster-punk .tooltipster-content { 8 | font-family: 'Courier', monospace; 9 | font-size: 14px; 10 | line-height: 16px; 11 | padding: 8px 10px; 12 | } -------------------------------------------------------------------------------- /web/front/js/plugins/tooltipster/css/themes/tooltipster-shadow.css: -------------------------------------------------------------------------------- 1 | .tooltipster-shadow { 2 | border-radius: 5px; 3 | background: #fff; 4 | box-shadow: 0px 0px 14px rgba(0,0,0,0.3); 5 | color: #2c2c2c; 6 | } 7 | .tooltipster-shadow .tooltipster-content { 8 | font-family: 'Arial', sans-serif; 9 | font-size: 14px; 10 | line-height: 16px; 11 | padding: 8px 10px; 12 | } -------------------------------------------------------------------------------- /web/front/layout/layout_right.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 7 |
8 |
9 |
10 |
11 | 18 |
19 |

个人简介:yoqu(yoqulin),爱好编程。擅长用java,php语言开发web项目.. 更多简介

20 |
21 |
22 |
23 |
支持
24 |
25 | 26 |
27 | 28 | -------------------------------------------------------------------------------- /web/upload/8b4a353233393135363237070e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/upload/8b4a353233393135363237070e.jpg -------------------------------------------------------------------------------- /web/upload/8b4a353233393135363237070e1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/upload/8b4a353233393135363237070e1.jpg -------------------------------------------------------------------------------- /web/upload/8b4a353233393135363237070e2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/upload/8b4a353233393135363237070e2.jpg -------------------------------------------------------------------------------- /web/upload/8b4a353233393135363237070e3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/upload/8b4a353233393135363237070e3.jpg -------------------------------------------------------------------------------- /web/upload/8b4a353233393135363237070e4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/upload/8b4a353233393135363237070e4.jpg -------------------------------------------------------------------------------- /web/upload/8b4a353233393135363237070e5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/upload/8b4a353233393135363237070e5.jpg -------------------------------------------------------------------------------- /web/upload/idea.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Comment=idea 3 | Terminal=false 4 | Name=idea 5 | Exec=/home/yoqu/develop/idea/bin/idea.sh 6 | Type=Application 7 | Icon=/home/yoqu/develop/idea/bin/idea.png 8 | -------------------------------------------------------------------------------- /web/upload/头像.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/upload/头像.jpg -------------------------------------------------------------------------------- /web/upload/头像1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/upload/头像1.jpg -------------------------------------------------------------------------------- /web/upload/头像2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/upload/头像2.jpg -------------------------------------------------------------------------------- /web/upload/森林.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoqu/finalcms/190fb3953dc856be5c1821f5d18eb0eae90b5335/web/upload/森林.jpg --------------------------------------------------------------------------------