├── .gitattributes ├── .gitignore ├── .styleci.yml ├── LICENSE ├── README.md ├── composer.json ├── config ├── casbin-model.conf ├── console.php ├── middleware.php ├── provider.php ├── tadmin.php └── tauthz.php ├── database └── migrations │ └── 20180913054008_db_init.php ├── helper.php ├── resource ├── assets │ ├── css │ │ ├── admin.css │ │ ├── amazeui.datatables.min.css │ │ ├── amazeui.datetimepicker.css │ │ ├── amazeui.min.css │ │ ├── app.css │ │ ├── app.less │ │ ├── fullcalendar.min.css │ │ └── fullcalendar.print.css │ ├── editor │ │ ├── ueditor │ │ │ ├── dialogs │ │ │ │ ├── anchor │ │ │ │ │ └── anchor.html │ │ │ │ ├── attachment │ │ │ │ │ ├── attachment.css │ │ │ │ │ ├── attachment.html │ │ │ │ │ ├── attachment.js │ │ │ │ │ ├── fileTypeImages │ │ │ │ │ │ ├── icon_chm.gif │ │ │ │ │ │ ├── icon_default.png │ │ │ │ │ │ ├── icon_doc.gif │ │ │ │ │ │ ├── icon_exe.gif │ │ │ │ │ │ ├── icon_jpg.gif │ │ │ │ │ │ ├── icon_mp3.gif │ │ │ │ │ │ ├── icon_mv.gif │ │ │ │ │ │ ├── icon_pdf.gif │ │ │ │ │ │ ├── icon_ppt.gif │ │ │ │ │ │ ├── icon_psd.gif │ │ │ │ │ │ ├── icon_rar.gif │ │ │ │ │ │ ├── icon_txt.gif │ │ │ │ │ │ └── icon_xls.gif │ │ │ │ │ └── images │ │ │ │ │ │ ├── alignicon.gif │ │ │ │ │ │ ├── alignicon.png │ │ │ │ │ │ ├── bg.png │ │ │ │ │ │ ├── file-icons.gif │ │ │ │ │ │ ├── file-icons.png │ │ │ │ │ │ ├── icons.gif │ │ │ │ │ │ ├── icons.png │ │ │ │ │ │ ├── image.png │ │ │ │ │ │ ├── progress.png │ │ │ │ │ │ ├── success.gif │ │ │ │ │ │ └── success.png │ │ │ │ ├── background │ │ │ │ │ ├── background.css │ │ │ │ │ ├── background.html │ │ │ │ │ ├── background.js │ │ │ │ │ └── images │ │ │ │ │ │ ├── bg.png │ │ │ │ │ │ └── success.png │ │ │ │ ├── charts │ │ │ │ │ ├── chart.config.js │ │ │ │ │ ├── charts.css │ │ │ │ │ ├── charts.html │ │ │ │ │ ├── charts.js │ │ │ │ │ └── images │ │ │ │ │ │ ├── charts0.png │ │ │ │ │ │ ├── charts1.png │ │ │ │ │ │ ├── charts2.png │ │ │ │ │ │ ├── charts3.png │ │ │ │ │ │ ├── charts4.png │ │ │ │ │ │ └── charts5.png │ │ │ │ ├── emotion │ │ │ │ │ ├── emotion.css │ │ │ │ │ ├── emotion.html │ │ │ │ │ ├── emotion.js │ │ │ │ │ └── images │ │ │ │ │ │ ├── 0.gif │ │ │ │ │ │ ├── bface.gif │ │ │ │ │ │ ├── cface.gif │ │ │ │ │ │ ├── fface.gif │ │ │ │ │ │ ├── jxface2.gif │ │ │ │ │ │ ├── neweditor-tab-bg.png │ │ │ │ │ │ ├── tface.gif │ │ │ │ │ │ ├── wface.gif │ │ │ │ │ │ └── yface.gif │ │ │ │ ├── gmap │ │ │ │ │ └── gmap.html │ │ │ │ ├── help │ │ │ │ │ ├── help.css │ │ │ │ │ ├── help.html │ │ │ │ │ └── help.js │ │ │ │ ├── image │ │ │ │ │ ├── image.css │ │ │ │ │ ├── image.html │ │ │ │ │ ├── image.js │ │ │ │ │ └── images │ │ │ │ │ │ ├── alignicon.jpg │ │ │ │ │ │ ├── bg.png │ │ │ │ │ │ ├── icons.gif │ │ │ │ │ │ ├── icons.png │ │ │ │ │ │ ├── image.png │ │ │ │ │ │ ├── progress.png │ │ │ │ │ │ ├── success.gif │ │ │ │ │ │ └── success.png │ │ │ │ ├── insertframe │ │ │ │ │ └── insertframe.html │ │ │ │ ├── internal.js │ │ │ │ ├── link │ │ │ │ │ └── link.html │ │ │ │ ├── map │ │ │ │ │ ├── map.html │ │ │ │ │ └── show.html │ │ │ │ ├── music │ │ │ │ │ ├── music.css │ │ │ │ │ ├── music.html │ │ │ │ │ └── music.js │ │ │ │ ├── preview │ │ │ │ │ └── preview.html │ │ │ │ ├── scrawl │ │ │ │ │ ├── images │ │ │ │ │ │ ├── addimg.png │ │ │ │ │ │ ├── brush.png │ │ │ │ │ │ ├── delimg.png │ │ │ │ │ │ ├── delimgH.png │ │ │ │ │ │ ├── empty.png │ │ │ │ │ │ ├── emptyH.png │ │ │ │ │ │ ├── eraser.png │ │ │ │ │ │ ├── redo.png │ │ │ │ │ │ ├── redoH.png │ │ │ │ │ │ ├── scale.png │ │ │ │ │ │ ├── scaleH.png │ │ │ │ │ │ ├── size.png │ │ │ │ │ │ ├── undo.png │ │ │ │ │ │ └── undoH.png │ │ │ │ │ ├── scrawl.css │ │ │ │ │ ├── scrawl.html │ │ │ │ │ └── scrawl.js │ │ │ │ ├── searchreplace │ │ │ │ │ ├── searchreplace.html │ │ │ │ │ └── searchreplace.js │ │ │ │ ├── snapscreen │ │ │ │ │ └── snapscreen.html │ │ │ │ ├── spechars │ │ │ │ │ ├── spechars.html │ │ │ │ │ └── spechars.js │ │ │ │ ├── table │ │ │ │ │ ├── dragicon.png │ │ │ │ │ ├── edittable.css │ │ │ │ │ ├── edittable.html │ │ │ │ │ ├── edittable.js │ │ │ │ │ ├── edittd.html │ │ │ │ │ └── edittip.html │ │ │ │ ├── template │ │ │ │ │ ├── config.js │ │ │ │ │ ├── images │ │ │ │ │ │ ├── bg.gif │ │ │ │ │ │ ├── pre0.png │ │ │ │ │ │ ├── pre1.png │ │ │ │ │ │ ├── pre2.png │ │ │ │ │ │ ├── pre3.png │ │ │ │ │ │ └── pre4.png │ │ │ │ │ ├── template.css │ │ │ │ │ ├── template.html │ │ │ │ │ └── template.js │ │ │ │ ├── video │ │ │ │ │ ├── images │ │ │ │ │ │ ├── bg.png │ │ │ │ │ │ ├── center_focus.jpg │ │ │ │ │ │ ├── file-icons.gif │ │ │ │ │ │ ├── file-icons.png │ │ │ │ │ │ ├── icons.gif │ │ │ │ │ │ ├── icons.png │ │ │ │ │ │ ├── image.png │ │ │ │ │ │ ├── left_focus.jpg │ │ │ │ │ │ ├── none_focus.jpg │ │ │ │ │ │ ├── progress.png │ │ │ │ │ │ ├── right_focus.jpg │ │ │ │ │ │ ├── success.gif │ │ │ │ │ │ └── success.png │ │ │ │ │ ├── video.css │ │ │ │ │ ├── video.html │ │ │ │ │ └── video.js │ │ │ │ ├── webapp │ │ │ │ │ └── webapp.html │ │ │ │ └── wordimage │ │ │ │ │ ├── fClipboard_ueditor.swf │ │ │ │ │ ├── imageUploader.swf │ │ │ │ │ ├── tangram.js │ │ │ │ │ ├── wordimage.html │ │ │ │ │ └── wordimage.js │ │ │ ├── index.html │ │ │ ├── lang │ │ │ │ ├── en │ │ │ │ │ ├── en.js │ │ │ │ │ └── images │ │ │ │ │ │ ├── addimage.png │ │ │ │ │ │ ├── alldeletebtnhoverskin.png │ │ │ │ │ │ ├── alldeletebtnupskin.png │ │ │ │ │ │ ├── background.png │ │ │ │ │ │ ├── button.png │ │ │ │ │ │ ├── copy.png │ │ │ │ │ │ ├── deletedisable.png │ │ │ │ │ │ ├── deleteenable.png │ │ │ │ │ │ ├── listbackground.png │ │ │ │ │ │ ├── localimage.png │ │ │ │ │ │ ├── music.png │ │ │ │ │ │ ├── rotateleftdisable.png │ │ │ │ │ │ ├── rotateleftenable.png │ │ │ │ │ │ ├── rotaterightdisable.png │ │ │ │ │ │ ├── rotaterightenable.png │ │ │ │ │ │ └── upload.png │ │ │ │ └── zh-cn │ │ │ │ │ ├── images │ │ │ │ │ ├── copy.png │ │ │ │ │ ├── localimage.png │ │ │ │ │ ├── music.png │ │ │ │ │ └── upload.png │ │ │ │ │ └── zh-cn.js │ │ │ ├── themes │ │ │ │ ├── default │ │ │ │ │ ├── css │ │ │ │ │ │ ├── ueditor.css │ │ │ │ │ │ └── ueditor.min.css │ │ │ │ │ ├── dialogbase.css │ │ │ │ │ └── images │ │ │ │ │ │ ├── anchor.gif │ │ │ │ │ │ ├── arrow.png │ │ │ │ │ │ ├── arrow_down.png │ │ │ │ │ │ ├── arrow_up.png │ │ │ │ │ │ ├── button-bg.gif │ │ │ │ │ │ ├── cancelbutton.gif │ │ │ │ │ │ ├── charts.png │ │ │ │ │ │ ├── cursor_h.gif │ │ │ │ │ │ ├── cursor_h.png │ │ │ │ │ │ ├── cursor_v.gif │ │ │ │ │ │ ├── cursor_v.png │ │ │ │ │ │ ├── dialog-title-bg.png │ │ │ │ │ │ ├── filescan.png │ │ │ │ │ │ ├── highlighted.gif │ │ │ │ │ │ ├── icons-all.gif │ │ │ │ │ │ ├── icons.gif │ │ │ │ │ │ ├── icons.png │ │ │ │ │ │ ├── loaderror.png │ │ │ │ │ │ ├── loading.gif │ │ │ │ │ │ ├── lock.gif │ │ │ │ │ │ ├── neweditor-tab-bg.png │ │ │ │ │ │ ├── pagebreak.gif │ │ │ │ │ │ ├── scale.png │ │ │ │ │ │ ├── sortable.png │ │ │ │ │ │ ├── spacer.gif │ │ │ │ │ │ ├── sparator_v.png │ │ │ │ │ │ ├── table-cell-align.png │ │ │ │ │ │ ├── tangram-colorpicker.png │ │ │ │ │ │ ├── toolbar_bg.png │ │ │ │ │ │ ├── unhighlighted.gif │ │ │ │ │ │ ├── upload.png │ │ │ │ │ │ ├── videologo.gif │ │ │ │ │ │ ├── word.gif │ │ │ │ │ │ └── wordpaste.png │ │ │ │ └── iframe.css │ │ │ ├── third-party │ │ │ │ ├── SyntaxHighlighter │ │ │ │ │ ├── shCore.js │ │ │ │ │ └── shCoreDefault.css │ │ │ │ ├── codemirror │ │ │ │ │ ├── codemirror.css │ │ │ │ │ └── codemirror.js │ │ │ │ ├── highcharts │ │ │ │ │ ├── adapters │ │ │ │ │ │ ├── mootools-adapter.js │ │ │ │ │ │ ├── mootools-adapter.src.js │ │ │ │ │ │ ├── prototype-adapter.js │ │ │ │ │ │ ├── prototype-adapter.src.js │ │ │ │ │ │ ├── standalone-framework.js │ │ │ │ │ │ └── standalone-framework.src.js │ │ │ │ │ ├── highcharts-more.js │ │ │ │ │ ├── highcharts-more.src.js │ │ │ │ │ ├── highcharts.js │ │ │ │ │ ├── highcharts.src.js │ │ │ │ │ ├── modules │ │ │ │ │ │ ├── annotations.js │ │ │ │ │ │ ├── annotations.src.js │ │ │ │ │ │ ├── canvas-tools.js │ │ │ │ │ │ ├── canvas-tools.src.js │ │ │ │ │ │ ├── data.js │ │ │ │ │ │ ├── data.src.js │ │ │ │ │ │ ├── drilldown.js │ │ │ │ │ │ ├── drilldown.src.js │ │ │ │ │ │ ├── exporting.js │ │ │ │ │ │ ├── exporting.src.js │ │ │ │ │ │ ├── funnel.js │ │ │ │ │ │ ├── funnel.src.js │ │ │ │ │ │ ├── heatmap.js │ │ │ │ │ │ ├── heatmap.src.js │ │ │ │ │ │ ├── map.js │ │ │ │ │ │ ├── map.src.js │ │ │ │ │ │ ├── no-data-to-display.js │ │ │ │ │ │ └── no-data-to-display.src.js │ │ │ │ │ └── themes │ │ │ │ │ │ ├── dark-blue.js │ │ │ │ │ │ ├── dark-green.js │ │ │ │ │ │ ├── gray.js │ │ │ │ │ │ ├── grid.js │ │ │ │ │ │ └── skies.js │ │ │ │ ├── jquery-1.10.2.js │ │ │ │ ├── jquery-1.10.2.min.js │ │ │ │ ├── jquery-1.10.2.min.map │ │ │ │ ├── snapscreen │ │ │ │ │ └── UEditorSnapscreen.exe │ │ │ │ ├── video-js │ │ │ │ │ ├── font │ │ │ │ │ │ ├── vjs.eot │ │ │ │ │ │ ├── vjs.svg │ │ │ │ │ │ ├── vjs.ttf │ │ │ │ │ │ └── vjs.woff │ │ │ │ │ ├── video-js.css │ │ │ │ │ ├── video-js.min.css │ │ │ │ │ ├── video-js.swf │ │ │ │ │ ├── video.dev.js │ │ │ │ │ └── video.js │ │ │ │ ├── webuploader │ │ │ │ │ ├── Uploader.swf │ │ │ │ │ ├── webuploader.css │ │ │ │ │ ├── webuploader.custom.js │ │ │ │ │ ├── webuploader.custom.min.js │ │ │ │ │ ├── webuploader.flashonly.js │ │ │ │ │ ├── webuploader.flashonly.min.js │ │ │ │ │ ├── webuploader.html5only.js │ │ │ │ │ ├── webuploader.html5only.min.js │ │ │ │ │ ├── webuploader.js │ │ │ │ │ ├── webuploader.min.js │ │ │ │ │ ├── webuploader.withoutimage.js │ │ │ │ │ └── webuploader.withoutimage.min.js │ │ │ │ ├── xss.min.js │ │ │ │ └── zeroclipboard │ │ │ │ │ ├── ZeroClipboard.js │ │ │ │ │ ├── ZeroClipboard.min.js │ │ │ │ │ └── ZeroClipboard.swf │ │ │ ├── ueditor.all.js │ │ │ ├── ueditor.all.min.js │ │ │ ├── ueditor.config.js │ │ │ ├── ueditor.parse.js │ │ │ └── ueditor.parse.min.js │ │ └── wangEditor │ │ │ ├── fonts │ │ │ └── w-e-icon.woff │ │ │ ├── wangEditor.css │ │ │ ├── wangEditor.js │ │ │ ├── wangEditor.min.css │ │ │ ├── wangEditor.min.js │ │ │ └── wangEditor.min.js.map │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ ├── img │ │ ├── a5.png │ │ ├── favicon.png │ │ ├── k.jpg │ │ ├── logo.png │ │ ├── logoa.png │ │ ├── logob.png │ │ ├── nopic.png │ │ ├── user01.png │ │ ├── user02.png │ │ ├── user03.png │ │ ├── user04.png │ │ ├── user05.png │ │ ├── user06.png │ │ └── user07.png │ └── js │ │ ├── amazeui.datatables.min.js │ │ ├── amazeui.datetimepicker.min.js │ │ ├── amazeui.min.js │ │ ├── app.js │ │ ├── dataTables.responsive.min.js │ │ ├── echarts.min.js │ │ ├── fullcalendar.min.js │ │ ├── jquery.min.js │ │ ├── locales │ │ ├── amazeui.datetimepicker.ar.js │ │ ├── amazeui.datetimepicker.az.js │ │ ├── amazeui.datetimepicker.bg.js │ │ ├── amazeui.datetimepicker.bn.js │ │ ├── amazeui.datetimepicker.ca.js │ │ ├── amazeui.datetimepicker.cs.js │ │ ├── amazeui.datetimepicker.da.js │ │ ├── amazeui.datetimepicker.de.js │ │ ├── amazeui.datetimepicker.ee.js │ │ ├── amazeui.datetimepicker.el.js │ │ ├── amazeui.datetimepicker.es.js │ │ ├── amazeui.datetimepicker.fi.js │ │ ├── amazeui.datetimepicker.fr.js │ │ ├── amazeui.datetimepicker.he.js │ │ ├── amazeui.datetimepicker.hr.js │ │ ├── amazeui.datetimepicker.hu.js │ │ ├── amazeui.datetimepicker.hy.js │ │ ├── amazeui.datetimepicker.id.js │ │ ├── amazeui.datetimepicker.is.js │ │ ├── amazeui.datetimepicker.it.js │ │ ├── amazeui.datetimepicker.ja.js │ │ ├── amazeui.datetimepicker.ka.js │ │ ├── amazeui.datetimepicker.ko.js │ │ ├── amazeui.datetimepicker.lt.js │ │ ├── amazeui.datetimepicker.lv.js │ │ ├── amazeui.datetimepicker.ms.js │ │ ├── amazeui.datetimepicker.nb.js │ │ ├── amazeui.datetimepicker.nl.js │ │ ├── amazeui.datetimepicker.no.js │ │ ├── amazeui.datetimepicker.pl.js │ │ ├── amazeui.datetimepicker.pt-BR.js │ │ ├── amazeui.datetimepicker.pt.js │ │ ├── amazeui.datetimepicker.ro.js │ │ ├── amazeui.datetimepicker.rs-latin.js │ │ ├── amazeui.datetimepicker.rs.js │ │ ├── amazeui.datetimepicker.ru.js │ │ ├── amazeui.datetimepicker.sk.js │ │ ├── amazeui.datetimepicker.sl.js │ │ ├── amazeui.datetimepicker.sv.js │ │ ├── amazeui.datetimepicker.sw.js │ │ ├── amazeui.datetimepicker.th.js │ │ ├── amazeui.datetimepicker.tr.js │ │ ├── amazeui.datetimepicker.ua.js │ │ ├── amazeui.datetimepicker.uk.js │ │ ├── amazeui.datetimepicker.zh-CN.js │ │ └── amazeui.datetimepicker.zh-TW.js │ │ ├── moment.js │ │ └── theme.js └── view │ ├── advertising │ ├── block │ │ ├── edit.html │ │ └── index.html │ ├── edit.html │ └── index.html │ ├── article │ ├── edit.html │ └── index.html │ ├── auth │ ├── adminer │ │ ├── edit.html │ │ └── index.html │ ├── log │ │ └── index.html │ ├── passport │ │ └── login.html │ ├── permission │ │ ├── edit.html │ │ └── index.html │ └── role │ │ ├── edit.html │ │ └── index.html │ ├── category │ ├── edit.html │ └── index.html │ ├── config │ ├── add.html │ └── index.html │ ├── index │ └── index.html │ ├── job │ ├── edit.html │ ├── index.html │ ├── resume.html │ └── resumeItem.html │ ├── jump.html │ ├── layout │ ├── admin-footer.html │ ├── admin-header.html │ ├── base.html │ ├── footer.html │ ├── meta.html │ └── passport.html │ ├── link │ ├── block │ │ ├── edit.html │ │ └── index.html │ ├── edit.html │ └── index.html │ ├── message │ └── index.html │ ├── nav │ ├── edit.html │ └── index.html │ ├── single │ ├── edit.html │ └── index.html │ └── widget │ └── admin-left.html ├── route └── admin.php ├── samples └── 201901060024581.png └── src ├── TadminService.php ├── behavior └── Boot.php ├── command ├── Init.php └── Migrate.php ├── controller ├── Advertising.php ├── AdvertisingBlock.php ├── Article.php ├── Captcha.php ├── Category.php ├── Config.php ├── Index.php ├── Job.php ├── Link.php ├── LinkBlock.php ├── Message.php ├── Nav.php ├── Single.php ├── Transfer.php ├── Upload.php └── auth │ ├── Adminer.php │ ├── Log.php │ ├── Passport.php │ ├── Permission.php │ └── Role.php ├── middleware ├── AuthCheck.php ├── LogRecord.php └── PermissionCheck.php ├── model ├── Adminer.php ├── AdminerRole.php ├── Advertising.php ├── AdvertisingBlock.php ├── Article.php ├── ArticleTag.php ├── Category.php ├── Config.php ├── Job.php ├── JobResume.php ├── Link.php ├── LinkBlock.php ├── Menu.php ├── MessageBoard.php ├── Model.php ├── Nav.php ├── OperationLog.php ├── Permission.php ├── Role.php ├── RolePermission.php ├── Single.php ├── Tag.php └── traits │ ├── ModelHelper.php │ └── Tree.php ├── paginator └── driver │ └── Amazeui.php ├── service ├── auth │ ├── Auth.php │ ├── contract │ │ ├── Auth.php │ │ └── Authenticate.php │ ├── facade │ │ └── Auth.php │ └── guard │ │ ├── SessionGuard.php │ │ ├── contract │ │ └── Guard.php │ │ └── traits │ │ └── GuardHelper.php └── casbin │ └── Adapter.php └── support ├── controller ├── Controller.php └── traits │ └── Jump.php └── view └── View.php /.gitattributes: -------------------------------------------------------------------------------- 1 | *.js linguist-language=PHP 2 | *.css linguist-language=PHP 3 | *.html linguist-language=PHP -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | composer.lock 2 | .idea 3 | /thinkphp/ 4 | /vendor/ -------------------------------------------------------------------------------- /.styleci.yml: -------------------------------------------------------------------------------- 1 | preset: Symfony 2 | risky: true 3 | enabled: 4 | - strict_param 5 | - short_array_syntax 6 | finder: 7 | exclude: 8 | - vendor 9 | name: "*.php" -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Foufou 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | Tadmin 3 |

