All Projects → dragos-constantin-stoica → designeditor

dragos-constantin-stoica / designeditor

Licence: other
Couchdb _design documents editor

Programming Languages

HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to designeditor

Todo Apps
Sample ToDo application (various languages) running on IBM Cloud
Stars: ✭ 195 (+427.03%)
Mutual labels:  couchdb
couchbase-java-importer
This is a pluggable importer for Couchbase
Stars: ✭ 13 (-64.86%)
Mutual labels:  couchdb
redgeoff-couchdb-docker
CouchDB in a docker container
Stars: ✭ 12 (-67.57%)
Mutual labels:  couchdb
Mycouch
MyCouch is the asynchronous CouchDB client for .NET
Stars: ✭ 211 (+470.27%)
Mutual labels:  couchdb
Rxdb
🔄 A client side, offline-first, reactive database for JavaScript Applications
Stars: ✭ 16,670 (+44954.05%)
Mutual labels:  couchdb
kanban-board-app
Kanban style task management board app
Stars: ✭ 118 (+218.92%)
Mutual labels:  couchdb
Firecamp
Serverless Platform for the stateful services
Stars: ✭ 194 (+424.32%)
Mutual labels:  couchdb
jet-demos
Demos for Webix Jet
Stars: ✭ 26 (-29.73%)
Mutual labels:  webix
NoSQLDataEngineering
NoSQL Data Engineering
Stars: ✭ 25 (-32.43%)
Mutual labels:  couchdb
CouchDB2
CouchDB v2.x Python 3 interface in a single module. Also a command line tool.
Stars: ✭ 19 (-48.65%)
Mutual labels:  couchdb
Openag brain
ROS package for controlling an OpenAg food computer
Stars: ✭ 221 (+497.3%)
Mutual labels:  couchdb
Pouchdb
🐨 - PouchDB is a pocket-sized database.
Stars: ✭ 14,625 (+39427.03%)
Mutual labels:  couchdb
offPIM
Decentralized, Offline-first, Personal Information Manager (PIM) using PouchDB/CouchDB. Includes task-, note-, and contact-management, as well as journaling.
Stars: ✭ 63 (+70.27%)
Mutual labels:  couchdb
Kivik
Kivik provides a common interface to CouchDB or CouchDB-like databases for Go and GopherJS.
Stars: ✭ 200 (+440.54%)
Mutual labels:  couchdb
couch hack week
Rust CouchDB implementation for Cloudant hackweek
Stars: ✭ 68 (+83.78%)
Mutual labels:  couchdb
Couchdb Docker
Semi-official Apache CouchDB Docker images
Stars: ✭ 194 (+424.32%)
Mutual labels:  couchdb
angular2-demo
Demo of Webix usage with Angular 2
Stars: ✭ 18 (-51.35%)
Mutual labels:  webix
drummer
Offline-first drum machine
Stars: ✭ 19 (-48.65%)
Mutual labels:  couchdb
trackingco.de
minimal and loginless web analytics
Stars: ✭ 32 (-13.51%)
Mutual labels:  couchdb
couchdb-pkg
Apache CouchDB Packaging support files
Stars: ✭ 24 (-35.14%)
Mutual labels:  couchdb

designeditor

Couchdb _design documents editor, and some other nice features.

Note this editor uses parts or full code from:

  • jquery.couch.js
  • couch.js
  • Futon CouchDB
  • jquery EasyUI
  • Ace Editor
  • jsbeautifier
  • JSZip
  • underscore.js

Introduction

This application was build to leverage the basic code editor that is built in CouchDB. We started using CouchDB in 2012 and we faced an inflation of _design docs with associated views, list, shows etc and the actual tool was no more answering to our needs so we build a tool that is simple, included in CouchDB and allows to manage _design docs globally.

Enjoy using it, as we do!

