├── static ├── img │ ├── logo.png │ ├── plus.png │ ├── alert.png │ ├── error.png │ ├── minus.png │ ├── 404-error.png │ ├── 500-error.png │ ├── avatar │ │ ├── 0.jpg │ │ ├── 1.jpg │ │ ├── 2.jpg │ │ ├── 3.jpg │ │ ├── 4.jpg │ │ └── 5.jpg │ ├── favicon.ico │ ├── logo-left.png │ ├── logo_icon.png │ ├── opms-view.png │ ├── picture.jpg │ ├── avatar-mini.jpg │ ├── plus-white.png │ ├── details_close.png │ ├── details_open.png │ ├── input-spinner.gif │ ├── qrcode_alipay.png │ └── qrcode_wechat.png ├── fonts │ ├── Telugu MN.ttc │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.ttf │ │ └── fontawesome-webfont.woff │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── js │ ├── bootstrap-fileinput-master │ │ ├── .gitignore │ │ ├── img │ │ │ ├── loading.gif │ │ │ └── loading-sm.gif │ │ ├── composer.json │ │ ├── js │ │ │ └── plugins │ │ │ │ └── canvas-to-blob.min.js │ │ ├── nuget │ │ │ ├── Package.nuspec │ │ │ └── build.bat │ │ ├── package.json │ │ ├── bower.json │ │ ├── LICENSE.md │ │ └── themes │ │ │ ├── fa │ │ │ └── fa.js │ │ │ └── gly │ │ │ └── gly.js │ ├── lightbox │ │ └── images │ │ │ ├── next.png │ │ │ ├── prev.png │ │ │ ├── close.png │ │ │ └── loading.gif │ ├── data-tables │ │ └── images │ │ │ ├── sort_asc.png │ │ │ ├── sort_both.png │ │ │ └── sort_desc.png │ ├── advanced-datatable │ │ ├── images │ │ │ ├── favicon.ico │ │ │ ├── sort_asc.png │ │ │ ├── sort_both.png │ │ │ ├── sort_desc.png │ │ │ ├── back_disabled.png │ │ │ ├── back_enabled.png │ │ │ ├── sort_desc copy.png │ │ │ ├── forward_disabled.png │ │ │ ├── forward_enabled.png │ │ │ ├── back_enabled_hover.png │ │ │ ├── sort_asc_disabled.png │ │ │ ├── sort_desc_disabled.png │ │ │ └── forward_enabled_hover.png │ │ ├── src │ │ │ ├── model │ │ │ │ ├── model.search.js │ │ │ │ └── model.row.js │ │ │ ├── core │ │ │ │ └── core.processing.js │ │ │ └── ext │ │ │ │ ├── ext.sorting.js │ │ │ │ └── ext.types.js │ │ └── css │ │ │ └── demo_page.css │ ├── dynamic_table_init.js │ ├── bootstrap-datetimepicker │ │ └── js │ │ │ └── locales │ │ │ ├── bootstrap-datetimepicker.kr.js │ │ │ ├── bootstrap-datetimepicker.ja.js │ │ │ ├── bootstrap-datetimepicker.zh-CN.js │ │ │ ├── bootstrap-datetimepicker.zh-TW.js │ │ │ ├── bootstrap-datetimepicker.hr.js │ │ │ ├── bootstrap-datetimepicker.id.js │ │ │ ├── bootstrap-datetimepicker.ua.js │ │ │ ├── bootstrap-datetimepicker.he.js │ │ │ ├── bootstrap-datetimepicker.ms.js │ │ │ ├── bootstrap-datetimepicker.ca.js │ │ │ ├── bootstrap-datetimepicker.da.js │ │ │ ├── bootstrap-datetimepicker.el.js │ │ │ ├── bootstrap-datetimepicker.rs.js │ │ │ ├── bootstrap-datetimepicker.sv.js │ │ │ ├── bootstrap-datetimepicker.th.js │ │ │ ├── bootstrap-datetimepicker.tr.js │ │ │ ├── bootstrap-datetimepicker.bg.js │ │ │ ├── bootstrap-datetimepicker.es.js │ │ │ ├── bootstrap-datetimepicker.nl.js │ │ │ ├── bootstrap-datetimepicker.rs-latin.js │ │ │ ├── bootstrap-datetimepicker.sl.js │ │ │ ├── bootstrap-datetimepicker.nb.js │ │ │ ├── bootstrap-datetimepicker.ru.js │ │ │ ├── bootstrap-datetimepicker.uk.js │ │ │ ├── bootstrap-datetimepicker.hu.js │ │ │ ├── bootstrap-datetimepicker.ro.js │ │ │ ├── bootstrap-datetimepicker.cs.js │ │ │ ├── bootstrap-datetimepicker.is.js │ │ │ ├── bootstrap-datetimepicker.pt-BR.js │ │ │ ├── bootstrap-datetimepicker.fi.js │ │ │ ├── bootstrap-datetimepicker.sk.js │ │ │ ├── bootstrap-datetimepicker.de.js │ │ │ ├── bootstrap-datetimepicker.fr.js │ │ │ ├── bootstrap-datetimepicker.pl.js │ │ │ ├── bootstrap-datetimepicker.it.js │ │ │ ├── bootstrap-datetimepicker.pt.js │ │ │ ├── bootstrap-datetimepicker.lv.js │ │ │ ├── bootstrap-datetimepicker.lt.js │ │ │ └── bootstrap-datetimepicker.sw.js │ ├── datepicker-zh-CN.js │ ├── html5shiv.js │ └── bootstrap-datepicker │ │ └── less │ │ └── datepicker.less ├── uploadfile │ └── 2017-3 │ │ └── 28 │ │ ├── 0.jpg │ │ ├── 48b77d930cb7a02824874ed9c6be434c.jpg │ │ ├── 5b41faa955a4c1acdb6d7e6c116bce2f.jpg │ │ ├── 66ca879b967a225cf8ef76736dcd59ca.png │ │ ├── 6b4b9957ffbd6ec1c8515025fba39818.jpg │ │ ├── 73434f8343c3780b5e8af114e8825b9c.jpg │ │ ├── eac2a34d2cd6f3d0df1b233a0f589bce.jpg │ │ ├── f739b6c6351a82a4953d8d8b44cd426d.jpg │ │ └── 5b41faa955a4c1acdb6d7e6c116bce2f-cropper.jpg ├── keditor │ ├── themes │ │ ├── common │ │ │ ├── rm.gif │ │ │ ├── anchor.gif │ │ │ ├── blank.gif │ │ │ ├── flash.gif │ │ │ ├── media.gif │ │ │ └── loading.gif │ │ ├── qq │ │ │ └── editor.gif │ │ ├── default │ │ │ ├── default.png │ │ │ └── background.png │ │ └── simple │ │ │ └── simple.css │ └── plugins │ │ ├── emoticons │ │ └── images │ │ │ ├── 0.gif │ │ │ ├── 1.gif │ │ │ ├── 10.gif │ │ │ ├── 11.gif │ │ │ ├── 12.gif │ │ │ ├── 13.gif │ │ │ ├── 14.gif │ │ │ ├── 15.gif │ │ │ ├── 16.gif │ │ │ ├── 17.gif │ │ │ ├── 18.gif │ │ │ ├── 19.gif │ │ │ ├── 2.gif │ │ │ ├── 20.gif │ │ │ ├── 21.gif │ │ │ ├── 22.gif │ │ │ ├── 23.gif │ │ │ ├── 24.gif │ │ │ ├── 25.gif │ │ │ ├── 26.gif │ │ │ ├── 27.gif │ │ │ ├── 28.gif │ │ │ ├── 29.gif │ │ │ ├── 3.gif │ │ │ ├── 30.gif │ │ │ ├── 31.gif │ │ │ ├── 32.gif │ │ │ ├── 33.gif │ │ │ ├── 34.gif │ │ │ ├── 35.gif │ │ │ ├── 36.gif │ │ │ ├── 37.gif │ │ │ ├── 38.gif │ │ │ ├── 39.gif │ │ │ ├── 4.gif │ │ │ ├── 40.gif │ │ │ ├── 41.gif │ │ │ ├── 42.gif │ │ │ ├── 43.gif │ │ │ ├── 44.gif │ │ │ ├── 45.gif │ │ │ ├── 46.gif │ │ │ ├── 47.gif │ │ │ ├── 48.gif │ │ │ ├── 49.gif │ │ │ ├── 5.gif │ │ │ ├── 50.gif │ │ │ ├── 51.gif │ │ │ ├── 52.gif │ │ │ ├── 53.gif │ │ │ ├── 54.gif │ │ │ ├── 55.gif │ │ │ ├── 56.gif │ │ │ ├── 57.gif │ │ │ ├── 58.gif │ │ │ ├── 59.gif │ │ │ ├── 6.gif │ │ │ ├── 60.gif │ │ │ ├── 61.gif │ │ │ ├── 62.gif │ │ │ ├── 63.gif │ │ │ ├── 64.gif │ │ │ ├── 65.gif │ │ │ ├── 66.gif │ │ │ ├── 67.gif │ │ │ ├── 68.gif │ │ │ ├── 69.gif │ │ │ ├── 7.gif │ │ │ ├── 70.gif │ │ │ ├── 71.gif │ │ │ ├── 72.gif │ │ │ ├── 73.gif │ │ │ ├── 74.gif │ │ │ ├── 75.gif │ │ │ ├── 76.gif │ │ │ ├── 77.gif │ │ │ ├── 78.gif │ │ │ ├── 79.gif │ │ │ ├── 8.gif │ │ │ ├── 80.gif │ │ │ ├── 81.gif │ │ │ ├── 82.gif │ │ │ ├── 83.gif │ │ │ ├── 84.gif │ │ │ ├── 85.gif │ │ │ ├── 86.gif │ │ │ ├── 87.gif │ │ │ ├── 88.gif │ │ │ ├── 89.gif │ │ │ ├── 9.gif │ │ │ ├── 90.gif │ │ │ ├── 91.gif │ │ │ ├── 92.gif │ │ │ ├── 93.gif │ │ │ ├── 94.gif │ │ │ ├── 95.gif │ │ │ ├── 96.gif │ │ │ ├── 97.gif │ │ │ ├── 98.gif │ │ │ ├── 99.gif │ │ │ ├── 100.gif │ │ │ ├── 101.gif │ │ │ ├── 102.gif │ │ │ ├── 103.gif │ │ │ ├── 104.gif │ │ │ ├── 105.gif │ │ │ ├── 106.gif │ │ │ ├── 107.gif │ │ │ ├── 108.gif │ │ │ ├── 109.gif │ │ │ ├── 110.gif │ │ │ ├── 111.gif │ │ │ ├── 112.gif │ │ │ ├── 113.gif │ │ │ ├── 114.gif │ │ │ ├── 115.gif │ │ │ ├── 116.gif │ │ │ ├── 117.gif │ │ │ ├── 118.gif │ │ │ ├── 119.gif │ │ │ ├── 120.gif │ │ │ ├── 121.gif │ │ │ ├── 122.gif │ │ │ ├── 123.gif │ │ │ ├── 124.gif │ │ │ ├── 125.gif │ │ │ ├── 126.gif │ │ │ ├── 127.gif │ │ │ ├── 128.gif │ │ │ ├── 129.gif │ │ │ ├── 130.gif │ │ │ ├── 131.gif │ │ │ ├── 132.gif │ │ │ ├── 133.gif │ │ │ ├── 134.gif │ │ │ └── static.gif │ │ ├── image │ │ └── images │ │ │ ├── align_top.gif │ │ │ ├── refresh.png │ │ │ ├── align_left.gif │ │ │ └── align_right.gif │ │ ├── filemanager │ │ └── images │ │ │ ├── go-up.gif │ │ │ ├── file-16.gif │ │ │ ├── file-64.gif │ │ │ ├── folder-16.gif │ │ │ └── folder-64.gif │ │ ├── multiimage │ │ └── images │ │ │ ├── image.png │ │ │ ├── swfupload.swf │ │ │ ├── select-files-en.png │ │ │ └── select-files-zh_CN.png │ │ ├── template │ │ ├── html │ │ │ ├── 1.html │ │ │ ├── 3.html │ │ │ └── 2.html │ │ └── template.js │ │ ├── hide │ │ └── hide.js │ │ ├── code │ │ ├── prettify.css │ │ └── code.js │ │ ├── pagebreak │ │ └── pagebreak.js │ │ ├── preview │ │ └── preview.js │ │ ├── clearhtml │ │ └── clearhtml.js │ │ ├── lineheight │ │ └── lineheight.js │ │ ├── baidumap │ │ └── map.html │ │ ├── plainpaste │ │ └── plainpaste.js │ │ ├── anchor │ │ └── anchor.js │ │ ├── wordpaste │ │ └── wordpaste.js │ │ ├── map │ │ └── map.html │ │ ├── quickformat │ │ └── quickformat.js │ │ └── link │ │ └── link.js └── css │ ├── images │ ├── ui-icons_444444_256x240.png │ ├── ui-icons_555555_256x240.png │ ├── ui-icons_777620_256x240.png │ ├── ui-icons_cc0000_256x240.png │ └── ui-icons_ffffff_256x240.png │ └── jquery.stepy.css ├── controllers ├── .DS_Store └── base.go ├── initial ├── init.go ├── cache.go ├── sql.go └── template.go ├── tmp ├── 3 │ └── 3 │ │ └── 33483ebad65b55735b1b58c3f3f435b4 ├── 4 │ ├── 4 │ │ └── 44efb66b703e9e43640a96af0dca60ae │ ├── 6 │ │ └── 461ebabb503c63703026619df1d59a7a │ └── d │ │ └── 4d1ffc72215fcb849387216df236799c ├── 5 │ ├── c │ │ └── 5c86ba84aa2ae1cad79edf8bd55330e6 │ └── e │ │ └── 5eaa1cf067fd6a9f6b5b7fb95cbafca1 ├── 6 │ └── 6 │ │ └── 666e9da561f31e74b5d07e120fdefca5 ├── a │ └── 9 │ │ └── a9fee77b35f1e5634087029564a73cf9 ├── b │ └── b │ │ └── bba9f0edfa24b2e5f5e6bd91de5f3794 ├── c │ └── 8 │ │ └── c8d83cc0c276d929b40ab7cc78312228 ├── d │ └── 9 │ │ └── d9c922b52bd9f6c152f752fff88bc1af └── e │ ├── 2 │ └── e2bc3ed12417d34cf09925072b970003 │ └── 5 │ └── e5c5473099c5558db47db5d6e9e11d2c ├── views ├── inc │ ├── foot-info.tpl │ ├── checkwork-nav.tpl │ ├── my-nav.tpl │ ├── foot.tpl │ ├── notice-dialog.tpl │ ├── meta.tpl │ ├── ccid.tpl │ ├── page.tpl │ ├── user-dialog.tpl │ ├── left.tpl │ ├── user-info.tpl │ └── test-dialog.tpl ├── users │ ├── nav.tpl │ └── login.tpl ├── projects │ └── nav.tpl ├── 404.tpl ├── 401.tpl ├── leaves │ └── approval-index.tpl ├── index.tpl └── albums │ └── upload.tpl ├── models ├── init.go ├── knowledges │ ├── knowledgesSorts.go │ ├── knowledgesComments.go │ └── knowledgesLauds.go ├── albums │ ├── albumsComments.go │ └── albumsLauds.go ├── projects │ └── teams.go └── groups │ ├── groupsUsers.go │ └── groupsPermissions.go ├── utils ├── encrypt.go ├── date.go └── cropper.go ├── conf └── app.conf ├── tests └── default_test.go ├── main.go └── README.md /static/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/logo.png -------------------------------------------------------------------------------- /static/img/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/plus.png -------------------------------------------------------------------------------- /controllers/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/controllers/.DS_Store -------------------------------------------------------------------------------- /static/img/alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/alert.png -------------------------------------------------------------------------------- /static/img/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/error.png -------------------------------------------------------------------------------- /static/img/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/minus.png -------------------------------------------------------------------------------- /static/img/404-error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/404-error.png -------------------------------------------------------------------------------- /static/img/500-error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/500-error.png -------------------------------------------------------------------------------- /static/img/avatar/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/avatar/0.jpg -------------------------------------------------------------------------------- /static/img/avatar/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/avatar/1.jpg -------------------------------------------------------------------------------- /static/img/avatar/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/avatar/2.jpg -------------------------------------------------------------------------------- /static/img/avatar/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/avatar/3.jpg -------------------------------------------------------------------------------- /static/img/avatar/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/avatar/4.jpg -------------------------------------------------------------------------------- /static/img/avatar/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/avatar/5.jpg -------------------------------------------------------------------------------- /static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/favicon.ico -------------------------------------------------------------------------------- /static/img/logo-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/logo-left.png -------------------------------------------------------------------------------- /static/img/logo_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/logo_icon.png -------------------------------------------------------------------------------- /static/img/opms-view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/opms-view.png -------------------------------------------------------------------------------- /static/img/picture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/picture.jpg -------------------------------------------------------------------------------- /static/fonts/Telugu MN.ttc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/fonts/Telugu MN.ttc -------------------------------------------------------------------------------- /static/img/avatar-mini.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/avatar-mini.jpg -------------------------------------------------------------------------------- /static/img/plus-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/plus-white.png -------------------------------------------------------------------------------- /static/img/details_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/details_close.png -------------------------------------------------------------------------------- /static/img/details_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/details_open.png -------------------------------------------------------------------------------- /static/img/input-spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/input-spinner.gif -------------------------------------------------------------------------------- /static/img/qrcode_alipay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/qrcode_alipay.png -------------------------------------------------------------------------------- /static/img/qrcode_wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/img/qrcode_wechat.png -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/.gitignore: -------------------------------------------------------------------------------- 1 | nuget/content/ 2 | nuget/bootstrap-fileinput.*.nupkg 3 | .DS_Store -------------------------------------------------------------------------------- /initial/init.go: -------------------------------------------------------------------------------- 1 | package initial 2 | 3 | func init() { 4 | InitSql() 5 | InitTemplate() 6 | InitCache() 7 | } 8 | -------------------------------------------------------------------------------- /static/fonts/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/fonts/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /static/js/lightbox/images/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/lightbox/images/next.png -------------------------------------------------------------------------------- /static/js/lightbox/images/prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/lightbox/images/prev.png -------------------------------------------------------------------------------- /static/uploadfile/2017-3/28/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/uploadfile/2017-3/28/0.jpg -------------------------------------------------------------------------------- /static/js/lightbox/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/lightbox/images/close.png -------------------------------------------------------------------------------- /static/keditor/themes/common/rm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/themes/common/rm.gif -------------------------------------------------------------------------------- /static/keditor/themes/qq/editor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/themes/qq/editor.gif -------------------------------------------------------------------------------- /static/js/lightbox/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/lightbox/images/loading.gif -------------------------------------------------------------------------------- /static/keditor/themes/common/anchor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/themes/common/anchor.gif -------------------------------------------------------------------------------- /static/keditor/themes/common/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/themes/common/blank.gif -------------------------------------------------------------------------------- /static/keditor/themes/common/flash.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/themes/common/flash.gif -------------------------------------------------------------------------------- /static/keditor/themes/common/media.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/themes/common/media.gif -------------------------------------------------------------------------------- /static/js/data-tables/images/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/data-tables/images/sort_asc.png -------------------------------------------------------------------------------- /static/keditor/themes/common/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/themes/common/loading.gif -------------------------------------------------------------------------------- /static/keditor/themes/default/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/themes/default/default.png -------------------------------------------------------------------------------- /tmp/3/3/33483ebad65b55735b1b58c3f3f435b4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/tmp/3/3/33483ebad65b55735b1b58c3f3f435b4 -------------------------------------------------------------------------------- /tmp/4/4/44efb66b703e9e43640a96af0dca60ae: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/tmp/4/4/44efb66b703e9e43640a96af0dca60ae -------------------------------------------------------------------------------- /tmp/4/6/461ebabb503c63703026619df1d59a7a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/tmp/4/6/461ebabb503c63703026619df1d59a7a -------------------------------------------------------------------------------- /tmp/4/d/4d1ffc72215fcb849387216df236799c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/tmp/4/d/4d1ffc72215fcb849387216df236799c -------------------------------------------------------------------------------- /tmp/5/c/5c86ba84aa2ae1cad79edf8bd55330e6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/tmp/5/c/5c86ba84aa2ae1cad79edf8bd55330e6 -------------------------------------------------------------------------------- /tmp/5/e/5eaa1cf067fd6a9f6b5b7fb95cbafca1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/tmp/5/e/5eaa1cf067fd6a9f6b5b7fb95cbafca1 -------------------------------------------------------------------------------- /tmp/6/6/666e9da561f31e74b5d07e120fdefca5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/tmp/6/6/666e9da561f31e74b5d07e120fdefca5 -------------------------------------------------------------------------------- /tmp/a/9/a9fee77b35f1e5634087029564a73cf9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/tmp/a/9/a9fee77b35f1e5634087029564a73cf9 -------------------------------------------------------------------------------- /tmp/b/b/bba9f0edfa24b2e5f5e6bd91de5f3794: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/tmp/b/b/bba9f0edfa24b2e5f5e6bd91de5f3794 -------------------------------------------------------------------------------- /tmp/c/8/c8d83cc0c276d929b40ab7cc78312228: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/tmp/c/8/c8d83cc0c276d929b40ab7cc78312228 -------------------------------------------------------------------------------- /tmp/d/9/d9c922b52bd9f6c152f752fff88bc1af: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/tmp/d/9/d9c922b52bd9f6c152f752fff88bc1af -------------------------------------------------------------------------------- /tmp/e/2/e2bc3ed12417d34cf09925072b970003: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/tmp/e/2/e2bc3ed12417d34cf09925072b970003 -------------------------------------------------------------------------------- /tmp/e/5/e5c5473099c5558db47db5d6e9e11d2c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/tmp/e/5/e5c5473099c5558db47db5d6e9e11d2c -------------------------------------------------------------------------------- /static/fonts/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/fonts/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /static/fonts/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/fonts/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /static/fonts/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/fonts/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /static/js/data-tables/images/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/data-tables/images/sort_both.png -------------------------------------------------------------------------------- /static/js/data-tables/images/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/data-tables/images/sort_desc.png -------------------------------------------------------------------------------- /static/keditor/themes/default/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/themes/default/background.png -------------------------------------------------------------------------------- /static/css/images/ui-icons_444444_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/css/images/ui-icons_444444_256x240.png -------------------------------------------------------------------------------- /static/css/images/ui-icons_555555_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/css/images/ui-icons_555555_256x240.png -------------------------------------------------------------------------------- /static/css/images/ui-icons_777620_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/css/images/ui-icons_777620_256x240.png -------------------------------------------------------------------------------- /static/css/images/ui-icons_cc0000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/css/images/ui-icons_cc0000_256x240.png -------------------------------------------------------------------------------- /static/css/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/css/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/0.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/1.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/10.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/11.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/12.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/13.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/14.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/14.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/15.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/16.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/17.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/17.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/18.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/18.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/19.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/19.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/2.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/20.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/20.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/21.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/21.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/22.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/22.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/23.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/23.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/24.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/24.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/25.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/25.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/26.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/26.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/27.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/27.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/28.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/28.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/29.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/29.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/3.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/30.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/30.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/31.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/31.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/32.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/33.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/33.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/34.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/34.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/35.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/35.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/36.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/36.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/37.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/37.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/38.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/38.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/39.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/39.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/4.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/40.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/40.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/41.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/41.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/42.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/42.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/43.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/43.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/44.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/44.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/45.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/45.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/46.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/46.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/47.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/47.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/48.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/49.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/49.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/5.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/50.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/50.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/51.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/51.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/52.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/52.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/53.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/53.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/54.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/54.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/55.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/55.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/56.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/56.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/57.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/57.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/58.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/58.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/59.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/59.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/6.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/60.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/60.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/61.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/61.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/62.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/62.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/63.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/63.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/64.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/65.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/65.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/66.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/66.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/67.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/67.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/68.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/68.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/69.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/69.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/7.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/70.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/70.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/71.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/71.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/72.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/72.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/73.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/73.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/74.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/74.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/75.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/75.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/76.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/76.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/77.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/77.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/78.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/78.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/79.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/79.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/8.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/80.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/80.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/81.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/81.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/82.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/82.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/83.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/83.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/84.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/84.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/85.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/85.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/86.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/86.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/87.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/87.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/88.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/88.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/89.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/89.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/9.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/9.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/90.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/90.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/91.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/91.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/92.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/92.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/93.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/93.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/94.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/94.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/95.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/95.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/96.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/96.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/97.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/97.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/98.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/98.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/99.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/99.gif -------------------------------------------------------------------------------- /initial/cache.go: -------------------------------------------------------------------------------- 1 | package initial 2 | 3 | import ( 4 | "opms/utils" 5 | ) 6 | 7 | func InitCache() { 8 | utils.InitCache() 9 | } 10 | -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /static/js/advanced-datatable/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/advanced-datatable/images/favicon.ico -------------------------------------------------------------------------------- /static/js/advanced-datatable/images/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/advanced-datatable/images/sort_asc.png -------------------------------------------------------------------------------- /static/js/advanced-datatable/images/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/advanced-datatable/images/sort_both.png -------------------------------------------------------------------------------- /static/js/advanced-datatable/images/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/advanced-datatable/images/sort_desc.png -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/100.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/100.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/101.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/101.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/102.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/102.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/103.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/103.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/104.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/104.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/105.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/105.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/106.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/106.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/107.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/107.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/108.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/108.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/109.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/109.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/110.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/110.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/111.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/111.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/112.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/112.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/113.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/113.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/114.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/114.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/115.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/115.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/116.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/116.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/117.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/117.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/118.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/118.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/119.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/119.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/120.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/120.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/121.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/121.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/122.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/122.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/123.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/123.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/124.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/124.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/125.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/125.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/126.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/126.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/127.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/127.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/128.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/128.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/129.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/129.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/130.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/130.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/131.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/131.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/132.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/132.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/133.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/133.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/134.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/134.gif -------------------------------------------------------------------------------- /static/keditor/plugins/image/images/align_top.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/image/images/align_top.gif -------------------------------------------------------------------------------- /static/keditor/plugins/image/images/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/image/images/refresh.png -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/static.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/emoticons/images/static.gif -------------------------------------------------------------------------------- /static/keditor/plugins/filemanager/images/go-up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/filemanager/images/go-up.gif -------------------------------------------------------------------------------- /static/keditor/plugins/image/images/align_left.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/image/images/align_left.gif -------------------------------------------------------------------------------- /static/keditor/plugins/image/images/align_right.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/image/images/align_right.gif -------------------------------------------------------------------------------- /static/keditor/plugins/multiimage/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/multiimage/images/image.png -------------------------------------------------------------------------------- /static/js/advanced-datatable/images/back_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/advanced-datatable/images/back_disabled.png -------------------------------------------------------------------------------- /static/js/advanced-datatable/images/back_enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/advanced-datatable/images/back_enabled.png -------------------------------------------------------------------------------- /static/js/advanced-datatable/images/sort_desc copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/advanced-datatable/images/sort_desc copy.png -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/bootstrap-fileinput-master/img/loading.gif -------------------------------------------------------------------------------- /static/keditor/plugins/filemanager/images/file-16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/filemanager/images/file-16.gif -------------------------------------------------------------------------------- /static/keditor/plugins/filemanager/images/file-64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/filemanager/images/file-64.gif -------------------------------------------------------------------------------- /static/keditor/plugins/multiimage/images/swfupload.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/multiimage/images/swfupload.swf -------------------------------------------------------------------------------- /static/js/advanced-datatable/images/forward_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/advanced-datatable/images/forward_disabled.png -------------------------------------------------------------------------------- /static/js/advanced-datatable/images/forward_enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/advanced-datatable/images/forward_enabled.png -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/img/loading-sm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/bootstrap-fileinput-master/img/loading-sm.gif -------------------------------------------------------------------------------- /static/keditor/plugins/filemanager/images/folder-16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/filemanager/images/folder-16.gif -------------------------------------------------------------------------------- /static/keditor/plugins/filemanager/images/folder-64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/filemanager/images/folder-64.gif -------------------------------------------------------------------------------- /static/js/advanced-datatable/images/back_enabled_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/advanced-datatable/images/back_enabled_hover.png -------------------------------------------------------------------------------- /static/js/advanced-datatable/images/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/advanced-datatable/images/sort_asc_disabled.png -------------------------------------------------------------------------------- /static/js/advanced-datatable/images/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/advanced-datatable/images/sort_desc_disabled.png -------------------------------------------------------------------------------- /static/js/advanced-datatable/images/forward_enabled_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/js/advanced-datatable/images/forward_enabled_hover.png -------------------------------------------------------------------------------- /static/keditor/plugins/multiimage/images/select-files-en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/multiimage/images/select-files-en.png -------------------------------------------------------------------------------- /static/keditor/plugins/multiimage/images/select-files-zh_CN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/keditor/plugins/multiimage/images/select-files-zh_CN.png -------------------------------------------------------------------------------- /static/uploadfile/2017-3/28/48b77d930cb7a02824874ed9c6be434c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/uploadfile/2017-3/28/48b77d930cb7a02824874ed9c6be434c.jpg -------------------------------------------------------------------------------- /static/uploadfile/2017-3/28/5b41faa955a4c1acdb6d7e6c116bce2f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/uploadfile/2017-3/28/5b41faa955a4c1acdb6d7e6c116bce2f.jpg -------------------------------------------------------------------------------- /static/uploadfile/2017-3/28/66ca879b967a225cf8ef76736dcd59ca.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/uploadfile/2017-3/28/66ca879b967a225cf8ef76736dcd59ca.png -------------------------------------------------------------------------------- /static/uploadfile/2017-3/28/6b4b9957ffbd6ec1c8515025fba39818.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/uploadfile/2017-3/28/6b4b9957ffbd6ec1c8515025fba39818.jpg -------------------------------------------------------------------------------- /static/uploadfile/2017-3/28/73434f8343c3780b5e8af114e8825b9c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/uploadfile/2017-3/28/73434f8343c3780b5e8af114e8825b9c.jpg -------------------------------------------------------------------------------- /static/uploadfile/2017-3/28/eac2a34d2cd6f3d0df1b233a0f589bce.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/uploadfile/2017-3/28/eac2a34d2cd6f3d0df1b233a0f589bce.jpg -------------------------------------------------------------------------------- /static/uploadfile/2017-3/28/f739b6c6351a82a4953d8d8b44cd426d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/uploadfile/2017-3/28/f739b6c6351a82a4953d8d8b44cd426d.jpg -------------------------------------------------------------------------------- /views/inc/foot-info.tpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/uploadfile/2017-3/28/5b41faa955a4c1acdb6d7e6c116bce2f-cropper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/OPMS/HEAD/static/uploadfile/2017-3/28/5b41faa955a4c1acdb6d7e6c116bce2f-cropper.jpg -------------------------------------------------------------------------------- /models/init.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | import ( 4 | "github.com/astaxie/beego" 5 | ) 6 | 7 | func TableName(name string) string { 8 | return beego.AppConfig.String("mysqlpre") + name 9 | } 10 | -------------------------------------------------------------------------------- /views/users/nav.tpl: -------------------------------------------------------------------------------- 1 | 员工部门职称公告权限 -------------------------------------------------------------------------------- /views/inc/checkwork-nav.tpl: -------------------------------------------------------------------------------- 1 | 请假加班报销出差外出物品 -------------------------------------------------------------------------------- /static/keditor/plugins/template/html/1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

