summaryrefslogtreecommitdiff
path: root/1.1.x/share/www/replicator.html
diff options
context:
space:
mode:
Diffstat (limited to '1.1.x/share/www/replicator.html')
-rw-r--r--1.1.x/share/www/replicator.html184
1 files changed, 184 insertions, 0 deletions
diff --git a/1.1.x/share/www/replicator.html b/1.1.x/share/www/replicator.html
new file mode 100644
index 00000000..16c0940b
--- /dev/null
+++ b/1.1.x/share/www/replicator.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html>
+<!--
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+
+-->
+<html lang="en">
+ <head>
+ <title>Replicator</title>
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
+ <link rel="stylesheet" href="style/layout.css?0.11.0" type="text/css">
+ <link rel="stylesheet" href="style/jquery-ui-1.8.11.custom.css" type="text/css">
+ <script src="script/json2.js"></script>
+ <script src="script/sha1.js"></script>
+ <script src="script/jquery.js?1.4.2"></script>
+ <script src="script/jquery.couch.js?0.11.0"></script>
+ <script src="script/jquery.dialog.js?0.11.0"></script>
+ <script src="script/futon.js?0.11.0"></script>
+ <script src="script/jquery-ui-1.8.11.custom.min.js"></script>
+ <script>
+ $(document).ready(function() {
+ var allDatabases;
+
+ $("fieldset input[type=radio]").click(function() {
+ var radio = this;
+ var fieldset = $(this).parents("fieldset").get(0);
+ $("input[type=text]", fieldset).each(function() {
+ this.disabled = radio.value == "local";
+ if (!this.disabled) this.focus();
+ });
+ $('.local', fieldset).each(function() {
+ this.disabled = radio.value == "remote";
+ if (!this.disabled) this.focus();
+ });
+ });
+
+ var getDatabases = function() {
+ $.couch.allDbs({
+ success: function(dbs) {
+ allDatabases = dbs.sort();
+
+ $("fieldset select").each(function() {
+ var select = this;
+ $.each(dbs, function(idx, dbName) {
+ $("<option></option>").text(dbName).appendTo(select);
+ });
+ select.selectedIndex = 0;
+ });
+
+ $('#to_name').autocomplete({ source: dbs });
+ }
+ });
+ };
+ getDatabases();
+
+ $("button#swap").click(function() {
+ var fromName = $("#source select").val();
+ $("#source select").val($("#target select").val());
+ $("#target select").val(fromName);
+
+ var fromUrl = $("#source input[type=text]").val();
+ $("#source input[type=text]").val($("#target input[type=text]").val());
+ $("#target input[type=text]").val(fromUrl);
+
+ var fromType = $("#source input[type=radio]").filter(function() {
+ return this.checked;
+ }).val();
+ var toType = $("#target input[type=radio]").filter(function() {
+ return this.checked;
+ }).val();
+ $("#source input[value=" + toType + "]").click();
+ $("#target input[value=" + fromType + "]").click();
+
+ $("#replicate").get(0).focus();
+ return false;
+ });
+
+ $("button#replicate").click(function() {
+ $("#records tbody.content").empty();
+ var targetIsLocal = $('#to_local:checked').length > 0;
+ var source = $("#from_local")[0].checked ? $("#from_name").val() : $("#from_url").val();
+ var target = targetIsLocal ? $("#to_name").val() : $("#to_url").val();
+ var repOpts = {};
+
+ if (targetIsLocal && $.inArray(target, allDatabases) < 0) {
+ if(!confirm('This will create a database named '+target+'. Ok?')) {
+ return;
+ }
+ else {
+ repOpts.create_target = true;
+ }
+ }
+
+ if ($("#continuous")[0].checked) {
+ repOpts.continuous = true;
+ }
+ $.couch.replicate(source, target, {
+ success: function(resp) {
+ if (resp._local_id) {
+ $("<tr><th></th></tr>")
+ .find("th").text(JSON.stringify(resp)).end()
+ .appendTo("#records tbody.content");
+ $("#records tbody tr").removeClass("odd").filter(":odd").addClass("odd");
+ } else {
+ $.each(resp.history, function(idx, record) {
+ $("<tr><th></th></tr>")
+ .find("th").text(JSON.stringify(record)).end()
+ .appendTo("#records tbody.content");
+ });
+ $("#records tbody tr").removeClass("odd").filter(":odd").addClass("odd");
+ $("#records tbody.footer td").text("Replication session " + resp.session_id);
+
+ if (repOpts.create_target) {
+ getDatabases();
+ }
+ }
+ }
+ }, repOpts);
+ });
+ });
+ </script>
+ </head>
+ <body><div id="wrap">
+ <h1>
+ <a href="index.html">Overview</a>
+ <strong>Replicator</strong>
+ </h1>
+ <div id="content">
+
+ <form id="replicator">
+ <fieldset id="source">
+ <legend>Replicate changes from:</legend>
+ <p>
+ <input type="radio" id="from_local" name="from_type" value="local" checked>
+ <label for="from_local">Local Database: </label>
+ <select id="from_name" name="from_name" class="local"></select>
+ </p><p>
+ <input type="radio" id="from_to_remote" name="from_type" value="remote">
+ <label for="from_to_remote">Remote database: </label>
+ <input type="text" id="from_url" name="from_url" size="30" value="http://" disabled>
+ </p>
+ </fieldset>
+ <p class="swap"><button id="swap" tabindex="99">⇄</button></p>
+ <fieldset id="target">
+ <legend>to:</legend>
+ <p>
+ <input type="radio" id="to_local" name="to_type" value="local" checked>
+ <label for="to_local">Local database: </label>
+ <input type="text" id="to_name" name="to_name" class="local"></select>
+ </p><p>
+ <input type="radio" id="to_remote" name="to_type" value="remote">
+ <label for="to_remote">Remote database: </label>
+ <input type="text" id="to_url" name="to_url" size="30" value="http://" disabled>
+ </p>
+ </fieldset>
+ <p class="actions">
+ <label><input type="checkbox" name="continuous" value="continuous" id="continuous"> Continuous</label>
+ <button id="replicate" type="button">Replicate</button>
+ </p>
+ </form>
+
+ <table id="records" class="listing" cellspacing="0">
+ <caption>Replication History</caption>
+ <thead><tr>
+ <th>Event</th>
+ </tr></thead>
+ <tbody class="content"></tbody>
+ <tbody class="footer"><tr>
+ <td colspan="4">No replication</td>
+ </tr></tbody>
+ </table>
+
+ </div>
+ </div></body>
+</html>