mirror of
https://github.com/cwinfo/powerdns-admin.git
synced 2025-06-15 04:26:05 +00:00
Initial commit for AdminLTE2.
This commit is contained in:
@ -1,257 +1,304 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
{% block head %}
|
||||
<meta charset="utf-8">
|
||||
{% block title %}<title>DNS Control Panel</title>{% endblock %}
|
||||
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta content="width=device-width, initial-scale=1" name="viewport">
|
||||
<meta content="" name="description">
|
||||
<meta content="" name="author">
|
||||
<head>
|
||||
{% block head %}
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
{% block title %}<title>DNS Control Panel</title>{% endblock %}
|
||||
<!-- Get Google Fonts we like -->
|
||||
<link href="//fonts.googleapis.com/css?family=Open+Sans:400,300,600,700&subset=all" rel="stylesheet" type="text/css"/>
|
||||
<link href='//fonts.googleapis.com/css?family=Roboto+Mono:400,300,700' rel='stylesheet' type='text/css'>
|
||||
<!-- Tell the browser to be responsive to screen width -->
|
||||
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
|
||||
<!-- Bootstrap 3.3.6 -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='adminlte2/bootstrap/css/bootstrap.min.css') }}">
|
||||
<!-- Font Awesome -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
|
||||
<!-- Ionicons -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">
|
||||
<!-- Theme style -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='adminlte2/dist/css/AdminLTE.min.css') }}">
|
||||
<!-- AdminLTE Skins. Choose a skin from the css/skins
|
||||
folder instead of downloading all of them to reduce the load. -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='adminlte2/dist/css/skins/_all-skins.min.css') }}">
|
||||
<!-- iCheck -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='adminlte2/plugins/iCheck/flat/blue.css') }}">
|
||||
<!-- Morris chart -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='adminlte2/plugins/morris/morris.css') }}">
|
||||
<!-- jvectormap -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='adminlte2/plugins/jvectormap/jquery-jvectormap-1.2.2.css') }}">
|
||||
<!-- Date Picker -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='adminlte2/plugins/datepicker/datepicker3.css') }}">
|
||||
<!-- Daterange picker -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='adminlte2/plugins/daterangepicker/daterangepicker-bs3.css') }}">
|
||||
<!-- bootstrap wysihtml5 - text editor -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='adminlte2/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css') }}">
|
||||
<!-- custom CSS -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='custom/css/custom.css') }}">
|
||||
|
||||
<!-- BEGIN GLOBAL MANDATORY STYLES -->
|
||||
<link href="//fonts.googleapis.com/css?family=Open+Sans:400,300,600,700&subset=all" rel="stylesheet" type="text/css"/>
|
||||
<link href='//fonts.googleapis.com/css?family=Roboto+Mono:400,300,700' rel='stylesheet' type='text/css'>
|
||||
<link href="{{ url_for('static', filename='global/plugins/font-awesome/css/font-awesome.min.css') }}" rel="stylesheet" type="text/css"/>
|
||||
<link href="{{ url_for('static', filename='global/plugins/simple-line-icons/simple-line-icons.min.css') }}" rel="stylesheet" type="text/css"/>
|
||||
<link href="{{ url_for('static', filename='global/plugins/bootstrap/css/bootstrap.min.css') }}" rel="stylesheet" type="text/css"/>
|
||||
<link href="{{ url_for('static', filename='global/plugins/uniform/css/uniform.default.css') }}" rel="stylesheet" type="text/css"/>
|
||||
<link href="{{ url_for('static', filename='global/plugins/bootstrap-switch/css/bootstrap-switch.min.css') }}" rel="stylesheet" type="text/css"/>
|
||||
<link rel="shortcut icon" href="{{ url_for('static', filename='global/img/favicon.ico') }}" type="image/x-icon" />
|
||||
<!-- END GLOBAL MANDATORY STYLES -->
|
||||
{% endblock %}
|
||||
</head>
|
||||
<!-- END HEAD -->
|
||||
<body class="page-md page-boxed page-header-fixed page-sidebar-closed-hide-logo page-container-bg-solid page-sidebar-closed-hide-logo">
|
||||
<!-- BEGIN HEADER -->
|
||||
{% block pageheader %}
|
||||
<div class="page-header md-shadow-z-1-i navbar navbar-fixed-top">
|
||||
<!-- BEGIN HEADER INNER -->
|
||||
<div class="page-header-inner container">
|
||||
<!-- BEGIN LOGO -->
|
||||
<div class="page-logo">
|
||||
<a href="{{ url_for('index') }}">
|
||||
<img src="{{ url_for('static', filename='global/img/be-logo.png') }}" alt="logo" class="logo-default" height="70%" width="70%" />
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
{% endblock %}
|
||||
</head>
|
||||
<body class="hold-transition skin-blue sidebar-mini">
|
||||
<div class="wrapper">
|
||||
{% block pageheader %}
|
||||
<header class="main-header">
|
||||
<!-- Logo -->
|
||||
<a href="{{ url_for('index') }}" class="logo">
|
||||
<!-- mini logo for sidebar mini 50x50 pixels -->
|
||||
<span class="logo-mini"><b>PD</b>A</span>
|
||||
<!-- logo for regular state and mobile devices -->
|
||||
<span class="logo-lg"><b>PowerDNS</b>-Admin</span>
|
||||
</a>
|
||||
<!-- Header Navbar: style can be found in header.less -->
|
||||
<nav class="navbar navbar-static-top">
|
||||
<!-- Sidebar toggle button-->
|
||||
<a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
</a>
|
||||
|
||||
<div class="navbar-custom-menu">
|
||||
<ul class="nav navbar-nav">
|
||||
<!-- User Account: style can be found in dropdown.less -->
|
||||
<li class="dropdown user user-menu">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
{% if current_user.avatar %}
|
||||
<img src="{{ url_for('user_avatar', filename=current_user.avatar) }}" class="user-image" alt="User Image"/>
|
||||
{% else %}
|
||||
<img src="{{ url_for('static', filename='adminlte2/dist/img/avatar.png') }}" class="user-image" alt="User Image"/>
|
||||
{% endif %}
|
||||
<span class="hidden-xs">
|
||||
{{ current_user.firstname }}
|
||||
</span>
|
||||
</a>
|
||||
<div class="menu-toggler sidebar-toggler">
|
||||
<!-- DOC: Remove the above "hide" to enable the sidebar toggler button on header -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- END LOGO -->
|
||||
<!-- BEGIN RESPONSIVE MENU TOGGLER -->
|
||||
<a href="javascript:;" class="menu-toggler responsive-toggler" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
</a>
|
||||
<!-- END RESPONSIVE MENU TOGGLER -->
|
||||
|
||||
<!-- BEGIN PAGE TOP -->
|
||||
<div class="page-top">
|
||||
<!-- BEGIN HEADER SEARCH BOX -->
|
||||
<!-- DOC: Apply "search-form-expanded" right after the "search-form" class to have half expanded search box -->
|
||||
<form class="search-form search-form-expanded" action="search" method="GET">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" placeholder="Search..." name="query">
|
||||
<span class="input-group-btn">
|
||||
<a href="javascript:;" class="btn submit"><i class="icon-magnifier"></i></a>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
<!-- END HEADER SEARCH BOX -->
|
||||
<!-- BEGIN TOP NAVIGATION MENU -->
|
||||
<div class="top-menu">
|
||||
<ul class="nav navbar-nav pull-right">
|
||||
{% block pageheader_userinfo %}
|
||||
<!-- BEGIN NOTIFICATION DROPDOWN -->
|
||||
<!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->
|
||||
<!--
|
||||
<li class="dropdown dropdown-extended dropdown-notification" id="header_notification_bar">
|
||||
<a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">
|
||||
<i class="icon-bell"></i>
|
||||
<span class="badge badge-default">
|
||||
7 </span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li class="external">
|
||||
<h3><span class="bold">12 pending</span> notifications</h3>
|
||||
<a href="extra_profile.html">view all</a>
|
||||
</li>
|
||||
<li>
|
||||
<ul class="dropdown-menu-list scroller" style="height: 250px;" data-handle-color="#637283">
|
||||
<li>
|
||||
<a href="javascript:;">
|
||||
<span class="time">just now</span>
|
||||
<span class="details">
|
||||
<span class="label label-sm label-icon label-success">
|
||||
<i class="fa fa-plus"></i>
|
||||
</span>
|
||||
New user registered. </span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
-->
|
||||
<!-- END NOTIFICATION DROPDOWN -->
|
||||
{% if current_user.username != 'Anonymous' %}
|
||||
<!-- BEGIN USER LOGIN DROPDOWN -->
|
||||
<!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->
|
||||
<li class="dropdown dropdown-user">
|
||||
<a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">
|
||||
{% if current_user.avatar %}
|
||||
<img alt="" class="img-circle" src="{{ url_for('user_avatar', filename=current_user.avatar) }}"/>
|
||||
{% else %}
|
||||
<img alt="" class="img-circle" src="{{ url_for('static', filename='admin/layout2/img/avatar.png') }}"/>
|
||||
{% endif %}
|
||||
<span class="username username-hide-on-mobile">
|
||||
{% if current_user.is_authenticated() %} {{ current_user.firstname }} {% endif %}</span>
|
||||
<i class="fa fa-angle-down"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-default">
|
||||
<li>
|
||||
<a href="{{ url_for('user_profile') }}">
|
||||
<i class="icon-user"></i> My Profile </a>
|
||||
</li>
|
||||
<li class="divider">
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ url_for('logout') }}">
|
||||
<i class="icon-key"></i> Log Out </a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<!-- END USER LOGIN DROPDOWN -->
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
</ul>
|
||||
</div>
|
||||
<!-- END TOP NAVIGATION MENU -->
|
||||
</div>
|
||||
<!-- END PAGE TOP -->
|
||||
</div>
|
||||
<!-- END HEADER INNER -->
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
<!-- END HEADER -->
|
||||
|
||||
<div class="clearfix">
|
||||
</div>
|
||||
|
||||
<!-- BEGIN PAGE CONTAINER -->
|
||||
{% block pagecontainer %}
|
||||
<!-- BEGIN CONTAINER -->
|
||||
<div class="container">
|
||||
<div class="page-container">
|
||||
<!-- BEGIN SIDEBAR -->
|
||||
<div class="page-sidebar-wrapper">
|
||||
<!-- DOC: Set data-auto-scroll="false" to disable the sidebar from auto scrolling/focusing -->
|
||||
<!-- DOC: Change data-auto-speed="200" to adjust the sub menu slide up/down speed -->
|
||||
<div class="page-sidebar navbar-collapse collapse">
|
||||
<!-- BEGIN SIDEBAR MENU -->
|
||||
<!-- DOC: Apply "page-sidebar-menu-light" class right after "page-sidebar-menu" to enable light sidebar menu style(without borders) -->
|
||||
<!-- DOC: Apply "page-sidebar-menu-hover-submenu" class right after "page-sidebar-menu" to enable hoverable(hover vs accordion) sub menu mode -->
|
||||
<!-- DOC: Apply "page-sidebar-menu-closed" class right after "page-sidebar-menu" to collapse("page-sidebar-closed" class must be applied to the body element) the sidebar sub menu mode -->
|
||||
<!-- DOC: Set data-auto-scroll="false" to disable the sidebar from auto scrolling/focusing -->
|
||||
<!-- DOC: Set data-keep-expand="true" to keep the submenues expanded -->
|
||||
<!-- DOC: Set data-auto-speed="200" to adjust the sub menu slide up/down speed -->
|
||||
<ul class="page-sidebar-menu page-sidebar-menu-hover-submenu " data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200">
|
||||
{% if current_user.username != 'Anonymous' %}
|
||||
<li {% if request.path == "/dashboard" %}class="start active"{% endif %}>
|
||||
<a href="{{ url_for('dashboard') }}">
|
||||
<i class="icon-home"></i>
|
||||
<span class="title">Dashboard</span>
|
||||
{% if request.path == "/dashboard" %}<span class="selected"></span> {% endif %}
|
||||
<span class="selected"></span>
|
||||
</a>
|
||||
</li>
|
||||
{% if current_user.role.name == 'Administrator' %}
|
||||
<li {% if request.path.startswith('/admin') %}class="start active"{% endif %}>
|
||||
<a href="{{ url_for('admin') }}">
|
||||
<i class="icon-settings"></i>
|
||||
<span class="title">Admin</span>
|
||||
<span class="arrow "></span>
|
||||
{% if request.path.startswith('/admin') %}<span class="selected"></span> {% endif %}
|
||||
</a>
|
||||
<ul class="sub-menu">
|
||||
<li>
|
||||
<a href="{{ url_for('admin') }}">
|
||||
<i class="icon-eye"></i>
|
||||
Admin Console</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ url_for('dashboard') }}">
|
||||
<i class="icon-globe"></i>
|
||||
Manage Domain</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ url_for('admin_manageuser') }}">
|
||||
<i class="icon-user"></i>
|
||||
Manage User</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ url_for('admin_history') }}">
|
||||
<i class="icon-speedometer"></i>
|
||||
History</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
{% endif %}
|
||||
<ul class="dropdown-menu">
|
||||
<!-- User image -->
|
||||
<li class="user-header">
|
||||
{% if current_user.avatar %}
|
||||
<img src="{{ url_for('user_avatar', filename=current_user.avatar) }}" class="img-circle" alt="User Image"/>
|
||||
{% else %}
|
||||
<img src="{{ url_for('static', filename='adminlte2/dist/img/avatar.png') }}" class="img-circle" alt="User Image"/>
|
||||
{% endif %}
|
||||
</ul>
|
||||
<!-- END SIDEBAR MENU -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- END SIDEBAR -->
|
||||
<!-- BEGIN CONTENT -->
|
||||
<div class="page-content-wrapper">
|
||||
<div class="page-content">
|
||||
{% block dashboard_stat %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% endblock %}
|
||||
<p>
|
||||
{{ current_user.firstname }} {{ current_user.lastname }}
|
||||
<small>{{ current_user.role.name }}</small>
|
||||
</p>
|
||||
</li>
|
||||
<!-- Menu Footer-->
|
||||
<li class="user-footer">
|
||||
<div class="pull-left">
|
||||
<a href="#" class="btn btn-default btn-flat">Change password</a>
|
||||
</div>
|
||||
<div class="pull-right">
|
||||
<a href="#" class="btn btn-default btn-flat">Sign out</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
{% endblock %}
|
||||
<!-- Left side column. contains the logo and sidebar -->
|
||||
<aside class="main-sidebar">
|
||||
<!-- sidebar: style can be found in sidebar.less -->
|
||||
<section class="sidebar">
|
||||
<!-- Sidebar user panel -->
|
||||
<div class="user-panel">
|
||||
<div class="pull-left image">
|
||||
{% if current_user.avatar %}
|
||||
<img src="{{ url_for('user_avatar', filename=current_user.avatar) }}" class="img-circle" alt="User Image"/>
|
||||
{% else %}
|
||||
<img src="{{ url_for('static', filename='adminlte2/dist/img/avatar.png') }}" class="img-circle" alt="User Image"/>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="pull-left info">
|
||||
<p>{{ current_user.firstname }} {{ current_user.lastname }}</p>
|
||||
<a href="#"><i class="fa fa-circle text-success"></i> Logged In</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.search form -->
|
||||
<!-- sidebar menu: : style can be found in sidebar.less -->
|
||||
<ul class="sidebar-menu">
|
||||
<li class="header">USER ACTIONS</li>
|
||||
<li><a href="{{ url_for('dashboard') }}"><i class="fa fa-dashboard"></i> <span>Dashboard</span></a></li>
|
||||
<li><a href="{{ url_for('domain_add') }}"><i class="fa fa-plus"></i> <span>New Domain</span></a></li>
|
||||
{% if current_user.role.name == 'Administrator' %}
|
||||
<li class="header">ADMINISTRATION</li>
|
||||
<li><a href="{{ url_for('admin') }}"><i class="fa fa-circle-o"></i> <span>Admin Console</span></a></li>
|
||||
<li><a href="{{ url_for('admin_manageuser') }}"><i class="fa fa-circle-o"></i> <span>Manager Users</span></a></li>
|
||||
<li><a href="{{ url_for('admin_history') }}"><i class="fa fa-circle-o"></i> <span>History</span></a></li>
|
||||
{% endif %}
|
||||
</section>
|
||||
<!-- /.sidebar -->
|
||||
</aside>
|
||||
|
||||
<!-- Content Wrapper. Contains page content -->
|
||||
<div class="content-wrapper">
|
||||
{% block dashboard_stat %}
|
||||
<!-- Content Header (Page header) -->
|
||||
<section class="content-header">
|
||||
<h1>
|
||||
Dashboard
|
||||
<small>Control panel</small>
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="{{ url_for('dashboard') }}"><i class="fa fa-dashboard"></i> Home</a></li>
|
||||
<li class="active">Dashboard</li>
|
||||
</ol>
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
||||
<!-- Main content -->
|
||||
{% block 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">
|
||||
<h3>150</h3>
|
||||
<p>Domains</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="ion ion-bag"></i>
|
||||
</div>
|
||||
<a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END CONTENT -->
|
||||
<!-- BEGIN QUICK SIDEBAR -->
|
||||
<!--Cooming Soon...-->
|
||||
<!-- END QUICK SIDEBAR -->
|
||||
<!-- ./col -->
|
||||
<div class="col-lg-3 col-xs-6">
|
||||
<!-- small box -->
|
||||
<div class="small-box bg-green">
|
||||
<div class="inner">
|
||||
<h3>53<sup style="font-size: 20px">%</sup></h3>
|
||||
<p>Users</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="ion ion-stats-bars"></i>
|
||||
</div>
|
||||
<a href="#" class="small-box-footer">More info <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">
|
||||
<h3>44</h3>
|
||||
<p>Histories</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="ion ion-person-add"></i>
|
||||
</div>
|
||||
<a href="#" class="small-box-footer">More info <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-red">
|
||||
<div class="inner">
|
||||
<h3>65</h3>
|
||||
<p>Uptime</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="ion ion-pie-graph"></i>
|
||||
</div>
|
||||
<a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./col -->
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
<!-- Main row -->
|
||||
<div class="row">
|
||||
<!-- Left col -->
|
||||
<section class="col-lg-7 connectedSortable">
|
||||
<!-- Custom tabs (Charts with tabs)-->
|
||||
<div class="nav-tabs-custom">
|
||||
<!-- Tabs within a box -->
|
||||
<ul class="nav nav-tabs pull-right">
|
||||
<li class="active"><a href="#revenue-chart" data-toggle="tab">Area</a></li>
|
||||
<li><a href="#sales-chart" data-toggle="tab">Donut</a></li>
|
||||
<li class="pull-left header"><i class="fa fa-inbox"></i> Sales</li>
|
||||
</ul>
|
||||
<div class="tab-content no-padding">
|
||||
<!-- Morris chart - Sales -->
|
||||
<div class="chart tab-pane active" id="revenue-chart" style="position: relative; height: 300px;"></div>
|
||||
<div class="chart tab-pane" id="sales-chart" style="position: relative; height: 300px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.nav-tabs-custom -->
|
||||
</section>
|
||||
<!-- /.Left col -->
|
||||
<!-- right col (We are only adding the ID to make the widgets sortable)-->
|
||||
<section class="col-lg-5 connectedSortable">
|
||||
|
||||
</section>
|
||||
<!-- right col -->
|
||||
</div>
|
||||
<!-- /.row (main row) -->
|
||||
|
||||
</section>
|
||||
{% endblock %}
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<!-- /.content-wrapper -->
|
||||
<footer class="main-footer">
|
||||
<div class="pull-right hidden-xs">
|
||||
<b>PowerDNS-Admin</b>
|
||||
</div>
|
||||
<!-- END CONTAINER -->
|
||||
<strong>Copyright © 2016 <a href="http://duykhanh.me">Khanh Ngo</a>.</strong> All rights reserved.
|
||||
</footer>
|
||||
</div>
|
||||
{% endblock %}
|
||||
<!-- ./wrapper -->
|
||||
|
||||
<!-- BEGIN FOOTER -->
|
||||
<div class="page-footer">
|
||||
<div class="container">
|
||||
2015 © <a href="http://duykhanh.me">Khanh Ngo</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END FOOTER -->
|
||||
|
||||
<div class="scroll-to-top">
|
||||
<i class="icon-arrow-up"></i>
|
||||
</div>
|
||||
|
||||
{% block scripts %}
|
||||
<!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->
|
||||
<!-- BEGIN CORE PLUGINS -->
|
||||
<script src="{{ url_for('static', filename='global/plugins/jquery.min.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ url_for('static', filename='global/plugins/jquery-migrate.min.js') }}" type="text/javascript"></script>
|
||||
<!-- IMPORTANT! Load jquery-ui.min.js before bootstrap.min.js to fix bootstrap tooltip conflict with jquery ui tooltip -->
|
||||
<script src="{{ url_for('static', filename='global/plugins/jquery-ui/jquery-ui.min.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ url_for('static', filename='global/plugins/bootstrap/js/bootstrap.min.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ url_for('static', filename='global/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ url_for('static', filename='global/plugins/jquery-slimscroll/jquery.slimscroll.min.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ url_for('static', filename='global/plugins/jquery.blockui.min.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ url_for('static', filename='global/plugins/jquery.cokie.min.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ url_for('static', filename='global/plugins/uniform/jquery.uniform.min.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ url_for('static', filename='global/plugins/bootstrap-switch/js/bootstrap-switch.min.js') }}" type="text/javascript"></script>
|
||||
<!-- END CORE PLUGINS -->
|
||||
{% endblock %}
|
||||
|
||||
</body>
|
||||
{% block scripts %}
|
||||
<!-- jQuery 2.2.0 -->
|
||||
<script src="{{ url_for('static', filename='adminlte2/plugins/jQuery/jQuery-2.2.0.min.js') }}"></script>
|
||||
<!-- jQuery UI 1.11.4 -->
|
||||
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
|
||||
<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
|
||||
<script>
|
||||
$.widget.bridge('uibutton', $.ui.button);
|
||||
</script>
|
||||
<!-- Bootstrap 3.3.6 -->
|
||||
<script src="{{ url_for('static', filename='adminlte2/bootstrap/js/bootstrap.min.js') }}"></script>
|
||||
<!-- Morris.js charts -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
|
||||
<script src="{{ url_for('static', filename='adminlte2/plugins/morris/morris.min.js') }}"></script>
|
||||
<!-- Sparkline -->
|
||||
<script src="{{ url_for('static', filename='adminlte2/plugins/sparkline/jquery.sparkline.min.js') }}"></script>
|
||||
<!-- jvectormap -->
|
||||
<script src="{{ url_for('static', filename='adminlte2/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='adminlte2/plugins/jvectormap/jquery-jvectormap-world-mill-en.js') }}"></script>
|
||||
<!-- jQuery Knob Chart -->
|
||||
<script src="{{ url_for('static', filename='adminlte2/plugins/knob/jquery.knob.js') }}"></script>
|
||||
<!-- daterangepicker -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.2/moment.min.js"></script>
|
||||
<script src="{{ url_for('static', filename='adminlte2/plugins/daterangepicker/daterangepicker.js') }}"></script>
|
||||
<!-- datepicker -->
|
||||
<script src="{{ url_for('static', filename='adminlte2/plugins/datepicker/bootstrap-datepicker.js') }}"></script>
|
||||
<!-- Bootstrap WYSIHTML5 -->
|
||||
<script src="{{ url_for('static', filename='adminlte2/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js') }}"></script>
|
||||
<!-- Slimscroll -->
|
||||
<script src="{{ url_for('static', filename='adminlte2/plugins/slimScroll/jquery.slimscroll.min.js') }}"></script>
|
||||
<!-- FastClick -->
|
||||
<script src="{{ url_for('static', filename='adminlte2/plugins/fastclick/fastclick.js') }}"></script>
|
||||
<!-- AdminLTE App -->
|
||||
<script src="{{ url_for('static', filename='adminlte2/dist/js/app.min.js') }}"></script>
|
||||
<!-- AdminLTE dashboard demo (This is only for demo purposes) -->
|
||||
<script src="{{ url_for('static', filename='adminlte2/dist/js/pages/dashboard.js') }}"></script>
|
||||
<!-- AdminLTE for demo purposes -->
|
||||
<script src="{{ url_for('static', filename='adminlte2/dist/js/demo.js') }}"></script>
|
||||
{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,164 +1,205 @@
|
||||
{% extends "base.html" %}
|
||||
{% block head %}
|
||||
{{ super() }}
|
||||
<!-- BEGIN PAGE LEVEL PLUGIN STYLES -->
|
||||
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='global/plugins/select2/select2.css') }}"/>
|
||||
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.css') }}"/>
|
||||
<!-- END PAGE LEVEL PLUGIN STYLES -->
|
||||
|
||||
<!-- BEGIN THEME STYLES -->
|
||||
<!-- DOC: To use 'rounded corners' style just load 'components-rounded.css' stylesheet instead of 'components.css' in the below style tag -->
|
||||
<link href="{{ url_for('static', filename='global/css/components-md.css') }}" id="style_components" rel="stylesheet" type="text/css"/>
|
||||
<link href="{{ url_for('static', filename='global/css/plugins-md.css') }}" rel="stylesheet" type="text/css"/>
|
||||
<link href="{{ url_for('static', filename='admin/layout2/css/layout.css') }}" rel="stylesheet" type="text/css"/>
|
||||
<link href="{{ url_for('static', filename='admin/layout2/css/themes/grey.css') }}" rel="stylesheet" type="text/css" id="style_color"/>
|
||||
<link href="{{ url_for('static', filename='admin/layout2/css/custom.css') }}" rel="stylesheet" type="text/css"/>
|
||||
<!-- END THEME STYLES -->
|
||||
{% endblock %}
|
||||
{% block title %}<title>DNS Control Panel - HOME</title>{% endblock %}
|
||||
|
||||
{% block dashboard_stat %}
|
||||
<!-- BEGIN PAGE HEADER-->
|
||||
<h3 class="page-title">
|
||||
Dashboard</h3>
|
||||
<div class="page-bar">
|
||||
<ul class="page-breadcrumb">
|
||||
<li>
|
||||
<i class="fa fa-home"></i>
|
||||
<a href="{{ url_for('dashboard') }}">Home</a>
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Dashboard</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- END PAGE HEADER-->
|
||||
<!-- Content Header (Page header) -->
|
||||
<section class="content-header">
|
||||
<h1>
|
||||
Dashboard
|
||||
<small>Info</small>
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="{{ url_for('dashboard') }}"><i class="fa fa-dashboard"></i> Home</a></li>
|
||||
<li class="active">Dashboard</li>
|
||||
</ol>
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="clearfix">
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<!-- BEGIN DOMAIN TABLE-->
|
||||
<div class="portlet box grey-cascade">
|
||||
<div class="portlet-title">
|
||||
<div class="caption">
|
||||
<i class="fa fa-globe"></i>DOMAINS
|
||||
</div>
|
||||
<div class="tools">
|
||||
<a href="javascript:;" class="reload">
|
||||
</a>
|
||||
<a href="javascript:;" class="collapse">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="portlet-body">
|
||||
{% if current_user.role.name == 'Administrator' %}
|
||||
<div class="table-toolbar">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="btn-group">
|
||||
<button id="btn_new_domain" class="btn green" onclick="window.location.href='{{ url_for('domain_add') }}'">
|
||||
New Domain <i class="fa fa-plus"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<table class="table table-striped table-bordered table-hover" id="tb_domain_list">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
Name
|
||||
</th>
|
||||
<th>
|
||||
DNSSEC
|
||||
</th>
|
||||
<th>
|
||||
Kind
|
||||
</th>
|
||||
<th>
|
||||
Serial
|
||||
</th>
|
||||
<th>
|
||||
Master
|
||||
</th>
|
||||
<th>
|
||||
Action
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for domain in domains %}
|
||||
<tr class="odd gradeX">
|
||||
<td>
|
||||
<a href="{{ url_for('domain', domain_name=domain.name) }}"><strong>{{ domain.name }}</strong></a>
|
||||
</td>
|
||||
<td>
|
||||
{% if domain.dnssec %}
|
||||
<a href="javascript:;" class="btn default btn-xs blue dnssec"><i class="fa fa-lock"></i>Enabled</a>
|
||||
{% else %}
|
||||
<a href="javascript:;" class="btn default btn-xs gray dnssec"><i class="fa fa-unlock-alt"></i>Disabled</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{{ domain.type }}
|
||||
</td>
|
||||
<td>
|
||||
{{ domain.serial }}
|
||||
</td>
|
||||
<td>
|
||||
{% if domain.master == '[]'%}N/A {% else %}{{ domain.master|display_master_name }}{% endif %}
|
||||
</td>
|
||||
{% if current_user.role.name !='Administrator' %}
|
||||
<td width="6%">
|
||||
<a href="{{ url_for('domain', domain_name=domain.name) }}" class="btn default btn-xs green">Manage
|
||||
<i class="fa fa-cog"></i></a>
|
||||
</td>
|
||||
{% else %}
|
||||
<td width="18%">
|
||||
<a href="{{ url_for('domain', domain_name=domain.name) }}" class="btn default btn-xs green">Manage
|
||||
<a href="{{ url_for('domain_management', domain_name=domain.name)}}" class="btn default btn-xs red">Admin</a>
|
||||
</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END DOMAIN TABLE-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<!-- MORE CONTENT GO HERE -->
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block scripts %}
|
||||
{{ super() }}
|
||||
<!-- BEGIN PAGE LEVEL SCRIPTS -->
|
||||
<script src="{{ url_for('static', filename='global/scripts/metronic.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ url_for('static', filename='admin/layout2/scripts/layout.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ url_for('static', filename='global/plugins/bootbox/bootbox.min.js') }}" type="text/javascript"></script>
|
||||
<!-- END PAGE LEVEL SCRIPTS -->
|
||||
<!-- TABLE PLUGINS -->
|
||||
<script type="text/javascript" src="{{ url_for('static', filename='global/plugins/select2/select2.min.js') }}"></script>
|
||||
<script type="text/javascript" src="{{ url_for('static', filename='global/plugins/datatables/media/js/jquery.dataTables.min.js') }}"></script>
|
||||
<script type="text/javascript" src="{{ url_for('static', filename='global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='admin/pages/scripts/table-managed.js') }}"></script>
|
||||
<!-- END TABLE PLUGINS -->
|
||||
<script>
|
||||
jQuery(document).ready(function() {
|
||||
Metronic.init(); // init metronic core componets
|
||||
Layout.init(); // init layout
|
||||
TableManaged.init(); // manage table columns
|
||||
});
|
||||
</script>
|
||||
<!-- END JAVASCRIPTS -->
|
||||
<!-- Main content -->
|
||||
<section class="content">
|
||||
{% if current_user.role.name == 'Administrator' %}
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<div class="box">
|
||||
<div class="box-header">
|
||||
<h3 class="box-title">Statistics</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-6 col-xs-12">
|
||||
<!-- small box -->
|
||||
<div class="small-box bg-aqua">
|
||||
<div class="inner">
|
||||
<h3>###</h3>
|
||||
<p>Domains</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="fa fa-shopping-cart"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 col-xs-12">
|
||||
<!-- small box -->
|
||||
<div class="small-box bg-green">
|
||||
<div class="inner">
|
||||
<h3>###</h3>
|
||||
<p>Users</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="fa fa-users"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-6 col-xs-6">
|
||||
<!-- small box -->
|
||||
<div class="small-box bg-green">
|
||||
<div class="inner">
|
||||
<h3>###</h3>
|
||||
<p>Histories</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="fa fa-calendar"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 col-xs-6">
|
||||
<!-- small box -->
|
||||
<div class="small-box bg-green">
|
||||
<div class="inner">
|
||||
<h3><span style="font-size: 20px">2W 2D 14h 13m</span></h3>
|
||||
<p>Uptime</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="fa fa-clock-o"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<div class="box">
|
||||
<div class="box-header">
|
||||
<h3 class="box-title">Recent Logs</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<table id="tbl_domain_list" class="table table-bordered table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Changed By</th>
|
||||
<th>Content</th>
|
||||
<th>Time</th>
|
||||
<th>Detail</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
ivan
|
||||
</td>
|
||||
<td>
|
||||
log log log
|
||||
</td>
|
||||
<td>
|
||||
5:52pm 21/4/2016
|
||||
</td>
|
||||
<td>
|
||||
Detail button
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="box">
|
||||
<div class="box-header">
|
||||
<h3 class="box-title">Hosted Domains</h3>
|
||||
</div>
|
||||
<!-- /.box-header -->
|
||||
<!--
|
||||
{% if current_user.role.name == 'Administrator' %}
|
||||
<div class="box-body">
|
||||
<button type="button" class="btn btn-flat btn-primary" onclick="window.location.href='{{ url_for('domain_add') }}'">
|
||||
New Domain <i class="fa fa-plus"></i>
|
||||
</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
-->
|
||||
<div class="box-body">
|
||||
<table id="tbl_domain_list" class="table table-bordered table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>DNSSEC</th>
|
||||
<th>Type</th>
|
||||
<th>Serial</th>
|
||||
<th>Master</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for domain in domains %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ url_for('domain', domain_name=domain.name) }}"><strong>{{ domain.name }}</strong></a>
|
||||
</td>
|
||||
<td>
|
||||
{% if domain.dnssec %}
|
||||
<button type="button" class="btn btn-flat dnssec">
|
||||
<i class="fa fa-lock"></i> Enabled
|
||||
</button>
|
||||
{% else %}
|
||||
<button type="button" class="btn btn-flat dnssec">
|
||||
<i class="fa fa-unlock-alt"></i> Disabled
|
||||
</button>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{{ domain.type }}
|
||||
</td>
|
||||
<td>
|
||||
{{ domain.serial }}
|
||||
</td>
|
||||
<td>
|
||||
{% if domain.master == '[]'%}N/A {% else %}{{ domain.master|display_master_name }}{% endif %}
|
||||
</td>
|
||||
{% if current_user.role.name !='Administrator' %}
|
||||
<td width="6%">
|
||||
<button type="button" class="btn btn-flat btn-success" onclick="window.location.href='{{ url_for('domain', domain_name=domain.name) }}'">
|
||||
Manage <i class="fa fa-cog"></i>
|
||||
</button>
|
||||
</td>
|
||||
{% else %}
|
||||
<td width="18%">
|
||||
<button type="button" class="btn btn-flat btn-success" onclick="window.location.href='{{ url_for('domain', domain_name=domain.name) }}'">
|
||||
Manage <i class="fa fa-cog"></i>
|
||||
</button>
|
||||
<button type="button" class="btn btn-flat btn-danger" onclick="window.location.href='{{ url_for('domain_management', domain_name=domain.name) }}'">
|
||||
Admin <i class="fa fa-cog"></i>
|
||||
</button>
|
||||
</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- /.box-body -->
|
||||
</div>
|
||||
<!-- /.box -->
|
||||
</div>
|
||||
<!-- /.col -->
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
{% endblock %}
|
||||
|
@ -1,188 +1,154 @@
|
||||
{% extends "base.html" %}
|
||||
{% block head %}
|
||||
{{ super() }}
|
||||
<!-- BEGIN PAGE LEVEL PLUGIN STYLES -->
|
||||
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='global/plugins/select2/select2.css') }}"/>
|
||||
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.css') }}"/>
|
||||
<!-- END PAGE LEVEL PLUGIN STYLES -->
|
||||
|
||||
<!-- BEGIN THEME STYLES -->
|
||||
<!-- DOC: To use 'rounded corners' style just load 'components-rounded.css' stylesheet instead of 'components.css' in the below style tag -->
|
||||
<link href="{{ url_for('static', filename='global/css/components-md.css') }}" id="style_components" rel="stylesheet" type="text/css"/>
|
||||
<link href="{{ url_for('static', filename='global/css/plugins-md.css') }}" rel="stylesheet" type="text/css"/>
|
||||
<link href="{{ url_for('static', filename='admin/layout2/css/layout.css') }}" rel="stylesheet" type="text/css"/>
|
||||
<link href="{{ url_for('static', filename='admin/layout2/css/themes/grey.css') }}" rel="stylesheet" type="text/css" id="style_color"/>
|
||||
<link href="{{ url_for('static', filename='admin/layout2/css/custom.css') }}" rel="stylesheet" type="text/css"/>
|
||||
<!-- END THEME STYLES -->
|
||||
{% endblock %}
|
||||
{% block title %}<title>DNS Control Panel - Add Domain</title>{% endblock %}
|
||||
|
||||
{% block dashboard_stat %}
|
||||
<!-- BEGIN PAGE HEADER-->
|
||||
<h3 class="page-title">
|
||||
Add Domain</h3>
|
||||
<div class="page-bar">
|
||||
<ul class="page-breadcrumb">
|
||||
<li>
|
||||
<i class="fa fa-home"></i>
|
||||
<a href="{{ url_for('dashboard') }}">Home</a>
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ url_for('dashboard') }}">Domain</a>
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</li>
|
||||
<li>
|
||||
Add
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- END PAGE HEADER-->
|
||||
<!-- Content Header (Page header) -->
|
||||
<section class="content-header">
|
||||
<h1>
|
||||
Domain
|
||||
<small>Create new</small>
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="{{ url_for('dashboard') }}"><i class="fa fa-dashboard"></i>Home</a></li>
|
||||
<li><a href="{{ url_for('dashboard') }}">Domain</a></li>
|
||||
<li class="active">Add Domain</li>
|
||||
</ol>
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="clearfix">
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="box box-primary">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">Create new domain</h3>
|
||||
</div>
|
||||
<!-- /.box-header -->
|
||||
<!-- form start -->
|
||||
<form role="form">
|
||||
<div class="box-body">
|
||||
<div class="form-group">
|
||||
<input type="email" class="form-control" id="domain_name" placeholder="Enter a valid domain name (required)">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Type</label>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="radio_type" id="radio_type_native" value="native" checked> Native
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<input type="radio" name="radio_type"id="radio_type_master" value="master"> Master
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<input type="radio" name="radio_type" id="radio_type_slave" value="slave" disabled>Slave
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>SOA-EDIT-API</label>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="radio_type_soa_edit_api" id="radio_off" value="OFF" checked> (OFF)
|
||||
</label>
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="radio_type_soa_edit_api"id="radio_inception_increment" value="INCEPTION-INCREMENT"> INCEPTION-INCREMENT
|
||||
</label>
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="radio_type_soa_edit_api" id="radio_inception" value="INCEPTION" disabled> INCEPTION
|
||||
</label>
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="radio_type_soa_edit_api" id="radio_increment_week" value="INCREMENT-WEEK" disabled> INCREMENT-WEEK
|
||||
</label>
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="radio_type_soa_edit_api" id="radio_increment_weeks" value="INCREMENT-WEEKS" disabled> INCREMENT-WEEKS
|
||||
</label>
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="radio_type_soa_edit_api" id="radio_epoch" value="EPOCH" disabled> EPOCH
|
||||
</label>
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="radio_type_soa_edit_api" id="radio_inception_epoch" value="INCEPTION-EPOCH" disabled> INCEPTION-EPOCH
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.box-body -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<!-- BEGIN ADD RECORD FORM-->
|
||||
<div class="portlet light">
|
||||
<div class="portlet-title">
|
||||
<div class="caption font-green-haze">
|
||||
<i class="icon-settings font-green-haze"></i>
|
||||
<span class="caption-subject bold uppercase"> New Zone Information</span>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<a class="btn btn-circle btn-icon-only btn-default fullscreen" href="javascript:;" data-original-title="" title="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="portlet-body form">
|
||||
<form role="form" action="{{ url_for('domain_add') }}" method="post">
|
||||
<div class="form-body">
|
||||
<div class="form-group form-md-line-input form-md-floating-label has-success">
|
||||
<input type="text" class="form-control" id="domain_name" name="domain_name">
|
||||
<label for="domain_name">Enter a valid domain name (required)</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group form-md-radios">
|
||||
<label><strong>Type</strong></label>
|
||||
<div class="md-radio-inline">
|
||||
<div class="md-radio">
|
||||
<input type="radio" id="radio_type_native" name="radio_type" class="md-radiobtn" value="native" checked="" onclick="javascript:zoneTypeSelection();">
|
||||
<label for="radio_type_native">
|
||||
<span class="inc"></span>
|
||||
<span class="check"></span>
|
||||
<span class="box"></span>
|
||||
Native</label>
|
||||
</div>
|
||||
<div class="md-radio has-error">
|
||||
<input type="radio" id="radio_type_master" name="radio_type" class="md-radiobtn" value="master" onclick="javascript:zoneTypeSelection();">
|
||||
<label for="radio_type_master">
|
||||
<span class="inc"></span>
|
||||
<span class="check"></span>
|
||||
<span class="box"></span>
|
||||
Master</label>
|
||||
</div>
|
||||
<div class="md-radio has-info">
|
||||
<input type="radio" id="radio_type_slave" name="radio_type" class="md-radiobtn" value="slave" onclick="javascript:zoneTypeSelection();">
|
||||
<label for="radio_type_slave">
|
||||
<span class="inc"></span>
|
||||
<span class="check"></span>
|
||||
<span class="box"></span>
|
||||
Slave</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-body" id="form_master_ip" style="display:none">
|
||||
<div class="form-group form-md-line-input form-md-floating-label has-success">
|
||||
<input type="text" class="form-control" id="domain_master_address" name="domain_master_address">
|
||||
<label for="domain_master_address">Enter valid master ip addresses (separated by commas)</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group form-md-radios">
|
||||
<label><strong>SOA-EDIT-API</strong></label>
|
||||
<div class="md-radio-inline">
|
||||
<div class="md-radio">
|
||||
<input type="radio" id="radio_off" name="radio_type_soa_edit_api" class="md-radiobtn" value="OFF" checked="">
|
||||
<label for="radio_off">
|
||||
<span class="inc"></span>
|
||||
<span class="check"></span>
|
||||
<span class="box"></span>
|
||||
(OFF)</label>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="md-radio">
|
||||
<input type="radio" id="radio_inception_increment" name="radio_type_soa_edit_api" class="md-radiobtn" value="INCEPTION-INCREMENT" checked="">
|
||||
<label for="radio_inception_increment">
|
||||
<span class="inc"></span>
|
||||
<span class="check"></span>
|
||||
<span class="box"></span>
|
||||
INCEPTION-INCREMENT</label>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="md-radio">
|
||||
<input type="radio" id="radio_inception" name="radio_type_soa_edit_api" class="md-radiobtn" value="INCEPTION">
|
||||
<label for="radio_inception">
|
||||
<span class="inc"></span>
|
||||
<span class="check"></span>
|
||||
<span class="box"></span>
|
||||
INCEPTION</label>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="md-radio">
|
||||
<input type="radio" id="radio_increment_week" name="radio_type_soa_edit_api" class="md-radiobtn" value="INCREMENT-WEEK">
|
||||
<label for="radio_increment_week">
|
||||
<span class="inc"></span>
|
||||
<span class="check"></span>
|
||||
<span class="box"></span>
|
||||
INCREMENT-WEEK</label>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="md-radio">
|
||||
<input type="radio" id="radio_increment_weeks" name="radio_type_soa_edit_api" class="md-radiobtn" value="INCREMENT-WEEKS">
|
||||
<label for="radio_increment_weeks">
|
||||
<span class="inc"></span>
|
||||
<span class="check"></span>
|
||||
<span class="box"></span>
|
||||
INCREMENT-WEEKS</label>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="md-radio">
|
||||
<input type="radio" id="radio_epoch" name="radio_type_soa_edit_api" class="md-radiobtn" value="EPOCH">
|
||||
<label for="radio_epoch">
|
||||
<span class="inc"></span>
|
||||
<span class="check"></span>
|
||||
<span class="box"></span>
|
||||
EPOCH</label>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="md-radio">
|
||||
<input type="radio" id="radio_inception_epoch" name="radio_type_soa_edit_api" class="md-radiobtn" value="INCEPTION-EPOCH">
|
||||
<label for="radio_inception_epoch">
|
||||
<span class="inc"></span>
|
||||
<span class="check"></span>
|
||||
<span class="box"></span>
|
||||
INCEPTION-EPOCH</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-actions">
|
||||
<div class="row">
|
||||
<div class="col-md-offset-1">
|
||||
<button type="submit" class="btn blue">Submit</button>
|
||||
<button type="button" class="btn grey" onclick="window.location.href='{{ url_for('dashboard') }}'">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END ADD RECORD FORM-->
|
||||
</div>
|
||||
<div class="box-footer">
|
||||
<button type="submit" class="btn btn-primary">Submit</button>
|
||||
<button type="submit" class="btn btn-default" onclick="window.location.href='{{ url_for('dashboard') }}'">Cancel</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- /.box -->
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<div class="box box-primary">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">Help with creating a new domain</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<dl class="dl-horizontal">
|
||||
<dt>Domain name</dt>
|
||||
<dd>Enter your domain name in the format of name.tld (eg. powerdns-admin.com). You can also enter sub-domains to create a sub-root zone (eg. sub.powerdns-admin.com) in case you want to delegate sub-domain management to specific users.</dd>
|
||||
<dt>Type</dt>
|
||||
<dd>The type decides how the domain will be replicated across multiple DNS servers.
|
||||
<ul>
|
||||
<li>
|
||||
Native - PowerDNS will not perform any replication. Use this if you only have one PowerDNS server or you handle replication via your backend (MySQL).
|
||||
</li>
|
||||
<li>
|
||||
Master - This PowerDNS server will serve as the master and will send zone transfers (AXFRs) to other servers configured as slaves.
|
||||
</li>
|
||||
<li>
|
||||
Slave - This PowerDNS server will serve as the slave and will request and receive zone transfers (AXFRs) from other servers configured as masters.
|
||||
</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>SOA-EDIT-API</dt>
|
||||
<dd>The SOA-EDIT-API setting defines when and how the SOA serial number will be updated after a change is made to the domain.
|
||||
<ul>
|
||||
<li>
|
||||
(OFF) - Not set
|
||||
</li>
|
||||
<li>
|
||||
INCEPTION-INCREMENT -
|
||||
</li>
|
||||
<li>
|
||||
INCEPTION -
|
||||
</li>
|
||||
<li>
|
||||
INCREMENT-WEEK -
|
||||
</li>
|
||||
<li>
|
||||
INCREMENT-WEEKS -
|
||||
</li>
|
||||
<li>
|
||||
EPOCH -
|
||||
</li>
|
||||
<li>
|
||||
INCEPTION-EPOCH -
|
||||
</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block scripts %}
|
||||
|
Reference in New Issue
Block a user