4 | 5 |

6 | 一个基于 ThinkPH P的一款非侵入式后台开发框架! 7 |

8 | 9 |

10 | 11 | Latest Stable Version 12 | 13 | 14 | Total Downloads 15 | 16 | 17 | License 18 | 19 |

20 | 21 |

22 | 23 | 24 | 25 |

26 | 27 | ## 安装 28 | 29 | 最方便的安装方式就是使用Composer ( https://getcomposer.org/ ),在这之前**务必**先搭建好thinkphp项目 30 | 31 | 1、安装Tadmin 32 | 33 | ``` 34 | composer require leeqvip/tadmin 35 | ``` 36 | 37 | 2、注册服务 38 | 39 | 注册服务,在应用的全局公共文件`service.php`中加入: 40 | 41 | ```php 42 | return [ 43 | // ... 44 | 45 | tadmin\TadminService::class, 46 | ]; 47 | ``` 48 | 49 | 3、执行初始化和数据库迁移: 50 | 51 | **确保数据库配置信息正确**) 52 | 53 | ``` 54 | php think tadmin:init 55 | php think tadmin:migrate:run 56 | ``` 57 | 58 | ## 进入tadmin后台 59 | 60 | 打开后台地址,例如: 61 | 62 | http://yourdomain/tadmin 63 | 64 | ## 演示地址 65 | 66 | **后台**: 67 | http://tadmin.tech1024.com/tadmin 68 | 69 | 用户名:admin 密码:abc-123 70 | 71 | **前台**: 72 | http://tadmin.tech1024.com 73 | 74 | ## 协议 75 | 76 | `Tadmin` 采用 [MIT](LICENSE) 开源协议发布。 77 | 78 | ## 联系 79 | 80 | 有问题或者功能建议,请联系我们或者提交PR: 81 | - https://github.com/leeqvip/tadmin/issues 82 | - leeqvip@gmail.com 83 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leeqvip/tadmin", 3 | "description": "the admin framework based on thinkphp", 4 | "keywords": [ 5 | "framework", 6 | "thinkphp", 7 | "admin" 8 | ], 9 | "license": "MIT", 10 | "authors": [ 11 | { 12 | "name": "TechLee", 13 | "email": "techlee@qq.com" 14 | } 15 | ], 16 | "require": { 17 | "php": ">=8.0.0", 18 | "topthink/think-migration": "^3.1", 19 | "topthink/think-captcha": "^3.0", 20 | "league/flysystem": "^2.0|^3.0", 21 | "casbin/think-authz": "^2.0.1", 22 | "topthink/think-view": "^2.0" 23 | }, 24 | "autoload": { 25 | "psr-4": { 26 | "tadmin\\": "src/" 27 | }, 28 | "files": [ 29 | "helper.php" 30 | ] 31 | }, 32 | "extra": { 33 | "think-path": "thinkphp" 34 | }, 35 | "config": { 36 | "preferred-install": "dist" 37 | } 38 | } -------------------------------------------------------------------------------- /config/casbin-model.conf: -------------------------------------------------------------------------------- 1 | [request_definition] 2 | r = user_or_role_id, http_method, http_path 3 | 4 | [policy_definition] 5 | p = user_or_role_id, http_method, http_path 6 | 7 | [role_definition] 8 | g = _, _ 9 | 10 | [policy_effect] 11 | e = some(where (p.eft == allow)) 12 | 13 | [matchers] 14 | m = g(r.user_or_role_id, p.user_or_role_id) && (r.http_method == p.http_method || p.http_method == 'ALL') 15 | -------------------------------------------------------------------------------- /config/console.php: -------------------------------------------------------------------------------- 1 | [ 8 | 'tadmin:init' => \tadmin\command\Init::class, 9 | 'tadmin:migrate:run' => \tadmin\command\Migrate::class, 10 | ], 11 | ]; 12 | -------------------------------------------------------------------------------- /config/middleware.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'tadmin.admin' => [ 6 | \tadmin\middleware\AuthCheck::class, 7 | \tadmin\middleware\PermissionCheck::class, 8 | \tadmin\middleware\LogRecord::class, 9 | ], 10 | ] 11 | ]; 12 | -------------------------------------------------------------------------------- /config/provider.php: -------------------------------------------------------------------------------- 1 | \tadmin\service\upload\Uploader::class, 5 | \tadmin\service\auth\contract\Authenticate::class => \tadmin\model\Adminer::class, 6 | \tadmin\service\auth\guard\contract\Guard::class => \tadmin\service\auth\guard\SessionGuard::class, 7 | \tadmin\service\auth\contract\Auth::class => \tadmin\service\auth\Auth::class, 8 | \think\Paginator::class => \tadmin\paginator\driver\Amazeui::class, 9 | ]; 10 | -------------------------------------------------------------------------------- /config/tadmin.php: -------------------------------------------------------------------------------- 1 | [ 11 | // 视图目录 12 | 'view_path' => admin_view_path(), 13 | // public目录名 14 | 'public_name' => 'public', 15 | 'tpl_replace_string' => [ 16 | '__TADMIN_ASSETS__' => '/tmp/assets', 17 | ], 18 | ], 19 | /* 20 | *Default Tauthz enforcer 21 | */ 22 | 'enforcer' => [ 23 | 'model_config_path' => __DIR__ . '/casbin-model.conf', 24 | 'adapter' => tadmin\service\casbin\Adapter::class, 25 | ], 26 | 27 | // 模板配置 28 | 'view' => [ 29 | // 模板引擎类型使用Think 30 | 'type' => 'Think', 31 | // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法 32 | 'auto_rule' => 1, 33 | // 模板目录名 34 | 'view_dir_name' => 'view', 35 | // 模板文件路径 36 | 'view_path' => admin_view_path(), 37 | // 模板后缀 38 | 'view_suffix' => 'html', 39 | // 模板文件名分隔符 40 | 'view_depr' => DIRECTORY_SEPARATOR, 41 | // 模板引擎普通标签开始标记 42 | 'tpl_begin' => '{', 43 | // 模板引擎普通标签结束标记 44 | 'tpl_end' => '}', 45 | // 标签库标签开始标记 46 | 'taglib_begin' => '{', 47 | // 标签库标签结束标记 48 | 'taglib_end' => '}', 49 | 50 | // 公共目录 51 | 'public_name' => 'public', 52 | 53 | 'tpl_replace_string' => [ 54 | '__TADMIN_ASSETS__' => '/tmp/assets', 55 | ], 56 | ], 57 | ]; 58 | -------------------------------------------------------------------------------- /config/tauthz.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'tadmin' => [ 6 | /* 7 | * Model 设置 8 | */ 9 | 'model' => [ 10 | // 可选值: "file", "text" 11 | 'config_type' => 'file', 12 | 'config_file_path' => __DIR__ . '/casbin-model.conf', 13 | ], 14 | 15 | // 适配器 . 16 | 'adapter' => \tadmin\service\casbin\Adapter::class, 17 | ], 18 | ], 19 | ]; -------------------------------------------------------------------------------- /helper.php: -------------------------------------------------------------------------------- 1 | $val) { 72 | if (isset($b[$key])) { 73 | if (gettype($a[$key]) != gettype($b[$key])) { 74 | continue; 75 | } 76 | if (is_array($a[$key])) { 77 | $a[$key] = array_deep_merge($a[$key], $b[$key]); 78 | } else { 79 | $a[$key] = $b[$key]; 80 | } 81 | } 82 | } 83 | 84 | return $a; 85 | } 86 | } 87 | 88 | 89 | 90 | if (!function_exists('redirect_route')) { 91 | function redirect_route(string $route = '', int $code = 302) 92 | { 93 | return redirect((string)url($route), $code); 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /resource/assets/css/admin.css: -------------------------------------------------------------------------------- 1 | 2 | .admin-page-header{padding: 20px;padding-bottom: 0px;} 3 | .tpl-index-settings-button{text-align: right;} 4 | 5 | .image-title-group img{float: left;margin-right: 10px;height: 32px;width: 32px;} 6 | .image-title-group p{margin: 0px;} 7 | .tpl-pagination li a{border-radius: 0px !important;} 8 | div.content-wrapper{min-height: auto} 9 | 10 | .admin-footer{position: absolute;width: 100%;left: 0px;bottom: 0px;} 11 | 12 | .tpl-skiner{bottom: 0px;top: auto;} 13 | .am-header-title{color: #0e90d2;font-size: 2.1rem} 14 | .am-list{font-size: 1.4rem;} 15 | 16 | .theme-black .admin-footer .am-footer-default{background: #282d2f;} 17 | .theme-black .am-panel{background: #4b5357;border:1px solid #33393c;} 18 | .theme-black .am-panel .am-panel-hd{background: #5d6468;color: #fff;border-color: #33393c} 19 | .theme-black .am-thumbnail{background-color:#4b5357;border:1px solid #33393c;} 20 | .theme-black .am-list>li{background-color: #4b5357;border-color: #666d70;} 21 | .theme-black code{background-color: #3a4144} 22 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/anchor/anchor.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 13 | 14 | 15 |
16 | 17 |
18 | 19 | 39 | 40 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/attachment.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ueditor图片对话框 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |
22 | 23 | 24 |
25 |
26 | 27 |
28 |
29 |
30 |
31 | 0% 32 | 33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
    45 |
  • 46 |
