From 44c2d8f572229c386f57265b39413b43ad7a49aa Mon Sep 17 00:00:00 2001
From: Mark Reynolds <mreynolds@redhat.com>
Date: Tue, 9 Jan 2018 16:13:51 -0500
Subject: [PATCH] Ticket 49520 - Cockpit UI - Add database chaining HTML

Description:  Add chaining pages/forms

https://pagure.io/389-ds-base/issue/49520

Reviewed by: ?
---
 Makefile.am                               |   6 +-
 configure.ac                              |   7 +-
 src/cockpit/389-console/backend.html      | 448 ++++++++++++++++++++++++++++--
 src/cockpit/389-console/css/ds.css        |  94 ++++++-
 src/cockpit/389-console/js/backend.js     | 197 +++++++++++--
 src/cockpit/389-console/js/plugins.js     |   6 +-
 src/cockpit/389-console/js/replication.js |  18 +-
 src/cockpit/389-console/js/schema.js      |  13 +-
 src/cockpit/389-console/js/security.js    |   4 +
 src/cockpit/389-console/js/servers.js     |  25 +-
 src/cockpit/389-console/plugins.html      | 280 +++++++++++++++++--
 src/cockpit/389-console/replication.html  |  43 ++-
 src/cockpit/389-console/schema.html       | 347 +++++++++++++++--------
 src/cockpit/389-console/security.html     |  41 ++-
 src/cockpit/389-console/servers.html      | 382 +++++++++++++++----------
 15 files changed, 1537 insertions(+), 374 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 4e76c1bbe..82b178263 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -290,6 +290,7 @@ gdbautoloaddir = $(prefixdir)/share/gdb/auto-load$(sbindir)
 cockpitdir = $(datadir)@cockpitdir@
 cockpitstaticdir = $(datadir)@cockpitstaticdir@
 cockpitimagesdir = $(datadir)@cockpitimagesdir@
+cockpitstaticimagesdir = $(datadir)@cockpitstaticimagesdir@
 cockpitjsdir = $(datadir)@cockpitjsdir@/
 cockpitcssdir = $(datadir)@cockpitcssdir@
 
@@ -900,13 +901,16 @@ cockpitstatic_DATA = src/cockpit/389-console/static/32px.png \
 	src/cockpit/389-console/static/style.min.css \
 	src/cockpit/389-console/static/throbber.gif
 
-cockpitimages_DATA = src/cockpit/389-console/static/images/ui-icons_444444_256x240.png \
+cockpitstaticimages_DATA = src/cockpit/389-console/static/images/ui-icons_444444_256x240.png \
 	src/cockpit/389-console/static/images/ui-icons_777620_256x240.png \
 	src/cockpit/389-console/static/images/ui-icons_cc0000_256x240.png \
 	src/cockpit/389-console/static/images/ui-icons_555555_256x240.png \
 	src/cockpit/389-console/static/images/ui-icons_777777_256x240.png \
 	src/cockpit/389-console/static/images/ui-icons_ffffff_256x240.png
 
+cockpitimages_DATA = src/cockpit/389-console/images/sort_asc.png \
+    src/cockpit/389-console/images/sort_both.png
+
 cockpitjs_DATA = src/cockpit/389-console/js/backend.js \
 	src/cockpit/389-console/js/ds.js \
 	src/cockpit/389-console/js/monitor.js \
diff --git a/configure.ac b/configure.ac
index 46f13b9a2..981f8e21f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -379,7 +379,8 @@ if test "$with_fhs_opt" = "yes"; then
   # relative to datadir
   cockpitdir=/389-console
   cockpitstaticdir=/389-console/static
-  cockpitimagesdir=/389-console/static/images
+  cockpitimagesdir=/389-console/images
+  cockpitstaticimagesdir=/389-console/static/images
   cockpitjsdir=/389-console/js
   cockpitcssdir=/389-console/css
 else
@@ -421,7 +422,8 @@ else
   # relative to datadir
   cockpitdir=/$PACKAGE_NAME/389-console
   cockpitstaticdir=/$PACKAGE_NAME/389-console/static
-  cockpitimagesdir=/$PACKAGE_NAME/389-console/static/images
+  cockpitimagesdir=/$PACKAGE_NAME/389-console/images
+  cockpitstaticimagesdir=/$PACKAGE_NAME/389-console/static/images
   cockpitjsdir=/$PACKAGE_NAME/389-console/js
   cockpitcssdir=/$PACKAGE_NAME/389-console/css
 fi
@@ -514,6 +516,7 @@ AC_SUBST(updatedir)
 AC_SUBST(cockpitdir)
 AC_SUBST(cockpitstaticdir)
 AC_SUBST(cockpitimagesdir)
+AC_SUBST(cockpitstaticimagesdir)
 AC_SUBST(cockpitjsdir)
 AC_SUBST(cockpitcssdir)
 AC_SUBST(defaultuser)
diff --git a/src/cockpit/389-console/backend.html b/src/cockpit/389-console/backend.html
index 25158f11a..7b48f97fd 100644
--- a/src/cockpit/389-console/backend.html
+++ b/src/cockpit/389-console/backend.html
@@ -3,12 +3,15 @@
     <li title="cn=config,cn=ldbm database,cn=plugins,cn=config " id="root" class="jstree-open ds-treenode"
       data-jstree='{"icon":"glyphicon glyphicon-tree-deciduous", "opened":true, "selected":true}'>Database
       <ul>
-        <li title="suffix" id="dc=example,dc=com" data-jstree='{"icon":"glyphicon glyphicon-tree-conifer"}'>dc=example,dc=com
+        <li title="suffix" id="suffix-dc=example,dc=com" data-jstree='{"icon":"glyphicon glyphicon-tree-conifer"}'>dc=example,dc=com
           <ul>
-            <li title="sub suffix" id="ou=people,dc=example,dc=com" data-jstree='{"icon":"glyphicon glyphicon-leaf"}'>ou=people,dc=example,dc=com</li>
+            <li title="sub suffix" id="suffix-ou=people-dc=example,dc=com" data-jstree='{"icon":"glyphicon glyphicon-leaf"}'>ou=people,dc=example,dc=com</li>
           </ul>
         </li>
-        <li title="suffix" id="o=ipaca" data-jstree='{"icon":"glyphicon glyphicon-tree-conifer"}'>o=ipaca.com
+        <li title="suffix" id="suffix-o=ipaca.com" data-jstree='{"icon":"glyphicon glyphicon-tree-conifer"}'>o=ipaca.com
+          <ul>
+            <li title="chained suffix" id="dblink-o=ipaca.com" data-jstree='{"icon":"glyphicon glyphicon-link"}'>MyChainingDBLink</li>
+          </ul>
         </li>
       </ul>
     </li>
@@ -47,7 +50,7 @@
     </div>
     <p></p>
     
-    <input type="button" class="accordion cache-accordion ds-agmt-wiz-button ds-accordion-spacing" id="cache-accordion" value="Cache Settings &#9660;"/>
+    <input type="button" class="accordion cache-accordion ds-accordion-button ds-accordion-spacing" id="cache-accordion" value="Cache Settings &#9660;"/>
     <div class="ds-accordion-panel">
       <div class="ds-container">
         <div class="ds-split">
@@ -98,23 +101,23 @@
       <p></p>
     </div>
     
-    <input type="button" class="accordion db-accordion ds-agmt-wiz-button ds-accordion-spacing" id="db-accordion" value="Advanced Database Settings &#9660;"/>
+    <input type="button" class="accordion db-accordion ds-accordion-button ds-accordion-spacing" id="db-accordion" value="Advanced Database Settings &#9660;"/>
     <div class="ds-accordion-panel">
       <div class="ds-container">
         <div>
-          <label for="nsslapd-db-logdirectory" class="ds-config-label" title=
+          <label for="nsslapd-db-logdirectory" class="ds-config-label ds-cache-label" title=
             "Database Transaction Log Location (nsslapd-db-logdirectory)."><b
             >Transaction Logs Directory</b></label><input class="ds-input" type="text" id="nsslapd-db-logdirectory" size="15"/>
-          <label for="nsslapd-db-home-directory" class="ds-config-label" title=
+          <label for="nsslapd-db-home-directory" class="ds-config-label ds-cache-label" title=
             "Location for database memory mapped files.  You must specify a subdirectory of a tempfs type filesystem (nsslapd-db-home-directory)."><b
             >Database Home Directory</b></label><input class="ds-input" type="text" id="nsslapd-db-home-directory" size="15"/>
-          <label for="nsslapd-db-locks" class="ds-config-label" title=
+          <label for="nsslapd-db-locks" class="ds-config-label ds-cache-label" title=
             "The number of database locks (nsslapd-db-locks)."><b
             >Database Locks</b></label><input class="ds-input" type="text" id="nsslapd-db-locks" size="15"/>
-          <label for="nsslapd-db-checkpoint-interval" class="ds-config-label" title=
+          <label for="nsslapd-db-checkpoint-interval" class="ds-config-label ds-cache-label" title=
             "Amount of time in seconds after which the Directory Server sends a checkpoint entry to the database transaction log (nsslapd-db-checkpoint-interval)."><b
             >Database Checkpoint Interval</b></label><input class="ds-input" type="text" id="nsslapd-db-checkpoint-interval" size="15"/>
-          <label for="nsslapd-db-checkpoint-interval" class="ds-config-label" title=
+          <label for="nsslapd-db-checkpoint-interval" class="ds-config-label ds-cache-label" title=
             "The interval in seconds when the database is compacted (nsslapd-db-compactdb-interval)."><b
             >Database Compact Interval</b></label><input class="ds-input" type="text" id="nsslapd-db-checkpoint-interval" size="15"/>
           <p></p>
@@ -131,18 +134,211 @@
             "sets whether database transaction log entries are immediately written to the disk. (nsslapd-db-durable-transactions)."> Enable Durable transactions</label>
           <p></p>
         </div>
+        <p></p><br>
       </div>
+      <p></p>
     </div>
