├── backend ├── project │ ├── __init__.py │ └── wsgi.py ├── utils │ ├── __init__.py │ └── permissions.py ├── apps │ ├── cmdb │ │ ├── __init__.py │ │ ├── migrations │ │ │ ├── __init__.py │ │ │ └── .gitignore │ │ ├── management │ │ │ └── commands │ │ │ │ └── __init__.py │ │ ├── tests.py │ │ ├── util.py │ │ ├── apps.py │ │ ├── urls.py │ │ ├── adminx.py │ │ └── filters.py │ ├── modellog │ │ ├── __init__.py │ │ ├── migrations │ │ │ ├── __init__.py │ │ │ └── .gitignore │ │ ├── tests.py │ │ ├── admin.py │ │ ├── apps.py │ │ ├── adminx.py │ │ ├── urls.py │ │ └── filters.py │ └── users │ │ ├── __init__.py │ │ ├── migrations │ │ ├── __init__.py │ │ └── .gitignore │ │ ├── management │ │ └── commands │ │ │ └── __init__.py │ │ ├── tests.py │ │ ├── apps.py │ │ ├── auth.py │ │ ├── urls.py │ │ ├── filters.py │ │ └── resources.py ├── extra_apps │ ├── __init__.py │ ├── DjangoUeditor │ │ ├── __init__.py │ │ ├── static │ │ │ └── ueditor │ │ │ │ ├── themes │ │ │ │ ├── iframe.css │ │ │ │ └── default │ │ │ │ │ └── images │ │ │ │ │ ├── arrow.png │ │ │ │ │ ├── icons.gif │ │ │ │ │ ├── icons.png │ │ │ │ │ ├── lock.gif │ │ │ │ │ ├── scale.png │ │ │ │ │ ├── word.gif │ │ │ │ │ ├── anchor.gif │ │ │ │ │ ├── arrow_up.png │ │ │ │ │ ├── charts.png │ │ │ │ │ ├── cursor_h.gif │ │ │ │ │ ├── cursor_h.png │ │ │ │ │ ├── cursor_v.gif │ │ │ │ │ ├── cursor_v.png │ │ │ │ │ ├── fileScan.png │ │ │ │ │ ├── loading.gif │ │ │ │ │ ├── sortable.png │ │ │ │ │ ├── spacer.gif │ │ │ │ │ ├── upload.png │ │ │ │ │ ├── arrow_down.png │ │ │ │ │ ├── button-bg.gif │ │ │ │ │ ├── icons-all.gif │ │ │ │ │ ├── loaderror.png │ │ │ │ │ ├── pagebreak.gif │ │ │ │ │ ├── sparator_v.png │ │ │ │ │ ├── toolbar_bg.png │ │ │ │ │ ├── videologo.gif │ │ │ │ │ ├── wordpaste.png │ │ │ │ │ ├── cancelbutton.gif │ │ │ │ │ ├── highlighted.gif │ │ │ │ │ ├── unhighlighted.gif │ │ │ │ │ ├── dialog-title-bg.png │ │ │ │ │ ├── neweditor-tab-bg.png │ │ │ │ │ ├── table-cell-align.png │ │ │ │ │ └── tangram-colorpicker.png │ │ │ │ ├── UEditorSnapscreen.exe │ │ │ │ ├── lang │ │ │ │ ├── en │ │ │ │ │ └── images │ │ │ │ │ │ ├── copy.png │ │ │ │ │ │ ├── music.png │ │ │ │ │ │ ├── button.png │ │ │ │ │ │ ├── upload.png │ │ │ │ │ │ ├── addimage.png │ │ │ │ │ │ ├── background.png │ │ │ │ │ │ ├── localimage.png │ │ │ │ │ │ ├── deleteenable.png │ │ │ │ │ │ ├── deletedisable.png │ │ │ │ │ │ ├── listbackground.png │ │ │ │ │ │ ├── rotateleftdisable.png │ │ │ │ │ │ ├── rotateleftenable.png │ │ │ │ │ │ ├── rotaterightenable.png │ │ │ │ │ │ ├── alldeletebtnupskin.png │ │ │ │ │ │ ├── rotaterightdisable.png │ │ │ │ │ │ └── alldeletebtnhoverskin.png │ │ │ │ └── zh-cn │ │ │ │ │ └── images │ │ │ │ │ ├── copy.png │ │ │ │ │ ├── music.png │ │ │ │ │ ├── upload.png │ │ │ │ │ └── localimage.png │ │ │ │ ├── dialogs │ │ │ │ ├── table │ │ │ │ │ └── dragicon.png │ │ │ │ ├── emotion │ │ │ │ │ └── images │ │ │ │ │ │ ├── 0.gif │ │ │ │ │ │ ├── bface.gif │ │ │ │ │ │ ├── cface.gif │ │ │ │ │ │ ├── fface.gif │ │ │ │ │ │ ├── jxface2.gif │ │ │ │ │ │ ├── tface.gif │ │ │ │ │ │ ├── wface.gif │ │ │ │ │ │ ├── yface.gif │ │ │ │ │ │ └── neweditor-tab-bg.png │ │ │ │ ├── image │ │ │ │ │ └── images │ │ │ │ │ │ ├── bg.png │ │ │ │ │ │ ├── icons.gif │ │ │ │ │ │ ├── icons.png │ │ │ │ │ │ ├── image.png │ │ │ │ │ │ ├── alignicon.jpg │ │ │ │ │ │ ├── progress.png │ │ │ │ │ │ ├── success.gif │ │ │ │ │ │ └── success.png │ │ │ │ ├── video │ │ │ │ │ └── images │ │ │ │ │ │ ├── bg.png │ │ │ │ │ │ ├── icons.gif │ │ │ │ │ │ ├── icons.png │ │ │ │ │ │ ├── image.png │ │ │ │ │ │ ├── progress.png │ │ │ │ │ │ ├── success.gif │ │ │ │ │ │ ├── success.png │ │ │ │ │ │ ├── file-icons.gif │ │ │ │ │ │ ├── file-icons.png │ │ │ │ │ │ ├── left_focus.jpg │ │ │ │ │ │ ├── none_focus.jpg │ │ │ │ │ │ ├── right_focus.jpg │ │ │ │ │ │ └── center_focus.jpg │ │ │ │ ├── scrawl │ │ │ │ │ └── images │ │ │ │ │ │ ├── brush.png │ │ │ │ │ │ ├── empty.png │ │ │ │ │ │ ├── redo.png │ │ │ │ │ │ ├── redoH.png │ │ │ │ │ │ ├── scale.png │ │ │ │ │ │ ├── size.png │ │ │ │ │ │ ├── undo.png │ │ │ │ │ │ ├── undoH.png │ │ │ │ │ │ ├── addimg.png │ │ │ │ │ │ ├── delimg.png │ │ │ │ │ │ ├── delimgH.png │ │ │ │ │ │ ├── emptyH.png │ │ │ │ │ │ ├── eraser.png │ │ │ │ │ │ └── scaleH.png │ │ │ │ ├── template │ │ │ │ │ └── images │ │ │ │ │ │ ├── bg.gif │ │ │ │ │ │ ├── pre0.png │ │ │ │ │ │ ├── pre1.png │ │ │ │ │ │ ├── pre2.png │ │ │ │ │ │ ├── pre3.png │ │ │ │ │ │ └── pre4.png │ │ │ │ ├── attachment │ │ │ │ │ ├── images │ │ │ │ │ │ ├── bg.png │ │ │ │ │ │ ├── icons.gif │ │ │ │ │ │ ├── icons.png │ │ │ │ │ │ ├── image.png │ │ │ │ │ │ ├── alignicon.gif │ │ │ │ │ │ ├── alignicon.png │ │ │ │ │ │ ├── progress.png │ │ │ │ │ │ ├── success.gif │ │ │ │ │ │ ├── success.png │ │ │ │ │ │ ├── file-icons.gif │ │ │ │ │ │ └── file-icons.png │ │ │ │ │ └── fileTypeImages │ │ │ │ │ │ ├── icon_chm.gif │ │ │ │ │ │ ├── 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 │ │ │ │ │ │ └── icon_default.png │ │ │ │ ├── background │ │ │ │ │ └── images │ │ │ │ │ │ ├── bg.png │ │ │ │ │ │ └── success.png │ │ │ │ ├── charts │ │ │ │ │ └── images │ │ │ │ │ │ ├── charts0.png │ │ │ │ │ │ ├── charts1.png │ │ │ │ │ │ ├── charts2.png │ │ │ │ │ │ ├── charts3.png │ │ │ │ │ │ ├── charts4.png │ │ │ │ │ │ └── charts5.png │ │ │ │ ├── wordimage │ │ │ │ │ ├── imageUploader.swf │ │ │ │ │ └── fClipboard_ueditor.swf │ │ │ │ └── help │ │ │ │ │ └── help.css │ │ │ │ ├── third-party │ │ │ │ ├── video-js │ │ │ │ │ ├── font │ │ │ │ │ │ ├── vjs.eot │ │ │ │ │ │ ├── vjs.ttf │ │ │ │ │ │ └── vjs.woff │ │ │ │ │ └── video-js.swf │ │ │ │ ├── webuploader │ │ │ │ │ ├── Uploader.swf │ │ │ │ │ └── webuploader.css │ │ │ │ ├── snapscreen │ │ │ │ │ └── UEditorSnapscreen.exe │ │ │ │ ├── zeroclipboard │ │ │ │ │ └── ZeroClipboard.swf │ │ │ │ └── highcharts │ │ │ │ │ └── modules │ │ │ │ │ └── heatmap.js │ │ │ │ └── _examples │ │ │ │ ├── server │ │ │ │ ├── getContent.asp │ │ │ │ ├── getContent.php │ │ │ │ └── getContent.jsp │ │ │ │ └── customizeDialogPage.html │ │ ├── test_try.py │ │ ├── urls.py │ │ └── templates │ │ │ └── ueditor.html │ └── xadmin │ │ ├── migrations │ │ ├── __init__.py │ │ └── .gitignore │ │ ├── templatetags │ │ └── __init__.py │ │ ├── static │ │ └── xadmin │ │ │ ├── vendor │ │ │ ├── bootstrap-multiselect │ │ │ │ └── css │ │ │ │ │ └── bootstrap-multiselect.css │ │ │ ├── select2 │ │ │ │ ├── select2.png │ │ │ │ ├── select2x2.png │ │ │ │ ├── select2-spinner.gif │ │ │ │ ├── select2_locale_zh-CN.js │ │ │ │ ├── select2_locale_zh-hans.js │ │ │ │ ├── select2_locale_hu.js │ │ │ │ ├── select2_locale_de.js │ │ │ │ ├── select2_locale_tr.js │ │ │ │ ├── select2_locale_en.js │ │ │ │ ├── select2_locale_nl.js │ │ │ │ ├── select2_locale_sv.js │ │ │ │ ├── select2_locale_es.js │ │ │ │ └── select2_locale_it.js │ │ │ ├── bootstrap-modal │ │ │ │ └── img │ │ │ │ │ └── ajax-loader.gif │ │ │ ├── font-awesome │ │ │ │ └── fonts │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ └── fontawesome-webfont.woff │ │ │ ├── bootstrap-image-gallery │ │ │ │ └── img │ │ │ │ │ └── loading.gif │ │ │ ├── bootstrap │ │ │ │ └── fonts │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ └── glyphicons-halflings-regular.woff │ │ │ └── bootstrap-datepicker │ │ │ │ └── js │ │ │ │ └── locales │ │ │ │ ├── bootstrap-datepicker.kr.js │ │ │ │ ├── bootstrap-datepicker.zh-TW.js │ │ │ │ ├── bootstrap-datepicker.ja.js │ │ │ │ ├── bootstrap-datepicker.zh-CN.js │ │ │ │ ├── bootstrap-datepicker.hr.js │ │ │ │ ├── bootstrap-datepicker.id.js │ │ │ │ ├── bootstrap-datepicker.he.js │ │ │ │ ├── bootstrap-datepicker.ms.js │ │ │ │ ├── bootstrap-datepicker.el.js │ │ │ │ ├── bootstrap-datepicker.rs.js │ │ │ │ ├── bootstrap-datepicker.tr.js │ │ │ │ ├── bootstrap-datepicker.bg.js │ │ │ │ ├── bootstrap-datepicker.ca.js │ │ │ │ ├── bootstrap-datepicker.da.js │ │ │ │ ├── bootstrap-datepicker.pt-BR.js │ │ │ │ ├── bootstrap-datepicker.sl.js │ │ │ │ ├── bootstrap-datepicker.sv.js │ │ │ │ ├── bootstrap-datepicker.th.js │ │ │ │ ├── bootstrap-datepicker.es.js │ │ │ │ ├── bootstrap-datepicker.nl.js │ │ │ │ ├── bootstrap-datepicker.rs-latin.js │ │ │ │ ├── bootstrap-datepicker.ru.js │ │ │ │ ├── bootstrap-datepicker.nb.js │ │ │ │ ├── bootstrap-datepicker.uk.js │ │ │ │ ├── bootstrap-datepicker.ro.js │ │ │ │ ├── bootstrap-datepicker.is.js │ │ │ │ ├── bootstrap-datepicker.pt.js │ │ │ │ ├── bootstrap-datepicker.cs.js │ │ │ │ ├── bootstrap-datepicker.sk.js │ │ │ │ ├── bootstrap-datepicker.de.js │ │ │ │ ├── bootstrap-datepicker.fi.js │ │ │ │ ├── bootstrap-datepicker.fr.js │ │ │ │ ├── bootstrap-datepicker.hu.js │ │ │ │ ├── bootstrap-datepicker.it.js │ │ │ │ ├── bootstrap-datepicker.lv.js │ │ │ │ ├── bootstrap-datepicker.lt.js │ │ │ │ └── bootstrap-datepicker.pl.js │ │ │ ├── css │ │ │ ├── xadmin.plugin.aggregation.css │ │ │ ├── xadmin.plugins.css │ │ │ ├── xadmin.plugin.quickfilter.css │ │ │ └── xadmin.plugin.importexport.css │ │ │ ├── js │ │ │ ├── xadmin.widget.multiselect.js │ │ │ ├── xadmin.plugin.batch.js │ │ │ ├── xadmin.plugin.refresh.js │ │ │ ├── xadmin.plugin.importexport.js │ │ │ └── xadmin.plugin.bookmark.js │ │ │ └── component.json │ │ ├── templates │ │ └── xadmin │ │ │ ├── views │ │ │ ├── quick_detail.html │ │ │ ├── quick_form.html │ │ │ ├── invalid_setup.html │ │ │ └── app_index.html │ │ │ ├── layout │ │ │ ├── field_value_td.html │ │ │ ├── field_value.html │ │ │ ├── fieldset.html │ │ │ └── td-field.html │ │ │ ├── includes │ │ │ ├── toggle_back.html │ │ │ ├── toggle_menu.html │ │ │ ├── pagination.html │ │ │ └── box.html │ │ │ ├── blocks │ │ │ ├── modal_list.left_navbar.quickfilter.html │ │ │ ├── model_list.top_toolbar.importexport.import.html │ │ │ ├── model_list.top_toolbar.saveorder.html │ │ │ ├── model_list.results_top.date_hierarchy.html │ │ │ ├── comm.top.theme.html │ │ │ ├── model_list.top_toolbar.layouts.html │ │ │ ├── model_list.nav_form.search_form.html │ │ │ ├── model_list.nav_menu.filters.html │ │ │ └── model_form.before_fieldsets.wizard.html │ │ │ ├── edit_inline │ │ │ ├── blank.html │ │ │ └── one.html │ │ │ ├── 404.html │ │ │ ├── filters │ │ │ ├── rel.html │ │ │ ├── list.html │ │ │ ├── quickfilter.html │ │ │ └── checklist.html │ │ │ ├── widgets │ │ │ ├── qbutton.html │ │ │ └── chart.html │ │ │ ├── auth │ │ │ ├── user │ │ │ │ └── add_form.html │ │ │ └── password_reset │ │ │ │ ├── email.html │ │ │ │ ├── done.html │ │ │ │ └── complete.html │ │ │ └── 500.html │ │ ├── locale │ │ ├── en │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── djangojs.mo │ │ ├── eu │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── djangojs.mo │ │ ├── ja │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── djangojs.mo │ │ ├── lt │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── djangojs.mo │ │ ├── pl │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── djangojs.mo │ │ ├── de_DE │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── djangojs.mo │ │ ├── es_MX │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── djangojs.mo │ │ ├── id_ID │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── djangojs.mo │ │ ├── nl_NL │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── djangojs.mo │ │ ├── pt_BR │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── djangojs.mo │ │ ├── ru_RU │ │ │ └── LC_MESSAGES │ │ │ │ ├── django.mo │ │ │ │ └── djangojs.mo │ │ └── zh_Hans │ │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── djangojs.mo │ │ ├── .tx │ │ └── config │ │ ├── apps.py │ │ └── plugins │ │ ├── utils.py │ │ └── sitemenu.py ├── logs │ └── .gitignore ├── media │ ├── avatar │ │ ├── .gitignore │ │ └── default.jpg │ ├── mdjcelery │ │ └── scripts │ │ │ └── .gitignore │ └── workflow │ │ └── scripts │ │ └── .gitignore └── uwsgi.ini ├── frontend ├── .eslintignore ├── src │ ├── views │ │ ├── user │ │ │ ├── components │ │ │ │ └── index.js │ │ │ └── login │ │ │ │ └── authredirect.vue │ │ ├── layout │ │ │ └── components │ │ │ │ ├── index.js │ │ │ │ ├── Sidebar │ │ │ │ ├── Item.vue │ │ │ │ ├── FixiOSBug.js │ │ │ │ └── Link.vue │ │ │ │ └── AppMain.vue │ │ ├── redirect │ │ │ └── index.vue │ │ └── cmdb │ │ │ └── idc.vue │ ├── assets │ │ ├── 401_images │ │ │ └── 401.gif │ │ ├── 404_images │ │ │ ├── 404.png │ │ │ └── 404_cloud.png │ │ └── custom-theme │ │ │ └── fonts │ │ │ ├── element-icons.ttf │ │ │ └── element-icons.woff │ ├── components │ │ ├── StreeAss │ │ │ └── index.js │ │ ├── ImageCropper │ │ │ └── utils │ │ │ │ ├── mimes.js │ │ │ │ └── data2blob.js │ │ ├── Tinymce │ │ │ ├── toolbar.js │ │ │ └── plugins.js │ │ ├── Charts │ │ │ └── lineChart.vue │ │ ├── MarkdownEditor │ │ │ └── defaultOptions.js │ │ ├── SvgIcon │ │ │ └── index.vue │ │ └── TreeTable │ │ │ └── eval.js │ ├── icons │ │ ├── svg │ │ │ ├── chart.svg │ │ │ ├── size.svg │ │ │ ├── link.svg │ │ │ ├── guide.svg │ │ │ ├── component.svg │ │ │ ├── money.svg │ │ │ ├── drag.svg │ │ │ ├── email.svg │ │ │ ├── guide 2.svg │ │ │ ├── documentation.svg │ │ │ ├── user.svg │ │ │ ├── lock.svg │ │ │ ├── excel.svg │ │ │ ├── example.svg │ │ │ ├── star.svg │ │ │ ├── table.svg │ │ │ ├── password.svg │ │ │ ├── file-tree.svg │ │ │ ├── tab.svg │ │ │ ├── message.svg │ │ │ ├── add.svg │ │ │ ├── theme.svg │ │ │ ├── workflow.svg │ │ │ ├── peoples.svg │ │ │ ├── fly.svg │ │ │ ├── edit.svg │ │ │ ├── nested.svg │ │ │ └── mdb.svg │ │ ├── index.js │ │ └── svgo.yml │ ├── styles │ │ └── variables.scss │ ├── directive │ │ ├── waves │ │ │ └── index.js │ │ └── clipboard │ │ │ └── index.js │ ├── App.vue │ ├── store │ │ ├── modules │ │ │ └── errorLog.js │ │ └── index.js │ ├── errorLog.js │ ├── utils │ │ ├── auth.js │ │ ├── i18n.js │ │ ├── permission.js │ │ └── requestSync.js │ ├── router │ │ └── modules │ │ │ ├── modellog.js │ │ │ └── cmdb.js │ ├── vendor │ │ └── Export2Zip.js │ ├── lang │ │ └── index.js │ └── api │ │ └── modellog.js ├── favicon.ico ├── build │ ├── logo.png │ └── vue-loader.conf.js ├── static │ ├── 404.png │ ├── 404_cloud.png │ └── tinymce4.7.5 │ │ ├── skins │ │ └── lightgray │ │ │ ├── img │ │ │ ├── anchor.gif │ │ │ ├── loader.gif │ │ │ ├── object.gif │ │ │ └── trans.gif │ │ │ └── fonts │ │ │ ├── tinymce.eot │ │ │ ├── tinymce.ttf │ │ │ ├── tinymce.woff │ │ │ ├── tinymce-small.eot │ │ │ ├── tinymce-small.ttf │ │ │ ├── tinymce-small.woff │ │ │ └── tinymce-mobile.woff │ │ └── plugins │ │ └── emoticons │ │ └── img │ │ ├── smiley-cool.gif │ │ ├── smiley-cry.gif │ │ ├── smiley-frown.gif │ │ ├── smiley-kiss.gif │ │ ├── smiley-smile.gif │ │ ├── smiley-wink.gif │ │ ├── smiley-yell.gif │ │ ├── smiley-sealed.gif │ │ ├── smiley-embarassed.gif │ │ ├── smiley-innocent.gif │ │ ├── smiley-laughing.gif │ │ ├── smiley-surprised.gif │ │ ├── smiley-tongue-out.gif │ │ ├── smiley-undecided.gif │ │ ├── smiley-money-mouth.gif │ │ └── smiley-foot-in-mouth.gif ├── .travis.yml ├── config │ ├── dev.env.js │ ├── prod.env.js │ └── test.env.js ├── .postcssrc.js ├── .editorconfig ├── .gitignore ├── .babelrc └── index.html └── demo.opengalaxy.com.conf /backend/project/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/apps/cmdb/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/apps/modellog/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/apps/users/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/extra_apps/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/apps/cmdb/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/apps/users/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/logs/.gitignore: -------------------------------------------------------------------------------- 1 | # 忽略所有文件 2 | *.log -------------------------------------------------------------------------------- /backend/apps/modellog/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/extra_apps/DjangoUeditor/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/apps/cmdb/management/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/apps/users/management/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /frontend/.eslintignore: -------------------------------------------------------------------------------- 1 | build/*.js 2 | config/*.js 3 | src/assets 4 | -------------------------------------------------------------------------------- /backend/extra_apps/DjangoUeditor/static/ueditor/themes/iframe.css: -------------------------------------------------------------------------------- 1 | /*可以在这里添加你自己的css*/ 2 | -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/static/xadmin/vendor/bootstrap-multiselect/css/bootstrap-multiselect.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/media/avatar/.gitignore: -------------------------------------------------------------------------------- 1 | # 忽略所有文件 2 | * 3 | # 除了以下文件 4 | !.gitignore 5 | !default.jpg 6 | -------------------------------------------------------------------------------- /backend/apps/cmdb/migrations/.gitignore: -------------------------------------------------------------------------------- 1 | # 忽略所有文件 2 | * 3 | # 除了以下文件 4 | !.gitignore 5 | !__init__.py -------------------------------------------------------------------------------- /backend/apps/modellog/migrations/.gitignore: -------------------------------------------------------------------------------- 1 | # 忽略所有文件 2 | * 3 | # 除了以下文件 4 | !.gitignore 5 | !__init__.py -------------------------------------------------------------------------------- /backend/apps/modellog/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /backend/apps/users/migrations/.gitignore: -------------------------------------------------------------------------------- 1 | # 忽略所有文件 2 | * 3 | # 除了以下文件 4 | !.gitignore 5 | !__init__.py -------------------------------------------------------------------------------- /backend/apps/users/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /backend/apps/modellog/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/migrations/.gitignore: -------------------------------------------------------------------------------- 1 | # 忽略所有文件 2 | * 3 | # 除了以下文件 4 | !.gitignore 5 | !__init__.py -------------------------------------------------------------------------------- /backend/media/mdjcelery/scripts/.gitignore: -------------------------------------------------------------------------------- 1 | # 忽略所有文件 2 | * 3 | # 除了以下文件 4 | !.gitignore 5 | !default.py 6 | -------------------------------------------------------------------------------- /backend/media/workflow/scripts/.gitignore: -------------------------------------------------------------------------------- 1 | # 忽略所有文件 2 | * 3 | # 除了以下文件 4 | !.gitignore 5 | !default.py 6 | -------------------------------------------------------------------------------- /frontend/src/views/user/components/index.js: -------------------------------------------------------------------------------- 1 | export { default as AvatarUpload } from './avatarUpload' 2 | -------------------------------------------------------------------------------- /frontend/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/frontend/favicon.ico -------------------------------------------------------------------------------- /frontend/build/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/frontend/build/logo.png -------------------------------------------------------------------------------- /frontend/static/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/frontend/static/404.png -------------------------------------------------------------------------------- /frontend/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: stable 3 | script: npm run test 4 | notifications: 5 | email: false 6 | -------------------------------------------------------------------------------- /frontend/static/404_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/frontend/static/404_cloud.png -------------------------------------------------------------------------------- /backend/extra_apps/DjangoUeditor/test_try.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | from utils import FileSize 3 | MF = FileSize("36723678") 4 | print(MF) 5 | -------------------------------------------------------------------------------- /backend/media/avatar/default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/backend/media/avatar/default.jpg -------------------------------------------------------------------------------- /frontend/build/vue-loader.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | module.exports = { 4 | //You can set the vue-loader configuration by yourself. 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/assets/401_images/401.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/frontend/src/assets/401_images/401.gif -------------------------------------------------------------------------------- /frontend/src/assets/404_images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/frontend/src/assets/404_images/404.png -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/templates/xadmin/views/quick_detail.html: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | {% load xadmin_tags %} 3 | {% load crispy_forms_tags %} 4 | {% crispy form %} -------------------------------------------------------------------------------- /frontend/config/dev.env.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | NODE_ENV: '"development"', 3 | ENV_CONFIG: '"dev"', 4 | API_PREFIX: '"/api/v1"', 5 | IS_SSO:0, 6 | } 7 | -------------------------------------------------------------------------------- /frontend/src/assets/404_images/404_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/frontend/src/assets/404_images/404_cloud.png -------------------------------------------------------------------------------- /frontend/src/components/StreeAss/index.js: -------------------------------------------------------------------------------- 1 | export { default as StreeMfalcon } from './StreeMfalcon' 2 | export { default as StreeDemand } from './StreeDemand' 3 | -------------------------------------------------------------------------------- /frontend/config/prod.env.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | NODE_ENV: '"production"', 3 | ENV_CONFIG: '"prod"', 4 | API_PREFIX: '"/api/v1"', 5 | IS_SSO: 1, 6 | } 7 | -------------------------------------------------------------------------------- /frontend/config/test.env.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | NODE_ENV: '"production"', 3 | ENV_CONFIG: '"test"', 4 | API_PREFIX: '"/api/v1"', 5 | IS_SSO: 0, 6 | } 7 | -------------------------------------------------------------------------------- /backend/apps/cmdb/tests.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.test import TestCase 5 | 6 | # Create your tests here. 7 | -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/locale/en/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/backend/extra_apps/xadmin/locale/en/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/locale/eu/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/backend/extra_apps/xadmin/locale/eu/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/locale/ja/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/backend/extra_apps/xadmin/locale/ja/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/locale/lt/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/backend/extra_apps/xadmin/locale/lt/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/locale/pl/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/backend/extra_apps/xadmin/locale/pl/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/static/xadmin/css/xadmin.plugin.aggregation.css: -------------------------------------------------------------------------------- 1 | td.aggregate { 2 | font-weight: bold; 3 | } 4 | td.aggregate span.aggregate_title { 5 | float: right; 6 | } -------------------------------------------------------------------------------- /frontend/src/assets/custom-theme/fonts/element-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/frontend/src/assets/custom-theme/fonts/element-icons.ttf -------------------------------------------------------------------------------- /frontend/src/assets/custom-theme/fonts/element-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/frontend/src/assets/custom-theme/fonts/element-icons.woff -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/locale/en/LC_MESSAGES/djangojs.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/backend/extra_apps/xadmin/locale/en/LC_MESSAGES/djangojs.mo -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/locale/eu/LC_MESSAGES/djangojs.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/backend/extra_apps/xadmin/locale/eu/LC_MESSAGES/djangojs.mo -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/locale/ja/LC_MESSAGES/djangojs.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/backend/extra_apps/xadmin/locale/ja/LC_MESSAGES/djangojs.mo -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/locale/lt/LC_MESSAGES/djangojs.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/backend/extra_apps/xadmin/locale/lt/LC_MESSAGES/djangojs.mo -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/locale/pl/LC_MESSAGES/djangojs.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysqlplus/vue-element-frontend-backend/HEAD/backend/extra_apps/xadmin/locale/pl/LC_MESSAGES/djangojs.mo -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/templates/xadmin/layout/field_value_td.html: -------------------------------------------------------------------------------- 1 |
{% trans "Null" %}
{% endblock box_content %} -------------------------------------------------------------------------------- /frontend/src/App.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 |{% trans "We're sorry, but the requested page could not be found." %}
11 | 12 | {% endblock %} 13 | -------------------------------------------------------------------------------- /backend/apps/cmdb/urls.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #author:laoseng(QQ:1572665580),feilong(hhr66@qq.com) 3 | #create:2018-09 4 | # url mapping 类 5 | from rest_framework import routers 6 | from .views import * 7 | router = routers.DefaultRouter() 8 | router.register(r'idcs', IdcViewSet) 9 | router.register(r'hosts', HostViewSet) 10 | urlpatterns = router.urls 11 | -------------------------------------------------------------------------------- /frontend/src/store/modules/errorLog.js: -------------------------------------------------------------------------------- 1 | const errorLog = { 2 | state: { 3 | logs: [] 4 | }, 5 | mutations: { 6 | ADD_ERROR_LOG: (state, log) => { 7 | state.logs.push(log) 8 | } 9 | }, 10 | actions: { 11 | addErrorLog({ commit }, log) { 12 | commit('ADD_ERROR_LOG', log) 13 | } 14 | } 15 | } 16 | 17 | export default errorLog 18 | -------------------------------------------------------------------------------- /frontend/src/icons/svg/drag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /frontend/src/icons/svg/email.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /frontend/src/icons/svgo.yml: -------------------------------------------------------------------------------- 1 | # replace default config 2 | 3 | # multipass: true 4 | # full: true 5 | 6 | plugins: 7 | 8 | # - name 9 | # 10 | # or: 11 | # - name: false 12 | # - name: true 13 | # 14 | # or: 15 | # - name: 16 | # param1: 1 17 | # param2: 2 18 | 19 | - removeAttrs: 20 | attrs: 21 | - 'fill' 22 | - 'fill-rule' 23 | -------------------------------------------------------------------------------- /backend/apps/modellog/adminx.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #author:laoseng(QQ:1572665580),feilong(hhr66@qq.com) 3 | #create:2018-09 4 | # 后台 control 5 | 6 | import xadmin 7 | from .models import LogsEntry 8 | 9 | class LogsEntryAdmin(object): 10 | list_display = ["time_added", "user", "object_repr", "action_flag", "message"] 11 | 12 | xadmin.site.register(LogsEntry, LogsEntryAdmin) -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/static/xadmin/css/xadmin.plugin.quickfilter.css: -------------------------------------------------------------------------------- 1 | .nav-quickfilter .filter-item { 2 | white-space: nowrap; 3 | overflow: hidden; 4 | padding: 5px; 5 | } 6 | 7 | .nav-quickfilter .filter-col-1 { 8 | margin: 3px 2px 0 -2px; 9 | float: left; 10 | } 11 | 12 | .nav-quickfilter .filter-col-2 { 13 | } 14 | 15 | .nav-quickfilter .nav-expand { 16 | z-index:100; 17 | } -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/templates/xadmin/views/quick_form.html: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | {% load xadmin_tags %} 3 | {% load crispy_forms_tags %} 4 | 7 | {{ media.css }} 8 | {{ media.js }} -------------------------------------------------------------------------------- /frontend/src/icons/svg/guide 2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /frontend/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { 4 | "modules": false, 5 | "targets": { 6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] 7 | } 8 | }], 9 | "stage-2" 10 | ], 11 | "plugins": ["transform-vue-jsx", "transform-runtime"], 12 | "env": { 13 | "development":{ 14 | "plugins": ["dynamic-import-node"] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/.tx/config: -------------------------------------------------------------------------------- 1 | [main] 2 | host = https://www.transifex.com 3 | 4 | [xadmin-core.django] 5 | file_filter = locale/{{ result.val }}
5 |{% trans "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user." %}
14 | {% endblock %} 15 | -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/templates/xadmin/widgets/qbutton.html: -------------------------------------------------------------------------------- 1 | {% extends "xadmin/widgets/base.html" %} 2 | {% load i18n xadmin_tags %} 3 | 4 | {% block content %} 5 |{{ btn.title }}
11 | 12 |{% trans "First, enter a username and password. Then, you'll be able to edit more user options." %}
7 | {% else %} 8 |{% trans "Enter a username and password." %}
9 | {% endif %} 10 | {% endblock %} 11 | 12 | {% block after_field_sets %} 13 | 14 | {% endblock %} 15 | -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/templates/xadmin/views/app_index.html: -------------------------------------------------------------------------------- 1 | {% extends "xadmin/index.html" %} 2 | {% load i18n %} 3 | 4 | 5 | {% if not is_popup %} 6 | {% block breadcrumbs %} 7 | 17 | {% endblock %} 18 | {% endif %} 19 | 20 | {% block sidebar %}{% endblock %} 21 | -------------------------------------------------------------------------------- /backend/apps/users/urls.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #author:laoseng(QQ:1572665580),feilong(hhr66@qq.com) 3 | #create:2018-09 4 | # url mapping 5 | from rest_framework import routers 6 | from .views import * 7 | 8 | router = routers.DefaultRouter() 9 | router.register(r'user', UserViewSet, base_name='user') 10 | router.register(r'users', UsersViewSet, base_name='users') 11 | router.register(r'urls', UrlViewSet, base_name='urls') 12 | router.register(r'roles', RoleViewSet, base_name='roles') 13 | router.register(r'otps', OtpViewSet, base_name='otps') 14 | urlpatterns = router.urls -------------------------------------------------------------------------------- /frontend/src/icons/svg/star.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/static/xadmin/js/xadmin.plugin.refresh.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 3 | $.dofresh = function(){ 4 | var refresh_el = $('#refresh_time'); 5 | var time = parseInt(refresh_el.text()); 6 | if(time == 1){ 7 | refresh_el.text(0); 8 | window.location.reload(); 9 | } else { 10 | refresh_el.text(time-1); 11 | setTimeout("$.dofresh()",1000) 12 | } 13 | }; 14 | 15 | $(function(){ 16 | var refresh_el = $('#refresh_time'); 17 | if(refresh_el){ 18 | setTimeout("$.dofresh()",1000) 19 | } 20 | }); 21 | 22 | })(jQuery); -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/static/xadmin/js/xadmin.plugin.importexport.js: -------------------------------------------------------------------------------- 1 | $("#export-menu").click(function () { 2 | $("input[name='_select_across']").val($("input[name='select_across']").val()); 3 | if (0 == $("input[name='select_across']").val()) { 4 | var selectedRecords = []; 5 | $.each($('.action-select'), function () { 6 | if (true == $(this).prop('checked')) { 7 | selectedRecords.push($(this).val()); 8 | } 9 | }); 10 | $("input[name='_selected_actions']").val(selectedRecords.join(',')); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/templates/xadmin/layout/fieldset.html: -------------------------------------------------------------------------------- 1 | {% extends "xadmin/includes/box.html" %} 2 | {% block box_class %}fieldset{% if fieldset.css_class %} {{ fieldset.css_class }}{% endif %}{% endblock box_class %} 3 | {% block box_attrs %}{% if fieldset.css_id %}id="{{ fieldset.css_id }}"{% endif %} {{ fieldset.flat_attrs|safe }}{% endblock box_attrs %} 4 | {% block box_title %}{{ legend|safe }}{% if fieldset.description %} {{fieldset.description}}{% endif %}{% endblock box_title %} 5 | {% block box_content %} 6 | {{ fields|safe }} 7 | {% endblock box_content %} 8 | -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/plugins/utils.py: -------------------------------------------------------------------------------- 1 | from django.template.context import RequestContext 2 | 3 | 4 | def get_context_dict(context): 5 | """ 6 | Contexts in django version 1.9+ must be dictionaries. As xadmin has a legacy with older versions of django, 7 | the function helps the transition by converting the [RequestContext] object to the dictionary when necessary. 8 | :param context: RequestContext 9 | :return: dict 10 | """ 11 | if isinstance(context, RequestContext): 12 | ctx = context.flatten() 13 | else: 14 | ctx = context 15 | return ctx 16 | -------------------------------------------------------------------------------- /backend/extra_apps/DjangoUeditor/static/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 3 | 4 | {% trans "Layout" %} 5 | 6 | 12 | -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/templates/xadmin/includes/box.html: -------------------------------------------------------------------------------- 1 |{% trans "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience." %}
17 | 18 | {% endblock %} 19 | -------------------------------------------------------------------------------- /frontend/src/components/ImageCropper/utils/data2blob.js: -------------------------------------------------------------------------------- 1 | /** 2 | * database64文件格式转换为2进制 3 | * 4 | * @param {[String]} data dataURL 的格式为 “data:image/png;base64,****”,逗号之前都是一些说明性的文字,我们只需要逗号之后的就行了 5 | * @param {[String]} mime [description] 6 | * @return {[blob]} [description] 7 | */ 8 | export default function(data, mime) { 9 | data = data.split(',')[1] 10 | data = window.atob(data) 11 | var ia = new Uint8Array(data.length) 12 | for (var i = 0; i < data.length; i++) { 13 | ia[i] = data.charCodeAt(i) 14 | } 15 | // canvas.toDataURL 返回的默认格式就是 image/png 16 | return new Blob([ia], { 17 | type: mime 18 | }) 19 | } 20 | -------------------------------------------------------------------------------- /frontend/src/views/layout/components/Sidebar/Item.vue: -------------------------------------------------------------------------------- 1 | 30 | -------------------------------------------------------------------------------- /backend/apps/users/filters.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #author:laoseng(QQ:1572665580),feilong(hhr66@qq.com) 3 | #create:2018-09 4 | # 查询过滤条件 5 | 6 | from django_filters import rest_framework as filters 7 | from django.contrib.auth import get_user_model 8 | from .models import Url 9 | 10 | User = get_user_model() 11 | 12 | 13 | class UrlFilter(filters.FilterSet): 14 | class Meta: 15 | model = Url 16 | fields = {'user_type': ['exact', 'in'], 'method': ['exact', 'in']} 17 | 18 | 19 | class UsersFilter(filters.FilterSet): 20 | class Meta: 21 | model = User 22 | fields = ('is_active', 'is_superuser', 'is_staff') 23 | -------------------------------------------------------------------------------- /backend/extra_apps/xadmin/static/xadmin/js/xadmin.plugin.bookmark.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 3 | $(function(){ 4 | $('#bookmark_form').each(function(){ 5 | var f = $(this); 6 | f.submit(function(e){ 7 | f.find('button[type=submit]').button('loading'); 8 | $.post(f.attr('action'), f.serialize(), function(data){ 9 | $('#bookmark-menu .add-bookmark').remove(); 10 | $('#bookmark-menu').append('{{ field.contents }}
9 | {% else %} 10 | {% crispy_field field %} 11 | {% if field.errors %} 12 | {% for error in field.errors %} 13 | {{ error }} 14 | {% endfor %} 15 | {% endif %} 16 | {% endif %} 17 |{% trans "We've e-mailed you instructions for setting your password to the e-mail address you submitted. You should be receiving it shortly." %}
15 |