How to install?

  1. Install Appzip https://github.com/dragos-constantin-stoica/designeditor/tree/appzip
  2. Clone this repository (git clone git://github.com/dragos-constantin-stoica/designeditor.git)
  3. Publish design.zip with Appzip
  4. Open you favorite web browser and go to: http://localhost:5984/designeditor/_design/editor/index.html
  5. Enjoy!

How to use it?

The application has 3 main tabs:

  • Databases,
  • Design Document Editor and
  • Application Log.

There is a clickable icon on the right most side with a menu:

  • Server Log: opens in new tab CouchDb server log. You have a refresh button on the tab to reload the server log,
  • Server Status: opens in new tab the list of active tasks on the CouchDB server,
  • Snippets: opens in new tab snippets that can be run from the browser. CAUTION! The execution is synchronous and may block the browser if the script takes too long to complete, and
  • AppZip integration: you can publish couchapps in zip format with this tool
  • About.

Aftre susccessfully loading the applcation, you will see the list of databases loaded intro the database grid. You have a contextual menu for each database row. You have a global database menu:

  • New Database: creates a new empty database
  • Replicator: does the replication. You can replicate only some documentes or/and use filters with parameters
  • Refresh: reload all local databases intro the database grid

The context menu for database

  • Design Documents: loads all design documents (_design/) into the Design Documents tab
  • Compact Database: compacts the database. CAUTION! All versions of the documents will be deleted but last -- the only to be kept will be kept. Do not perform this operation on production environments.
  • Cleaup Views: clean up old index files. Useful for housekeeping of disk space
  • Rebuild All Index: run by workers, will rebuild for each view the index files. According to the number of view in the database, this operation may take time. The messages from workers will be visible in Application Log and you may check the indexer status in Server Status.
  • Open Document: open a document with a given doc._id. The document content is displayed in new tab as javascript and can be directly edited
  • New Document: creates a new document with specified ID or new UUID if no ID is specified. The you can edit the document.
  • Delete Database: deletes selected database. CAUTION! This operation is irreversible!

The content of Design Documents Editor

On the left side you have a collapsible panel with a tree grid contanting the list of all design documents from selected database. The following document types are recognized: views (map and reduce functions), lists, shows, updates, filters, validate_doc_update, and fulltext (index functions - used by Lucene). On the center - main area, you have a code editing zone. Each function (the code) is displayed in a new tab. Only for wiews you may rebuild the indexe from the context menu of the tree grid.

The tree grid is strucured as follows:

  • database (root)
    • design documents (by name)
      • validate doc update (function)
      • lists
      • views
      • updates
      • shows
      • filters
      • fulltext
        • functions (by name) with markers M: map, R: reduce, IDX: index

The tree grid has a main menu: Refresh, Collapse All, Expand All, Collapse level 1 (at design documents level) and Expand level 1

The context menu for design documents grid:

Level 0: database -- create new design document

Level 1: design document -- rename, duplicate, delete design document; change programming language; add new design document element (view, list, show, update, filter, fulltext, validate doc update)

Level 2: design document element -- new function element, delete function element, rebuild index and compact view available only for views. Validate doc update is a single function per design document so it is stored here and has the contextual menu of a function (see Level 3).

Level 3: function level -- rename, duplicate and delete function. For code editing just click on the leaf.

Replicator

The replication mechanism is similar with Futon and extended with design document ids to replicate and filters with parameters.

Basic replication:

Introduce database names for source and destination. Check if you want to create the destination database and if you want continuous replication.

Replication of selected documents only

Same as basic and you should check "Only selected documents". For local source database you may select the design documents, and you can introduce as a list of coma "," separated values the doc._id of documents you wanto to replicate.

Filtered replication

Same as basic replication and you should check "Replicate with Filter". For local source database you may select the filter. Optionaly you may complete query parameters in JSON format e.g. {"key":"value"}.

TODO

  1. implement security management (authentication, user and rights management)
  2. support for file attachment management
  3. display a list with all documents from a database
  4. display results for views, lists, shows
  5. IDE for couchapps - create and modify atteched web application files
  6. cancel replication (continuous) function

That's all for the moment. Please fork the code and help to complete this tool.

Thank you!

Happy CouchDB codding!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].