+
+    <!-- Database Chaining -->
+    <input type="button" class="accordion suffix-accordion ds-accordion-button ds-accordion-spacing" id="suffix-chaining-accordion" value="Database Chaining Settings &#9660;"/>
+    <div class="ds-accordion-panel">
+      <div class="ds-accordian-div">
+        <h3>Database Link Settings</h3>
+        <hr class="ds-hr">
+        <p></p>
+        <div class="ds-container">
+          <div class="ds-chaining-split">
+            <form>
+              <label class="ds-config-label" for "chaining-oid-list" title=
+                "A list of LDAP control OIDs to be forwarded through chaining"><b>Forwarded LDAP Controls</b></label>
+              <select id="chaining-oid-list" class="ds-chaining-list" name="nstransmittedcontrols" multiple>
+                <option value="1.5.6.5.5.6.88.4553.344">1.5.6.5.5.6.88.4553.344</option>
+              </select>
+            </form>
+            <div class="clearfix ds-container">
+              <div class="ds-panel-left">
+                <button type="button" id="chaining-oid-button" class="ds-button-left">Add</button>
+              </div>
+              <div class="ds-panel-right">
+                <button type="button" id="delete-chaining-oid-button" class="ds-button-right">Delete</button>
+              </div>
+            </div>
+          </div>
+          <div class="ds-chaining-divider"></div>
+          <div class="ds-chaining-split">
+            <form>
+              <label class="ds-config-label" for "chaining-comp-list" title=
+                "A list of components to go through chaining"><b>Components to Chain</b></label>
+              <select id="chaining-comp-list" class="ds-chaining-list" name="nsactivechainingcomponents" multiple>
+                <option value="1.5.6.5.5.6.88.4553.344">cn=roles,cn=components,cn=config</option>
+              </select>
+            </form>
+            <div class="clearfix ds-container">
+              <div class="ds-panel-left">
+                <button type="button" id="chaining-comp-button" class="ds-button-left">Add</button>
+              </div>
+              <div class="ds-panel-right">
+                <button type="button" id="delete-chaining-comp-button" class="ds-button-right">Delete</button>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <p></p>
+
+      <div class="ds-accordian-div">
+        <h3>Default Database Link Creation Settings</h3>
+        <hr class="ds-hr">
+        <div class="ds-container">
+          <div class="ds-split">
+            <label for="chaining-size-limit" class="ds-config-label" title=
+              "The size limit of entries returned over a database link (nsslapd-sizelimit)."><b
+              >Size Limit</b></label><input class="ds-input" type="text" id="chaining-size-limit" size="15"/>
+            <label for="chaining-time-limit" class="ds-config-label" title=
+              "The time limit of an operation over a database link (nsslapd-timelimit)."><b
+              >Time Limit</b></label><input class="ds-input" type="text" id="chaining-time-limit" size="15"/>
+            <label for="nsbindconnectionslimit" class="ds-config-label" title=
+              "The maximum number of TCP connections the database link establishes with the remote server.  (nsbindconnectionslimit)."><b
+              >Max TCP Connections</b></label><input class="ds-input" type="text" id="nsbindconnectionslimit" size="15"/>
+            <label for="nsoperationconnectionslimit" class="ds-config-label" title=
+              "The maximum number of connections allowed over the database link.  (nsoperationconnectionslimit)."><b
+              >Max LDAP Connections</b></label><input class="ds-input" type="text" id="nsoperationconnectionslimit" size="15"/>
+            <label for="nsconcurrentbindlimit" class="ds-config-label" title=
+              "The maximum number of concurrent bind operations per TCP connection. (nsconcurrentbindlimit)."><b
+              >Max Binds Per Connection</b></label><input class="ds-input" type="text" id="nsconcurrentbindlimit" size="15"/>
+            <label for="nsbindtimeout" class="ds-config-label" title=
+              "The amount of time before the bind attempt times out. (nsbindtimeout)."><b
+              >Bind Timeout</b></label><input class="ds-input" type="text" id="nsbindtimeout" size="15"/>
+          </div>
+          <div class="ds-divider"></div>
+          <div class="ds-split">
+            <label for="nsbindretrylimit" class="ds-config-label" title=
+              "The number of times the database link tries to bind with the remote server after a connection failure. (nsbindretrylimit)."><b
+              >Bind Retry Limit</b></label><input class="ds-input" type="text" id="nsbindretrylimit" size="15"/>
+            <label for="nsconcurrentoperationslimit" class="ds-config-label" title=
+              "The maximum number of operations per connections. (nsconcurrentoperationslimit)."><b
+              >Max Operations Per Connection</b></label><input class="ds-input" type="text" id="nsconcurrentoperationslimit" size="15"/>
+            <label for="nsconnectionlife" class="ds-config-label" title=
+              "The life of a database link connection to the remote server.  0 is unlimited  (nsconnectionlife)."><b
+              >Connection Lifetime (in seconds)</b></label><input class="ds-input" type="text" id="nsconnectionlife" size="15"/>
+            <label for="nsabandonedsearchcheckinterval" class="ds-config-label" title=
+              "The number of seconds that pass before the server checks for abandoned operations.  (nsabandonedsearchcheckinterval)."><b
+              >Abandoned Op Check Interval</b></label><input class="ds-input" type="text" id="nsabandonedsearchcheckinterval" size="15"/>
+            <label for="nshoplimit" class="ds-config-label" title=
+              "The maximum number of times a request can be forwarded from one database link to another.  (nshoplimit)."><b
+              >Database Link Hop Limit</b></label><input class="ds-input" type="text" id="nshoplimit" size="15"/>
+            <p></p>
+            <input type="checkbox" class="ds-config-checkbox" id="nschecklocalaci"><label
+              for="nschecklocalaci" class="ds-label" title=
+              "Sets whether ACIs are evaluated on the database link as well as the remote data server (nschecklocalaci)."> Check Local ACIs</label>
+            <input type="checkbox" class="ds-config-checkbox" id="nsreferralonscopedsearch"><label
+              for="nsreferralonscopedsearch" class="ds-label" title=
+              "Sets whether referrals are returned by scoped searches (meaning 'one-level' or 'subtree' scoped searches). (nsreferralonscopedsearch)."> Send Referral On Scoped Search</label>
+          </div>
+        </div>
+      </div>
+    </div>
+    <p></p>
+
     <hr class="ds-hr">
     <div class="ds-button-border">
       <button id="server-config-save-btn" class="btn btn-default ds-button">Save</button>
     </div>
   </div>
 
+
+  <!-- Database Link Page -->
+  <div id="chaining" hidden>
+    <h2 id="chaining-header">Database Chaining Configuration</h2>
+    <hr class="ds-hr">
+    <div class="ds-container">
+      <div>
+        <label for="nsfarmserverurl" class="ds-config-label" title=
+          "The URL for the remote server.  Add additional failure servers URLs separated by a space. (nsfarmserverurl)"><b
+          >Remote Server URL(s)</b></label><input class="ds-dblink-input" type="text" id="nsfarmserverurl"/>
+        <label for="nsmultiplexorbinddn" class="ds-config-label" title="Bind DN used to authenticate against the remote server (nsmultiplexorbinddn)."><b>Remote Server Bind DN</b></label><input
+          class="ds-dblink-input" type="text" placeholder="Bind DN" id="nsmultiplexorbinddn" name="name">
+        <label for="nsmultiplexorcredentials" class="ds-config-label" title="Replication Bind DN (nsDS5ReplicaCredentials)."><b>Bind DN Credentials</b></label><input
+          class="ds-dblink-input" type="password" placeholder="Enter password" id="nsmultiplexorcredentials" name="name">
+        <label for="nsmultiplexorcredentials-confirm" class="ds-config-label" title="Confirm password"><b>Confirm Password</b></label><input
+          class="ds-dblink-input" type="password" placeholder="Confirm password" id="nsmultiplexorcredentials-confirm" name="name">
+        <label for="dblink-conn" class="ds-config-label" title="The connection protocol for the remote server."><b>Connection Protocol</b></label><select
+          class="btn btn-default dropdown ds-dblink-dropdown" id="dblink-conn">
+            <option>LDAP</option>
+            <option>LDAPS</option>
+            <option>Start TLS</option>
+          </select>
+        <label for="nsbindmechanism" class="ds-config-label" title="The bind method for contacting the remote server  (nsbindmechanism)."><b>Bind Method</b></label><select
+          class="btn btn-default dropdown ds-dblink-dropdown" id="nsbindmechanism">
+            <option>Simple</option>
+            <option>SASL/DIGEST-MD5</option>
+            <option>SASL/GSSAPI</option>
+          </select>
+      </div>
+    </div>
+    <p></p>
+
+    <input type="button" class="accordion chaining-adv-accordion ds-accordion-button ds-accordion-spacing" id="chaining-adv-accordion" value="Advanced Database Link Settings &#9660;"/>
+    <div class="ds-accordion-panel">
+      <div class="ds-accordian-div">
+        <div class="ds-container">
+          <div class="ds-split">
+            <label for="chaining-size-limit" class="ds-config-label" title=
+              "The size limit of entries returned over a database link (nsslapd-sizelimit)."><b
+              >Size Limit</b></label><input class="ds-input" type="text" id="chaining-size-limit" size="15"/>
+            <label for="chaining-time-limit" class="ds-config-label" title=
+              "The time limit of an operation over a database link (nsslapd-timelimit)."><b
+              >Time Limit</b></label><input class="ds-input" type="text" id="chaining-time-limit" size="15"/>
+            <label for="nsbindconnectionslimit" class="ds-config-label" title=
+              "The maximum number of TCP connections the database link establishes with the remote server.  (nsbindconnectionslimit)."><b
+              >Max TCP Connections</b></label><input class="ds-input" type="text" id="nsbindconnectionslimit" size="15"/>
+            <label for="nsoperationconnectionslimit" class="ds-config-label" title=
+              "The maximum number of connections allowed over the database link.  (nsoperationconnectionslimit)."><b
+              >Max LDAP Connections</b></label><input class="ds-input" type="text" id="nsoperationconnectionslimit" size="15"/>
+            <label for="nsconcurrentbindlimit" class="ds-config-label" title=
+              "The maximum number of concurrent bind operations per TCP connection. (nsconcurrentbindlimit)."><b
+              >Max Binds Per Connection</b></label><input class="ds-input" type="text" id="nsconcurrentbindlimit" size="15"/>
+            <label for="nsbindtimeout" class="ds-config-label" title=
+              "The amount of time before the bind attempt times out. (nsbindtimeout)."><b
+              >Bind Timeout</b></label><input class="ds-input" type="text" id="nsbindtimeout" size="15"/>
+          </div>
+          <div class="ds-divider"></div>
+          <div class="ds-split">
+            <label for="nsbindretrylimit" class="ds-config-label" title=
+              "The number of times the database link tries to bind with the remote server after a connection failure. (nsbindretrylimit)."><b
+              >Bind Retry Limit</b></label><input class="ds-input" type="text" id="nsbindretrylimit" size="15"/>
+            <label for="nsconcurrentoperationslimit" class="ds-config-label" title=
+              "The maximum number of operations per connections. (nsconcurrentoperationslimit)."><b
+              >Max Operations Per Connection</b></label><input class="ds-input" type="text" id="nsconcurrentoperationslimit" size="15"/>
+            <label for="nsconnectionlife" class="ds-config-label" title=
+              "The life of a database link connection to the remote server.  0 is unlimited  (nsconnectionlife)."><b
+              >Connection Lifetime (in seconds)</b></label><input class="ds-input" type="text" id="nsconnectionlife" size="15"/>
+            <label for="nsabandonedsearchcheckinterval" class="ds-config-label" title=
+              "The number of seconds that pass before the server checks for abandoned operations.  (nsabandonedsearchcheckinterval)."><b
+              >Abandoned Op Check Interval</b></label><input class="ds-input" type="text" id="nsabandonedsearchcheckinterval" size="15"/>
+            <label for="nshoplimit" class="ds-config-label" title=
+              "The maximum number of times a request can be forwarded from one database link to another.  (nshoplimit)."><b
+              >Database Link Hop Limit</b></label><input class="ds-input" type="text" id="nshoplimit" size="15"/>
+            <p></p>
+            <input type="checkbox" class="ds-config-checkbox" id="nschecklocalaci"><label
+              for="nschecklocalaci" class="ds-label" title=
+              "Sets whether ACIs are evaluated on the database link as well as the remote data server (nschecklocalaci)."> Check Local ACIs</label>
+            <input type="checkbox" class="ds-config-checkbox" id="nsreferralonscopedsearch"><label
+              for="nsreferralonscopedsearch" class="ds-label" title=
+              "Sets whether referrals are returned by scoped searches (meaning 'one-level' or 'subtree' scoped searches). (nsreferralonscopedsearch)."> Send Referral On Scoped Search</label>
+          </div>
+        </div>
+      </div>
+    </div>
+    <p></p>
+  </div>
+
+
+  <!-- Suffix Configuration Page -->
   <div id="suffix" hidden=>
     <h2 id="suffix-header">Suffix Configuration</h2>
     <hr class="ds-hr">
-    <div id="db" class="ds-container">
+    <div class="ds-container">
       <div>
         <label for="nsslapd-cachememsize" class="ds-config-label" title=
           "The size for the available memory space for the entry cache (nsslapd-cachememsize)."><b
@@ -186,7 +382,7 @@
     </div>
     <hr class="ds-hr">
 
-    <input type="button" class="accordion ds-agmt-wiz-button ds-accordion-spacing suffix-accordion" id="suffix-index-accordion" value="Database Indexes &#9660;"/>
+    <input type="button" class="accordion ds-accordion-button ds-accordion-spacing suffix-accordion" id="suffix-index-accordion" value="Database Indexes &#9660;"/>
     <div class="ds-accordion-panel">
       <h2>System Indexes</h2>
       <hr class="ds-hr">
@@ -286,7 +482,7 @@
       <hr class="ds-hr">
     </div>
 
-    <input type="button" class="accordion suffix-accordion ds-agmt-wiz-button ds-accordion-spacing" id="suffix-attrencrypt-accordion" value="Attribute Encryption &#9660;"/>
+    <input type="button" class="accordion suffix-accordion ds-accordion-button ds-accordion-spacing" id="suffix-attrencrypt-accordion" value="Attribute Encryption &#9660;"/>
     <div class="ds-accordion-panel">
       <table id="attr-encrypt-table" class="display ds-repl-table" cellspacing="0" width="100%">
         <thead>
@@ -308,23 +504,223 @@
       <p></p>
       <hr class="ds-hr">
     </div>
+  </div>
 
-    <input type="button" class="accordion suffix-accordion ds-agmt-wiz-button ds-accordion-spacing" id="suffix-chaining-accordion" value="Database Chaining &#9660;"/>
-    <div class="ds-accordion-panel">
-      <h3>Default Chaining Configuration Settings</h3>
-      <div id="db" class="ds-container">
-        <div>
-          <label for="nsslapd-ZZZZZZZ" class="ds-config-label" title=
-            "HOVER TEXT."><b
-            >Some Chaining Setting</b></label><input class="ds-input" type="text" id="nsslapd-ZZZZZZZ" size="15"/>
 
