├── Dockerfile ├── Gruntfile.js ├── README.md ├── api ├── common │ ├── FileUtil.js │ ├── StringUtil.js │ └── ZipUtil.js ├── controllers │ ├── TestController.js │ ├── api │ │ ├── OauthController.js │ │ ├── TestController.js │ │ └── oauth.json │ ├── open │ │ ├── FileUploadController.js │ │ ├── ImageController.js │ │ ├── UeditorController.js │ │ ├── UeditorWxController.js │ │ └── WeixinController.js │ ├── private │ │ ├── HomeController.js │ │ ├── LoginController.js │ │ ├── cms │ │ │ ├── ArticleController.js │ │ │ ├── ChannelController.js │ │ │ ├── LinkClassController.js │ │ │ ├── LinkController.js │ │ │ └── SiteController.js │ │ ├── conf │ │ │ └── ImgController.js │ │ ├── img │ │ │ └── ImageController.js │ │ ├── sys │ │ │ ├── BackupController.js │ │ │ ├── ConfController.js │ │ │ ├── IpController.js │ │ │ ├── JobController.js │ │ │ ├── LogController.js │ │ │ ├── MenuController.js │ │ │ ├── RoleController.js │ │ │ ├── UnitController.js │ │ │ └── UserController.js │ │ └── wx │ │ │ ├── ConfigController.js │ │ │ ├── MenuController.js │ │ │ ├── NewsController.js │ │ │ ├── ReplyController.js │ │ │ ├── TxtController.js │ │ │ ├── UserController.js │ │ │ └── msg │ │ │ ├── MassController.js │ │ │ └── UserController.js │ └── public │ │ └── pc │ │ └── IndexController.js ├── models │ ├── cms │ │ ├── Cms_article.js │ │ ├── Cms_article_content.js │ │ ├── Cms_channel.js │ │ ├── Cms_link.js │ │ ├── Cms_linkClass.js │ │ └── Cms_site.js │ ├── img │ │ ├── Img_config.js │ │ └── Img_image.js │ ├── sys │ │ ├── Sys_backup.js │ │ ├── Sys_config.js │ │ ├── Sys_ip.js │ │ ├── Sys_job.js │ │ ├── Sys_log.js │ │ ├── Sys_menu.js │ │ ├── Sys_role.js │ │ ├── Sys_unit.js │ │ └── Sys_user.js │ └── wx │ │ ├── Wx_config.js │ │ ├── Wx_mass.js │ │ ├── Wx_mass_news.js │ │ ├── Wx_mass_send.js │ │ ├── Wx_menu.js │ │ ├── Wx_msg.js │ │ ├── Wx_msg_reply.js │ │ ├── Wx_news.js │ │ ├── Wx_reply.js │ │ ├── Wx_txt.js │ │ └── Wx_user.js ├── policies │ ├── login.js │ ├── none.js │ ├── oauthAuth.js │ └── sessionAuth.js ├── responses │ ├── badRequest.js │ ├── forbidden.js │ ├── notFound.js │ ├── ok.js │ └── serverError.js └── services │ ├── EmailService.js │ ├── JobService.js │ ├── RedisService.js │ ├── WechatService.js │ └── WeixinService.js ├── app.js ├── assets ├── bootstrap │ ├── css │ │ └── bootstrap.min.css │ ├── fonts │ │ ├── glyphicons-halflings-regular (1).eot │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ └── glyphicons-halflings-regular.woff │ └── js │ │ └── bootstrap.js ├── css │ ├── animate.min.css │ ├── font-awesome.css │ ├── fonts │ │ ├── DXI1ORHCpsQm3Vp6mXoaTXhCUOGz7vYGh680lGh-uXM.woff │ │ ├── EInbV5DfGHOiMmvb1Xr-hnhCUOGz7vYGh680lGh-uXM.woff │ │ ├── MTP_ySUJH_bn48VBG8sNSnhCUOGz7vYGh680lGh-uXM.woff │ │ ├── cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff │ │ ├── css.css │ │ ├── font.css │ │ └── k3k702ZOKiLJc3WVjuplzHhCUOGz7vYGh680lGh-uXM.woff │ ├── importer.less │ ├── main.css │ ├── panel.css │ ├── skins │ │ ├── palette.2.css │ │ ├── palette.3.css │ │ ├── palette.4.css │ │ ├── palette.css │ │ └── purple.css │ └── themify-icons.css ├── favicon.ico ├── fonts │ ├── fontawesome-webfont (1).eot │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── themify (1).eot │ ├── themify.eot │ ├── themify.svg │ ├── themify.ttf │ └── themify.woff ├── img │ ├── avatar.jpg │ ├── close.gif │ ├── cover.jpg │ ├── empty.bmp │ ├── face1.jpg │ ├── face3.jpg │ ├── face4.jpg │ ├── face5.jpg │ ├── fishy4.png │ ├── flags │ │ ├── cn.png │ │ ├── es.png │ │ ├── fr.png │ │ ├── us.png │ │ └── za.png │ ├── image_devInTub.png │ ├── invoice.png │ ├── loading.gif │ ├── logo.png │ ├── man.png │ ├── minimal.png │ ├── minimal@2x.png │ ├── panel │ │ ├── boxed.png │ │ ├── scroll.png │ │ └── small.png │ ├── sago.jpg │ └── sprite-skin-flat.png ├── js │ ├── animated.js │ ├── bootstrap-datatables.js │ ├── buttons.js │ ├── calendar.js │ ├── catalog.js │ ├── chart.js │ ├── dashboard.js │ ├── datatables.js │ ├── date.js │ ├── demo-mock.js │ ├── dependencies │ │ └── sails.io.js │ ├── editor.js │ ├── form-crop.js │ ├── form-custom.js │ ├── form-masks.js │ ├── form-wizard.js │ ├── form-wysiwyg.js │ ├── form.js │ ├── gallery.js │ ├── general.js │ ├── html5shiv.js │ ├── jquery.pjax.js │ ├── json2.js │ ├── jstree.js │ ├── main.js │ ├── maps.js │ ├── notifications.js │ ├── offscreen.js │ ├── page.js │ ├── pickers.js │ ├── progress-slider.js │ ├── respond.min.js │ ├── select.js │ ├── sortable.js │ ├── stepy.js │ ├── table-edit.js │ ├── toast.js │ ├── tour.js │ ├── validator.js │ ├── vector.js │ ├── x-editable.js │ └── zjson.js ├── plugins │ ├── address │ │ ├── address.css │ │ └── address.js │ ├── appear │ │ └── jquery.appear.js │ ├── bootstrap-colorpalette │ │ ├── bootstrap-colorpalette.css │ │ └── bootstrap-colorpalette.js │ ├── bootstrap-markdown │ │ ├── css │ │ │ └── bootstrap-markdown.min.css │ │ └── js │ │ │ └── bootstrap-markdown.js │ ├── bootstrap-rating-input │ │ └── bootstrap-rating-input.min.js │ ├── bootstrap-tagsinput │ │ ├── bootstrap-tagsinput.css │ │ └── bootstrap-tagsinput.min.js │ ├── chartjs │ │ └── Chart.min.js │ ├── chosen │ │ ├── chosen-sprite.png │ │ ├── chosen-sprite@2x.png │ │ ├── chosen.jquery.min.js │ │ └── chosen.min.css │ ├── colorpicker │ │ ├── css │ │ │ └── colorpicker.css │ │ ├── img │ │ │ ├── alpha.png │ │ │ ├── hue.png │ │ │ └── saturation.png │ │ └── js │ │ │ └── bootstrap-colorpicker.js │ ├── count-to │ │ └── jquery.countTo.js │ ├── datatables │ │ ├── cn.json │ │ ├── dataTables.bootstrap.css │ │ ├── dataTables.bootstrap.js │ │ ├── jquery.dataTables.css │ │ └── jquery.dataTables.js │ ├── datepicker │ │ ├── bootstrap-datetimepicker.css │ │ ├── bootstrap-datetimepicker.js │ │ ├── bootstrap-datetimepicker.min.css │ │ ├── bootstrap-datetimepicker.min.js │ │ └── locales │ │ │ ├── bootstrap-datetimepicker.zh-CN.js │ │ │ └── bootstrap-datetimepicker.zh-TW.js │ ├── daterangepicker │ │ ├── daterangepicker-bs3.css │ │ ├── daterangepicker.js │ │ └── moment.js │ ├── dropzone │ │ ├── dropzone.css │ │ ├── dropzone.js │ │ └── images │ │ │ ├── spritemap.png │ │ │ └── spritemap@2x.png │ ├── easy-pie-chart │ │ └── jquery.easypiechart.js │ ├── emoji │ │ ├── emoji.css │ │ ├── emoji.js │ │ └── emoji.png │ ├── enjoyhint │ │ ├── Casino_Hand │ │ │ ├── casino_hand-webfont.eot │ │ │ ├── casino_hand-webfont.svg │ │ │ ├── casino_hand-webfont.ttf │ │ │ └── casino_hand-webfont.woff │ │ ├── enjoyhint.css │ │ └── enjoyhint.min.js │ ├── fastclick.js │ ├── flot │ │ ├── jquery.flot.categories.js │ │ ├── jquery.flot.js │ │ ├── jquery.flot.orderBars.js │ │ ├── jquery.flot.pie.js │ │ ├── jquery.flot.resize.js │ │ ├── jquery.flot.stack.js │ │ └── jquery.flot.time.js │ ├── fuelux │ │ ├── pillbox.js │ │ ├── spinner.js │ │ └── wizard.js │ ├── fullcalendar │ │ ├── fullcalendar.css │ │ └── fullcalendar.min.js │ ├── gmaps.js │ ├── icheck │ │ └── icheck.js │ ├── imagesloaded │ │ └── imagesloaded.js │ ├── ion.rangeSlider │ │ ├── ion.rangeSlider.css │ │ ├── ion.rangeSlider.min.js │ │ └── ion.rangeSlider.skinFlat.css │ ├── isotope │ │ └── isotope.pkgd.min.js │ ├── jquery-1.11.1.min.js │ ├── jquery-ui.custom.min.js │ ├── jquery.blockUI.js │ ├── jquery.dragsort-0.5.1.min.js │ ├── jquery.easing.min.js │ ├── jquery.form.js │ ├── jquery.maskedinput.min.js │ ├── jquery.mockjax.js │ ├── jquery.nestable.js │ ├── jquery.placeholder.js │ ├── jquery.qrcode.min.js │ ├── jquery.slimscroll.min.js │ ├── jquery.sortable.js │ ├── jquery.sparkline.js │ ├── jstree │ │ ├── jstree.min.js │ │ └── themes │ │ │ └── default │ │ │ ├── 32px.png │ │ │ ├── 40px.png │ │ │ ├── style.min.css │ │ │ └── throbber.gif │ ├── jvectormap │ │ ├── jquery-jvectormap-1.2.2.css │ │ ├── jquery-jvectormap-1.2.2.min.js │ │ └── jquery-jvectormap-world-mill-en.js │ ├── medium │ │ ├── medium-editor.css │ │ └── medium-editor.min.js │ ├── modernizr.js │ ├── moment.js │ ├── morris │ │ └── morris.js │ ├── parsley.min.js │ ├── parsley.zh_cn.js │ ├── raphael.min.js │ ├── responsive-tables │ │ ├── responsive-tables.js │ │ └── theme.css │ ├── select2 │ │ ├── select2-spinner.gif │ │ ├── select2.css │ │ ├── select2.min.js │ │ ├── select2.png │ │ └── select2x2.png │ ├── slider │ │ ├── bootstrap-slider.js │ │ └── slider.css │ ├── sorttable │ │ ├── Sortable.js │ │ └── Sortable.min.js │ ├── stepy │ │ ├── img │ │ │ └── alert.png │ │ ├── jquery.stepy.css │ │ ├── jquery.stepy.js │ │ └── jquery.validate.min.js │ ├── superbox │ │ └── superbox.min.js │ ├── switchery │ │ └── switchery.js │ ├── table-sortable │ │ ├── sortable.min.js │ │ └── theme.css │ ├── timepicker │ │ ├── jquery.timepicker.css │ │ └── jquery.timepicker.min.js │ ├── toastr │ │ ├── toastr.min.css │ │ └── toastr.min.js │ ├── treetable │ │ ├── jquery.treetable.css │ │ └── jquery.treetable.js │ ├── typeaheadjs │ │ ├── lib │ │ │ ├── typeahead.js │ │ │ └── typeahead.js-bootstrap.css │ │ └── typeaheadjs.js │ ├── ueditor │ │ ├── dialogs │ │ │ ├── anchor │ │ │ │ └── anchor.html │ │ │ ├── attachment │ │ │ │ ├── attachment.css │ │ │ │ ├── attachment.html │ │ │ │ ├── attachment.js │ │ │ │ ├── fileTypeImages │ │ │ │ │ ├── icon_chm.gif │ │ │ │ │ ├── icon_default.png │ │ │ │ │ ├── icon_doc.gif │ │ │ │ │ ├── icon_exe.gif │ │ │ │ │ ├── icon_jpg.gif │ │ │ │ │ ├── icon_mp3.gif │ │ │ │ │ ├── icon_mv.gif │ │ │ │ │ ├── icon_pdf.gif │ │ │ │ │ ├── icon_ppt.gif │ │ │ │ │ ├── icon_psd.gif │ │ │ │ │ ├── icon_rar.gif │ │ │ │ │ ├── icon_txt.gif │ │ │ │ │ └── icon_xls.gif │ │ │ │ └── images │ │ │ │ │ ├── alignicon.gif │ │ │ │ │ ├── alignicon.png │ │ │ │ │ ├── bg.png │ │ │ │ │ ├── file-icons.gif │ │ │ │ │ ├── file-icons.png │ │ │ │ │ ├── icons.gif │ │ │ │ │ ├── icons.png │ │ │ │ │ ├── image.png │ │ │ │ │ ├── progress.png │ │ │ │ │ ├── success.gif │ │ │ │ │ └── success.png │ │ │ ├── background │ │ │ │ ├── background.css │ │ │ │ ├── background.html │ │ │ │ ├── background.js │ │ │ │ └── images │ │ │ │ │ ├── bg.png │ │ │ │ │ └── success.png │ │ │ ├── charts │ │ │ │ ├── chart.config.js │ │ │ │ ├── charts.css │ │ │ │ ├── charts.html │ │ │ │ ├── charts.js │ │ │ │ └── images │ │ │ │ │ ├── charts0.png │ │ │ │ │ ├── charts1.png │ │ │ │ │ ├── charts2.png │ │ │ │ │ ├── charts3.png │ │ │ │ │ ├── charts4.png │ │ │ │ │ └── charts5.png │ │ │ ├── emotion │ │ │ │ ├── emotion.css │ │ │ │ ├── emotion.html │ │ │ │ ├── emotion.js │ │ │ │ └── images │ │ │ │ │ ├── 0.gif │ │ │ │ │ ├── bface.gif │ │ │ │ │ ├── cface.gif │ │ │ │ │ ├── fface.gif │ │ │ │ │ ├── jxface2.gif │ │ │ │ │ ├── neweditor-tab-bg.png │ │ │ │ │ ├── tface.gif │ │ │ │ │ ├── wface.gif │ │ │ │ │ └── yface.gif │ │ │ ├── gmap │ │ │ │ └── gmap.html │ │ │ ├── help │ │ │ │ ├── help.css │ │ │ │ ├── help.html │ │ │ │ └── help.js │ │ │ ├── image │ │ │ │ ├── image.css │ │ │ │ ├── image.html │ │ │ │ ├── image.js │ │ │ │ └── images │ │ │ │ │ ├── alignicon.jpg │ │ │ │ │ ├── bg.png │ │ │ │ │ ├── icons.gif │ │ │ │ │ ├── icons.png │ │ │ │ │ ├── image.png │ │ │ │ │ ├── progress.png │ │ │ │ │ ├── success.gif │ │ │ │ │ └── success.png │ │ │ ├── insertframe │ │ │ │ └── insertframe.html │ │ │ ├── internal.js │ │ │ ├── link │ │ │ │ └── link.html │ │ │ ├── map │ │ │ │ ├── map.html │ │ │ │ └── show.html │ │ │ ├── music │ │ │ │ ├── music.css │ │ │ │ ├── music.html │ │ │ │ └── music.js │ │ │ ├── preview │ │ │ │ └── preview.html │ │ │ ├── scrawl │ │ │ │ ├── images │ │ │ │ │ ├── addimg.png │ │ │ │ │ ├── brush.png │ │ │ │ │ ├── delimg.png │ │ │ │ │ ├── delimgH.png │ │ │ │ │ ├── empty.png │ │ │ │ │ ├── emptyH.png │ │ │ │ │ ├── eraser.png │ │ │ │ │ ├── redo.png │ │ │ │ │ ├── redoH.png │ │ │ │ │ ├── scale.png │ │ │ │ │ ├── scaleH.png │ │ │ │ │ ├── size.png │ │ │ │ │ ├── undo.png │ │ │ │ │ └── undoH.png │ │ │ │ ├── scrawl.css │ │ │ │ ├── scrawl.html │ │ │ │ └── scrawl.js │ │ │ ├── searchreplace │ │ │ │ ├── searchreplace.html │ │ │ │ └── searchreplace.js │ │ │ ├── snapscreen │ │ │ │ └── snapscreen.html │ │ │ ├── spechars │ │ │ │ ├── spechars.html │ │ │ │ └── spechars.js │ │ │ ├── table │ │ │ │ ├── dragicon.png │ │ │ │ ├── edittable.css │ │ │ │ ├── edittable.html │ │ │ │ ├── edittable.js │ │ │ │ ├── edittd.html │ │ │ │ └── edittip.html │ │ │ ├── template │ │ │ │ ├── config.js │ │ │ │ ├── images │ │ │ │ │ ├── bg.gif │ │ │ │ │ ├── pre0.png │ │ │ │ │ ├── pre1.png │ │ │ │ │ ├── pre2.png │ │ │ │ │ ├── pre3.png │ │ │ │ │ └── pre4.png │ │ │ │ ├── template.css │ │ │ │ ├── template.html │ │ │ │ └── template.js │ │ │ ├── video │ │ │ │ ├── images │ │ │ │ │ ├── bg.png │ │ │ │ │ ├── center_focus.jpg │ │ │ │ │ ├── file-icons.gif │ │ │ │ │ ├── file-icons.png │ │ │ │ │ ├── icons.gif │ │ │ │ │ ├── icons.png │ │ │ │ │ ├── image.png │ │ │ │ │ ├── left_focus.jpg │ │ │ │ │ ├── none_focus.jpg │ │ │ │ │ ├── progress.png │ │ │ │ │ ├── right_focus.jpg │ │ │ │ │ ├── success.gif │ │ │ │ │ └── success.png │ │ │ │ ├── video.css │ │ │ │ ├── video.html │ │ │ │ └── video.js │ │ │ ├── webapp │ │ │ │ └── webapp.html │ │ │ └── wordimage │ │ │ │ ├── fClipboard_ueditor.swf │ │ │ │ ├── imageUploader.swf │ │ │ │ ├── tangram.js │ │ │ │ ├── wordimage.html │ │ │ │ └── wordimage.js │ │ ├── index.html │ │ ├── lang │ │ │ ├── en │ │ │ │ ├── en.js │ │ │ │ └── images │ │ │ │ │ ├── addimage.png │ │ │ │ │ ├── alldeletebtnhoverskin.png │ │ │ │ │ ├── alldeletebtnupskin.png │ │ │ │ │ ├── background.png │ │ │ │ │ ├── button.png │ │ │ │ │ ├── copy.png │ │ │ │ │ ├── deletedisable.png │ │ │ │ │ ├── deleteenable.png │ │ │ │ │ ├── listbackground.png │ │ │ │ │ ├── localimage.png │ │ │ │ │ ├── music.png │ │ │ │ │ ├── rotateleftdisable.png │ │ │ │ │ ├── rotateleftenable.png │ │ │ │ │ ├── rotaterightdisable.png │ │ │ │ │ ├── rotaterightenable.png │ │ │ │ │ └── upload.png │ │ │ └── zh-cn │ │ │ │ ├── images │ │ │ │ ├── copy.png │ │ │ │ ├── localimage.png │ │ │ │ ├── music.png │ │ │ │ └── upload.png │ │ │ │ └── zh-cn.js │ │ ├── node │ │ │ └── config.json │ │ ├── php │ │ │ ├── Uploader.class.php │ │ │ ├── action_crawler.php │ │ │ ├── action_list.php │ │ │ ├── action_upload.php │ │ │ └── controller.php │ │ ├── themes │ │ │ ├── default │ │ │ │ ├── css │ │ │ │ │ ├── ueditor.css │ │ │ │ │ └── ueditor.min.css │ │ │ │ ├── dialogbase.css │ │ │ │ └── images │ │ │ │ │ ├── anchor.gif │ │ │ │ │ ├── arrow.png │ │ │ │ │ ├── arrow_down.png │ │ │ │ │ ├── arrow_up.png │ │ │ │ │ ├── button-bg.gif │ │ │ │ │ ├── cancelbutton.gif │ │ │ │ │ ├── charts.png │ │ │ │ │ ├── cursor_h.gif │ │ │ │ │ ├── cursor_h.png │ │ │ │ │ ├── cursor_v.gif │ │ │ │ │ ├── cursor_v.png │ │ │ │ │ ├── dialog-title-bg.png │ │ │ │ │ ├── filescan.png │ │ │ │ │ ├── highlighted.gif │ │ │ │ │ ├── icons-all.gif │ │ │ │ │ ├── icons.gif │ │ │ │ │ ├── icons.png │ │ │ │ │ ├── loaderror.png │ │ │ │ │ ├── loading.gif │ │ │ │ │ ├── lock.gif │ │ │ │ │ ├── neweditor-tab-bg.png │ │ │ │ │ ├── pagebreak.gif │ │ │ │ │ ├── scale.png │ │ │ │ │ ├── sortable.png │ │ │ │ │ ├── spacer.gif │ │ │ │ │ ├── sparator_v.png │ │ │ │ │ ├── table-cell-align.png │ │ │ │ │ ├── tangram-colorpicker.png │ │ │ │ │ ├── toolbar_bg.png │ │ │ │ │ ├── unhighlighted.gif │ │ │ │ │ ├── upload.png │ │ │ │ │ ├── videologo.gif │ │ │ │ │ ├── word.gif │ │ │ │ │ └── wordpaste.png │ │ │ └── iframe.css │ │ ├── third-party │ │ │ ├── SyntaxHighlighter │ │ │ │ ├── shCore.js │ │ │ │ └── shCoreDefault.css │ │ │ ├── codemirror │ │ │ │ ├── codemirror.css │ │ │ │ └── codemirror.js │ │ │ ├── highcharts │ │ │ │ ├── adapters │ │ │ │ │ ├── mootools-adapter.js │ │ │ │ │ ├── mootools-adapter.src.js │ │ │ │ │ ├── prototype-adapter.js │ │ │ │ │ ├── prototype-adapter.src.js │ │ │ │ │ ├── standalone-framework.js │ │ │ │ │ └── standalone-framework.src.js │ │ │ │ ├── highcharts-more.js │ │ │ │ ├── highcharts-more.src.js │ │ │ │ ├── highcharts.js │ │ │ │ ├── highcharts.src.js │ │ │ │ ├── modules │ │ │ │ │ ├── annotations.js │ │ │ │ │ ├── annotations.src.js │ │ │ │ │ ├── canvas-tools.js │ │ │ │ │ ├── canvas-tools.src.js │ │ │ │ │ ├── data.js │ │ │ │ │ ├── data.src.js │ │ │ │ │ ├── drilldown.js │ │ │ │ │ ├── drilldown.src.js │ │ │ │ │ ├── exporting.js │ │ │ │ │ ├── exporting.src.js │ │ │ │ │ ├── funnel.js │ │ │ │ │ ├── funnel.src.js │ │ │ │ │ ├── heatmap.js │ │ │ │ │ ├── heatmap.src.js │ │ │ │ │ ├── map.js │ │ │ │ │ ├── map.src.js │ │ │ │ │ ├── no-data-to-display.js │ │ │ │ │ └── no-data-to-display.src.js │ │ │ │ └── themes │ │ │ │ │ ├── dark-blue.js │ │ │ │ │ ├── dark-green.js │ │ │ │ │ ├── gray.js │ │ │ │ │ ├── grid.js │ │ │ │ │ └── skies.js │ │ │ ├── jquery-1.10.2.js │ │ │ ├── jquery-1.10.2.min.js │ │ │ ├── jquery-1.10.2.min.map │ │ │ ├── snapscreen │ │ │ │ └── UEditorSnapscreen.exe │ │ │ ├── video-js │ │ │ │ ├── font │ │ │ │ │ ├── vjs.eot │ │ │ │ │ ├── vjs.svg │ │ │ │ │ ├── vjs.ttf │ │ │ │ │ └── vjs.woff │ │ │ │ ├── video-js.css │ │ │ │ ├── video-js.min.css │ │ │ │ ├── video-js.swf │ │ │ │ ├── video.dev.js │ │ │ │ └── video.js │ │ │ ├── webuploader │ │ │ │ ├── Uploader.swf │ │ │ │ ├── webuploader.css │ │ │ │ ├── webuploader.custom.js │ │ │ │ ├── webuploader.custom.min.js │ │ │ │ ├── webuploader.flashonly.js │ │ │ │ ├── webuploader.flashonly.min.js │ │ │ │ ├── webuploader.html5only.js │ │ │ │ ├── webuploader.html5only.min.js │ │ │ │ ├── webuploader.js │ │ │ │ ├── webuploader.min.js │ │ │ │ ├── webuploader.withoutimage.js │ │ │ │ └── webuploader.withoutimage.min.js │ │ │ └── zeroclipboard │ │ │ │ ├── ZeroClipboard.js │ │ │ │ ├── ZeroClipboard.min.js │ │ │ │ └── ZeroClipboard.swf │ │ ├── ueditor.all.js │ │ ├── ueditor.all.min.js │ │ ├── ueditor.config.js │ │ ├── ueditor.configWx.js │ │ ├── ueditor.parse.js │ │ └── ueditor.parse.min.js │ ├── uploadifive │ │ ├── jquery.uploadifive.js │ │ ├── jquery.uploadifive.min.js │ │ └── uploadifive.css │ ├── wysiwyg │ │ ├── bootstrap-wysiwyg.js │ │ └── jquery.hotkeys.js │ └── x-editable │ │ ├── bootstrap-editable.css │ │ ├── bootstrap-editable.css~ │ │ └── bootstrap-editable.js ├── public │ └── pc │ │ ├── css │ │ ├── base.min.css │ │ └── design.css │ │ └── image │ │ ├── 1.png │ │ ├── 2.png │ │ ├── bg1.png │ │ ├── bg2.png │ │ ├── bg3.png │ │ ├── bg4.png │ │ ├── bg5.png │ │ ├── demo.png │ │ ├── demo1.png │ │ ├── demo2.png │ │ ├── demo3.png │ │ ├── demo4.png │ │ ├── en.png │ │ ├── logo.jpg │ │ ├── nodejs.png │ │ ├── npm.png │ │ ├── sails.png │ │ └── zh.png └── robots.txt ├── config ├── autoreload.js ├── blueprints.js ├── bootstrap.js ├── connections.js ├── cors.js ├── csrf.js ├── custom │ ├── email.js │ ├── mysql.js │ ├── redis.js │ └── system.js ├── env │ ├── development.js │ └── production.js ├── globals.js ├── http.js ├── i18n.js ├── local.js ├── locales │ ├── _README.md │ ├── en.json │ └── zh.json ├── log.js ├── models.js ├── policies.js ├── routes.js ├── session.js ├── sockets.js └── views.js ├── docker-compose.yml ├── nodewk.sql ├── package.json ├── pay.jpg ├── tasks ├── README.md ├── config │ ├── clean.js │ ├── coffee.js │ ├── concat.js │ ├── copy.js │ ├── cssmin.js │ ├── jst.js │ ├── less.js │ ├── sails-linker.js │ ├── sync.js │ ├── uglify.js │ └── watch.js ├── pipeline.js └── register │ ├── build.js │ ├── buildProd.js │ ├── compileAssets.js │ ├── default.js │ ├── linkAssets.js │ ├── linkAssetsBuild.js │ ├── linkAssetsBuildProd.js │ ├── prod.js │ └── syncAssets.js └── views ├── error ├── 403.ejs ├── 404.ejs └── 500.ejs ├── homepage.ejs ├── layouts ├── layout.ejs ├── login.ejs ├── private.ejs ├── public.ejs └── public_wap.ejs ├── private ├── cms │ ├── article │ │ ├── add.ejs │ │ ├── detail.ejs │ │ ├── edit.ejs │ │ ├── index.ejs │ │ └── menu.ejs │ ├── channel │ │ ├── add.ejs │ │ ├── child.ejs │ │ ├── detail.ejs │ │ ├── edit.ejs │ │ ├── index.ejs │ │ └── sort.ejs │ ├── link │ │ ├── add.ejs │ │ ├── edit.ejs │ │ └── index.ejs │ ├── linkclass │ │ ├── add.ejs │ │ ├── edit.ejs │ │ └── index.ejs │ └── site │ │ └── index.ejs ├── conf │ ├── img │ │ └── index.ejs │ ├── shop │ │ └── index.ejs │ └── sms │ │ └── index.ejs ├── img │ └── image │ │ └── index.ejs ├── index.ejs ├── login.ejs ├── shop │ ├── area │ │ ├── add.ejs │ │ ├── child.ejs │ │ ├── edit.ejs │ │ ├── index.ejs │ │ └── sort.ejs │ ├── goods │ │ ├── brand │ │ │ ├── add.ejs │ │ │ ├── edit.ejs │ │ │ └── index.ejs │ │ ├── class │ │ │ ├── add.ejs │ │ │ ├── child.ejs │ │ │ ├── edit.ejs │ │ │ ├── index.ejs │ │ │ └── sort.ejs │ │ ├── goods │ │ │ ├── add.ejs │ │ │ ├── edit.ejs │ │ │ ├── index.ejs │ │ │ └── spec.ejs │ │ ├── spec │ │ │ ├── add.ejs │ │ │ ├── edit.ejs │ │ │ └── index.ejs │ │ └── type │ │ │ ├── add.ejs │ │ │ ├── edit.ejs │ │ │ ├── index.ejs │ │ │ ├── next.ejs │ │ │ └── spec.ejs │ └── member │ │ ├── level │ │ ├── add.ejs │ │ ├── edit.ejs │ │ └── index.ejs │ │ └── member │ │ ├── add.ejs │ │ ├── detail.ejs │ │ ├── edit.ejs │ │ └── index.ejs ├── sys │ ├── backup │ │ └── index.ejs │ ├── conf │ │ ├── add.ejs │ │ ├── edit.ejs │ │ └── index.ejs │ ├── ip │ │ ├── add.ejs │ │ ├── edit.ejs │ │ └── index.ejs │ ├── job │ │ ├── edit.ejs │ │ └── index.ejs │ ├── log │ │ └── index.ejs │ ├── menu │ │ ├── add.ejs │ │ ├── child.ejs │ │ ├── detail.ejs │ │ ├── edit.ejs │ │ ├── index.ejs │ │ └── sort.ejs │ ├── role │ │ ├── add.ejs │ │ ├── edit.ejs │ │ ├── editMenu.ejs │ │ ├── editUser.ejs │ │ ├── index.ejs │ │ ├── menu.ejs │ │ └── selectUser.ejs │ ├── unit │ │ ├── add.ejs │ │ ├── child.ejs │ │ ├── detail.ejs │ │ ├── edit.ejs │ │ └── index.ejs │ └── user │ │ ├── add.ejs │ │ ├── custom.ejs │ │ ├── detail.ejs │ │ ├── edit.ejs │ │ ├── index.ejs │ │ ├── menu.ejs │ │ └── pass.ejs └── wx │ ├── config │ ├── add.ejs │ ├── edit.ejs │ └── index.ejs │ ├── menu │ ├── add.ejs │ ├── edit.ejs │ ├── index.ejs │ └── keyword.ejs │ ├── msg │ ├── mass │ │ ├── add.ejs │ │ ├── detail.ejs │ │ ├── index.ejs │ │ ├── news.ejs │ │ ├── select.ejs │ │ └── send.ejs │ └── user │ │ ├── index.ejs │ │ └── reply.ejs │ ├── news │ ├── add.ejs │ ├── edit.ejs │ └── index.ejs │ ├── reply │ ├── add.ejs │ ├── edit.ejs │ ├── index.ejs │ └── select.ejs │ ├── sales │ ├── info │ │ ├── add.ejs │ │ ├── edit.ejs │ │ └── index.ejs │ ├── manage │ │ ├── add.ejs │ │ ├── edit.ejs │ │ └── index.ejs │ └── result │ │ └── index.ejs │ ├── txt │ ├── add.ejs │ ├── edit.ejs │ └── index.ejs │ └── user │ └── index.ejs ├── public └── pc │ ├── about.ejs │ ├── buttom.ejs │ ├── framework.ejs │ ├── index.ejs │ ├── nodeshop.ejs │ └── top.ejs └── test.ejs /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:6.2 2 | # Author 3 | MAINTAINER wizzer "wizzer@qq.com" 4 | ENV PORT 1337 5 | RUN apt-get update && apt-get install -y \ 6 | imagemagick \ 7 | --no-install-recommends && rm -rf /var/lib/apt/lists/* 8 | RUN mkdir -p /node/nodewk 9 | WORKDIR /node/nodewk 10 | 11 | RUN npm config set registry https://registry.npm.taobao.org 12 | RUN npm i node-gyp -g 13 | RUN npm i pm2 -g 14 | ADD api /node/nodewk/api 15 | ADD assets /node/nodewk/assets 16 | ADD config /node/nodewk/config 17 | ADD tasks /node/nodewk/tasks 18 | ADD views /node/nodewk/views 19 | ADD app.js /node/nodewk 20 | ADD Gruntfile.js /node/nodewk 21 | ADD package.json /node/nodewk 22 | RUN npm i 23 | EXPOSE ${PORT} 24 | ENV LANG C.UTF-8 25 | ENV TZ "Asia/Shanghai" 26 | VOLUME ["/node/nodewk/cert", "/node/nodewk/upload", "/node/nodewk/backup"] 27 | CMD [ "pm2", "start", "--no-daemon", "app.js" ] 28 | 29 | -------------------------------------------------------------------------------- /api/common/FileUtil.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by wizzer on 2016/4/11. 3 | */ 4 | var fs = require('fs'); 5 | var moment = require("moment"); 6 | module.exports = { 7 | geFileList: function (path) { 8 | var filesList = []; 9 | this.readFile(path, filesList); 10 | return filesList; 11 | }, 12 | //遍历读取文件 13 | readFile: function (path, filesList) { 14 | var self=this; 15 | files = fs.readdirSync(path);//需要用到同步读取 16 | files.forEach(walk); 17 | function walk(file) { 18 | var states = fs.statSync(path + '/' + file); 19 | if (states.isDirectory()) { 20 | self.readFile(path + '/' + file, filesList); 21 | } 22 | else { 23 | //创建一个对象保存信息 24 | var obj = {}; 25 | obj.size = states.size;//文件大小,以字节为单位 26 | obj.name = file;//文件名 27 | obj.path = path + '/' + file; //文件绝对路径 28 | obj.url=obj.path.replace(sails.config.appPath, ''); 29 | obj.mtime= parseInt(moment(states.mtime).format('x')); 30 | obj.atime= parseInt(moment(states.atime).format('x')); 31 | filesList.push(obj); 32 | } 33 | } 34 | } 35 | }; 36 | -------------------------------------------------------------------------------- /api/controllers/TestController.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Wizzer.cn on 9/9/15. 3 | */ 4 | module.exports = { 5 | login: function (req, res) { 6 | return res.view('private/login.ejs',{layout: 'layouts/login'}); 7 | } 8 | }; 9 | -------------------------------------------------------------------------------- /api/controllers/api/OauthController.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by wizzer on 2016/5/23. 3 | */ 4 | var StringUtil = require('../../common/StringUtil'); 5 | var moment = require('moment'); 6 | var jwt = require('jwt-simple'); 7 | module.exports = { 8 | token: function (req, res) { 9 | try { 10 | var client_id = req.body.client_id || ''; 11 | var client_secret = req.body.client_secret || ''; 12 | Api_token.findOne({client_id: client_id}).exec(function (e, o) { 13 | if (e||!o) { 14 | return res.json({code: 1, msg: 'client_id has error'}); 15 | } 16 | if (o.disabled) { 17 | return res.json({code: 2, msg: 'client_id has disabled'}); 18 | } 19 | if (client_secret != o.client_secret) { 20 | return res.json({code: 3, msg: 'client_secret has error'}); 21 | } 22 | var expires = moment().add(1,'days').valueOf(); 23 | var token = jwt.encode( 24 | { 25 | iss: o.id, 26 | exp: expires 27 | }, 28 | sails.config.system.MyConfig.jwtTokenSecret||'' 29 | ); 30 | return res.json({code:0,msg:'success',data:{ 31 | token : token, 32 | expires : expires, 33 | appid : o.id 34 | }}); 35 | }); 36 | } catch (err) { 37 | return res.json({code: 4, msg: 'params error'}); 38 | } 39 | } 40 | }; 41 | -------------------------------------------------------------------------------- /api/controllers/api/TestController.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by wizzer on 2016/8/23. 3 | */ 4 | var StringUtil = require('../../common/StringUtil'); 5 | var moment = require('moment'); 6 | module.exports = { 7 | sayHi: function (req, res) { 8 | return res.json({code: 0, msg: 'hi wizzer'}); 9 | } 10 | }; -------------------------------------------------------------------------------- /api/controllers/api/oauth.json: -------------------------------------------------------------------------------- 1 | /** 2 | * @api {POST} /api/oauth/token 01.Token 3 | * @apiName Token 4 | * @apiGroup Oauth 5 | * @apiVersion 1.0.0 6 | * @apiDescription 获取Token 7 | * @apiPermission anyone 8 | * 9 | * @apiParam {string} client_id client_id 10 | * @apiParam {string} client_secret client_secret 11 | * 12 | * @apiParamExample {json} 示例 13 | * POST /api/oauth/token 14 | * { 15 | * "client_id": "client_id", 16 | * "client_secret": "client_secret" 17 | * } 18 | * 19 | * @apiSuccess (成功) {number} code 0 20 | * @apiSuccess (成功) {string} msg success 21 | * @apiSuccess (成功) {Object} data Token对象 22 | * @apiSuccess (成功) {string} data.token Token 23 | * @apiSuccess (成功) {number} data.expires 失效时间(24小时)请保存若失效重新获取 24 | * @apiSuccess (成功) {number} data.appid AppId 25 | * @apiSuccessExample {json} 示例 26 | * HTTP/1.1 200 OK 27 | * { 28 | * "code": 0, 29 | * "msg": "success", 30 | * "data": { 31 | * "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOjIsImV4cCI6MTQ2NDE1NjA2OTg3Nn0.4i_o7gCjCKvOImSi4peCMgCUrzpdgbtmvMECKf5wkqE", 32 | * "expires": 1464156069876, 33 | * "appid": 2 34 | * } 35 | * } 36 | * 37 | * @apiError (失败) {number} code 1:client_id不存在 2:client_id禁用 3:client_secret错误 4:参数错误 38 | * @apiError (失败) {string} msg 错误文字描述 39 | * @apiErrorExample {json} 示例 40 | * HTTP/1.1 200 OK 41 | * { 42 | * "code": 1 43 | * "msg": "client_id has error" 44 | * } 45 | */ 46 | -------------------------------------------------------------------------------- /api/controllers/open/ImageController.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 通过Img_image表ID读取图片文件 3 | * Created by Wizzer.cn on 1/18/16. 4 | */ 5 | var moment = require("moment"); 6 | module.exports = { 7 | /** 8 | * type: s 小图 m 中图 l 大图 9 | * @param req 10 | * @param res 11 | * @returns {*} 12 | */ 13 | file: function (req, res) { 14 | 15 | var id=req.params.id||''; 16 | var type=req.query.type||''; 17 | if(id.indexOf('.')>0){ 18 | id=id.substring(0,id.indexOf('.')); 19 | Img_image.findOne(id).exec(function(e,o){ 20 | if(o){ 21 | var modi=req.get('If-Modified-Since'); 22 | var up=moment(o.updatedAt*1000).toDate().toUTCString(); 23 | if(modi == up){//缓存 24 | return res.send(304); 25 | } 26 | var path=o.src; 27 | if(type=='s'&& o.s_src){ 28 | path=o.s_src; 29 | }else if(type=='m'&& o.m_src){ 30 | path=o.m_src; 31 | }else if(type=='l'&& o.l_src){ 32 | path=o.l_src; 33 | } 34 | res.set('Last-Modified',up); 35 | return res.status(200).sendfile(sails.config.appPath+path); 36 | }else{ 37 | return res.send(404,'not exist'); 38 | } 39 | }); 40 | }else{ 41 | return res.send(404,'not exist'); 42 | } 43 | 44 | } 45 | }; 46 | -------------------------------------------------------------------------------- /api/controllers/private/HomeController.js: -------------------------------------------------------------------------------- 1 | /** 2 | * IndexController 3 | * 4 | * @description :: Server-side logic for managing indices 5 | * @help :: See http://sailsjs.org/#!/documentation/concepts/Controllers 6 | */ 7 | module.exports = { 8 | index: function (req, res) { 9 | var data=req.data; 10 | sails.log.debug('data::'+JSON.stringify(data)); 11 | return res.view('private/index.ejs',data); 12 | 13 | } 14 | }; 15 | 16 | -------------------------------------------------------------------------------- /api/controllers/private/cms/SiteController.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Wizzer.cn on 11/5/15. 3 | */ 4 | module.exports = { 5 | index: function (req, res) { 6 | Cms_site.findOrCreate({id: 1}).exec(function (err, obj) { 7 | req.data.obj = obj; 8 | return res.view('private/cms/site/index', req.data); 9 | }); 10 | }, 11 | editDo: function (req, res) { 12 | var body = req.body; 13 | Cms_site.update({id: body.id}, body).exec(function (err, obj) { 14 | if (err)return res.json({code: 1, msg: sails.__('update.fail')}); 15 | sails.config.system.SiteConfig=body; 16 | return res.json({code: 0, msg: sails.__('update.ok')}); 17 | }); 18 | } 19 | }; 20 | -------------------------------------------------------------------------------- /api/controllers/private/conf/ImgController.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Wizzer.cn on 11/5/15. 3 | */ 4 | var moment = require('moment'); 5 | module.exports = { 6 | index: function (req, res) { 7 | Img_config.findOrCreate({id: 1}).exec(function (err, obj) { 8 | req.data.obj = obj; 9 | return res.view('private/conf/img/index', req.data); 10 | }); 11 | }, 12 | editDo: function (req, res) { 13 | var body = req.body; 14 | body.updatedAt=moment().format('X'); 15 | Img_config.update({id: body.id}, body).exec(function (err, obj) { 16 | if (err)return res.json({code: 1, msg: sails.__('update.fail')}); 17 | return res.json({code: 0, msg: sails.__('update.ok')}); 18 | }); 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /api/controllers/private/img/ImageController.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Wizzer.cn on 1/18/16. 3 | */ 4 | var moment = require('moment'); 5 | module.exports = { 6 | index: function (req, res) { 7 | var id=req.query.id||''; 8 | var w=req.query.w||36; 9 | var h=req.query.w||36; 10 | var watermark=req.query.watermark||0; 11 | var type=req.query.type||'';//'' 默认文件路径,db :存数据库 shop:存数据库并生成大中小三图 12 | req.data.id=id; 13 | req.data.w=w; 14 | req.data.h=h; 15 | req.data.watermark=watermark; 16 | req.data.type=type; 17 | return res.view('private/img/image/index', req.data); 18 | } 19 | }; 20 | -------------------------------------------------------------------------------- /api/controllers/public/pc/IndexController.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Wizzer.cn on 9/9/15. 3 | */ 4 | module.exports = { 5 | index: function (req, res) { 6 | return res.view('public/pc/index.ejs',req.data); 7 | }, 8 | framework:function(req,res){ 9 | return res.view('public/pc/framework.ejs',req.data); 10 | }, 11 | nodeshop:function(req,res){ 12 | return res.view('public/pc/nodeshop.ejs',req.data); 13 | }, 14 | about:function(req,res){ 15 | return res.view('public/pc/about.ejs',req.data); 16 | } 17 | }; 18 | -------------------------------------------------------------------------------- /api/models/cms/Cms_article_content.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Wizzer.cn on 11/5/15. 3 | */ 4 | var moment = require('moment'); 5 | module.exports = { 6 | schema: true, 7 | autoCreatedAt: false, 8 | autoUpdatedAt: false, 9 | attributes: { 10 | content: { 11 | type: 'text' 12 | }, 13 | articleId: { 14 | model: 'Cms_article', 15 | index: true 16 | } 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /api/models/cms/Cms_link.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Wizzer.cn on 11/5/15. 3 | */ 4 | var moment = require('moment'); 5 | module.exports = { 6 | schema: true, 7 | autoCreatedAt: false, 8 | autoUpdatedAt: false, 9 | attributes: { 10 | id: { 11 | type: 'integer', 12 | autoIncrement: true, 13 | primaryKey: true 14 | }, 15 | name: { 16 | type: 'string', 17 | size: 100, 18 | required: true 19 | }, 20 | type: { 21 | type: 'string', 22 | size: 20 23 | }, 24 | picurl: { 25 | type: 'string' 26 | }, 27 | url: { 28 | type: 'string' 29 | }, 30 | target: { 31 | type: 'string' 32 | }, 33 | createdBy: { 34 | type: 'integer' 35 | }, 36 | createdAt: { 37 | type: 'integer', 38 | defaultsTo: function () { 39 | return moment().format('X'); 40 | } 41 | }, 42 | classId: { 43 | model: 'Cms_linkClass', 44 | index: true 45 | } 46 | } 47 | }; 48 | -------------------------------------------------------------------------------- /api/models/cms/Cms_linkClass.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Wizzer.cn on 11/4/15. 3 | */ 4 | var moment = require('moment'); 5 | module.exports = { 6 | schema: true, 7 | autoCreatedAt: false, 8 | autoUpdatedAt: false, 9 | attributes: { 10 | id: { 11 | type: 'integer', 12 | autoIncrement: true, 13 | primaryKey: true 14 | }, 15 | name: { 16 | type: 'string', 17 | size: 100, 18 | required: true, 19 | index:true 20 | }, 21 | createdBy: { 22 | type: 'integer' 23 | }, 24 | createdAt: { 25 | type: 'integer', 26 | defaultsTo: function () { 27 | return moment().format('X'); 28 | } 29 | }, 30 | links: { 31 | collection: 'Cms_link', 32 | via: 'classId' 33 | } 34 | }, 35 | getLinkList:function(name,cb){ 36 | Cms_linkClass.findOne({name:name}) 37 | .populate('links', {limit:1,sort: {createdAt: 'desc'}}).exec(function (err, list) { 38 | return cb(list); 39 | }); 40 | } 41 | }; 42 | -------------------------------------------------------------------------------- /api/models/img/Img_config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Wizzer.cn on 11/4/15. 3 | */ 4 | var moment = require('moment'); 5 | module.exports = { 6 | schema: true, 7 | autoCreatedAt: false, 8 | autoUpdatedAt: false, 9 | attributes: { 10 | id: { 11 | type: 'string', 12 | primaryKey: true, 13 | defaultsTo: function () { 14 | return 1; 15 | } 16 | }, 17 | s_width: { 18 | type: 'integer', 19 | defaultsTo: function () { 20 | return 0; 21 | } 22 | }, 23 | s_height: { 24 | type: 'integer', 25 | defaultsTo: function () { 26 | return 0; 27 | } 28 | }, 29 | m_width: { 30 | type: 'integer', 31 | defaultsTo: function () { 32 | return 0; 33 | } 34 | }, 35 | m_height: { 36 | type: 'integer', 37 | defaultsTo: function () { 38 | return 0; 39 | } 40 | }, 41 | wk_url: { 42 | type: 'string' 43 | }, 44 | wk_type:{ 45 | type: 'integer', 46 | defaultsTo: function () { 47 | return 0; 48 | } 49 | }, 50 | wk_txt:{ 51 | type: 'string' 52 | }, 53 | updatedAt: { 54 | type: 'integer', 55 | defaultsTo: function () { 56 | return moment().format('X'); 57 | } 58 | } 59 | } 60 | }; 61 | 62 | -------------------------------------------------------------------------------- /api/models/img/Img_image.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Wizzer.cn on 11/4/15. 3 | */ 4 | var moment = require('moment'); 5 | var uuid = require('node-uuid'); 6 | module.exports = { 7 | schema: true, 8 | autoCreatedAt: false, 9 | autoUpdatedAt: false, 10 | attributes: { 11 | id: { 12 | type: 'string', 13 | size:50, 14 | primaryKey: true, 15 | defaultsTo: function () { 16 | return uuid.v4().replace(new RegExp(/(-)/g), ''); 17 | } 18 | }, 19 | filename: { 20 | type: 'string' 21 | }, 22 | src: { 23 | type: 'string' 24 | }, 25 | url: { 26 | type: 'string' 27 | }, 28 | m_src: { 29 | type: 'string' 30 | }, 31 | s_src: { 32 | type: 'string' 33 | }, 34 | width: { 35 | type: 'integer', 36 | defaultsTo: function () { 37 | return 0; 38 | } 39 | }, 40 | height: { 41 | type: 'integer', 42 | defaultsTo: function () { 43 | return 0; 44 | } 45 | }, 46 | watermark: { 47 | type: 'boolean', 48 | defaultsTo: function () { 49 | return false; 50 | } 51 | }, 52 | updatedAt: { 53 | type: 'integer', 54 | defaultsTo: function () { 55 | return moment().format('X'); 56 | } 57 | } 58 | } 59 | }; 60 | 61 | -------------------------------------------------------------------------------- /api/models/sys/Sys_backup.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 数据备份 3 | * Created by wizzer on 2016/4/20. 4 | */ 5 | var moment = require('moment'); 6 | module.exports = { 7 | schema: true, 8 | autoCreatedAt: false, 9 | autoUpdatedAt: false, 10 | attributes: { 11 | id: { 12 | type: 'integer', 13 | autoIncrement: true, 14 | primaryKey: true 15 | }, 16 | //database 数据库备份 file数据文件备份 (排除临时文件夹) 17 | type: { 18 | type: 'string', 19 | enum: ['db','file'], 20 | size: 10, 21 | index:true 22 | }, 23 | //物理路径 24 | path:{ 25 | type:'string', 26 | size:255 27 | }, 28 | //文件名 29 | name:{ 30 | type:'string', 31 | size:255 32 | }, 33 | //操作人ID 34 | createdBy: { 35 | model: 'Sys_user', 36 | index:true 37 | }, 38 | createdAt:{ 39 | type:'integer', 40 | index: true, 41 | defaultsTo:function(){ 42 | return moment().format('X'); 43 | } 44 | } 45 | } 46 | }; 47 | -------------------------------------------------------------------------------- /api/models/sys/Sys_config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 系统参数 3 | * Created by wizzer on 2015/9/6. 4 | */ 5 | var moment = require('moment'); 6 | module.exports = { 7 | schema: true, 8 | autoCreatedAt: false, 9 | autoUpdatedAt: false, 10 | attributes: { 11 | id: { 12 | type: 'integer', 13 | autoIncrement: true, 14 | primaryKey: true 15 | }, 16 | config_key: { 17 | type: 'string', 18 | size: 100, 19 | required: true 20 | }, 21 | config_val: { 22 | type: 'string', 23 | size: 100, 24 | required: true 25 | }, 26 | createdAt:{ 27 | type:'integer', 28 | index: true, 29 | defaultsTo:function(){ 30 | return moment().format('X'); 31 | } 32 | } 33 | } 34 | }; 35 | -------------------------------------------------------------------------------- /api/models/sys/Sys_ip.js: -------------------------------------------------------------------------------- 1 | /** 2 | * IP策略 3 | * Created by wizzer on 2016/4/22. 4 | */ 5 | var moment = require('moment'); 6 | module.exports = { 7 | schema: true, 8 | autoCreatedAt: false, 9 | autoUpdatedAt: false, 10 | attributes: { 11 | id: { 12 | type: 'integer', 13 | autoIncrement: true, 14 | primaryKey: true 15 | }, 16 | ip: { 17 | type: 'string', 18 | size: 255 19 | }, 20 | disabled: { 21 | type: 'boolean', 22 | defaultsTo: function () { 23 | return false; 24 | } 25 | }, 26 | createdBy:{ 27 | model: 'Sys_user' 28 | }, 29 | createdAt: { 30 | type: 'integer', 31 | index: true, 32 | defaultsTo: function () { 33 | return moment().format('X'); 34 | } 35 | } 36 | } 37 | }; 38 | -------------------------------------------------------------------------------- /api/models/sys/Sys_job.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 定时任务 3 | * Created by wizzer on 2016/4/20. 4 | */ 5 | var moment = require('moment'); 6 | module.exports = { 7 | schema: true, 8 | autoCreatedAt: false, 9 | autoUpdatedAt: false, 10 | attributes: { 11 | id: { 12 | type: 'integer', 13 | autoIncrement: true, 14 | primaryKey: true 15 | }, 16 | name:{ 17 | type:'string', 18 | size:50 19 | }, 20 | cron:{ 21 | type:'string', 22 | size:50 23 | }, 24 | note:{ 25 | type:'string', 26 | size:255 27 | }, 28 | disabled: { 29 | type: 'boolean', 30 | defaultsTo: function () { 31 | return false; 32 | } 33 | }, 34 | updateTxt: { 35 | type:'string', 36 | size:255 37 | }, 38 | updateStatus: { 39 | type: 'boolean', 40 | defaultsTo: function () { 41 | return false; 42 | } 43 | }, 44 | updateAt:{ 45 | type:'integer', 46 | defaultsTo:function(){ 47 | return 0; 48 | } 49 | } 50 | } 51 | }; 52 | -------------------------------------------------------------------------------- /api/models/sys/Sys_log.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 系统日志 3 | * Created by wizzer on 2015/9/6. 4 | */ 5 | var moment = require('moment'); 6 | var StringUtil = require('../../common/StringUtil'); 7 | module.exports = { 8 | schema: true, 9 | autoCreatedAt: false, 10 | autoUpdatedAt: false, 11 | attributes: { 12 | id: { 13 | type: 'integer', 14 | autoIncrement: true, 15 | primaryKey: true 16 | }, 17 | type: { 18 | type: 'string', 19 | size: 10 20 | }, 21 | url:{ 22 | type:'string', 23 | size:100 24 | }, 25 | note:{ 26 | type:'string', 27 | size:255 28 | }, 29 | createdBy: {//操作人ID 30 | type: 'integer' 31 | }, 32 | createdByName: { 33 | type: 'string', 34 | size: 50 35 | }, 36 | createdIp:{ 37 | type:'string', 38 | size:20 39 | }, 40 | createdAt:{ 41 | type:'integer', 42 | index: true, 43 | defaultsTo:function(){ 44 | return moment().format('X'); 45 | } 46 | } 47 | }, 48 | /** 49 | * 记录日志 50 | * @param type 51 | * @param user 52 | * @param note 53 | * @param req 54 | */ 55 | log:function(type,user,note,req){ 56 | Sys_log.create({ 57 | type: type, url: req.url, note: note, 58 | createdBy: user.id, createdByName: user.nickname, createdIp: StringUtil.getIp(req) 59 | }).exec(function (err) { 60 | }); 61 | } 62 | }; 63 | -------------------------------------------------------------------------------- /api/models/sys/Sys_role.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Wizzer.cn on 9/10/15. 3 | */ 4 | var moment = require('moment'); 5 | module.exports = { 6 | schema: true, 7 | autoCreatedAt: false, 8 | autoUpdatedAt: false, 9 | attributes: { 10 | id: { 11 | type: 'integer', 12 | autoIncrement: true, 13 | primaryKey: true 14 | }, 15 | unitid: { 16 | model: 'Sys_unit' 17 | }, 18 | name: { 19 | type: 'string', 20 | size: 20, 21 | maxLength: 20, 22 | required: true 23 | }, 24 | code: { 25 | type: 'string', 26 | size: 50, 27 | maxLength: 50, 28 | required: true, 29 | unique: true 30 | }, 31 | disabled: { 32 | type: 'boolean', 33 | defaultsTo: function () { 34 | return false; 35 | } 36 | }, 37 | location: { 38 | type: 'integer', 39 | size: 11 40 | }, 41 | createdBy: { 42 | type: 'integer' 43 | }, 44 | createdAt: { 45 | type: 'integer', 46 | defaultsTo: function () { 47 | return moment().format('X'); 48 | } 49 | }, 50 | users: { 51 | collection: 'Sys_user', 52 | via: 'roles' 53 | //dominant: true 54 | }, 55 | menus: { 56 | collection: 'Sys_menu', 57 | via: 'roles' 58 | } 59 | } 60 | }; 61 | -------------------------------------------------------------------------------- /api/models/wx/Wx_mass.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by wizzer on 2016/5/9. 3 | */ 4 | var moment = require('moment'); 5 | module.exports = { 6 | schema: true, 7 | autoCreatedAt: false, 8 | autoUpdatedAt: false, 9 | attributes: { 10 | id: { 11 | type: 'integer', 12 | autoIncrement: true, 13 | primaryKey: true 14 | }, 15 | name: {//名称 16 | type: 'string', 17 | required: true 18 | }, 19 | type: {//news 图文 text文字 20 | type: 'string', 21 | size: 20, 22 | required: true 23 | }, 24 | media_id: {//图文消息media_id 25 | type: 'string' 26 | }, 27 | content:{//type==text文字 type==news newsids 28 | type: 'string' 29 | }, 30 | scope: {//all some 31 | type: 'string', 32 | size: 20 33 | }, 34 | status:{//0 待发送 1 已发送 2 发送失败 35 | type:'integer' 36 | }, 37 | createdBy: { 38 | type: 'integer' 39 | }, 40 | createdAt: { 41 | type: 'integer', 42 | defaultsTo: function () { 43 | return moment().format('X'); 44 | } 45 | }, 46 | wxid: { 47 | model: 'Wx_config' 48 | } 49 | } 50 | }; 51 | -------------------------------------------------------------------------------- /api/models/wx/Wx_mass_news.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by wizzer on 2016/5/9. 3 | */ 4 | var moment = require('moment'); 5 | module.exports = { 6 | schema: true, 7 | autoCreatedAt: false, 8 | autoUpdatedAt: false, 9 | attributes: { 10 | id: { 11 | type: 'integer', 12 | autoIncrement: true, 13 | primaryKey: true 14 | }, 15 | thumb_media_id:{//图文消息缩略图的media_id 16 | type: 'string', 17 | required: true 18 | }, 19 | author:{//图文消息的作者 20 | type:'string', 21 | size:30 22 | }, 23 | title:{//图文消息的标题 24 | type:'string', 25 | required: true 26 | }, 27 | content_source_url:{//“阅读原文” 28 | type:'string' 29 | }, 30 | content:{//具备微信支付权限的公众号,可以使用a标签,其他公众号不能使用 31 | type:'text', 32 | required: true 33 | }, 34 | digest:{//图文消息的描述 35 | type:'text' 36 | }, 37 | show_cover_pic:{//是否显示封面,1为显示,0为不显示 38 | type:'integer' 39 | }, 40 | createdBy:{ 41 | type: 'integer' 42 | }, 43 | createdAt:{ 44 | type:'integer', 45 | defaultsTo:function(){ 46 | return moment().format('X'); 47 | } 48 | }, 49 | wxid: { 50 | model: 'Wx_config' 51 | } 52 | } 53 | }; 54 | -------------------------------------------------------------------------------- /api/models/wx/Wx_mass_send.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by wizzer on 2016/5/9. 3 | */ 4 | var moment = require('moment'); 5 | module.exports = { 6 | schema: true, 7 | autoCreatedAt: false, 8 | autoUpdatedAt: false, 9 | attributes: { 10 | id: { 11 | type: 'integer', 12 | autoIncrement: true, 13 | primaryKey: true 14 | }, 15 | massId:{ 16 | model:'Wx_mass' 17 | }, 18 | receivers:{//openid列表,最多10000个 19 | type: 'text' 20 | }, 21 | status:{//0 待发送 1 已发送 2 发送失败 22 | type:'integer' 23 | }, 24 | msg_id:{ 25 | type:'string', 26 | size:20 27 | }, 28 | errcode:{ 29 | type: 'string', 30 | size:20 31 | }, 32 | errmsg:{ 33 | type:'string' 34 | }, 35 | createdBy: { 36 | type: 'integer' 37 | }, 38 | createdAt: { 39 | type: 'integer', 40 | defaultsTo: function () { 41 | return moment().format('X'); 42 | } 43 | }, 44 | wxid: { 45 | model: 'Wx_config' 46 | } 47 | } 48 | }; 49 | -------------------------------------------------------------------------------- /api/models/wx/Wx_menu.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Wizzer.cn on 10/28/15. 3 | */ 4 | var moment = require('moment'); 5 | module.exports = { 6 | schema: true, 7 | autoCreatedAt: false, 8 | autoUpdatedAt: false, 9 | attributes: { 10 | id: { 11 | type: 'integer', 12 | autoIncrement: true, 13 | primaryKey: true 14 | }, 15 | parentId: { 16 | type: 'integer' 17 | }, 18 | path: { 19 | type: 'string', 20 | size: 100 21 | }, 22 | name: { 23 | type: 'string', 24 | size: 20, 25 | maxLength: 20, 26 | required: true 27 | }, 28 | type: { 29 | type: 'string' 30 | }, 31 | key: { 32 | type: 'string' 33 | }, 34 | url: { 35 | type: 'string' 36 | }, 37 | hasChildren: { 38 | type: 'boolean', 39 | defaultsTo: function () { 40 | return false; 41 | } 42 | }, 43 | location: { 44 | type: 'integer', 45 | size: 11 46 | }, 47 | createdBy:{ 48 | type: 'integer' 49 | }, 50 | createdAt:{ 51 | type:'integer', 52 | defaultsTo:function(){ 53 | return moment().format('X'); 54 | } 55 | }, 56 | wxid: { 57 | model: 'Wx_config' 58 | } 59 | } 60 | }; 61 | -------------------------------------------------------------------------------- /api/models/wx/Wx_msg_reply.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by wizzer on 2016/5/6. 3 | */ 4 | var moment = require('moment'); 5 | module.exports = { 6 | schema: true, 7 | autoCreatedAt: false, 8 | autoUpdatedAt: false, 9 | attributes: { 10 | id: { 11 | type: 'integer', 12 | autoIncrement: true, 13 | primaryKey: true 14 | }, 15 | msgid:{ 16 | model:'Wx_msg' 17 | }, 18 | uid:{ 19 | model:'Wx_user' 20 | }, 21 | openid:{ 22 | type: 'string', 23 | index: true, 24 | size: 50 25 | }, 26 | type:{ 27 | type: 'string', 28 | size: 20 29 | }, 30 | content:{ 31 | type:'text' 32 | }, 33 | createdBy: { 34 | type: 'integer' 35 | }, 36 | createdAt: { 37 | type: 'integer', 38 | defaultsTo: function () { 39 | return moment().format('X'); 40 | } 41 | }, 42 | wxid: { 43 | model: 'Wx_config' 44 | } 45 | } 46 | }; 47 | -------------------------------------------------------------------------------- /api/models/wx/Wx_news.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Wizzer.cn on 10/27/15. 3 | */ 4 | var moment = require('moment'); 5 | module.exports = { 6 | schema: true, 7 | autoCreatedAt: false, 8 | autoUpdatedAt: false, 9 | attributes: { 10 | id: { 11 | type: 'integer', 12 | autoIncrement: true, 13 | primaryKey: true 14 | }, 15 | title: { 16 | type: 'string', 17 | required: true 18 | }, 19 | description: { 20 | type: 'string', 21 | required: true 22 | }, 23 | picUrl: { 24 | type: 'string', 25 | required: true 26 | }, 27 | url: { 28 | type: 'string', 29 | required: true 30 | }, 31 | createdBy:{ 32 | type: 'integer' 33 | }, 34 | createdAt:{ 35 | type:'integer', 36 | defaultsTo:function(){ 37 | return moment().format('X'); 38 | } 39 | } 40 | } 41 | }; 42 | -------------------------------------------------------------------------------- /api/models/wx/Wx_txt.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Wizzer.cn on 10/27/15. 3 | */ 4 | var moment = require('moment'); 5 | module.exports = { 6 | schema: true, 7 | autoCreatedAt: false, 8 | autoUpdatedAt: false, 9 | attributes: { 10 | id: { 11 | type: 'integer', 12 | autoIncrement: true, 13 | primaryKey: true 14 | }, 15 | title: { 16 | type: 'string', 17 | required: true 18 | }, 19 | content: { 20 | type: 'string', 21 | size: 500, 22 | required: true 23 | }, 24 | createdBy:{ 25 | type: 'integer' 26 | }, 27 | createdAt:{ 28 | type:'integer', 29 | defaultsTo:function(){ 30 | return moment().format('X'); 31 | } 32 | } 33 | } 34 | }; 35 | -------------------------------------------------------------------------------- /api/policies/login.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Wizzer.cn on 10/19/15. 3 | */ 4 | var StringUtil = require('../common/StringUtil'); 5 | module.exports = function (req, res, next) { 6 | var ip=StringUtil.getIp(req); 7 | var passed=false; 8 | sails.log.debug('ip::'+ip); 9 | Sys_ip.find({disabled:false}).exec(function(e,l){ 10 | if(l&& l.length>0){ 11 | l.forEach(function(o){ 12 | if(o.ip.indexOf(':')>0){//ipv6 13 | if(ip== o.ip) 14 | passed=true; 15 | }else{ 16 | if(ip== '::ffff:'+o.ip||ip== '::ffff:127.0.0.1'||ip== o.ip) 17 | passed=true; 18 | } 19 | }); 20 | if(passed){ 21 | return next(); 22 | }else{ 23 | return res.forbidden('IP受限'); 24 | } 25 | }else{ 26 | return next(); 27 | } 28 | }); 29 | }; 30 | -------------------------------------------------------------------------------- /api/policies/none.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by wizzer on 2016/5/23. 3 | */ 4 | module.exports = function (req, res, next) { 5 | return next(); 6 | }; 7 | -------------------------------------------------------------------------------- /api/policies/oauthAuth.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by wizzer on 2016/5/23. 3 | */ 4 | var url = require('url'); 5 | var jwt = require('jwt-simple'); 6 | module.exports = function (req, res, next) { 7 | var token = (req.body && req.body.token) || req.query.token || req.headers["x-token"]; 8 | if (token) { 9 | try { 10 | var decoded = jwt.decode(token, sails.config.system.MyConfig.jwtTokenSecret||'RrRO6ZNVLayReZD4KwaBQ7J3uM94Wk6D'); 11 | if (decoded.exp <= Date.now()) { 12 | // Api_token.findOne({client_id}) 13 | 14 | return res.json({code:1,msg:'token has expired'}); 15 | } 16 | req.appid = decoded.iss; 17 | return next() 18 | } catch (err) { 19 | return res.json({code:2,msg:'token has error'}); 20 | } 21 | } else { 22 | return res.json({code:3,msg:'token is Required'}); 23 | } 24 | }; 25 | -------------------------------------------------------------------------------- /api/responses/ok.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 200 (OK) Response 3 | * 4 | * Usage: 5 | * return res.ok(); 6 | * return res.ok(data); 7 | * return res.ok(data, 'auth/login'); 8 | * 9 | * @param {Object} data 10 | * @param {String|Object} options 11 | * - pass string to render specified view 12 | */ 13 | 14 | module.exports = function sendOK (data, options) { 15 | 16 | // Get access to `req`, `res`, & `sails` 17 | var req = this.req; 18 | var res = this.res; 19 | var sails = req._sails; 20 | 21 | sails.log.silly('res.ok() :: Sending 200 ("OK") response'); 22 | 23 | // Set status code 24 | res.status(200); 25 | 26 | // If appropriate, serve data as JSON(P) 27 | if (req.wantsJSON) { 28 | return res.jsonx(data); 29 | } 30 | 31 | // If second argument is a string, we take that to mean it refers to a view. 32 | // If it was omitted, use an empty object (`{}`) 33 | options = (typeof options === 'string') ? { view: options } : options || {}; 34 | 35 | // If a view was provided in options, serve it. 36 | // Otherwise try to guess an appropriate view, or if that doesn't 37 | // work, just send JSON. 38 | if (options.view) { 39 | return res.view(options.view, { data: data }); 40 | } 41 | 42 | // If no second argument provided, try to serve the implied view, 43 | // but fall back to sending JSON(P) if no view can be inferred. 44 | else return res.guessView({ data: data }, function couldNotGuessView () { 45 | return res.jsonx(data); 46 | }); 47 | 48 | }; 49 | -------------------------------------------------------------------------------- /api/services/EmailService.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 发送EMAIL服务 3 | * Created by wizzer on 2015/9/6. 4 | */ 5 | var nodemailer = require("nodemailer"); 6 | var smtpTransport = require('nodemailer-smtp-transport'); 7 | module.exports = { 8 | sendEmail: function (options) { 9 | /** 10 | * 建立SMTP连接 11 | */ 12 | var transporter= nodemailer.createTransport(smtpTransport({ 13 | host: sails.config.email.HostName, 14 | secure: sails.config.email.SSLOnConnect, 15 | port: sails.config.email.SmtpPort, 16 | connectionTimeout:30*1000, 17 | auth: { 18 | user: sails.config.email.UserName, 19 | pass: sails.config.email.Password 20 | } 21 | })); 22 | var mailOptions = { 23 | from:sails.config.email.UserName, 24 | to: options.email, // 收件列表 25 | subject: options.title, // 标题 26 | html: options.html // html 内容 27 | }; 28 | transporter.sendMail(mailOptions, function (error, response) { 29 | if (error) { 30 | console.log(error); 31 | } else { 32 | console.log("Message sent: ok");//response.message 33 | } 34 | transporter.close(); // 如果没用,关闭连接池 35 | }); 36 | } 37 | }; 38 | -------------------------------------------------------------------------------- /api/services/RedisService.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Wizzer.cn on 3/9/16. 3 | */ 4 | var redis = require("redis"); 5 | var client = redis.createClient(sails.config.redis); 6 | client.on("error", function (err) { 7 | sails.log("Redis error::" + err); 8 | }); 9 | module.exports = { 10 | set: function (key, val, time,cb) { 11 | client.set(key, val, function (err, reply){ 12 | if (time && time > 0) { 13 | client.expire(key, time);//单位:秒 14 | } 15 | cb(err,reply); 16 | }); 17 | }, 18 | get: function (key,cb) { 19 | client.get(key, function (err, reply) { 20 | cb(err,reply); 21 | }); 22 | } 23 | }; 24 | -------------------------------------------------------------------------------- /assets/bootstrap/fonts/glyphicons-halflings-regular (1).eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/bootstrap/fonts/glyphicons-halflings-regular (1).eot -------------------------------------------------------------------------------- /assets/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /assets/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /assets/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /assets/css/fonts/DXI1ORHCpsQm3Vp6mXoaTXhCUOGz7vYGh680lGh-uXM.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/css/fonts/DXI1ORHCpsQm3Vp6mXoaTXhCUOGz7vYGh680lGh-uXM.woff -------------------------------------------------------------------------------- /assets/css/fonts/EInbV5DfGHOiMmvb1Xr-hnhCUOGz7vYGh680lGh-uXM.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/css/fonts/EInbV5DfGHOiMmvb1Xr-hnhCUOGz7vYGh680lGh-uXM.woff -------------------------------------------------------------------------------- /assets/css/fonts/MTP_ySUJH_bn48VBG8sNSnhCUOGz7vYGh680lGh-uXM.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/css/fonts/MTP_ySUJH_bn48VBG8sNSnhCUOGz7vYGh680lGh-uXM.woff -------------------------------------------------------------------------------- /assets/css/fonts/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/css/fonts/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff -------------------------------------------------------------------------------- /assets/css/fonts/css.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Open Sans'; 3 | font-style: normal; 4 | font-weight: 300; 5 | src: local('Open Sans Light'), local('OpenSans-Light'), url(DXI1ORHCpsQm3Vp6mXoaTXhCUOGz7vYGh680lGh-uXM.woff) format('woff'); 6 | } 7 | @font-face { 8 | font-family: 'Open Sans'; 9 | font-style: normal; 10 | font-weight: 400; 11 | src: local('Open Sans'), local('OpenSans'), url(cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff) format('woff'); 12 | } 13 | @font-face { 14 | font-family: 'Open Sans'; 15 | font-style: normal; 16 | font-weight: 600; 17 | src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(MTP_ySUJH_bn48VBG8sNSnhCUOGz7vYGh680lGh-uXM.woff) format('woff'); 18 | } 19 | @font-face { 20 | font-family: 'Open Sans'; 21 | font-style: normal; 22 | font-weight: 700; 23 | src: local('Open Sans Bold'), local('OpenSans-Bold'), url(k3k702ZOKiLJc3WVjuplzHhCUOGz7vYGh680lGh-uXM.woff) format('woff'); 24 | } 25 | @font-face { 26 | font-family: 'Open Sans'; 27 | font-style: normal; 28 | font-weight: 800; 29 | src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'), url(EInbV5DfGHOiMmvb1Xr-hnhCUOGz7vYGh680lGh-uXM.woff) format('woff'); 30 | } 31 | -------------------------------------------------------------------------------- /assets/css/fonts/font.css: -------------------------------------------------------------------------------- 1 | @import url(css.css);body{font-family:"Open Sans","Helvetica Neue","宋体",Helvetica,Arial,sans-serif;font-size:13px}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-weight:400}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.heading-font{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif} -------------------------------------------------------------------------------- /assets/css/fonts/k3k702ZOKiLJc3WVjuplzHhCUOGz7vYGh680lGh-uXM.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/css/fonts/k3k702ZOKiLJc3WVjuplzHhCUOGz7vYGh680lGh-uXM.woff -------------------------------------------------------------------------------- /assets/css/importer.less: -------------------------------------------------------------------------------- 1 | /** 2 | * importer.less 3 | * 4 | * By default, new Sails projects are configured to compile this file 5 | * from LESS to CSS. Unlike CSS files, LESS files are not compiled and 6 | * included automatically unless they are imported below. 7 | * 8 | * The LESS files imported below are compiled and included in the order 9 | * they are listed. Mixins, variables, etc. should be imported first 10 | * so that they can be accessed by subsequent LESS stylesheets. 11 | * 12 | * (Just like the rest of the asset pipeline bundled in Sails, you can 13 | * always omit, customize, or replace this behavior with SASS, SCSS, 14 | * or any other Grunt tasks you like.) 15 | */ 16 | 17 | 18 | 19 | // For example: 20 | // 21 | // @import 'variables/colors.less'; 22 | // @import 'mixins/foo.less'; 23 | // @import 'mixins/bar.less'; 24 | // @import 'mixins/baz.less'; 25 | // 26 | // @import 'styleguide.less'; 27 | // @import 'pages/login.less'; 28 | // @import 'pages/signup.less'; 29 | // 30 | // etc. 31 | -------------------------------------------------------------------------------- /assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/favicon.ico -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont (1).eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/fonts/fontawesome-webfont (1).eot -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /assets/fonts/themify (1).eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/fonts/themify (1).eot -------------------------------------------------------------------------------- /assets/fonts/themify.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/fonts/themify.eot -------------------------------------------------------------------------------- /assets/fonts/themify.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/fonts/themify.ttf -------------------------------------------------------------------------------- /assets/fonts/themify.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/fonts/themify.woff -------------------------------------------------------------------------------- /assets/img/avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/avatar.jpg -------------------------------------------------------------------------------- /assets/img/close.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/close.gif -------------------------------------------------------------------------------- /assets/img/cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/cover.jpg -------------------------------------------------------------------------------- /assets/img/empty.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/empty.bmp -------------------------------------------------------------------------------- /assets/img/face1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/face1.jpg -------------------------------------------------------------------------------- /assets/img/face3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/face3.jpg -------------------------------------------------------------------------------- /assets/img/face4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/face4.jpg -------------------------------------------------------------------------------- /assets/img/face5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/face5.jpg -------------------------------------------------------------------------------- /assets/img/fishy4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/fishy4.png -------------------------------------------------------------------------------- /assets/img/flags/cn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/flags/cn.png -------------------------------------------------------------------------------- /assets/img/flags/es.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/flags/es.png -------------------------------------------------------------------------------- /assets/img/flags/fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/flags/fr.png -------------------------------------------------------------------------------- /assets/img/flags/us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/flags/us.png -------------------------------------------------------------------------------- /assets/img/flags/za.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/flags/za.png -------------------------------------------------------------------------------- /assets/img/image_devInTub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/image_devInTub.png -------------------------------------------------------------------------------- /assets/img/invoice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/invoice.png -------------------------------------------------------------------------------- /assets/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/loading.gif -------------------------------------------------------------------------------- /assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/logo.png -------------------------------------------------------------------------------- /assets/img/man.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/man.png -------------------------------------------------------------------------------- /assets/img/minimal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/minimal.png -------------------------------------------------------------------------------- /assets/img/minimal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/minimal@2x.png -------------------------------------------------------------------------------- /assets/img/panel/boxed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/panel/boxed.png -------------------------------------------------------------------------------- /assets/img/panel/scroll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/panel/scroll.png -------------------------------------------------------------------------------- /assets/img/panel/small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/panel/small.png -------------------------------------------------------------------------------- /assets/img/sago.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/sago.jpg -------------------------------------------------------------------------------- /assets/img/sprite-skin-flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/img/sprite-skin-flat.png -------------------------------------------------------------------------------- /assets/js/animated.js: -------------------------------------------------------------------------------- 1 | var demoAnimated=function(){function testAnim(x){$('.service > div').removeClass().addClass(x+' animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend',function(){$(this).removeClass();});} 2 | return{init:function(){$('.chosen').on('change',function(){var anim=$(this).val();testAnim(anim);});}};}();$(function(){"use strict";demoAnimated.init();}); -------------------------------------------------------------------------------- /assets/js/buttons.js: -------------------------------------------------------------------------------- 1 | var demoButtons=function(){return{init:function(){$(".loading-demo").on("click",function(){var btn=$(this);btn.button("loading");setTimeout(function(){btn.button("reset");},3000);});}};}();$(function(){"use strict";demoButtons.init();}); -------------------------------------------------------------------------------- /assets/js/catalog.js: -------------------------------------------------------------------------------- 1 | var catalog=function(){var container;function events(){$(document).on("click",".toggle-sidebar",function(e){e.preventDefault();e.stopPropagation();container.isotope('layout');});$(document).on("click",".view-options label",function(e){e.preventDefault();e.stopPropagation();if($(this).data("view")==="grid"){container.isotope('layout');}else if($(this).data("view")==="list"){container.isotope('layout');}});$(window).load(function(){container=$(".feed").isotope({resizable:false,itemSelector:".switch-item",layoutMode:"masonry"});$(".filter a").on("click",function(){var selector=$(this).attr("data-filter");$(".filter").find("li").removeClass("active");$(this).parent().addClass("active");container.isotope({filter:selector});return false;});});} 2 | return{init:function(){events();}};}();$(function(){"use strict";catalog.init();}); -------------------------------------------------------------------------------- /assets/js/datatables.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | $("head").append(""); 3 | $("body").append(""); 4 | $("body").append(""); 5 | }); 6 | -------------------------------------------------------------------------------- /assets/js/date.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by root on 1/5/16. 3 | */ 4 | // 对Date的扩展,将 Date 转化为指定格式的String 5 | // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, 6 | // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 7 | // 例子: 8 | // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 9 | // (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 10 | Date.prototype.format = function(fmt) 11 | { 12 | var o = { 13 | "M+" : this.getMonth()+1, //月份 14 | "d+" : this.getDate(), //日 15 | "h+" : this.getHours(), //小时 16 | "m+" : this.getMinutes(), //分 17 | "s+" : this.getSeconds(), //秒 18 | "q+" : Math.floor((this.getMonth()+3)/3), //季度 19 | "S" : this.getMilliseconds() //毫秒 20 | }; 21 | if(/(y+)/.test(fmt)) 22 | fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 23 | for(var k in o) 24 | if(new RegExp("("+ k +")").test(fmt)) 25 | fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); 26 | return fmt; 27 | } 28 | -------------------------------------------------------------------------------- /assets/js/demo-mock.js: -------------------------------------------------------------------------------- 1 | $(function(){$.mockjaxSettings.responseTime=500;$.mockjax({url:'/post',response:function(settings){log(settings,this);}});$.mockjax({url:'/error',status:400,statusText:'Bad Request',response:function(settings){this.responseText='Please input correct value';log(settings,this);}});$.mockjax({url:'/status',status:500,response:function(settings){this.responseText='Internal Server Error';log(settings,this);}});$.mockjax({url:'/groups',response:function(settings){this.responseText=[{value:0,text:'Guest'},{value:1,text:'Service'},{value:2,text:'Customer'},{value:3,text:'Operator'},{value:4,text:'Support'},{value:5,text:'Admin'}];log(settings,this);}});function log(settings,response){var s=[],str;s.push(settings.type.toUpperCase()+' url = "'+ settings.url+'"');for(var a in settings.data){if(settings.data[a]&&typeof settings.data[a]==='object'){str=[];for(var j in settings.data[a]){str.push(j+': "'+settings.data[a][j]+'"');} 2 | str='{ '+str.join(', ')+' }';}else{str='"'+settings.data[a]+'"';} 3 | s.push(a+' = '+ str);} 4 | s.push('RESPONSE: status = '+ response.status);if(response.responseText){if($.isArray(response.responseText)){s.push('[');$.each(response.responseText,function(i,v){s.push('{value: '+ v.value+', text: "'+v.text+'"}');});s.push(']');}else{s.push($.trim(response.responseText));}} 5 | s.push('--------------------------------------\n');$('#console').val(s.join('\n')+ $('#console').val());}}); -------------------------------------------------------------------------------- /assets/js/editor.js: -------------------------------------------------------------------------------- 1 | var editableContent=function(){return{init:function(){var editor=new MediumEditor(".editable",{buttonLabels:"fontawesome"});}};}();$(function(){"use strict";editableContent.init();}); -------------------------------------------------------------------------------- /assets/js/form-custom.js: -------------------------------------------------------------------------------- 1 | var demoCustomForm=function(){return{init:function(){var elems=Array.prototype.slice.call(document.querySelectorAll('.js-switch'));var blue=document.querySelector('.js-switch-blue');var switchery=new Switchery(blue,{color:'#17c3e5'});var pink=document.querySelector('.js-switch-pink');var switchery=new Switchery(pink,{color:'#ff7791',disabled:true});var green=document.querySelector('.js-switch-green');var switchery=new Switchery(green,{color:'#2dcb73'});var red=document.querySelector('.js-switch-red');var switchery=new Switchery(red,{color:'#FF604F'});var secondary=document.querySelector('.js-switch-secondary');var switchery=new Switchery(secondary,{color:'#FFB244',secondaryColor:'#ff8787'});$('.categorized').tagsinput({tagClass:function(item){switch(item.continent){case'Europe':return'label label-primary';case'America':return'label label-danger';case'Australia':return'label label-success';case'Africa':return'label label-color';case'Asia':return'label label-warning';}},itemValue:'value',itemText:'text'});$('.categorized').tagsinput('add',{"value":1,"text":"Amsterdam","continent":"Europe"});$('.categorized').tagsinput('add',{"value":4,"text":"Washington","continent":"America"});$('.categorized').tagsinput('add',{"value":7,"text":"Sydney","continent":"Australia"});$('.categorized').tagsinput('add',{"value":10,"text":"Beijing","continent":"Asia"});$('.categorized').tagsinput('add',{"value":13,"text":"Cairo","continent":"Africa"});}};}();$(function(){"use strict";demoCustomForm.init();}); -------------------------------------------------------------------------------- /assets/js/form-masks.js: -------------------------------------------------------------------------------- 1 | var demoFormMasks=function(){function plugins(){$.mask.definitions['~']="[+-]";$("#date").mask("99/99/9999");$("#phone").mask("(999) 999-9999");$("#phoneExt").mask("(999) 999-9999? x99999");$("#iphone").mask("+33 999 999 999");$("#tin").mask("99-9999999");$("#ssn").mask("999-99-9999");$("#product").mask("a*-999-a999",{placeholder:" "});$("#eyescript").mask("~9.99 ~9.99 999");$("#po").mask("PO: aaa-999-***");$("#pct").mask("99%");$("#phoneAutoclearFalse").mask("(999) 999-9999",{autoclear:false});$("#phoneExtAutoclearFalse").mask("(999) 999-9999? x99999",{autoclear:false});$("input").blur(function(){$("#info").html("Unmasked value: "+ $(this).mask());}).dblclick(function(){$(this).unmask();});} 2 | return{init:function(){plugins();}};}();$(function(){"use strict";demoFormMasks.init();}); -------------------------------------------------------------------------------- /assets/js/form-wizard.js: -------------------------------------------------------------------------------- 1 | var demoFormWizard=function(){return{init:function(){$("#stepy").stepy({backLabel:"Previous Step",nextLabel:"Next Step",errorImage:true,block:true,validate:true});$('#stepy').validate({errorPlacement:function(error){$('#stepy .stepy-errors').append(error);},rules:{'email':'required'},messages:{'email':{required:'email address is required!'}}});}};}();$(function(){"use strict";demoFormWizard.init();}); -------------------------------------------------------------------------------- /assets/js/form-wysiwyg.js: -------------------------------------------------------------------------------- 1 | var wysiwygEditor=function(){function initToolbarBootstrapBindings(){var fonts=['Serif','Sans','Arial','Arial Black','Courier','Courier New','Comic Sans MS','Helvetica','Impact','Lucida Grande','Lucida Sans','Tahoma','Times','Times New Roman','Verdana'],fontTarget=$('[title=Font]').siblings('.dropdown-menu');$.each(fonts,function(idx,fontName){fontTarget.append($('
  • '+ fontName+'
  • '));});$('a[title]').tooltip({container:'body'});$('.dropdown-menu input').click(function(){return false;}).change(function(){$(this).parent('.dropdown-menu').siblings('.dropdown-toggle').dropdown('toggle');}).keydown('esc',function(){this.value='';$(this).change();});$('[data-role=magic-overlay]').each(function(){var overlay=$(this),target=$(overlay.data('target'));overlay.css('opacity',0).css('position','absolute').offset(target.offset()).width(target.outerWidth()).height(target.outerHeight());});if("onwebkitspeechchange"in document.createElement("input")){var editorOffset=$('#editor').offset();}else{$('#voiceBtn').hide();}} 2 | function showErrorAlert(reason,detail){var msg='';if(reason==='unsupported-file-type'){msg="Unsupported format "+ detail;}else{console.log("error uploading file",reason,detail);} 3 | $('
    '+'File upload error '+ msg+'
    ').prependTo('#alerts');} 4 | function plugins(){initToolbarBootstrapBindings();$('#editor').wysiwyg({fileUploadError:showErrorAlert});} 5 | return{init:function(){plugins();}};}();$(function(){"use strict";wysiwygEditor.init();}); -------------------------------------------------------------------------------- /assets/js/form.js: -------------------------------------------------------------------------------- 1 | var myForm = function() { 2 | return { 3 | init : function() { 4 | try{ 5 | //开关 6 | var elems = Array.prototype.slice.call(document 7 | .querySelectorAll(".js-switch")); 8 | var blues = $(".js-switch-blue"); 9 | $.each(blues, function(i,blue){ 10 | var switchery = new Switchery(blue, { 11 | color : "#1582dc" 12 | }); 13 | }); 14 | var pinks = $(".js-switch-pink"); 15 | $.each(pinks, function(i,pink){ 16 | var switchery = new Switchery(pink, { 17 | color : "#ff7791", 18 | disabled : true 19 | }); 20 | }); 21 | 22 | var greens = $(".js-switch-green"); 23 | $.each(greens, function(i,green){ 24 | var switchery = new Switchery(green, { 25 | color : "#15db81" 26 | }); 27 | }); 28 | 29 | var reds = $(".js-switch-red"); 30 | $.each(reds, function(i, red){ 31 | var switchery = new Switchery(red, { 32 | color : "#FF604F" 33 | }); 34 | }); 35 | 36 | var secondarys = $(".js-switch-secondary"); 37 | $.each(secondarys, function(i,secondary){ 38 | var switchery = new Switchery(secondary, { 39 | color : "#FFB244", 40 | secondaryColor : "#ff8787" 41 | }); 42 | }); 43 | 44 | 45 | }catch(e){ 46 | 47 | } 48 | } 49 | } 50 | }(); 51 | -------------------------------------------------------------------------------- /assets/js/gallery.js: -------------------------------------------------------------------------------- 1 | var appGallery=function(){function events(){$(".portfolio-ajax").addClass("loading");$(window).on("load",layoutItems);$(window).on("resize",layoutItems);$(document).on("click touchstart",".toggle-sidebar",function(){layoutItems();});$(".superbox").imagesLoaded().always(function(){$(".superbox").fadeIn();$(".portfolio-ajax").removeClass("loading");}).done(function(){$(".gallery-loader").addClass("hide");$(".superbox").removeClass("hide");layoutItems();});} 2 | function layoutItems(){initLayout();} 3 | function initLayout(){var portfolioWidth=getWidth();$(".superbox").find(".superbox-list").each(function(){$(this).css({width:portfolioWidth+"px"});});} 4 | function getWidth(){var wi=$(".superbox").width(),col=Math.floor(wi/1);if(wi>1024){col=Math.floor(wi/5);}else if(wi>767){col=Math.floor(wi/4);}else if(wi>480){col=Math.floor(wi/2);}else if(wi>320){col=Math.floor(wi/1);} 5 | return col;} 6 | function superbox(){$('.superbox').SuperBox();} 7 | return{init:function(){events();superbox();}};}();$(function(){"use strict";appGallery.init();}); -------------------------------------------------------------------------------- /assets/js/general.js: -------------------------------------------------------------------------------- 1 | var general=function(){return{init:function(){$("[data-toggle=tooltip]").tooltip();$("[data-toggle=popover]").popover().click(function(e){e.preventDefault();});}};}();$(function(){"use strict";general.init();}); -------------------------------------------------------------------------------- /assets/js/maps.js: -------------------------------------------------------------------------------- 1 | var googlemap=function(){var map;return{init:function(){map=new GMaps({div:"#map",lat:-12.043333,lng:-77.028333});map.addMarker({lat:-12.043333,lng:-77.03,title:"Lima",details:{database_id:42,author:"HPNeo"},click:function(e){if(console.log){console.log(e);} 2 | alert("You clicked on this marker");}});map.addMarker({lat:-12.042,lng:-77.028333,title:"Marker with InfoWindow",infoWindow:{content:"

    HTML Content

    "}});}};}();$(function(){"use strict";googlemap.init();}); -------------------------------------------------------------------------------- /assets/js/offscreen.js: -------------------------------------------------------------------------------- 1 | var offscreen=function(){var container=$(".app"),canvasDirection,direction,rapidClick=false;function hide(){container.removeClass("move-left move-right");canvasDirection="";setTimeout(function(){container.removeClass("offscreen");rapidClick=false;},300);} 2 | function toggle(direction){if(direction!==undefined&&direction==="rtl"){container.addClass("offscreen move-right").removeClass("move-left");canvasDirection="rtl";}else{container.addClass("offscreen move-left").removeClass("move-right");canvasDirection="ltr";}} 3 | function fixSlimScroll(){if(!$.browser.mobile&&!sublime.checkBreakout()){if(canvasDirection==="ltr"){if($(".offscreen-left").find(".slimScrollDiv").length!==0){$(".offscreen-left").find(".main-navigation, .slimscroll").slimScroll({height:'auto'});}} 4 | if(canvasDirection==="rtl"){if($(".offscreen-right").find(".slimScrollDiv").length!==0){$(".offscreen-right").find(".main-navigation, .slimscroll").slimScroll({height:'auto'});}}}} 5 | function events(){$("[data-toggle=offscreen]").on("click",function(e){e.preventDefault();e.stopPropagation();direction=$(this).data("move");if(direction===canvasDirection){hide();return;} 6 | if(rapidClick){return;} 7 | rapidClick=true;toggle(direction);fixSlimScroll();});$(".exit-offscreen").on("click",function(e){e.preventDefault();e.stopPropagation();hide();});} 8 | return{hide:hide,init:function(){events();}};}();$(function(){"use strict";offscreen.init();}); -------------------------------------------------------------------------------- /assets/js/pickers.js: -------------------------------------------------------------------------------- 1 | var demoFormPickers=function(){var contentStyle=$('.main-content')[0].style;function plugins(){$(".datepicker").datepicker();$(".timepicker").timepicker();$(".current-time").on("click",function(){$(".timepicker").timepicker("setTime",new Date());});$(".color-picker").colorpicker();$(".background-color").colorpicker().on("changeColor",function(ev){contentStyle.backgroundColor=ev.color.toHex();});$('#reservationtime').daterangepicker({timePicker:true,timePickerIncrement:30,format:'MM/DD/YYYY h:mm A'});$('#colorpalette1').colorPalette().on('selectColor',function(e){$('#selected-color1').val(e.color);});} 2 | return{init:function(){plugins();}};}();$(function(){"use strict";demoFormPickers.init();}); -------------------------------------------------------------------------------- /assets/js/select.js: -------------------------------------------------------------------------------- 1 | var _Select = { 2 | init : function(){ 3 | //引入必要的样式+JS文件 4 | $("head").append(""); 5 | $("body").append(""); 6 | } 7 | } 8 | $(document).ready(function () { 9 | _Select.init(); 10 | }); 11 | -------------------------------------------------------------------------------- /assets/js/sortable.js: -------------------------------------------------------------------------------- 1 | var demoSortableLists=function(){function events(){$(document).on("click","#nestable-menu",function(e){var target=$(e.target),action=target.data("action");if(action==="expand-all"){$(".dd").nestable("expandAll");} 2 | if(action==="collapse-all"){$(".dd").nestable("collapseAll");}});} 3 | function updateOutput(e){var list=e.length?e:$(e.target),output=list.data("output");if(window.JSON){output.text(window.JSON.stringify(list.nestable("serialize")));}else{output.text("JSON browser support required for this demo.");}} 4 | function plugins(){$("#nestable").nestable({group:1}).on("change",updateOutput);$("#nestable2").nestable({group:1}).on("change",updateOutput);updateOutput($("#nestable").data("output",$("#nestable-output")));updateOutput($("#nestable2").data("output",$("#nestable2-output")));$("#nestable3").nestable();} 5 | return{init:function(){events();plugins();}};}();$(function(){"use strict";demoSortableLists.init();}); -------------------------------------------------------------------------------- /assets/js/stepy.js: -------------------------------------------------------------------------------- 1 | var _Stepy = { 2 | init : function(){ 3 | //引入必要的样式+JS文件 4 | $("body").append(""); 5 | } 6 | } 7 | $(document).ready(function () { 8 | _Stepy.init(); 9 | }); 10 | -------------------------------------------------------------------------------- /assets/js/tour.js: -------------------------------------------------------------------------------- 1 | var tour=function(){return{init:function(){var enjoyhint_instance=new EnjoyHint({});var enjoyhint_script_steps=[{selector:'.off-right',event:'click',description:'This is your user menu. Click to show options'},{selector:'#options',event_type:'next',description:'Your sub menu pops up here. Click next to continue'},{selector:'#main-nav',event_type:'next',description:'This is your main sidebar navigation. Click next'},{selector:'#secondary-nav',event_type:'next',description:'and finally this is your secondary navigation.'},{selector:'.navbar-brand',event_type:'next',description:'Want to see the tour again? Just reload your browser.'}];enjoyhint_instance.setScript(enjoyhint_script_steps);if($(window).width()>767){enjoyhint_instance.runScript();}else{$(".wrapper").text("View tour no higher viewport");}}};}();$(function(){"use strict";tour.init();}); -------------------------------------------------------------------------------- /assets/js/validator.js: -------------------------------------------------------------------------------- 1 | var Validator = { 2 | init : function(){ 3 | //引入必要的样式+JS文件 4 | $("body").append(""); 5 | $("body").append(""); 6 | } 7 | }; 8 | $(document).ready(function () { 9 | Validator.init(); 10 | }); 11 | -------------------------------------------------------------------------------- /assets/js/vector.js: -------------------------------------------------------------------------------- 1 | var vectormap=function(){return{init:function(){$('#map').vectorMap({map:'world_mill_en',scaleColors:['#C8EEFF','#0071A4'],normalizeFunction:'polynomial',hoverOpacity:0.7,hoverColor:false,zoomOnScroll:false,regionStyle:{initial:{fill:'#9f9f9f',"fill-opacity":0.9,stroke:'#fff',},hover:{"fill-opacity":0.7},selected:{fill:'#1A94E0'}},markerStyle:{initial:{fill:'#e04a1a',stroke:'#FF604F',"fill-opacity":0.5,"stroke-width":1,"stroke-opacity":0.4,},hover:{stroke:'#C54638',"stroke-width":2},selected:{fill:'#C54638'},},backgroundColor:'#f1f4f9',markers:[{latLng:[41.90,12.45],name:'Vatican City'},{latLng:[43.73,7.41],name:'Monaco'},{latLng:[-0.52,166.93],name:'Nauru'},{latLng:[-8.51,179.21],name:'Tuvalu'},{latLng:[43.93,12.46],name:'San Marino'},{latLng:[47.14,9.52],name:'Liechtenstein'},{latLng:[7.11,171.06],name:'Marshall Islands'},{latLng:[17.3,-62.73],name:'Saint Kitts and Nevis'},{latLng:[3.2,73.22],name:'Maldives'},{latLng:[35.88,14.5],name:'Malta'},{latLng:[12.05,-61.75],name:'Grenada'},{latLng:[13.16,-61.23],name:'Saint Vincent and the Grenadines'},{latLng:[13.16,-59.55],name:'Barbados'},{latLng:[17.11,-61.85],name:'Antigua and Barbuda'},{latLng:[-4.61,55.45],name:'Seychelles'},{latLng:[7.35,134.46],name:'Palau'},{latLng:[42.5,1.51],name:'Andorra'},{latLng:[14.01,-60.98],name:'Saint Lucia'},{latLng:[6.91,158.18],name:'Federated States of Micronesia'},{latLng:[1.3,103.8],name:'Singapore'},{latLng:[1.46,173.03],name:'Kiribati'},{latLng:[-21.13,-175.2],name:'Tonga'},{latLng:[15.3,-61.38],name:'Dominica'},{latLng:[-20.2,57.5],name:'Mauritius'},{latLng:[26.02,50.55],name:'Bahrain'},{latLng:[0.33,6.73],name:'São Tomé and Príncipe'},]});}};}();$(function(){"use strict";vectormap.init();}); -------------------------------------------------------------------------------- /assets/plugins/address/address.css: -------------------------------------------------------------------------------- 1 | .editable-address{display:block;margin-bottom:5px;}.editable-address span{width:70px;display:inline-block;} -------------------------------------------------------------------------------- /assets/plugins/appear/jquery.appear.js: -------------------------------------------------------------------------------- 1 | (function($){var selectors=[];var check_binded=false;var check_lock=false;var defaults={interval:250,force_process:false};var $window=$(window);var $prior_appeared;function process(){check_lock=false;for(var index=0;index=window_top&&top-($element.data('appear-top-offset')||0)<=window_top+ $window.height()&&left+ $element.width()>=window_left&&left-($element.data('appear-left-offset')||0)<=window_left+ $window.width()){return true;}else{return false;}};$.fn.extend({appear:function(options){var opts=$.extend({},defaults,options||{});var selector=this.selector||this;if(!check_binded){var on_check=function(){if(check_lock){return;} 4 | check_lock=true;setTimeout(process,opts.interval);};$(window).scroll(on_check).resize(on_check);on_check();check_binded=true;} 5 | if(opts.force_process){setTimeout(process,opts.interval);} 6 | selectors.push(selector);return $(selector);}});$.extend({force_appear:function(){if(check_binded){process();return true;} 7 | return false;}});})(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-colorpalette/bootstrap-colorpalette.css: -------------------------------------------------------------------------------- 1 | .bootstrap-colorpalette{padding-left:4px;padding-right:4px;white-space:normal;line-height:1;}.bootstrap-colorpalette div{line-height:0;}.bootstrap-colorpalette .btn-color{width:17px;height:17px;border:1px solid #fff;margin:0;padding:0;}.bootstrap-colorpalette .btn-color:hover{border:1px solid #000;} -------------------------------------------------------------------------------- /assets/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css: -------------------------------------------------------------------------------- 1 | .bootstrap-tagsinput{background-color:#fff;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);display:inline-block;padding:4px 6px;margin-bottom:10px;color:#555;vertical-align:middle;border-radius:4px;max-width:100%;line-height:22px;}.bootstrap-tagsinput input{border:none;box-shadow:none;outline:none;background-color:transparent;padding:0;margin:0;width:auto!important;max-width:inherit;}.bootstrap-tagsinput input:focus{border:none;box-shadow:none;}.bootstrap-tagsinput .tag{margin-right:2px;color:white;}.bootstrap-tagsinput .tag [data-role="remove"]{margin-left:8px;cursor:pointer;}.bootstrap-tagsinput .tag [data-role="remove"]:after{content:"x";padding:0px 2px;}.bootstrap-tagsinput .tag [data-role="remove"]:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);}.bootstrap-tagsinput .tag [data-role="remove"]:hover:active{box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);} -------------------------------------------------------------------------------- /assets/plugins/chosen/chosen-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/chosen/chosen-sprite.png -------------------------------------------------------------------------------- /assets/plugins/chosen/chosen-sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/chosen/chosen-sprite@2x.png -------------------------------------------------------------------------------- /assets/plugins/colorpicker/img/alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/colorpicker/img/alpha.png -------------------------------------------------------------------------------- /assets/plugins/colorpicker/img/hue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/colorpicker/img/hue.png -------------------------------------------------------------------------------- /assets/plugins/colorpicker/img/saturation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/colorpicker/img/saturation.png -------------------------------------------------------------------------------- /assets/plugins/count-to/jquery.countTo.js: -------------------------------------------------------------------------------- 1 | (function($){$.fn.countTo=function(options){options=options||{};return $(this).each(function(){var settings=$.extend({},$.fn.countTo.defaults,{from:$(this).data('from'),to:$(this).data('to'),speed:$(this).data('speed'),refreshInterval:$(this).data('refresh-interval'),decimals:$(this).data('decimals')},options);var loops=Math.ceil(settings.speed/settings.refreshInterval),increment=(settings.to- settings.from)/loops;var self=this,$self=$(this),loopCount=0,value=settings.from,data=$self.data('countTo')||{};$self.data('countTo',data);if(data.interval){clearInterval(data.interval);} 2 | data.interval=setInterval(updateTimer,settings.refreshInterval);render(value);function updateTimer(){value+=increment;loopCount++;render(value);if(typeof(settings.onUpdate)=='function'){settings.onUpdate.call(self,value);} 3 | if(loopCount>=loops){$self.removeData('countTo');clearInterval(data.interval);value=settings.to;if(typeof(settings.onComplete)=='function'){settings.onComplete.call(self,value);}}} 4 | function render(value){var formattedValue=settings.formatter.call(self,value,settings);$self.text(formattedValue);}});};$.fn.countTo.defaults={from:0,to:0,speed:1000,refreshInterval:100,decimals:0,formatter:formatter,onUpdate:null,onComplete:null};function formatter(value,settings){return value.toFixed(settings.decimals);}}(jQuery)); -------------------------------------------------------------------------------- /assets/plugins/datatables/cn.json: -------------------------------------------------------------------------------- 1 | { 2 | "sProcessing": "处理中...", 3 | "sLengthMenu": "显示 _MENU_ 条结果", 4 | "sZeroRecords": "没有匹配结果", 5 | "sInfo": "显示第 _START_ 至 _END_ 条结果,共 _TOTAL_ 条", 6 | "sInfoEmpty": "显示第 0 至 0 条结果,共 0 条", 7 | "sInfoFiltered": "(每页显示 _MAX_ 条)", 8 | "sInfoPostFix": "", 9 | "sSearch": "搜索:", 10 | "sUrl": "", 11 | "sEmptyTable": "表中数据为空", 12 | "sLoadingRecords": "载入中...", 13 | "sInfoThousands": ",", 14 | "oPaginate": { 15 | "sFirst": "首页", 16 | "sPrevious": "上页", 17 | "sNext": "下页", 18 | "sLast": "末页" 19 | }, 20 | "oAria": { 21 | "sSortAscending": ": 以升序排列此列", 22 | "sSortDescending": ": 以降序排列此列" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /assets/plugins/datepicker/bootstrap-datetimepicker.min.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/datepicker/bootstrap-datetimepicker.min.css -------------------------------------------------------------------------------- /assets/plugins/datepicker/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 | -------------------------------------------------------------------------------- /assets/plugins/datepicker/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 | -------------------------------------------------------------------------------- /assets/plugins/dropzone/images/spritemap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/dropzone/images/spritemap.png -------------------------------------------------------------------------------- /assets/plugins/dropzone/images/spritemap@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/dropzone/images/spritemap@2x.png -------------------------------------------------------------------------------- /assets/plugins/emoji/emoji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/emoji/emoji.png -------------------------------------------------------------------------------- /assets/plugins/enjoyhint/Casino_Hand/casino_hand-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/enjoyhint/Casino_Hand/casino_hand-webfont.eot -------------------------------------------------------------------------------- /assets/plugins/enjoyhint/Casino_Hand/casino_hand-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/enjoyhint/Casino_Hand/casino_hand-webfont.ttf -------------------------------------------------------------------------------- /assets/plugins/enjoyhint/Casino_Hand/casino_hand-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/enjoyhint/Casino_Hand/casino_hand-webfont.woff -------------------------------------------------------------------------------- /assets/plugins/ion.rangeSlider/ion.rangeSlider.skinFlat.css: -------------------------------------------------------------------------------- 1 | .irs-line-mid,.irs-line-left,.irs-line-right,.irs-diapason,.irs-slider{background:url(../img/sprite-skin-flat.png) repeat-x;}.irs{height:40px;}.irs-with-grid{height:60px;}.irs-line{height:12px;top:25px;}.irs-line-left{height:12px;background-position:0 -30px;}.irs-line-mid{height:12px;background-position:0 0;}.irs-line-right{height:12px;background-position:100% -30px;}.irs-diapason{height:12px;top:25px;background-position:0 -60px;}.irs-slider{width:16px;height:18px;top:22px;background-position:0 -90px;}#irs-active-slider,.irs-slider:hover{background-position:0 -120px;}.irs-min,.irs-max{color:#999;font-size:10px;line-height:1.333;text-shadow:none;top:0;padding:1px 3px;background:#e1e4e9;border-radius:4px;}.irs-from,.irs-to,.irs-single{color:#fff;font-size:10px;line-height:1.333;text-shadow:none;padding:1px 5px;background:#ed5565;border-radius:4px;}.irs-from:after,.irs-to:after,.irs-single:after{position:absolute;display:block;content:"";bottom:-6px;left:50%;width:0;height:0;margin-left:-3px;overflow:hidden;border:3px solid transparent;border-top-color:#ed5565;}.irs-grid-pol{background:#e1e4e9;}.irs-grid-text{color:#999;}.irs-disabled{} -------------------------------------------------------------------------------- /assets/plugins/jstree/themes/default/32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/jstree/themes/default/32px.png -------------------------------------------------------------------------------- /assets/plugins/jstree/themes/default/40px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/jstree/themes/default/40px.png -------------------------------------------------------------------------------- /assets/plugins/jstree/themes/default/throbber.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/jstree/themes/default/throbber.gif -------------------------------------------------------------------------------- /assets/plugins/jvectormap/jquery-jvectormap-1.2.2.css: -------------------------------------------------------------------------------- 1 | .jvectormap-label{position:absolute;display:none;border:solid 1px #CDCDCD;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background:#292929;color:white;font-family:sans-serif,Verdana;font-size:smaller;padding:3px;}.jvectormap-zoomin,.jvectormap-zoomout{position:absolute;left:10px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background:#292929;padding:3px;color:white;width:10px;height:10px;cursor:pointer;line-height:10px;text-align:center;}.jvectormap-zoomin{top:10px;}.jvectormap-zoomout{top:30px;} -------------------------------------------------------------------------------- /assets/plugins/responsive-tables/responsive-tables.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){var switched=false;var updateTables=function(){if(($(window).width()<767)&&!switched){switched=true;$("table.responsive").each(function(i,element){splitTable($(element));});return true;} 2 | else if(switched&&($(window).width()>767)){switched=false;$("table.responsive").each(function(i,element){unsplitTable($(element));});}};$(window).load(updateTables);$(window).on("redraw",function(){switched=false;updateTables();});$(window).on("resize",updateTables);function splitTable(original) 3 | {original.wrap("
    ");var copy=original.clone();copy.find("td:not(:first-child), th:not(:first-child)").css("display","none");copy.removeClass("responsive");original.closest(".table-wrapper").append(copy);copy.wrap("
    ");original.wrap("
    ");setCellHeights(original,copy);} 4 | function unsplitTable(original){original.closest(".table-wrapper").find(".pinned").remove();original.unwrap();original.unwrap();} 5 | function setCellHeights(original,copy){var tr=original.find('tr'),tr_copy=copy.find('tr'),heights=[];tr.each(function(index){var self=$(this),tx=self.find('th, td');tx.each(function(){var height=$(this).outerHeight(true);heights[index]=heights[index]||0;if(height>heights[index])heights[index]=height;});});tr_copy.each(function(index){$(this).height(heights[index]);});}}); -------------------------------------------------------------------------------- /assets/plugins/responsive-tables/theme.css: -------------------------------------------------------------------------------- 1 | @media only screen and (max-width: 767px) {table.responsive{}.pinned{position:absolute;left:0;top:0;background:#fff;width:35%;overflow:hidden;overflow-x:scroll;}.pinned table{border-right:none;border-left:none;width:100%;}.pinned table th,.pinned table td{white-space:nowrap;}.pinned td:last-child{border-bottom:0;}div.table-wrapper{position:relative;overflow:hidden;}div.table-wrapper div.scrollable{margin-left:35%;}div.table-wrapper div.scrollable{overflow:scroll;overflow-y:hidden;}div.table-wrapper tr{height:inherit!important;}table.responsive td,table.responsive th{white-space:nowrap;overflow:hidden;}table.responsive th:first-child,table.responsive td:first-child,table.responsive td:first-child,table.responsive.pinned td{display:none;}} -------------------------------------------------------------------------------- /assets/plugins/select2/select2-spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/select2/select2-spinner.gif -------------------------------------------------------------------------------- /assets/plugins/select2/select2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/select2/select2.png -------------------------------------------------------------------------------- /assets/plugins/select2/select2x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/select2/select2x2.png -------------------------------------------------------------------------------- /assets/plugins/stepy/img/alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/stepy/img/alert.png -------------------------------------------------------------------------------- /assets/plugins/stepy/jquery.stepy.css: -------------------------------------------------------------------------------- 1 | .stepy-header{list-style:none;padding:0;margin:0;clear:both;display:inline-block;width:100%;border-radius:4px;margin-bottom:15px}.stepy-header li{cursor:pointer;float:left;padding:10px 15px;background:#fff;border-radius:4px;margin:0 15px 0 0}.stepy-header li div{font-weight:700;font-size:16px;line-height:1}.stepy-header li.stepy-active div{color:#2f89c1;cursor:auto}.stepy-header li span{color:#CCC;font-size:11px}.stepy-header li.stepy-active span{color:#BBB}.stepy-header li.stepy-error div{color:#ff604f}.stepy-step{background:#fff;padding:15px;clear:both;border-radius:4px}.stepy-step legend{border:0;width:auto;margin-bottom:0}.stepy-navigator{height:33px;margin-top:20px}.button-back{float:left}.button-next,.stepy-navigator input[type="submit"]{float:right}.button-back,.button-next,.stepy-navigator input[type="submit"]{border:1px solid #CCC;color:#7f0055;cursor:pointer;font:1.2em verdana;padding:7px 15px 8px;text-decoration:none;-khtml-border-radius:4px;-moz-border-radius:4px;-opera-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.stepy-navigator input[type="submit"]{background-color:transparent;border-color:#CCC;margin-bottom:0;padding:7px 15px 24px;width:90px}.button-back:hover,.button-next:hover,.stepy-navigator input[type="submit"]:hover{border-color:#BBB;color:#B07}.stepy-errors{margin-top:-45px}.stepy-errors label.error{background:url('img/alert.png') no-repeat 0 1px;color:#ff604f;margin-left:15px;padding-left:30px} -------------------------------------------------------------------------------- /assets/plugins/superbox/superbox.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | SuperBox v1.0.0 3 | by Todd Motto: http://www.toddmotto.com 4 | Latest version: https://github.com/toddmotto/superbox 5 | 6 | Copyright 2013 Todd Motto 7 | Licensed under the MIT license 8 | http://www.opensource.org/licenses/mit-license.php 9 | 10 | SuperBox, the lightbox reimagined. Fully responsive HTML5 image galleries. 11 | */ 12 | ;(function(e){e.fn.SuperBox=function(t){var n=e('
    ');var r=e('');var i=e('
    ');n.append(r).append(i);return this.each(function(){e(".superbox-list").click(function(){var t=e(this).find(".superbox-img");var i=t.data("img");r.attr("src",i);if(e(".superbox-current-img").css("opacity")==0){e(".superbox-current-img").animate({opacity:1})}if(e(this).next().hasClass("superbox-show")){n.toggle()}else{n.insertAfter(this).css("display","block")}e("html, body").animate({scrollTop:n.position().top-t.width()},"medium")});e(".superbox").on("click",".superbox-close",function(){e(".superbox-current-img").animate({opacity:0},200,function(){e(".superbox-show").slideUp()})})})}})(jQuery); -------------------------------------------------------------------------------- /assets/plugins/table-sortable/theme.css: -------------------------------------------------------------------------------- 1 | table[data-sortable] th:not([data-sortable="false"]){-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-touch-callout:none;cursor:pointer;}table[data-sortable] th:after{content:"";visibility:hidden;display:inline-block;vertical-align:inherit;height:0;width:0;border-width:5px;border-style:solid;border-color:transparent;margin-right:1px;margin-left:10px;float:right;}table[data-sortable] th[data-sorted="true"]:after{visibility:visible;}table[data-sortable] th[data-sorted-direction="descending"]:after{border-top-color:inherit;margin-top:8px;}table[data-sortable] th[data-sorted-direction="ascending"]:after{border-bottom-color:inherit;margin-top:3px;}table[data-sortable].sortable-theme-bootstrap{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333333;background:white;}table[data-sortable].sortable-theme-bootstrap thead th{border-bottom:2px solid #e0e0e0;}table[data-sortable].sortable-theme-bootstrap tbody td{border-top:1px solid #e0e0e0;}table[data-sortable].sortable-theme-bootstrap th[data-sorted="true"]{color:#3a87ad;background:#d9edf7;border-bottom-color:#bce8f1;}table[data-sortable].sortable-theme-bootstrap th[data-sorted="true"][data-sorted-direction="descending"]:after{border-top-color:#3a87ad;}table[data-sortable].sortable-theme-bootstrap th[data-sorted="true"][data-sorted-direction="ascending"]:after{border-bottom-color:#3a87ad;}table[data-sortable].sortable-theme-bootstrap.sortable-theme-bootstrap-striped tbody>tr:nth-child(odd)>td{background-color:#f9f9f9;} -------------------------------------------------------------------------------- /assets/plugins/timepicker/jquery.timepicker.css: -------------------------------------------------------------------------------- 1 | .ui-timepicker-wrapper{overflow-y:auto;height:150px;width:6.5em;background:#fff;border:1px solid #ddd;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);outline:none;z-index:10001;margin:0;}.ui-timepicker-wrapper.ui-timepicker-with-duration{width:13em;}.ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-30,.ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-60{width:11em;}.ui-timepicker-list{margin:0;padding:0;list-style:none;}.ui-timepicker-duration{margin-left:5px;color:#888;}.ui-timepicker-list:hover .ui-timepicker-duration{color:#888;}.ui-timepicker-list li{padding:3px 0 3px 5px;cursor:pointer;white-space:nowrap;color:#000;list-style:none;margin:0;}.ui-timepicker-list:hover .ui-timepicker-selected{background:#fff;color:#000;}li.ui-timepicker-selected,.ui-timepicker-list li:hover,.ui-timepicker-list .ui-timepicker-selected:hover{background:#1980EC;color:#fff;}li.ui-timepicker-selected .ui-timepicker-duration,.ui-timepicker-list li:hover .ui-timepicker-duration{color:#ccc;}.ui-timepicker-list li.ui-timepicker-disabled,.ui-timepicker-list li.ui-timepicker-disabled:hover,.ui-timepicker-list li.ui-timepicker-selected.ui-timepicker-disabled{color:#888;cursor:default;}.ui-timepicker-list li.ui-timepicker-disabled:hover,.ui-timepicker-list li.ui-timepicker-selected.ui-timepicker-disabled{background:#f2f2f2;} -------------------------------------------------------------------------------- /assets/plugins/typeaheadjs/lib/typeahead.js-bootstrap.css: -------------------------------------------------------------------------------- 1 | .twitter-typeahead .tt-query,.twitter-typeahead .tt-hint{margin-bottom:0;}.tt-dropdown-menu{min-width:160px;margin-top:2px;padding:5px 0;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;}.tt-suggestion{display:block;padding:3px 20px;}.tt-suggestion.tt-is-under-cursor{color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top,#0088cc,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0088cc),to(#0077b3));background-image:-webkit-linear-gradient(top,#0088cc,#0077b3);background-image:-o-linear-gradient(top,#0088cc,#0077b3);background-image:linear-gradient(to bottom,#0088cc,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.tt-suggestion.tt-is-under-cursor a{color:#fff;}.tt-suggestion p{margin:0;} -------------------------------------------------------------------------------- /assets/plugins/typeaheadjs/typeaheadjs.js: -------------------------------------------------------------------------------- 1 | (function($){"use strict";var Constructor=function(options){this.init('typeaheadjs',options,Constructor.defaults);};$.fn.editableutils.inherit(Constructor,$.fn.editabletypes.text);$.extend(Constructor.prototype,{render:function(){this.renderClear();this.setClass();this.setAttr('placeholder');this.$input.typeahead(this.options.typeahead);if($.fn.editableform.engine==='bs3'){if(this.$input.hasClass('input-sm')){this.$input.siblings('input.tt-hint').addClass('input-sm');} 2 | if(this.$input.hasClass('input-lg')){this.$input.siblings('input.tt-hint').addClass('input-lg');}}}});Constructor.defaults=$.extend({},$.fn.editabletypes.list.defaults,{tpl:'',typeahead:null,clear:true});$.fn.editabletypes.typeaheadjs=Constructor;}(window.jQuery)); -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_chm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_chm.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_default.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_doc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_doc.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_exe.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_exe.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_jpg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_jpg.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_mp3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_mp3.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_mv.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_mv.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_ppt.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_ppt.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_psd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_psd.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_rar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_rar.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_txt.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_txt.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_xls.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/fileTypeImages/icon_xls.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/images/alignicon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/images/alignicon.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/images/alignicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/images/alignicon.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/images/bg.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/images/file-icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/images/file-icons.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/images/file-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/images/file-icons.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/images/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/images/icons.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/images/icons.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/images/image.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/images/progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/images/progress.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/images/success.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/images/success.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/attachment/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/attachment/images/success.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/background/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/background/images/bg.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/background/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/background/images/success.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/charts/images/charts0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/charts/images/charts0.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/charts/images/charts1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/charts/images/charts1.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/charts/images/charts2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/charts/images/charts2.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/charts/images/charts3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/charts/images/charts3.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/charts/images/charts4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/charts/images/charts4.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/charts/images/charts5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/charts/images/charts5.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/emotion/images/0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/emotion/images/0.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/emotion/images/bface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/emotion/images/bface.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/emotion/images/cface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/emotion/images/cface.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/emotion/images/fface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/emotion/images/fface.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/emotion/images/jxface2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/emotion/images/jxface2.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/emotion/images/neweditor-tab-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/emotion/images/neweditor-tab-bg.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/emotion/images/tface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/emotion/images/tface.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/emotion/images/wface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/emotion/images/wface.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/emotion/images/yface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/emotion/images/yface.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/help/help.css: -------------------------------------------------------------------------------- 1 | .wrapper{width: 370px;margin: 10px auto;zoom: 1;} 2 | .tabbody{height: 360px;} 3 | .tabbody .panel{width:100%;height: 360px;position: absolute;background: #fff;} 4 | .tabbody .panel h1{font-size:26px;margin: 5px 0 0 5px;} 5 | .tabbody .panel p{font-size:12px;margin: 5px 0 0 5px;} 6 | .tabbody table{width:90%;line-height: 20px;margin: 5px 0 0 5px;;} 7 | .tabbody table thead{font-weight: bold;line-height: 25px;} -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/image/images/alignicon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/image/images/alignicon.jpg -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/image/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/image/images/bg.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/image/images/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/image/images/icons.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/image/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/image/images/icons.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/image/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/image/images/image.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/image/images/progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/image/images/progress.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/image/images/success.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/image/images/success.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/image/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/image/images/success.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/music/music.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 插入音乐 6 | 7 | 8 | 9 | 10 |
    11 | 15 |
    16 | 17 |
    18 |
    19 |
    20 |
    21 | 22 | 31 | 32 | -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/preview/preview.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 21 | 22 | 23 | 24 | 25 | 26 |
    27 | 28 |
    29 | 30 | 40 | -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/scrawl/images/addimg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/scrawl/images/addimg.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/scrawl/images/brush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/scrawl/images/brush.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/scrawl/images/delimg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/scrawl/images/delimg.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/scrawl/images/delimgH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/scrawl/images/delimgH.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/scrawl/images/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/scrawl/images/empty.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/scrawl/images/emptyH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/scrawl/images/emptyH.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/scrawl/images/eraser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/scrawl/images/eraser.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/scrawl/images/redo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/scrawl/images/redo.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/scrawl/images/redoH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/scrawl/images/redoH.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/scrawl/images/scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/scrawl/images/scale.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/scrawl/images/scaleH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/scrawl/images/scaleH.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/scrawl/images/size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/scrawl/images/size.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/scrawl/images/undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/scrawl/images/undo.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/scrawl/images/undoH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/scrawl/images/undoH.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/spechars/spechars.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 14 | 15 | 16 |
    17 |
    18 |
    19 | 20 | 21 | -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/table/dragicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/table/dragicon.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/table/edittable.css: -------------------------------------------------------------------------------- 1 | body{ 2 | overflow: hidden; 3 | width: 540px; 4 | } 5 | .wrapper { 6 | margin: 10px auto 0; 7 | font-size: 12px; 8 | overflow: hidden; 9 | width: 520px; 10 | height: 315px; 11 | } 12 | 13 | .clear { 14 | clear: both; 15 | } 16 | 17 | .wrapper .left { 18 | float: left; 19 | margin-left: 10px;; 20 | } 21 | 22 | .wrapper .right { 23 | float: right; 24 | border-left: 2px dotted #EDEDED; 25 | padding-left: 15px; 26 | } 27 | 28 | .section { 29 | margin-bottom: 15px; 30 | width: 240px; 31 | overflow: hidden; 32 | } 33 | 34 | .section h3 { 35 | font-weight: bold; 36 | padding: 5px 0; 37 | margin-bottom: 10px; 38 | border-bottom: 1px solid #EDEDED; 39 | font-size: 12px; 40 | } 41 | 42 | .section ul { 43 | list-style: none; 44 | overflow: hidden; 45 | clear: both; 46 | 47 | } 48 | 49 | .section li { 50 | float: left; 51 | width: 120px;; 52 | } 53 | 54 | .section .tone { 55 | width: 80px;; 56 | } 57 | 58 | .section .preview { 59 | width: 220px; 60 | } 61 | 62 | .section .preview table { 63 | text-align: center; 64 | vertical-align: middle; 65 | color: #666; 66 | } 67 | 68 | .section .preview caption { 69 | font-weight: bold; 70 | } 71 | 72 | .section .preview td { 73 | border-width: 1px; 74 | border-style: solid; 75 | height: 22px; 76 | } 77 | 78 | .section .preview th { 79 | border-style: solid; 80 | border-color: #DDD; 81 | border-width: 2px 1px 1px 1px; 82 | height: 22px; 83 | background-color: #F7F7F7; 84 | } -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/table/edittip.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 表格删除提示 5 | 6 | 17 | 18 | 19 |
    20 |
    21 | 22 |
    23 |
    24 | 25 |
    26 |
    27 | 32 | 33 | -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/template/images/bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/template/images/bg.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/template/images/pre0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/template/images/pre0.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/template/images/pre1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/template/images/pre1.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/template/images/pre2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/template/images/pre2.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/template/images/pre3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/template/images/pre3.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/template/images/pre4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/template/images/pre4.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/template/template.css: -------------------------------------------------------------------------------- 1 | .wrap{ padding: 5px;font-size: 14px;} 2 | .left{width:425px;float: left;} 3 | .right{width:160px;border: 1px solid #ccc;float: right;padding: 5px;margin-right: 5px;} 4 | .right .pre{height: 332px;overflow-y: auto;} 5 | .right .preitem{border: white 1px solid;margin: 5px 0;padding: 2px 0;} 6 | .right .preitem:hover{background-color: lemonChiffon;cursor: pointer;border: #ccc 1px solid;} 7 | .right .preitem img{display: block;margin: 0 auto;width:100px;} 8 | .clear{clear: both;} 9 | .top{height:26px;line-height: 26px;padding: 5px;} 10 | .bottom{height:320px;width:100%;margin: 0 auto;} 11 | .transparent{ background: url("images/bg.gif") repeat;} 12 | .bottom table tr td{border:1px dashed #ccc;} 13 | #colorPicker{width: 17px;height: 17px;border: 1px solid #CCC;display: inline-block;border-radius: 3px;box-shadow: 2px 2px 5px #D3D6DA;} 14 | .border_style1{padding:2px;border: 1px solid #ccc;border-radius: 5px;box-shadow:2px 2px 5px #d3d6da;} 15 | p{margin: 5px 0} 16 | table{clear:both;margin-bottom:10px;border-collapse:collapse;word-break:break-all;} 17 | li{clear:both} 18 | ol{padding-left:40px; } -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/template/template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    12 |
    13 | 14 |
    15 |
    16 |
    17 |
    18 | 19 |
    20 |
    21 |
    22 |
    23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/video/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/video/images/bg.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/video/images/center_focus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/video/images/center_focus.jpg -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/video/images/file-icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/video/images/file-icons.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/video/images/file-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/video/images/file-icons.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/video/images/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/video/images/icons.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/video/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/video/images/icons.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/video/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/video/images/image.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/video/images/left_focus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/video/images/left_focus.jpg -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/video/images/none_focus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/video/images/none_focus.jpg -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/video/images/progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/video/images/progress.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/video/images/right_focus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/video/images/right_focus.jpg -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/video/images/success.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/video/images/success.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/video/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/video/images/success.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/wordimage/fClipboard_ueditor.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/wordimage/fClipboard_ueditor.swf -------------------------------------------------------------------------------- /assets/plugins/ueditor/dialogs/wordimage/imageUploader.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/dialogs/wordimage/imageUploader.swf -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/en/images/addimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/en/images/addimage.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/en/images/alldeletebtnhoverskin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/en/images/alldeletebtnhoverskin.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/en/images/alldeletebtnupskin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/en/images/alldeletebtnupskin.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/en/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/en/images/background.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/en/images/button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/en/images/button.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/en/images/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/en/images/copy.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/en/images/deletedisable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/en/images/deletedisable.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/en/images/deleteenable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/en/images/deleteenable.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/en/images/listbackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/en/images/listbackground.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/en/images/localimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/en/images/localimage.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/en/images/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/en/images/music.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/en/images/rotateleftdisable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/en/images/rotateleftdisable.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/en/images/rotateleftenable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/en/images/rotateleftenable.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/en/images/rotaterightdisable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/en/images/rotaterightdisable.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/en/images/rotaterightenable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/en/images/rotaterightenable.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/en/images/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/en/images/upload.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/zh-cn/images/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/zh-cn/images/copy.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/zh-cn/images/localimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/zh-cn/images/localimage.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/zh-cn/images/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/zh-cn/images/music.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/lang/zh-cn/images/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/lang/zh-cn/images/upload.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/php/action_crawler.php: -------------------------------------------------------------------------------- 1 | $CONFIG['catcherPathFormat'], 14 | "maxSize" => $CONFIG['catcherMaxSize'], 15 | "allowFiles" => $CONFIG['catcherAllowFiles'], 16 | "oriName" => "remote.png" 17 | ); 18 | $fieldName = $CONFIG['catcherFieldName']; 19 | 20 | /* 抓取远程图片 */ 21 | $list = array(); 22 | if (isset($_POST[$fieldName])) { 23 | $source = $_POST[$fieldName]; 24 | } else { 25 | $source = $_GET[$fieldName]; 26 | } 27 | foreach ($source as $imgUrl) { 28 | $item = new Uploader($imgUrl, $config, "remote"); 29 | $info = $item->getFileInfo(); 30 | array_push($list, array( 31 | "state" => $info["state"], 32 | "url" => $info["url"], 33 | "size" => $info["size"], 34 | "title" => htmlspecialchars($info["title"]), 35 | "original" => htmlspecialchars($info["original"]), 36 | "source" => htmlspecialchars($imgUrl) 37 | )); 38 | } 39 | 40 | /* 返回抓取数据 */ 41 | return json_encode(array( 42 | 'state'=> count($list) ? 'SUCCESS':'ERROR', 43 | 'list'=> $list 44 | )); -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/anchor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/anchor.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/arrow.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/arrow_down.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/arrow_up.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/button-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/button-bg.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/cancelbutton.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/cancelbutton.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/charts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/charts.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/cursor_h.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/cursor_h.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/cursor_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/cursor_h.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/cursor_v.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/cursor_v.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/cursor_v.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/cursor_v.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/dialog-title-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/dialog-title-bg.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/filescan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/filescan.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/highlighted.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/highlighted.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/icons-all.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/icons-all.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/icons.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/icons.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/loaderror.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/loaderror.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/loading.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/lock.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/lock.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/neweditor-tab-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/neweditor-tab-bg.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/pagebreak.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/pagebreak.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/scale.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/sortable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/sortable.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/spacer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/spacer.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/sparator_v.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/sparator_v.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/table-cell-align.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/table-cell-align.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/tangram-colorpicker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/tangram-colorpicker.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/toolbar_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/toolbar_bg.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/unhighlighted.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/unhighlighted.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/upload.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/videologo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/videologo.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/word.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/word.gif -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/default/images/wordpaste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/themes/default/images/wordpaste.png -------------------------------------------------------------------------------- /assets/plugins/ueditor/themes/iframe.css: -------------------------------------------------------------------------------- 1 | /*可以在这里添加你自己的css*/ 2 | -------------------------------------------------------------------------------- /assets/plugins/ueditor/third-party/highcharts/modules/heatmap.js: -------------------------------------------------------------------------------- 1 | (function(b){var k=b.seriesTypes,l=b.each;k.heatmap=b.extendClass(k.map,{colorKey:"z",useMapGeometry:!1,pointArrayMap:["y","z"],translate:function(){var c=this,b=c.options,i=Number.MAX_VALUE,j=Number.MIN_VALUE;c.generatePoints();l(c.data,function(a){var e=a.x,f=a.y,d=a.z,g=(b.colsize||1)/2,h=(b.rowsize||1)/2;a.path=["M",e-g,f-h,"L",e+g,f-h,"L",e+g,f+h,"L",e-g,f+h,"Z"];a.shapeType="path";a.shapeArgs={d:c.translatePath(a.path)};typeof d==="number"&&(d>j?j=d:d dataMax) { 39 | dataMax = value; 40 | } else if (value < dataMin) { 41 | dataMin = value; 42 | } 43 | } 44 | }); 45 | 46 | series.translateColors(dataMin, dataMax); 47 | }, 48 | 49 | getBox: function () {} 50 | 51 | }); 52 | 53 | }(Highcharts)); 54 | -------------------------------------------------------------------------------- /assets/plugins/ueditor/third-party/highcharts/modules/no-data-to-display.js: -------------------------------------------------------------------------------- 1 | /* 2 | Highcharts JS v3.0.6 (2013-10-04) 3 | Plugin for displaying a message when there is no data visible in chart. 4 | 5 | (c) 2010-2013 Highsoft AS 6 | Author: Øystein Moseng 7 | 8 | License: www.highcharts.com/license 9 | */ 10 | (function(c){function f(){return!!this.points.length}function g(){this.hasData()?this.hideNoData():this.showNoData()}var d=c.seriesTypes,e=c.Chart.prototype,h=c.getOptions(),i=c.extend;i(h.lang,{noData:"No data to display"});h.noData={position:{x:0,y:0,align:"center",verticalAlign:"middle"},attr:{},style:{fontWeight:"bold",fontSize:"12px",color:"#60606a"}};d.pie.prototype.hasData=f;if(d.gauge)d.gauge.prototype.hasData=f;if(d.waterfall)d.waterfall.prototype.hasData=f;c.Series.prototype.hasData=function(){return this.dataMax!== 11 | void 0&&this.dataMin!==void 0};e.showNoData=function(a){var b=this.options,a=a||b.lang.noData,b=b.noData;if(!this.noDataLabel)this.noDataLabel=this.renderer.label(a,0,0,null,null,null,null,null,"no-data").attr(b.attr).css(b.style).add(),this.noDataLabel.align(i(this.noDataLabel.getBBox(),b.position),!1,"plotBox")};e.hideNoData=function(){if(this.noDataLabel)this.noDataLabel=this.noDataLabel.destroy()};e.hasData=function(){for(var a=this.series,b=a.length;b--;)if(a[b].hasData()&&!a[b].options.isInternal)return!0; 12 | return!1};e.callbacks.push(function(a){c.addEvent(a,"load",g);c.addEvent(a,"redraw",g)})})(Highcharts); 13 | -------------------------------------------------------------------------------- /assets/plugins/ueditor/third-party/snapscreen/UEditorSnapscreen.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/third-party/snapscreen/UEditorSnapscreen.exe -------------------------------------------------------------------------------- /assets/plugins/ueditor/third-party/video-js/font/vjs.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/third-party/video-js/font/vjs.eot -------------------------------------------------------------------------------- /assets/plugins/ueditor/third-party/video-js/font/vjs.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/third-party/video-js/font/vjs.ttf -------------------------------------------------------------------------------- /assets/plugins/ueditor/third-party/video-js/font/vjs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/third-party/video-js/font/vjs.woff -------------------------------------------------------------------------------- /assets/plugins/ueditor/third-party/video-js/video-js.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/third-party/video-js/video-js.swf -------------------------------------------------------------------------------- /assets/plugins/ueditor/third-party/webuploader/Uploader.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/third-party/webuploader/Uploader.swf -------------------------------------------------------------------------------- /assets/plugins/ueditor/third-party/webuploader/webuploader.css: -------------------------------------------------------------------------------- 1 | .webuploader-container { 2 | position: relative; 3 | } 4 | .webuploader-element-invisible { 5 | position: absolute !important; 6 | clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ 7 | clip: rect(1px,1px,1px,1px); 8 | } 9 | .webuploader-pick { 10 | position: relative; 11 | display: inline-block; 12 | cursor: pointer; 13 | background: #00b7ee; 14 | padding: 10px 15px; 15 | color: #fff; 16 | text-align: center; 17 | border-radius: 3px; 18 | overflow: hidden; 19 | } 20 | .webuploader-pick-hover { 21 | background: #00a2d4; 22 | } 23 | 24 | .webuploader-pick-disable { 25 | opacity: 0.6; 26 | pointer-events:none; 27 | } 28 | 29 | -------------------------------------------------------------------------------- /assets/plugins/ueditor/third-party/zeroclipboard/ZeroClipboard.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/plugins/ueditor/third-party/zeroclipboard/ZeroClipboard.swf -------------------------------------------------------------------------------- /assets/public/pc/image/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/1.png -------------------------------------------------------------------------------- /assets/public/pc/image/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/2.png -------------------------------------------------------------------------------- /assets/public/pc/image/bg1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/bg1.png -------------------------------------------------------------------------------- /assets/public/pc/image/bg2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/bg2.png -------------------------------------------------------------------------------- /assets/public/pc/image/bg3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/bg3.png -------------------------------------------------------------------------------- /assets/public/pc/image/bg4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/bg4.png -------------------------------------------------------------------------------- /assets/public/pc/image/bg5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/bg5.png -------------------------------------------------------------------------------- /assets/public/pc/image/demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/demo.png -------------------------------------------------------------------------------- /assets/public/pc/image/demo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/demo1.png -------------------------------------------------------------------------------- /assets/public/pc/image/demo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/demo2.png -------------------------------------------------------------------------------- /assets/public/pc/image/demo3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/demo3.png -------------------------------------------------------------------------------- /assets/public/pc/image/demo4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/demo4.png -------------------------------------------------------------------------------- /assets/public/pc/image/en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/en.png -------------------------------------------------------------------------------- /assets/public/pc/image/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/logo.jpg -------------------------------------------------------------------------------- /assets/public/pc/image/nodejs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/nodejs.png -------------------------------------------------------------------------------- /assets/public/pc/image/npm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/npm.png -------------------------------------------------------------------------------- /assets/public/pc/image/sails.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/sails.png -------------------------------------------------------------------------------- /assets/public/pc/image/zh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/assets/public/pc/image/zh.png -------------------------------------------------------------------------------- /assets/robots.txt: -------------------------------------------------------------------------------- 1 | # The robots.txt file is used to control how search engines index your live URLs. 2 | # See http://www.robotstxt.org/wc/norobots.html for more information. 3 | 4 | 5 | 6 | # To prevent search engines from seeing the site altogether, uncomment the next two lines: 7 | # User-Agent: * 8 | # Disallow: / 9 | -------------------------------------------------------------------------------- /config/autoreload.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by root on 2/1/16. 3 | */ 4 | module.exports.autoreload = { 5 | active: false, 6 | usePolling: false, 7 | dirs: [ 8 | "api/common", 9 | "api/policies", 10 | "api/models", 11 | "api/controllers", 12 | "api/services", 13 | "config" 14 | ], 15 | ignored: [ 16 | // Ignore all files with .ts extension 17 | "**.ts" 18 | ] 19 | }; 20 | -------------------------------------------------------------------------------- /config/custom/email.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by wizzer on 2015/9/6. 3 | */ 4 | module.exports.email = { 5 | /** 6 | * 若是QQ邮箱,需设置邮箱独立密码 7 | */ 8 | HostName: 'smtp.qq.com', 9 | SmtpPort: 465, 10 | UserName: 'wizzer@qq.com', 11 | Password: 'xxxxx', 12 | SSLOnConnect: true, 13 | From: '11624317@qq.com' 14 | }; 15 | -------------------------------------------------------------------------------- /config/custom/mysql.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by root on 20/4/16. 3 | */ 4 | module.exports.mysql = { 5 | host: '127.0.0.1', 6 | user: 'root', 7 | password: 'root', 8 | database: 'nodewk', 9 | pool: true, 10 | connectionLimit: 50, 11 | waitForConnections: true 12 | }; 13 | -------------------------------------------------------------------------------- /config/custom/redis.js: -------------------------------------------------------------------------------- 1 | /** 2 | * auth_pass Redis连接密码 3 | * Created by root on 9/17/15. 4 | */ 5 | module.exports.redis = { 6 | host: '127.0.0.1', 7 | port: 6379, 8 | auth_pass: '' 9 | }; 10 | -------------------------------------------------------------------------------- /config/custom/system.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by wizzer on 2015/9/6. 3 | */ 4 | module.exports.system = { 5 | AppBase:'', 6 | AppName:'NodeWk', 7 | AppDomain:'www.nodeshop.cn', 8 | AppIp:'127.0.0.1', 9 | AppShrotName:'NodeWk', 10 | AppCopyright:'Wizzer.cn', 11 | UploadPath:'/upload', 12 | MyConfig:{}, 13 | SiteConfig:{} 14 | }; 15 | -------------------------------------------------------------------------------- /config/env/development.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Development environment settings 3 | * 4 | * This file can include shared settings for a development team, 5 | * such as API keys or remote database passwords. If you're using 6 | * a version control solution for your Sails app, this file will 7 | * be committed to your repository unless you add it to your .gitignore 8 | * file. If your repository will be publicly viewable, don't add 9 | * any private information to this file! 10 | * 11 | */ 12 | 13 | module.exports = { 14 | 15 | /*************************************************************************** 16 | * Set the default database connection for models in the development * 17 | * environment (see config/connections.js and config/models.js ) * 18 | ***************************************************************************/ 19 | 20 | models: { 21 | connection: 'someMysqlServer' 22 | }, 23 | port: 80, 24 | log: { 25 | level: 'verbose' 26 | } 27 | }; 28 | -------------------------------------------------------------------------------- /config/env/production.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Production environment settings 3 | * 4 | * This file can include shared settings for a production environment, 5 | * such as API keys or remote database passwords. If you're using 6 | * a version control solution for your Sails app, this file will 7 | * be committed to your repository unless you add it to your .gitignore 8 | * file. If your repository will be publicly viewable, don't add 9 | * any private information to this file! 10 | * 11 | */ 12 | 13 | module.exports = { 14 | 15 | /*************************************************************************** 16 | * Set the default database connection for models in the production * 17 | * environment (see config/connections.js and config/models.js ) * 18 | ***************************************************************************/ 19 | 20 | models: { 21 | connection: 'someMysqlServer' 22 | }, 23 | 24 | /*************************************************************************** 25 | * Set the port in the production environment to 80 * 26 | ***************************************************************************/ 27 | 28 | port: 80, 29 | 30 | /*************************************************************************** 31 | * Set the log level in production environment to "silent" * 32 | ***************************************************************************/ 33 | log: { 34 | level: 'error' 35 | } 36 | 37 | }; 38 | -------------------------------------------------------------------------------- /config/locales/_README.md: -------------------------------------------------------------------------------- 1 | # Internationalization / Localization Settings 2 | 3 | > Also see the official docs on internationalization/localization: 4 | > http://links.sailsjs.org/docs/config/locales 5 | 6 | ## Locales 7 | All locale files live under `config/locales`. Here is where you can add translations 8 | as JSON key-value pairs. The name of the file should match the language that you are supporting, which allows for automatic language detection based on request headers. 9 | 10 | Here is an example locale stringfile for the Spanish language (`config/locales/es.json`): 11 | ```json 12 | { 13 | "Hello!": "Hola!", 14 | "Hello %s, how are you today?": "¿Hola %s, como estas?", 15 | } 16 | ``` 17 | ## Usage 18 | Locales can be accessed in controllers/policies through `res.i18n()`, or in views through the `__(key)` or `i18n(key)` functions. 19 | Remember that the keys are case sensitive and require exact key matches, e.g. 20 | 21 | ```ejs 22 |

    <%= __('Welcome to PencilPals!') %>

    23 |

    <%= i18n('Hello %s, how are you today?', 'Pencil Maven') %>

    24 |

    <%= i18n('That\'s right-- you can use either i18n() or __()') %>

    25 | ``` 26 | 27 | ## Configuration 28 | Localization/internationalization config can be found in `config/i18n.js`, from where you can set your supported locales. 29 | -------------------------------------------------------------------------------- /config/log.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Built-in Log Configuration 3 | * (sails.config.log) 4 | * 5 | * Configure the log level for your app, as well as the transport 6 | * (Underneath the covers, Sails uses Winston for logging, which 7 | * allows for some pretty neat custom transports/adapters for log messages) 8 | * 9 | * For more information on the Sails logger, check out: 10 | * http://sailsjs.org/#!/documentation/concepts/Logging 11 | */ 12 | 13 | module.exports.log = { 14 | 15 | /*************************************************************************** 16 | * * 17 | * Valid `level` configs: i.e. the minimum log level to capture with * 18 | * sails.log.*() * 19 | * * 20 | * The order of precedence for log levels from lowest to highest is: * 21 | * silly, verbose, info, debug, warn, error * 22 | * * 23 | * You may also set the level to "silent" to suppress all logs. * 24 | * * 25 | ***************************************************************************/ 26 | 27 | level: 'verbose' 28 | 29 | }; 30 | -------------------------------------------------------------------------------- /config/models.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Default model configuration 3 | * (sails.config.models) 4 | * 5 | * Unless you override them, the following properties will be included 6 | * in each of your models. 7 | * 8 | * For more info on Sails models, see: 9 | * http://sailsjs.org/#!/documentation/concepts/ORM 10 | */ 11 | 12 | module.exports.models = { 13 | 14 | /*************************************************************************** 15 | * * 16 | * Your app's default connection. i.e. the name of one of your app's * 17 | * connections (see `config/connections.js`) * 18 | * * 19 | ***************************************************************************/ 20 | connection: 'someMysqlServer', 21 | 22 | /*************************************************************************** 23 | * * 24 | * How and whether Sails will attempt to automatically rebuild the * 25 | * tables/collections/etc. in your schema. * 26 | * * 27 | * See http://sailsjs.org/#!/documentation/concepts/ORM/model-settings.html * 28 | * * 29 | ***************************************************************************/ 30 | migrate: 'safe'//safe:不创建表结构 alter:无则创建有则不 drop:重新创建 31 | 32 | }; 33 | -------------------------------------------------------------------------------- /config/policies.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Policy Mappings 3 | * (sails.config.policies) 4 | * 5 | * Policies are simple functions which run **before** your controllers. 6 | * You can apply one or more policies to a given controller, or protect 7 | * its actions individually. 8 | * 9 | * Any policy file (e.g. `api/policies/authenticated.js`) can be accessed 10 | * below by its filename, minus the extension, (e.g. "authenticated") 11 | * 12 | * For more information on how policies work, see: 13 | * http://sailsjs.org/#!/documentation/concepts/Policies 14 | * 15 | * For more information on configuring policies, check out: 16 | * http://sailsjs.org/#!/documentation/reference/sails.config/sails.config.policies.html 17 | */ 18 | 19 | 20 | module.exports.policies = { 21 | 22 | /*************************************************************************** 23 | * * 24 | * Default policy for all controllers and actions (`true` allows public * 25 | * access) * 26 | * * 27 | ***************************************************************************/ 28 | 'private/LoginController': { 29 | 'login':'login', 30 | 'doLogin':'login', 31 | 'captcha':'login', 32 | 'logout':'login' 33 | }, 34 | 'api/OauthController': 'none', 35 | 'api/TestController': 'oauthAuth', 36 | '*': 'sessionAuth' 37 | }; 38 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | redis: 2 | image: redis 3 | db: 4 | image: mariadb:5.5 5 | environment: 6 | "MYSQL_ROOT_PASSWORD": "root" 7 | "MYSQL_DATABASE": "nodewk" 8 | command: "mysqld --character-set-server=utf8" 9 | ports: 10 | - "127.0.0.1:3306:3306" 11 | volumes: 12 | - "/node/nodewk/db:/var/lib/mysql" 13 | web: 14 | image: wizzer/nodewk 15 | links: 16 | - redis 17 | - db 18 | environment: 19 | "MYSQL_HOST": "db" 20 | "MYSQL_USER": "root" 21 | "MYSQL_PASSWORD": "root" 22 | "MYSQL_DATABASE": "nodewk" 23 | "MYSQL_LIMIT": 150 24 | "REDIS_HOST": "redis" 25 | "REDIS_PASS": "" 26 | "LOG_LEVEL": "verbose" 27 | "LOG_SQL": "false" 28 | "PORT": 1337 29 | "NODE_ENV": "production" 30 | command: "pm2 start /node/nodewk/app.js --no-daemon" 31 | ports: 32 | - "1337:1337" 33 | volumes: 34 | - "/node/nodewk/cert:/node/nodewk/cert" 35 | - "/node/nodewk/upload:/node/nodewk/upload" 36 | - "/node/nodewk/backup:/node/nodewk/backup" 37 | -------------------------------------------------------------------------------- /pay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NodeWk/5a294bb120d2c0712bfc0bf9f46f2f16cd10c656/pay.jpg -------------------------------------------------------------------------------- /tasks/config/clean.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Clean files and folders. 3 | * 4 | * --------------------------------------------------------------- 5 | * 6 | * This grunt task is configured to clean out the contents in the .tmp/public of your 7 | * sails project. 8 | * 9 | * For usage docs see: 10 | * https://github.com/gruntjs/grunt-contrib-clean 11 | */ 12 | module.exports = function(grunt) { 13 | 14 | grunt.config.set('clean', { 15 | dev: ['.tmp/public/**','.tmp/uploads/**'], 16 | build: ['www'] 17 | }); 18 | 19 | grunt.loadNpmTasks('grunt-contrib-clean'); 20 | }; 21 | -------------------------------------------------------------------------------- /tasks/config/coffee.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Compile CoffeeScript files to JavaScript. 3 | * 4 | * --------------------------------------------------------------- 5 | * 6 | * Compiles coffeeScript files from `assest/js` into Javascript and places them into 7 | * `.tmp/public/js` directory. 8 | * 9 | * For usage docs see: 10 | * https://github.com/gruntjs/grunt-contrib-coffee 11 | */ 12 | module.exports = function(grunt) { 13 | 14 | grunt.config.set('coffee', { 15 | dev: { 16 | options: { 17 | bare: true, 18 | sourceMap: true, 19 | sourceRoot: './' 20 | }, 21 | files: [{ 22 | expand: true, 23 | cwd: 'assets/js/', 24 | src: ['**/*.coffee'], 25 | dest: '.tmp/public/js/', 26 | ext: '.js' 27 | }, { 28 | expand: true, 29 | cwd: 'assets/js/', 30 | src: ['**/*.coffee'], 31 | dest: '.tmp/public/js/', 32 | ext: '.js' 33 | }] 34 | } 35 | }); 36 | 37 | grunt.loadNpmTasks('grunt-contrib-coffee'); 38 | }; 39 | -------------------------------------------------------------------------------- /tasks/config/concat.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Concatenate files. 3 | * 4 | * --------------------------------------------------------------- 5 | * 6 | * Concatenates files javascript and css from a defined array. Creates concatenated files in 7 | * .tmp/public/contact directory 8 | * [concat](https://github.com/gruntjs/grunt-contrib-concat) 9 | * 10 | * For usage docs see: 11 | * https://github.com/gruntjs/grunt-contrib-concat 12 | */ 13 | module.exports = function(grunt) { 14 | 15 | grunt.config.set('concat', { 16 | js: { 17 | src: require('../pipeline').jsFilesToInject, 18 | dest: '.tmp/public/concat/production.js' 19 | }, 20 | css: { 21 | src: require('../pipeline').cssFilesToInject, 22 | dest: '.tmp/public/concat/production.css' 23 | } 24 | }); 25 | 26 | grunt.loadNpmTasks('grunt-contrib-concat'); 27 | }; 28 | -------------------------------------------------------------------------------- /tasks/config/copy.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copy files and folders. 3 | * 4 | * --------------------------------------------------------------- 5 | * 6 | * # dev task config 7 | * Copies all directories and files, exept coffescript and less fiels, from the sails 8 | * assets folder into the .tmp/public directory. 9 | * 10 | * # build task config 11 | * Copies all directories nd files from the .tmp/public directory into a www directory. 12 | * 13 | * For usage docs see: 14 | * https://github.com/gruntjs/grunt-contrib-copy 15 | */ 16 | module.exports = function(grunt) { 17 | 18 | grunt.config.set('copy', { 19 | dev: { 20 | files: [{ 21 | expand: true, 22 | cwd: './assets', 23 | src: ['**/*.!(coffee|less)'], 24 | dest: '.tmp/public' 25 | }] 26 | }, 27 | build: { 28 | files: [{ 29 | expand: true, 30 | cwd: '.tmp/public', 31 | src: ['**/*'], 32 | dest: 'www' 33 | }] 34 | } 35 | }); 36 | 37 | grunt.loadNpmTasks('grunt-contrib-copy'); 38 | }; 39 | -------------------------------------------------------------------------------- /tasks/config/cssmin.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Compress CSS files. 3 | * 4 | * --------------------------------------------------------------- 5 | * 6 | * Minifies css files and places them into .tmp/public/min directory. 7 | * 8 | * For usage docs see: 9 | * https://github.com/gruntjs/grunt-contrib-cssmin 10 | */ 11 | module.exports = function(grunt) { 12 | 13 | grunt.config.set('cssmin', { 14 | dist: { 15 | src: ['assets/css/main.css'], 16 | dest: '.tmp/public/css/main.css' 17 | } 18 | }); 19 | 20 | grunt.loadNpmTasks('grunt-contrib-cssmin'); 21 | }; 22 | -------------------------------------------------------------------------------- /tasks/config/jst.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Precompiles Underscore templates to a `.jst` file. 3 | * 4 | * --------------------------------------------------------------- 5 | * 6 | * (i.e. basically it takes HTML files and turns them into tiny little 7 | * javascript functions that you pass data to and return HTML. This can 8 | * speed up template rendering on the client, and reduce bandwidth usage.) 9 | * 10 | * For usage docs see: 11 | * https://github.com/gruntjs/grunt-contrib-jst 12 | * 13 | */ 14 | 15 | module.exports = function(grunt) { 16 | 17 | grunt.config.set('jst', { 18 | dev: { 19 | 20 | // To use other sorts of templates, specify a regexp like the example below: 21 | // options: { 22 | // templateSettings: { 23 | // interpolate: /\{\{(.+?)\}\}/g 24 | // } 25 | // }, 26 | 27 | // Note that the interpolate setting above is simply an example of overwriting lodash's 28 | // default interpolation. If you want to parse templates with the default _.template behavior 29 | // (i.e. using
    ), there's no need to overwrite `templateSettings.interpolate`. 30 | 31 | 32 | files: { 33 | // e.g. 34 | // 'relative/path/from/gruntfile/to/compiled/template/destination' : ['relative/path/to/sourcefiles/**/*.html'] 35 | '.tmp/public/jst.js': require('../pipeline').templateFilesToInject 36 | } 37 | } 38 | }); 39 | 40 | grunt.loadNpmTasks('grunt-contrib-jst'); 41 | }; 42 | -------------------------------------------------------------------------------- /tasks/config/less.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Compiles LESS files into CSS. 3 | * 4 | * --------------------------------------------------------------- 5 | * 6 | * Only the `assets/styles/importer.less` is compiled. 7 | * This allows you to control the ordering yourself, i.e. import your 8 | * dependencies, mixins, variables, resets, etc. before other stylesheets) 9 | * 10 | * For usage docs see: 11 | * https://github.com/gruntjs/grunt-contrib-less 12 | */ 13 | module.exports = function(grunt) { 14 | 15 | grunt.config.set('less', { 16 | dev: { 17 | files: [{ 18 | expand: true, 19 | cwd: 'assets/styles/', 20 | src: ['importer.less'], 21 | dest: '.tmp/public/styles/', 22 | ext: '.css' 23 | }] 24 | } 25 | }); 26 | 27 | grunt.loadNpmTasks('grunt-contrib-less'); 28 | }; 29 | -------------------------------------------------------------------------------- /tasks/config/sync.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A grunt task to keep directories in sync. It is very similar to grunt-contrib-copy 3 | * but tries to copy only those files that has actually changed. 4 | * 5 | * --------------------------------------------------------------- 6 | * 7 | * Synchronize files from the `assets` folder to `.tmp/public`, 8 | * smashing anything that's already there. 9 | * 10 | * For usage docs see: 11 | * https://github.com/tomusdrw/grunt-sync 12 | * 13 | */ 14 | module.exports = function(grunt) { 15 | 16 | grunt.config.set('sync', { 17 | dev: { 18 | files: [{ 19 | cwd: './assets', 20 | src: ['**/*.!(coffee)'], 21 | dest: '.tmp/public' 22 | }] 23 | } 24 | }); 25 | 26 | grunt.loadNpmTasks('grunt-sync'); 27 | }; 28 | -------------------------------------------------------------------------------- /tasks/config/uglify.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Minify files with UglifyJS. 3 | * 4 | * --------------------------------------------------------------- 5 | * 6 | * Minifies client-side javascript `assets`. 7 | * 8 | * For usage docs see: 9 | * https://github.com/gruntjs/grunt-contrib-uglify 10 | * 11 | */ 12 | module.exports = function(grunt) { 13 | 14 | grunt.config.set('uglify', { 15 | dist: { 16 | src: ['.tmp/public/concat/production.js'], 17 | dest: '.tmp/public/min/production.min.js' 18 | } 19 | }); 20 | 21 | grunt.loadNpmTasks('grunt-contrib-uglify'); 22 | }; 23 | -------------------------------------------------------------------------------- /tasks/config/watch.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Run predefined tasks whenever watched file patterns are added, changed or deleted. 3 | * 4 | * --------------------------------------------------------------- 5 | * 6 | * Watch for changes on 7 | * - files in the `assets` folder 8 | * - the `tasks/pipeline.js` file 9 | * and re-run the appropriate tasks. 10 | * 11 | * For usage docs see: 12 | * https://github.com/gruntjs/grunt-contrib-watch 13 | * 14 | */ 15 | module.exports = function(grunt) { 16 | 17 | grunt.config.set('watch', { 18 | api: { 19 | 20 | // API files to watch: 21 | files: ['api/**/*', '!**/node_modules/**'] 22 | }, 23 | assets: { 24 | 25 | // Assets to watch: 26 | files: ['assets/**/*', 'tasks/pipeline.js', '!**/node_modules/**'], 27 | 28 | // When assets are changed: 29 | tasks: ['syncAssets' , 'linkAssets'] 30 | } 31 | }); 32 | 33 | grunt.loadNpmTasks('grunt-contrib-watch'); 34 | }; 35 | -------------------------------------------------------------------------------- /tasks/register/build.js: -------------------------------------------------------------------------------- 1 | module.exports = function (grunt) { 2 | grunt.registerTask('build', [ 3 | 'compileAssets', 4 | 'linkAssetsBuild', 5 | 'clean:build', 6 | 'copy:build' 7 | ]); 8 | }; 9 | -------------------------------------------------------------------------------- /tasks/register/buildProd.js: -------------------------------------------------------------------------------- 1 | module.exports = function (grunt) { 2 | grunt.registerTask('buildProd', [ 3 | 'compileAssets', 4 | 'concat', 5 | 'uglify', 6 | 'cssmin', 7 | 'linkAssetsBuildProd', 8 | 'clean:build', 9 | 'copy:build' 10 | ]); 11 | }; 12 | -------------------------------------------------------------------------------- /tasks/register/compileAssets.js: -------------------------------------------------------------------------------- 1 | module.exports = function (grunt) { 2 | grunt.registerTask('compileAssets', [ 3 | 'clean:dev', 4 | 'jst:dev', 5 | 'less:dev', 6 | 'copy:dev', 7 | 'coffee:dev' 8 | ]); 9 | }; 10 | -------------------------------------------------------------------------------- /tasks/register/default.js: -------------------------------------------------------------------------------- 1 | module.exports = function (grunt) { 2 | grunt.registerTask('default', ['compileAssets', 'linkAssets', 'watch']); 3 | }; 4 | -------------------------------------------------------------------------------- /tasks/register/linkAssets.js: -------------------------------------------------------------------------------- 1 | module.exports = function (grunt) { 2 | grunt.registerTask('linkAssets', [ 3 | 'sails-linker:devJs', 4 | 'sails-linker:devStyles', 5 | 'sails-linker:devTpl', 6 | 'sails-linker:devJsJade', 7 | 'sails-linker:devStylesJade', 8 | 'sails-linker:devTplJade' 9 | ]); 10 | }; 11 | -------------------------------------------------------------------------------- /tasks/register/linkAssetsBuild.js: -------------------------------------------------------------------------------- 1 | module.exports = function (grunt) { 2 | grunt.registerTask('linkAssetsBuild', [ 3 | 'sails-linker:devJsRelative', 4 | 'sails-linker:devStylesRelative', 5 | 'sails-linker:devTpl', 6 | 'sails-linker:devJsRelativeJade', 7 | 'sails-linker:devStylesRelativeJade', 8 | 'sails-linker:devTplJade' 9 | ]); 10 | }; 11 | -------------------------------------------------------------------------------- /tasks/register/linkAssetsBuildProd.js: -------------------------------------------------------------------------------- 1 | module.exports = function (grunt) { 2 | grunt.registerTask('linkAssetsBuildProd', [ 3 | 'sails-linker:prodJsRelative', 4 | 'sails-linker:prodStylesRelative', 5 | 'sails-linker:devTpl', 6 | 'sails-linker:prodJsRelativeJade', 7 | 'sails-linker:prodStylesRelativeJade', 8 | 'sails-linker:devTplJade' 9 | ]); 10 | }; 11 | -------------------------------------------------------------------------------- /tasks/register/prod.js: -------------------------------------------------------------------------------- 1 | module.exports = function (grunt) { 2 | grunt.registerTask('prod', [ 3 | 'compileAssets', 4 | 'concat', 5 | 'uglify', 6 | 'cssmin', 7 | 'sails-linker:prodJs', 8 | 'sails-linker:prodStyles', 9 | 'sails-linker:devTpl', 10 | 'sails-linker:prodJsJade', 11 | 'sails-linker:prodStylesJade', 12 | 'sails-linker:devTplJade' 13 | ]); 14 | }; 15 | -------------------------------------------------------------------------------- /tasks/register/syncAssets.js: -------------------------------------------------------------------------------- 1 | module.exports = function (grunt) { 2 | grunt.registerTask('syncAssets', [ 3 | 'jst:dev', 4 | 'less:dev', 5 | 'sync:dev', 6 | 'coffee:dev' 7 | ]); 8 | }; 9 | -------------------------------------------------------------------------------- /views/layouts/layout.ejs: -------------------------------------------------------------------------------- 1 | <%//Ajax加载的子页面布局%> 2 | <%- body %> 3 | -------------------------------------------------------------------------------- /views/layouts/login.ejs: -------------------------------------------------------------------------------- 1 | <%//后台登陆页页面布局%> 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | <%=sails.config.system.AppName%> 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 24 | 25 | 26 | 27 | 28 | 29 | <%- body %> 30 | 31 | 32 | 33 | 34 | <%if('zh'==lang){%> 35 | 36 | <%}%> 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /views/layouts/public.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | <%=sails.__({phrase: 'sitename', locale:res.locale})%> 7 | <%if(sails.config.system.SiteConfig.seo_keywords){%><%}%> 8 | <%if(sails.config.system.SiteConfig.seo_description){%><%}%> 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | <%- body %> 18 | 19 | 20 | -------------------------------------------------------------------------------- /views/layouts/public_wap.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <%=siteTitle||sails.config.system.SiteConfig.site_name||''%> 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 18 | 19 | 20 | <%- body %> 21 | 22 | 23 | -------------------------------------------------------------------------------- /views/private/cms/article/detail.ejs: -------------------------------------------------------------------------------- 1 | 18 | 21 | -------------------------------------------------------------------------------- /views/private/cms/channel/child.ejs: -------------------------------------------------------------------------------- 1 | <% unit.forEach(function(obj){ 2 | %> 3 | 4 | 5 | <%-obj.name%> 6 | 7 | <%-obj.url||''%> 8 | <%if(obj.homepage){%>是<%}else{%>否<%}%> 9 | <%if(!obj.disabled){%><%}else{%><%}%> 10 | 11 |
    12 | 16 | 27 |
    28 | 29 | 30 | <% 31 | }); %> 32 | -------------------------------------------------------------------------------- /views/private/cms/channel/detail.ejs: -------------------------------------------------------------------------------- 1 | 34 | 37 | -------------------------------------------------------------------------------- /views/private/index.ejs: -------------------------------------------------------------------------------- 1 |
    2 | 3 |
    4 |
    5 |
    6 | 1.0 7 |
    8 |
    9 | 版本特性
    10 | • 集成系统、微信、CMS等模块
    11 | • 集成Email服务
    12 | • 集成定时任务
    13 | • 使用Ejs模板引擎
    14 | • 采用Bootsrtap+Pjax

    15 | 源码地址
    16 | https://github.com/Wizzercn/NodeWk 17 |
    18 | 捐助 | 合作
    19 | 支付宝:wizzer@qq.com
    20 | 微 信:wizzer 21 |
    22 |
    23 | 使用说明 24 |
    25 |
    26 | • 搭建Node.js运行环境
    27 | • 安装必备组件yum install ImageMagick-c++.x86_64
    28 | • 创建空的数据库,使用nodewk.sql还原数据库
    29 | • 修改数据库连接及redis /config/custom/mysql.js /config/custom/redis.js
    30 | • npm i 安装(hiredis报错不影响运行)
    31 | • 用户名:superadmin 密码:1
    32 |
    33 | 34 |
    35 |
    36 | 37 |
    38 | -------------------------------------------------------------------------------- /views/private/shop/area/child.ejs: -------------------------------------------------------------------------------- 1 | <% unit.forEach(function(obj){ 2 | %> 3 | 4 | 5 | <%-obj.name%> 6 | 7 | <%if(!obj.disabled){%><%}else{%><%}%> 8 | 9 |
    10 | 14 | 24 |
    25 | 26 | 27 | <% 28 | }); %> 29 | -------------------------------------------------------------------------------- /views/private/shop/goods/class/child.ejs: -------------------------------------------------------------------------------- 1 | <% unit.forEach(function(obj){ 2 | %> 3 | 4 | 5 | <%-obj.name%> 6 | 7 | <%if(obj.typeid){%>[<%=obj.typeid.name%>]<%}else{%>[通用商品]<%}%> 8 | <%if(!obj.disabled){%><%}else{%><%}%> 9 | <%if(obj.is_index){%><%}else{%><%}%> 10 | 11 |
    12 | 16 | 25 |
    26 | 27 | 28 | <% 29 | }); %> 30 | -------------------------------------------------------------------------------- /views/private/shop/member/member/detail.ejs: -------------------------------------------------------------------------------- 1 | 31 | 34 | -------------------------------------------------------------------------------- /views/private/sys/menu/child.ejs: -------------------------------------------------------------------------------- 1 | <% unit.forEach(function(obj){ 2 | %> 3 | 4 | 5 | <%-obj.name%> 6 | 7 | <%-obj.url||''%> 8 | <%-obj.permission||''%> 9 | <%if(!obj.disabled){%><%}else{%><%}%> 10 | 11 |
    12 | 16 | 27 |
    28 | 29 | 30 | <% 31 | }); %> 32 | -------------------------------------------------------------------------------- /views/private/sys/menu/detail.ejs: -------------------------------------------------------------------------------- 1 | 34 | 37 | -------------------------------------------------------------------------------- /views/private/sys/unit/child.ejs: -------------------------------------------------------------------------------- 1 | <% unit.forEach(function(obj){ 2 | %> 3 | 4 | 5 | <%-obj.name%> 6 | 7 | <%-obj.address%> 8 | <%-obj.mobile%> 9 | <%-obj.tel%> 10 | 11 |
    12 | 16 | 25 |
    26 | 27 | 28 | <% 29 | }); %> 30 | -------------------------------------------------------------------------------- /views/private/sys/unit/detail.ejs: -------------------------------------------------------------------------------- 1 | 31 | 34 | -------------------------------------------------------------------------------- /views/public/pc/about.ejs: -------------------------------------------------------------------------------- 1 | <%include top.ejs%> 2 |
    3 |
    4 | 5 |
    6 |

    7 | <%-sails.__({phrase: 'shop_2_note', locale:res.locale})%> 8 |

    9 | 10 |
    11 |
    12 | 13 |
    14 | <%include buttom.ejs%> -------------------------------------------------------------------------------- /views/public/pc/buttom.ejs: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |

    <%-sails.__({phrase: 'venture', locale:res.locale})%>

    4 |
    5 |
    6 | 7 | Q_Q: 11624317 8 | E_mail: wizzer@qq.com 9 | 10 |
    11 |
    12 | 13 |
    14 | 15 | © 2016 - Nodeshop.cn 16 | 17 |
    18 |
    19 |
    -------------------------------------------------------------------------------- /views/public/pc/framework.ejs: -------------------------------------------------------------------------------- 1 | <%include top.ejs%> 2 |
    3 | 22 | 23 |
    24 | 27 | 28 |
    29 |

    30 | <%-sails.__({phrase: 'code_note', locale:res.locale})%> 31 |

    32 | 33 | 40 |
    41 |
    42 |
    43 | <%include buttom.ejs%> -------------------------------------------------------------------------------- /views/public/pc/index.ejs: -------------------------------------------------------------------------------- 1 | <%include top.ejs%> 2 |
    3 |
    4 |

    <%-sails.__({phrase: 'support', locale:res.locale})%>

    5 | <%-sails.__({phrase: 'more', locale:res.locale})%> 6 |
    7 |
    8 | <% 9 | var num=parseInt(5*Math.random())+1; 10 | console.log(num); 11 | %> 12 |
    13 |
    14 |
    15 | 16 |
    17 |

    <%-sails.__({phrase: 'experts', locale:res.locale})%>

    18 | 19 |
      20 |
    • 21 | Node.JS 22 |
    • 23 |
    • 24 | Node Package Manager 25 |
    • 26 |
    • 27 | Sails.js MVC 28 |
    • 29 |
    30 |
    31 | <%include buttom.ejs%> -------------------------------------------------------------------------------- /views/public/pc/nodeshop.ejs: -------------------------------------------------------------------------------- 1 | <%include top.ejs%> 2 |
    3 | 18 | 19 |
    20 |
    21 |
    22 |
    23 |
    24 |
    25 |
    26 |
    27 |
    28 |
    29 |
    30 |
    31 |
    32 | <%include buttom.ejs%> -------------------------------------------------------------------------------- /views/public/pc/top.ejs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/test.ejs: -------------------------------------------------------------------------------- 1 | 2 |
    aaaaa
    3 | 23 | --------------------------------------------------------------------------------