mirror of
https://github.com/RobbieHan/sandboxMP.git
synced 2026-02-03 02:43:14 +08:00
domainname
This commit is contained in:
343
.idea/workspace.xml
generated
343
.idea/workspace.xml
generated
@@ -5,21 +5,11 @@
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/apps/cmdb/forms.py" beforeDir="false" afterPath="$PROJECT_DIR$/apps/cmdb/forms.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/apps/cmdb/models.py" beforeDir="false" afterPath="$PROJECT_DIR$/apps/cmdb/models.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/apps/cmdb/urls.py" beforeDir="false" afterPath="$PROJECT_DIR$/apps/cmdb/urls.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/apps/cmdb/views.py" beforeDir="false" afterPath="$PROJECT_DIR$/apps/cmdb/views.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/apps/cmdb/views_eam.py" beforeDir="false" afterPath="$PROJECT_DIR$/apps/cmdb/views_eam.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/apps/system/migrations/0001_initial.py" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/apps/system/migrations/0002_auto_20181115_2124.py" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/apps/system/urls.py" beforeDir="false" afterPath="$PROJECT_DIR$/apps/system/urls.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/apps/system/views_user.py" beforeDir="false" afterPath="$PROJECT_DIR$/apps/system/views_user.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/sandboxMP/settings.py" beforeDir="false" afterPath="$PROJECT_DIR$/sandboxMP/settings.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/static/plugins/fastclick/fastclick.js" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/static/plugins/fastclick/fastclick.min.js" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/templates/base-static.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/base-static.html" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/templates/cmdb/cmdb_index.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/cmdb/cmdb_index.html" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/templates/cmdb/network_asset.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/cmdb/network_asset.html" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/templates/cmdb/networkasset_form.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/cmdb/networkasset_form.html" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/templates/head-footer.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/head-footer.html" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/templates/system/users/user.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/system/users/user.html" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/templates/cmdb/domainname.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/cmdb/domainname.html" afterDir="false" />
|
||||
</list>
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
@@ -27,16 +17,40 @@
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="CoverageDataManager">
|
||||
<SUITE FILE_PATH="coverage/sandboxMP$views_eam.coverage" NAME="views_eam Coverage Results" MODIFIED="1554950533334" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/apps/cmdb" />
|
||||
</component>
|
||||
<component name="DjangoConsoleOptions" custom-start-script="import sys; print('Python %s on %s' % (sys.version, sys.platform)) import django; print('Django %s' % django.get_version()) sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS]) if 'setup' in dir(django): django.setup() import django_manage_shell; django_manage_shell.run(PROJECT_ROOT)">
|
||||
<option name="myCustomStartScript" value="import sys; print('Python %s on %s' % (sys.version, sys.platform)) import django; print('Django %s' % django.get_version()) sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS]) if 'setup' in dir(django): django.setup() import django_manage_shell; django_manage_shell.run(PROJECT_ROOT)" />
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/apps/cmdb/views.py">
|
||||
<entry file="file://$PROJECT_DIR$/apps/cmdb/models.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="253">
|
||||
<caret line="15" column="24" selection-start-line="15" selection-start-column="24" selection-end-line="15" selection-end-column="24" />
|
||||
<state relative-caret-position="2567">
|
||||
<caret line="156" column="4" selection-start-line="156" selection-start-column="4" selection-end-line="156" selection-end-column="9" />
|
||||
<folding>
|
||||
<element signature="e#0#29#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/templates/cmdb/cmdb_index.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="374">
|
||||
<caret line="50" column="97" selection-start-line="50" selection-start-column="97" selection-end-line="50" selection-end-column="97" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/apps/cmdb/views_eam.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="7514">
|
||||
<caret line="460" selection-start-line="460" selection-end-line="460" />
|
||||
<folding>
|
||||
<element signature="e#0#9#0" expanded="true" />
|
||||
</folding>
|
||||
@@ -45,30 +59,47 @@
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/apps/system/views_structure.py">
|
||||
<entry file="file://$PROJECT_DIR$/apps/custom.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-359" />
|
||||
<state relative-caret-position="1649">
|
||||
<caret line="107" column="26" selection-start-line="107" selection-start-column="26" selection-end-line="107" selection-end-column="26" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/templates/cmdb/cmdb_index.html">
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/apps/cmdb/forms.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="509">
|
||||
<caret line="101" column="16" lean-forward="true" selection-start-line="101" selection-start-column="16" selection-end-line="101" selection-end-column="16" />
|
||||
<state relative-caret-position="2788">
|
||||
<caret line="169" column="45" selection-start-line="169" selection-start-column="45" selection-end-line="169" selection-end-column="45" />
|
||||
<folding>
|
||||
<element signature="e#192#3193#0#HTML" />
|
||||
<element signature="e#958#980#0#HTML" expanded="true" />
|
||||
<element signature="e#1191#1213#0#HTML" expanded="true" />
|
||||
<element signature="e#2887#2926#0#HTML" expanded="true" />
|
||||
<element signature="e#3008#3029#0#HTML" expanded="true" />
|
||||
<element signature="e#3420#3459#0#HTML" expanded="true" />
|
||||
<element signature="e#3539#3578#0#HTML" expanded="true" />
|
||||
<element signature="e#73#82#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/apps/cmdb/urls.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1037">
|
||||
<caret line="64" column="95" selection-start-line="64" selection-start-column="95" selection-end-line="64" selection-end-column="95" />
|
||||
<folding>
|
||||
<element signature="e#0#28#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/templates/cmdb/domainname.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="4505">
|
||||
<caret line="265" column="38" lean-forward="true" selection-start-line="265" selection-start-column="38" selection-end-line="265" selection-end-column="38" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</component>
|
||||
<component name="FileTemplateManagerImpl">
|
||||
@@ -88,6 +119,7 @@
|
||||
<find>访问来源</find>
|
||||
<find>Latest Orders</find>
|
||||
<find>Browser Usage</find>
|
||||
<find>get_context_data</find>
|
||||
</findStrings>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
@@ -98,10 +130,8 @@
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/templates/cmdb/natrule.html" />
|
||||
<option value="$PROJECT_DIR$/templates/cmdb/natrule_form.html" />
|
||||
<option value="$PROJECT_DIR$/apps/cmdb/models.py" />
|
||||
<option value="$PROJECT_DIR$/templates/cmdb/networkasset_form.html" />
|
||||
<option value="$PROJECT_DIR$/static/dist/css/AdminLTE.css" />
|
||||
<option value="$PROJECT_DIR$/apps/cmdb/views_eam.py" />
|
||||
<option value="$PROJECT_DIR$/templates/cmdb/network_asset.html" />
|
||||
<option value="$PROJECT_DIR$/templates/system/users/user.html" />
|
||||
<option value="$PROJECT_DIR$/sandboxMP/settings.py" />
|
||||
@@ -112,10 +142,15 @@
|
||||
<option value="$PROJECT_DIR$/templates/base-static.html" />
|
||||
<option value="$PROJECT_DIR$/static/plugins/echarts/echarts.min.js" />
|
||||
<option value="$PROJECT_DIR$/static/plugins/highcharts/highcharts.js" />
|
||||
<option value="$PROJECT_DIR$/apps/cmdb/urls.py" />
|
||||
<option value="$PROJECT_DIR$/templates/index2.html" />
|
||||
<option value="$PROJECT_DIR$/apps/cmdb/forms.py" />
|
||||
<option value="$PROJECT_DIR$/apps/cmdb/views.py" />
|
||||
<option value="$PROJECT_DIR$/apps/cmdb/forms.py" />
|
||||
<option value="$PROJECT_DIR$/apps/cmdb/models.py" />
|
||||
<option value="$PROJECT_DIR$/apps/cmdb/views_eam.py" />
|
||||
<option value="$PROJECT_DIR$/apps/cmdb/urls.py" />
|
||||
<option value="$PROJECT_DIR$/templates/cmdb/domainname_form.html" />
|
||||
<option value="$PROJECT_DIR$/templates/cmdb/domainname.html" />
|
||||
<option value="$PROJECT_DIR$/templates/cmdb/domainname2natrule.html" />
|
||||
<option value="$PROJECT_DIR$/templates/cmdb/cmdb_index.html" />
|
||||
</list>
|
||||
</option>
|
||||
@@ -130,6 +165,7 @@
|
||||
<foldersAlwaysOnTop value="true" />
|
||||
</navigator>
|
||||
<panes>
|
||||
<pane id="Scope" />
|
||||
<pane id="ProjectPane">
|
||||
<subPane>
|
||||
<expand>
|
||||
@@ -142,11 +178,32 @@
|
||||
<item name="sandboxMP" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="apps" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="sandboxMP" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="sandboxMP" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="apps" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="cmdb" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="sandboxMP" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="sandboxMP" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="config" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="sandboxMP" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="sandboxMP" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="templates" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="sandboxMP" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="sandboxMP" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="templates" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="cmdb" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
</expand>
|
||||
<select />
|
||||
</subPane>
|
||||
</pane>
|
||||
<pane id="Scope" />
|
||||
</panes>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
@@ -160,10 +217,10 @@
|
||||
</component>
|
||||
<component name="RecentsManager">
|
||||
<key name="CopyFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/templates/cmdb" />
|
||||
<recent name="$PROJECT_DIR$/static/plugins/echarts" />
|
||||
<recent name="$PROJECT_DIR$/templates" />
|
||||
<recent name="$PROJECT_DIR$/templates/system/users" />
|
||||
<recent name="$PROJECT_DIR$/templates/cmdb" />
|
||||
</key>
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/static/plugins/echarts" />
|
||||
@@ -182,7 +239,29 @@
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="RunManager">
|
||||
<component name="RunManager" selected="Django server.cmdb">
|
||||
<configuration name="views_eam" type="PythonConfigurationType" factoryName="Python" temporary="true">
|
||||
<module name="sandboxMP" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/apps/cmdb" />
|
||||
<option name="IS_MODULE_SDK" value="true" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
||||
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/apps/cmdb/views_eam.py" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
<option name="REDIRECT_INPUT" value="false" />
|
||||
<option name="INPUT_FILE" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="cmdb" type="Python.DjangoServer" factoryName="Django server">
|
||||
<module name="sandboxMP" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
@@ -207,6 +286,11 @@
|
||||
<option name="customRunCommand" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<recent_temporary>
|
||||
<list>
|
||||
<item itemvalue="Python.views_eam" />
|
||||
</list>
|
||||
</recent_temporary>
|
||||
</component>
|
||||
<component name="SvnConfiguration">
|
||||
<configuration />
|
||||
@@ -224,22 +308,30 @@
|
||||
<workItem from="1554305728868" duration="446000" />
|
||||
<workItem from="1554533797978" duration="10677000" />
|
||||
<workItem from="1554604330772" duration="12685000" />
|
||||
<workItem from="1554711227466" duration="4577000" />
|
||||
<workItem from="1554786790020" duration="3729000" />
|
||||
<workItem from="1554871617441" duration="1241000" />
|
||||
<workItem from="1554897056464" duration="7503000" />
|
||||
<workItem from="1554949204301" duration="20322000" />
|
||||
<workItem from="1554999607936" duration="4491000" />
|
||||
<workItem from="1555037177006" duration="1560000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TimeTrackingManager">
|
||||
<option name="totallyTimeSpent" value="52247000" />
|
||||
<option name="totallyTimeSpent" value="95670000" />
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="0" y="23" width="1680" height="973" extended-state="0" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.1965812" />
|
||||
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.18192919" />
|
||||
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
||||
<window_info id="Favorites" order="2" side_tool="true" />
|
||||
<window_info anchor="bottom" id="Message" order="0" />
|
||||
<window_info anchor="bottom" id="Find" order="1" />
|
||||
<window_info anchor="bottom" id="Run" order="2" weight="0.21793416" />
|
||||
<window_info anchor="bottom" id="Debug" order="3" weight="0.25198638" />
|
||||
<window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.2644722" />
|
||||
<window_info anchor="bottom" id="Debug" order="3" weight="0.24063565" />
|
||||
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
|
||||
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
|
||||
<window_info anchor="bottom" id="TODO" order="6" />
|
||||
@@ -262,13 +354,6 @@
|
||||
<option name="version" value="1" />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/templates/cmdb/deviceinfo_form.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="396">
|
||||
<caret line="89" selection-start-line="89" selection-end-line="98" selection-end-column="22" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/templates/cmdb/natrule.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="295">
|
||||
@@ -307,23 +392,9 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/apps/custom.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="211">
|
||||
<caret line="83" selection-start-line="83" selection-end-line="83" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/templates/system/users/passwd_change.html">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/apps/utils/sandbox_utils.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="476">
|
||||
<caret line="53" column="29" selection-start-line="53" selection-start-column="12" selection-end-line="53" selection-end-column="29" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/sandboxMP/settings.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="445">
|
||||
@@ -381,28 +452,12 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/templates/index2.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="163">
|
||||
<caret line="1236" column="48" selection-start-line="1212" selection-start-column="9" selection-end-line="1258" selection-end-column="16" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/templates/index2.html" />
|
||||
<entry file="file://$PROJECT_DIR$/apps/system/forms.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-1082" />
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/apps/cmdb/models.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="151">
|
||||
<caret line="137" column="4" lean-forward="true" selection-start-line="137" selection-start-column="4" selection-end-line="137" selection-end-column="15" />
|
||||
<folding>
|
||||
<element signature="e#0#29#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/static/bootstrap/css/bootstrap.css">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="216">
|
||||
@@ -417,80 +472,134 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/templates/cmdb/network_asset.html">
|
||||
<entry file="file://$PROJECT_DIR$/templates/cmdb/deviceinfo_detail.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="226">
|
||||
<caret line="52" column="44" lean-forward="true" selection-start-line="52" selection-start-column="44" selection-end-line="52" selection-end-column="44" />
|
||||
</state>
|
||||
<state relative-caret-position="-2183" />
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/apps/cmdb/views_eam.py">
|
||||
<entry file="file://$PROJECT_DIR$/apps/system/views_structure.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="190">
|
||||
<caret line="329" column="20" selection-start-line="329" selection-start-column="20" selection-end-line="329" selection-end-column="20" />
|
||||
<state relative-caret-position="-382">
|
||||
<caret line="17" selection-start-line="17" selection-end-line="17" />
|
||||
<folding>
|
||||
<element signature="e#0#9#0" expanded="true" />
|
||||
<element signature="e#83#94#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/apps/cmdb/urls.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="34">
|
||||
<caret line="2" selection-start-line="2" selection-end-line="2" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/apps/cmdb/views.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="253">
|
||||
<caret line="15" column="24" selection-start-line="15" selection-start-column="24" selection-end-line="15" selection-end-column="24" />
|
||||
<state relative-caret-position="736">
|
||||
<caret line="49" column="38" selection-start-line="49" selection-start-column="38" selection-end-line="49" selection-end-column="38" />
|
||||
<folding>
|
||||
<element signature="e#0#9#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/templates/cmdb/deviceinfo_form.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="87">
|
||||
<caret line="77" selection-start-line="77" selection-end-line="88" selection-end-column="22" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/apps/utils/sandbox_utils.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="42">
|
||||
<caret line="77" lean-forward="true" selection-start-line="77" selection-end-line="77" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/templates/cmdb/deviceinfo.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="3134">
|
||||
<caret line="354" selection-start-line="354" selection-end-line="356" selection-end-column="5" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/templates/index.html">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/templates/cmdb/network_asset.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="634">
|
||||
<caret line="161" column="51" selection-start-line="161" selection-start-column="51" selection-end-line="161" selection-end-column="51" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/templates/cmdb/domainname2natrule.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="425">
|
||||
<caret line="25" column="17" selection-start-line="4" selection-start-column="4" selection-end-line="29" selection-end-column="12" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/apps/cmdb/models.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="2567">
|
||||
<caret line="156" column="4" selection-start-line="156" selection-start-column="4" selection-end-line="156" selection-end-column="9" />
|
||||
<folding>
|
||||
<element signature="e#0#29#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/apps/cmdb/views_eam.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="7514">
|
||||
<caret line="460" selection-start-line="460" selection-end-line="460" />
|
||||
<folding>
|
||||
<element signature="e#0#9#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/apps/custom.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1649">
|
||||
<caret line="107" column="26" selection-start-line="107" selection-start-column="26" selection-end-line="107" selection-end-column="26" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/apps/cmdb/forms.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="508">
|
||||
<caret line="143" column="49" selection-start-line="143" selection-start-column="49" selection-end-line="143" selection-end-column="49" />
|
||||
<state relative-caret-position="2788">
|
||||
<caret line="169" column="45" selection-start-line="169" selection-start-column="45" selection-end-line="169" selection-end-column="45" />
|
||||
<folding>
|
||||
<element signature="e#73#82#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/apps/system/views_structure.py">
|
||||
<entry file="file://$PROJECT_DIR$/apps/cmdb/urls.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-359" />
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/templates/cmdb/deviceinfo.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="459">
|
||||
<caret line="354" selection-start-line="354" selection-end-line="356" selection-end-column="5" />
|
||||
<state relative-caret-position="1037">
|
||||
<caret line="64" column="95" selection-start-line="64" selection-start-column="95" selection-end-line="64" selection-end-column="95" />
|
||||
<folding>
|
||||
<element signature="e#0#28#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/templates/cmdb/deviceinfo_detail.html">
|
||||
<entry file="file://$PROJECT_DIR$/templates/cmdb/domainname_form.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-2183" />
|
||||
<state relative-caret-position="293">
|
||||
<caret line="35" column="22" selection-start-line="35" selection-start-column="22" selection-end-line="35" selection-end-column="22" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/templates/cmdb/domainname.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="4505">
|
||||
<caret line="265" column="38" lean-forward="true" selection-start-line="265" selection-start-column="38" selection-end-line="265" selection-end-column="38" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/templates/cmdb/cmdb_index.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="509">
|
||||
<caret line="101" column="16" lean-forward="true" selection-start-line="101" selection-start-column="16" selection-end-line="101" selection-end-column="16" />
|
||||
<folding>
|
||||
<element signature="e#192#3193#0#HTML" />
|
||||
<element signature="e#958#980#0#HTML" expanded="true" />
|
||||
<element signature="e#1191#1213#0#HTML" expanded="true" />
|
||||
<element signature="e#2887#2926#0#HTML" expanded="true" />
|
||||
<element signature="e#3008#3029#0#HTML" expanded="true" />
|
||||
<element signature="e#3420#3459#0#HTML" expanded="true" />
|
||||
<element signature="e#3539#3578#0#HTML" expanded="true" />
|
||||
</folding>
|
||||
<state relative-caret-position="374">
|
||||
<caret line="50" column="97" selection-start-line="50" selection-start-column="97" selection-end-line="50" selection-end-column="97" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
|
||||
@@ -6,7 +6,8 @@ import re
|
||||
|
||||
from django import forms
|
||||
|
||||
from .models import Code, DeviceInfo, ConnectionInfo, DeviceFile, NetworkAsset, NatRule
|
||||
from .models import (Code, DeviceInfo, ConnectionInfo, DeviceFile,
|
||||
NetworkAsset, NatRule, DomainName)
|
||||
|
||||
|
||||
class CodeCreateForm(forms.ModelForm):
|
||||
@@ -118,8 +119,6 @@ class NetworkAssetForm(forms.ModelForm):
|
||||
memory = cleaned_data.get('memory')
|
||||
disk = cleaned_data.get('disk')
|
||||
show_on_top = cleaned_data.get('show_on_top')
|
||||
# if NetworkAsset.objects.filter(ip_address=ip_address).count():
|
||||
# raise forms.ValidationError('资产地址已存在:{}已存在'.format(ip_address))
|
||||
if memory:
|
||||
me = re.match('(.*)/(.*)', memory)
|
||||
if me:
|
||||
@@ -155,6 +154,18 @@ class NatRuleForm(forms.ModelForm):
|
||||
'internet_ip': {'required': '请填写公网IP'},
|
||||
'src_port': {'required': '请填写公网端口'},
|
||||
'lan_ip': {'required': '请填写内网地址'},
|
||||
'dest_port': {'required': '请填写内网端口'}
|
||||
'dest_port': {'required': '请填写内网端口'},
|
||||
'desc': {'required': '请填写规则说明'}
|
||||
}
|
||||
|
||||
|
||||
class DomainNameForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = DomainName
|
||||
fields = '__all__'
|
||||
error_messages = {
|
||||
'domain': {'required': '域名不能为空'},
|
||||
'buyDate': {'required': '请填写域名购买日期'},
|
||||
'warrantyDate': {'required': '请填写域名到期时间'},
|
||||
'dn_type': {'required': '域名类型不能为空'}
|
||||
}
|
||||
|
||||
@@ -167,14 +167,15 @@ class DomainName(AbstractMode):
|
||||
dn_type_choices = (('1', '主域名'),('2', '二级域名'))
|
||||
domain = models.CharField(max_length=200, verbose_name='域名')
|
||||
dn_type = models.CharField(max_length=20, choices=dn_type_choices, default='1')
|
||||
nat_rule = models.ManyToManyField('NatRule', blank=True)
|
||||
resolution_server = models.ForeignKey('Supplier', related_name='res_server',
|
||||
blank=True, null=True, on_delete=models.SET_NULL, verbose_name='解析服务')
|
||||
domain_provider = models.ForeignKey('Supplier', related_name='do_provider',
|
||||
blank=True, null=True, on_delete=models.SET_NULL, verbose_name='域名服务')
|
||||
operation_type = models.ForeignKey('Code', blank=True, null=True, on_delete=models.SET_NULL, verbose_name='所属项目')
|
||||
state = models.BooleanField(default=True, verbose_name='状态')
|
||||
ssl_cert = models.FileField(upload_to="ssl_cert/%Y/%m", null=True, blank=True, verbose_name="SSL证书")
|
||||
buyDate = models.DateField(default=datetime.now, blank=True, null=True, verbose_name='购买日期')
|
||||
warrantyDate = models.DateField(default=datetime.now, blank=True, null=True, verbose_name='到保日期')
|
||||
buyDate = models.DateField(default=datetime.now, verbose_name='购买日期')
|
||||
warrantyDate = models.DateField(default=datetime.now, verbose_name='到期时间')
|
||||
desc = models.TextField(blank=True, default='', verbose_name='备注信息')
|
||||
|
||||
class Meta:
|
||||
@@ -182,5 +183,13 @@ class DomainName(AbstractMode):
|
||||
verbose_name_plural = verbose_name
|
||||
|
||||
|
||||
class SSLCert(TimeAbstract):
|
||||
domain_name = models.ForeignKey('DomainName', blank=True, null=True, on_delete=models.SET_NULL, verbose_name='域名')
|
||||
ssl_cert = models.FileField(upload_to="ssl_cert/", verbose_name="域名证书")
|
||||
buyDate = models.DateField(default=datetime.now, verbose_name='购买日期')
|
||||
warrantyDate = models.DateField(default=datetime.now, verbose_name='到期时间')
|
||||
upload_user = models.CharField(max_length=20, verbose_name="上传人")
|
||||
desc = models.TextField(blank=True, default='', verbose_name='备注信息')
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -56,4 +56,11 @@ urlpatterns = [
|
||||
path('eam/natrule/update/', views_eam.NatRuleUpdateView.as_view(), name='eam-natrule-update'),
|
||||
path('eam/natrule/list/', views_eam.NatRuleListView.as_view(), name='eam-natrule-list'),
|
||||
path('eam/natrule/delete/', views_eam.NatRuleDeleteView.as_view(), name='eam-natrule-delete'),
|
||||
|
||||
path('eam/domain/', views_eam.DomainNameView.as_view(), name='eam-domain'),
|
||||
path('eam/domain/create/', views_eam.DomainNameCreateView.as_view(), name='eam-domain-create'),
|
||||
path('eam/domain/update/', views_eam.DomainNameUpdateView.as_view(), name='eam-domain-update'),
|
||||
path('eam/domain/list/', views_eam.DomainNameListView.as_view(), name='eam-domain-list'),
|
||||
path('eam/domain/delete/', views_eam.DomainNameDeleteView.as_view(), name='eam-domain-delete'),
|
||||
path('eam/domain/dn2nr/', views_eam.DomainName2NatRule.as_view(), name='eam-domain-dn2nr'),
|
||||
]
|
||||
|
||||
@@ -12,7 +12,7 @@ class CmdbView(LoginRequiredMixin, View):
|
||||
ret = dict()
|
||||
cabinet_all = Cabinet.objects.all()
|
||||
operation_type_all = Code.objects.filter(parent__key='operation_type')
|
||||
net_asset=list(NetworkAsset.objects.filter(show_on_top=True).values())
|
||||
# net_asset=list(NetworkAsset.objects.filter(show_on_top=True).values())
|
||||
cabinet_list = []
|
||||
cabinet_count = []
|
||||
for cabinet in cabinet_all:
|
||||
@@ -29,23 +29,23 @@ class CmdbView(LoginRequiredMixin, View):
|
||||
}
|
||||
operations.append(data)
|
||||
|
||||
for asset in net_asset:
|
||||
disk = asset['disk']
|
||||
memory = asset['memory']
|
||||
if disk:
|
||||
di = re.match('(.*)/(.*)', disk)
|
||||
di_used = int(di.group(1))
|
||||
di_total = int(di.group(2))
|
||||
di_percent = '{:.0%}'.format(di_used / di_total)
|
||||
asset['disk'] = {'disk': disk, 'percent': di_percent}
|
||||
if memory:
|
||||
me = re.match('(.*)/(.*)', memory)
|
||||
me_used = int(me.group(1))
|
||||
me_total = int(me.group(2))
|
||||
me_percent = '{:.0%}'.format(me_used / me_total)
|
||||
asset['memory'] = {'memory': memory, 'percent': me_percent}
|
||||
# for asset in net_asset:
|
||||
# disk = asset['disk']
|
||||
# memory = asset['memory']
|
||||
# if disk:
|
||||
# di = re.match('(.*)/(.*)', disk)
|
||||
# di_used = int(di.group(1))
|
||||
# di_total = int(di.group(2))
|
||||
# di_percent = '{:.0%}'.format(di_used / di_total)
|
||||
# asset['disk'] = {'disk': disk, 'percent': di_percent}
|
||||
# if memory:
|
||||
# me = re.match('(.*)/(.*)', memory)
|
||||
# me_used = int(me.group(1))
|
||||
# me_total = int(me.group(2))
|
||||
# me_percent = '{:.0%}'.format(me_used / me_total)
|
||||
# asset['memory'] = {'memory': memory, 'percent': me_percent}
|
||||
ret['cabinet_list'] = cabinet_list
|
||||
ret['cabinet_count'] = cabinet_count
|
||||
ret['operations'] = operations
|
||||
ret['net_asset'] = net_asset
|
||||
# ret['net_asset'] = net_asset
|
||||
return render(request, 'cmdb/cmdb_index.html', ret)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import re
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from django.views.generic import TemplateView, View
|
||||
from django.contrib.auth import get_user_model
|
||||
@@ -13,8 +14,7 @@ from custom import (BreadcrumbMixin, SandboxDeleteView,
|
||||
from .models import (Cabinet, DeviceInfo, Code, ConnectionInfo, DeviceFile,
|
||||
Supplier, NetworkAsset, NatRule, DomainName)
|
||||
from .forms import (DeviceCreateForm, DeviceUpdateForm, ConnectionInfoForm,
|
||||
DeviceFileUploadForm, NetworkAssetForm,
|
||||
NatRuleForm)
|
||||
DeviceFileUploadForm, NetworkAssetForm,NatRuleForm, DomainNameForm)
|
||||
from utils.db_utils import MongodbDriver
|
||||
from utils.sandbox_utils import LoginExecution
|
||||
|
||||
@@ -388,44 +388,73 @@ class NatRuleListView(SandboxListView):
|
||||
class NatRuleDeleteView(SandboxDeleteView):
|
||||
model = NatRule
|
||||
|
||||
# class DomainNameView(LoginRequiredMixin, BreadcrumbMixin, TemplateView):
|
||||
# template_name = 'cmdb/domainname.html'
|
||||
#
|
||||
#
|
||||
# class DomainNameCreateView(SandboxCreateView):
|
||||
# model = DomainName
|
||||
# form_class = NetworkAssetCreateForm
|
||||
#
|
||||
# def get_context_data(self, **kwargs):
|
||||
# kwargs['all_supplier'] = Supplier.objects.all()
|
||||
# return super().get_context_data(**kwargs)
|
||||
#
|
||||
#
|
||||
# class DomainNameUpdateView(SandboxUpdateView):
|
||||
# model = NetworkAsset
|
||||
# form_class = NetworkAssetUpdateForm
|
||||
#
|
||||
# def get_context_data(self, **kwargs):
|
||||
# kwargs['all_provider'] = Supplier.objects.all()
|
||||
# return super().get_context_data(**kwargs)
|
||||
#
|
||||
#
|
||||
# class DomainNameListView(SandboxListView):
|
||||
# model = NetworkAsset
|
||||
# fields = ['id', 'domain', 'resolution_server', 'domain_provider', 'state', 'buyDate', 'warrantyDate', 'desc']
|
||||
#
|
||||
# def get_filters(self):
|
||||
# data = self.request.GET
|
||||
# filters = {'dn_type': '1'}
|
||||
# if 'domain' in data and data['domain']:
|
||||
# filters['domain__icontains'] = data['domain']
|
||||
# if 'resolution_server' in data and data['resolution_server']:
|
||||
# filters['resolution_server'] = data['resolution_server']
|
||||
# if 'domain_provider' in data and data['domain_provider']:
|
||||
# filters['domain_provider'] = data['domain_provider']
|
||||
#
|
||||
# return filters
|
||||
#
|
||||
#
|
||||
# class DomainNameDeleteView(SandboxDeleteView):
|
||||
# model = DomainName
|
||||
|
||||
class DomainNameView(LoginRequiredMixin, BreadcrumbMixin, TemplateView):
|
||||
template_name = 'cmdb/domainname.html'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
kwargs['all_operation'] = Code.objects.filter(parent__key='OPERATION_TYPE')
|
||||
return super().get_context_data(**kwargs)
|
||||
|
||||
|
||||
class DomainNameCreateView(SandboxCreateView):
|
||||
model = DomainName
|
||||
form_class = DomainNameForm
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
kwargs['all_supplier'] = Supplier.objects.all()
|
||||
kwargs['all_nat'] = NatRule.objects.all()
|
||||
kwargs['all_operation'] = Code.objects.filter(parent__key='OPERATION_TYPE')
|
||||
return super().get_context_data(**kwargs)
|
||||
|
||||
|
||||
class DomainNameUpdateView(SandboxUpdateView):
|
||||
model = DomainName
|
||||
form_class = DomainNameForm
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
kwargs['all_supplier'] = Supplier.objects.all()
|
||||
kwargs['all_nat'] = NatRule.objects.all()
|
||||
kwargs['all_operation'] = Code.objects.filter(parent__key='OPERATION_TYPE')
|
||||
return super().get_context_data(**kwargs)
|
||||
|
||||
|
||||
class DomainNameListView(SandboxListView):
|
||||
model = DomainName
|
||||
fields = ['id', 'domain', 'dn_type', 'resolution_server__firm',
|
||||
'domain_provider__firm', 'operation_type__value',
|
||||
'state', 'warrantyDate', 'desc']
|
||||
|
||||
def get_filters(self):
|
||||
data = self.request.GET
|
||||
filters = {}
|
||||
if 'select' in data and data['select']:
|
||||
select = int(data['select'])
|
||||
if select == 0:
|
||||
date_time = datetime.today()
|
||||
filters['warrantyDate__lte'] = date_time
|
||||
if select == 1:
|
||||
now = datetime.today()
|
||||
date_time = now + timedelta(days=30)
|
||||
filters['warrantyDate__range'] = (now, date_time)
|
||||
if 'dn_type' in data and data['dn_type']:
|
||||
filters['dn_type'] = data['dn_type']
|
||||
if 'domain' in data and data['domain']:
|
||||
filters['domain__icontains'] = data['domain']
|
||||
if 'operation_type' in data and data['operation_type']:
|
||||
filters['operation_type'] = data['operation_type']
|
||||
return filters
|
||||
|
||||
class DomainNameDeleteView(SandboxDeleteView):
|
||||
model = DomainName
|
||||
|
||||
|
||||
class DomainName2NatRule(LoginRequiredMixin, View):
|
||||
|
||||
def get(self, request):
|
||||
ret = dict()
|
||||
if 'id' in request.GET and request.GET['id']:
|
||||
domain_name = get_object_or_404(DomainName, pk=int(request.GET['id']))
|
||||
ret['all_nat'] = domain_name.nat_rule.all()
|
||||
return render(request, 'cmdb/domainname2natrule.html', ret)
|
||||
|
||||
|
||||
@@ -6,6 +6,69 @@
|
||||
|
||||
<!-- Main content -->
|
||||
<section class="content">
|
||||
<!-- Small boxes (Stat box) -->
|
||||
<div class="row">
|
||||
<div class="col-lg-3 col-xs-6">
|
||||
<!-- small box -->
|
||||
<div class="small-box bg-aqua">
|
||||
<div class="inner">
|
||||
<strong><h4>WebSocket</h4></strong>
|
||||
<p>WSS在线测试工具</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="fa fa-unlink "></i>
|
||||
</div>
|
||||
<a href="http://tool.hibbba.com/websocket/" class="small-box-footer" target="_blank">使用工具 <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./col -->
|
||||
<div class="col-lg-3 col-xs-6">
|
||||
<!-- small box -->
|
||||
<div class="small-box bg-green">
|
||||
<div class="inner">
|
||||
<strong><h4>网速通</h4></strong>
|
||||
|
||||
<p>域名访问测速</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="fa fa-globe"></i>
|
||||
</div>
|
||||
<a href="http://ceba.quansucloud.com/wstCeba/http/http-test.action" target="_blank" class="small-box-footer">使用工具 <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./col -->
|
||||
<div class="col-lg-3 col-xs-6">
|
||||
<!-- small box -->
|
||||
<div class="small-box bg-yellow">
|
||||
<div class="inner">
|
||||
<strong><h4>IPIP</h4></strong>
|
||||
|
||||
<p>IP查询工具</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="fa fa-delicious"></i>
|
||||
</div>
|
||||
<a href="https://www.ipip.net/ip.html" target="_blank" class="small-box-footer">使用工具<i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./col -->
|
||||
<div class="col-lg-3 col-xs-6">
|
||||
<!-- small box -->
|
||||
<div class="small-box bg-orange">
|
||||
<div class="inner">
|
||||
<strong><h4>暂未添加</h4></strong>
|
||||
|
||||
<p>其他工具</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="fa fa-delicious"></i>
|
||||
</div>
|
||||
<a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./col -->
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="box">
|
||||
@@ -42,120 +105,6 @@
|
||||
</div>
|
||||
<!-- /.col -->
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-7">
|
||||
<div class="box box-info">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">快速访问接口</h3>
|
||||
|
||||
<div class="box-tools pull-right">
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i>
|
||||
</button>
|
||||
<button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.box-header -->
|
||||
<div class="box-body no-padding">
|
||||
<table class="table" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th> 资产名称</th>
|
||||
<th>访问地址</th>
|
||||
<th>硬盘资源(T)</th>
|
||||
<th>内存资源(G)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for asset in net_asset %}
|
||||
<tr>
|
||||
<td><a href="{{ asset.management }}" target="_blank"> {{ asset.name }}</a></td>
|
||||
<td><a href="{{ asset.management }}" target="_blank">{{ asset.management }}</a></td>
|
||||
<td>
|
||||
<div class="progress-group">
|
||||
<div class="progress sm" style="background: #00a65a;color:#FFF;">
|
||||
<div class="progress-bar progress-bar-yellow" style="width: {{ asset.disk.percent }}">
|
||||
</div>
|
||||
</div>
|
||||
<span class="progress-number">{{ asset.disk.disk }}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="progress-group">
|
||||
<div class="progress sm" style="background: #00a65a;color:#FFF;">
|
||||
<div class="progress-bar progress-bar-yellow" style="width: {{ asset.memory.percent }}">
|
||||
</div>
|
||||
</div>
|
||||
<span class="progress-number">{{ asset.memory.memory }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<!-- /.table-responsive -->
|
||||
</div>
|
||||
<!-- /.box-body -->
|
||||
<div class="box-footer clearfix">
|
||||
<button class="btn btn-sm btn-default pull-right" onclick="doNetworkAsset()">所有网络资产</button>
|
||||
</div>
|
||||
<!-- /.box-footer -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<div class="box box-danger">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">提示消息</h3>
|
||||
|
||||
<div class="box-tools pull-right">
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i>
|
||||
</button>
|
||||
<button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.box-header -->
|
||||
<div class="box-body">
|
||||
<div class="table-responsive">
|
||||
<table class="table no-margin">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>消息类型</th>
|
||||
<th>消息内容</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>系统消息</td>
|
||||
<td>消息功能暂未开放</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>系统消息</td>
|
||||
<td>消息功能暂未开放</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>系统消息</td>
|
||||
<td>消息功能暂未开放</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>系统消息</td>
|
||||
<td>消息功能暂未开放</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>系统消息</td>
|
||||
<td>消息功能暂未开放</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- /.table-responsive -->
|
||||
</div>
|
||||
<!-- /.box-body -->
|
||||
<div class="box-footer clearfix">
|
||||
<a href="javascript:void(0)" class="btn btn-sm btn-default btn-flat pull-right">所有消息</a>
|
||||
</div>
|
||||
<!-- /.box-footer -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- /.content -->
|
||||
|
||||
@@ -36,40 +36,14 @@
|
||||
<div class="box-header">
|
||||
<form class="form-inline" id="queryForm">
|
||||
<div class="form-group searchArea margin-r-5 margin-top-5">
|
||||
<label>主机名:</label>
|
||||
<input type="text" name="sys_hostname" class="form-control inputText" id="sys_hostname">
|
||||
</div>
|
||||
<div class="form-group searchArea margin-r-5 margin-top-5">
|
||||
<label>设备地址:</label>
|
||||
<input type="text" name="hostname" class="form-control inputText" id="hostname">
|
||||
</div>
|
||||
<div class="form-group searchArea margin-r-5 margin-top-5">
|
||||
<label>网络类型:</label>
|
||||
<select class="form-control inputText select2" name="network_type" id="network_type">
|
||||
<option></option>
|
||||
{% for code in all_code %}
|
||||
{% ifequal code.parent.key 'NETWORK_TYPE' %}
|
||||
<option value="{{ code.id }}">{{ code.value }}</option>
|
||||
{% endifequal %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group searchArea margin-r-5 margin-top-5">
|
||||
<label>服务类型:</label>
|
||||
<select class="form-control inputText select2" name="service_type" , id="service_type">
|
||||
<option></option>
|
||||
{% for code in all_code %}
|
||||
{% if code.parent.key == 'SERVICE_TYPE' %}
|
||||
<option value="{{ code.id }}">{{ code.value }}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
<label>域名:</label>
|
||||
<input type="text" name="domain" class="form-control inputText" id="domain">
|
||||
</div>
|
||||
<div class="form-group searchArea margin-r-5 margin-top-5">
|
||||
<label>所属项目:</label>
|
||||
<select class="form-control inputText select2" name="operation_type" , id="operation_type">
|
||||
<option></option>
|
||||
{% for code in all_code %}
|
||||
{% for code in all_operation %}
|
||||
{% if code.parent.key == 'OPERATION_TYPE' %}
|
||||
<option value="{{ code.id }}">{{ code.value }}</option>
|
||||
{% endif %}
|
||||
@@ -77,16 +51,21 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group searchArea margin-r-5 margin-top-5">
|
||||
<label>机柜信息:</label>
|
||||
<select class="form-control inputText select2" name="dev_cabinet" , id="dev_cabinet">
|
||||
<label>域名类型:</label>
|
||||
<select class="form-control inputText select2" name="dn_type" , id="dn_type">
|
||||
<option></option>
|
||||
{% for cabinet in all_cabinet %}
|
||||
|
||||
<option value="{{ cabinet.id }}">{{ cabinet.number }}</option>
|
||||
|
||||
{% endfor %}
|
||||
<option value="1">一级域名</option>
|
||||
<option value="2">二级域名</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group searchArea margin-r-5 margin-top-5">
|
||||
<label>有效期:</label>
|
||||
<select id="select" name="select" class="form-control inputText select2">
|
||||
<option style="text-align:center" value="">-----所有-----</option>
|
||||
<option value="0">已过期</option>
|
||||
<option value="1">三月内即将到期</option>
|
||||
</select>
|
||||
</div>
|
||||
<button type="button" id="btnSearch" class="btn btn-default">
|
||||
<i class="glyphicon glyphicon-search"></i>查询
|
||||
</button>
|
||||
@@ -99,13 +78,14 @@
|
||||
<tr valign="middle">
|
||||
<th><input type="checkbox" id="checkAll"></th>
|
||||
<th>ID</th>
|
||||
<th>主机名</th>
|
||||
<th>IP地址</th>
|
||||
<th>服务类型</th>
|
||||
<th>域名</th>
|
||||
<th>域名类型</th>
|
||||
<th>域名解析商</th>
|
||||
<th>域名服务商</th>
|
||||
<th>所属项目</th>
|
||||
<th>配置信息</th>
|
||||
<th>机柜信息</th>
|
||||
<th>网络类型</th>
|
||||
<th>状态</th>
|
||||
<th>到期时间</th>
|
||||
<th>备注信息</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -135,7 +115,7 @@
|
||||
// 菜单选中高亮
|
||||
$(function () {
|
||||
$('#CMDB-EAM').addClass('active');
|
||||
$('#CMDB-EAM-DEVICE').addClass('active');
|
||||
$('#CMDB-EAM-DOMAIN').addClass('active');
|
||||
|
||||
});
|
||||
|
||||
@@ -150,53 +130,72 @@
|
||||
|
||||
{
|
||||
ajax: {
|
||||
"url": "{% url 'cmdb:eam-device-list' %}",
|
||||
"url": "{% url 'cmdb:eam-domain-list' %}",
|
||||
"data": function (d) {
|
||||
d.sys_hostname = $("#sys_hostname").val();
|
||||
d.hostname = $("#hostname").val();
|
||||
d.network_type = $("#network_type").val();
|
||||
d.service_type = $("#service_type").val();
|
||||
d.domain = $("#domain").val();
|
||||
d.select = $("#select").val();
|
||||
d.dn_type = $("#dn_type").val();
|
||||
d.operation_type = $("#operation_type").val();
|
||||
d.dev_cabinet = $("#dev_cabinet").val();
|
||||
}
|
||||
},
|
||||
columns: [
|
||||
DATATABLES_CONSTANT.DATA_TABLES.COLUMN.CHECKBOX,
|
||||
|
||||
{
|
||||
data: "id",
|
||||
},
|
||||
{
|
||||
data: "sys_hostname",
|
||||
data: "domain",
|
||||
},
|
||||
{
|
||||
data: "hostname",
|
||||
data: "dn_type",
|
||||
render : function(data, type, row, meta) {
|
||||
if (data=="1") {
|
||||
return "一级域名";
|
||||
}if (data=="2") {
|
||||
return "二级域名";
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
data: "service_type",
|
||||
data: "resolution_server__firm",
|
||||
},
|
||||
{
|
||||
data: "operation_type",
|
||||
data: "domain_provider__firm",
|
||||
},
|
||||
|
||||
{
|
||||
data: "operation_type__value",
|
||||
},
|
||||
{
|
||||
data: "config",
|
||||
data: "state",
|
||||
render : function(data, type, row, meta) {
|
||||
if (data==1) {
|
||||
var ret="<button class='btn btn-success btn-xs'>在用</button>";
|
||||
return ret;
|
||||
}if (data==0) {
|
||||
var ret="<button class='btn btn-warning btn-xs'>停用</button>";
|
||||
return ret;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
data: "dev_cabinet",
|
||||
data: "warrantyDate",
|
||||
},
|
||||
{
|
||||
data: "network_type",
|
||||
data: "desc",
|
||||
},
|
||||
{
|
||||
data: "id",
|
||||
bSortable: "false",
|
||||
render: function (data, type, row, meta) {
|
||||
var ret = "<button title='详情' onclick='doDetail("
|
||||
+ data + ")'><i class='glyphicon glyphicon-list-alt'></i></button>";
|
||||
ret = ret + "<button title='修改' onclick='doUpdate("
|
||||
var ret = "<button title='修改' onclick='doUpdate("
|
||||
+ data + ")'><i class='glyphicon glyphicon-pencil'></i></button>";
|
||||
ret = ret + "<button title='认证管理' onclick='doDevice2Connection("
|
||||
+ data + ")'><i class='glyphicon glyphicon-user'></i></button>";
|
||||
ret = ret + "<button title='解析地址' onclick='dodn2nr("
|
||||
+ data + ")'><i class='glyphicon glyphicon-globe'></i></button>";
|
||||
ret = ret + "<button title='删除' onclick='doDelete("
|
||||
+ data + ")'><i class='glyphicon glyphicon-trash'></i></button>";
|
||||
return ret;
|
||||
@@ -214,35 +213,33 @@
|
||||
});
|
||||
//新建数据
|
||||
$("#btnCreate").click(function () {
|
||||
var div=layer.open({
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '新增',
|
||||
shadeClose: false,
|
||||
maxmin: true,
|
||||
area: ['800px', '400px'],
|
||||
content: "{% url 'cmdb:eam-device-create' %}",
|
||||
area: ['800px', '620px'],
|
||||
content: "{% url 'cmdb:eam-domain-create' %}",
|
||||
end: function () {
|
||||
//关闭时做的事情
|
||||
oDataTable.ajax.reload();
|
||||
}
|
||||
});
|
||||
layer.full(div )
|
||||
});
|
||||
|
||||
//修改数据
|
||||
function doUpdate(id) {
|
||||
var div=layer.open({
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '编辑',
|
||||
shadeClose: false,
|
||||
maxmin: true,
|
||||
area: ['800px', '400px'],
|
||||
content: ["{% url 'cmdb:eam-device-update' %}" + '?id=' + id, 'no'],
|
||||
area: ['800px', '620px'],
|
||||
content: ["{% url 'cmdb:eam-domain-update' %}" + '?id=' + id],
|
||||
end: function () {
|
||||
oDataTable.ajax.reload();
|
||||
}
|
||||
});
|
||||
layer.full(div )
|
||||
}
|
||||
|
||||
//checkbox全选
|
||||
@@ -280,7 +277,7 @@
|
||||
layer.close(index);
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "{% url 'cmdb:eam-device-delete' %}",
|
||||
url: "{% url 'cmdb:eam-domain-delete' %}",
|
||||
data: {"id": sId, csrfmiddlewaretoken: '{{ csrf_token }}'},
|
||||
cache: false,
|
||||
success: function (msg) {
|
||||
@@ -309,7 +306,7 @@
|
||||
layer.close(index);
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "{% url 'cmdb:eam-device-delete' %}",
|
||||
url: "{% url 'cmdb:eam-domain-delete' %}",
|
||||
data: {"id": id, csrfmiddlewaretoken: '{{ csrf_token }}'},
|
||||
cache: false,
|
||||
success: function (msg) {
|
||||
@@ -338,22 +335,17 @@
|
||||
});
|
||||
|
||||
|
||||
function doDevice2Connection(id) {
|
||||
function dodn2nr(id) {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '认证管理',
|
||||
title: '解析地址',
|
||||
shadeClose: false,
|
||||
skin: 'layui-layer-lan',
|
||||
maxmin: true,
|
||||
area: ['800px', '400px'],
|
||||
content: ["{% url 'cmdb:eam-device-device2connection' %}" + '?id=' + id, 'no'],
|
||||
end: function () {
|
||||
oDataTable.ajax.reload();
|
||||
}
|
||||
content: ["{% url 'cmdb:eam-domain-dn2nr' %}" + '?id=' + id],
|
||||
});
|
||||
}
|
||||
|
||||
function doDetail(id){
|
||||
window.location.href="{% url 'cmdb:eam-device-detail' %}?id="+id;
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
||||
32
templates/cmdb/domainname2natrule.html
Normal file
32
templates/cmdb/domainname2natrule.html
Normal file
@@ -0,0 +1,32 @@
|
||||
{% extends 'base-layer.html' %}
|
||||
{% load staticfiles %}
|
||||
|
||||
{% block main %}
|
||||
<div class="box">
|
||||
<div class="box-body">
|
||||
<table class="table table-bordered">
|
||||
<tr>
|
||||
<th style="width: 10px"></th>
|
||||
<th>公网IP</th>
|
||||
<th>源端口</th>
|
||||
<th>内网iP</th>
|
||||
<th>目的端口</th>
|
||||
<th>状态</th>
|
||||
<th>规则说明</th>
|
||||
</tr>
|
||||
{% for nat in all_nat %}
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>{{ nat.internet_ip }}</td>
|
||||
<td>{{ nat.src_port }}</td>
|
||||
<td>{{ nat.lan_ip }}</td>
|
||||
<td>{{ nat.dest_port }}</td>
|
||||
<td>{{ nat.state }}</td>
|
||||
<td>{{ nat.desc }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
197
templates/cmdb/domainname_form.html
Normal file
197
templates/cmdb/domainname_form.html
Normal file
@@ -0,0 +1,197 @@
|
||||
{% extends 'base-layer.html' %}
|
||||
{% load staticfiles %}
|
||||
|
||||
{% block css %}
|
||||
<link rel="stylesheet" href="{%static 'plugins/select2/select2.min.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'js/plugins/layer/skin/layer.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap-datetimepicker.min.css' %}">
|
||||
{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<div class="box box-danger">
|
||||
<form class="form-horizontal" id="addForm" method="post">
|
||||
<input type="hidden" name='id' value="{{ domainname.id }}" />
|
||||
{% csrf_token %}
|
||||
<div class="box-body">
|
||||
<fieldset>
|
||||
<legend>
|
||||
</legend>
|
||||
<div class="form-group has-feedback">
|
||||
<label class="col-sm-2 control-label">域名地址</label>
|
||||
<div class="col-sm-8">
|
||||
<input class="form-control" name="domain" type="text" value="{{ domainname.domain }}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group has-feedback">
|
||||
<label class="col-sm-2 control-label">NAT规则</label>
|
||||
<div class="col-sm-8">
|
||||
<select class="form-control select2" multiple="multiple" name="nat_rule" data-placeholder="关联NAT(可多选)"
|
||||
style="width: 100%;">
|
||||
{% for nat in all_nat %}
|
||||
<option value="{{ nat.id }}" {% if nat in domainname.nat_rule.all %}selected="selected"
|
||||
{% endif %}>{{ nat.internet_ip }}
|
||||
{% if nat.internet_ip %}:{{ nat.src_port }}{% endif %}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group has-feedback">
|
||||
<label class="col-sm-2 control-label">域名解析</label>
|
||||
<div class="col-sm-8">
|
||||
<select class="form-control select2" style="width:100%;" name="resolution_server">
|
||||
<option {% ifequal domainname.resolution_server '' %}selected="selected"{% endifequal %}></option>
|
||||
{% for supplier in all_supplier %}
|
||||
<option value="{{ supplier.id }}" {% ifequal domainname.resolution_server.id supplier.id %}selected="selected"{% endifequal %}>
|
||||
{{ supplier.firm }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group has-feedback">
|
||||
<label class="col-sm-2 control-label">域名服务</label>
|
||||
<div class="col-sm-8">
|
||||
<select class="form-control select2" style="width:100%;" name="domain_provider">
|
||||
<option {% ifequal domainname.domain_provider '' %}selected="selected"{% endifequal %}></option>
|
||||
{% for supplier in all_supplier %}
|
||||
<option value="{{ supplier.id }}" {% ifequal domainname.domain_provider.id supplier.id %}selected="selected"{% endifequal %}>
|
||||
{{ supplier.firm }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group has-feedback">
|
||||
<label class="col-sm-2 control-label">购买日期</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control pull-right form_datetime" name="buyDate"
|
||||
value="{{ domainname.buyDate | date:'Y-m-d' }}" readonly/>
|
||||
</div>
|
||||
<label class="col-sm-2 control-label">质保日期</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control pull-right form_datetime" name="warrantyDate"
|
||||
value="{{ domainname.warrantyDate | date:'Y-m-d' }}" readonly/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group has-feedback">
|
||||
<label class="col-sm-2 control-label">所属项目</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-control select2" style="width:100%;" name="operation_type">
|
||||
<option {% ifequal deviceinfo.operation_type '' %}selected="selected"{% endifequal %}></option>
|
||||
{% for code in all_operation %}
|
||||
<option value="{{ code.id }}" {% ifequal domainname.operation_type.id code.id %}selected="selected"{% endifequal %}>
|
||||
{{ code.value }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-sm-2 control-label">域名类型</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-control select2" style="width:100%;" name="dn_type">
|
||||
<option {% ifequal domanname.dn_type '' %}selected="selected"{% endifequal %}></option>
|
||||
<option value="1" {% ifequal domainname.dn_type "1" %}selected="selected"{% endifequal %}>一级域名</option>
|
||||
<option value="2" {% ifequal domainname.dn_type "2" %}selected="selected"{% endifequal %}>二级域名</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group has-feedback">
|
||||
<label class="col-sm-2 control-label">状态</label>
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label">
|
||||
<input type="radio" class="minimal" name="state" value="True"
|
||||
{% ifequal domainname.state 1 %}checked{% endifequal %}
|
||||
{% if not domainname %}checked{% endif %}> 在用
|
||||
</label>
|
||||
<label class="control-label">
|
||||
<input type="radio" class="minimal" name="state" value="False"
|
||||
{% ifequal natrule.state 0 %}checked{% endifequal %}> 停用
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group has-feedback">
|
||||
<label class="col-sm-2 control-label">域名备注</label>
|
||||
<div class="col-sm-8">
|
||||
<textarea class="form-control" name="desc" rows="5" >{{ domainname.desc }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="box-footer ">
|
||||
<div class="row span7 text-center ">
|
||||
<button type="button" id="btnCancel" class="btn btn-default margin-right " >重置</button>
|
||||
<button type="button" id="btnSave" class="btn btn-info margin-right " >保存</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block javascripts %}
|
||||
<script src="{% static 'plugins/select2/select2.full.min.js' %}"></script>
|
||||
<script src="{% static 'bootstrap/js/bootstrap-datetimepicker.js' %}"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
function getUrl() {
|
||||
if ($("input[name='id']").val()) {
|
||||
var url = "{% url 'cmdb:eam-domain-update' %}";
|
||||
} else {
|
||||
var url = "{% url 'cmdb:eam-domain-create' %}";
|
||||
}
|
||||
return url
|
||||
}
|
||||
|
||||
$("#btnSave").click(function () {
|
||||
var data = $("#addForm").serialize();
|
||||
$.ajax({
|
||||
type: $("#addForm").attr('method'),
|
||||
url: getUrl(),
|
||||
data: data,
|
||||
cache: false,
|
||||
success: function (msg) {
|
||||
if (msg.result) {
|
||||
layer.alert('数据保存成功!', {icon: 1}, function (index) {
|
||||
parent.layer.closeAll(); //关闭所有弹窗
|
||||
});
|
||||
} else {
|
||||
layer.alert(msg.error, {icon: 5});
|
||||
//$('errorMessage').html(msg.message)
|
||||
}
|
||||
return;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
/*点取消刷新新页面*/
|
||||
$("#btnCancel").click(function () {
|
||||
window.location.reload();
|
||||
|
||||
})
|
||||
|
||||
|
||||
/*input 时间输入选择*/
|
||||
$(".form_datetime").datetimepicker({
|
||||
language: 'zh',
|
||||
minView: 'month', //选择范围知道日期,不选择时分
|
||||
//weekStart: 1,
|
||||
//todayBtn: 1,
|
||||
autoclose: 1,
|
||||
todayHighlight: 1,
|
||||
//startView: 2,
|
||||
forceParse: 0,
|
||||
showMeridian: 1,
|
||||
format: 'yyyy-mm-dd'
|
||||
}).on('changeDate', function (ev) {
|
||||
$(this).datetimepicker('hide');
|
||||
});
|
||||
|
||||
// select2
|
||||
$(function () {
|
||||
//Initialize Select2 Elements
|
||||
$(".select2").select2();
|
||||
});
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user