+  <!-- Modals/Popups/Wizards  -->
+
+  <div id="chaining-oids-form" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Select Forwarded Chaining Controls</b> <span class="close" id="chain-oid-close">&times;</span></h2>
+        <hr class="ds-hr">
+        <p></p>
+        <form>
+          <label class="ds-config-label" for "avail-chaining-oid-list" title=
+            "A list of LDAP control OIDs to be forwarded through chaining"><b>Available LDAP Controls</b></label>
+          <select
+            id="avail-chaining-oid-list" class="ds-chaining-form-list" name="availcontrols" multiple>
+            <option value="1.5.6.5.5.6.88.4553.344">1.5.6.5.5.6.88.4553.344</option>
+            <option value="1.5.6.5.5.6.88.4553.344">1.5.6.5.5.6.88.4553.345</option>
+            <option value="1.5.6.5.5.6.88.4553.344">1.5.6.5.5.6.88.4553.346</option>
+            <option value="1.5.6.5.5.6.88.4553.344">1.5.6.5.5.6.88.4553.347</option>
+            <option value="1.5.6.5.5.6.88.4553.344">1.5.6.5.5.6.88.4553.348</option>
+            <option value="1.5.6.5.5.6.88.4553.344">1.5.6.5.5.6.88.4553.349</option>
+            <option value="1.5.6.5.5.6.88.4553.344">1.5.6.5.5.6.88.4553.340</option>
+            <option value="1.5.6.5.5.6.88.4553.344">1.5.6.5.5.6.88.4553.351</option>
+          </select>
+        </form>
+        <p></p>
+        <hr class="ds-hr">
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="chaining-oid-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="chaining-oid-save" class="ds-button-right">Add Controls</button>
+          </div>
         </div>
-        <div class="ds-divider"></div>
-        <div class="ds-divider"></div>
-        <div class="ds-split">
+      </div>
+    </form>
+  </div>
+
 
+  <div id="chaining-comp-form" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Select Chaining Components</b> <span class="close" id="chain-comp-close">&times;</span></h2>
+        <hr class="ds-hr">
+        <p></p>
+        <form>
+          <label class="ds-config-label" for "chaining-comp-list" title=
+            "A list of components to work with chaining"><b>Available LDAP Controls</b></label>
+          <select
+            id="chaining-comp-list" class="ds-chaining-form-list" name="availcomps" multiple>
+            <option value="cn=roles,cn=compnments,cn=config">cn=roles,cn=components,cn=config</option>
+            <option value="cn=Password Policy,cn=components,cn=config">cn=Password Policy,cn=components,cn=config</option>
+          </select>
+        </form>
+        <p></p>
+        <hr class="ds-hr">
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="chaining-comp-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="chaining-comp-save" class="ds-button-right">Add Components</button>
+          </div>
         </div>
-      <hr class="ds-hr">
-    </div>
+      </div>
+    </form>
+  </div>
+
+  <div id="create-db-link-form" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Create Database Link</b> <span class="close" id="create-chain-close">&times;</span></h2>
+        <hr class="ds-hr">
+        <div class="ds-container">
+          <div>
+            <label for="nsfarmserverurl" class="ds-config-label" title=
+              "The URL for the remote server.  Add additional failure servers URLs separated by a space. (nsfarmserverurl)"><b
+              >Remote Server URL(s)</b></label><input class="ds-dblink-form-input" type="text" id="nsfarmserverurl"/>
+            <label for="nsmultiplexorbinddn" class="ds-config-label" title="Bind DN used to authenticate against the remote server (nsmultiplexorbinddn)."><b>Remote Server Bind DN</b></label><input
+              class="ds-dblink-form-input" type="text" placeholder="Bind DN" id="nsmultiplexorbinddn" name="name">
+            <label for="nsmultiplexorcredentials" class="ds-config-label" title="Replication Bind DN (nsDS5ReplicaCredentials)."><b>Bind DN Credentials</b></label><input
+              class="ds-dblink-form-input" type="password" placeholder="Enter password" id="nsmultiplexorcredentials" name="name">
+            <label for="nsmultiplexorcredentials-confirm" class="ds-config-label" title="Confirm password"><b>Confirm Password</b></label><input
+              class="ds-dblink-form-input" type="password" placeholder="Confirm password" id="nsmultiplexorcredentials-confirm" name="name">
+            <label for="dblink-conn" class="ds-config-label" title="The connection protocol for the remote server."><b>Connection Protocol</b></label><select
+              class="btn btn-default dropdown ds-dblink-dropdown" id="dblink-conn">
+                <option>LDAP</option>
+                <option>LDAPS</option>
+                <option>Start TLS</option>
+              </select>
+            <label for="nsbindmechanism" class="ds-config-label" title="The bind method for contacting the remote server  (nsbindmechanism)."><b>Bind Method</b></label><select
+              class="btn btn-default dropdown ds-dblink-dropdown" id="nsbindmechanism">
+                <option>Simple</option>
+                <option>SASL/DIGEST-MD5</option>
+                <option>SASL/GSSAPI</option>
+              </select>
+          </div>
+        </div>
+        <p></p>
+        <hr class="ds-hr">
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="chaining-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="chaining-save" class="ds-button-right">Create Link</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+
+
+
+
+
+  <div id="create-index" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Create Index</b> <span class="close" id="create-index-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <p></p>
+        <hr class="ds-hr">
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="create-index-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="create-index-save" class="ds-button-right">Create Index</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
 
+  <div id="edit-index" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Edit Index</b> <span class="close" id="edit-index-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <p></p>
+        <hr class="ds-hr">
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="edit-index-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="edit-index-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <div id="add-encrypted-attr" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Add Encrypted Attribute</b> <span class="close" id="encrypted-attr-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <p></p>
+        <hr class="ds-hr">
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="add-encrypted-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="add-encrypted-save" class="ds-button-right">Add Attribute</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <div id="create-suffix" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Create Suffix</b> <span class="close" id="create-suffix-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <p></p>
+        <hr class="ds-hr">
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="add-encrypted-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="add-encrypted-save" class="ds-button-right">Create Suffix</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <div id="create-sub-suffix" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Create Sub Suffix</b> <span class="close" id="create-sub-suffix-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <p></p>
+        <hr class="ds-hr">
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="create-sub-suffix-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="create-sub-suffix-save" class="ds-button-right">Create Sub-Suffix</button>
+          </div>
+        </div>
+      </div>
+    </form>
   </div>
+
+</div>
diff --git a/src/cockpit/389-console/css/ds.css b/src/cockpit/389-console/css/ds.css
index 71b8f4510..14c05d446 100644
--- a/src/cockpit/389-console/css/ds.css
+++ b/src/cockpit/389-console/css/ds.css
@@ -188,20 +188,31 @@
 }
 
 .ds-input {
+  height: 37px !important;
   margin-top: 5px;
   padding-right: 10px;
 }
 
+.ds-input-lrg {
+  width: 315px !important;  /* <input size="40"> */
+  height: 37px !important;
+  margin-top: 5px;
+  padding-right: 10px;
+  height: 37px !important;
+}
+
 .ds-wiz-input {
-  width: 180px !important;
+  width: 415px !important;  /* 180px */
   margin-top: 5px;
   padding-right: 10px;
+  height: 37px !important;
 }
 
 .ds-history-input {
   margin-top: !important;
   margin-right: 5px;
   margin-left: 40px;
+  height: 37px !important;
 }
 .ds-divider {
   width: 35px;
@@ -303,6 +314,40 @@
   text-align: left;
 }
 
+.ds-dblink-dropdown {
+  color: black !important;
+  padding: 0px !important;
+  line-height: 0 !important;
+  height: 40px;
+  width: 175px !important;
+  text-align: left;
+  outline: 0 !important;
+  margin-top: 5px;
+}
+
+.ds-dblink-dropdown a {
+  padding: 0px !important;
+  padding-left: 10px !important;
+  line-height: 0 !important;
+  height: 40px;
+  width: 175px !important;
+  text-align: left;
+}
+
+.ds-dblink-input {
+  width: 300px !important;
+  margin-top: 5px;
+  padding-right: 10px;
+  height: 37px !important;
+}
+
+.ds-dblink-form-input {
+  width: 415px !important;
+  margin-top: 5px;
+  padding-right: 10px;
+  height: 37px !important;
+}
+
 .ds-agmt-init-dropdown {
   margin-top: 0px !important;
   margin-left: 10px;
@@ -456,15 +501,25 @@
   background-color: #f7f7f7;
   margin: 2px auto 15% auto; /* 5% from the top, 15% from the bottom and centered */
   border: 1px solid black;
-  width: 650px; /* Could be more or less, depending on screen size */
+  width: 650px; /* Could be more or less, depending on screen size 650px */
+}
+
+/* The Modal/Wizard Close Button */
+.close {
+    color: #aaa;
+    float: right;
+    font-size: 28px;
+    font-weight: bold;
 }
 
 .close:hover,
 .close:focus {
-  color: red;
-  cursor: pointer;
+    color: black;
+    text-decoration: none;
+    cursor: pointer;
 }
 