47 |
48 |
49 | 50 | 51 |
52 |
53 |
54 | 55 |
56 |
57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_chm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_chm.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_default.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_doc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_doc.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_exe.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_exe.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_jpg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_jpg.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_mp3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_mp3.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_mv.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_mv.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_ppt.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_ppt.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_psd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_psd.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_rar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_rar.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_txt.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_txt.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_xls.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/fileTypeImages/icon_xls.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/images/alignicon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/images/alignicon.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/images/alignicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/images/alignicon.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/images/bg.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/images/file-icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/images/file-icons.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/images/file-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/images/file-icons.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/images/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/images/icons.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/images/icons.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/images/image.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/images/progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/images/progress.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/images/success.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/images/success.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/attachment/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/attachment/images/success.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/background/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/background/images/bg.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/background/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/background/images/success.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/charts/chart.config.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 图表配置文件 3 | * */ 4 | 5 | 6 | //不同类型的配置 7 | var typeConfig = [ 8 | { 9 | chart: { 10 | type: 'line' 11 | }, 12 | plotOptions: { 13 | line: { 14 | dataLabels: { 15 | enabled: false 16 | }, 17 | enableMouseTracking: true 18 | } 19 | } 20 | }, { 21 | chart: { 22 | type: 'line' 23 | }, 24 | plotOptions: { 25 | line: { 26 | dataLabels: { 27 | enabled: true 28 | }, 29 | enableMouseTracking: false 30 | } 31 | } 32 | }, { 33 | chart: { 34 | type: 'area' 35 | } 36 | }, { 37 | chart: { 38 | type: 'bar' 39 | } 40 | }, { 41 | chart: { 42 | type: 'column' 43 | } 44 | }, { 45 | chart: { 46 | plotBackgroundColor: null, 47 | plotBorderWidth: null, 48 | plotShadow: false 49 | }, 50 | plotOptions: { 51 | pie: { 52 | allowPointSelect: true, 53 | cursor: 'pointer', 54 | dataLabels: { 55 | enabled: true, 56 | color: '#000000', 57 | connectorColor: '#000000', 58 | formatter: function() { 59 | return ''+ this.point.name +': '+ ( Math.round( this.point.percentage*100 ) / 100 ) +' %'; 60 | } 61 | } 62 | } 63 | } 64 | } 65 | ]; 66 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/charts/images/charts0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/charts/images/charts0.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/charts/images/charts1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/charts/images/charts1.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/charts/images/charts2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/charts/images/charts2.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/charts/images/charts3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/charts/images/charts3.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/charts/images/charts4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/charts/images/charts4.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/charts/images/charts5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/charts/images/charts5.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/emotion/emotion.css: -------------------------------------------------------------------------------- 1 | .jd img{ 2 | background:transparent url(images/jxface2.gif?v=1.1) no-repeat scroll left top; 3 | cursor:pointer;width:35px;height:35px;display:block; 4 | } 5 | .pp img{ 6 | background:transparent url(images/fface.gif?v=1.1) no-repeat scroll left top; 7 | cursor:pointer;width:25px;height:25px;display:block; 8 | } 9 | .ldw img{ 10 | background:transparent url(images/wface.gif?v=1.1) no-repeat scroll left top; 11 | cursor:pointer;width:35px;height:35px;display:block; 12 | } 13 | .tsj img{ 14 | background:transparent url(images/tface.gif?v=1.1) no-repeat scroll left top; 15 | cursor:pointer;width:35px;height:35px;display:block; 16 | } 17 | .cat img{ 18 | background:transparent url(images/cface.gif?v=1.1) no-repeat scroll left top; 19 | cursor:pointer;width:35px;height:35px;display:block; 20 | } 21 | .bb img{ 22 | background:transparent url(images/bface.gif?v=1.1) no-repeat scroll left top; 23 | cursor:pointer;width:35px;height:35px;display:block; 24 | } 25 | .youa img{ 26 | background:transparent url(images/yface.gif?v=1.1) no-repeat scroll left top; 27 | cursor:pointer;width:35px;height:35px;display:block; 28 | } 29 | 30 | .smileytable td {height: 37px;} 31 | #tabPanel{margin-left:5px;overflow: hidden;} 32 | #tabContent {float:left;background:#FFFFFF;} 33 | #tabContent div{display: none;width:480px;overflow:hidden;} 34 | #tabIconReview.show{left:17px;display:block;} 35 | .menuFocus{background:#ACCD3C;} 36 | .menuDefault{background:#FFFFFF;} 37 | #tabIconReview{position:absolute;left:406px;left:398px \9;top:41px;z-index:65533;width:90px;height:76px;} 38 | img.review{width:90px;height:76px;border:2px solid #9cb945;background:#FFFFFF;background-position:center;background-repeat:no-repeat;} 39 | 40 | .wrapper .tabbody{position:relative;float:left;clear:both;padding:10px;width: 95%;} 41 | .tabbody table{width: 100%;} 42 | .tabbody td{border:1px solid #BAC498;} 43 | .tabbody td span{display: block;zoom:1;padding:0 4px;} -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/emotion/images/0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/emotion/images/0.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/emotion/images/bface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/emotion/images/bface.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/emotion/images/cface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/emotion/images/cface.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/emotion/images/fface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/emotion/images/fface.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/emotion/images/jxface2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/emotion/images/jxface2.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/emotion/images/neweditor-tab-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/emotion/images/neweditor-tab-bg.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/emotion/images/tface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/emotion/images/tface.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/emotion/images/wface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/emotion/images/wface.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/emotion/images/yface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/emotion/images/yface.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/help/help.css: -------------------------------------------------------------------------------- 1 | .wrapper{width: 370px;margin: 10px auto;zoom: 1;} 2 | .tabbody{height: 360px;} 3 | .tabbody .panel{width:100%;height: 360px;position: absolute;background: #fff;} 4 | .tabbody .panel h1{font-size:26px;margin: 5px 0 0 5px;} 5 | .tabbody .panel p{font-size:12px;margin: 5px 0 0 5px;} 6 | .tabbody table{width:90%;line-height: 20px;margin: 5px 0 0 5px;;} 7 | .tabbody table thead{font-weight: bold;line-height: 25px;} -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/help/help.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created with JetBrains PhpStorm. 3 | * User: xuheng 4 | * Date: 12-9-26 5 | * Time: 下午1:06 6 | * To change this template use File | Settings | File Templates. 7 | */ 8 | /** 9 | * tab点击处理事件 10 | * @param tabHeads 11 | * @param tabBodys 12 | * @param obj 13 | */ 14 | function clickHandler( tabHeads,tabBodys,obj ) { 15 | //head样式更改 16 | for ( var k = 0, len = tabHeads.length; k < len; k++ ) { 17 | tabHeads[k].className = ""; 18 | } 19 | obj.className = "focus"; 20 | //body显隐 21 | var tabSrc = obj.getAttribute( "tabSrc" ); 22 | for ( var j = 0, length = tabBodys.length; j < length; j++ ) { 23 | var body = tabBodys[j], 24 | id = body.getAttribute( "id" ); 25 | body.onclick = function(){ 26 | this.style.zoom = 1; 27 | }; 28 | if ( id != tabSrc ) { 29 | body.style.zIndex = 1; 30 | } else { 31 | body.style.zIndex = 200; 32 | } 33 | } 34 | 35 | } 36 | 37 | /** 38 | * TAB切换 39 | * @param tabParentId tab的父节点ID或者对象本身 40 | */ 41 | function switchTab( tabParentId ) { 42 | var tabElements = $G( tabParentId ).children, 43 | tabHeads = tabElements[0].children, 44 | tabBodys = tabElements[1].children; 45 | 46 | for ( var i = 0, length = tabHeads.length; i < length; i++ ) { 47 | var head = tabHeads[i]; 48 | if ( head.className === "focus" )clickHandler(tabHeads,tabBodys, head ); 49 | head.onclick = function () { 50 | clickHandler(tabHeads,tabBodys,this); 51 | } 52 | } 53 | } 54 | switchTab("helptab"); 55 | 56 | document.getElementById('version').innerHTML = parent.UE.version; -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/image/images/alignicon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/image/images/alignicon.jpg -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/image/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/image/images/bg.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/image/images/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/image/images/icons.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/image/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/image/images/icons.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/image/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/image/images/image.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/image/images/progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/image/images/progress.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/image/images/success.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/image/images/success.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/image/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/image/images/success.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/music/music.css: -------------------------------------------------------------------------------- 1 | .wrapper{margin: 5px 10px;} 2 | 3 | .searchBar{height:30px;padding:7px 0 3px;text-align:center;} 4 | .searchBtn{font-size:13px;height:24px;} 5 | 6 | .resultBar{width:460px;margin:5px auto;border: 1px solid #CCC;border-radius: 5px;box-shadow: 2px 2px 5px #D3D6DA;overflow: hidden;} 7 | 8 | .listPanel{overflow: hidden;} 9 | .panelon{display:block;} 10 | .paneloff{display:none} 11 | 12 | .page{width:220px;margin:20px auto;overflow: hidden;} 13 | .pageon{float:right;width:24px;line-height:24px;height:24px;margin-right: 5px;background: none;border: none;color: #000;font-weight: bold;text-align:center} 14 | .pageoff{float:right;width:24px;line-height:24px;height:24px;cursor:pointer;background-color: #fff; 15 | border: 1px solid #E7ECF0;color: #2D64B3;margin-right: 5px;text-decoration: none;text-align:center;} 16 | 17 | .m-box{width:460px;} 18 | .m-m{float: left;line-height: 20px;height: 20px;} 19 | .m-h{height:24px;line-height:24px;padding-left: 46px;background-color:#FAFAFA;border-bottom: 1px solid #DAD8D8;font-weight: bold;font-size: 12px;color: #333;} 20 | .m-l{float:left;width:40px; } 21 | .m-t{float:left;width:140px;} 22 | .m-s{float:left;width:110px;} 23 | .m-z{float:left;width:100px;} 24 | .m-try-t{float: left;width: 60px;;} 25 | 26 | .m-try{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/try_music.gif') no-repeat ;} 27 | .m-trying{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/stop_music.gif') no-repeat ;} 28 | 29 | .loading{width:95px;height:7px;font-size:7px;margin:60px auto;background:url(http://static.tieba.baidu.com/tb/editor/images/loading.gif) no-repeat} 30 | .empty{width:300px;height:40px;padding:2px;margin:50px auto;line-height:40px; color:#006699;text-align:center;} -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/music/music.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 插入音乐 6 | 7 | 8 | 9 | 10 |
11 | 15 |
16 | 17 |
18 |
19 |
20 |
21 | 22 | 31 | 32 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/preview/preview.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 |
29 | 30 | 40 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/scrawl/images/addimg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/scrawl/images/addimg.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/scrawl/images/brush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/scrawl/images/brush.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/scrawl/images/delimg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/scrawl/images/delimg.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/scrawl/images/delimgH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/scrawl/images/delimgH.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/scrawl/images/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/scrawl/images/empty.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/scrawl/images/emptyH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/scrawl/images/emptyH.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/scrawl/images/eraser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/scrawl/images/eraser.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/scrawl/images/redo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/scrawl/images/redo.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/scrawl/images/redoH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/scrawl/images/redoH.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/scrawl/images/scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/scrawl/images/scale.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/scrawl/images/scaleH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/scrawl/images/scaleH.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/scrawl/images/size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/scrawl/images/size.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/scrawl/images/undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/scrawl/images/undo.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/scrawl/images/undoH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/scrawl/images/undoH.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/snapscreen/snapscreen.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 47 | 48 | 49 |
50 |

