439 lines
15 KiB
HTML
Executable File
439 lines
15 KiB
HTML
Executable File
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<title>CouchDB Data Explorer</title>
|
||
<link rel="stylesheet" href="style/reset.css" media="screen">
|
||
<link rel="stylesheet" href="style/data-table.css" media="screen">
|
||
<link rel="stylesheet" href="style/style.css" media="screen">
|
||
<!-- only using jqueryui for draggable -- a lighter solution would be nice -->
|
||
<script type="text/javascript" src="../src/deps-min.js"></script>
|
||
<script type="text/javascript" src="../src/util.js"></script>
|
||
<script type="text/javascript" src="../src/costco.js"></script>
|
||
<script type="text/javascript" src="../src/recline.js"></script>
|
||
<script type="text/javascript" src="js/app.js"></script>
|
||
</head>
|
||
<body class="bod">
|
||
<div class="container">
|
||
<div class="menu-overlay" style="display: none; z-index: 101; "> </div>
|
||
<ul class="menu">
|
||
</ul>
|
||
<div id="header">
|
||
<a href="http://github.com/maxogden/recline"><img id="couchLogo" src="images/couch.png"/></a>
|
||
<div class="project-title"></div>
|
||
<div class="project-actions"></div>
|
||
<div class="project-controls"></div>
|
||
</div>
|
||
<div class="main_content">
|
||
<div class="left-panel"></div>
|
||
<div class="right-panel"></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="notification-container">
|
||
<div id="notification">
|
||
<img src="images/small-spinner.gif" class="notification-loader"><span id="notification-message">Loading...</span>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="dialog-overlay" style="display: none; z-index: 101; "> </div>
|
||
<div class="dialog ui-draggable" style="display: none; z-index: 102; top: 101px; ">
|
||
<div class="dialog-frame" style="width: 700px; visibility: visible; ">
|
||
<div class="dialog-content dialog-border"></div>
|
||
</div>
|
||
</div>
|
||
|
||
<script type='text/mustache' class="busyTemplate">
|
||
<div id="loading-message">
|
||
<img src="images/large-spinner.gif">
|
||
<span> Working...</span>
|
||
</div>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="controlsTemplate">
|
||
<a id="logged-in-status" href="JavaScript:void(0);" class="secondary">{{text}}</a>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="actionsTemplate">
|
||
<a class="button" data-action="import" href="javascript:{}"><span data-action="import" class="button-menu">Import</span></a>
|
||
<!-- <a class="button" data-action="edit" href="javascript:{}"><span data-action="transform" class="button-menu">Edit</span></a> -->
|
||
<a class="button" data-action="export" href="javascript:{}"><span data-action="export" class="button-menu">Export</span></a>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="importActionsTemplate">
|
||
<li><a data-action="urlImport" class="menuAction" href="JavaScript:void(0);">JSON API</a></li>
|
||
<li><a data-action="pasteImport" class="menuAction" href="JavaScript:void(0);">Paste JSON</a></li>
|
||
<li><a data-action="uploadImport" class="menuAction" href="JavaScript:void(0);">Upload CSV</a></li>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="exportActionsTemplate">
|
||
<li><a data-action="csv" class="menuAction" href="JavaScript:void(0);">CSV</a></li>
|
||
<li><a data-action="json" class="menuAction" href="JavaScript:void(0);">JSON</a></li>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="transformActionsTemplate">
|
||
<li><a data-action="transform" class="menuAction" href="JavaScript:void(0);">Global transform...</a></li>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="columnActionsTemplate">
|
||
<li><a data-action="bulkEdit" class="menuAction" href="JavaScript:void(0);">Transform...</a></li>
|
||
<li><a data-action="deleteColumn" class="menuAction" href="JavaScript:void(0);">Delete this column</a></li>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="rowActionsTemplate">
|
||
<li><a data-action="deleteRow" class="menuAction" href="JavaScript:void(0);">Delete this row</a></li>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="titleTemplate"><span id="project-name-button" class="app-path-section">{{db_name}}</span></script>
|
||
<script type='text/mustache' class="bulkTemplate">http://{{host}}/{{db_name}}/_bulk_docs</script>
|
||
<script type='text/mustache' class="generatingTemplate"><div class="loading">Loading...</div></script>
|
||
|
||
<script type='text/mustache' class="tableContainerTemplate">
|
||
<div id="tool-panel">
|
||
<div id="summary-bar">
|
||
<span id="docCount"></span>
|
||
</div>
|
||
<div id="download">
|
||
</div>
|
||
</div>
|
||
<div id="view-panel">
|
||
<div class="viewpanel-header">
|
||
<div class="viewpanel-pagesize">
|
||
<span>
|
||
Show:
|
||
</span>
|
||
<a href="javascript:{}" class="viewPanel-pagingControls-page action">5</a>
|
||
<a href="javascript:{}" class="viewPanel-pagingControls-page selected">10</a>
|
||
<a href="javascript:{}" class="viewPanel-pagingControls-page action">25</a>
|
||
<a href="javascript:{}" class="viewPanel-pagingControls-page action">50</a>
|
||
<span>
|
||
rows
|
||
</span>
|
||
</div>
|
||
<div class="viewpanel-sorting">
|
||
</div>
|
||
<div class="viewpanel-paging">
|
||
<a href="javascript:{}" class="first inaction">« first</a>
|
||
<a href="javascript:{}" class="previous inaction">‹ previous</a>
|
||
<span class="viewpanel-pagingcount">
|
||
1 - 10
|
||
</span>
|
||
<a href="javascript:{}" class="next action">next ›</a>
|
||
<a href="javascript:{}" class="last action">last »</a>
|
||
</div>
|
||
</div>
|
||
<div class="data-table-container">
|
||
</div>
|
||
</div>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="dataTableTemplate">
|
||
<table class="data-table" cellspacing="0">
|
||
<tbody>
|
||
<tr>
|
||
{{#notEmpty}}<td class="column-header"></td>{{/notEmpty}}
|
||
{{#headers}}
|
||
<td class="column-header">
|
||
<div class="column-header-title">
|
||
<a class="column-header-menu"></a>
|
||
<span class="column-header-name">{{.}}</span>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
{{/headers}}
|
||
</tr>
|
||
{{#rows}}
|
||
<tr data-id="{{id}}">
|
||
<td><a class="row-header-menu"></a></td>
|
||
{{#cells}}
|
||
<td data-header="{{header}}">
|
||
<div class="data-table-cell-content">
|
||
<a href="javascript:{}" class="data-table-cell-edit" title="Edit this cell"> </a>
|
||
<div class="data-table-cell-value">{{value}}</div>
|
||
</div>
|
||
</td>
|
||
{{/cells}}
|
||
</tr>
|
||
{{/rows}}
|
||
</tbody>
|
||
</table>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="signInTemplate">
|
||
<div class="dialog-header">
|
||
Sign in
|
||
</div>
|
||
<div class="dialog-body">
|
||
<div class="grid-layout layout-tight layout-full">
|
||
<form name="sign-in-form" id="sign-in-form">
|
||
<table class="form-table">
|
||
<tbody>
|
||
<tr>
|
||
<th>
|
||
<label for="username">Username</label>
|
||
</th>
|
||
<td>
|
||
<input type="text" size="25" id="username-input" name="username">
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th>
|
||
<label for="password">Password</label>
|
||
</th>
|
||
<td>
|
||
<input type="password" size="25" id="password-input" name="password">
|
||
</td>
|
||
</tr>
|
||
<input type="submit" style="height: 0px; width: 0px; border: none; padding: 0px;" hidefocus="true" />
|
||
</tbody>
|
||
</table>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
<div class="dialog-footer">
|
||
<button class="okButton button"> Sign in </button>
|
||
<button class="cancelButton button">Cancel</button>
|
||
</div>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="transformTemplate">
|
||
<div class="dialog-header">
|
||
Recursive transform on all rows
|
||
</div>
|
||
<div class="dialog-body">
|
||
<div class="grid-layout layout-full">
|
||
<p class="info">Traverse and transform objects by visiting every node on a recursive walk using <a href="https://github.com/substack/js-traverse">js-traverse</a>.</p>
|
||
<table>
|
||
<tbody>
|
||
<tr>
|
||
<td colspan="4">
|
||
<div class="grid-layout layout-tight layout-full">
|
||
<table rows="4" cols="4">
|
||
<tbody>
|
||
<tr style="vertical-align: bottom;">
|
||
<td colspan="4">
|
||
Expression
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="3">
|
||
<div class="input-container">
|
||
<textarea class="expression-preview-code"></textarea>
|
||
</div>
|
||
</td>
|
||
<td class="expression-preview-parsing-status" width="150" style="vertical-align: top;">
|
||
No syntax error.
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="4">
|
||
<div id="expression-preview-tabs" class="refine-tabs ui-tabs ui-widget ui-widget-content ui-corner-all">
|
||
<span>Preview</span>
|
||
<div id="expression-preview-tabs-preview" class="ui-tabs-panel ui-widget-content ui-corner-bottom">
|
||
<div class="expression-preview-container" style="width: 652px; ">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
<div class="dialog-footer">
|
||
<button class="okButton button"> Update All </button>
|
||
<button class="cancelButton button">Cancel</button>
|
||
</div>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="urlImportTemplate">
|
||
<div class="dialog-header">
|
||
Download and import from a URL or API
|
||
</div>
|
||
<div class="dialog-body">
|
||
<div class="grid-layout layout-full">
|
||
<p class="info">
|
||
Currently only <a href="http://en.wikipedia.org/wiki/JSONP">JSONP</a>-enabled APIs are supported, for example:
|
||
</p>
|
||
<p class="info">
|
||
<code>https://api.github.com/repos/maxogden/recline/commits</code>
|
||
</p>
|
||
<form name="api-import-form" id="sign-in-form">
|
||
<table class="form-table">
|
||
<tbody>
|
||
<tr>
|
||
<th>
|
||
<label for="url">URL</label>
|
||
</th>
|
||
<td>
|
||
<input type="text" size="65" id="url-input" name="url">
|
||
</td>
|
||
</tr>
|
||
<input type="submit" style="height: 0px; width: 0px; border: none; padding: 0px; display: none;" hidefocus="true" />
|
||
</tbody>
|
||
</table>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
<div class="dialog-footer">
|
||
<button class="okButton button"> Fetch </button>
|
||
<button class="cancelButton button">Cancel</button>
|
||
</div>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="pasteImportTemplate">
|
||
<div class="dialog-header">
|
||
Import raw copy & pasted JSON
|
||
</div>
|
||
<div class="dialog-body">
|
||
<div class="grid-layout layout-tight layout-full">
|
||
<p class="info">
|
||
Paste in an array of JSON objects representing the documents that you would like to insert into the database.
|
||
</p>
|
||
<p class="info">
|
||
<code>[{"woo": "pizza"}, {"tasty": "muffins"}]</code>
|
||
</p>
|
||
<div class="menu-container data-table-cell-editor">
|
||
<textarea class="data-table-cell-copypaste-editor" bind="textarea">{{value}}</textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="dialog-footer">
|
||
<button class="okButton button"> Import </button>
|
||
<button class="cancelButton button">Cancel</button>
|
||
</div>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="uploadImportTemplate">
|
||
<div class="dialog-header">
|
||
Upload and import a CSV
|
||
</div>
|
||
<div class="dialog-body">
|
||
<div class="grid-layout layout-tight layout-full">
|
||
<strong>Please choose a CSV file to upload:</strong><br />
|
||
<input type="file" id="file" />
|
||
</div>
|
||
</div>
|
||
<div class="dialog-footer">
|
||
<button class="okButton button"> Import </button>
|
||
<button class="cancelButton button">Cancel</button>
|
||
</div>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="bulkEditTemplate">
|
||
<div class="dialog-header">
|
||
Functional transform on column {{name}}
|
||
</div>
|
||
<div class="dialog-body">
|
||
<div class="grid-layout layout-tight layout-full">
|
||
<table>
|
||
<tbody>
|
||
<tr>
|
||
<td colspan="4">
|
||
<div class="grid-layout layout-tight layout-full">
|
||
<table rows="4" cols="4">
|
||
<tbody>
|
||
<tr style="vertical-align: bottom;">
|
||
<td colspan="4">
|
||
Expression
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="3">
|
||
<div class="input-container">
|
||
<textarea class="expression-preview-code"></textarea>
|
||
</div>
|
||
</td>
|
||
<td class="expression-preview-parsing-status" width="150" style="vertical-align: top;">
|
||
No syntax error.
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="4">
|
||
<div id="expression-preview-tabs" class="refine-tabs ui-tabs ui-widget ui-widget-content ui-corner-all">
|
||
<span>Preview</span>
|
||
<div id="expression-preview-tabs-preview" class="ui-tabs-panel ui-widget-content ui-corner-bottom">
|
||
<div class="expression-preview-container" style="width: 652px; ">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
<div class="dialog-footer">
|
||
<button class="okButton button"> Update All </button>
|
||
<button class="cancelButton button">Cancel</button>
|
||
</div>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="cellEditorTemplate">
|
||
<div class="menu-container data-table-cell-editor">
|
||
<textarea class="data-table-cell-editor-editor" bind="textarea">{{value}}</textarea>
|
||
<div id="data-table-cell-editor-actions">
|
||
<div class="data-table-cell-editor-action">
|
||
<button class="okButton button">Update</button>
|
||
</div>
|
||
<div class="data-table-cell-editor-action">
|
||
<button class="cancelButton button">Cancel</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="jsonTreeTemplate">
|
||
<div class="dialog-header">
|
||
Please highlight the array of JSON objects to convert to documents.
|
||
</div>
|
||
<div class="dialog-body">
|
||
<div id="document-container">
|
||
<div id="document-editor"></div>
|
||
</div>
|
||
</div>
|
||
<div class="dialog-footer">
|
||
<button class="okButton button"> Import </button>
|
||
<button class="cancelButton button">Cancel</button>
|
||
</div>
|
||
</script>
|
||
|
||
<script type='text/mustache' class="editPreviewTemplate">
|
||
<div class="expression-preview-table-wrapper">
|
||
<table>
|
||
<tbody>
|
||
<tr>
|
||
<td class="expression-preview-heading">
|
||
before
|
||
</td>
|
||
<td class="expression-preview-heading">
|
||
after
|
||
</td>
|
||
</tr>
|
||
{{#rows}}
|
||
<tr>
|
||
<td class="expression-preview-value">
|
||
{{before}}
|
||
</td>
|
||
<td class="expression-preview-value">
|
||
{{after}}
|
||
</td>
|
||
</tr>
|
||
{{/rows}}
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</script>
|
||
</body>
|
||
</html>
|