+
 /* Clear floats */
 .clearfix::after {
   content: "";
@@ -494,10 +549,15 @@
 
 .ds-agmt-wiz-button {
   height: 40px;
-  width: 400px;
+  width: 630px;
   font-weight: bold;
 }
 
+.ds-accordion-button {
+  height: 40px;
+  width: 400px;
+  font-weight: bold;
+}
 .ds-agmt-wiz-dropdown {
   width: 180px !important;
   margin-top: 5px;
@@ -705,12 +765,33 @@
   line-height:0;
 }
 
+.ds-accordian-div {
+  margin-left: 20px;
+}
+
+.ds-chaining-list {
+  width: 350px;
+  height: 300px;
+}
+
+.ds-chaining-split {
+  width: 350px;
+}
+
+.ds-chaining-divider {
+  width: 85px;
+}
+
+.ds-chaining-form-list {
+  width: 350px;
+  height: 400px;
+}
 
 textarea {
   margin-top: 5px;
   padding-top: 5px;
   vertical-align: top;
-  width: 315px;
+  width: 315px !important;
   height: 80px;
   resize: none;
   word-wrap: break-word !important;
@@ -727,4 +808,3 @@ select {
   outline: 0 !important;
 }
 
-
diff --git a/src/cockpit/389-console/js/backend.js b/src/cockpit/389-console/js/backend.js
index 5350b98c1..00631a826 100644
--- a/src/cockpit/389-console/js/backend.js
+++ b/src/cockpit/389-console/js/backend.js
@@ -1,51 +1,63 @@
 
 
 function customMenu (node) {
-    var root_items = {
-      "create_suffix": {
-        "label": "Create Suffix",
-        "icon": "glyphicon glyphicon-plus",
-        "action": function (data) {
-             // Create suffix
-        }
+  var root_items = {
+    "create_suffix": {
+      "label": "Create Suffix",
+      "icon": "glyphicon glyphicon-plus",
+      "action": function (data) {
+        // TODO Create suffix
       }
-    };
-
-   var suffix_items = {
+    }
+  };
+
+  var dblink_items = {
+    "delete_link": {
+      "label": "Delete DB Link",
+      "icon": "glyphicon glyphicon-trash",
+      "action": function (data) {
+        // TODO Delete db link
+       }
+     }
+  };
+
+  var suffix_items = {
      'import': {
           "label": "Initialize Suffix",
           "icon": "glyphicon glyphicon-circle-arrow-right",
          "action": function (data) {
-           // Create suffix
+           // TODO Import suffix
           }
       },
       'export': {
           "label": "Export Suffix",
           "icon": "glyphicon glyphicon-circle-arrow-left",
          "action": function (data) {
-           // Create suffix
+           // TODO Export suffix
           }
       },
       'reindex': {
           "label": "Reindex Suffix",
           "icon": "glyphicon glyphicon-wrench",
          "action": function (data) {
-           // Create suffix
+           // TODO Reindex suffix
           }
       },
       "create_db_link": {
         "label": "Create Database Link",
         "icon": "glyphicon glyphicon-link",
         "action": function (data) {
-          // Create suffix
-
+          var suffix_id = $(node).attr('id');
+          var parent_suffix = suffix_id.substring(suffix_id.indexOf('-')+1);
+          //clear_chaining_form();   //TODO
+          $("#create-db-link-form").css('display', 'block');
          }
       },
       "create_sub_suffix": {
         "label": "Create Sub-Suffix",
         "icon": "glyphicon glyphicon-triangle-bottom",
         "action": function (data) {
-          // Create suffix
+          // TODO reate suffix
 
          }
       },
@@ -53,15 +65,18 @@ function customMenu (node) {
           "label": "Delete Suffix",
           "icon": "glyphicon glyphicon-remove",
          "action": function (data) {
-           // Create suffix
+           // TODO Delete suffix
           }
       }
    };
 
    if ( $(node).attr('id') == "root" ) {
-       return root_items;
+     return root_items;
+   } else if ( $(node).attr('id').startsWith('suffix') ){
+     return suffix_items;
    } else {
-        return suffix_items;
+     // chaining
+     return dblink_items;
    }
 };
 
@@ -74,14 +89,25 @@ function load_jstree() {
   });
 
   $('#tree').on("changed.jstree", function (e, data) {
-    console.log("The selected nodes are:");
-    console.log(data.selected);
-    var suffix = data.selected;
-    if (suffix == "root"){
+    var node_type = data.selected[0];
+    var suffix = data.instance.get_node(data.selected[0]).text.replace(/(\r\n|\n|\r)/gm,"");
+
+    console.log("The selected nodes are: " + node_type + " = " + suffix);
+
+    if (node_type == "root"){
+      $("#suffix").hide();
+      $("#chaining").hide();
       $("#db").show();
-       $("#suffix").hide();
+    } else if (node_type.startsWith("dblink")) {
+      var parent_suffix = node_type.substring(node_type.indexOf('-')+1);
+      $("#db").hide();
+      $("#suffix").hide();
+      $("#chaining-header").html("Database Chaining Configuration <font size=\"2\">(<b>" + parent_suffix + "</b>)</font>");
+      $("#chaining").show();
     } else {
+      // suffix
       $("#db").hide();
+      $("#chaining").hide();
       $("#suffix-header").html("Suffix Configuration <font size=\"2\">(<b>" + suffix + "</b>)</font>");
       $("#suffix").show();
     }
@@ -109,7 +135,11 @@ $(document).ready( function() {
       "dom": '<"pull-left"f><"pull-right"l>tip',
       "language": {
         "emptyTable": "No Referrals"
-      }
+      },
+      "columnDefs": [ {
+        "targets": 1,
+        "orderable": false
+      } ]
     });
 
     $('#system-index-table').DataTable( {
@@ -127,6 +157,10 @@ $(document).ready( function() {
       "language": {
         "emptyTable": "No Indexes"
       },
+      "columnDefs": [ {
+        "targets": 6,
+        "orderable": false
+      } ]
     });
     $('#attr-encrypt-table').DataTable( {
       "paging": true,
@@ -135,6 +169,10 @@ $(document).ready( function() {
       "language": {
         "emptyTable": "No Encrypted Attributes"
       },
+      "columnDefs": [ {
+        "targets": 2,
+        "orderable": false
+      } ]
     });
 
     // Accordion opening/closings
@@ -164,7 +202,7 @@ $(document).ready( function() {
         }
       }
     }
-    
+
     var cache_acc = document.getElementsByClassName("cache-accordion");
     for (var i = 0; i < cache_acc.length; i++) {
       cache_acc[i].onclick = function() {
@@ -178,8 +216,22 @@ $(document).ready( function() {
       }
     }
 
+    var chain_adv_acc = document.getElementsByClassName("chaining-adv-accordion");
+    for (var i = 0; i < chain_adv_acc.length; i++) {
+      chain_adv_acc[i].onclick = function() {
+        this.classList.toggle("active");
+        var panel = this.nextElementSibling;
+        if (panel.style.display === "block") {
+            panel.style.display = "none";
+        } else {
+            panel.style.display = "block";
+        }
+      }
+    }
+
+
     $(".index-type").attr('readonly', 'readonly');
-    
+
     if ( $("#manual-cache").is(":checked") ){
       $("#auto-cache-form").hide();
       $("#manual-cache-form").show();
@@ -201,7 +253,7 @@ $(document).ready( function() {
       $("#manual-import-cache-form").hide();
       $("#auto-import-cache-form").show();
     }
-   
+
     $(".cache-role").on("change", function() {
       var role = $("input[name=cache-role]:checked").val();
       if (role == "manual-cache") {
@@ -231,6 +283,95 @@ $(document).ready( function() {
          $("#auto-import-cache-form").show();
       }
     });
+
+    // Based on the db-link connection type change the agmt-auth options
+    $("#dblink-conn").change(function() {
+      var ldap_opts = {"Simple": "Simple",
+                       "SASL/DIGEST-MD5": "SASL/DIGEST-MD5",
+                       "SASL/GSSAPI": "SASL/GSSAPI"};
+      var ldaps_opts = {"Simple": "Simple",
+                        "SSL Client Authentication": "SSL Client Authentication",
+                        "SASL/DIGEST-MD5": "SASL/DIGEST-MD5"};
+      var $auth = $("#nsbindmechanism");
+      $auth.empty();
+      var conn = $('#dblink-conn').val();
+      if (conn == "LDAP"){
+        $.each(ldap_opts, function(key, value) {
+          $auth.append($("<option></option>").attr("value", value).text(key));
+        });
+      } else {
+        // TLS options
+        $.each(ldaps_opts, function(key, value) {
+          $auth.append($("<option></option>").attr("value", value).text(key));
+        });
+      }
+      $("#nsmultiplexorbinddn").prop('disabled', false);
+      $("#nsmultiplexorcredentials").prop('disabled', false);
+      $("#nsmultiplexorcredentials-confirm").prop('disabled', false);
+    });
+
+    // Check for auth changes and disable/enable bind DN & password for db-links
+    $("#nsbindmechanism").change(function() {
+      var authtype = $('#nsbindmechanism').val();
+      if (authtype == "SSL Client Authentication") {
+        $("#nsmultiplexorbinddn").prop('disabled', true);
+        $("#nsmultiplexorcredentials").prop('disabled', true);
+        $("#nsmultiplexorcredentials-confirm").prop('disabled', true);
+      } else {
+        $("#nsmultiplexorbinddn").prop('disabled', false);
+        $("#nsmultiplexorcredentials").prop('disabled', false);
+        $("#nsmultiplexorcredentials-confirm").prop('disabled', false);
+      }
+    });
+
+    //
+    // Modal Forms
+    //
+
+    // Chaining OIDS
+    $("#chain-oid-close").on("click", function() {
+      $("#chaining-oids-form").css('display', 'none');
+    });
+    $("#chaining-oid-cancel").on("click", function() {
+      $("#chaining-oids-form").css('display', 'none');
+    });
+    $("#chaining-oid-button").on("click", function() {
+      // Update oids
+      $("#chaining-oids-form").css('display', 'block');
+    })
+    $("#chaining-oid-save").on("click", function() {
+      // Update oids
+      $("#chaining-oids-form").css('display', 'none');
+    });
+
+    // Chaining Comps
+    $("#chain-comp-close").on("click", function() {
+      $("#chaining-comp-form").css('display', 'none');
+    });
+    $("#chaining-comp-cancel").on("click", function() {
+      $("#chaining-comp-form").css('display', 'none');
+    });
+    $("#chaining-comp-button").on("click", function() {
+      // Update Comps
+      $("#chaining-comp-form").css('display', 'block');
+    })
+    $("#chaining-comp-save").on("click", function() {
+      // Update comps
+      $("#chaining-comp-form").css('display', 'none');
+    });
+
+    // Create DB Link
+    $("#create-chain-close").on("click", function() {
+      $("#create-db-link-form").css('display', 'none');
+    });
+    $("#chaining-cancel").on("click", function() {
+      $("#create-db-link-form").css('display', 'none');
+    });
+    $("#chaining-save").on("click", function() {
+      // Create DB link, if LDAPS is selected replace remotefarmUrl "ldap://" with "ldaps://", and visa versa to remove ldaps://
+      $("#create-db-link-form").css('display', 'none');
+    });
+
   });
 });
 
diff --git a/src/cockpit/389-console/js/plugins.js b/src/cockpit/389-console/js/plugins.js
index 456a2730f..75cb84331 100644
--- a/src/cockpit/389-console/js/plugins.js
+++ b/src/cockpit/389-console/js/plugins.js
@@ -4,7 +4,11 @@ $(document).ready( function() {
     $('#plugin-table').DataTable ( {
       "lengthMenu": [[50, 100, -1], [50, 100, "All"]],
       "bAutoWidth": false,
-      "dom": '<"pull-left"f><"pull-right"l>tip'
+      "dom": '<"pull-left"f><"pull-right"l>tip',
+      "columnDefs": [ {
+        "targets": 3,
+        "orderable": false
+      } ]
     });
   });
 });
diff --git a/src/cockpit/389-console/js/replication.js b/src/cockpit/389-console/js/replication.js
index d3f6d41e0..efa6b3bc3 100644
--- a/src/cockpit/389-console/js/replication.js
+++ b/src/cockpit/389-console/js/replication.js
@@ -118,7 +118,11 @@ $(document).ready( function() {
       //"lengthMenu": [ 16, 32, 64, 128],
       "language": {
         "emptyTable": "No agreements configured"
-      }
+      },
+      "columnDefs": [ {
+        "targets": 4,
+        "orderable": false
+      } ]
     });
 
     // Set up CleanAllRUV Table
@@ -128,7 +132,11 @@ $(document).ready( function() {
       "dom": '<"pull-left"f><"pull-right"l>tip',
       "language": {
         "emptyTable": "No agreements configured"
-      }
+      },
+      "columnDefs": [ {
+        "targets": 3,
+        "orderable": false
+      } ]
     });
 
     $('#repl-summary-table').DataTable( {
@@ -144,14 +152,14 @@ $(document).ready( function() {
 
     // Repl Agreement Wizard
     $("#agmt-close").on("click", function() {
-      $("#agmt-wizard").css('display', 'none');
+      $("#agmt-form").css('display', 'none');
     });
     $("#agmt-cancel").on("click", function() {
-      $("#agmt-wizard").css('display', 'none');
+      $("#agmt-form").css('display', 'none');
     });
     $("#create-agmt").on("click", function() {
       clear_agmt_wizard();
-      $("#agmt-wizard").css('display', 'block');
+      $("#agmt-form").css('display', 'block');
     });
 
     // Handle disabling/enabling of agmt schedule panel
diff --git a/src/cockpit/389-console/js/schema.js b/src/cockpit/389-console/js/schema.js
index af95bb420..c6727c21c 100644
--- a/src/cockpit/389-console/js/schema.js
+++ b/src/cockpit/389-console/js/schema.js
@@ -23,6 +23,7 @@ $(document).ready( function() {
       "lengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]]
     });
 
+
     $('#custom-oc-table').DataTable ({
       "paging": true,
       "bAutoWidth": false,
@@ -30,7 +31,11 @@ $(document).ready( function() {
       "language": {
         "emptyTable": "No custom objectclasses defined"
       },
-      "lengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]]
+      "lengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
+      "columnDefs": [ {
+        "targets": 5,
+        "orderable": false
+      } ]
     });
     $('#custom-attr-table').DataTable({
       "paging": true,
@@ -39,7 +44,11 @@ $(document).ready( function() {
       "language": {
         "emptyTable": "No custom attributes defined"
       },
-      "lengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]]
+      "lengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
+      "columnDefs": [ {
+        "targets": 7,
+        "orderable": false
+      } ]
     });
 
     $('#schema-mr-table').DataTable({
diff --git a/src/cockpit/389-console/js/security.js b/src/cockpit/389-console/js/security.js
index 7c5aed879..f2c0856bf 100644
--- a/src/cockpit/389-console/js/security.js
+++ b/src/cockpit/389-console/js/security.js
@@ -58,6 +58,10 @@ $(document).ready( function() {
       "language": {
         "emptyTable": "No Certificates In Database"
       },
+      "columnDefs": [ {
+        "targets": 2,
+        "orderable": false
+      } ]
     });
 
 
diff --git a/src/cockpit/389-console/js/servers.js b/src/cockpit/389-console/js/servers.js
index 87770ec66..c9e5c3c34 100644
--- a/src/cockpit/389-console/js/servers.js
+++ b/src/cockpit/389-console/js/servers.js
@@ -80,7 +80,11 @@ $(document).ready( function() {
       "dom": '<"pull-left"f><"pull-right"l>tip',
       "language": {
         "emptyTable": "No SASL Mappings"
-      }
+      },
+      "columnDefs": [ {
+        "targets": 5,
+        "orderable": false
+      } ]
     });
 
     $("#passwordhistory").change(function() {
@@ -201,7 +205,11 @@ $(document).ready( function() {
       //"lengthMenu": [ 16, 32, 64, 128],
       "language": {
         "emptyTable": "No local policies"
-      }
+      },
+      "columnDefs": [ {
+        "targets": 2,
+        "orderable": false
+      } ]
     });
 
     // Accordion opening/closings
@@ -245,6 +253,19 @@ $(document).ready( function() {
       }
     }
 
+    var pwp_acc = document.getElementsByClassName("pwp-accordion");
+    for (var i = 0; i < pwp_acc.length; i++) {
+      pwp_acc[i].onclick = function() {
+        this.classList.toggle("active");
+        var panel = this.nextElementSibling;
+        if (panel.style.display === "block") {
+            panel.style.display = "none";
+        } else {
+            panel.style.display = "block";
+        }
+      }
+    }
+
     var localpwp_acc = document.getElementsByClassName("localpwp-accordion");
     for (var i = 0; i < localpwp_acc.length; i++) {
       localpwp_acc[i].onclick = function() {
diff --git a/src/cockpit/389-console/plugins.html b/src/cockpit/389-console/plugins.html
index 429447cc5..ed90bc8d7 100644
--- a/src/cockpit/389-console/plugins.html
+++ b/src/cockpit/389-console/plugins.html
@@ -1,26 +1,258 @@
 <div class="ds-plugin-panel">
-<table id="plugin-table" class="display ds-plugin-table" cellspacing="0">
-  <thead class="ds-plugin-header">
-    <tr>
-      <th>Plugin Name</th>
-      <th>Plugin Type</th>
-      <th>Enabled</th>
-      <th></th>
-    </tr>
-  </thead>
-  <tbody id="plugin-body">
-    <tr>
-      <td>MemberOf Plugin</td>
-      <td>betxnpostoperation</td>
-      <td>on</td>
-      <td><button class="btn btn-default ds-agmt-dropdown-button" type="button" id="edit-plugin-2">Edit Plugin</button></td>
-    </tr>
-    <tr>
-      <td>Replication Plugin</td>
-      <td>betxnpostoperation</td>
-      <td>on</td>
-      <td><button class="btn btn-default ds-agmt-dropdown-button" type="button" id="edit-plugin-1">Edit Plugin</button></td>
-    </tr>
-  </tbody>
-</table>
+  <table id="plugin-table" class="display ds-plugin-table" cellspacing="0">
+    <thead class="ds-plugin-header">
+      <tr>
+        <th>Plugin Name</th>
+        <th>Plugin Type</th>
+        <th>Enabled</th>
+        <th></th>
+      </tr>
+    </thead>
+    <tbody id="plugin-body">
+      <tr>
+        <td>MemberOf Plugin</td>
+        <td>betxnpostoperation</td>
+        <td>on</td>
+        <td><button class="btn btn-default ds-agmt-dropdown-button" type="button" id="edit-plugin-2">Edit Plugin</button></td>
+      </tr>
+      <tr>
+        <td>Replication Plugin</td>
+        <td>betxnpostoperation</td>
+        <td>on</td>
+        <td><button class="btn btn-default ds-agmt-dropdown-button" type="button" id="edit-plugin-1">Edit Plugin</button></td>
+      </tr>
+    </tbody>
+  </table>
+
+
+
+  <!-- Modals/Popups/Wizards  -->
+
+  <div id="edit-generic-plugin" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Edit Plugin</b> <span class="close" id="generic-plugin-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="edit-generic-plugin-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="edit-generic-plugin-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <!-- Automember -->
+  <div id="automember-plugin" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Automembership Plugin</b> <span class="close" id="automember-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="automember-plugin-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="automember-plugin-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <!-- Acct Policy ? -->
+  <div id="acct-policy-plugin" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Account Policy Plugin</b> <span class="close" id="acct-policy-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="acct-policy-plugin-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="acct-policy-plugin-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <!-- Acct Usability ? -->
+  <div id="acct-use-plugin" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Account Usability Plugin</b> <span class="close" id="acct-use-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="acct-use-plugin-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="acct-use-plugin-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <!-- Attr Uniqueness -->
+  <div id="attr-uniq-plugin" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Attribute Uniqueness Plugin</b> <span class="close" id="attr-uniq-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="attr-uniq-plugin-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="attr-uniq-plugin-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <!-- Content Sync ? -->
+  <div id="content-sync-plugin" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Content Synchronization Plugin</b> <span class="close" id="content-sync-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="content-sync-plugin-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="content-sync-plugin-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <!-- Linked Attrs -->
+  <div id="linked-attrs-plugin" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Linked Attributes Plugin</b> <span class="close" id="linked-attrs-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="linked-attrs-plugin-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="linked-attrs-plugin-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <!-- Managed Entries Plugin -->
+  <div id="managed-plugin" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Managed Entries Plugin</b> <span class="close" id="managed-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="managed-plugin-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="managed-plugin-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <!-- MemberOf Plugin -->
+  <div id="memberof-plugin" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>MemberOf Plugin</b> <span class="close" id="memberof-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="memberof-plugin-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="memberof-plugin-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <!-- RI Plugin -->
+  <div id="ri-plugin" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Referential Integrity Plugin</b> <span class="close" id="ri-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="ri-plugin-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="ri-plugin-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <!-- RetroCL Plugin -->
+  <div id="retrocl-plugin" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Retro Changelog Plugin</b> <span class="close" id="retrocl-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="retrocl-plugin-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="retrocl-plugin-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <!-- Root DN Access Control plugin -->
+  <div id="rootdn-plugin" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Root DN Access Control Plugin</b> <span class="close" id="rootdn-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="rootdn-plugin-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="rootdn-plugin-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
 </div>
\ No newline at end of file
diff --git a/src/cockpit/389-console/replication.html b/src/cockpit/389-console/replication.html
index daa5891fe..189939537 100644
--- a/src/cockpit/389-console/replication.html
+++ b/src/cockpit/389-console/replication.html
@@ -103,7 +103,7 @@
       <button class="btn btn-default ds-repl-managers-buttons" id="delete-repl-manager">Delete Replication Manager</button>
       <p></p>
 
-      <input type="button" class="accordion repl-config-accordion ds-agmt-wiz-button ds-accordion-spacing" id="repl-config-accordion" value="Advanced Replication Settings &#9660;"/>
+      <input type="button" class="accordion repl-config-accordion ds-accordion-button ds-accordion-spacing" id="repl-config-accordion" value="Advanced Replication Settings &#9660;"/>
       <div class="ds-accordion-panel">
         <div class="ds-container">
           <div>
@@ -265,10 +265,10 @@
   Replication Agreement wizard
 
   ----------------------------------------------------------- -->
-  <div id="agmt-wizard" class="modal">
-    <form id="agmt-form" class="modal-content animate">
+  <div id="agmt-form" class="modal">
+    <form id="" class="modal-content animate">
       <div class="container">
-        <h2 id="agmt-wizard-title"><b>Create Replication Agreement</b></h2>
+        <h2 id="agmt-wizard-title"><b>Create Replication Agreement</b> <span class="close" id="agmt-close">&times;</span> </h2>
         <hr class="ds-hr">
         <div class="ds-container">
           <div>
@@ -278,6 +278,12 @@
               class="ds-wiz-input" type="text" placeholder="Consumer hostname" id="nsds5replicahost" name="port" required>
             <label for="nsds5replicaport" class="ds-config-label" title="Agreement name (nsDS5ReplicaPort)."><b>Consumer Port</b></label><input
               class="ds-wiz-input" type="text" placeholder="Consumer port number" id="nsds5replicaport" name="name" required>
+            <label for="nsds5replicabinddn" class="ds-config-label" title="Replication Bind DN (nsDS5ReplicaBindDN)."><b>Replication Bind DN</b></label><input
+              class="ds-wiz-input" type="text" placeholder="Bind DN" id="nsds5replicabinddn" name="name" required>
+            <label for="nsds5replicacredentials" class="ds-config-label" title="Replication Bind DN (nsDS5ReplicaCredentials)."><b>Replication Bind DN Credentials</b></label><input
+              class="ds-wiz-input" type="password" placeholder="Enter password" id="nsds5replicacredentials" name="name" required>
+            <label for="nsds5replicacredentials-confirm" class="ds-config-label" title="Confirm password"><b>Confirm Password</b></label><input
+              class="ds-wiz-input" type="password" placeholder="Confirm password" id="nsds5replicacredentials-confirm" name="name" required>
             <label for="nsds5replicatransportinfo" class="ds-config-label" title="Agreement name (nsDS5ReplicaTransportInfo)."><b>Connection Protocol</b></label><select
               class="btn btn-default dropdown ds-agmt-wiz-dropdown" id="nsds5replicatransportinfo">
                 <option>LDAP</option>
@@ -290,12 +296,6 @@
                 <option>SASL/DIGEST-MD5</option>
                 <option>SASL/GSSAPI</option>
               </select>
-            <label for="nsds5replicabinddn" class="ds-config-label" title="Replication Bind DN (nsDS5ReplicaBindDN)."><b>Replication Bind DN</b></label><input
-              class="ds-wiz-input" type="text" placeholder="Bind DN" id="nsds5replicabinddn" name="name" required>
-            <label for="nsds5replicacredentials" class="ds-config-label" title="Replication Bind DN (nsDS5ReplicaCredentials)."><b>Replication Bind DN Credentials</b></label><input
-              class="ds-wiz-input" type="password" placeholder="Enter password" id="nsds5replicacredentials" name="name" required>
-            <label for="nsds5replicacredentials-confirm" class="ds-config-label" title="Confirm password"><b>Confirm Password</b></label><input
-              class="ds-wiz-input" type="password" placeholder="Confirm password" id="nsds5replicacredentials-confirm" name="name" required>
           </div>
         </div>
 
@@ -429,12 +429,31 @@
           </select></p>
         </div>
         <hr class="ds-hr">
-        <div class=" clearfix ds-container">  <!-- class=clearfix -->
+        <div class="clearfix ds-container">
           <div class="ds-panel-left">
             <button type="button" id="agmt-cancel" class="ds-button-left">Cancel</button>
           </div>
           <div class="ds-panel-right">
-            <button type="submit" class="ds-button-right">Save</button>
+            <button type="submit" id="agmt-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+
+  <div id="cleanallruv" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Create CleanAllRUV Task</b> <span class="close" id="create-cleanallruv-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="cleanallruv-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="cleanallruv-save" class="ds-button-right">Create Task</button>
           </div>
         </div>
       </div>
diff --git a/src/cockpit/389-console/schema.html b/src/cockpit/389-console/schema.html
index e01e23e46..4bf6aba5d 100644
--- a/src/cockpit/389-console/schema.html
+++ b/src/cockpit/389-console/schema.html
@@ -1,132 +1,239 @@
 
-  <div class="ds-fixed ds-buttons">
-    <button id="schema-standard-btn" class="btn btn-default ds-button ds-button-control active">Standard Schema</button>
-    <button id="schema-custom-btn" class="btn btn-default ds-button ds-button-control active">Custom Schema</button>
-    <button id="schema-mr-btn" class="btn btn-default ds-button ds-button-control active">Matching Rules</button>
-    <hr>
-    <button id="schema-reload" class="btn btn-default ds-button">Reload Schema Files</button>
+<div class="ds-fixed ds-buttons">
+  <button id="schema-standard-btn" class="btn btn-default ds-button ds-button-control active">Standard Schema</button>
+  <button id="schema-custom-btn" class="btn btn-default ds-button ds-button-control active">Custom Schema</button>
+  <button id="schema-mr-btn" class="btn btn-default ds-button ds-button-control active">Matching Rules</button>
+  <hr>
+  <button id="schema-reload" class="btn btn-default ds-button">Reload Schema Files</button>
+</div>
+
+<div class="ds-flex" id="schema-content">
+
+  <div id="schema-standard" class="schema-ctrl" hidden>
+    <div class="ds-border">
+      <h2><b>Standard Objectclasses</b><hr class="ds-hr"></h2>
+      <table id="standard-oc-table" class="display ds-table" cellspacing="0" width="100%">
+        <thead>
+          <tr class="ds-table-header">
+            <th>Objectclass Name</th>
+            <th>OID</th>
+            <th>Parent</th>
+            <th>Required Attributes</th>
+            <th>Allowed Attributes</th>
+          </tr>
+        </thead>
+        <tbody id="standard-body">
+          <tr>
+            <td>person</td>
+            <td>1.0.34.54.7.2.3.4.3.2</td>
+            <td>top</td>
+            <td>cn givenname sn</td>
+            <td>description uid</td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="myborder">
+      <h2><br><b>Standard Attributes</b><hr class="ds-hr"></h2>
+      <table id="standard-attr-table" class="display ds-table" cellspacing="0" width="100%">
+        <thead>
+          <tr class="ds-table-header">
+            <th>Attribute Name</th>
+            <th>OID</th>
+            <th>Syntax</th>
+            <th>Multivalued</th>
+            <th>Equality Matching Rules</th>
+            <th>Ordering Matching Rules</th>
+            <th>Substring Matching Rules</th>
+          </tr>
+        </thead>
+        <tbody id="standard-attr-body">
+        </tbody>
+      </table>
+    </div>
   </div>
 
-  <div class="ds-flex" id="schema-content">
+  <div id="schema-custom" class="schema-ctrl" hidden>
+    <div class="ds-border">
+      <h2><b>Custom Objectclasses</b><hr class="ds-hr"></h2>
+      <table id="custom-oc-table" class="display ds-table" cellspacing="0" width="100%">
+        <thead>
+          <tr class="ds-table-header">
+            <th>Objectclass Name</th>
+            <th>OID</th>
+            <th>Parent</th>
+            <th>Required Attributes</th>
+            <th>Allowed Attributes</th>
+            <th>Action</th>
+          </tr>
+        </thead>
+        <tbody id="custom-body">
+          <tr>
+            <td>InetOrgPerson</td>
+            <td>1.1.1.1.1.1.1.1.1.1</td>
+            <td>top</td>
+            <td>cn</td>
+            <td>sn uid</td>
+            <td>
+              <div class="dropdown">
+                <button class="btn btn-default dropdown-toggle ds-agmt-dropdown-button" type="button" id="dropdownMenu1" data-toggle="dropdown">
+                  Choose Action...
+                  <span class="caret"></span>
+                </button>
+                <ul class="dropdown-menu ds-agmt-dropdown" role="menu" aria-labelledby="dropdownMenu1">
+                  <li role=""><a role="menuitem" tabindex="0" href="#">Edit Objectclass</a></li>
+                  <li role=""><a role="menuitem" tabindex="1" href="#">Delete Objectclass</a></li>
+                </ul>
+              </div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+      <button id="create-oc" name="create-oc" class="btn btn-default ds-button">Create Objectclass</button>
+    </div>
+    <div class="ds-border">
+      <h2><br><b>Custom Attributes</b><hr class="ds-hr"></h2>
+      <table id="custom-attr-table" class="display ds-table" cellspacing="0" width="100%">
+        <thead>
+          <tr class="ds-table-header">
+            <th>Attribute Name</th>
+            <th>OID</th>
+            <th>Syntax</th>
+            <th>Multivalued</th>
+            <th>Equality Matching Rules</th>
+            <th>Ordering Matching Rules</th>
+            <th>Substring Matching Rules</th>
+            <th>Action</th>
+          </tr>
+        </thead>
+        <tbody id="custom-attr-body">
+          <td>ssn</td>
+          <td>1.1.1.1.1.1.1.1</td>
+          <td>DirectoryString</td>
+          <td>no</td>
+          <td></td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="dropdown">
+              <button class="btn btn-default dropdown-toggle ds-agmt-dropdown-button" type="button" id="dropdownMenu1" data-toggle="dropdown">
+                Choose Action...
+                <span class="caret"></span>
+              </button>
+              <ul class="dropdown-menu ds-agmt-dropdown" role="menu" aria-labelledby="dropdownMenu1">
+                <li role=""><a role="menuitem" tabindex="0" href="#">Edit Attribute</a></li>
+                <li role=""><a role="menuitem" tabindex="1" href="#">Delete Attribute</a></li>
+              </ul>
+            </div>
+          </td>
+        </tbody>
+      </table>
+      <button id="create-at" name="create-at" class="btn btn-default ds-button">Create Attribute</button>
+    </div>
+  </div>
 
-    <div id="schema-standard" class="schema-ctrl" hidden>
-      <div class="ds-border">
-        <h2><b>Standard Objectclasses</b><hr class="ds-hr"></h2>
-        <table id="standard-oc-table" class="display ds-table" cellspacing="0" width="100%">
-          <thead>
-            <tr class="ds-table-header">
-              <th>Objectclass Name</th>
-              <th>OID</th>
-              <th>Parent</th>
-              <th>Required Attributes</th>
-              <th>Allowed Attributes</th>
-            </tr>
-          </thead>
-          <tbody id="standard-body">
-            <tr>
-              <td>person</td>
-              <td>1.0.34.54.7.2.3.4.3.2</td>
-              <td>top</td>
-              <td>cn givenname sn</td>
-              <td>description uid</td>
-            </tr>
-          </tbody>
-        </table>
-      </div>
-      <div class="myborder">
-        <h2><br><b>Standard Attributes</b><hr class="ds-hr"></h2>
-        <table id="standard-attr-table" class="display ds-table" cellspacing="0" width="100%">
-          <thead>
-            <tr class="ds-table-header">
-              <th>Attribute Name</th>
-              <th>OID</th>
-              <th>Syntax</th>
-              <th>Multivalued</th>
-              <th>Equality Matching Rules</th>
-              <th>Ordering Matching Rules</th>
-              <th>Substring Matching Rules</th>
-            </tr>
-          </thead>
-          <tbody id="standard-attr-body">
-          </tbody>
-        </table>
-      </div>
+  <div id="schema-mr" class="schema-ctrl" hidden>
+    <div class="ds-border">
+      <h2><b>Matching Rules</b><hr class="ds-hr"></h2>
+      <table id="schema-mr-table" class="display ds-table" cellspacing="0" width="100%">
+        <thead>
+          <tr class="ds-table-header">
+            <th>Matching Rule Name</th>
+            <th>OID</th>
+            <th>Syntax</th>
+            <th>Description</th>
+          </tr>
+        </thead>
+        <tbody id="standard-body">
+          <tr>
+            <td>equality</td>
+            <td>9.5.6.7.3.5.4.45.54.4</td>
+            <td>DirectoryString</td>
+            <td>My really long description for some reason</td>
+          </tr>
+          <tr>
+            <td>equality-2</td>
+            <td>999.5.6.7.3.5.4.45.54.4</td>
+            <td>DirectoryString</td>
+            <td>My really long description for some reason</td>
+          </tr>
+        </tbody>
+      </table>
     </div>
+  </div>
 
-    <div id="schema-custom" class="schema-ctrl" hidden>
-      <div class="ds-border">
-        <h2><b>Custom Objectclasses</b><hr class="ds-hr"></h2>
-        <table id="custom-oc-table" class="display ds-table" cellspacing="0" width="100%">
-          <thead>
-            <tr class="ds-table-header">
-              <th>Objectclass Name</th>
-              <th>OID</th>
-              <th>Parent</th>
-              <th>Required Attributes</th>
-              <th>Allowed Attributes</th>
-            </tr>
-          </thead>
-          <tbody id="custom-body">
-            <tr>
-              <td>InetOrgPerson</td>
-              <td>1.1.1.1.1.1.1.1.1.1</td>
-              <td>top</td>
-              <td>cn</td>
-              <td>sn uid</td>
-            </tr>
-          </tbody>
-        </table>
-        <button id="create-oc" name="create-oc" class="btn btn-default ds-button">Create Objectclass</button>
+
+  <!-- Modals/Popups/Wizards -->
+
+  <div id="add-oc" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Add Objectclass</b> <span class="close" id="add-oc-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="add-oc-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="add-oc-save" class="ds-button-right">Add Objectclass</button>
+          </div>
+        </div>
       </div>
-      <div class="ds-border">
-        <h2><br><b>Custom Attributes</b><hr class="ds-hr"></h2>
-        <table id="custom-attr-table" class="display ds-table" cellspacing="0" width="100%">
-          <thead>
-            <tr class="ds-table-header">
-              <th>Attribute Name</th>
-              <th>OID</th>
-              <th>Syntax</th>
-              <th>Multivalued</th>
-              <th>Equality Matching Rules</th>
-              <th>Ordering Matching Rules</th>
-              <th>Substring Matching Rules</th>
-            </tr>
-          </thead>
-          <tbody id="custom-attr-body">
-          </tbody>
-        </table>
-        <button id="create-at" name="create-at" class="btn btn-default ds-button">Create Attribute</button>
+    </form>
+  </div>
+
+  <div id="edit-oc" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Edit Objectclass</b> <span class="close" id="edit-oc-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="edit-oc-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="edit-oc-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
       </div>
-    </div>
+    </form>
+  </div>
 
-    <div id="schema-mr" class="schema-ctrl" hidden>
-      <div class="ds-border">
-        <h2><b>Matching Rules</b><hr class="ds-hr"></h2>
-        <table id="schema-mr-table" class="display ds-table" cellspacing="0" width="100%">
-          <thead>
-            <tr class="ds-table-header">
-              <th>Matching Rule Name</th>
-              <th>OID</th>
-              <th>Syntax</th>
-              <th>Description</th>
-            </tr>
-          </thead>
-          <tbody id="standard-body">
-            <tr>
-              <td>equality</td>
-              <td>9.5.6.7.3.5.4.45.54.4</td>
-              <td>DirectoryString</td>
-              <td>My really long description for some reason</td>
-            </tr>
-            <tr>
-              <td>equality-2</td>
-              <td>999.5.6.7.3.5.4.45.54.4</td>
-              <td>DirectoryString</td>
-              <td>My really long description for some reason</td>
-            </tr>
-          </tbody>
-        </table>
+  <div id="add-attr" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Add Attribute</b> <span class="close" id="add-attr-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="add-attr-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="add-attr-save" class="ds-button-right">Add Attribute</button>
+          </div>
+        </div>
       </div>
-    </div>
+    </form>
+  </div>
 
+  <div id="edit-attr" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Edit Attribute</b> <span class="close" id="edit-attr-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="edit-attr-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="edit-attr-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
   </div>
+</div>
diff --git a/src/cockpit/389-console/security.html b/src/cockpit/389-console/security.html
index c6695b1a1..c2a5205df 100644
--- a/src/cockpit/389-console/security.html
+++ b/src/cockpit/389-console/security.html
@@ -12,9 +12,9 @@
     <hr class="ds-hr">
     <div class="ds-expired-div" id="cert-attrs">
       <label for="nsslapd-secureport" class="ds-config-label" title="The server's secure port number (nsslapd-secureport)."><b>Server Secure Port</b></label><input
-        class="ds-input" type="text" id="nsslapd-secureport" size="40"/>
+        class="ds-input-lrg" type="text" id="nsslapd-secureport" size="40"/>
       <label for="nsslapd-securelistenhost" class="ds-config-label" title="This parameter can be used to restrict the Directory Server instance to a single IP interface (hostname, or IP address).  This parameter specifically sets what interface to use for TLS traffic.  Requires restart. (nsslapd-securelistenhost)."><b>Secure Listen Host Address</b></label><input
-        class="ds-input" type="text" id="nsslapd-securelistenhost" size="40"/>
+        class="ds-input-lrg" type="text" id="nsslapd-securelistenhost" size="40px"/>
       <label for="cipher-area" class="ds-sec-label"><b>Allowed Ciphers</b></label><textarea id="cipher-area" rows="5" cols="100">+all</textarea>
       <label for="sec-sslmin" class="ds-sec-label" title="The minimum SSL/TLS version the server will accept (sslversionmin).">Minimum SSL/TLS Version </label><select
         class="btn btn-default dropdown ds-agmt-wiz-dropdown" id="sec-sslmin">
@@ -160,6 +160,43 @@
     </div>
   </div>
 
+  <!-- Modals/Popups/Wizards  -->
+
+  <div id="import-cert" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Import Certificate</b> <span class="close" id="import-cert-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="import-cert-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="import-cert-save" class="ds-button-right">Import Certificate</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <div id="export-cert" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Export Certificate</b> <span class="close" id="export-cert-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="export-cert-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="export-cert-save" class="ds-button-right">Export Certificate</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
 </div>
 
 
diff --git a/src/cockpit/389-console/servers.html b/src/cockpit/389-console/servers.html
index 99e44f264..b0be4246b 100644
--- a/src/cockpit/389-console/servers.html
+++ b/src/cockpit/389-console/servers.html
@@ -50,7 +50,7 @@
    </div>
    <p></p>
 
-   <input type="button" class="accordion config-accordion ds-agmt-wiz-button ds-accordion-spacing" id="config-accordion" value="Advanced Settings &#9660;"/>
+   <input type="button" class="accordion config-accordion ds-accordion-button ds-accordion-spacing" id="config-accordion" value="Advanced Settings &#9660;"/>
    <div class="ds-accordion-panel">
      <div class="ds-container">
        <div class="">
@@ -93,7 +93,7 @@
    </div>
    <p></p>
 
-   <input type="button" class="accordion rootdn-accordion ds-agmt-wiz-button ds-accordion-spacing" id="rootdn-accordion" value="Directory Manager Settings &#9660;"/>
+   <input type="button" class="accordion rootdn-accordion ds-accordion-button ds-accordion-spacing" id="rootdn-accordion" value="Directory Manager Settings &#9660;"/>
    <div class="ds-accordion-panel">
      <div>
        <label for="nsslapd-rootdn" class="ds-config-label" title="The DN of the unrestricted directory manager (nsslapd-rootdn)."><b>Directory Manager DN</b></label><input
@@ -192,152 +192,159 @@
   <div id="server-pwpolicy" class="server-cfg-ctrl" hidden>
     <h2>Password Policy Management Settings</h2>
     <hr class="ds-hr">
-    <div class="ds-container">
-      <div class="ds-split">
-        <h3><br>General Settings</h3>
-        <hr class="ds-hr">
-        <label for="passwordstoragescheme" class="ds-server-label" title="Set the password storage scheme (passwordstoragescheme).">Password Storage Scheme</label><select
-          class="btn btn-default dropdown ds-passwd-dropdown" id="passwordstoragescheme">
-            <option>PBKDF2_SHA256</option>
-            <option>SSHA512</option>
-            <option>SSHA384</option>
-            <option>SSHA256</option>
-            <option>SSHA</option>
-            <option>NS-MTA-MD5</option>
-            <option>MD5</option>
-            <option>SMD5</option>
-            <option>CRYPT-MD5</option>
-            <option>CRYPT-SHA512</option>
-            <option>CRYPT-SHA256</option>
-            <option>CRYPT</option>
-            <option>CLEAR</option>
-          </select>
-        <input type="checkbox" class="ds-config-checkbox" id="nsslapd-pwpolicy-local" checked><label
-          for="nsslapd-pwpolicy-local" class="ds-label" title="Allow subtree/user defined password policies (nsslapd-pwpolicy-local)."> Allow Local Password Policies</label>
-        <input type="checkbox" class="ds-config-checkbox" id="nsslapd-pwpolicy-inherit-global" checked><label
-          for="nsslapd-pwpolicy-inherit-global" class="ds-label" title=
-          "If a local password policy does not defined any syntax rules then inherit the local policy syntax (nsslapd-pwpolicy-inherit-global)."> Local Policy Inherits Global Policy</label>
-        <input type="checkbox" class="ds-config-checkbox" id="nsslapd-allow-hashed-passwords"><label
-          for="nsslapd-allow-hashed-passwords" class="ds-label" title="Allow anyone to add a prehashed password (nsslapd-allow-hashed-passwords)."> Allow Adding Pre-Hashed Passwords</label>
-        <input type="checkbox" class="ds-config-checkbox" id="passwordisglobalpolicy" checked><label
-          for="passwordisglobalpolicy" class="ds-label" title="Allow password policy state attributes to replicate (passwordIsGlobalPolicy)."> Replicate Password Policy State Attributes</label>
-        <input type="checkbox" class="ds-config-checkbox" id="passwordtrackupdatetime" checked><label
-          for="passwordtrackupdatetime" class="ds-label" title=
-          "Record a separate timestamp specifically for the last time that the password for an entry was changed. If this is enabled, then it adds the pwdUpdateTime operational attribute to the user account entry (passwordTrackUpdateTime)."> Track Password Update Time</label>
-        <label for="passwordAdminDN" class="ds-server-label" title="The DN for a password administrator or administrator group (passwordAdminDN)">Password Administrator</label><input
-          class="ds-input" type="text" id="passwordAdminDN" size="40"/>
-      </div>
-      <div class="ds-divider"></div>
-      <div class="ds-split">
-        <h3><br>User Password Settings</h3>
-        <hr class="ds-hr">
-        <input type="checkbox" class="ds-config-checkbox" id="passwordchange" checked><label
-          for="passwordchange" class="ds-label" title="Allow user's to change their passwords (passwordChange)."> Allow Users To Change Their Passwords</label>
-        <input type="checkbox" class="ds-config-checkbox" id="passwordmustchange" checked><label
-          for="passwordmustchange" class="ds-label" title="User must change its password after its been reset by an administrator (passwordMustChange).">User Must Change Password After Reset</label>
-        <input type="checkbox" class="ds-config-checkbox" id="passwordhistory" checked><label
-          for="passwordhistory" class="ds-label" title="Maintain a password history (passwordHistory).">Keep Password History</label>
-        <input class="ds-history-input" type="text" id="passwordinhistory" size="2"/>Passwords In History
-        <label for="passwordminage" class="ds-minage-label" title="Indicates the number of seconds that must pass before a user can change their password. (passwordMinAge)">Allow Password Changes (in seconds)</label><input
-         class="ds-input" type="text" id="passwordminage" size="10"/>
-        <p></p>
-      </div>
-    </div>
-    <div class="ds-container">
-      <div class="ds-split">
-        <h3><br>Password Expiration Settings</h3>
-        <hr class="ds-hr">
-        <input type="checkbox" class="ds-config-checkbox" id="passwordexp" checked><label
-          for="passwordexp" class="ds-label" title="Enable a password expiration policy (passwordExp).">Enable Password Expiration</label>
-        <div class="ds-expired-div" id="expiration-attrs">
-          <label for="passwordmaxage" class="ds-expire-label" title="The server's local hostname (passwordMaxAge)."><b>Password Expiration Time (in seconds)</b></label><input
-            class="ds-input" type="text" id="passwordmaxage" size="5"/>
-          <label for="passwordgracelimit" class="ds-expire-label" title="The server's local hostname (passwordGraceLimit)."><b>Allowed Logins After Password Expires</b></label><input
-            class="ds-input" type="text" id="passwordgracelimit" size="5"/>
-          <label for="passwordwarning" class="ds-expire-label" title="Set the time (in seconds), before a password is about to expire, to send a warning. (passwordWarning)."><b>Send Password Expiring Warning (in seconds)</b></label><input
-            class="ds-input" type="text" id="passwordwarning" size="5"/>
-          <input type="checkbox" class="ds-send-expiring-checkbox" id="passwordsendexpiringtime"><label
-            for="passwordsendexpiringtime" class="ds-label" title="Always return a password expiring control when requested (passwordSendExpiringTime).">Always Send <i>Password Expiring</i> Control</label>
+    <p></p>
+
+    <input type="button" class="accordion pwp-accordion ds-accordion-button ds-accordion-spacing" id="pwd-accordion" value="Global Password Policy &#9660;" title=
+      "Configure the global password policy settings"/>
+    <div class="ds-accordion-panel">
+      <div class="ds-container">
+        <div class="ds-split">
+          <h3>General Settings</h3>
+          <hr class="ds-hr">
+          <label for="passwordstoragescheme" class="ds-server-label" title="Set the password storage scheme (passwordstoragescheme).">Password Storage Scheme</label><select
+            class="btn btn-default dropdown ds-passwd-dropdown" id="passwordstoragescheme">
+              <option>PBKDF2_SHA256</option>
+              <option>SSHA512</option>
+              <option>SSHA384</option>
+              <option>SSHA256</option>
+              <option>SSHA</option>
+              <option>NS-MTA-MD5</option>
+              <option>MD5</option>
+              <option>SMD5</option>
+              <option>CRYPT-MD5</option>
+              <option>CRYPT-SHA512</option>
+              <option>CRYPT-SHA256</option>
+              <option>CRYPT</option>
+              <option>CLEAR</option>
+            </select>
+          <input type="checkbox" class="ds-config-checkbox" id="nsslapd-pwpolicy-local" checked><label
+            for="nsslapd-pwpolicy-local" class="ds-label" title="Allow subtree/user defined password policies (nsslapd-pwpolicy-local)."> Allow Local Password Policies</label>
+          <input type="checkbox" class="ds-config-checkbox" id="nsslapd-pwpolicy-inherit-global" checked><label
+            for="nsslapd-pwpolicy-inherit-global" class="ds-label" title=
+            "If a local password policy does not defined any syntax rules then inherit the local policy syntax (nsslapd-pwpolicy-inherit-global)."> Local Policy Inherits Global Policy</label>
+          <input type="checkbox" class="ds-config-checkbox" id="nsslapd-allow-hashed-passwords"><label
+            for="nsslapd-allow-hashed-passwords" class="ds-label" title="Allow anyone to add a prehashed password (nsslapd-allow-hashed-passwords)."> Allow Adding Pre-Hashed Passwords</label>
+          <input type="checkbox" class="ds-config-checkbox" id="passwordisglobalpolicy" checked><label
+            for="passwordisglobalpolicy" class="ds-label" title="Allow password policy state attributes to replicate (passwordIsGlobalPolicy)."> Replicate Password Policy State Attributes</label>
+          <input type="checkbox" class="ds-config-checkbox" id="passwordtrackupdatetime" checked><label
+            for="passwordtrackupdatetime" class="ds-label" title=
+            "Record a separate timestamp specifically for the last time that the password for an entry was changed. If this is enabled, then it adds the pwdUpdateTime operational attribute to the user account entry (passwordTrackUpdateTime)."> Track Password Update Time</label>
+          <label for="passwordAdminDN" class="ds-server-label" title="The DN for a password administrator or administrator group (passwordAdminDN)">Password Administrator</label><input
+            class="ds-input" type="text" id="passwordAdminDN" size="40"/>
+        </div>
+        <div class="ds-divider"></div>
+        <div class="ds-split">
+          <h3>User Password Settings</h3>
+          <hr class="ds-hr">
+          <input type="checkbox" class="ds-config-checkbox" id="passwordchange" checked><label
+            for="passwordchange" class="ds-label" title="Allow user's to change their passwords (passwordChange)."> Allow Users To Change Their Passwords</label>
+          <input type="checkbox" class="ds-config-checkbox" id="passwordmustchange" checked><label
+            for="passwordmustchange" class="ds-label" title="User must change its password after its been reset by an administrator (passwordMustChange).">User Must Change Password After Reset</label>
+          <input type="checkbox" class="ds-config-checkbox" id="passwordhistory" checked><label
+            for="passwordhistory" class="ds-label" title="Maintain a password history (passwordHistory).">Keep Password History</label>
+          <input class="ds-history-input" type="text" id="passwordinhistory" size="2"/>Passwords In History
+          <label for="passwordminage" class="ds-minage-label" title="Indicates the number of seconds that must pass before a user can change their password. (passwordMinAge)">Allow Password Changes (in seconds)</label><input
+           class="ds-input" type="text" id="passwordminage" size="10"/>
+          <p></p>
         </div>
       </div>
-      <div class="ds-divider"></div>
-      <div class="ds-split">
-        <h3><br>Account Lockout Settings</h3>
-        <hr class="ds-hr">
-        <input type="checkbox" class="ds-config-checkbox" id="passwordlockout" checked><label
-          for="passwordlockout" class="ds-label" title="Enable account lockout (passwordLockout).">Enable Account Lockout</label>
-        <div class="ds-expired-div" id="lockout-attrs">
-          <label for="passwordmaxfailure" class="ds-expire-label" title=
-            "The maximum number of failed logins before account gets locked (passwordMaxFailure)."><b>Number of Failed Logins to Lockout Account</b></label><input
-            class="ds-input" type="text" id="passwordmaxfailure" size="5"/>
-          <label for="passwordresetfailurecount" class="ds-expire-label" title=
-            "The number of seconds until an accounts failure count is reset (passwordResetFailureCount)."><b>Time Before Failure Count Reset </b></label><input
-            class="ds-input" type="text" id="passwordresetfailurecount" size="5"/>
-          <div>
-            <label title="Lock out the account forever (passwordUnlock)."><input
-              class="ds-radio" type="radio" id="passwordunlock" value="passwordunlock" name="account-lockout" checked="checked"> Lockout Account Forever</label>
-            <label title="The number of seconds before account gets unlocked (passwordLockoutDuration)."><input
-              class="ds-radio" type="radio" name="account-lockout" value="passwordlockoutduration"> Time Until Account Unlocked <input
-              class="ds-input" type="text" id="passwordlockoutduration" size="5"/></label>
+      <div class="ds-container">
+        <div class="ds-split">
+          <h3><br>Password Expiration Settings</h3>
+          <hr class="ds-hr">
+          <input type="checkbox" class="ds-config-checkbox" id="passwordexp" checked><label
+            for="passwordexp" class="ds-label" title="Enable a password expiration policy (passwordExp).">Enable Password Expiration</label>
+          <div class="ds-expired-div" id="expiration-attrs">
+            <label for="passwordmaxage" class="ds-expire-label" title="The server's local hostname (passwordMaxAge)."><b>Password Expiration Time (in seconds)</b></label><input
+              class="ds-input" type="text" id="passwordmaxage" size="5"/>
+            <label for="passwordgracelimit" class="ds-expire-label" title="The server's local hostname (passwordGraceLimit)."><b>Allowed Logins After Password Expires</b></label><input
+              class="ds-input" type="text" id="passwordgracelimit" size="5"/>
+            <label for="passwordwarning" class="ds-expire-label" title="Set the time (in seconds), before a password is about to expire, to send a warning. (passwordWarning)."><b>Send Password Expiring Warning (in seconds)</b></label><input
+              class="ds-input" type="text" id="passwordwarning" size="5"/>
+            <input type="checkbox" class="ds-send-expiring-checkbox" id="passwordsendexpiringtime"><label
+              for="passwordsendexpiringtime" class="ds-label" title="Always return a password expiring control when requested (passwordSendExpiringTime).">Always Send <i>Password Expiring</i> Control</label>
           </div>
         </div>
-        <p></p>
+        <div class="ds-divider"></div>
+        <div class="ds-split">
+          <h3><br>Account Lockout Settings</h3>
+          <hr class="ds-hr">
+          <input type="checkbox" class="ds-config-checkbox" id="passwordlockout" checked><label
+            for="passwordlockout" class="ds-label" title="Enable account lockout (passwordLockout).">Enable Account Lockout</label>
+          <div class="ds-expired-div" id="lockout-attrs">
+            <label for="passwordmaxfailure" class="ds-expire-label" title=
+              "The maximum number of failed logins before account gets locked (passwordMaxFailure)."><b>Number of Failed Logins to Lockout Account</b></label><input
+              class="ds-input" type="text" id="passwordmaxfailure" size="5"/>
+            <label for="passwordresetfailurecount" class="ds-expire-label" title=
+              "The number of seconds until an accounts failure count is reset (passwordResetFailureCount)."><b>Time Before Failure Count Reset </b></label><input
+              class="ds-input" type="text" id="passwordresetfailurecount" size="5"/>
+            <div>
+              <label title="Lock out the account forever (passwordUnlock)."><input
+                class="ds-radio" type="radio" id="passwordunlock" value="passwordunlock" name="account-lockout" checked="checked"> Lockout Account Forever</label>
+              <label title="The number of seconds before account gets unlocked (passwordLockoutDuration)."><input
+                class="ds-radio" type="radio" name="account-lockout" value="passwordlockoutduration"> Time Until Account Unlocked <input
+                class="ds-input" type="text" id="passwordlockoutduration" size="5"/></label>
+            </div>
+          </div>
+          <p></p>
+        </div>
       </div>
-    </div>
 
-    <h3><br>Password Syntax Settings</h3>
-    <hr class="ds-hr">
-    <input type="checkbox" class="ds-config-checkbox" id="passwordchecksyntax" checked><label
-      for="passwordchecksyntax" class="ds-label" title="Enable account lockout (passwordCheckSyntax).">Check Password Syntax</label>
-    <div class="ds-container ds-expired-div" id="syntax-attrs">
-      <div>
-        <label for="passwordminlength" class="ds-expire-label" title=
-          "The minimum number of characters in the password (passwordMinLength)."><b>Password Minimum Length </b></label><input
-          class="ds-input" type="text" id="passwordminlength" size="5"/>
-        <label for="passwordmindigits" class="ds-expire-label" title=
-          "Reject passwords with fewer than this many digit characters (0-9) (passwordMinDigits)."><b>Minimum Digit Characters </b></label><input
-          class="ds-input" type="text" id="passwordmindigits" size="5"/>
-        <label for="passwordmindigits" class="ds-expire-label" title=
-          "Reject passwords with fewer than this many alpha characters (passwordMinAlphas)."><b>Minimum Alpha Characters </b></label><input
-          class="ds-input" type="text" id="passwordminalphas" size="5"/>
-        <label for="passwordminuppers" class="ds-expire-label" title=
-          "Reject passwords with fewer than this many uppercase characters (passwordMinUppers)."><b>Minimum Uppercase Characters </b></label><input
-          class="ds-input" type="text" id="passwordminuppers" size="5"/>
-        <label for="passwordminlowers" class="ds-expire-label" title=
-          "Reject passwords with fewer than this many lowercase characters (passwordMinLowers)."><b>Minimum Lowercase Characters </b></label><input
-          class="ds-input" type="text" id="passwordminlowers" size="5"/>
-      </div>
-      <div class="ds-divider"></div>
-      <div class="ds-divider"></div>
-      <div class="ds-divider"></div>
-      <div>
-        <label for="passwordminspecials" class="ds-expire-label" title=
-          "Reject passwords with fewer than this many special non-alphanumeric characters (passwordMinSpecials)."><b>Minimum Special Characters </b></label><input
-          class="ds-input" type="text" id="passwordminspecials" size="5"/>
-        <label for="passwordmin8bit" class="ds-expire-label" title=
-          "Reject passwords with fewer than this many 8-bit or multi-byte characters (passwordMin8Bit)."><b>Minimum 8-bit Characters </b></label><input
-          class="ds-input" type="text" id="passwordmin8bit" size="5"/>
-        <label for="passwordmaxrepeats" class="ds-expire-label" title=
-          "The maximum number of times the same character can sequentially appear in a password (passwordMaxRepeats)."><b>Maximum Number Of Repeated Characters </b></label><input
-          class="ds-input" type="text" id="passwordmaxrepeats" size="5"/>
-        <label for="passwordmincategories" class="ds-expire-label" title=
-          "The minimum number of character categories that a password must contain (categories are upper, lower, digit, special, and 8-bit) (passwordMinCategories)."><b>Minimum Required Character Categories </b></label><input
-          class="ds-input" type="text" id="passwordmincategories" size="5"/>
-        <label for="passwordmintokenlength" class="ds-expire-label" title=
-          "The smallest attribute value used when checking if the password contains any of the user's account information (passwordMinTokenLength)."><b>Minimum Token Length </b></label><input
-          class="ds-input" type="text" id="passwordmintokenlength" size="5"/>
+      <h3><br>Password Syntax Settings</h3>
+      <hr class="ds-hr">
+      <input type="checkbox" class="ds-config-checkbox" id="passwordchecksyntax" checked><label
+        for="passwordchecksyntax" class="ds-label" title="Enable account lockout (passwordCheckSyntax).">Check Password Syntax</label>
+      <div class="ds-container ds-expired-div" id="syntax-attrs">
+        <div>
+          <label for="passwordminlength" class="ds-expire-label" title=
+            "The minimum number of characters in the password (passwordMinLength)."><b>Password Minimum Length </b></label><input
+            class="ds-input" type="text" id="passwordminlength" size="5"/>
+          <label for="passwordmindigits" class="ds-expire-label" title=
+            "Reject passwords with fewer than this many digit characters (0-9) (passwordMinDigits)."><b>Minimum Digit Characters </b></label><input
+            class="ds-input" type="text" id="passwordmindigits" size="5"/>
+          <label for="passwordmindigits" class="ds-expire-label" title=
+            "Reject passwords with fewer than this many alpha characters (passwordMinAlphas)."><b>Minimum Alpha Characters </b></label><input
+            class="ds-input" type="text" id="passwordminalphas" size="5"/>
+          <label for="passwordminuppers" class="ds-expire-label" title=
+            "Reject passwords with fewer than this many uppercase characters (passwordMinUppers)."><b>Minimum Uppercase Characters </b></label><input
+            class="ds-input" type="text" id="passwordminuppers" size="5"/>
+          <label for="passwordminlowers" class="ds-expire-label" title=
+            "Reject passwords with fewer than this many lowercase characters (passwordMinLowers)."><b>Minimum Lowercase Characters </b></label><input
+            class="ds-input" type="text" id="passwordminlowers" size="5"/>
+        </div>
+        <div class="ds-divider"></div>
+        <div class="ds-divider"></div>
+        <div class="ds-divider"></div>
+        <div>
+          <label for="passwordminspecials" class="ds-expire-label" title=
+            "Reject passwords with fewer than this many special non-alphanumeric characters (passwordMinSpecials)."><b>Minimum Special Characters </b></label><input
+            class="ds-input" type="text" id="passwordminspecials" size="5"/>
+          <label for="passwordmin8bit" class="ds-expire-label" title=
+            "Reject passwords with fewer than this many 8-bit or multi-byte characters (passwordMin8Bit)."><b>Minimum 8-bit Characters </b></label><input
+            class="ds-input" type="text" id="passwordmin8bit" size="5"/>
+          <label for="passwordmaxrepeats" class="ds-expire-label" title=
+            "The maximum number of times the same character can sequentially appear in a password (passwordMaxRepeats)."><b>Maximum Number Of Repeated Characters </b></label><input
+            class="ds-input" type="text" id="passwordmaxrepeats" size="5"/>
+          <label for="passwordmincategories" class="ds-expire-label" title=
+            "The minimum number of character categories that a password must contain (categories are upper, lower, digit, special, and 8-bit) (passwordMinCategories)."><b>Minimum Required Character Categories </b></label><input
+            class="ds-input" type="text" id="passwordmincategories" size="5"/>
+          <label for="passwordmintokenlength" class="ds-expire-label" title=
+            "The smallest attribute value used when checking if the password contains any of the user's account information (passwordMinTokenLength)."><b>Minimum Token Length </b></label><input
+            class="ds-input" type="text" id="passwordmintokenlength" size="5"/>
+        </div>
+        <p></p>
       </div>
       <p></p>
+      <hr class="ds-hr">
+      <button type="submit" class="ds-button" title="Save global password policy settings">Save</button>
+      <p></p>
+      <p></p>
     </div>
-    <p></p>
-    <hr class="ds-hr">
-    <button type="submit" class="ds-button">Save</button>
-    <p></p>
-    <p></p>
 
-    <input type="button" class="accordion localpwp-accordion ds-agmt-wiz-button ds-accordion-spacing" id="localpwd-accordion" value="Local Password Policies &#9660;"/>
+    <input type="button" class="accordion localpwp-accordion ds-accordion-button ds-accordion-spacing" id="localpwd-accordion" value="Local Password Policies &#9660;" title=
+      "Configure User/Subtree local password policies"/>
     <div class="ds-accordion-panel">
-      <div class="ds-container3">
+      <div class="">
         <table id="passwd-policy-table" class="display ds-repl-table" cellspacing="0" width="100%">
           <thead>
             <tr class="ds-table-header">
@@ -379,7 +386,7 @@
     <p></p>
 
     <!-- Access logging -->
-    <input type="button" class="accordion log-accordion ds-agmt-wiz-button ds-accordion-spacing" id="access-accordion" value="Access Log Settings &#9660;"/>
+    <input type="button" class="accordion log-accordion ds-accordion-button ds-accordion-spacing" id="access-accordion" value="Access Log Settings &#9660;"/>
     <div class="ds-accordion-panel">
       <input type="checkbox" class="ds-config-checkbox" id="nsslapd-accesslog-logging-enabled" checked><label
         for="nsslapd-accesslog-logging-enabled" class="ds-label" title="Enable access logging (nsslapd-accesslog-logging-enabled)."> Enable Access Logging</label>
@@ -439,7 +446,7 @@
     </div>
 
     <!-- Error logging -->
-    <input type="button" class="accordion log-accordion ds-agmt-wiz-button ds-accordion-spacing" id="error-accordion" value="Errors Log Settings &#9660;"/>
+    <input type="button" class="accordion log-accordion ds-accordion-button ds-accordion-spacing" id="error-accordion" value="Errors Log Settings &#9660;"/>
     <div class="ds-accordion-panel">
       <input type="checkbox" class="ds-config-checkbox" id="nsslapd-errorlog-logging-enabled" checked><label
         for="nsslapd-errorlog-logging-enabled" class="ds-label" title="Enable error logging (nsslapd-errorlog-logging-enabled)."> Enable Error Logging</label>
@@ -510,7 +517,7 @@
     </div>
 
     <!-- Audit logging -->
-    <input type="button" class="accordion log-accordion ds-agmt-wiz-button ds-accordion-spacing" id="audit-accordion" value="Audit Log Settings &#9660;"/>
+    <input type="button" class="accordion log-accordion ds-accordion-button ds-accordion-spacing" id="audit-accordion" value="Audit Log Settings &#9660;"/>
     <div class="ds-accordion-panel">
       <input type="checkbox" class="ds-config-checkbox" id="nsslapd-auditlog-logging-enabled" checked><label
         for="nsslapd-auditlog-logging-enabled" class="ds-label" title="Enable audit logging (nsslapd-auditlog-logging-enabled)."> Enable Audit Logging</label>
@@ -557,7 +564,7 @@
     </div>
 
     <!-- Auditfail logging -->
-    <input type="button" class="accordion log-accordion ds-agmt-wiz-button ds-accordion-spacing" id="audit-accordion" value="Audit Failure Log Settings &#9660;"/>
+    <input type="button" class="accordion log-accordion ds-accordion-button ds-accordion-spacing" id="audit-accordion" value="Audit Failure Log Settings &#9660;"/>
     <div class="ds-accordion-panel">
       <input type="checkbox" class="ds-config-checkbox" id="nsslapd-auditfaillog-logging-enabled" checked><label
         for="nsslapd-auditfaillog-logging-enabled" class="ds-label" title="Enable audit failure logging (nsslapd-auditfaillog-logging-enabled)."> Enable Audit Failure Logging</label>
@@ -662,7 +669,7 @@
     </div>
     <p></p>
 
-    <input type="button" class="accordion adv-config-accordion ds-agmt-wiz-button ds-accordion-spacing" id="adv-config-accordion" value="Advanced Settings &#9660;"/>
+    <input type="button" class="accordion adv-config-accordion ds-accordion-button ds-accordion-spacing" id="adv-config-accordion" value="Advanced Settings &#9660;"/>
     <div class="ds-accordion-panel">
       <div class="ds-container">
         <div>
@@ -741,6 +748,97 @@
     </div>
   </div>
 
+  <!-- Modals/Popups/Wizards -->
+
+  <div id="create-inst" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Create Server Instance</b> <span class="close" id="create-inst-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="create-inst-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="create-inst-save" class="ds-button-right">Create Instance</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <div id="create-sasl-map" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Create SASL Mapping</b> <span class="close" id="create-sasl-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="create-sasl-map-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="create-sasl-map-save" class="ds-button-right">Create Mapping</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <div id="edit-sasl-map" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Create Sub Suffix</b> <span class="close" id="edit-sasl-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="edit-sasl-map-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="edit-sasl-map-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <div id="create-local-pwp" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Create Local Password Policy</b> <span class="close" id="create-local-pwp-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="create-local-pwp-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="create-local-pwp-save" class="ds-button-right">Create Policy</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+
+  <div id="edit-local-pwp" class="modal">
+    <form class="modal-content animate">
+      <div class="container">
+        <h2 id=""><b>Edit Local Password Policy</b> <span class="close" id="edit-local-pwp-close">&times;</span></h2>
+        <hr class="ds-hr">
+        
+        <div class="clearfix ds-container">
+          <div class="ds-panel-left">
+            <button type="button" id="edit-local-pwp-cancel" class="ds-button-left">Cancel</button>
+          </div>
+          <div class="ds-panel-right">
+            <button type="submit" id="edit-local-pwp-save" class="ds-button-right">Save</button>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
 </div>
 
 
-- 
2.13.6