8 | 在此处输入标题 9 |

10 |

11 | 在此处输入内容 12 |

13 | 14 | -------------------------------------------------------------------------------- /static/js/dynamic_table_init.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | 3 | $('#dynamic-table').dataTable( { 4 | "bPaginate": false, 5 | "bFilter": false, 6 | "bInfo": false, 7 | "sInfoEmpty":"无", 8 | "sZeroRecords": "没有检索到数据", 9 | "aaSorting": [[ 4, "desc" ]] 10 | } ); 11 | 12 | 13 | } ); -------------------------------------------------------------------------------- /views/inc/my-nav.tpl: -------------------------------------------------------------------------------- 1 |
2 | 9 |
-------------------------------------------------------------------------------- /views/inc/foot.tpl: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /static/keditor/plugins/template/html/3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

8 | 在此处输入内容 9 |

10 |
    11 |
  1. 12 | 描述1 13 |
  2. 14 |
  3. 15 | 描述2 16 |
  4. 17 |
  5. 18 | 描述3 19 |
  6. 20 |
21 |

22 | 在此处输入内容 23 |

24 | 35 | 36 | -------------------------------------------------------------------------------- /views/projects/nav.tpl: -------------------------------------------------------------------------------- 1 | 团队 需求 任务 Bug 文档 版本 报表 -------------------------------------------------------------------------------- /utils/encrypt.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | "crypto/md5" 5 | "crypto/rand" 6 | "encoding/base64" 7 | "encoding/hex" 8 | "io" 9 | ) 10 | 11 | //md5方法 12 | func Md5(s string) string { 13 | h := md5.New() 14 | h.Write([]byte(s)) 15 | return hex.EncodeToString(h.Sum(nil)) 16 | } 17 | 18 | //Guid方法 19 | func GetGuid() string { 20 | b := make([]byte, 48) 21 | 22 | if _, err := io.ReadFull(rand.Reader, b); err != nil { 23 | return "" 24 | } 25 | return Md5(base64.URLEncoding.EncodeToString(b)) 26 | } 27 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.kr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Korean translation for bootstrap-datetimepicker 3 | * Gu Youn 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['kr'] = { 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 | suffix: [], 13 | meridiem: [] 14 | }; 15 | }(jQuery)); 16 | -------------------------------------------------------------------------------- /static/keditor/plugins/template/html/2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