51 |
52 |
53 |
54 |
55 |
56 |
57 | 58 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/spechars/spechars.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 14 | 15 | 16 |
17 |
18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/table/dragicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/table/dragicon.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/table/edittable.css: -------------------------------------------------------------------------------- 1 | body{ 2 | overflow: hidden; 3 | width: 540px; 4 | } 5 | .wrapper { 6 | margin: 10px auto 0; 7 | font-size: 12px; 8 | overflow: hidden; 9 | width: 520px; 10 | height: 315px; 11 | } 12 | 13 | .clear { 14 | clear: both; 15 | } 16 | 17 | .wrapper .left { 18 | float: left; 19 | margin-left: 10px;; 20 | } 21 | 22 | .wrapper .right { 23 | float: right; 24 | border-left: 2px dotted #EDEDED; 25 | padding-left: 15px; 26 | } 27 | 28 | .section { 29 | margin-bottom: 15px; 30 | width: 240px; 31 | overflow: hidden; 32 | } 33 | 34 | .section h3 { 35 | font-weight: bold; 36 | padding: 5px 0; 37 | margin-bottom: 10px; 38 | border-bottom: 1px solid #EDEDED; 39 | font-size: 12px; 40 | } 41 | 42 | .section ul { 43 | list-style: none; 44 | overflow: hidden; 45 | clear: both; 46 | 47 | } 48 | 49 | .section li { 50 | float: left; 51 | width: 120px;; 52 | } 53 | 54 | .section .tone { 55 | width: 80px;; 56 | } 57 | 58 | .section .preview { 59 | width: 220px; 60 | } 61 | 62 | .section .preview table { 63 | text-align: center; 64 | vertical-align: middle; 65 | color: #666; 66 | } 67 | 68 | .section .preview caption { 69 | font-weight: bold; 70 | } 71 | 72 | .section .preview td { 73 | border-width: 1px; 74 | border-style: solid; 75 | height: 22px; 76 | } 77 | 78 | .section .preview th { 79 | border-style: solid; 80 | border-color: #DDD; 81 | border-width: 2px 1px 1px 1px; 82 | height: 22px; 83 | background-color: #F7F7F7; 84 | } -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/table/edittd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 16 | 17 | 18 |
19 | 20 | 21 |
22 | 60 | 61 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/table/edittip.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 表格删除提示 5 | 6 | 17 | 18 | 19 |
20 |
21 | 22 |
23 |
24 | 25 |
26 |
27 | 32 | 33 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/template/images/bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/template/images/bg.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/template/images/pre0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/template/images/pre0.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/template/images/pre1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/template/images/pre1.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/template/images/pre2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/template/images/pre2.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/template/images/pre3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/template/images/pre3.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/template/images/pre4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/template/images/pre4.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/template/template.css: -------------------------------------------------------------------------------- 1 | .wrap{ padding: 5px;font-size: 14px;} 2 | .left{width:425px;float: left;} 3 | .right{width:160px;border: 1px solid #ccc;float: right;padding: 5px;margin-right: 5px;} 4 | .right .pre{height: 332px;overflow-y: auto;} 5 | .right .preitem{border: white 1px solid;margin: 5px 0;padding: 2px 0;} 6 | .right .preitem:hover{background-color: lemonChiffon;cursor: pointer;border: #ccc 1px solid;} 7 | .right .preitem img{display: block;margin: 0 auto;width:100px;} 8 | .clear{clear: both;} 9 | .top{height:26px;line-height: 26px;padding: 5px;} 10 | .bottom{height:320px;width:100%;margin: 0 auto;} 11 | .transparent{ background: url("images/bg.gif") repeat;} 12 | .bottom table tr td{border:1px dashed #ccc;} 13 | #colorPicker{width: 17px;height: 17px;border: 1px solid #CCC;display: inline-block;border-radius: 3px;box-shadow: 2px 2px 5px #D3D6DA;} 14 | .border_style1{padding:2px;border: 1px solid #ccc;border-radius: 5px;box-shadow:2px 2px 5px #d3d6da;} 15 | p{margin: 5px 0} 16 | table{clear:both;margin-bottom:10px;border-collapse:collapse;word-break:break-all;} 17 | li{clear:both} 18 | ol{padding-left:40px; } -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/template/template.html: -------------------------------------------------------------------------------- 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 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/template/template.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created with JetBrains PhpStorm. 3 | * User: xuheng 4 | * Date: 12-8-8 5 | * Time: 下午2:09 6 | * To change this template use File | Settings | File Templates. 7 | */ 8 | (function () { 9 | var me = editor, 10 | preview = $G( "preview" ), 11 | preitem = $G( "preitem" ), 12 | tmps = templates, 13 | currentTmp; 14 | var initPre = function () { 15 | var str = ""; 16 | for ( var i = 0, tmp; tmp = tmps[i++]; ) { 17 | str += '
'; 18 | } 19 | preitem.innerHTML = str; 20 | }; 21 | var pre = function ( n ) { 22 | var tmp = tmps[n - 1]; 23 | currentTmp = tmp; 24 | clearItem(); 25 | domUtils.setStyles( preitem.childNodes[n - 1], { 26 | "background-color":"lemonChiffon", 27 | "border":"#ccc 1px solid" 28 | } ); 29 | preview.innerHTML = tmp.preHtml ? tmp.preHtml : ""; 30 | }; 31 | var clearItem = function () { 32 | var items = preitem.children; 33 | for ( var i = 0, item; item = items[i++]; ) { 34 | domUtils.setStyles( item, { 35 | "background-color":"", 36 | "border":"white 1px solid" 37 | } ); 38 | } 39 | }; 40 | dialog.onok = function () { 41 | if ( !$G( "issave" ).checked ){ 42 | me.execCommand( "cleardoc" ); 43 | } 44 | var obj = { 45 | html:currentTmp && currentTmp.html 46 | }; 47 | me.execCommand( "template", obj ); 48 | }; 49 | initPre(); 50 | window.pre = pre; 51 | pre(2) 52 | 53 | })(); -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/video/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/video/images/bg.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/video/images/center_focus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/video/images/center_focus.jpg -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/video/images/file-icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/video/images/file-icons.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/video/images/file-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/video/images/file-icons.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/video/images/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/video/images/icons.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/video/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/video/images/icons.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/video/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/video/images/image.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/video/images/left_focus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/video/images/left_focus.jpg -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/video/images/none_focus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/video/images/none_focus.jpg -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/video/images/progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/video/images/progress.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/video/images/right_focus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/video/images/right_focus.jpg -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/video/images/success.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/video/images/success.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/video/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/video/images/success.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/webapp/webapp.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | 14 |
15 |
16 |
17 | 52 | 53 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/wordimage/fClipboard_ueditor.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/wordimage/fClipboard_ueditor.swf -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/dialogs/wordimage/imageUploader.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/dialogs/wordimage/imageUploader.swf -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/en/images/addimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/en/images/addimage.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/en/images/alldeletebtnhoverskin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/en/images/alldeletebtnhoverskin.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/en/images/alldeletebtnupskin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/en/images/alldeletebtnupskin.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/en/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/en/images/background.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/en/images/button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/en/images/button.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/en/images/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/en/images/copy.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/en/images/deletedisable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/en/images/deletedisable.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/en/images/deleteenable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/en/images/deleteenable.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/en/images/listbackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/en/images/listbackground.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/en/images/localimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/en/images/localimage.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/en/images/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/en/images/music.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/en/images/rotateleftdisable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/en/images/rotateleftdisable.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/en/images/rotateleftenable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/en/images/rotateleftenable.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/en/images/rotaterightdisable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/en/images/rotaterightdisable.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/en/images/rotaterightenable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/en/images/rotaterightenable.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/en/images/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/en/images/upload.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/zh-cn/images/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/zh-cn/images/copy.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/zh-cn/images/localimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/zh-cn/images/localimage.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/zh-cn/images/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/zh-cn/images/music.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/lang/zh-cn/images/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/lang/zh-cn/images/upload.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/dialogbase.css: -------------------------------------------------------------------------------- 1 | /*弹出对话框页面样式组件 2 | */ 3 | 4 | /*reset 5 | */ 6 | html, body, div, span, applet, object, iframe, 7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 8 | a, abbr, acronym, address, big, cite, code, 9 | del, dfn, em, font, img, ins, kbd, q, s, samp, 10 | small, strike, strong, sub, sup, tt, var, 11 | b, u, i, center, 12 | dl, dt, dd, ol, ul, li, 13 | fieldset, form, label, legend, 14 | table, caption, tbody, tfoot, thead, tr, th, td { 15 | margin: 0; 16 | padding: 0; 17 | outline: 0; 18 | font-size: 100%; 19 | } 20 | 21 | body { 22 | line-height: 1; 23 | } 24 | 25 | ol, ul { 26 | list-style: none; 27 | } 28 | 29 | blockquote, q { 30 | quotes: none; 31 | } 32 | 33 | ins { 34 | text-decoration: none; 35 | } 36 | 37 | del { 38 | text-decoration: line-through; 39 | } 40 | 41 | table { 42 | border-collapse: collapse; 43 | border-spacing: 0; 44 | } 45 | 46 | /*module 47 | */ 48 | body { 49 | background-color: #fff; 50 | font: 12px/1.5 sans-serif, "宋体", "Arial Narrow", HELVETICA; 51 | color: #646464; 52 | } 53 | 54 | /*tab*/ 55 | .tabhead { 56 | position: relative; 57 | z-index: 10; 58 | } 59 | 60 | .tabhead span { 61 | display: inline-block; 62 | padding: 0 5px; 63 | height: 30px; 64 | border: 1px solid #ccc; 65 | background: url("images/dialog-title-bg.png") repeat-x; 66 | text-align: center; 67 | line-height: 30px; 68 | cursor: pointer; 69 | *margin-right: 5px; 70 | } 71 | 72 | .tabhead span.focus { 73 | height: 31px; 74 | border-bottom: none; 75 | background: #fff; 76 | } 77 | 78 | .tabbody { 79 | position: relative; 80 | top: -1px; 81 | margin: 0 auto; 82 | border: 1px solid #ccc; 83 | } 84 | 85 | /*button*/ 86 | a.button { 87 | display: block; 88 | text-align: center; 89 | line-height: 24px; 90 | text-decoration: none; 91 | height: 24px; 92 | width: 95px; 93 | border: 0; 94 | color: #838383; 95 | background: url(../../themes/default/images/icons-all.gif) no-repeat; 96 | } 97 | 98 | a.button:hover { 99 | background-position: 0 -30px; 100 | } -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/anchor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/anchor.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/arrow.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/arrow_down.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/arrow_up.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/button-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/button-bg.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/cancelbutton.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/cancelbutton.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/charts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/charts.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/cursor_h.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/cursor_h.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/cursor_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/cursor_h.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/cursor_v.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/cursor_v.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/cursor_v.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/cursor_v.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/dialog-title-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/dialog-title-bg.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/filescan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/filescan.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/highlighted.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/highlighted.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/icons-all.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/icons-all.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/icons.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/icons.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/loaderror.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/loaderror.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/loading.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/lock.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/lock.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/neweditor-tab-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/neweditor-tab-bg.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/pagebreak.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/pagebreak.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/scale.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/sortable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/sortable.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/spacer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/spacer.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/sparator_v.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/sparator_v.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/table-cell-align.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/table-cell-align.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/tangram-colorpicker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/tangram-colorpicker.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/toolbar_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/toolbar_bg.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/unhighlighted.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/unhighlighted.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/upload.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/videologo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/videologo.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/word.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/word.gif -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/default/images/wordpaste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/themes/default/images/wordpaste.png -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/themes/iframe.css: -------------------------------------------------------------------------------- 1 | /*可以在这里添加你自己的css*/ 2 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/third-party/highcharts/adapters/mootools-adapter.js: -------------------------------------------------------------------------------- 1 | /* 2 | Highcharts JS v3.0.6 (2013-10-04) 3 | MooTools adapter 4 | 5 | (c) 2010-2013 Torstein Hønsi 6 | 7 | License: www.highcharts.com/license 8 | */ 9 | (function(){var e=window,h=document,f=e.MooTools.version.substring(0,3),i=f==="1.2"||f==="1.1",j=i||f==="1.3",g=e.$extend||function(){return Object.append.apply(Object,arguments)};e.HighchartsAdapter={init:function(a){var b=Fx.prototype,c=b.start,d=Fx.Morph.prototype,e=d.compute;b.start=function(b,d){var e=this.element;if(b.d)this.paths=a.init(e,e.d,this.toD);c.apply(this,arguments);return this};d.compute=function(b,c,d){var f=this.paths;if(f)this.element.attr("d",a.step(f[0],f[1],d,this.toD));else return e.apply(this, 10 | arguments)}},adapterRun:function(a,b){if(b==="width"||b==="height")return parseInt($(a).getStyle(b),10)},getScript:function(a,b){var c=h.getElementsByTagName("head")[0],d=h.createElement("script");d.type="text/javascript";d.src=a;d.onload=b;c.appendChild(d)},animate:function(a,b,c){var d=a.attr,f=c&&c.complete;if(d&&!a.setStyle)a.getStyle=a.attr,a.setStyle=function(){var a=arguments;this.attr.call(this,a[0],a[1][0])},a.$family=function(){return!0};e.HighchartsAdapter.stop(a);c=new Fx.Morph(d?a:$(a), 11 | g({transition:Fx.Transitions.Quad.easeInOut},c));if(d)c.element=a;if(b.d)c.toD=b.d;f&&c.addEvent("complete",f);c.start(b);a.fx=c},each:function(a,b){return i?$each(a,b):Array.each(a,b)},map:function(a,b){return a.map(b)},grep:function(a,b){return a.filter(b)},inArray:function(a,b,c){return b?b.indexOf(a,c):-1},offset:function(a){a=a.getPosition();return{left:a.x,top:a.y}},extendWithEvents:function(a){a.addEvent||(a.nodeName?$(a):g(a,new Events))},addEvent:function(a,b,c){typeof b==="string"&&(b=== 12 | "unload"&&(b="beforeunload"),e.HighchartsAdapter.extendWithEvents(a),a.addEvent(b,c))},removeEvent:function(a,b,c){typeof a!=="string"&&a.addEvent&&(b?(b==="unload"&&(b="beforeunload"),c?a.removeEvent(b,c):a.removeEvents&&a.removeEvents(b)):a.removeEvents())},fireEvent:function(a,b,c,d){b={type:b,target:a};b=j?new Event(b):new DOMEvent(b);b=g(b,c);if(!b.target&&b.event)b.target=b.event.target;b.preventDefault=function(){d=null};a.fireEvent&&a.fireEvent(b.type,b);d&&d(b)},washMouseEvent:function(a){if(a.page)a.pageX= 13 | a.page.x,a.pageY=a.page.y;return a},stop:function(a){a.fx&&a.fx.cancel()}}})(); 14 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/third-party/highcharts/modules/funnel.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Highcharts funnel module, Beta 4 | 5 | (c) 2010-2012 Torstein Hønsi 6 | 7 | License: www.highcharts.com/license 8 | */ 9 | (function(d){var u=d.getOptions().plotOptions,p=d.seriesTypes,D=d.merge,z=function(){},A=d.each;u.funnel=D(u.pie,{center:["50%","50%"],width:"90%",neckWidth:"30%",height:"100%",neckHeight:"25%",dataLabels:{connectorWidth:1,connectorColor:"#606060"},size:!0,states:{select:{color:"#C0C0C0",borderColor:"#000000",shadow:!1}}});p.funnel=d.extendClass(p.pie,{type:"funnel",animate:z,translate:function(){var a=function(k,a){return/%$/.test(k)?a*parseInt(k,10)/100:parseInt(k,10)},g=0,e=this.chart,f=e.plotWidth, 10 | e=e.plotHeight,h=0,c=this.options,C=c.center,b=a(C[0],f),d=a(C[0],e),p=a(c.width,f),i,q,j=a(c.height,e),r=a(c.neckWidth,f),s=a(c.neckHeight,e),v=j-s,a=this.data,w,x,u=c.dataLabels.position==="left"?1:0,y,m,B,n,l,t,o;this.getWidthAt=q=function(k){return k>j-s||j===s?r:r+(p-r)*((j-s-k)/(j-s))};this.getX=function(k,a){return b+(a?-1:1)*(q(k)/2+c.dataLabels.distance)};this.center=[b,d,j];this.centerX=b;A(a,function(a){g+=a.y});A(a,function(a){o=null;x=g?a.y/g:0;m=d-j/2+h*j;l=m+x*j;i=q(m);y=b-i/2;B=y+ 11 | i;i=q(l);n=b-i/2;t=n+i;m>v?(y=n=b-r/2,B=t=b+r/2):l>v&&(o=l,i=q(v),n=b-i/2,t=n+i,l=v);w=["M",y,m,"L",B,m,t,l];o&&w.push(t,o,n,o);w.push(n,l,"Z");a.shapeType="path";a.shapeArgs={d:w};a.percentage=x*100;a.plotX=b;a.plotY=(m+(o||l))/2;a.tooltipPos=[b,a.plotY];a.slice=z;a.half=u;h+=x});this.setTooltipPoints()},drawPoints:function(){var a=this,g=a.options,e=a.chart.renderer;A(a.data,function(f){var h=f.graphic,c=f.shapeArgs;h?h.animate(c):f.graphic=e.path(c).attr({fill:f.color,stroke:g.borderColor,"stroke-width":g.borderWidth}).add(a.group)})}, 12 | sortByAngle:z,drawDataLabels:function(){var a=this.data,g=this.options.dataLabels.distance,e,f,h,c=a.length,d,b;for(this.center[2]-=2*g;c--;)h=a[c],f=(e=h.half)?1:-1,b=h.plotY,d=this.getX(b,e),h.labelPos=[0,b,d+(g-5)*f,b,d+g*f,b,e?"right":"left",0];p.pie.prototype.drawDataLabels.call(this)}})})(Highcharts); 13 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/third-party/highcharts/modules/heatmap.js: -------------------------------------------------------------------------------- 1 | (function(b){var k=b.seriesTypes,l=b.each;k.heatmap=b.extendClass(k.map,{colorKey:"z",useMapGeometry:!1,pointArrayMap:["y","z"],translate:function(){var c=this,b=c.options,i=Number.MAX_VALUE,j=Number.MIN_VALUE;c.generatePoints();l(c.data,function(a){var e=a.x,f=a.y,d=a.z,g=(b.colsize||1)/2,h=(b.rowsize||1)/2;a.path=["M",e-g,f-h,"L",e+g,f-h,"L",e+g,f+h,"L",e-g,f+h,"Z"];a.shapeType="path";a.shapeArgs={d:c.translatePath(a.path)};typeof d==="number"&&(d>j?j=d:d dataMax) { 39 | dataMax = value; 40 | } else if (value < dataMin) { 41 | dataMin = value; 42 | } 43 | } 44 | }); 45 | 46 | series.translateColors(dataMin, dataMax); 47 | }, 48 | 49 | getBox: function () {} 50 | 51 | }); 52 | 53 | }(Highcharts)); 54 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/third-party/highcharts/modules/no-data-to-display.js: -------------------------------------------------------------------------------- 1 | /* 2 | Highcharts JS v3.0.6 (2013-10-04) 3 | Plugin for displaying a message when there is no data visible in chart. 4 | 5 | (c) 2010-2013 Highsoft AS 6 | Author: Øystein Moseng 7 | 8 | License: www.highcharts.com/license 9 | */ 10 | (function(c){function f(){return!!this.points.length}function g(){this.hasData()?this.hideNoData():this.showNoData()}var d=c.seriesTypes,e=c.Chart.prototype,h=c.getOptions(),i=c.extend;i(h.lang,{noData:"No data to display"});h.noData={position:{x:0,y:0,align:"center",verticalAlign:"middle"},attr:{},style:{fontWeight:"bold",fontSize:"12px",color:"#60606a"}};d.pie.prototype.hasData=f;if(d.gauge)d.gauge.prototype.hasData=f;if(d.waterfall)d.waterfall.prototype.hasData=f;c.Series.prototype.hasData=function(){return this.dataMax!== 11 | void 0&&this.dataMin!==void 0};e.showNoData=function(a){var b=this.options,a=a||b.lang.noData,b=b.noData;if(!this.noDataLabel)this.noDataLabel=this.renderer.label(a,0,0,null,null,null,null,null,"no-data").attr(b.attr).css(b.style).add(),this.noDataLabel.align(i(this.noDataLabel.getBBox(),b.position),!1,"plotBox")};e.hideNoData=function(){if(this.noDataLabel)this.noDataLabel=this.noDataLabel.destroy()};e.hasData=function(){for(var a=this.series,b=a.length;b--;)if(a[b].hasData()&&!a[b].options.isInternal)return!0; 12 | return!1};e.callbacks.push(function(a){c.addEvent(a,"load",g);c.addEvent(a,"redraw",g)})})(Highcharts); 13 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/third-party/highcharts/themes/grid.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Grid theme for Highcharts JS 3 | * @author Torstein Hønsi 4 | */ 5 | 6 | Highcharts.theme = { 7 | colors: ['#058DC7', '#50B432', '#ED561B', '#DDDF00', '#24CBE5', '#64E572', '#FF9655', '#FFF263', '#6AF9C4'], 8 | chart: { 9 | backgroundColor: { 10 | linearGradient: { x1: 0, y1: 0, x2: 1, y2: 1 }, 11 | stops: [ 12 | [0, 'rgb(255, 255, 255)'], 13 | [1, 'rgb(240, 240, 255)'] 14 | ] 15 | }, 16 | borderWidth: 2, 17 | plotBackgroundColor: 'rgba(255, 255, 255, .9)', 18 | plotShadow: true, 19 | plotBorderWidth: 1 20 | }, 21 | title: { 22 | style: { 23 | color: '#000', 24 | font: 'bold 16px "Trebuchet MS", Verdana, sans-serif' 25 | } 26 | }, 27 | subtitle: { 28 | style: { 29 | color: '#666666', 30 | font: 'bold 12px "Trebuchet MS", Verdana, sans-serif' 31 | } 32 | }, 33 | xAxis: { 34 | gridLineWidth: 1, 35 | lineColor: '#000', 36 | tickColor: '#000', 37 | labels: { 38 | style: { 39 | color: '#000', 40 | font: '11px Trebuchet MS, Verdana, sans-serif' 41 | } 42 | }, 43 | title: { 44 | style: { 45 | color: '#333', 46 | fontWeight: 'bold', 47 | fontSize: '12px', 48 | fontFamily: 'Trebuchet MS, Verdana, sans-serif' 49 | 50 | } 51 | } 52 | }, 53 | yAxis: { 54 | minorTickInterval: 'auto', 55 | lineColor: '#000', 56 | lineWidth: 1, 57 | tickWidth: 1, 58 | tickColor: '#000', 59 | labels: { 60 | style: { 61 | color: '#000', 62 | font: '11px Trebuchet MS, Verdana, sans-serif' 63 | } 64 | }, 65 | title: { 66 | style: { 67 | color: '#333', 68 | fontWeight: 'bold', 69 | fontSize: '12px', 70 | fontFamily: 'Trebuchet MS, Verdana, sans-serif' 71 | } 72 | } 73 | }, 74 | legend: { 75 | itemStyle: { 76 | font: '9pt Trebuchet MS, Verdana, sans-serif', 77 | color: 'black' 78 | 79 | }, 80 | itemHoverStyle: { 81 | color: '#039' 82 | }, 83 | itemHiddenStyle: { 84 | color: 'gray' 85 | } 86 | }, 87 | labels: { 88 | style: { 89 | color: '#99b' 90 | } 91 | }, 92 | 93 | navigation: { 94 | buttonOptions: { 95 | theme: { 96 | stroke: '#CCCCCC' 97 | } 98 | } 99 | } 100 | }; 101 | 102 | // Apply the theme 103 | var highchartsOptions = Highcharts.setOptions(Highcharts.theme); 104 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/third-party/highcharts/themes/skies.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Skies theme for Highcharts JS 3 | * @author Torstein Hønsi 4 | */ 5 | 6 | Highcharts.theme = { 7 | colors: ["#514F78", "#42A07B", "#9B5E4A", "#72727F", "#1F949A", "#82914E", "#86777F", "#42A07B"], 8 | chart: { 9 | className: 'skies', 10 | borderWidth: 0, 11 | plotShadow: true, 12 | plotBackgroundImage: 'http://www.highcharts.com/demo/gfx/skies.jpg', 13 | plotBackgroundColor: { 14 | linearGradient: [0, 0, 250, 500], 15 | stops: [ 16 | [0, 'rgba(255, 255, 255, 1)'], 17 | [1, 'rgba(255, 255, 255, 0)'] 18 | ] 19 | }, 20 | plotBorderWidth: 1 21 | }, 22 | title: { 23 | style: { 24 | color: '#3E576F', 25 | font: '16px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' 26 | } 27 | }, 28 | subtitle: { 29 | style: { 30 | color: '#6D869F', 31 | font: '12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' 32 | } 33 | }, 34 | xAxis: { 35 | gridLineWidth: 0, 36 | lineColor: '#C0D0E0', 37 | tickColor: '#C0D0E0', 38 | labels: { 39 | style: { 40 | color: '#666', 41 | fontWeight: 'bold' 42 | } 43 | }, 44 | title: { 45 | style: { 46 | color: '#666', 47 | font: '12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' 48 | } 49 | } 50 | }, 51 | yAxis: { 52 | alternateGridColor: 'rgba(255, 255, 255, .5)', 53 | lineColor: '#C0D0E0', 54 | tickColor: '#C0D0E0', 55 | tickWidth: 1, 56 | labels: { 57 | style: { 58 | color: '#666', 59 | fontWeight: 'bold' 60 | } 61 | }, 62 | title: { 63 | style: { 64 | color: '#666', 65 | font: '12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' 66 | } 67 | } 68 | }, 69 | legend: { 70 | itemStyle: { 71 | font: '9pt Trebuchet MS, Verdana, sans-serif', 72 | color: '#3E576F' 73 | }, 74 | itemHoverStyle: { 75 | color: 'black' 76 | }, 77 | itemHiddenStyle: { 78 | color: 'silver' 79 | } 80 | }, 81 | labels: { 82 | style: { 83 | color: '#3E576F' 84 | } 85 | } 86 | }; 87 | 88 | // Apply the theme 89 | var highchartsOptions = Highcharts.setOptions(Highcharts.theme); 90 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/third-party/snapscreen/UEditorSnapscreen.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/third-party/snapscreen/UEditorSnapscreen.exe -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/third-party/video-js/font/vjs.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/third-party/video-js/font/vjs.eot -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/third-party/video-js/font/vjs.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/third-party/video-js/font/vjs.ttf -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/third-party/video-js/font/vjs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/third-party/video-js/font/vjs.woff -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/third-party/video-js/video-js.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/third-party/video-js/video-js.swf -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/third-party/webuploader/Uploader.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/third-party/webuploader/Uploader.swf -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/third-party/webuploader/webuploader.css: -------------------------------------------------------------------------------- 1 | .webuploader-container { 2 | position: relative; 3 | } 4 | .webuploader-element-invisible { 5 | position: absolute !important; 6 | clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ 7 | clip: rect(1px,1px,1px,1px); 8 | } 9 | .webuploader-pick { 10 | position: relative; 11 | display: inline-block; 12 | cursor: pointer; 13 | background: #00b7ee; 14 | padding: 10px 15px; 15 | color: #fff; 16 | text-align: center; 17 | border-radius: 3px; 18 | overflow: hidden; 19 | } 20 | .webuploader-pick-hover { 21 | background: #00a2d4; 22 | } 23 | 24 | .webuploader-pick-disable { 25 | opacity: 0.6; 26 | pointer-events:none; 27 | } 28 | 29 | -------------------------------------------------------------------------------- /resource/assets/editor/ueditor/third-party/zeroclipboard/ZeroClipboard.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/ueditor/third-party/zeroclipboard/ZeroClipboard.swf -------------------------------------------------------------------------------- /resource/assets/editor/wangEditor/fonts/w-e-icon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/editor/wangEditor/fonts/w-e-icon.woff -------------------------------------------------------------------------------- /resource/assets/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /resource/assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /resource/assets/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /resource/assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /resource/assets/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /resource/assets/img/a5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/img/a5.png -------------------------------------------------------------------------------- /resource/assets/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/img/favicon.png -------------------------------------------------------------------------------- /resource/assets/img/k.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/img/k.jpg -------------------------------------------------------------------------------- /resource/assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/img/logo.png -------------------------------------------------------------------------------- /resource/assets/img/logoa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/img/logoa.png -------------------------------------------------------------------------------- /resource/assets/img/logob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/img/logob.png -------------------------------------------------------------------------------- /resource/assets/img/nopic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/img/nopic.png -------------------------------------------------------------------------------- /resource/assets/img/user01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/img/user01.png -------------------------------------------------------------------------------- /resource/assets/img/user02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/img/user02.png -------------------------------------------------------------------------------- /resource/assets/img/user03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/img/user03.png -------------------------------------------------------------------------------- /resource/assets/img/user04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/img/user04.png -------------------------------------------------------------------------------- /resource/assets/img/user05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/img/user05.png -------------------------------------------------------------------------------- /resource/assets/img/user06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/img/user06.png -------------------------------------------------------------------------------- /resource/assets/img/user07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/resource/assets/img/user07.png -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.ar.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Arabic translation for bootstrap-datetimepicker 3 | * Ala' Mohammad 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ar'] = { 7 | days: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"], 8 | daysShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت", "أحد"], 9 | daysMin: ["أح", "إث", "ث", "أر", "خ", "ج", "س", "أح"], 10 | months: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], 11 | monthsShort: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], 12 | today: "هذا اليوم", 13 | suffix: [], 14 | meridiem: [], 15 | rtl: true 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.az.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Azerbaijani translation for bootstrap-datetimepicker 3 | * Konstantin Kaluzhnikov 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['az'] = { 7 | days: ["Bazar", "Bazar ertəsi", "Çərşənbə axşamı", "Çərşənbə", "Cümə axşamı", "Cümə", "Şənbə", "Bazar"], 8 | daysShort: ["B", "Be", "Ça", "Ç", "Ca", "C", "Ş", "B"], 9 | daysMin: ["B", "Be", "Ça", "Ç", "Ca", "C", "Ş", "B"], 10 | months: ["Yanvar", "Fevral", "Mart", "Aprel", "May", "İyun", "İyul", "Avqust", "Sentyabr", "Oktyabr", "Noyabr", "Dekabr"], 11 | monthsShort: ["Yan", "Fev", "Mar", "Apr", "May", "İyun", "İyul", "Avq", "Sen", "Okt", "Noy", "Dek"], 12 | today: "Bugün", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.bg.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Bulgarian translation for bootstrap-datetimepicker 3 | * Apostol Apostolov 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['bg'] = { 7 | days: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота", "Неделя"], 8 | daysShort: ["Нед", "Пон", "Вто", "Сря", "Чет", "Пет", "Съб", "Нед"], 9 | daysMin: ["Н", "П", "В", "С", "Ч", "П", "С", "Н"], 10 | months: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"], 11 | monthsShort: ["Ян", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Ное", "Дек"], 12 | today: "днес", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.bn.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Bangla(Bangladesh) translation for bootstrap-datetimepicker 3 | * Mahbub Rabbani 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['bn'] = { 7 | days: ["রবিবার", "সোমবার", "মঙ্গলবার", "বুধবার", "বৃহষ্পতিবার", "শুক্রবার", "শনিবার", "রবিবার"], 8 | daysShort: ["রবি", "সোম", "মঙ্গল", "বুধ", " বৃহঃ", "শুক্র", "শনি", "রবি"], 9 | daysMin: ["রবি", "সোম", "মঙ্গ", "বুধ", "বৃহ", "শুক্র", "শনি", "রবি"], 10 | months: ['জানুয়ারী', 'ফেব্রুয়ারী', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'অগাস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর' ], 11 | monthsShort: ['জানু', 'ফেব্রু', 'মার্চ', 'এপ্রি', 'মে', 'জুন', 'জুলা', 'অগা', 'সেপ্টে', 'অক্টো', 'নভে', 'ডিসে' ], 12 | today: "আজ", 13 | suffix: [], 14 | meridiem: ['পূর্বাহ্ণ', 'অপরাহ্ন'] 15 | }; 16 | }(jQuery)); -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.ca.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Catalan translation for bootstrap-datetimepicker 3 | * J. Garcia 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ca'] = { 7 | days: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte", "Diumenge"], 8 | daysShort: ["Diu", "Dil", "Dmt", "Dmc", "Dij", "Div", "Dis", "Diu"], 9 | daysMin: ["dg", "dl", "dt", "dc", "dj", "dv", "ds", "dg"], 10 | months: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"], 11 | monthsShort: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"], 12 | today: "Avui", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.cs.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Czech translation for bootstrap-datetimepicker 3 | * Matěj Koubík 4 | * Fixes by Michal Remiš 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['cs'] = { 8 | days: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota", "Neděle"], 9 | daysShort: ["Ned", "Pon", "Úte", "Stř", "Čtv", "Pát", "Sob", "Ned"], 10 | daysMin: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So", "Ne"], 11 | months: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"], 12 | monthsShort: ["Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čnc", "Srp", "Zář", "Říj", "Lis", "Pro"], 13 | today: "Dnes", 14 | suffix: [], 15 | meridiem: [], 16 | weekStart: 1, 17 | format: "dd.mm.yyyy" 18 | }; 19 | }(jQuery)); 20 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.da.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Danish translation for bootstrap-datetimepicker 3 | * Christian Pedersen 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['da'] = { 7 | days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"], 8 | daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"], 9 | daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"], 10 | months: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], 12 | today: "I Dag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.de.js: -------------------------------------------------------------------------------- 1 | /** 2 | * German translation for bootstrap-datetimepicker 3 | * Sam Zurcher 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['de'] = { 7 | days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"], 8 | daysShort: ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam", "Son"], 9 | daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"], 10 | months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], 11 | monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], 12 | today: "Heute", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1, 16 | format: "dd.mm.yyyy" 17 | }; 18 | }(jQuery)); 19 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.ee.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Estonian translation for bootstrap-datetimepicker 3 | * Rene Korss 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ee'] = { 7 | days: ["Pühapäev", "Esmaspäev", "Teisipäev", "Kolmapäev", "Neljapäev", "Reede", "Laupäev", "Pühapäev"], 8 | daysShort: ["P", "E", "T", "K", "N", "R", "L", "P"], 9 | daysMin: ["P", "E", "T", "K", "N", "R", "L", "P"], 10 | months: ["Jaanuar", "Veebruar", "Märts", "Aprill", "Mai", "Juuni", "Juuli", "August", "September", "Oktoober", "November", "Detsember"], 11 | monthsShort: ["Jaan", "Veebr", "Märts", "Apr", "Mai", "Juuni", "Juuli", "Aug", "Sept", "Okt", "Nov", "Dets"], 12 | today: "Täna", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1, 16 | format: "dd.mm.yyyy hh:ii" 17 | }; 18 | }(jQuery)); -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.el.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Greek translation for bootstrap-datetimepicker 3 | */ 4 | ;(function($){ 5 | $.fn.datetimepicker.dates['el'] = { 6 | days: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο", "Κυριακή"], 7 | daysShort: ["Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ", "Κυρ"], 8 | daysMin: ["Κυ", "Δε", "Τρ", "Τε", "Πε", "Πα", "Σα", "Κυ"], 9 | months: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], 10 | monthsShort: ["Ιαν", "Φεβ", "Μαρ", "Απρ", "Μάι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ"], 11 | today: "Σήμερα", 12 | suffix: [], 13 | meridiem: [] 14 | }; 15 | }(jQuery)); -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.es.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Spanish translation for bootstrap-datetimepicker 3 | * Bruno Bonamin 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['es'] = { 7 | days: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"], 8 | daysShort: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb", "Dom"], 9 | daysMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa", "Do"], 10 | months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], 11 | monthsShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"], 12 | today: "Hoy", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.fi.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Finnish translation for bootstrap-datetimepicker 3 | * Jaakko Salonen 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['fi'] = { 7 | days: ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai", "sunnuntai"], 8 | daysShort: ["sun", "maa", "tii", "kes", "tor", "per", "lau", "sun"], 9 | daysMin: ["su", "ma", "ti", "ke", "to", "pe", "la", "su"], 10 | months: ["tammikuu", "helmikuu", "maaliskuu", "huhtikuu", "toukokuu", "kesäkuu", "heinäkuu", "elokuu", "syyskuu", "lokakuu", "marraskuu", "joulukuu"], 11 | monthsShort: ["tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mar", "jou"], 12 | today: "tänään", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.fr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * French translation for bootstrap-datetimepicker 3 | * Nico Mollet 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['fr'] = { 7 | days: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"], 8 | daysShort: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim"], 9 | daysMin: ["D", "L", "Ma", "Me", "J", "V", "S", "D"], 10 | months: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], 11 | monthsShort: ["Jan", "Fev", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Dec"], 12 | today: "Aujourd'hui", 13 | suffix: [], 14 | meridiem: ["am", "pm"], 15 | weekStart: 1, 16 | format: "dd/mm/yyyy hh:ii" 17 | }; 18 | }(jQuery)); 19 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.he.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Hebrew translation for bootstrap-datetimepicker 3 | * Sagie Maoz 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['he'] = { 7 | days: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת", "ראשון"], 8 | daysShort: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"], 9 | daysMin: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"], 10 | months: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], 11 | monthsShort: ["ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ"], 12 | today: "היום", 13 | suffix: [], 14 | meridiem: [], 15 | rtl: true 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.hr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Croatian localisation 3 | */ 4 | ;(function($){ 5 | $.fn.datetimepicker.dates['hr'] = { 6 | days: ["Nedjelja", "Ponedjelja", "Utorak", "Srijeda", "Četrtak", "Petak", "Subota", "Nedjelja"], 7 | daysShort: ["Ned", "Pon", "Uto", "Srr", "Čet", "Pet", "Sub", "Ned"], 8 | daysMin: ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su", "Ne"], 9 | months: ["Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"], 10 | monthsShort: ["Sije", "Velj", "Ožu", "Tra", "Svi", "Lip", "Jul", "Kol", "Ruj", "Lis", "Stu", "Pro"], 11 | today: "Danas", 12 | suffix: [], 13 | meridiem: [] 14 | }; 15 | }(jQuery)); 16 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.hu.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Hungarian translation for bootstrap-datetimepicker 3 | * darevish 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['hu'] = { 7 | days: ["Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat", "Vasárnap"], 8 | daysShort: ["Vas", "Hét", "Ked", "Sze", "Csü", "Pén", "Szo", "Vas"], 9 | daysMin: ["V", "H", "K", "Sze", "Cs", "P", "Szo", "V"], 10 | months: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"], 11 | monthsShort: ["Jan", "Feb", "Már", "Ápr", "Máj", "Jún", "Júl", "Aug", "Sze", "Okt", "Nov", "Dec"], 12 | today: "Ma", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.hy.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Armenian translation for bootstrap-datepicker 3 | * Hayk Chamyan 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['hy'] = { 7 | days: ["Կիրակի", "Երկուշաբթի", "Երեքշաբթի", "Չորեքշաբթի", "Հինգշաբթի", "Ուրբաթ", "Շաբաթ", "Կիրակի"], 8 | daysShort: ["Կիր", "Երկ", "Երք", "Չոր", "Հնգ", "Ուր", "Շաբ", "Կիր"], 9 | daysMin: ["Կի", "Եկ", "Եք", "Չո", "Հի", "Ու", "Շա", "Կի"], 10 | months: ["Հունվար", "Փետրվար", "Մարտ", "Ապրիլ", "Մայիս", "Հունիս", "Հուլիս", "Օգոստոս", "Սեպտեմբեր", "Հոկտեմբեր", "Նոյեմբեր", "Դեկտեմբեր"], 11 | monthsShort: ["Հնվ", "Փետ", "Մար", "Ապր", "Մայ", "Հուն", "Հուլ", "Օգս", "Սեպ", "Հոկ", "Նոյ", "Դեկ"], 12 | today: "Այսօր", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.id.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Bahasa translation for bootstrap-datetimepicker 3 | * Azwar Akbar 4 | * Addtional by Yulian Sutopo 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['id'] = { 8 | days: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu"], 9 | daysShort: ["Mng", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab", "Mng"], 10 | daysMin: ["Mg", "Sn", "Sl", "Ra", "Ka", "Ju", "Sa", "Mg"], 11 | months: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], 12 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ags", "Sep", "Okt", "Nov", "Des"], 13 | today: "Hari Ini", 14 | suffix: [], 15 | meridiem: [], 16 | weekStart: 1, 17 | format: "dd/mm/yyyy hh:ii:ss" 18 | }; 19 | }(jQuery)); 20 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.is.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Icelandic translation for bootstrap-datetimepicker 3 | * Hinrik Örn Sigurðsson 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['is'] = { 7 | days: ["Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur", "Sunnudagur"], 8 | daysShort: ["Sun", "Mán", "Þri", "Mið", "Fim", "Fös", "Lau", "Sun"], 9 | daysMin: ["Su", "Má", "Þr", "Mi", "Fi", "Fö", "La", "Su"], 10 | months: ["Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júní", "Júlí", "Ágúst", "September", "Október", "Nóvember", "Desember"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maí", "Jún", "Júl", "Ágú", "Sep", "Okt", "Nóv", "Des"], 12 | today: "Í Dag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.it.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Italian translation for bootstrap-datetimepicker 3 | * Enrico Rubboli 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['it'] = { 7 | days: ["Domenica", "Lunedi", "Martedi", "Mercoledi", "Giovedi", "Venerdi", "Sabato", "Domenica"], 8 | daysShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab", "Dom"], 9 | daysMin: ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa", "Do"], 10 | months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], 11 | monthsShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"], 12 | today: "Oggi", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1, 16 | format: "dd/mm/yyyy hh:ii:ss" 17 | }; 18 | }(jQuery)); 19 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.ja.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Japanese translation for bootstrap-datetimepicker 3 | * Norio Suzuki 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ja'] = { 7 | days: ["日曜", "月曜", "火曜", "水曜", "木曜", "金曜", "土曜", "日曜"], 8 | daysShort: ["日", "月", "火", "水", "木", "金", "土", "日"], 9 | daysMin: ["日", "月", "火", "水", "木", "金", "土", "日"], 10 | months: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], 11 | monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], 12 | today: "今日", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.ka.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Georgian translation for bootstrap-datetimepicker 3 | * Zura Jijavadze 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ka'] = { 7 | days: ["კვირა", "ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი", "კვირა"], 8 | daysShort: ["კვი", "ორშ", "სამ", "ოთხ", "ხუთ", "პარ", "შაბ", "კვი"], 9 | daysMin: ["კვ", "ორ", "სა", "ოთ", "ხუ", "პა", "შა", "კვ"], 10 | months: ["იანვარი", "თებერვალი", "მარტი", "აპრილი", "მაისი", "ივნისი", "ივლისი", "აგვისტო", "სექტემბერი", "ოქტომბერი", "ნოემბერი", "დეკემბერი"], 11 | monthsShort: ["იან", "თებ", "მარ", "აპრ", "მაი", "ივნ", "ივლ", "აგვ", "სექ", "ოქტ", "ნოე", "დეკ"], 12 | today: "დღეს", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.ko.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Korean translation for bootstrap-datetimepicker 3 | * Gu Youn 4 | * Baekjoon Choi 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['ko'] = { 8 | days: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일", "일요일"], 9 | daysShort: ["일", "월", "화", "수", "목", "금", "토", "일"], 10 | daysMin: ["일", "월", "화", "수", "목", "금", "토", "일"], 11 | months: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], 12 | monthsShort: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], 13 | suffix: [], 14 | meridiem: ["오전", "오후"], 15 | today: "오늘", 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.lt.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Lithuanian translation for bootstrap-datetimepicker 3 | * Šarūnas Gliebus 4 | */ 5 | 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['lt'] = { 8 | days: ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis", "Sekmadienis"], 9 | daysShort: ["S", "Pr", "A", "T", "K", "Pn", "Š", "S"], 10 | daysMin: ["Sk", "Pr", "An", "Tr", "Ke", "Pn", "Št", "Sk"], 11 | months: ["Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsėjis", "Spalis", "Lapkritis", "Gruodis"], 12 | monthsShort: ["Sau", "Vas", "Kov", "Bal", "Geg", "Bir", "Lie", "Rugp", "Rugs", "Spa", "Lap", "Gru"], 13 | today: "Šiandien", 14 | suffix: [], 15 | meridiem: [], 16 | weekStart: 1 17 | }; 18 | }(jQuery)); 19 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.lv.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Latvian translation for bootstrap-datetimepicker 3 | * Artis Avotins 4 | */ 5 | 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['lv'] = { 8 | days: ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena", "Svētdiena"], 9 | daysShort: ["Sv", "P", "O", "T", "C", "Pk", "S", "Sv"], 10 | daysMin: ["Sv", "Pr", "Ot", "Tr", "Ce", "Pk", "St", "Sv"], 11 | months: ["Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"], 12 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jūn", "Jūl", "Aug", "Sep", "Okt", "Nov", "Dec."], 13 | today: "Šodien", 14 | suffix: [], 15 | meridiem: [], 16 | weekStart: 1 17 | }; 18 | }(jQuery)); -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.ms.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Malay translation for bootstrap-datetimepicker 3 | * Ateman Faiz 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ms'] = { 7 | days: ["Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu", "Ahad"], 8 | daysShort: ["Aha", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab", "Aha"], 9 | daysMin: ["Ah", "Is", "Se", "Ra", "Kh", "Ju", "Sa", "Ah"], 10 | months: ["Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ogo", "Sep", "Okt", "Nov", "Dis"], 12 | today: "Hari Ini", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.nb.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Norwegian (bokmål) translation for bootstrap-datetimepicker 3 | * Fredrik Sundmyhr 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['nb'] = { 7 | days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"], 8 | daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"], 9 | daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"], 10 | months: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], 12 | today: "I Dag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.nl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Dutch translation for bootstrap-datetimepicker 3 | * Reinier Goltstein 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['nl'] = { 7 | days: ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag", "Zondag"], 8 | daysShort: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"], 9 | daysMin: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"], 10 | months: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"], 11 | monthsShort: ["Jan", "Feb", "Mrt", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], 12 | today: "Vandaag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.no.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Norwegian translation for bootstrap-datetimepicker 3 | * Rune Warhuus 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['no'] = { 7 | days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"], 8 | daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"], 9 | daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"], 10 | months: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], 12 | today: "I Dag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.pl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Polish translation for bootstrap-datetimepicker 3 | * Robert 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['pl'] = { 7 | days: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota", "Niedziela"], 8 | daysShort: ["Nie", "Pn", "Wt", "Śr", "Czw", "Pt", "So", "Nie"], 9 | daysMin: ["N", "Pn", "Wt", "Śr", "Cz", "Pt", "So", "N"], 10 | months: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"], 11 | monthsShort: ["Sty", "Lu", "Mar", "Kw", "Maj", "Cze", "Lip", "Sie", "Wrz", "Pa", "Lis", "Gru"], 12 | today: "Dzisiaj", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.pt-BR.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Brazilian translation for bootstrap-datetimepicker 3 | * Cauan Cabral 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['pt-BR'] = { 7 | format: 'dd/mm/yyyy', 8 | days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"], 9 | daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Dom"], 10 | daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa", "Do"], 11 | months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], 12 | monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], 13 | today: "Hoje", 14 | suffix: [], 15 | meridiem: [] 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.pt.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Portuguese translation for bootstrap-datetimepicker 3 | * Original code: Cauan Cabral 4 | * Tiago Melo 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['pt'] = { 8 | days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"], 9 | daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Dom"], 10 | daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa", "Do"], 11 | months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], 12 | monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], 13 | suffix: [], 14 | meridiem: ["am","pm"], 15 | today: "Hoje" 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.ro.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Romanian translation for bootstrap-datetimepicker 3 | * Cristian Vasile 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ro'] = { 7 | days: ["Duminică", "Luni", "Marţi", "Miercuri", "Joi", "Vineri", "Sâmbătă", "Duminică"], 8 | daysShort: ["Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm", "Dum"], 9 | daysMin: ["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ", "Du"], 10 | months: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"], 11 | monthsShort: ["Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Nov", "Dec"], 12 | today: "Astăzi", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.rs-latin.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Serbian latin translation for bootstrap-datetimepicker 3 | * Bojan Milosavlević 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['rs'] = { 7 | days: ["Nedelja","Ponedeljak", "Utorak", "Sreda", "Četvrtak", "Petak", "Subota", "Nedelja"], 8 | daysShort: ["Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub", "Ned"], 9 | daysMin: ["N", "Po", "U", "Sr", "Č", "Pe", "Su", "N"], 10 | months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"], 12 | today: "Danas", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.rs.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Serbian cyrillic translation for bootstrap-datetimepicker 3 | * Bojan Milosavlević 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['rs'] = { 7 | days: ["Недеља","Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота", "Недеља"], 8 | daysShort: ["Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб", "Нед"], 9 | daysMin: ["Н", "По", "У", "Ср", "Ч", "Пе", "Су", "Н"], 10 | months: ["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"], 11 | monthsShort: ["Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"], 12 | today: "Данас", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.ru.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Russian translation for bootstrap-datetimepicker 3 | * Victor Taranenko 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ru'] = { 7 | days: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"], 8 | daysShort: ["Вск", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Вск"], 9 | daysMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"], 10 | months: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"], 11 | monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"], 12 | today: "Сегодня", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.sk.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Slovak translation for bootstrap-datetimepicker 3 | * Marek Lichtner 4 | * Fixes by Michal Remiš 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates["sk"] = { 8 | days: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota", "Nedeľa"], 9 | daysShort: ["Ned", "Pon", "Uto", "Str", "Štv", "Pia", "Sob", "Ned"], 10 | daysMin: ["Ne", "Po", "Ut", "St", "Št", "Pi", "So", "Ne"], 11 | months: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"], 12 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec"], 13 | today: "Dnes", 14 | suffix: [], 15 | meridiem: [], 16 | weekStart: 1, 17 | format: "dd.mm.yyyy" 18 | }; 19 | }(jQuery)); 20 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.sl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Slovene translation for bootstrap-datetimepicker 3 | * Gregor Rudolf 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['sl'] = { 7 | days: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota", "Nedelja"], 8 | daysShort: ["Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob", "Ned"], 9 | daysMin: ["Ne", "Po", "To", "Sr", "Če", "Pe", "So", "Ne"], 10 | months: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"], 12 | today: "Danes", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.sv.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Swedish translation for bootstrap-datetimepicker 3 | * Patrik Ragnarsson 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['sv'] = { 7 | days: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag", "Söndag"], 8 | daysShort: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör", "Sön"], 9 | daysMin: ["Sö", "Må", "Ti", "On", "To", "Fr", "Lö", "Sö"], 10 | months: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], 12 | today: "I Dag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.sw.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Swahili translation for bootstrap-datetimepicker 3 | * Edwin Mugendi 4 | * Source: http://scriptsource.org/cms/scripts/page.php?item_id=entry_detail&uid=xnfaqyzcku 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['sw'] = { 8 | days: ["Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi", "Jumapili"], 9 | daysShort: ["J2", "J3", "J4", "J5", "Alh", "Ij", "J1", "J2"], 10 | daysMin: ["2", "3", "4", "5", "A", "I", "1", "2"], 11 | months: ["Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"], 12 | monthsShort: ["Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"], 13 | today: "Leo", 14 | suffix: [], 15 | meridiem: [] 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.th.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Thai translation for bootstrap-datetimepicker 3 | * Suchau Jiraprapot 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['th'] = { 7 | days: ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย์"], 8 | daysShort: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"], 9 | daysMin: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"], 10 | months: ["มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"], 11 | monthsShort: ["ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."], 12 | today: "วันนี้", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.tr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Turkish translation for bootstrap-datetimepicker 3 | * Serkan Algur 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['tr'] = { 7 | days: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi", "Pazar"], 8 | daysShort: ["Pz", "Pzt", "Sal", "Çrş", "Prş", "Cu", "Cts", "Pz"], 9 | daysMin: ["Pz", "Pzt", "Sa", "Çr", "Pr", "Cu", "Ct", "Pz"], 10 | months: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"], 11 | monthsShort: ["Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"], 12 | today: "Bugün", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | 18 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.ua.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ukrainian translation for bootstrap-datepicker 3 | * Igor Polynets 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ua'] = { 7 | days: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четверг", "П'ятниця", "Субота", "Неділя"], 8 | daysShort: ["Нед", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Нед"], 9 | daysMin: ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Нд"], 10 | months: ["Cічень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"], 11 | monthsShort: ["Січ", "Лют", "Бер", "Квт", "Трв", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Грд"], 12 | today: "Сьогодні", 13 | weekStart: 1 14 | }; 15 | }(jQuery)); 16 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.uk.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ukrainian translation for bootstrap-datetimepicker 3 | * Andrey Vityuk 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['uk'] = { 7 | days: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота", "Неділя"], 8 | daysShort: ["Нед", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Нед"], 9 | daysMin: ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Нд"], 10 | months: ["Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"], 11 | monthsShort: ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру"], 12 | today: "Сьогодні", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.zh-CN.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Simplified Chinese translation for bootstrap-datetimepicker 3 | * Yuan Cheung 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['zh-CN'] = { 7 | days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"], 8 | daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"], 9 | daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"], 10 | months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], 11 | monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], 12 | today: "今天", 13 | suffix: [], 14 | meridiem: ["上午", "下午"] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/locales/amazeui.datetimepicker.zh-TW.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Traditional Chinese translation for bootstrap-datetimepicker 3 | * Rung-Sheng Jang 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['zh-TW'] = { 7 | days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"], 8 | daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"], 9 | daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"], 10 | months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], 11 | monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], 12 | today: "今天", 13 | suffix: [], 14 | meridiem: ["上午", "下午"] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /resource/assets/js/theme.js: -------------------------------------------------------------------------------- 1 | var saveSelectColor = { 2 | 'Name': 'SelcetColor', 3 | 'Color': 'theme-white' 4 | } 5 | 6 | 7 | 8 | // 判断用户是否已有自己选择的模板风格 9 | if (storageLoad('SelcetColor')) { 10 | $('body').attr('class', storageLoad('SelcetColor').Color) 11 | } else { 12 | storageSave(saveSelectColor); 13 | $('body').attr('class', 'theme-white') 14 | } 15 | 16 | 17 | // 本地缓存 18 | function storageSave(objectData) { 19 | localStorage.setItem(objectData.Name, JSON.stringify(objectData)); 20 | } 21 | 22 | function storageLoad(objectName) { 23 | if (localStorage.getItem(objectName)) { 24 | return JSON.parse(localStorage.getItem(objectName)) 25 | } else { 26 | return false 27 | } 28 | } -------------------------------------------------------------------------------- /resource/view/advertising/block/edit.html: -------------------------------------------------------------------------------- 1 | {extend name="layout/base" /} {block name="main"} 2 |
3 |
4 |
5 |
6 |
7 |
添加/编辑
8 |
9 | 10 |
11 |
12 |
13 |
14 |
15 | 16 |
17 | 18 | 建议10-20字左右,最长不超过100个字。 19 |
20 |
21 |
22 | 23 |
24 | 25 | 建议使用英文字母,标识不要重复 26 |
27 |
28 |
29 |
30 | 31 | 32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 | {/block} -------------------------------------------------------------------------------- /resource/view/auth/passport/login.html: -------------------------------------------------------------------------------- 1 | {extend name="layout/passport" /} {block name="main"} 2 | 3 |
4 | 5 |
6 |
7 |
8 |
9 |
10 | 选择主题 11 |
12 |
13 | 14 | 15 |
16 |
17 |
18 | 44 |
45 | {/block} -------------------------------------------------------------------------------- /resource/view/job/resumeItem.html: -------------------------------------------------------------------------------- 1 | {extend name="layout/base" /} {block name="main"} 2 |
3 |
4 |
5 |
6 |
7 |
查看
8 |
9 | 10 |
11 |
12 |
13 |
14 |
15 | 16 |
17 | {$resume.title ?? ''} 18 |
19 |
20 |
21 | 22 |
23 |
{$resume.content ?? ''}
24 |
25 |
26 |
27 | 28 |
29 | {$resume.created_at ?? ''} 30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | {/block} -------------------------------------------------------------------------------- /resource/view/layout/admin-footer.html: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /resource/view/layout/admin-header.html: -------------------------------------------------------------------------------- 1 |
2 | 6 |
7 |
8 | 9 |
10 |
11 | 22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | 选择主题 30 |
31 |
32 | 33 | 34 |
35 |
36 |
-------------------------------------------------------------------------------- /resource/view/layout/base.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {include file="layout/meta" /} 5 | 6 | 7 | 8 |
9 | 10 | {include file="layout/admin-header" /} 11 | {include file="widget/admin-left" /} 12 |
13 | {block name="main"} 14 | {/block} 15 | {include file="layout/admin-footer" /} 16 |
17 |
18 | {include file="layout/footer" /} 19 | {block name="footer"}{/block} 20 | 21 | -------------------------------------------------------------------------------- /resource/view/layout/footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /resource/view/layout/meta.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Tadmin - 基于ThinkPHP6.1+和AmazeUI的快速后台开发框架 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /resource/view/layout/passport.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {include file="layout/meta" /} 6 | 7 | 8 | 9 | {block name="main"} 10 | {/block} 11 | {include file="layout/footer" /} 12 | {block name="footer"}{/block} 13 | 14 | 15 | -------------------------------------------------------------------------------- /resource/view/link/block/edit.html: -------------------------------------------------------------------------------- 1 | {extend name="layout/base" /} {block name="main"} 2 |
3 |
4 |
5 |
6 |
7 |
添加/编辑
8 |
9 | 10 |
11 |
12 |
13 |
14 |
15 | 16 |
17 | 18 | 建议10-20字左右,最长不超过100个字。 19 |
20 |
21 |
22 | 23 |
24 | 25 | 建议使用英文字母,标识不要重复 26 |
27 |
28 |
29 |
30 | 31 | 32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 | {/block} -------------------------------------------------------------------------------- /resource/view/widget/admin-left.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /samples/201901060024581.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeqvip/tadmin/a67cd541387c2eadae2206543bc0c881e1816ebc/samples/201901060024581.png -------------------------------------------------------------------------------- /src/command/Init.php: -------------------------------------------------------------------------------- 1 | setName('tadmin:init')->setDescription('init tadmin'); 18 | } 19 | 20 | protected function execute(Input $input, Output $output) 21 | { 22 | $this->publishAssets(); 23 | } 24 | 25 | protected function publishAssets() 26 | { 27 | $source = new Filesystem( 28 | new Local(__DIR__ . '/../../resource/assets') 29 | ); 30 | $traget = new Filesystem( 31 | new Local($this->app->getRootPath() . 'public/tmp/assets') 32 | ); 33 | 34 | $manager = new MountManager([ 35 | 'source' => $source, 36 | 'traget' => $traget, 37 | ]); 38 | 39 | $contents = $manager->listContents('source://', true); 40 | 41 | foreach ($contents as $entry) { 42 | $update = false; 43 | 44 | if (!$manager->has('traget://' . $entry['path'])) { 45 | $update = true; 46 | } elseif ($manager->getTimestamp('source://' . $entry['path']) > $manager->getTimestamp('traget://' . $entry['path'])) { 47 | $update = true; 48 | } 49 | 50 | if ('file' === $entry['type'] && $update) { 51 | 52 | $manager->put('traget://' . $entry['path'], $manager->read('source://' . $entry['path'])); 53 | } 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/command/Migrate.php: -------------------------------------------------------------------------------- 1 | setName('tadmin:migrate:run')->setDescription('Migrate the database for tadmin'); 15 | } 16 | 17 | protected function getPath() 18 | { 19 | return __DIR__.'/../../database/migrations'; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/controller/AdvertisingBlock.php: -------------------------------------------------------------------------------- 1 | model = $model; 17 | } 18 | 19 | public function index(Request $request) 20 | { 21 | $blocks = $this->model->paginate(); 22 | 23 | return $this->fetch('advertising/block/index', [ 24 | 'blocks' => $blocks, 25 | ]); 26 | } 27 | 28 | public function edit(Request $request) 29 | { 30 | $block = $this->model->findOrEmpty($request->get('id', 0)); 31 | 32 | return $this->fetch('advertising/block/edit', [ 33 | 'block' => $block, 34 | ]); 35 | } 36 | 37 | public function save(Request $request) 38 | { 39 | try { 40 | $data = $request->post(); 41 | 42 | $this->model->updateOrCreate(['id' => $request->get('id', 0)], $data); 43 | } catch (\Exception $e) { 44 | $this->error($e->getMessage()); 45 | } 46 | return $this->redirect('tadmin.advertising.block'); 47 | } 48 | 49 | public function delete(Request $request) 50 | { 51 | try { 52 | $this->model->destroy($request->get('id')); 53 | } catch (\Exception $e) { 54 | return $this->error('删除失败'); 55 | } 56 | 57 | return $this->success('删除成功'); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/controller/Captcha.php: -------------------------------------------------------------------------------- 1 | category = $category; 17 | } 18 | 19 | public function index() 20 | { 21 | $categorys = $this->category->flatTree(); 22 | 23 | return $this->fetch('category/index', [ 24 | 'categorys' => $categorys, 25 | ]); 26 | } 27 | 28 | public function edit(Request $request) 29 | { 30 | $category = $this->category->findOrEmpty($request->get('id', 0)); 31 | 32 | $parents = $this->category->flatTree(); 33 | 34 | return $this->fetch('category/edit', [ 35 | 'category' => $category, 36 | 'parents' => $parents, 37 | ]); 38 | } 39 | 40 | public function save(Request $request) 41 | { 42 | try { 43 | $data = $request->post(); 44 | 45 | if (!empty($data['parent_id'])) { 46 | $parent = $this->category->find($data['parent_id']); 47 | if (!$parent) { 48 | return $this->error('所选上级栏目不存在'); 49 | } 50 | } 51 | 52 | $data['parent_path'] = isset($parent) ? $parent['parent_path'].$parent['id'].',' : '0,'; 53 | $cate = $this->category->findOrEmpty($data['id']); 54 | $cate->save($data); 55 | } catch (\Exception $e) { 56 | $this->error('保存失败'); 57 | } 58 | return $this->redirect('tadmin.category'); 59 | } 60 | 61 | public function delete(Request $request) 62 | { 63 | try { 64 | $this->category->destroy($request->get('id')); 65 | } catch (\Exception $e) { 66 | return $this->error('删除失败'); 67 | } 68 | 69 | return $this->success('删除成功'); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/controller/Config.php: -------------------------------------------------------------------------------- 1 | config = $config; 17 | } 18 | 19 | public function index() 20 | { 21 | $configs = $this->config->select(); 22 | 23 | return $this->fetch('config/index', [ 24 | 'configs' => $configs, 25 | ]); 26 | } 27 | 28 | public function save(Request $request) 29 | { 30 | try { 31 | $this->config->saveAll(array_values($request->post('config/a'))); 32 | } catch (\Exception $e) { 33 | return $this->error('保存失败'); 34 | } 35 | 36 | return $this->redirect('tadmin.config'); 37 | } 38 | 39 | public function add() 40 | { 41 | return $this->fetch('config/add'); 42 | } 43 | 44 | public function create(Request $request) 45 | { 46 | try { 47 | $this->config->create($request->post()); 48 | } catch (\Exception $e) { 49 | return $this->error('保存失败'); 50 | } 51 | 52 | return $this->redirect('tadmin.config'); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/controller/Index.php: -------------------------------------------------------------------------------- 1 | operationLog = $operationLog; 19 | $this->article = $article; 20 | } 21 | 22 | public function index(OperationLog $operationLog) 23 | { 24 | return $this->fetch('index/index', [ 25 | 'logs' => $this->logs(), 26 | 'systemInfo' => $this->systemInfo(), 27 | 'latestRelease' => $this->latestRelease(), 28 | ]); 29 | } 30 | 31 | protected function logs() 32 | { 33 | return $this->operationLog->with('adminer')->order('id', 'desc')->limit(4)->select(); 34 | } 35 | 36 | protected function systemInfo() 37 | { 38 | return [ 39 | 'appVersion' => '0.1.0', 40 | 'os' => PHP_OS, 41 | 'serverSoftware' => request()->server('SERVER_SOFTWARE'), 42 | 'phpVersion' => 'PHP '.PHP_VERSION, 43 | 'systemDate' => date('Y年m月d日 H时i分s秒').' ('.date_default_timezone_get().')', 44 | ]; 45 | } 46 | 47 | protected function latestRelease() 48 | { 49 | 50 | $articles = $this->article->with('category')->order('id', 'desc')->limit(6)->select(); 51 | foreach ($articles as $key => $value) { 52 | // dump($value->category);die; 53 | } 54 | return $this->article->with('category')->order('id', 'desc')->limit(6)->select(); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/controller/Job.php: -------------------------------------------------------------------------------- 1 | job = $job; 20 | } 21 | 22 | public function index(Request $request) 23 | { 24 | $data = $request->only(['keywords' => '']); 25 | 26 | $jobs = $this->job 27 | ->when($data['keywords'], function ($query) use ($data) { 28 | $query->whereLike('position_name', '%'.$data['keywords'].'%'); 29 | }) 30 | ->order('id', 'desc') 31 | ->paginate([ 32 | 'query' => $data, 33 | ]); 34 | 35 | return $this->fetch('job/index', [ 36 | 'jobs' => $jobs, 37 | ]); 38 | } 39 | 40 | public function edit(Request $request) 41 | { 42 | $job = $this->job->findOrEmpty($request->get('id', 0)); 43 | 44 | return $this->fetch('job/edit', [ 45 | 'job' => $job, 46 | ]); 47 | } 48 | 49 | public function save(Request $request) 50 | { 51 | try { 52 | $data = $request->post(); 53 | 54 | $job = $this->job->updateOrCreate(['id' => $request->get('id', 0)], $data); 55 | } catch (\Exception $e) { 56 | $this->error($e->getMessage()); 57 | } 58 | 59 | return $this->redirect('tadmin.job'); 60 | } 61 | 62 | public function delete(Request $request) 63 | { 64 | try { 65 | $this->job->destroy($request->get('id')); 66 | } catch (\Exception $e) { 67 | return $this->error('删除失败'); 68 | } 69 | 70 | return $this->success('删除成功'); 71 | } 72 | 73 | public function resume(Request $request, JobResume $jobResume) 74 | { 75 | // $job = $this->job->find($request->get('id', 0)); 76 | $resumes = $jobResume->where('job_id', $request->get('id', 0))->paginate(); 77 | 78 | return $this->fetch('job/resume', [ 79 | 'resumes' => $resumes, 80 | ]); 81 | } 82 | 83 | public function resumeItem(Request $request, JobResume $jobResume) 84 | { 85 | $resume = $jobResume->findOrEmpty($request->get('id', 0)); 86 | 87 | return $this->fetch('job/resumeItem', [ 88 | 'resume' => $resume, 89 | ]); 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /src/controller/Link.php: -------------------------------------------------------------------------------- 1 | model = $model; 18 | } 19 | 20 | public function index(Request $request, LinkBlock $linkBlock) 21 | { 22 | $data = $request->only(['block' => [], 'keywords' => '']); 23 | 24 | $links = $this->model 25 | ->when($data['keywords'], function ($query) use ($data) { 26 | $query->whereLike('title', '%'.$data['keywords'].'%'); 27 | }) 28 | ->when($data['block'], function ($query) use ($data) { 29 | $query->whereIn('block', $data['block']); 30 | }) 31 | ->order('id', 'desc') 32 | ->with('linkBlock') 33 | ->paginate([ 34 | 'query' => $data, 35 | ]); 36 | $linkBlocks = $linkBlock->select(); 37 | 38 | return $this->fetch('link/index', [ 39 | 'links' => $links, 40 | 'linkBlocks' => $linkBlocks, 41 | ]); 42 | } 43 | 44 | public function edit(Request $request, LinkBlock $linkBlock) 45 | { 46 | $link = $this->model->findOrEmpty($request->get('id', 0)); 47 | $linkBlocks = $linkBlock->select(); 48 | 49 | return $this->fetch('link/edit', [ 50 | 'link' => $link, 51 | 'linkBlocks' => $linkBlocks, 52 | ]); 53 | } 54 | 55 | public function save(Request $request) 56 | { 57 | try { 58 | $data = $request->post(); 59 | if ($image = $this->file($request, 'image')) { 60 | $data['image'] = $this->uploadImage($image); 61 | } 62 | 63 | $this->model->updateOrCreate(['id' => $request->get('id', 0)], $data); 64 | } catch (\Exception $e) { 65 | $this->error($e->getMessage()); 66 | } 67 | 68 | return $this->redirect('tadmin.link'); 69 | } 70 | 71 | public function delete(Request $request) 72 | { 73 | try { 74 | $this->model->destroy($request->get('id')); 75 | } catch (\Exception $e) { 76 | return $this->error('删除失败'); 77 | } 78 | 79 | return $this->success('删除成功'); 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /src/controller/LinkBlock.php: -------------------------------------------------------------------------------- 1 | model = $model; 17 | } 18 | 19 | public function index(Request $request) 20 | { 21 | $blocks = $this->model->paginate(); 22 | 23 | return $this->fetch('link/block/index', [ 24 | 'blocks' => $blocks, 25 | ]); 26 | } 27 | 28 | public function edit(Request $request) 29 | { 30 | $block = $this->model->findOrEmpty($request->get('id', 0)); 31 | 32 | return $this->fetch('link/block/edit', [ 33 | 'block' => $block, 34 | ]); 35 | } 36 | 37 | public function save(Request $request) 38 | { 39 | try { 40 | $data = $request->post(); 41 | 42 | $this->model->updateOrCreate(['id' => $request->get('id', 0)], $data); 43 | } catch (\Exception $e) { 44 | $this->error($e->getMessage()); 45 | } 46 | 47 | return $this->redirect('tadmin.link.block'); 48 | } 49 | 50 | public function delete(Request $request) 51 | { 52 | try { 53 | $this->model->destroy($request->get('id')); 54 | } catch (\Exception $e) { 55 | return $this->error('删除失败'); 56 | } 57 | 58 | return $this->success('删除成功'); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/controller/Message.php: -------------------------------------------------------------------------------- 1 | model = $model; 17 | } 18 | 19 | public function index(Request $request) 20 | { 21 | $data = $request->only(['keywords' => '']); 22 | 23 | $messages = $this->model 24 | ->when($data['keywords'], function ($query) use ($data) { 25 | $query->whereLike('title', '%'.$data['keywords'].'%'); 26 | }) 27 | ->order('id', 'desc') 28 | ->paginate([ 29 | 'query' => $data, 30 | ]); 31 | 32 | return $this->fetch('message/index', [ 33 | 'messages' => $messages, 34 | ]); 35 | } 36 | 37 | public function delete(Request $request) 38 | { 39 | try { 40 | $this->model->destroy($request->get('id')); 41 | } catch (\Exception $e) { 42 | return $this->error('删除失败'); 43 | } 44 | 45 | return $this->success('删除成功'); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/controller/Nav.php: -------------------------------------------------------------------------------- 1 | model = $model; 17 | } 18 | 19 | public function index() 20 | { 21 | $navs = $this->model->flatTree(); 22 | 23 | return $this->fetch('nav/index', [ 24 | 'navs' => $navs, 25 | ]); 26 | } 27 | 28 | public function edit(Request $request) 29 | { 30 | $nav = $this->model->findOrEmpty($request->get('id', 0)); 31 | 32 | $parents = $this->model->flatTree(); 33 | 34 | $targets = $this->model->mapTarget(); 35 | 36 | return $this->fetch('nav/edit', [ 37 | 'nav' => $nav, 38 | 'parents' => $parents, 39 | 'targets' => $targets, 40 | ]); 41 | } 42 | 43 | public function save(Request $request) 44 | { 45 | try { 46 | $data = $request->post(); 47 | 48 | $res = $this->model->updateOrCreate(['id' => $request->get('id', 0)], $data); 49 | } catch (\Exception $e) { 50 | $this->error('保存失败'); 51 | } 52 | 53 | return $this->redirect('tadmin.nav'); 54 | } 55 | 56 | public function delete(Request $request) 57 | { 58 | try { 59 | $this->model->destroy($request->get('id')); 60 | } catch (\Exception $e) { 61 | return $this->error('删除失败'); 62 | } 63 | 64 | return $this->success('删除成功'); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/controller/Transfer.php: -------------------------------------------------------------------------------- 1 | error($value); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/controller/auth/Log.php: -------------------------------------------------------------------------------- 1 | operationLog = $operationLog; 16 | } 17 | 18 | public function index() 19 | { 20 | $logs = $this->operationLog->order('id', 'desc')->paginate(); 21 | 22 | return $this->fetch('auth/log/index', [ 23 | 'logs' => $logs, 24 | ]); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/controller/auth/Passport.php: -------------------------------------------------------------------------------- 1 | auth = $auth; 17 | } 18 | 19 | public function user() 20 | { 21 | try { 22 | $user = $this->auth->user(); 23 | 24 | return json( 25 | [ 26 | 'admin_account' => $user->admin_account, 27 | 'login_at' => $user->login_at, 28 | ] 29 | ); 30 | } catch (\Exception $e) { 31 | return json([]); 32 | } 33 | } 34 | 35 | public function login() 36 | { 37 | return $this->fetch('auth/passport/login'); 38 | } 39 | 40 | public function loginAuth(Request $request) 41 | { 42 | try { 43 | $this->auth->login($request); 44 | 45 | return $this->redirect('tadmin.index'); 46 | } catch (\Exception $e) { 47 | $this->error($e->getMessage()); 48 | } 49 | } 50 | 51 | public function logout() 52 | { 53 | $this->auth->logout(); 54 | 55 | return $this->redirect('tadmin.auth.passport.login'); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/controller/auth/Permission.php: -------------------------------------------------------------------------------- 1 | permission = $permission; 17 | } 18 | 19 | public function index() 20 | { 21 | $permissions = $this->permission->paginate(); 22 | 23 | return $this->fetch('auth/permission/index', [ 24 | 'permissions' => $permissions, 25 | ]); 26 | } 27 | 28 | public function edit(Request $request) 29 | { 30 | $permission = $this->permission->findOrEmpty($request->get('id', 0)); 31 | 32 | return $this->fetch('auth/permission/edit', [ 33 | 'permission' => $permission, 34 | ]); 35 | } 36 | 37 | public function save(Request $request) 38 | { 39 | try { 40 | $data = $request->post(); 41 | 42 | $permission = $this->permission->findOrEmpty($data['id']); 43 | $permission->save($data); 44 | } catch (\Exception $e) { 45 | throw $e; 46 | $this->error('保存失败'); 47 | } 48 | return $this->redirect('tadmin.auth.permission'); 49 | } 50 | 51 | public function delete(Request $request) 52 | { 53 | try { 54 | $this->permission->destroy($request->get('id')); 55 | } catch (\Exception $e) { 56 | return $this->error('删除失败'); 57 | } 58 | 59 | return $this->success('删除成功'); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /src/middleware/AuthCheck.php: -------------------------------------------------------------------------------- 1 | guest()) { 12 | return redirect((string)url('tadmin.auth.passport.login'), 302); 13 | } 14 | 15 | return $next($request); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/middleware/LogRecord.php: -------------------------------------------------------------------------------- 1 | operationLog = $operationLog; 15 | } 16 | 17 | public function handle($request, \Closure $next) 18 | { 19 | $this->createLog($request); 20 | 21 | return $next($request); 22 | } 23 | 24 | protected function createLog($request) 25 | { 26 | $adminer = Auth::user(); 27 | $this->operationLog->create([ 28 | 'adminer_id' => $adminer ? $adminer->id : 0, 29 | 'path' => $request->baseUrl(), 30 | 'method' => $request->method(), 31 | 'ip' => $request->ip(), 32 | 'input' => var_export($request->param(), true), 33 | 'useragent' => $request->header('User-Agent'), 34 | ]); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/middleware/PermissionCheck.php: -------------------------------------------------------------------------------- 1 | request = $request; 25 | 26 | if (!$adminer = Auth::user()) { 27 | return $next($request); 28 | } 29 | 30 | if ($this->shouldPassThrough()) { 31 | return $next($request); 32 | } 33 | 34 | $enforcer = $this->app->get('tadmin.enforcer'); 35 | 36 | if (true !== $enforcer->enforce('adminer.' . $adminer->id, $this->request->method(true), $this->parseCurrentPath())) { 37 | return $this->error("权限不足"); 38 | } 39 | 40 | return $next($request); 41 | } 42 | 43 | public function shouldPassThrough() 44 | { 45 | $excepts = [ 46 | '/', 47 | '', 48 | 'dashboard', 49 | ]; 50 | 51 | foreach ($excepts as $except) { 52 | if ('/' !== $except) { 53 | $except = trim($except, '/'); 54 | } 55 | if ($except == $this->parseCurrentPath()) { 56 | return true; 57 | } 58 | } 59 | 60 | return false; 61 | } 62 | 63 | public function parseCurrentPath() 64 | { 65 | $currentPath = ltrim(trim($this->request->baseUrl(), '/'), 'tadmin'); 66 | if ('/' !== $currentPath) { 67 | $currentPath = rtrim($currentPath, '/'); 68 | } 69 | 70 | return $currentPath; 71 | } 72 | 73 | public function parseHttpPath($httpPath) 74 | { 75 | return array_map(function ($row) { 76 | return rtrim(trim($row), '/'); 77 | }, explode(PHP_EOL, $httpPath)); 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /src/model/Adminer.php: -------------------------------------------------------------------------------- 1 | belongsToMany(Role::class, AdminerRole::class, "role_id", "adminer_id"); 14 | } 15 | 16 | public function setAdminPasswordAttr($value) 17 | { 18 | return password_hash($value, PASSWORD_DEFAULT); 19 | } 20 | 21 | public function retrieveByCredentials(array $credentials) 22 | { 23 | $query = $this->db(); 24 | foreach ($credentials as $key => $value) { 25 | $query->where($key, $value); 26 | } 27 | 28 | return $query->find(); 29 | } 30 | 31 | public function getAuthIdentifier() 32 | { 33 | return $this->{$this->pk}; 34 | } 35 | 36 | public function retrieveByIdentifier($identifier) 37 | { 38 | return $this->find($identifier); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/model/AdminerRole.php: -------------------------------------------------------------------------------- 1 | parent = $parent; 17 | 18 | if (is_null($this->name)) { 19 | $this->name = $table; 20 | } 21 | 22 | parent::__construct($data, $parent, $table); 23 | 24 | if ($this->table) { 25 | $this->table = Db::getConfig('prefix') . $this->table; 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/model/Advertising.php: -------------------------------------------------------------------------------- 1 | belongsTo(AdvertisingBlock::class, 'block', 'block'); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/model/AdvertisingBlock.php: -------------------------------------------------------------------------------- 1 | getAttr('summary'); 14 | if (empty($summary)) { 15 | $summary = strip_tags($this->getAttr('content')); 16 | } 17 | 18 | return $summary; 19 | } 20 | 21 | //上一篇 22 | public function previous() 23 | { 24 | $prev = $this->where('sort', 'elt', $this->sort) 25 | ->field('id,title') 26 | ->where('updated_at', 'elt', $this->updated_at) 27 | ->where('id', 'lt', $this->id) 28 | ->where('category_id', 'eq', $this->category_id) 29 | ->order(['sort' => 'asc', 'updated_at' => 'desc', 'id' => 'desc']) 30 | ->find(); 31 | 32 | return $prev; 33 | } 34 | 35 | public function next() 36 | { 37 | $next = $this->where('sort', 'egt', $this->sort) 38 | ->field('id,title') 39 | ->where('updated_at', 'egt', $this->updated_at) 40 | ->where('id', 'gt', $this->id) 41 | ->where('category_id', 'eq', $this->category_id) 42 | ->order(['sort' => 'desc', 'updated_at' => 'asc', 'id' => 'asc']) 43 | ->find(); 44 | 45 | return $next; 46 | } 47 | 48 | public function category() 49 | { 50 | return $this->belongsTo(Category::class, "category_id"); 51 | } 52 | 53 | public function tags() 54 | { 55 | return $this->belongsToMany(Tag::class, ArticleTag::class, 'tag_id', 'article_id'); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/model/ArticleTag.php: -------------------------------------------------------------------------------- 1 | parent = $parent; 15 | 16 | if (is_null($this->name)) { 17 | $this->name = $table; 18 | } 19 | 20 | parent::__construct($data, $parent, $table); 21 | 22 | if ($this->table) { 23 | $this->table = Db::getConfig('prefix') . $this->table; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/model/Category.php: -------------------------------------------------------------------------------- 1 | getAttr('type')); 21 | } 22 | 23 | public static function mapType($type = null) 24 | { 25 | $map = [ 26 | 'mark' => '标识', 27 | 'list' => '列表', 28 | 'list-img' => '图文', 29 | 'single' => '单页', 30 | 'topic' => '专题', 31 | ]; 32 | if (null === $type) { 33 | return $map; 34 | } 35 | 36 | return isset($map[$type]) ? $map[$type] : ''; 37 | } 38 | 39 | public function articles() 40 | { 41 | return $this->hasMany(Article::class, 'category_id', 'id'); 42 | } 43 | 44 | public function single() 45 | { 46 | return $this->hasOne(Single::class, 'category_id', 'id'); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/model/Config.php: -------------------------------------------------------------------------------- 1 | getAttr('content')); 14 | 15 | return $summary; 16 | } 17 | 18 | public function resumes() 19 | { 20 | return $this->hasMany(JobResume::class, 'job_id', 'id'); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/model/JobResume.php: -------------------------------------------------------------------------------- 1 | getAttr('content')), 50); 14 | 15 | return $summary; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/model/Link.php: -------------------------------------------------------------------------------- 1 | belongsTo(LinkBlock::class, 'block', 'block'); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/model/LinkBlock.php: -------------------------------------------------------------------------------- 1 | table) { 19 | $this->table = Db::getConfig('prefix') . $this->table; 20 | } 21 | parent::__construct($data); 22 | } 23 | 24 | public function updateOrCreate(array $attributes, array $values = []) 25 | { 26 | $first = $this->where($attributes)->find(); 27 | if ($first) { 28 | $first->data($values); 29 | $first->save(); 30 | 31 | return $first; 32 | } else { 33 | return self::create($values); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/model/Nav.php: -------------------------------------------------------------------------------- 1 | getAttr('target')); 16 | } 17 | 18 | public static function mapTarget($target = null) 19 | { 20 | $map = [ 21 | '_self' => '默认', 22 | '_blank' => '新标签页', 23 | '_parent' => '父级框架', 24 | '_top' => '整个窗口', 25 | ]; 26 | if (null === $target) { 27 | return $map; 28 | } 29 | 30 | return isset($map[$target]) ? $map[$target] : ''; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/model/Permission.php: -------------------------------------------------------------------------------- 1 | belongsToMany(Permission::class, RolePermission::class, "permission_id", "role_id"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/model/RolePermission.php: -------------------------------------------------------------------------------- 1 | parent = $parent; 17 | 18 | if (is_null($this->name)) { 19 | $this->name = $table; 20 | } 21 | 22 | parent::__construct($data, $parent, $table); 23 | 24 | if ($this->table) { 25 | $this->table = Db::getConfig('prefix') . $this->table; 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/model/Single.php: -------------------------------------------------------------------------------- 1 | getAttr('summary'); 14 | if (empty($summary)) { 15 | $summary = strip_tags($this->getAttr('content')); 16 | } 17 | 18 | return $summary; 19 | } 20 | 21 | public function category() 22 | { 23 | return $this->belongsTo(Category::class, "category_id"); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/model/Tag.php: -------------------------------------------------------------------------------- 1 | belongsToMany(Article::class, ArticleTag::class, 'article_id', 'tag_id'); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/model/traits/ModelHelper.php: -------------------------------------------------------------------------------- 1 | authenticate = $authenticate; 24 | $this->guard = $guard; 25 | } 26 | 27 | public function login(Request $request) 28 | { 29 | $this->validate($request->param()); 30 | 31 | if (!$this->attempt($request->param())) { 32 | throw new ValidateException('用户名或密码错误'); 33 | } 34 | 35 | $this->guard()->login($this->adminer); 36 | } 37 | 38 | public function logout() 39 | { 40 | $this->guard()->logout(); 41 | } 42 | 43 | public function user() 44 | { 45 | return $this->guard()->user(); 46 | } 47 | 48 | public function guard() 49 | { 50 | return $this->guard; 51 | } 52 | 53 | protected function validate(array $data = []) 54 | { 55 | $validate = Validate::rule([ 56 | 'admin_account' => 'require|max:25', 57 | 'admin_password' => 'require|max:25', 58 | 'captcha|验证码' => 'require|captcha' 59 | ])->message([ 60 | 'admin_account.require' => '登录名必须', 61 | 'admin_account.max' => '登录名最多不能超过25个字符', 62 | 'admin_password.require' => '密码必须', 63 | 'admin_password.max' => '密码最多不能超过25个字符', 64 | ]); 65 | 66 | if (!$validate->check($data)) { 67 | if ($this->failException) { 68 | throw new ValidateException($validate->getError()); 69 | } 70 | } 71 | } 72 | 73 | public function attempt(array $credentials) 74 | { 75 | $adminer = $this->adminer = $this->authenticate->retrieveByCredentials([ 76 | 'admin_account' => $credentials['admin_account'], 77 | ]); 78 | if (!$adminer) { 79 | return false; 80 | } 81 | 82 | return $this->validCredentials($adminer, $credentials); 83 | } 84 | 85 | protected function validCredentials($adminer, array $credentials) 86 | { 87 | return password_verify($credentials['admin_password'], $adminer->admin_password); 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /src/service/auth/contract/Auth.php: -------------------------------------------------------------------------------- 1 | authenticate = $authenticate; 21 | } 22 | 23 | public function login(Authenticate $authenticate) 24 | { 25 | Session::set($this->getName(), $authenticate->getAuthIdentifier()); 26 | $authenticate->login_at = date('Y-m-d H:i:s'); 27 | $authenticate->login_ip = request()->ip(); 28 | $authenticate->save(); 29 | $this->user = $authenticate; 30 | } 31 | 32 | public function logout() 33 | { 34 | Session::delete($this->getName()); 35 | $this->user = null; 36 | } 37 | 38 | public function getName() 39 | { 40 | return 'login_'.$this->name.'_'.sha1(static::class); 41 | } 42 | 43 | public function user() 44 | { 45 | if (null !== $this->user) { 46 | return $this->user; 47 | } 48 | 49 | $authIdentifier = Session::get($this->getName()); 50 | 51 | if (null !== $authIdentifier) { 52 | $this->user = $this->authenticate->retrieveByIdentifier($authIdentifier); 53 | } 54 | 55 | return $this->user; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/service/auth/guard/contract/Guard.php: -------------------------------------------------------------------------------- 1 | user(); 15 | } 16 | 17 | /** 18 | * Determine if the current user is a guest. 19 | * 20 | * @return bool 21 | */ 22 | public function guest() 23 | { 24 | return !$this->check(); 25 | } 26 | 27 | /** 28 | * Get the ID for the currently authenticated user. 29 | * 30 | * @return int|null 31 | */ 32 | public function id() 33 | { 34 | if ($this->user()) { 35 | return $this->user()->getAuthIdentifier(); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/support/view/View.php: -------------------------------------------------------------------------------- 1 | app->config->get('tadmin.view', []); 12 | Arr::forget($config, 'type'); 13 | return $config; 14 | } 15 | } 16 | --------------------------------------------------------------------------------