8 | 标题 9 |

10 | 11 | 12 | 13 | 16 | 19 | 20 | 21 | 24 | 27 | 28 | 29 | 32 | 35 | 36 | 37 |
14 |

标题1

15 |
17 |

标题1

18 |
22 | 内容1 23 | 25 | 内容2 26 |
30 | 内容3 31 | 33 | 内容4 34 |
38 |

39 | 表格说明 40 |

41 | 42 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/keditor/plugins/hide/hide.js: -------------------------------------------------------------------------------- 1 | KindEditor.plugin('hide', function(K) { 2 | var editor = this, name = 'hide'; 3 | var content = '', newcontent = '', tmp = ''; 4 | // 点击图标时执行 5 | editor.clickToolbar(name, function() { 6 | //editor.insertHtml(1); 7 | //alert(editor.cmd.range.startOffset+' '+editor.cmd.range.endOffset); 8 | content = editor.html(); 9 | var str = editor.selectedHtml(); 10 | 11 | if (str) { 12 | newcontent = content.replace(editor.selectedHtml(),''+str+''); 13 | editor.html(newcontent); 14 | } 15 | //alert(newcontent); 16 | //alert(editor.selectedHtml()); 17 | }); 18 | }); -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.id.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Bahasa translation for bootstrap-datetimepicker 3 | * Azwar Akbar 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['id'] = { 7 | days: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu"], 8 | daysShort: ["Mgu", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab", "Mgu"], 9 | daysMin: ["Mg", "Sn", "Sl", "Ra", "Ka", "Ju", "Sa", "Mg"], 10 | months: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ags", "Sep", "Okt", "Nov", "Des"], 12 | suffix: [], 13 | meridiem: [] 14 | }; 15 | }(jQuery)); 16 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /views/inc/notice-dialog.tpl: -------------------------------------------------------------------------------- 1 | 19 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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)); -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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)); -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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)); -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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)); -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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)); -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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", "Pia", "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 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /initial/sql.go: -------------------------------------------------------------------------------- 1 | package initial 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/astaxie/beego" 7 | "github.com/astaxie/beego/orm" 8 | _ "github.com/go-sql-driver/mysql" 9 | ) 10 | 11 | func InitSql() { 12 | user := beego.AppConfig.String("mysqluser") 13 | passwd := beego.AppConfig.String("mysqlpass") 14 | host := beego.AppConfig.String("mysqlurls") 15 | port, err := beego.AppConfig.Int("mysqlport") 16 | dbname := beego.AppConfig.String("mysqldb") 17 | if nil != err { 18 | port = 3306 19 | } 20 | if beego.AppConfig.String("runmode") == "dev" { 21 | orm.Debug = true 22 | } 23 | orm.RegisterDriver("mysql", orm.DRMySQL) 24 | //orm.RegisterDataBase("default", "mysql", "root:@/blog?charset=utf8", 30) 25 | orm.RegisterDataBase("default", "mysql", fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8", user, passwd, host, port, dbname)) 26 | 27 | } 28 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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" 17 | }; 18 | }(jQuery)); 19 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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" 17 | }; 18 | }(jQuery)); 19 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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)); -------------------------------------------------------------------------------- /conf/app.conf: -------------------------------------------------------------------------------- 1 | appname = opms 2 | httpport = 8088 3 | runmode = dev 4 | copyrequestbody = true 5 | 6 | domain = "localhost:8088" 7 | 8 | mysqluser = "root" 9 | mysqlpass = "" 10 | mysqlurls = "127.0.0.1" 11 | mysqldb = "aiopms" 12 | mysqlpre = "pms_" 13 | mysqlport = "3306" 14 | 15 | pageoffset = 15 16 | 17 | sessionon = true 18 | #memory file etc... 19 | sessionprovider = file 20 | sessionproviderconfig = "./tmp" 21 | sessiongcmaxlifetime = 31536000 22 | sessioncookielifetime = 31536000 23 | 24 | cache = redis 25 | redis_host = "127.0.0.1:6379" 26 | cache_expire = 600 27 | 28 | mailfrom = test@163.com 29 | mailhost = smtp.163.com:25 30 | mailuser = test@163.com 31 | mailpassword = testtest 32 | 33 | clockon = "09:00:59" 34 | clockoff = "18:00:59" 35 | clockover = "19:30:59" 36 | 37 | globaltitle = "OPMS管理系统" 38 | globalkeyword = "OPMS,管理系统" 39 | globaldescription = "OPMS管理系统,由Lock开发;联系方式:903561702@qq.com,QQ讨论群:451420312" -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-datetimepicker/js/locales/bootstrap-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 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "kartik-v/bootstrap-fileinput", 3 | "description": "An enhanced HTML 5 file input for Bootstrap 3.x with features for file preview for many file types, multiple selection, ajax uploads, and more.", 4 | "keywords": ["bootstrap", "jquery", "file", "input", "preview", "upload", "image", "multiple", "ajax", "delete", "progress"], 5 | "homepage": "https://github.com/kartik-v/bootstrap-fileinput", 6 | "license": "BSD-3-Clause", 7 | "authors": [ 8 | { 9 | "name": "Kartik Visweswaran", 10 | "email": "kartikv2@gmail.com", 11 | "homepage": "http://www.krajee.com/" 12 | } 13 | ], 14 | "autoload": { 15 | "psr-4": { 16 | "kartik\\plugins\\fileinput\\": "" 17 | } 18 | }, 19 | "extra": { 20 | "branch-alias": { 21 | "dev-master": "4.3.x-dev" 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /views/inc/meta.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 21 | -------------------------------------------------------------------------------- /views/users/login.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{config "String" "globaltitle" ""}} 6 | {{template "inc/meta.tpl" .}} 7 | 10 | 11 |
12 | 23 |
24 | {{template "inc/foot.tpl" .}} 25 | 26 | 27 | -------------------------------------------------------------------------------- /views/inc/ccid.tpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/keditor/plugins/code/prettify.css: -------------------------------------------------------------------------------- 1 | .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} 2 | 3 | pre.prettyprint { 4 | border: 0; 5 | border-left: 3px solid rgb(204, 204, 204); 6 | margin-left: 2em; 7 | padding: 0.5em; 8 | font-size: 110%; 9 | display: block; 10 | font-family: "Consolas", "Monaco", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; 11 | margin: 1em 0px; 12 | white-space: pre; 13 | } 14 | -------------------------------------------------------------------------------- /static/js/advanced-datatable/src/model/model.search.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | /** 5 | * Template object for the way in which DataTables holds information about 6 | * search information for the global filter and individual column filters. 7 | * @namespace 8 | */ 9 | DataTable.models.oSearch = { 10 | /** 11 | * Flag to indicate if the filtering should be case insensitive or not 12 | * @type boolean 13 | * @default true 14 | */ 15 | "bCaseInsensitive": true, 16 | 17 | /** 18 | * Applied search term 19 | * @type string 20 | * @default Empty string 21 | */ 22 | "sSearch": "", 23 | 24 | /** 25 | * Flag to indicate if the search term should be interpreted as a 26 | * regular expression (true) or not (false) and therefore and special 27 | * regex characters escaped. 28 | * @type boolean 29 | * @default false 30 | */ 31 | "bRegex": false, 32 | 33 | /** 34 | * Flag to indicate if DataTables is to use its smart filtering or not. 35 | * @type boolean 36 | * @default true 37 | */ 38 | "bSmart": true 39 | }; 40 | 41 | -------------------------------------------------------------------------------- /views/404.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | OPMS管理系统 6 | 7 | 8 | 9 | 10 | 11 | 15 | 16 | 17 |
18 |
19 |
20 |
21 |

22 |

404页面

23 |

你访问的页面已经飞到月球去了!

24 | Back To Home
25 |
26 |
27 |
28 | 29 | -------------------------------------------------------------------------------- /tests/default_test.go: -------------------------------------------------------------------------------- 1 | package test 2 | 3 | import ( 4 | "net/http" 5 | "net/http/httptest" 6 | _ "opms/routers" 7 | "path/filepath" 8 | "runtime" 9 | "testing" 10 | 11 | "github.com/astaxie/beego" 12 | . "github.com/smartystreets/goconvey/convey" 13 | ) 14 | 15 | func init() { 16 | _, file, _, _ := runtime.Caller(1) 17 | apppath, _ := filepath.Abs(filepath.Dir(filepath.Join(file, ".."+string(filepath.Separator)))) 18 | beego.TestBeegoInit(apppath) 19 | } 20 | 21 | // TestMain is a sample to run an endpoint test 22 | func TestMain(t *testing.T) { 23 | r, _ := http.NewRequest("GET", "/", nil) 24 | w := httptest.NewRecorder() 25 | beego.BeeApp.Handlers.ServeHTTP(w, r) 26 | 27 | beego.Trace("testing", "TestMain", "Code[%d]\n%s", w.Code, w.Body.String()) 28 | 29 | Convey("Subject: Test Station Endpoint\n", t, func() { 30 | Convey("Status Code Should Be 200", func() { 31 | So(w.Code, ShouldEqual, 200) 32 | }) 33 | Convey("The Result Should Not Be Empty", func() { 34 | So(w.Body.Len(), ShouldBeGreaterThan, 0) 35 | }) 36 | }) 37 | } 38 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/plugins/canvas-to-blob.min.js: -------------------------------------------------------------------------------- 1 | !function(a){"use strict";var b=a.HTMLCanvasElement&&a.HTMLCanvasElement.prototype,c=a.Blob&&function(){try{return Boolean(new Blob)}catch(a){return!1}}(),d=c&&a.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(a){return!1}}(),e=a.BlobBuilder||a.WebKitBlobBuilder||a.MozBlobBuilder||a.MSBlobBuilder,f=(c||e)&&a.atob&&a.ArrayBuffer&&a.Uint8Array&&function(a){var b,f,g,h,i,j;for(b=a.split(",")[0].indexOf("base64")>=0?atob(a.split(",")[1]):decodeURIComponent(a.split(",")[1]),f=new ArrayBuffer(b.length),g=new Uint8Array(f),h=0;h 2 | 3 | 4 | 5 | OPMS管理系统 6 | 7 | 8 | 9 | 10 | 11 | 15 | 16 | 17 |
18 |
19 |
20 |
21 |

22 |

无权限访问或操作受限

23 |

你没有权限访问此页面或操作受限,请联系超级管理员!

24 | Back To Home
25 |
26 |
27 |
28 | 29 | -------------------------------------------------------------------------------- /static/keditor/plugins/pagebreak/pagebreak.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('pagebreak', function(K) { 11 | var self = this, name = 'pagebreak'; 12 | self.clickToolbar(name, function() { 13 | var cmd = self.cmd, range = cmd.range; 14 | self.focus(); 15 | range.enlarge(true); 16 | cmd.split(true); 17 | var tail = self.newlineTag == 'br' || K.WEBKIT ? '' : '

'; 18 | self.insertHtml('
' + tail); 19 | if (tail !== '') { 20 | var p = K('#__kindeditor_tail_tag__', self.edit.doc); 21 | range.selectNodeContents(p[0]); 22 | p.removeAttr('id'); 23 | cmd.select(); 24 | } 25 | }); 26 | }); 27 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/nuget/Package.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | bootstrap-fileinput 5 | bootstrap-fileinput 6 | 4.3.2.1 7 | Kartik Visweswaran 8 | Kartik Visweswaran 9 | https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 10 | https://github.com/kartik-v/bootstrap-fileinput 11 | http://getbootstrap.com/favicon.ico 12 | false 13 | An enhanced HTML 5 file input for Bootstrap 3.x with file preview for various files, offers multiple selection, and more. 14 | https://github.com/kartik-v/bootstrap-fileinput/blob/master/CHANGE.md 15 | Copyright 2014 - 2016 16 | bootstrap bootstrap-fileinput 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap-fileinput", 3 | "version": "4.3.2", 4 | "homepage": "https://github.com/kartik-v/bootstrap-fileinput", 5 | "authors": [ 6 | "Kartik Visweswaran " 7 | ], 8 | "description": "An enhanced HTML 5 file input for Bootstrap 3.x with file preview, multiple selection, ajax uploads, and more features.", 9 | "repository" : { 10 | "type": "git", 11 | "url": "https://github.com/kartik-v/bootstrap-fileinput.git" 12 | }, 13 | "bugs": { 14 | "url": "https://github.com/kartik-v/bootstrap-fileinput/issues" 15 | }, 16 | "keywords": [ 17 | "bootstrap", 18 | "file", 19 | "input", 20 | "preview", 21 | "image", 22 | "upload", 23 | "ajax", 24 | "multiple", 25 | "delete", 26 | "progress", 27 | "gallery" 28 | ], 29 | "main": "./js/fileinput.js", 30 | "peerDependencies": { 31 | "jquery": ">= 1.9.0", 32 | "bootstrap": "~3" 33 | }, 34 | "license": "BSD-3-Clause" 35 | } 36 | -------------------------------------------------------------------------------- /views/inc/page.tpl: -------------------------------------------------------------------------------- 1 | {{if .paginator.HasPages}} 2 |
    3 | {{if .paginator.HasPrev}} 4 |
  • 首页
  • 5 |
  • «
  • 6 | {{else}} 7 |
  • 首页
  • 8 |
  • «
  • 9 | {{end}} 10 | {{range $index, $page := .paginator.Pages}} {{$page}} 11 | 12 | {{end}} 13 | {{if .paginator.HasNext}} 14 |
  • »
  • 15 |
  • 尾页
  • 16 | {{else}} 17 |
  • »
  • 18 |
  • 尾页
  • 19 | {{end}} 20 |
21 | {{end}} -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap-fileinput", 3 | "version": "4.3.2", 4 | "homepage": "https://github.com/kartik-v/bootstrap-fileinput", 5 | "authors": [ 6 | "Kartik Visweswaran " 7 | ], 8 | "description": "An enhanced HTML 5 file input for Bootstrap 3.x with file preview, multiple selection, ajax uploads, and more features.", 9 | "main": [ 10 | "./css/fileinput.min.css", 11 | "./js/fileinput.min.js" 12 | ], 13 | "keywords": [ 14 | "bootstrap", 15 | "file", 16 | "input", 17 | "preview", 18 | "image", 19 | "upload", 20 | "ajax", 21 | "multiple", 22 | "delete", 23 | "progress", 24 | "gallery" 25 | ], 26 | "dependencies": { 27 | "jquery": ">= 1.9.0", 28 | "bootstrap": "~3" 29 | }, 30 | "license": "BSD-3-Clause", 31 | "ignore": [ 32 | "**/.*", 33 | "node_modules", 34 | "composer.json", 35 | "examples", 36 | "bower_components", 37 | "test", 38 | "tests" 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "html/template" 5 | "net/http" 6 | _ "opms/initial" 7 | _ "opms/routers" 8 | 9 | "github.com/astaxie/beego" 10 | "github.com/astaxie/beego/context" 11 | ) 12 | 13 | func main() { 14 | beego.InsertFilter("/*", beego.BeforeRouter, FilterUser) 15 | beego.ErrorHandler("404", page_not_found) 16 | beego.ErrorHandler("401", page_note_permission) 17 | beego.Run() 18 | } 19 | 20 | var FilterUser = func(ctx *context.Context) { 21 | _, ok := ctx.Input.Session("userLogin").(string) 22 | if !ok && ctx.Request.RequestURI != "/login" { 23 | ctx.Redirect(302, "/login") 24 | } 25 | } 26 | 27 | func page_not_found(rw http.ResponseWriter, r *http.Request) { 28 | t, _ := template.New("404.tpl").ParseFiles("views/404.tpl") 29 | data := make(map[string]interface{}) 30 | //data["content"] = "page not found" 31 | t.Execute(rw, data) 32 | } 33 | 34 | func page_note_permission(rw http.ResponseWriter, r *http.Request) { 35 | t, _ := template.New("401.tpl").ParseFiles("views/401.tpl") 36 | data := make(map[string]interface{}) 37 | //data["content"] = "你没有权限访问此页面,请联系超级管理员。或去开启我的OPMS之旅。" 38 | t.Execute(rw, data) 39 | } 40 | -------------------------------------------------------------------------------- /static/keditor/plugins/preview/preview.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('preview', function(K) { 11 | var self = this, name = 'preview', undefined; 12 | self.clickToolbar(name, function() { 13 | var lang = self.lang(name + '.'), 14 | html = '
' + 15 | '' + 16 | '
', 17 | dialog = self.createDialog({ 18 | name : name, 19 | width : 750, 20 | title : self.lang(name), 21 | body : html 22 | }), 23 | iframe = K('iframe', dialog.div), 24 | doc = K.iframeDoc(iframe); 25 | doc.open(); 26 | doc.write(self.fullHtml()); 27 | doc.close(); 28 | K(doc.body).css('background-color', '#FFF'); 29 | iframe[0].contentWindow.focus(); 30 | }); 31 | }); 32 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/nuget/build.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | NuGet Update -self 4 | REM remove package content folder 5 | rmdir /s /q content 6 | 7 | REM create new package content folder 8 | mkdir content 9 | 10 | REM create sub folder for js files 11 | mkdir content\Scripts 12 | 13 | REM create sub folders for css and img files 14 | mkdir content\Content 15 | mkdir content\Content\bootstrap-fileinput 16 | 17 | REM delete the previous package versions 18 | REM del bootstrap-fileinput.* 19 | 20 | REM copy the content to the destination folders 21 | xcopy ..\js content\Scripts /D /E /C /R /I /K /Y 22 | xcopy ..\css content\Content\bootstrap-fileinput\css /D /E /C /R /I /K /Y 23 | xcopy ..\img content\Content\bootstrap-fileinput\img /D /E /C /R /I /K /Y 24 | xcopy ..\themes content\Content\bootstrap-fileinput\themes /D /E /C /R /I /K /Y 25 | xcopy ..\sass content\Content\bootstrap-fileinput\sass /D /E /C /R /I /K /Y 26 | 27 | REM create a new package 28 | NuGet Pack Package.nuspec -Exclude NuGet.exe;build.bat 29 | 30 | REM Upload the new package 31 | REM for %%f in (content\Content\bootstrap-fileinput.*) do ( 32 | REM NuGet Push %%f 33 | REM rmdir /s /q content 34 | REM del %%f 35 | REM ) 36 | -------------------------------------------------------------------------------- /views/inc/user-dialog.tpl: -------------------------------------------------------------------------------- 1 | 23 | 29 | -------------------------------------------------------------------------------- /static/js/datepicker-zh-CN.js: -------------------------------------------------------------------------------- 1 | /* Chinese initialisation for the jQuery UI date picker plugin. */ 2 | /* Written by Ressol (ressol@gmail.com). */ 3 | ( function( factory ) { 4 | if ( typeof define === "function" && define.amd ) { 5 | 6 | // AMD. Register as an anonymous module. 7 | define( [ "../widgets/datepicker" ], factory ); 8 | } else { 9 | 10 | // Browser globals 11 | factory( jQuery.datepicker ); 12 | } 13 | }( function( datepicker ) { 14 | 15 | datepicker.regional[ "zh-CN" ] = { 16 | closeText: "关闭", 17 | prevText: "<上月", 18 | nextText: "下月>", 19 | currentText: "今天", 20 | monthNames: [ "一月","二月","三月","四月","五月","六月", 21 | "七月","八月","九月","十月","十一月","十二月" ], 22 | monthNamesShort: [ "一月","二月","三月","四月","五月","六月", 23 | "七月","八月","九月","十月","十一月","十二月" ], 24 | dayNames: [ "星期日","星期一","星期二","星期三","星期四","星期五","星期六" ], 25 | dayNamesShort: [ "周日","周一","周二","周三","周四","周五","周六" ], 26 | dayNamesMin: [ "日","一","二","三","四","五","六" ], 27 | weekHeader: "周", 28 | dateFormat: "yy/mm/dd", 29 | firstDay: 1, 30 | isRTL: false, 31 | showMonthAfterYear: true, 32 | yearSuffix: "年" }; 33 | datepicker.setDefaults( datepicker.regional[ "zh-CN" ] ); 34 | 35 | return datepicker.regional[ "zh-CN" ]; 36 | 37 | } ) ); 38 | -------------------------------------------------------------------------------- /models/knowledges/knowledgesSorts.go: -------------------------------------------------------------------------------- 1 | package knowledges 2 | 3 | import ( 4 | //"fmt" 5 | "opms/models" 6 | "opms/utils" 7 | //"time" 8 | 9 | "github.com/astaxie/beego" 10 | "github.com/astaxie/beego/orm" 11 | ) 12 | 13 | type KnowledgesSort struct { 14 | Id int64 `orm:"pk;column(sortid);"` 15 | Name string 16 | Desc string 17 | Status int 18 | } 19 | 20 | func (this *KnowledgesSort) TableName() string { 21 | return models.TableName("knowledges_sort") 22 | } 23 | 24 | func init() { 25 | orm.RegisterModel(new(KnowledgesSort)) 26 | } 27 | 28 | func ListKnowledgeSort() (num int64, err error, ops []KnowledgesSort) { 29 | var sort []KnowledgesSort 30 | var errs error 31 | 32 | page := 1 33 | offset := 100 34 | 35 | start := (page - 1) * offset 36 | 37 | errs = utils.GetCache("ListKnowledgeSort", &sort) 38 | if errs != nil { 39 | cache_expire, _ := beego.AppConfig.Int("cache_expire") 40 | o := orm.NewOrm() 41 | o.Using("default") 42 | qs := o.QueryTable(models.TableName("knowledges_sort")) 43 | cond := orm.NewCondition() 44 | cond = cond.And("status", 1) 45 | qs = qs.SetCond(cond) 46 | 47 | qs.Limit(offset, start).All(&sort) 48 | utils.SetCache("ListKnowledgeSort", sort, cache_expire) 49 | } 50 | return num, errs, sort 51 | } 52 | -------------------------------------------------------------------------------- /views/leaves/approval-index.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{config "String" "globaltitle" ""}} 6 | {{template "inc/meta.tpl" .}} 7 | 11 | 12 | 13 |
{{template "inc/left.tpl" .}} 14 | 15 |
16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | {{template "inc/user-info.tpl" .}}
24 | 25 | 26 |
27 |
28 |
29 |

轻轻松松走完流程审核

30 |

31 | {{template "inc/checkwork-nav.tpl" .}} 32 |
33 |
34 |
35 | 36 |
37 | 38 |
39 | {{template "inc/foot.tpl" .}} 40 | 41 | 42 | -------------------------------------------------------------------------------- /static/keditor/plugins/clearhtml/clearhtml.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('clearhtml', function(K) { 11 | var self = this, name = 'clearhtml'; 12 | self.clickToolbar(name, function() { 13 | self.focus(); 14 | var html = self.html(); 15 | html = html.replace(/(]*>)([\s\S]*?)(<\/script>)/ig, ''); 16 | html = html.replace(/(]*>)([\s\S]*?)(<\/style>)/ig, ''); 17 | html = K.formatHtml(html, { 18 | a : ['href', 'target'], 19 | embed : ['src', 'width', 'height', 'type', 'loop', 'autostart', 'quality', '.width', '.height', 'align', 'allowscriptaccess'], 20 | img : ['src', 'width', 'height', 'border', 'alt', 'title', '.width', '.height'], 21 | table : ['border'], 22 | 'td,th' : ['rowspan', 'colspan'], 23 | 'div,hr,br,tbody,tr,p,ol,ul,li,blockquote,h1,h2,h3,h4,h5,h6' : [] 24 | }); 25 | self.html(html); 26 | self.cmd.selection(true); 27 | self.addBookmark(); 28 | }); 29 | }); 30 | -------------------------------------------------------------------------------- /static/keditor/plugins/lineheight/lineheight.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('lineheight', function(K) { 11 | var self = this, name = 'lineheight', lang = self.lang(name + '.'); 12 | self.clickToolbar(name, function() { 13 | var curVal = '', commonNode = self.cmd.commonNode({'*' : '.line-height'}); 14 | if (commonNode) { 15 | curVal = commonNode.css('line-height'); 16 | } 17 | var menu = self.createMenu({ 18 | name : name, 19 | width : 150 20 | }); 21 | K.each(lang.lineHeight, function(i, row) { 22 | K.each(row, function(key, val) { 23 | menu.addItem({ 24 | title : val, 25 | checked : curVal === key, 26 | click : function() { 27 | self.cmd.toggle('', { 28 | span : '.line-height=' + key 29 | }); 30 | self.updateState(); 31 | self.addBookmark(); 32 | self.hideMenu(); 33 | } 34 | }); 35 | }); 36 | }); 37 | }); 38 | }); 39 | -------------------------------------------------------------------------------- /utils/date.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | //"fmt" 5 | "time" 6 | ) 7 | 8 | /* 9 | func GetDate(timestamp int64) string { 10 | tm := time.Unix(timestamp, 0) 11 | return tm.Format("2006-01-02 15:04") 12 | } 13 | func GetDateMH(timestamp int64) string { 14 | tm := time.Unix(timestamp, 0) 15 | return tm.Format("01-02 03:04") 16 | }*/ 17 | 18 | func GetDateFormat(timestamp int64, format string) string { 19 | if timestamp <= 0 { 20 | return "" 21 | } 22 | tm := time.Unix(timestamp, 0) 23 | return tm.Format(format) 24 | } 25 | 26 | func GetDate(timestamp int64) string { 27 | if timestamp <= 0 { 28 | return "" 29 | } 30 | tm := time.Unix(timestamp, 0) 31 | return tm.Format("2006-01-02") 32 | } 33 | 34 | func GetDateMH(timestamp int64) string { 35 | if timestamp <= 0 { 36 | return "" 37 | } 38 | tm := time.Unix(timestamp, 0) 39 | return tm.Format("2006-01-02 15:04") 40 | } 41 | 42 | func GetTimeParse(times string) int64 { 43 | if "" == times { 44 | return 0 45 | } 46 | loc, _ := time.LoadLocation("Local") 47 | parse, _ := time.ParseInLocation("2006-01-02 15:04", times, loc) 48 | return parse.Unix() 49 | } 50 | 51 | func GetDateParse(dates string) int64 { 52 | if "" == dates { 53 | return 0 54 | } 55 | loc, _ := time.LoadLocation("Local") 56 | parse, _ := time.ParseInLocation("2006-01-02", dates, loc) 57 | return parse.Unix() 58 | } 59 | -------------------------------------------------------------------------------- /static/js/advanced-datatable/src/core/core.processing.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | /** 4 | * Generate the node required for the processing node 5 | * @param {object} oSettings dataTables settings object 6 | * @returns {node} Processing element 7 | * @memberof DataTable#oApi 8 | */ 9 | function _fnFeatureHtmlProcessing ( oSettings ) 10 | { 11 | var nProcessing = document.createElement( 'div' ); 12 | 13 | if ( !oSettings.aanFeatures.r ) 14 | { 15 | nProcessing.id = oSettings.sTableId+'_processing'; 16 | } 17 | nProcessing.innerHTML = oSettings.oLanguage.sProcessing; 18 | nProcessing.className = oSettings.oClasses.sProcessing; 19 | oSettings.nTable.parentNode.insertBefore( nProcessing, oSettings.nTable ); 20 | 21 | return nProcessing; 22 | } 23 | 24 | 25 | /** 26 | * Display or hide the processing indicator 27 | * @param {object} oSettings dataTables settings object 28 | * @param {bool} bShow Show the processing indicator (true) or not (false) 29 | * @memberof DataTable#oApi 30 | */ 31 | function _fnProcessingDisplay ( oSettings, bShow ) 32 | { 33 | if ( oSettings.oFeatures.bProcessing ) 34 | { 35 | var an = oSettings.aanFeatures.r; 36 | for ( var i=0, iLen=an.length ; i 2 | 3 | 4 | 5 | Baidu Maps 6 | 10 | 11 | 39 | 40 | 41 |
42 | 43 | 44 | -------------------------------------------------------------------------------- /views/index.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{config "String" "globaltitle" ""}} 6 | {{template "inc/meta.tpl" .}} 7 | 8 | 9 |
{{template "inc/left.tpl" .}} 10 | 11 |
12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | {{template "inc/user-info.tpl" .}}
20 | 21 | 22 |
23 |
24 |
25 |

让项目管理与OA办公更加轻便!

26 |

27 | 开启OPMS之旅 28 |

29 | OPMS官网 · OPMS手册 · 版本更新 30 | 31 |
32 |
33 |
34 | 35 |
36 | 37 |
38 | {{template "inc/foot.tpl" .}} 39 | 40 | 41 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OPMS 2 | OPMS项目+OA管理系统 3 | 4 | OPMS管理系统是意思是PMS+OA,项目+办公管理。符合日常项目和OA管理,特别适合扁平化管理的微中小企业。 5 | 6 | OPMS采用是Beego框架和Bootstrap前端框架构建立,适合不同平台,不同的终端,简单方便实用的原则。数据库采用Mysql,缓存采用Redis。在部署过程中,如果没有Redis,不影响使用。 7 | 8 | 本系统是免费的软件,部署很方便。 9 | 10 | OPMS的由来: 11 | 12 | 公司之前用的项目管理软件是禅道PMS,功能是很强大,学习成本也大。 13 | 14 | 在实际的项目应用中,有许多功能点都用不到或者很少用,可能它的系统是面向不同行业项目管理吧。 15 | 16 | 结合实际的项目要求和人事的日常工作经验要求,于是OPMS管理系统诞生了! 17 | # 创新设计·全新功能 织蝶云新品上线 18 | 1. 织蝶云项目管理 19 | 需求、任务、Bug、看板、思维导图、甘特图、日历、报表、列表多种任务视图 20 | 21 | 2. 织蝶云客户CRM 22 | 客户、公海、线索、商机、合同、售后、目标、统计多种嵌套功能 23 | 24 | 3. 织蝶云审批流程 25 | 智能工作流程及表单设计,自定权限控制,让每个流程实现自动化 26 | 27 | 4. 织蝶云工作报告 28 | 人性化的报告展示,轻松解决日报、周报、月报发布审阅,智能统计报告 29 | 30 | 5. OA管理 31 | 考勤、日程、文档 、知识、相册、人事简历、公告、IM聊天等丰富的功能 32 | 33 | # 新品地址:https://www.zhidieyun.com/ 34 | 35 | OPMS官网: 36 | 37 | http://opms.milu365.cn/ 38 | 39 | 手册文档: 40 | 41 | http://opms.docs.milu365.cn/ 42 | 43 | 在线体验: 44 | 45 | http://opms.demo.milu365.cn/ 46 | 47 | 加QQ群(871221961)获取用户名和密码 48 | 49 | 技术讨论群: 50 | 51 | # QQ群1(已满):451420312 52 | # QQ群2(已满):592130397 53 | # QQ群3(已满):651479008 54 | # QQ群4(已满):660307579 55 | # QQ群5(已满): 753661431 56 | # QQ群6: 871221961 57 | 58 | # 捐赠 59 | 支付宝: 60 | 61 | ![image](https://github.com/lock-upme/OPMS/blob/master/static/img/qrcode_alipay.png) 62 | 63 | 微信: 64 | 65 | ![image](https://github.com/lock-upme/OPMS/blob/master/static/img/qrcode_wechat.png) 66 | 67 | # 效果图预览 68 | 69 | ![image](https://github.com/lock-upme/OPMS/blob/master/static/img/opms-view.png) 70 | -------------------------------------------------------------------------------- /static/keditor/plugins/plainpaste/plainpaste.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('plainpaste', function(K) { 11 | var self = this, name = 'plainpaste'; 12 | self.clickToolbar(name, function() { 13 | var lang = self.lang(name + '.'), 14 | html = '
' + 15 | '
' + lang.comment + '
' + 16 | '' + 17 | '
', 18 | dialog = self.createDialog({ 19 | name : name, 20 | width : 450, 21 | title : self.lang(name), 22 | body : html, 23 | yesBtn : { 24 | name : self.lang('yes'), 25 | click : function(e) { 26 | var html = textarea.val(); 27 | html = K.escape(html); 28 | html = html.replace(/ {2}/g, '  '); 29 | if (self.newlineTag == 'p') { 30 | html = html.replace(/^/, '

').replace(/$/, '

').replace(/\n/g, '

'); 31 | } else { 32 | html = html.replace(/\n/g, '
$&'); 33 | } 34 | self.insertHtml(html).hideDialog().focus(); 35 | } 36 | } 37 | }), 38 | textarea = K('textarea', dialog.div); 39 | textarea[0].focus(); 40 | }); 41 | }); 42 | -------------------------------------------------------------------------------- /views/inc/left.tpl: -------------------------------------------------------------------------------- 1 | 2 |

3 | 4 | 5 |
OPMS管理系统
6 | 7 |
8 | 9 | 21 | 22 | 29 | 30 |
31 |
32 | 33 | -------------------------------------------------------------------------------- /static/css/jquery.stepy.css: -------------------------------------------------------------------------------- 1 | @CHARSET "UTF-8"; 2 | 3 | .button-back { float: left; } 4 | .button-next, .finish { float: right; } 5 | .button-back, .button-next, .finish { 6 | cursor: pointer; text-decoration: none; 7 | } 8 | 9 | .step { 10 | clear: left; 11 | -khtml-border-radius: 3px; -moz-border-radius: 3px; -opera-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; 12 | } 13 | .step label { color: #444; display: block;} 14 | .step legend { color: #4080BF; padding: 0 2px 3px 2px; margin-top: 10px; } 15 | .step input, .step textarea, .step select { margin-left: 7px; } 16 | 17 | .error-image { background: #f8f8f8 url('../images/error.png') no-repeat right top !important; } 18 | 19 | .stepy-titles { list-style: none; margin: 0; padding: 0; width: 100%; } 20 | .stepy-titles li { color: #DDD; cursor: pointer; float: left; padding: 10px 15px; } 21 | .stepy-titles li span { display: block; } 22 | .stepy-titles .current-step { color: #369; cursor: auto; } 23 | .stepy-titles li div{ font-size:18px;} 24 | 25 | /*** Optionaly (jQuery Validate) ***/ 26 | 27 | .error { background-color: #FAF4F4; } 28 | 29 | label.error { background: url('../images/alert.png') no-repeat 0 5px; color: #DE5130; display: block; float: left; margin: 3px 3px 0 10px; padding-left: 21px; padding-top: 2px; } 30 | 31 | .stepy-tab ul{ border-bottom:#ccc 1px solid; padding-left:10px;} 32 | .stepy-tab ul li.current-step{ border-left:#ccc 1px solid; border-top:#ccc 1px solid; border-right:#ccc 1px solid; border-bottom:#fff 1px solid; position:relative; top:1px; } 33 | 34 | .block-tabby ul { padding-left:10px;} 35 | .block-tabby ul li.current-step{ background:#f8f8f8; } 36 | -------------------------------------------------------------------------------- /static/js/advanced-datatable/src/ext/ext.sorting.js: -------------------------------------------------------------------------------- 1 | 2 | $.extend( DataTable.ext.oSort, { 3 | /* 4 | * text sorting 5 | */ 6 | "string-pre": function ( a ) 7 | { 8 | if ( typeof a != 'string' ) { 9 | a = (a !== null && a.toString) ? a.toString() : ''; 10 | } 11 | return a.toLowerCase(); 12 | }, 13 | 14 | "string-asc": function ( x, y ) 15 | { 16 | return ((x < y) ? -1 : ((x > y) ? 1 : 0)); 17 | }, 18 | 19 | "string-desc": function ( x, y ) 20 | { 21 | return ((x < y) ? 1 : ((x > y) ? -1 : 0)); 22 | }, 23 | 24 | 25 | /* 26 | * html sorting (ignore html tags) 27 | */ 28 | "html-pre": function ( a ) 29 | { 30 | return a.replace( /<.*?>/g, "" ).toLowerCase(); 31 | }, 32 | 33 | "html-asc": function ( x, y ) 34 | { 35 | return ((x < y) ? -1 : ((x > y) ? 1 : 0)); 36 | }, 37 | 38 | "html-desc": function ( x, y ) 39 | { 40 | return ((x < y) ? 1 : ((x > y) ? -1 : 0)); 41 | }, 42 | 43 | 44 | /* 45 | * date sorting 46 | */ 47 | "date-pre": function ( a ) 48 | { 49 | var x = Date.parse( a ); 50 | 51 | if ( isNaN(x) || x==="" ) 52 | { 53 | x = Date.parse( "01/01/1970 00:00:00" ); 54 | } 55 | return x; 56 | }, 57 | 58 | "date-asc": function ( x, y ) 59 | { 60 | return x - y; 61 | }, 62 | 63 | "date-desc": function ( x, y ) 64 | { 65 | return y - x; 66 | }, 67 | 68 | 69 | /* 70 | * numerical sorting 71 | */ 72 | "numeric-pre": function ( a ) 73 | { 74 | return (a=="-" || a==="") ? 0 : a*1; 75 | }, 76 | 77 | "numeric-asc": function ( x, y ) 78 | { 79 | return x - y; 80 | }, 81 | 82 | "numeric-desc": function ( x, y ) 83 | { 84 | return y - x; 85 | } 86 | } ); 87 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 - 2016, Kartik Visweswaran 2 | Krajee.com 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without modification, 6 | are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright notice, this 9 | list of conditions and the following disclaimer. 10 | 11 | * Redistributions in binary form must reproduce the above copyright notice, this 12 | list of conditions and the following disclaimer in the documentation and/or 13 | other materials provided with the distribution. 14 | 15 | * Neither the names of Kartik Visweswaran or Krajee nor the names of its 16 | contributors may be used to endorse or promote products derived from 17 | this software without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 23 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 26 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /static/keditor/plugins/anchor/anchor.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('anchor', function(K) { 11 | var self = this, name = 'anchor', lang = self.lang(name + '.'); 12 | self.plugin.anchor = { 13 | edit : function() { 14 | var html = ['
', 15 | '
', 16 | '', 17 | '', 18 | '
', 19 | '
'].join(''); 20 | var dialog = self.createDialog({ 21 | name : name, 22 | width : 300, 23 | title : self.lang(name), 24 | body : html, 25 | yesBtn : { 26 | name : self.lang('yes'), 27 | click : function(e) { 28 | self.insertHtml('').hideDialog().focus(); 29 | } 30 | } 31 | }); 32 | var div = dialog.div, 33 | nameBox = K('input[name="name"]', div); 34 | var img = self.plugin.getSelectedAnchor(); 35 | if (img) { 36 | nameBox.val(unescape(img.attr('data-ke-name'))); 37 | } 38 | nameBox[0].focus(); 39 | nameBox[0].select(); 40 | }, 41 | 'delete' : function() { 42 | self.plugin.getSelectedAnchor().remove(); 43 | } 44 | }; 45 | self.clickToolbar(name, self.plugin.anchor.edit); 46 | }); 47 | -------------------------------------------------------------------------------- /controllers/base.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | //"opms/initial" 5 | 6 | "fmt" 7 | . "opms/models/groups" 8 | . "opms/models/messages" 9 | "strconv" 10 | "strings" 11 | 12 | "github.com/astaxie/beego" 13 | ) 14 | 15 | type BaseController struct { 16 | beego.Controller 17 | IsLogin bool 18 | //UserInfo string 19 | UserUserId int64 20 | UserUsername string 21 | UserAvatar string 22 | } 23 | 24 | func (this *BaseController) Prepare() { 25 | userLogin := this.GetSession("userLogin") 26 | if userLogin == nil { 27 | this.IsLogin = false 28 | } else { 29 | this.IsLogin = true 30 | tmp := strings.Split((this.GetSession("userLogin")).(string), "||") 31 | 32 | userid, _ := strconv.Atoi(tmp[0]) 33 | longid := int64(userid) 34 | this.Data["LoginUserid"] = longid 35 | this.Data["LoginUsername"] = tmp[1] 36 | this.Data["LoginAvatar"] = tmp[2] 37 | 38 | this.UserUserId = longid 39 | this.UserUsername = tmp[1] 40 | this.UserAvatar = tmp[2] 41 | 42 | //this.Data["PermissionModel"] = this.GetSession("userPermissionModel") 43 | //this.Data["PermissionModelc"] = this.GetSession("userPermissionModelc") 44 | 45 | //消息 46 | msgcondArr := make(map[string]string) 47 | msgcondArr["touserid"] = fmt.Sprintf("%d", longid) 48 | msgcondArr["view"] = "1" 49 | countTopMessage := CountMessages(msgcondArr) 50 | _, _, topMessages := ListMessages(msgcondArr, 1, 10) 51 | this.Data["topMessages"] = topMessages 52 | this.Data["countTopMessage"] = countTopMessage 53 | 54 | //fmt.Println(this.GetSession("userGroupid").(string)) 55 | //左侧导航 56 | _, _, leftNav := ListGroupsUserPermission(this.GetSession("userGroupid").(string)) 57 | this.Data["leftNav"] = leftNav 58 | } 59 | this.Data["IsLogin"] = this.IsLogin 60 | } 61 | -------------------------------------------------------------------------------- /static/keditor/plugins/wordpaste/wordpaste.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('wordpaste', function(K) { 11 | var self = this, name = 'wordpaste'; 12 | self.clickToolbar(name, function() { 13 | var lang = self.lang(name + '.'), 14 | html = '
' + 15 | '
' + lang.comment + '
' + 16 | '' + 17 | '
', 18 | dialog = self.createDialog({ 19 | name : name, 20 | width : 450, 21 | title : self.lang(name), 22 | body : html, 23 | yesBtn : { 24 | name : self.lang('yes'), 25 | click : function(e) { 26 | var str = doc.body.innerHTML; 27 | str = K.clearMsWord(str, self.filterMode ? self.htmlTags : K.options.htmlTags); 28 | self.insertHtml(str).hideDialog().focus(); 29 | } 30 | } 31 | }), 32 | div = dialog.div, 33 | iframe = K('iframe', div), 34 | doc = K.iframeDoc(iframe); 35 | if (!K.IE) { 36 | doc.designMode = 'on'; 37 | } 38 | doc.open(); 39 | doc.write('WordPaste'); 40 | doc.write(''); 41 | if (!K.IE) { 42 | doc.write('
'); 43 | } 44 | doc.write(''); 45 | doc.close(); 46 | if (K.IE) { 47 | doc.body.contentEditable = 'true'; 48 | } 49 | iframe[0].contentWindow.focus(); 50 | }); 51 | }); 52 | -------------------------------------------------------------------------------- /models/albums/albumsComments.go: -------------------------------------------------------------------------------- 1 | package albums 2 | 3 | import ( 4 | "fmt" 5 | "opms/models" 6 | "opms/utils" 7 | "time" 8 | 9 | "github.com/astaxie/beego" 10 | "github.com/astaxie/beego/orm" 11 | ) 12 | 13 | type AlbumsComment struct { 14 | Id int64 `orm:"pk;column(comtid);"` 15 | Userid int64 16 | Albumid int64 17 | Content string 18 | Created int64 19 | Status int 20 | } 21 | 22 | func (this *AlbumsComment) TableName() string { 23 | return models.TableName("albums_comment") 24 | } 25 | 26 | func init() { 27 | orm.RegisterModel(new(AlbumsComment)) 28 | } 29 | 30 | func AddAlbumComment(upd AlbumsComment) error { 31 | o := orm.NewOrm() 32 | comment := new(AlbumsComment) 33 | 34 | comment.Id = upd.Id 35 | comment.Userid = upd.Userid 36 | comment.Albumid = upd.Albumid 37 | comment.Content = upd.Content 38 | comment.Status = 1 39 | comment.Created = time.Now().Unix() 40 | _, err := o.Insert(comment) 41 | if err == nil { 42 | ChangeAlbumRelationNum(upd.Albumid, "comment") 43 | } 44 | return err 45 | } 46 | 47 | func ListAlbumComment(albumid int64, page, offset int) (ops []AlbumsComment) { 48 | if page < 1 { 49 | page = 1 50 | } 51 | if offset < 1 { 52 | offset = 100 53 | } 54 | start := (page - 1) * offset 55 | 56 | var comments []AlbumsComment 57 | var err error 58 | err = utils.GetCache("ListAlbumComment.id."+fmt.Sprintf("%d", albumid), &comments) 59 | if err != nil { 60 | cache_expire, _ := beego.AppConfig.Int("cache_expire") 61 | o := orm.NewOrm() 62 | o.Using("default") 63 | qs := o.QueryTable(models.TableName("albums_comment")) 64 | cond := orm.NewCondition() 65 | cond = cond.And("albumid", albumid) 66 | cond = cond.And("status", 1) 67 | qs = qs.SetCond(cond) 68 | qs.Limit(offset, start).All(&comments) 69 | utils.SetCache("ListAlbumComment.id."+fmt.Sprintf("%d", albumid), comments, cache_expire) 70 | } 71 | return comments 72 | } 73 | -------------------------------------------------------------------------------- /models/knowledges/knowledgesComments.go: -------------------------------------------------------------------------------- 1 | package knowledges 2 | 3 | import ( 4 | "fmt" 5 | "opms/models" 6 | "opms/utils" 7 | "time" 8 | 9 | "github.com/astaxie/beego" 10 | "github.com/astaxie/beego/orm" 11 | ) 12 | 13 | type KnowledgesComment struct { 14 | Id int64 `orm:"pk;column(comtid);"` 15 | Userid int64 16 | Knowid int64 17 | Content string 18 | Created int64 19 | Status int 20 | } 21 | 22 | func (this *KnowledgesComment) TableName() string { 23 | return models.TableName("knowledges_comment") 24 | } 25 | 26 | func init() { 27 | orm.RegisterModel(new(KnowledgesComment)) 28 | } 29 | 30 | func AddKnowledgeComment(upd KnowledgesComment) error { 31 | o := orm.NewOrm() 32 | comment := new(KnowledgesComment) 33 | 34 | comment.Id = upd.Id 35 | comment.Userid = upd.Userid 36 | comment.Knowid = upd.Knowid 37 | comment.Content = upd.Content 38 | comment.Status = 1 39 | comment.Created = time.Now().Unix() 40 | _, err := o.Insert(comment) 41 | if err == nil { 42 | ChangeRelationNum(upd.Knowid, "comment") 43 | } 44 | return err 45 | } 46 | 47 | func ListKnowledgeComment(knowid int64, page, offset int) (ops []KnowledgesComment) { 48 | if page < 1 { 49 | page = 1 50 | } 51 | if offset < 1 { 52 | offset = 100 53 | } 54 | start := (page - 1) * offset 55 | 56 | var comments []KnowledgesComment 57 | var err error 58 | err = utils.GetCache("ListKnowledgeComment.id."+fmt.Sprintf("%d", knowid), &comments) 59 | if err != nil { 60 | cache_expire, _ := beego.AppConfig.Int("cache_expire") 61 | o := orm.NewOrm() 62 | o.Using("default") 63 | qs := o.QueryTable(models.TableName("knowledges_comment")) 64 | cond := orm.NewCondition() 65 | cond = cond.And("knowid", knowid) 66 | cond = cond.And("status", 1) 67 | qs = qs.SetCond(cond) 68 | qs.Limit(offset, start).All(&comments) 69 | utils.SetCache("ListKnowledgeComment.id."+fmt.Sprintf("%d", knowid), comments, cache_expire) 70 | } 71 | return comments 72 | } 73 | -------------------------------------------------------------------------------- /static/keditor/plugins/map/map.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 53 | 54 | 55 |
56 | 57 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/themes/fa/fa.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v4.3.2 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Font Awesome icon theme configuration for bootstrap-fileinput. Requires font awesome assets to be loaded. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2016, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD 3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | (function ($) { 14 | "use strict"; 15 | 16 | $.fn.fileinputThemes.fa = { 17 | fileActionSettings: { 18 | removeIcon: '', 19 | uploadIcon: '', 20 | zoomIcon: '', 21 | dragIcon: '', 22 | indicatorNew: '', 23 | indicatorSuccess: '', 24 | indicatorError: '', 25 | indicatorLoading: '' 26 | }, 27 | layoutTemplates: { 28 | fileIcon: ' ' 29 | }, 30 | previewZoomButtonIcons: { 31 | prev: '', 32 | next: '', 33 | toggleheader: '', 34 | fullscreen: '', 35 | borderless: '', 36 | close: '' 37 | }, 38 | previewFileIcon: '', 39 | browseIcon: '', 40 | removeIcon: '', 41 | cancelIcon: '', 42 | uploadIcon: '', 43 | msgValidationErrorIcon: ' ' 44 | }; 45 | })(window.jQuery); 46 | -------------------------------------------------------------------------------- /static/js/advanced-datatable/src/ext/ext.types.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | $.extend( DataTable.ext.aTypes, [ 4 | /* 5 | * Function: - 6 | * Purpose: Check to see if a string is numeric 7 | * Returns: string:'numeric' or null 8 | * Inputs: mixed:sText - string to check 9 | */ 10 | function ( sData ) 11 | { 12 | /* Allow zero length strings as a number */ 13 | if ( typeof sData === 'number' ) 14 | { 15 | return 'numeric'; 16 | } 17 | else if ( typeof sData !== 'string' ) 18 | { 19 | return null; 20 | } 21 | 22 | var sValidFirstChars = "0123456789-"; 23 | var sValidChars = "0123456789."; 24 | var Char; 25 | var bDecimal = false; 26 | 27 | /* Check for a valid first char (no period and allow negatives) */ 28 | Char = sData.charAt(0); 29 | if (sValidFirstChars.indexOf(Char) == -1) 30 | { 31 | return null; 32 | } 33 | 34 | /* Check all the other characters are valid */ 35 | for ( var i=1 ; i') != -1 ) 82 | { 83 | return 'html'; 84 | } 85 | return null; 86 | } 87 | ] ); 88 | 89 | -------------------------------------------------------------------------------- /utils/cropper.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | //"fmt" 5 | //"graphics" 6 | "image" 7 | "image/jpeg" 8 | "log" 9 | //"net/http" 10 | "os" 11 | //"strconv" 12 | "strings" 13 | 14 | //"code.google.com/p/graphics-go/graphics" 15 | "github.com/BurntSushi/graphics-go/graphics" 16 | ) 17 | 18 | //http://studygolang.com/articles/3375 19 | //http://studygolang.com/articles/4307 20 | //http://studygolang.com/articles/2581 21 | //http://studygolang.com/articles/2453 22 | func DoImageHandler(url string, newdx int) { 23 | src, err := LoadImage("." + url) 24 | //bound := src.Bounds() 25 | //dx := bound.Dx() 26 | //dy := bound.Dy() 27 | if err != nil { 28 | log.Fatal(err) 29 | } 30 | //fmt.Println(dx, dy, newdx) 31 | // 缩略图的大小 32 | dst := image.NewRGBA(image.Rect(640, 640, 200, 200)) 33 | //dst := image.NewRGBA(image.Rect(0, 0, newdx, newdx*dy/dx)) 34 | // 产生缩略图,等比例缩放 35 | //err = graphics.Scale(dst, src) 36 | err = graphics.Thumbnail(dst, src) 37 | if err != nil { 38 | log.Fatal(err) 39 | } 40 | 41 | filen := strings.Replace(url, ".", "-cropper.", -1) 42 | file, err := os.Create("." + filen) 43 | defer file.Close() 44 | 45 | err = jpeg.Encode(file, dst, &jpeg.Options{100}) //图像质量值为100,是最好的图像显示 46 | 47 | //header := w.Header() 48 | //header.Add("Content-Type", "image/jpeg") 49 | 50 | //png.Encode(w, dst) 51 | } 52 | 53 | // Load Image decodes an image from a file of image. 54 | func LoadImage(path string) (img image.Image, err error) { 55 | file, err := os.Open(path) 56 | if err != nil { 57 | return 58 | } 59 | defer file.Close() 60 | img, _, err = image.Decode(file) 61 | return 62 | } 63 | 64 | /*file, err := os.Open("./" + filepath) 65 | if err != nil { 66 | fmt.Println(err) 67 | } 68 | defer file.Close() 69 | 70 | file1, err := os.Create(dir + "/" + "test1.jpg") 71 | if err != nil { 72 | fmt.Println(err) 73 | } 74 | defer file1.Close() 75 | 76 | m, _, _ := image.Decode(file) // 图片文件解码 77 | rgbImg := m.(*image.YCbCr) 78 | subImg := rgbImg.SubImage(image.Rect(0, 0, 200, 200)).(*image.YCbCr) //图片裁剪x0 y0 x1 y1 79 | err = jpeg.Encode(file1, subImg, &jpeg.Options{100}) //图像质量值为100,是最好的图像显示 80 | if err != nil { 81 | fmt.Println(err) 82 | } 83 | */ 84 | -------------------------------------------------------------------------------- /static/js/advanced-datatable/src/model/model.row.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | /** 5 | * Template object for the way in which DataTables holds information about 6 | * each individual row. This is the object format used for the settings 7 | * aoData array. 8 | * @namespace 9 | */ 10 | DataTable.models.oRow = { 11 | /** 12 | * TR element for the row 13 | * @type node 14 | * @default null 15 | */ 16 | "nTr": null, 17 | 18 | /** 19 | * Data object from the original data source for the row. This is either 20 | * an array if using the traditional form of DataTables, or an object if 21 | * using mData options. The exact type will depend on the passed in 22 | * data from the data source, or will be an array if using DOM a data 23 | * source. 24 | * @type array|object 25 | * @default [] 26 | */ 27 | "_aData": [], 28 | 29 | /** 30 | * Sorting data cache - this array is ostensibly the same length as the 31 | * number of columns (although each index is generated only as it is 32 | * needed), and holds the data that is used for sorting each column in the 33 | * row. We do this cache generation at the start of the sort in order that 34 | * the formatting of the sort data need be done only once for each cell 35 | * per sort. This array should not be read from or written to by anything 36 | * other than the master sorting methods. 37 | * @type array 38 | * @default [] 39 | * @private 40 | */ 41 | "_aSortData": [], 42 | 43 | /** 44 | * Array of TD elements that are cached for hidden rows, so they can be 45 | * reinserted into the table if a column is made visible again (or to act 46 | * as a store if a column is made hidden). Only hidden columns have a 47 | * reference in the array. For non-hidden columns the value is either 48 | * undefined or null. 49 | * @type array nodes 50 | * @default [] 51 | * @private 52 | */ 53 | "_anHidden": [], 54 | 55 | /** 56 | * Cache of the class name that DataTables has applied to the row, so we 57 | * can quickly look at this variable rather than needing to do a DOM check 58 | * on className for the nTr property. 59 | * @type string 60 | * @default Empty string 61 | * @private 62 | */ 63 | "_sRowStripe": "" 64 | }; 65 | -------------------------------------------------------------------------------- /models/projects/teams.go: -------------------------------------------------------------------------------- 1 | package projects 2 | 3 | import ( 4 | "fmt" 5 | "opms/models" 6 | "opms/utils" 7 | "time" 8 | 9 | "github.com/astaxie/beego" 10 | "github.com/astaxie/beego/orm" 11 | ) 12 | 13 | type ProjectsTeam struct { 14 | Id int64 `orm:"pk;"` 15 | Projectid int64 16 | Userid int64 17 | Created int64 18 | } 19 | 20 | func (this *ProjectsTeam) TableName() string { 21 | return models.TableName("projects_team") 22 | } 23 | func init() { 24 | orm.RegisterModel(new(ProjectsTeam)) 25 | } 26 | 27 | func AddTeam(upd ProjectsTeam) error { 28 | o := orm.NewOrm() 29 | team := new(ProjectsTeam) 30 | 31 | team.Id = upd.Id 32 | team.Projectid = upd.Projectid 33 | team.Userid = upd.Userid 34 | team.Created = time.Now().Unix() 35 | _, err := o.Insert(team) 36 | return err 37 | } 38 | 39 | func ListProjectTeam(projectId int64, page int, offset int) (num int64, err error, ops []ProjectsTeam) { 40 | var teams []ProjectsTeam 41 | var errs error 42 | 43 | if page < 1 { 44 | page = 1 45 | } 46 | if offset < 1 { 47 | offset, _ = beego.AppConfig.Int("pageoffset") 48 | } 49 | start := (page - 1) * offset 50 | errs = utils.GetCache("ListProjectTeam.id."+fmt.Sprintf("%d", projectId), &teams) 51 | if errs != nil { 52 | cache_expire, _ := beego.AppConfig.Int("cache_expire") 53 | o := orm.NewOrm() 54 | o.Using("default") 55 | qs := o.QueryTable(models.TableName("projects_team")) 56 | cond := orm.NewCondition() 57 | if projectId > 0 { 58 | cond = cond.And("projectid", projectId) 59 | } 60 | qs = qs.SetCond(cond) 61 | 62 | qs.Limit(offset, start).All(&teams) 63 | utils.SetCache("ListProjectTeam.id."+fmt.Sprintf("%d", projectId), teams, cache_expire) 64 | } 65 | return num, errs, teams 66 | } 67 | 68 | func DeleteProjectTeam(id int64) error { 69 | o := orm.NewOrm() 70 | _, err := o.Delete(&ProjectsTeam{Id: id}) 71 | return err 72 | } 73 | 74 | func GetProjectTeam(userid, projectid int64) (ProjectsTeam, error) { 75 | var team ProjectsTeam 76 | o := orm.NewOrm() 77 | qs := o.QueryTable(models.TableName("projects_team")) 78 | err := qs.Filter("userid", userid).Filter("projectid", projectid).One(&team) 79 | if err == orm.ErrNoRows { 80 | return team, nil 81 | } 82 | return team, err 83 | } 84 | -------------------------------------------------------------------------------- /static/keditor/plugins/code/code.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | // google code prettify: http://google-code-prettify.googlecode.com/ 11 | // http://google-code-prettify.googlecode.com/ 12 | 13 | KindEditor.plugin('code', function(K) { 14 | var self = this, name = 'code'; 15 | self.clickToolbar(name, function() { 16 | var lang = self.lang(name + '.'), 17 | html = ['
', 18 | '
', 19 | '', 35 | '
', 36 | '', 37 | '
'].join(''), 38 | dialog = self.createDialog({ 39 | name : name, 40 | width : 450, 41 | title : self.lang(name), 42 | body : html, 43 | yesBtn : { 44 | name : self.lang('yes'), 45 | click : function(e) { 46 | var type = K('.ke-code-type', dialog.div).val(), 47 | code = textarea.val(), 48 | cls = type === '' ? '' : ' lang-' + type, 49 | html = '
\n' + K.escape(code) + '
'; 50 | self.insertHtml(html).hideDialog().focus(); 51 | } 52 | } 53 | }), 54 | textarea = K('textarea', dialog.div); 55 | textarea[0].focus(); 56 | }); 57 | }); 58 | -------------------------------------------------------------------------------- /models/albums/albumsLauds.go: -------------------------------------------------------------------------------- 1 | package albums 2 | 3 | import ( 4 | "fmt" 5 | "opms/models" 6 | "opms/utils" 7 | "time" 8 | 9 | "github.com/astaxie/beego" 10 | "github.com/astaxie/beego/orm" 11 | ) 12 | 13 | type AlbumsLaud struct { 14 | Id int64 `orm:"pk;column(laudid);"` 15 | Userid int64 16 | Albumid int64 17 | Created int64 18 | Status int 19 | } 20 | 21 | func (this *AlbumsLaud) TableName() string { 22 | return models.TableName("albums_laud") 23 | } 24 | 25 | func init() { 26 | orm.RegisterModel(new(AlbumsLaud)) 27 | } 28 | 29 | func AddAlbumLaud(upd AlbumsLaud) error { 30 | o := orm.NewOrm() 31 | laud := new(AlbumsLaud) 32 | 33 | laud.Id = upd.Id 34 | laud.Userid = upd.Userid 35 | laud.Albumid = upd.Albumid 36 | laud.Status = 1 37 | laud.Created = time.Now().Unix() 38 | _, err := o.Insert(laud) 39 | if err == nil { 40 | ChangeAlbumRelationNum(upd.Albumid, "laud") 41 | } 42 | return err 43 | } 44 | 45 | func ListAlbumLaud(albumid int64, page, offset int) (ops []AlbumsLaud) { 46 | if page < 1 { 47 | page = 1 48 | } 49 | if offset < 1 { 50 | offset = 100 51 | } 52 | start := (page - 1) * offset 53 | 54 | var lauds []AlbumsLaud 55 | var err error 56 | err = utils.GetCache("ListAlbumLaud.id."+fmt.Sprintf("%d", albumid), &lauds) 57 | if err != nil { 58 | cache_expire, _ := beego.AppConfig.Int("cache_expire") 59 | o := orm.NewOrm() 60 | o.Using("default") 61 | qs := o.QueryTable(models.TableName("albums_laud")) 62 | cond := orm.NewCondition() 63 | cond = cond.And("albumid", albumid) 64 | cond = cond.And("status", 1) 65 | qs = qs.SetCond(cond) 66 | qs.Limit(offset, start).All(&lauds) 67 | utils.SetCache("ListAlbumLaud.id."+fmt.Sprintf("%d", albumid), lauds, cache_expire) 68 | } 69 | return lauds 70 | } 71 | 72 | func GetAlbumLaud(id int64) (AlbumsLaud, error) { 73 | var laud AlbumsLaud 74 | var err error 75 | 76 | err = utils.GetCache("GetAlbumLaud.id."+fmt.Sprintf("%d", id), &laud) 77 | if err != nil { 78 | cache_expire, _ := beego.AppConfig.Int("cache_expire") 79 | o := orm.NewOrm() 80 | err = o.QueryTable(models.TableName("albums_laud")).Filter("albumid", id).One(&laud, "userid") 81 | utils.SetCache("GetAlbumLaud.id."+fmt.Sprintf("%d", id), laud, cache_expire) 82 | } 83 | return laud, err 84 | } 85 | -------------------------------------------------------------------------------- /models/knowledges/knowledgesLauds.go: -------------------------------------------------------------------------------- 1 | package knowledges 2 | 3 | import ( 4 | "fmt" 5 | "opms/models" 6 | "opms/utils" 7 | "time" 8 | 9 | "github.com/astaxie/beego" 10 | "github.com/astaxie/beego/orm" 11 | ) 12 | 13 | type KnowledgesLaud struct { 14 | Id int64 `orm:"pk;column(laudid);"` 15 | Userid int64 16 | Knowid int64 17 | Created int64 18 | Status int 19 | } 20 | 21 | func (this *KnowledgesLaud) TableName() string { 22 | return models.TableName("knowledges_laud") 23 | } 24 | 25 | func init() { 26 | orm.RegisterModel(new(KnowledgesLaud)) 27 | } 28 | 29 | func AddKnowledgeLaud(upd KnowledgesLaud) error { 30 | o := orm.NewOrm() 31 | laud := new(KnowledgesLaud) 32 | 33 | laud.Id = upd.Id 34 | laud.Userid = upd.Userid 35 | laud.Knowid = upd.Knowid 36 | laud.Status = 1 37 | laud.Created = time.Now().Unix() 38 | _, err := o.Insert(laud) 39 | if err == nil { 40 | ChangeRelationNum(upd.Knowid, "laud") 41 | } 42 | return err 43 | } 44 | 45 | func ListKnowledgeLaud(knowid int64, page, offset int) (ops []KnowledgesLaud) { 46 | if page < 1 { 47 | page = 1 48 | } 49 | if offset < 1 { 50 | offset = 100 51 | } 52 | start := (page - 1) * offset 53 | 54 | var lauds []KnowledgesLaud 55 | var err error 56 | err = utils.GetCache("ListKnowledgeLaud.id."+fmt.Sprintf("%d", knowid), &lauds) 57 | if err != nil { 58 | cache_expire, _ := beego.AppConfig.Int("cache_expire") 59 | o := orm.NewOrm() 60 | o.Using("default") 61 | qs := o.QueryTable(models.TableName("knowledges_laud")) 62 | cond := orm.NewCondition() 63 | cond = cond.And("knowid", knowid) 64 | cond = cond.And("status", 1) 65 | qs = qs.SetCond(cond) 66 | qs.Limit(offset, start).All(&lauds) 67 | utils.SetCache("ListKnowledgeLaud.id."+fmt.Sprintf("%d", knowid), lauds, cache_expire) 68 | } 69 | return lauds 70 | } 71 | 72 | func GetKnowledgeLaud(id int64) (KnowledgesLaud, error) { 73 | var laud KnowledgesLaud 74 | var err error 75 | 76 | err = utils.GetCache("GetKnowledgeLaud.id."+fmt.Sprintf("%d", id), &laud) 77 | if err != nil { 78 | cache_expire, _ := beego.AppConfig.Int("cache_expire") 79 | o := orm.NewOrm() 80 | err = o.QueryTable(models.TableName("knowledges_laud")).Filter("knowid", id).One(&laud, "userid") 81 | utils.SetCache("GetKnowledgeLaud.id."+fmt.Sprintf("%d", id), laud, cache_expire) 82 | } 83 | return laud, err 84 | } 85 | -------------------------------------------------------------------------------- /static/js/html5shiv.js: -------------------------------------------------------------------------------- 1 | /* 2 | HTML5 Shiv v3.6.2pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 3 | */ 4 | (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); 5 | a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; 6 | c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| 7 | "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",version:"3.6.2pre",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment(); 8 | for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('quickformat', function(K) { 11 | var self = this, name = 'quickformat', 12 | blockMap = K.toMap('blockquote,center,div,h1,h2,h3,h4,h5,h6,p'); 13 | function getFirstChild(knode) { 14 | var child = knode.first(); 15 | while (child && child.first()) { 16 | child = child.first(); 17 | } 18 | return child; 19 | } 20 | self.clickToolbar(name, function() { 21 | self.focus(); 22 | var doc = self.edit.doc, 23 | range = self.cmd.range, 24 | child = K(doc.body).first(), next, 25 | nodeList = [], subList = [], 26 | bookmark = range.createBookmark(true); 27 | while(child) { 28 | next = child.next(); 29 | var firstChild = getFirstChild(child); 30 | if (!firstChild || firstChild.name != 'img') { 31 | if (blockMap[child.name]) { 32 | child.html(child.html().replace(/^(\s| | )+/ig, '')); 33 | child.css('text-indent', '2em'); 34 | } else { 35 | subList.push(child); 36 | } 37 | if (!next || (blockMap[next.name] || blockMap[child.name] && !blockMap[next.name])) { 38 | if (subList.length > 0) { 39 | nodeList.push(subList); 40 | } 41 | subList = []; 42 | } 43 | } 44 | child = next; 45 | } 46 | K.each(nodeList, function(i, subList) { 47 | var wrapper = K('

', doc); 48 | subList[0].before(wrapper); 49 | K.each(subList, function(i, knode) { 50 | wrapper.append(knode); 51 | }); 52 | }); 53 | range.moveToBookmark(bookmark); 54 | self.addBookmark(); 55 | }); 56 | }); 57 | 58 | /** 59 | -------------------------- 60 | abcd
61 | 1234
62 | 63 | to 64 | 65 |

66 | abcd
67 | 1234
68 |

69 | 70 | -------------------------- 71 | 72 |   abcd1233 73 |

1234

74 | 75 | to 76 | 77 |

abcd1233

78 |

1234

79 | 80 | -------------------------- 81 | */ -------------------------------------------------------------------------------- /static/keditor/plugins/template/template.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('template', function(K) { 11 | var self = this, name = 'template', lang = self.lang(name + '.'), 12 | htmlPath = self.pluginsPath + name + '/html/'; 13 | function getFilePath(fileName) { 14 | return htmlPath + fileName + '?ver=' + encodeURIComponent(K.DEBUG ? K.TIME : K.VERSION); 15 | } 16 | self.clickToolbar(name, function() { 17 | var lang = self.lang(name + '.'), 18 | arr = ['
', 19 | '
', 20 | // left start 21 | '
', 22 | lang. selectTemplate + '
', 28 | // right start 29 | '
', 30 | ' ', 31 | '
', 32 | '
', 33 | '
', 34 | '', 35 | '
'].join(''); 36 | var dialog = self.createDialog({ 37 | name : name, 38 | width : 500, 39 | title : self.lang(name), 40 | body : html, 41 | yesBtn : { 42 | name : self.lang('yes'), 43 | click : function(e) { 44 | var doc = K.iframeDoc(iframe); 45 | self[checkbox[0].checked ? 'html' : 'insertHtml'](doc.body.innerHTML).hideDialog().focus(); 46 | } 47 | } 48 | }); 49 | var selectBox = K('select', dialog.div), 50 | checkbox = K('[name="replaceFlag"]', dialog.div), 51 | iframe = K('iframe', dialog.div); 52 | checkbox[0].checked = true; 53 | iframe.attr('src', getFilePath(selectBox.val())); 54 | selectBox.change(function() { 55 | iframe.attr('src', getFilePath(this.value)); 56 | }); 57 | }); 58 | }); 59 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/themes/gly/gly.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v4.3.2 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Glyphicon (default) theme configuration for bootstrap-fileinput. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2016, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD 3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | (function ($) { 14 | "use strict"; 15 | 16 | $.fn.fileinputThemes.gly = { 17 | fileActionSettings: { 18 | removeIcon: '', 19 | uploadIcon: '', 20 | zoomIcon: '', 21 | dragIcon: '', 22 | indicatorNew: '', 23 | indicatorSuccess: '', 24 | indicatorError: '', 25 | indicatorLoading: '' 26 | }, 27 | layoutTemplates: { 28 | fileIcon: '' 29 | }, 30 | previewZoomButtonIcons: { 31 | prev: '', 32 | next: '', 33 | toggleheader: '', 34 | fullscreen: '', 35 | borderless: '', 36 | close: '' 37 | }, 38 | previewFileIcon: '', 39 | browseIcon: ' ', 40 | removeIcon: '', 41 | cancelIcon: '', 42 | uploadIcon: '', 43 | msgValidationErrorIcon: ' ' 44 | }; 45 | })(window.jQuery); 46 | -------------------------------------------------------------------------------- /static/keditor/plugins/link/link.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('link', function(K) { 11 | var self = this, name = 'link'; 12 | self.plugin.link = { 13 | edit : function() { 14 | var lang = self.lang(name + '.'), 15 | html = '
' + 16 | //url 17 | '
' + 18 | '' + 19 | '
' + 20 | //type 21 | '
' + 22 | '' + 23 | '' + 24 | '
' + 25 | '
', 26 | dialog = self.createDialog({ 27 | name : name, 28 | width : 450, 29 | title : self.lang(name), 30 | body : html, 31 | yesBtn : { 32 | name : self.lang('yes'), 33 | click : function(e) { 34 | var url = K.trim(urlBox.val()); 35 | if (url == 'http://' || K.invalidUrl(url)) { 36 | alert(self.lang('invalidUrl')); 37 | urlBox[0].focus(); 38 | return; 39 | } 40 | self.exec('createlink', url, typeBox.val()).hideDialog().focus(); 41 | } 42 | } 43 | }), 44 | div = dialog.div, 45 | urlBox = K('input[name="url"]', div), 46 | typeBox = K('select[name="type"]', div); 47 | urlBox.val('http://'); 48 | typeBox[0].options[0] = new Option(lang.newWindow, '_blank'); 49 | typeBox[0].options[1] = new Option(lang.selfWindow, ''); 50 | self.cmd.selection(); 51 | var a = self.plugin.getSelectedLink(); 52 | if (a) { 53 | self.cmd.range.selectNode(a[0]); 54 | self.cmd.select(); 55 | urlBox.val(a.attr('data-ke-src')); 56 | typeBox.val(a.attr('target')); 57 | } 58 | urlBox[0].focus(); 59 | urlBox[0].select(); 60 | }, 61 | 'delete' : function() { 62 | self.exec('unlink', null); 63 | } 64 | }; 65 | self.clickToolbar(name, self.plugin.link.edit); 66 | }); 67 | -------------------------------------------------------------------------------- /models/groups/groupsUsers.go: -------------------------------------------------------------------------------- 1 | package groups 2 | 3 | import ( 4 | "fmt" 5 | "opms/models" 6 | "opms/utils" 7 | 8 | "github.com/astaxie/beego" 9 | "github.com/astaxie/beego/orm" 10 | ) 11 | 12 | type GroupsUser struct { 13 | Id int64 `orm:"pk;"` 14 | Groupid int64 15 | Userid int64 16 | } 17 | 18 | type GroupsUserName struct { 19 | Id int64 20 | Userid int64 21 | Realname string 22 | Groupid int64 23 | } 24 | 25 | func (this *GroupsUser) TableName() string { 26 | return models.TableName("groups_user") 27 | } 28 | 29 | func init() { 30 | orm.RegisterModel(new(GroupsUser)) 31 | } 32 | 33 | func AddGroupsUser(upd GroupsUser) error { 34 | o := orm.NewOrm() 35 | user := new(GroupsUser) 36 | 37 | user.Id = upd.Id 38 | user.Groupid = upd.Groupid 39 | user.Userid = upd.Userid 40 | _, err := o.Insert(user) 41 | return err 42 | } 43 | 44 | func DeleteGroupsUser(id int64) error { 45 | o := orm.NewOrm() 46 | _, err := o.Raw("DELETE FROM "+models.TableName("groups_user")+" WHERE id = ?", id).Exec() 47 | return err 48 | } 49 | 50 | func ListGroupsUserAndName(groupid int64) (num int64, err error, user []GroupsUserName) { 51 | var users []GroupsUserName 52 | qb, _ := orm.NewQueryBuilder("mysql") 53 | qb.Select("upr.userid", "upr.realname", "gu.groupid", "gu.id"). 54 | From("pms_groups_user AS gu"). 55 | LeftJoin("pms_users_profile AS upr").On("upr.userid = gu.userid"). 56 | Where("gu.groupid=?"). 57 | OrderBy("gu.id"). 58 | Asc() 59 | sql := qb.String() 60 | o := orm.NewOrm() 61 | nums, err := o.Raw(sql, groupid).QueryRows(&users) 62 | return nums, err, users 63 | } 64 | 65 | func ListGroupsUser(groupid int64, page, offset int) (ops []GroupsUser) { 66 | if page < 1 { 67 | page = 1 68 | } 69 | if offset < 1 { 70 | offset, _ = beego.AppConfig.Int("pageoffset") 71 | } 72 | start := (page - 1) * offset 73 | 74 | var users []GroupsUser 75 | var err error 76 | err = utils.GetCache("ListGroupsUser.id."+fmt.Sprintf("%d", groupid), &users) 77 | if err != nil { 78 | cache_expire, _ := beego.AppConfig.Int("cache_expire") 79 | o := orm.NewOrm() 80 | o.Using("default") 81 | qs := o.QueryTable(models.TableName("groups_user")) 82 | cond := orm.NewCondition() 83 | cond = cond.And("groupid", groupid) 84 | qs = qs.SetCond(cond) 85 | qs.Limit(offset, start).All(&users) 86 | utils.SetCache("ListGroupsUser.id."+fmt.Sprintf("%d", groupid), users, cache_expire) 87 | } 88 | return users 89 | } 90 | -------------------------------------------------------------------------------- /static/js/advanced-datatable/css/demo_page.css: -------------------------------------------------------------------------------- 1 | 2 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 | * General page setup 4 | */ 5 | #dt_example { 6 | font: 80%/1.45em "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; 7 | margin: 0; 8 | padding: 0; 9 | color: #333; 10 | background-color: #fff; 11 | } 12 | 13 | 14 | #dt_example #container { 15 | width: 800px; 16 | margin: 30px auto; 17 | padding: 0; 18 | } 19 | 20 | 21 | #dt_example #footer { 22 | margin: 50px auto 0 auto; 23 | padding: 0; 24 | } 25 | 26 | #dt_example #demo { 27 | margin: 30px auto 0 auto; 28 | } 29 | 30 | #dt_example .demo_jui { 31 | margin: 30px auto 0 auto; 32 | } 33 | 34 | #dt_example .big { 35 | font-size: 1.3em; 36 | font-weight: bold; 37 | line-height: 1.6em; 38 | color: #4E6CA3; 39 | } 40 | 41 | #dt_example .spacer { 42 | height: 20px; 43 | clear: both; 44 | } 45 | 46 | #dt_example .clear { 47 | clear: both; 48 | } 49 | 50 | #dt_example pre { 51 | padding: 15px; 52 | background-color: #F5F5F5; 53 | border: 1px solid #CCCCCC; 54 | } 55 | 56 | #dt_example h1 { 57 | margin-top: 2em; 58 | font-size: 1.3em; 59 | font-weight: normal; 60 | line-height: 1.6em; 61 | color: #4E6CA3; 62 | border-bottom: 1px solid #B0BED9; 63 | clear: both; 64 | } 65 | 66 | #dt_example h2 { 67 | font-size: 1.2em; 68 | font-weight: normal; 69 | line-height: 1.6em; 70 | color: #4E6CA3; 71 | clear: both; 72 | } 73 | 74 | #dt_example a { 75 | color: #0063DC; 76 | text-decoration: none; 77 | } 78 | 79 | #dt_example a:hover { 80 | text-decoration: underline; 81 | } 82 | 83 | #dt_example ul { 84 | color: #4E6CA3; 85 | } 86 | 87 | .css_right { 88 | float: right; 89 | } 90 | 91 | .css_left { 92 | float: left; 93 | } 94 | 95 | .demo_links { 96 | float: left; 97 | width: 50%; 98 | margin-bottom: 1em; 99 | } 100 | 101 | #demo_info { 102 | padding: 5px; 103 | border: 1px solid #B0BED9; 104 | height: 100px; 105 | width: 100%; 106 | overflow: auto; 107 | } 108 | 109 | #dt_example code { 110 | font-family: Menlo, Monaco, Consolas, "Courier New", monospace; 111 | padding: 2px 4px !important; 112 | white-space: nowrap; 113 | font-size: 0.9em; 114 | 115 | color: #D14; 116 | background-color: #F7F7F9; 117 | 118 | border: 1px solid #E1E1E8; 119 | -webkit-border-radius: 3px; 120 | -moz-border-radius: 3px; 121 | border-radius: 3px; 122 | } 123 | -------------------------------------------------------------------------------- /initial/template.go: -------------------------------------------------------------------------------- 1 | package initial 2 | 3 | import ( 4 | //"fmt" 5 | "opms/models/businesstrips" 6 | "opms/models/expenses" 7 | "opms/models/goouts" 8 | "opms/models/groups" 9 | "opms/models/leaves" 10 | "opms/models/oagoods" 11 | "opms/models/overtimes" 12 | "opms/models/projects" 13 | "opms/models/users" 14 | "opms/utils" 15 | //"time" 16 | 17 | "github.com/astaxie/beego" 18 | ) 19 | 20 | func InitTemplate() { 21 | beego.AddFuncMap("getRealname", users.GetRealname) 22 | beego.AddFuncMap("getNeedsname", projects.GetProjectNeedsName) 23 | beego.AddFuncMap("getProjectname", projects.GetProjectName) 24 | beego.AddFuncMap("getPermissionname", groups.GetPermissiontName) 25 | beego.AddFuncMap("getLeaveProcess", leaves.ListLeaveApproverProcessHtml) 26 | beego.AddFuncMap("getExpenseProcess", expenses.ListExpenseApproverProcessHtml) 27 | beego.AddFuncMap("getBusinesstripProcess", businesstrips.ListBusinesstripApproverProcessHtml) 28 | beego.AddFuncMap("getGooutProcess", goouts.ListGooutApproverProcessHtml) 29 | beego.AddFuncMap("getOagoodProcess", oagoods.ListOagoodApproverProcessHtml) 30 | beego.AddFuncMap("getOvertimeProcess", overtimes.ListOvertimeApproverProcessHtml) 31 | 32 | beego.AddFuncMap("getDate", utils.GetDate) 33 | beego.AddFuncMap("getDateMH", utils.GetDateMH) 34 | beego.AddFuncMap("getNeedsStatus", utils.GetNeedsStatus) 35 | beego.AddFuncMap("getNeedsSource", utils.GetNeedsSource) 36 | beego.AddFuncMap("getNeedsStage", utils.GetNeedsStage) 37 | beego.AddFuncMap("getTaskStatus", utils.GetTaskStatus) 38 | beego.AddFuncMap("getTaskType", utils.GetTaskType) 39 | beego.AddFuncMap("getTestStatus", utils.GetTestStatus) 40 | beego.AddFuncMap("getLeaveType", utils.GetLeaveType) 41 | 42 | beego.AddFuncMap("getOs", utils.GetOs) 43 | beego.AddFuncMap("getBrowser", utils.GetBrowser) 44 | beego.AddFuncMap("getAvatarSource", utils.GetAvatarSource) 45 | beego.AddFuncMap("getAvatar", utils.GetAvatar) 46 | beego.AddFuncMap("getAvatarUserid", users.GetAvatarUserid) 47 | beego.AddFuncMap("getPositionsName", users.GetPositionsNameForUserid) 48 | beego.AddFuncMap("getDepartmentsName", users.GetDepartmentsNameForUserid) 49 | 50 | beego.AddFuncMap("getEdu", utils.GetEdu) 51 | beego.AddFuncMap("getWorkYear", utils.GetWorkYear) 52 | beego.AddFuncMap("getResumeStatus", utils.GetResumeStatus) 53 | 54 | beego.AddFuncMap("getCheckworkType", utils.GetCheckworkType) 55 | 56 | beego.AddFuncMap("getMessageType", utils.GetMessageType) 57 | beego.AddFuncMap("getMessageSubtype", utils.GetMessageSubtype) 58 | 59 | } 60 | -------------------------------------------------------------------------------- /views/albums/upload.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{config "String" "globaltitle" ""}} 6 | {{template "inc/meta.tpl" .}} 7 | 8 | 9 | {{template "inc/left.tpl" .}} 10 | 11 |
12 | 13 |
14 | 15 | {{template "inc/user-info.tpl" .}}
16 | 17 | 18 | 19 | 20 |
21 |
22 |
23 |
24 |
上传相片
25 |
26 |
27 |
28 |

请选择图片

29 | 30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 | 38 | 39 | {{template "inc/foot-info.tpl" .}} 40 | 41 |
42 | 43 | 44 | {{template "inc/foot.tpl" .}} 45 | 46 | 47 | 48 | 49 | 50 | 51 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /views/inc/user-info.tpl: -------------------------------------------------------------------------------- 1 | 2 | 44 | 45 | -------------------------------------------------------------------------------- /static/js/bootstrap-datepicker/less/datepicker.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Datepicker for Bootstrap 3 | * 4 | * Copyright 2012 Stefan Petre 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | */ 9 | 10 | .datepicker { 11 | top: 0; 12 | left: 0; 13 | padding: 4px; 14 | margin-top: 1px; 15 | .border-radius(4px); 16 | &:before { 17 | content: ''; 18 | display: inline-block; 19 | border-left: 7px solid transparent; 20 | border-right: 7px solid transparent; 21 | border-bottom: 7px solid #ccc; 22 | border-bottom-color: rgba(0,0,0,.2); 23 | position: absolute; 24 | top: -7px; 25 | left: 6px; 26 | } 27 | &:after { 28 | content: ''; 29 | display: inline-block; 30 | border-left: 6px solid transparent; 31 | border-right: 6px solid transparent; 32 | border-bottom: 6px solid @white; 33 | position: absolute; 34 | top: -6px; 35 | left: 7px; 36 | } 37 | >div { 38 | display: none; 39 | } 40 | table{ 41 | width: 100%; 42 | margin: 0; 43 | } 44 | td, 45 | th{ 46 | text-align: center; 47 | width: 20px; 48 | height: 20px; 49 | .border-radius(4px); 50 | } 51 | td { 52 | &.day:hover { 53 | background: @grayLighter; 54 | cursor: pointer; 55 | } 56 | &.old, 57 | &.new { 58 | color: @grayLight; 59 | } 60 | &.active, 61 | &.active:hover { 62 | .buttonBackground(@primaryButtonBackground, spin(@primaryButtonBackground, 20)); 63 | color: #fff; 64 | text-shadow: 0 -1px 0 rgba(0,0,0,.25); 65 | } 66 | span { 67 | display: block; 68 | width: 47px; 69 | height: 54px; 70 | line-height: 54px; 71 | float: left; 72 | margin: 2px; 73 | cursor: pointer; 74 | .border-radius(4px); 75 | &:hover { 76 | background: @grayLighter; 77 | } 78 | &.active { 79 | .buttonBackground(@primaryButtonBackground, spin(@primaryButtonBackground, 20)); 80 | color: #fff; 81 | text-shadow: 0 -1px 0 rgba(0,0,0,.25); 82 | } 83 | &.old { 84 | color: @grayLight; 85 | } 86 | } 87 | } 88 | 89 | th { 90 | &.switch { 91 | width: 145px; 92 | } 93 | &.next, 94 | &.prev { 95 | font-size: @baseFontSize * 1.5; 96 | } 97 | } 98 | 99 | thead tr:first-child th { 100 | cursor: pointer; 101 | &:hover{ 102 | background: @grayLighter; 103 | } 104 | } 105 | /*.dow { 106 | border-top: 1px solid #ddd !important; 107 | }*/ 108 | } 109 | .input-append, 110 | .input-prepend { 111 | &.date { 112 | .add-on i { 113 | display: block; 114 | cursor: pointer; 115 | width: 16px; 116 | height: 16px; 117 | } 118 | } 119 | } -------------------------------------------------------------------------------- /static/keditor/themes/simple/simple.css: -------------------------------------------------------------------------------- 1 | /* container */ 2 | .ke-container-simple { 3 | display: block; 4 | border: 1px solid #CCC; 5 | background-color: #FFF; 6 | overflow: hidden; 7 | } 8 | /* toolbar */ 9 | .ke-container-simple .ke-toolbar { 10 | border-bottom: 1px solid #CCC; 11 | background-color: #FFF; 12 | padding: 2px 5px; 13 | overflow: hidden; 14 | } 15 | .ke-container-simple .ke-toolbar .ke-outline { 16 | border: 1px solid #FFF; 17 | background-color: transparent; 18 | margin: 1px; 19 | padding: 1px 2px; 20 | font-size: 0; 21 | line-height: 0; 22 | overflow: hidden; 23 | cursor: pointer; 24 | } 25 | .ke-container-simple .ke-toolbar .ke-on { 26 | border: 1px solid #5690D2; 27 | } 28 | .ke-container-simple .ke-toolbar .ke-selected { 29 | border: 1px solid #5690D2; 30 | background-color: #E9EFF6; 31 | } 32 | .ke-container-simple .ke-toolbar .ke-disabled { 33 | cursor: default; 34 | } 35 | /* statusbar */ 36 | .ke-container-simple .ke-statusbar { 37 | position: relative; 38 | background-color: #FFF; 39 | border-top: 1px solid #CCCCCC; 40 | font-size: 0; 41 | line-height: 0; 42 | *height: 12px; 43 | overflow: hidden; 44 | text-align: center; 45 | cursor: s-resize; 46 | } 47 | /* menu */ 48 | .ke-menu-simple { 49 | border: 1px solid #A0A0A0; 50 | background-color: #FFF; 51 | color: #222222; 52 | padding: 2px; 53 | font-family: "sans serif",tahoma,verdana,helvetica; 54 | font-size: 12px; 55 | text-align: left; 56 | overflow: hidden; 57 | } 58 | .ke-menu-simple .ke-menu-item { 59 | border: 1px solid #FFF; 60 | background-color: #FFF; 61 | color: #222222; 62 | height: 24px; 63 | overflow: hidden; 64 | cursor: pointer; 65 | } 66 | .ke-menu-simple .ke-menu-item-on { 67 | border: 1px solid #5690D2; 68 | background-color: #FFF; 69 | } 70 | /* colorpicker */ 71 | .ke-colorpicker-simple { 72 | border: 1px solid #A0A0A0; 73 | background-color: #FEFEFE; 74 | color: #222222; 75 | padding: 2px; 76 | } 77 | .ke-colorpicker-simple .ke-colorpicker-cell { 78 | font-size: 0; 79 | line-height: 0; 80 | border: 1px solid #FEFEFE; 81 | cursor: pointer; 82 | margin:3px; 83 | padding:0; 84 | } 85 | .ke-colorpicker-simple .ke-colorpicker-cell-top { 86 | font-family: "sans serif",tahoma,verdana,helvetica; 87 | font-size: 12px; 88 | line-height: 24px; 89 | border: 1px solid #FEFEFE; 90 | cursor: pointer; 91 | margin:0; 92 | padding:0; 93 | text-align: center; 94 | } 95 | .ke-colorpicker-simple .ke-colorpicker-cell-on { 96 | border: 1px solid #5690D2; 97 | } 98 | .ke-colorpicker-simple .ke-colorpicker-cell-selected { 99 | border: 1px solid #2446AB; 100 | } 101 | -------------------------------------------------------------------------------- /views/inc/test-dialog.tpl: -------------------------------------------------------------------------------- 1 | 26 | -------------------------------------------------------------------------------- /models/groups/groupsPermissions.go: -------------------------------------------------------------------------------- 1 | package groups 2 | 3 | import ( 4 | "fmt" 5 | "opms/models" 6 | "opms/utils" 7 | 8 | "github.com/astaxie/beego" 9 | "github.com/astaxie/beego/orm" 10 | ) 11 | 12 | type GroupsPermission struct { 13 | Id int64 `orm:"pk;"` 14 | Groupid int64 15 | Permissionid int64 16 | } 17 | 18 | func (this *GroupsPermission) TableName() string { 19 | return models.TableName("groups_permission") 20 | } 21 | 22 | func init() { 23 | orm.RegisterModel(new(GroupsPermission)) 24 | } 25 | 26 | func AddGroupsPermission(upd GroupsPermission) error { 27 | o := orm.NewOrm() 28 | permission := new(GroupsPermission) 29 | 30 | permission.Id = upd.Id 31 | permission.Groupid = upd.Groupid 32 | permission.Permissionid = upd.Permissionid 33 | _, err := o.Insert(permission) 34 | return err 35 | } 36 | 37 | func DeleteGroupsPermission(id int64) error { 38 | o := orm.NewOrm() 39 | _, err := o.Raw("DELETE FROM "+models.TableName("groups_permission")+" WHERE id = ?", id).Exec() 40 | return err 41 | } 42 | func DeleteGroupsPermissionForGroupid(groupid int64) error { 43 | o := orm.NewOrm() 44 | _, err := o.Raw("DELETE FROM "+models.TableName("groups_permission")+" WHERE groupid = ?", groupid).Exec() 45 | return err 46 | } 47 | 48 | func ListGroupsPermission(groupid int64) (ops []GroupsPermission) { 49 | var permissions []GroupsPermission 50 | 51 | o := orm.NewOrm() 52 | o.Using("default") 53 | qs := o.QueryTable(models.TableName("groups_permission")) 54 | cond := orm.NewCondition() 55 | cond = cond.And("groupid", groupid) 56 | qs = qs.SetCond(cond) 57 | qs.All(&permissions) 58 | 59 | return permissions 60 | } 61 | 62 | type GroupsUserPermission struct { 63 | Name string 64 | Ename string 65 | Icon string 66 | } 67 | 68 | func ListGroupsUserPermission(groupid string) (num int64, err error, ops []GroupsUserPermission) { 69 | var users []GroupsUserPermission 70 | err = utils.GetCache("ListGroupsUserPermission.id."+fmt.Sprintf("%d", groupid), &users) 71 | var nums int64 72 | if err != nil { 73 | cache_expire, _ := beego.AppConfig.Int("cache_expire") 74 | qb, _ := orm.NewQueryBuilder("mysql") 75 | 76 | qb.Select("pp.name", "pp.ename", "pp.icon").From("pms_groups_permission AS gp"). 77 | LeftJoin("pms_permissions AS p").On("gp.permissionid = p.permissionid"). 78 | LeftJoin("pms_permissions AS pp").On("pp.permissionid = p.parentid"). 79 | Where("gp.groupid IN (" + groupid + ")"). 80 | GroupBy("p.parentid") 81 | sql := qb.String() 82 | o := orm.NewOrm() 83 | nums, err = o.Raw(sql).QueryRows(&users) 84 | utils.SetCache("ListGroupsUserPermission.id."+fmt.Sprintf("%d", groupid), users, cache_expire) 85 | } 86 | return nums, err, users 87 | } 88 | --------------------------------------------------------------------------------