├── .htaccess
├── LICENSE
├── CONTRIBUTING.markdown
├── README.markdown
└── CHANGELOG.markdown
/.htaccess:
--------------------------------------------------------------------------------
1 |
2 | RewriteEngine On
3 |
4 | ## Uncomment and update the path if Genghis is not in your web root.
5 | # RewriteBase /genghis
6 |
7 | ## Use pretty URLs
8 | RewriteCond %{REQUEST_FILENAME} !-f
9 | RewriteRule (.*) genghis.php/$1 [L,QSA]
10 |
11 |
12 |
13 | ## Specify default MongoDB servers
14 | # SetEnv GENGHIS_SERVERS admin:hunter2@mongo.dev;localhost
15 |
16 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 | Copyright (c) 2011 Justin Hileman
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy
5 | of this software and associated documentation files (the "Software"), to deal
6 | in the Software without restriction, including without limitation the rights
7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the Software is
9 | furnished to do so, subject to the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be included in all
12 | copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19 | OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
20 | OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/CONTRIBUTING.markdown:
--------------------------------------------------------------------------------
1 | # Contributions welcome!
2 |
3 | First, I'd like to apologize to the PHP devs for making you mess with Ruby. But it's for the best.
4 |
5 |
6 | ## Development requirements
7 |
8 | You'll need Ruby. Ruby 1.9.x would be best. After you've got Ruby, clone the repo and install dependencies:
9 |
10 | ```sh
11 | git clone https://github.com/bobthecow/genghis
12 | cd genghis
13 | git submodule update --init
14 | gem install bundle
15 | bundle install
16 | ```
17 |
18 |
19 | ## Building Genghis
20 |
21 | Genghis is... a bit weird.
22 |
23 | * The two app files, `genghis.rb` and `genghis.php` are built via Rake. To regenerate them, run `rake build` from the
24 | project directory.
25 | * If you just want to build one or the other, you can run `rake build:php` or `rake build:rb`.
26 | * For development, it's usually best to use non-minified assets. Run `rake build NOCOMPRESS=1` to skip minification.
27 | * Be sure to commit the compiled `genghis.rb` and `genghis.php` along with your source changes.
28 |
29 |
30 | ## Running the API test suite
31 |
32 | If you're changing the API, you'll need to ensure that the API test suite passes. If you're adding a new feature or
33 | fixing a bug, you should add corresponding tests as well.
34 |
35 | To run the test suite, you'll need PHP 5.4+ and a Mongo instance running on `localhost`.
36 |
37 | ```sh
38 | rspec
39 | ```
40 |
41 | If you don't have PHP 5.4+, you can test just the Ruby API by editing `spec/spec_helper.rb` and removing `:php`
42 | from the backend list:
43 |
44 | ```diff
45 | --- a/spec/spec_helper.rb
46 | +++ b/spec/spec_helper.rb
47 | @@ -5,7 +5,7 @@ require_relative '../genghis.rb'
48 |
49 | RSpec.configure do |config|
50 | def genghis_backends
51 | - [:php, :ruby]
52 | + [:ruby]
53 | end
54 |
55 | def find_available_port
56 | ```
57 |
58 |
59 | ## Opening a pull request
60 |
61 | You can do some things to increase the chance that your pull request is accepted the first time:
62 |
63 | * Open all pull requests against the `develop` branch.
64 | * Submit one pull request per fix or feature.
65 | * To help with that, do your work in a feature branch (e.g. `feature/my-alsome-feature`).
66 | * Follow the conventions you see used in the project. This is especially important when switching between languages,
67 | since Genghis is essentially a Ruby server, an PHP server, and a JavaScript client. Make your code look like the code
68 | around it.
69 | * Write API tests that fail without your code, and pass with it.
70 | * Don't bump version numbers. Those will be updated — per [semver](http://semver.org) — once your change is merged into
71 | `master`.
72 | * Update any documentation: docblocks, README, etc.
73 | * ... Don't update the wiki until your change is merged and released, but make a note in your pull request so we don't
74 | forget.
75 |
--------------------------------------------------------------------------------
/README.markdown:
--------------------------------------------------------------------------------
1 | [Genghis](http://genghisapp.com)
2 | ================================
3 |
4 | The single-file MongoDB admin app, by [Justin Hileman](http://justinhileman.info).
5 |
6 | [](http://travis-ci.org/bobthecow/genghis) [](https://gemnasium.com/bobthecow/genghis)
7 |
8 | [](http://genghisapp.com)
9 |
10 | There are more ways to run Genghis than you can shake a stick at
11 | ----------------------------------------------------------------
12 |
13 |
14 | ### Standalone
15 |
16 | If you installed Genghis as a Ruby gem, running Genghis standalone is easy:
17 |
18 | ```
19 | $ genghisapp
20 | ```
21 |
22 | Now that it's running, you can use `genghisapp --kill` to stop it.
23 |
24 | **Windows users**: Due to [this bug](https://github.com/quirkey/vegas/issues/3) Genghis always runs in foreground mode.
25 |
26 | If you didn't go the gem route, you can still run `genghis.rb` standalone:
27 |
28 | ```
29 | $ ruby genghis.rb
30 | ```
31 |
32 | `genghis.php` can also be run as a PHP 5.4 CLI SAPI standalone server:
33 |
34 | ```
35 | $ php -S localhost:8000 genghis.php
36 | ```
37 |
38 |
39 | ### In your LAMP stack
40 |
41 | Simply drop `genghis.php` in a web-accessible directory on a LAMP server. Don't forget `.htaccess` for pretty URLs!
42 |
43 |
44 | ### With nginx and PHP-fpm (and friends)
45 |
46 | You'll need [some fancy config action](https://github.com/bobthecow/genghis/wiki), but it's fairly straightforward.
47 |
48 |
49 | ### In an existing Rack app
50 |
51 | For a super basic Rack config, use a `config.ru` file like this:
52 |
53 | ```rb
54 | require 'genghis'
55 |
56 | run Genghis::Server
57 | ```
58 |
59 | If you want to load Genghis on a subpath, possibly alongside other apps, it's easy to do with Rack's `URLMap`:
60 |
61 | ```rb
62 | require 'genghis'
63 |
64 | run Rack::URLMap.new \
65 | '/' => Your::App.new,
66 | '/genghis' => Genghis::Server.new
67 | ```
68 |
69 |
70 | ### With Rails 3
71 |
72 | You can even mount Genghis on a subpath in your existing Rails 3 app by adding `require 'genghis'` to the top of your
73 | routes file (or in an initializer) and then adding this to `routes.rb`:
74 |
75 | ```rb
76 | mount Genghis::Server.new, :at => '/genghis'
77 | ```
78 |
79 |
80 |
81 | Genghis Dependencies
82 | --------------------
83 |
84 |
85 | ### PHP
86 |
87 | You will need at least PHP 5.2 and [the PECL MongoDB driver](http://www.mongodb.org/display/DOCS/PHP+Language+Center).
88 |
89 |
90 | ### Ruby
91 |
92 | Genghis requires Ruby 1.8 or awesomer.
93 |
94 | The easiest way to install Genghis and all dependencies is via RubyGems:
95 |
96 | ```
97 | $ gem install genghisapp
98 | ```
99 |
100 | Or you could check out a local copy of the Git repo and install dependencies via Bundler:
101 |
102 | ```
103 | $ gem install bundler
104 | $ bundle install
105 | ```
106 |
107 |
108 |
109 | Configuration
110 | -------------
111 |
112 | Check [the Genghis wiki](https://github.com/bobthecow/genghis/wiki) for additional configuration information.
113 |
114 |
115 |
116 | License
117 | -------
118 |
119 | * Copyright 2011 [Justin Hileman](http://justinhileman.com)
120 | * Distributed under the [MIT License](http://creativecommons.org/licenses/MIT/)
121 |
122 |
123 | ### Genghis uses a number of amazing open source libraries, distributed under the following licenses
124 |
125 | * [Backbone.js][backbone] — MIT License
126 | * [CodeMirror][codemirror] — MIT-style License
127 | * [Esprima][esprima] — "Simplified" BSD License (2-clause)
128 | * [Hogan.js][hogan] — Apache License v2.0
129 | * [hoverIntent][hoverintent] — MIT or GPLv2 License
130 | * [jQuery][jquery] — MIT License
131 | * [KEYS.css][keyscss] — MIT License
132 | * [Modernizr][modernizr] — MIT or BSD (3-clause) License
133 | * [Mousetrap][mousetrap] — Apache License v2.0
134 | * [TableSorter][tablesorter] — MIT or GPLv2 License
135 | * [Twitter Bootstrap][bootstrap] — Apache License v2.0
136 | * [Underscore.js][underscore] — MIT License
137 |
138 | [backbone]: http://backbonejs.org
139 | [codemirror]: http://codemirror.net
140 | [esprima]: http://esprima.org
141 | [hogan]: http://twitter.github.com/hogan.js/
142 | [hoverintent]: http://cherne.net/brian/resources/jquery.hoverIntent.html
143 | [jquery]: http://jquery.com
144 | [keyscss]: http://michaelhue.com/keyscss
145 | [modernizr]: http://modernizr.com
146 | [mousetrap]: http://craig.is/killing/mice
147 | [tablesorter]: http://tablesorter.com
148 | [bootstrap]: http://twitter.github.com/bootstrap/
149 | [underscore]: http://underscorejs.org
150 |
--------------------------------------------------------------------------------
/CHANGELOG.markdown:
--------------------------------------------------------------------------------
1 | ## v2.3.11
2 |
3 | * [Fix #167][i167] — bug in rounding when displaying "humanized" sizes.
4 |
5 | [i167]: https://github.com/bobthecow/genghis/issues/167
6 |
7 |
8 | ## v2.3.10
9 |
10 | * [Fix #145][i145], [#148][i148] — work around rack-protection's misguided path decoding.
11 |
12 | [i145]: https://github.com/bobthecow/genghis/issues/145
13 | [i148]: https://github.com/bobthecow/genghis/issues/148
14 |
15 |
16 | ## v2.3.9
17 |
18 | * [Fix #135][i135] — error when entering a `new Date()` value in a document.
19 | * Fix (future) backwards compatibility breaks in the PHP Mongo driver (using `'safe' => true` with `MongoClient`).
20 |
21 | [i135]: https://github.com/bobthecow/genghis/issues/135
22 |
23 |
24 | ## v2.3.8
25 |
26 | * [Fix #130][i130] — Resolve bug creating or editing `ISODate` instances with years between 1 and 99.
27 | * Improve time rendering, prevent microsecond truncation.
28 |
29 | [i130]: https://github.com/bobthecow/genghis/issues/130
30 |
31 |
32 | ## v2.3.7
33 |
34 | * [Fix #126][i126] — Resolve bug editing non-ObjectId `_id` in Ruby 1.8.7.
35 |
36 | [i126]: https://github.com/bobthecow/genghis/issues/126
37 |
38 |
39 | ## v2.3.6
40 |
41 | * Change grippie cursor to `row-resize` — Thanks @Zatsugami.
42 | * Fix "unable to connect" errors for some driver versions (PHP backend) — Thanks @redexp.
43 | * [Fix #117][i117] — Update JSON gem dependency (Ruby backend).
44 | * [Fix #112][i112] — Add support for Sinatra v1.4.0 (Ruby backend).
45 | * Support latest Mongo driver version (Ruby backend).
46 | * Update to latest Bootstrap, CodeMirror, Esprima, Hogan.js, jQuery, Mousetrap and tablesorter vendor libraries.
47 |
48 | [i117]: https://github.com/bobthecow/genghis/issues/117
49 | [i112]: https://github.com/bobthecow/genghis/issues/112
50 |
51 |
52 | ## v2.3.5
53 |
54 | * Improve "remove server" button and confirmation dialog to clarify that this removes settings but not data.
55 | * Expose server error when adding duplicate collection (or GridFS collection) names.
56 | * [Fix #108][i108] — Don't add servers with malformed (or empty) DSNs.
57 |
58 | [i108]: https://github.com/bobthecow/genghis/issues/108
59 |
60 |
61 | ## v2.3.4
62 |
63 | * [Fix #100][i100] — Work around backwards compatibility break in `mongo` gem 1.8.4 (Ruby backend).
64 |
65 | [i100]: https://github.com/bobthecow/genghis/issues/100
66 |
67 |
68 | ## v2.3.3
69 |
70 | * [Fix #105][i105] — Fix bug introduced when rendering DB references.
71 |
72 | [i105]: https://github.com/bobthecow/genghis/issues/105
73 |
74 |
75 | ## v2.3.2
76 |
77 | * [Fix #103][i103] — Properly encode and decode API URI components in Backbone v1.0.
78 | * Clean up page title for non-ObjectId documents.
79 |
80 | [i103]: https://github.com/bobthecow/genghis/issues/103
81 |
82 |
83 | ## v2.3.1
84 |
85 | * [Fix #93][i93] — Skip `bson_ext` and `json` checks for JRuby, et. al.
86 | * Use an explicit ISO date string when saving ISODate values.
87 | * Update to the latest Backbone, Underscore, CodeMirror, jQuery, jQuery hoverIntent and Mousetrap library versions.
88 | * Switch to Rob Garrison's fork of tablesorter.
89 | * [Fix #96][i96] — Ensure document shows up in the editor in Opera.
90 |
91 | [i93]: https://github.com/bobthecow/genghis/issues/93
92 | [i96]: https://github.com/bobthecow/genghis/issues/96
93 |
94 |
95 | ## v2.3.0
96 |
97 | * [Fix #69][i69], [#74][i74] , [#84][i84] and [#91][i91] — Fix errors authenticating against a single database.
98 | * Add detailed database and collection size stats.
99 | * Friendlier "human" size rounding.
100 | * [Fix #89][i89] — Improve handling of databases with invalid names.
101 | * [Fix #90][i90] — Fix error loading server list after adding a malformed server DSN (PHP backend).
102 | * [Fix #81][i81] — Suppress dependency version warnings for (really) old versions of rubygems.
103 | * Fix various and sundry compile errors and edge cases.
104 | * Bump Bootstrap and Mousetrap library versions.
105 |
106 | [i69]: https://github.com/bobthecow/genghis/issues/69
107 | [i74]: https://github.com/bobthecow/genghis/issues/74
108 | [i81]: https://github.com/bobthecow/genghis/issues/81
109 | [i84]: https://github.com/bobthecow/genghis/issues/84
110 | [i89]: https://github.com/bobthecow/genghis/issues/89
111 | [i90]: https://github.com/bobthecow/genghis/issues/90
112 | [i91]: https://github.com/bobthecow/genghis/issues/91
113 |
114 |
115 | ## v2.2.2
116 |
117 | * Fix vertical position of GridFS file creation dialog.
118 | * Pre-fill default `fs` GridFS collection name.
119 | * Add a hotkey for creating a new GridFS collection.
120 | * Improve "create" user experience in tabular views.
121 | * [Fix #79][i79] — Improve hotkey handling.
122 | * Fix disappearing line numbers in editors after using big search box (let defaults stay default).
123 | * Housekeeping.
124 |
125 | [i79]: https://github.com/bobthecow/genghis/issues/79
126 |
127 |
128 | ## v2.2.1
129 |
130 | * Visual refinements.
131 | * The "Restart required" message after installing `bson_ext` should be "info" not "warning"
132 | level (Ruby backend).
133 | * [Fix #78][i78] — error editing and deleting non-ObjectId `_id` values (Ruby backend).
134 | * Add "Add GridFS collection" button to Collections view.
135 |
136 | [i78]: https://github.com/bobthecow/genghis/issues/78
137 |
138 |
139 | ## v2.2.0
140 |
141 | New!
142 |
143 | * Add GridFS upload, drag and drop, navigation and download support.
144 | * Update to v1.8.x MongoDB driver (Ruby backend).
145 |
146 | Bug fixes:
147 |
148 | * [Fix #64][i64] — Allow creating a document with an explicit `_id`.
149 | * Handle Backbone weirdness in docs with both `_id` and `id` properties.
150 | * Fix indent levels in documents with empty objects.
151 | * Stop rejecting all `system*` collections (Ruby backend) — Thanks @ys.
152 | * [Fix #71][i71] — Handle non-ObjectID DBRefs more gracefully.
153 | * [Fix #72][i72] — Surface server error responses when searching.
154 | * Surface even more server error messages.
155 |
156 | Improvements:
157 |
158 | * [Fix #41][i41] — Add an "updated but not restarted" info message (Ruby backend).
159 | * Bump Bootstrap, CodeMirror, Esprima, Hogan.js and Hotkeys vendor libraries —
160 | faster parsing, highlighting and rendering!
161 | * Update to latest versions of jQuery and Underscore.js.
162 | * [Fix #64][i64] — Show an error message when trying to update an `_id` property.
163 | * Surface more error notifications when server goes away and other error cases.
164 | * Handle parse errors in navbar search box.
165 | * Remove dependency on Apprise.
166 | * Update Travis CI config so continuous integration builds are super-ultra-fast!
167 | * Better optimized CSS selectors — shorter selectors, cleaner inheritance, smaller CSS files.
168 | * Detect when `bson_ext` has been installed but `genghisapp` needs a restart (Ruby backend).
169 | * Update `bson_ext` installation nag to include a version number (Ruby backend).
170 | * [Fix #73][i73] — Authenticate against `admin` DB if none is specified (Ruby backend).
171 | * Improve authentication failure error messagine (Ruby backend).
172 | * Improve encoding handling for non-ascii characters in JavaScript assets.
173 | * Ensure that all PHP warnings and notices are propagated to the frontend (PHP backend).
174 |
175 | [i64]: https://github.com/bobthecow/genghis/issues/64
176 | [i71]: https://github.com/bobthecow/genghis/issues/71
177 | [i72]: https://github.com/bobthecow/genghis/issues/72
178 | [i41]: https://github.com/bobthecow/genghis/issues/41
179 | [i73]: https://github.com/bobthecow/genghis/issues/73
180 |
181 |
182 | ## v2.1.6
183 |
184 | * [Fix #55][i55] — Better heuristic for guessing document creation date from ObjectId.
185 | * Catch more connection auth errors (Ruby backend).
186 | * [Fix #16][i16] — Support authenticating directly against a DB for non-admin users.
187 | * [Fix #61][i61] — Make the welcome masthead vertically responsive.
188 | * Source code and asset cleanup.
189 |
190 | [i55]: https://github.com/bobthecow/genghis/issues/55
191 | [i16]: https://github.com/bobthecow/genghis/issues/16
192 | [i61]: https://github.com/bobthecow/genghis/issues/61
193 |
194 |
195 | ## v2.1.5
196 |
197 | * [Fix #46][i46] — Prevent connection errors from messing up `/servers` response (Ruby backend).
198 | * [Fix #42][i42] — Handle `connectTimeoutMS` and `ssl` server options (Ruby backend).
199 | * Cleaner mobile back buttons in WebKit browsers.
200 | * Disable submit button in paranoid db/collection confirm dialog until name is confirmed.
201 | * [Fix #56][i56] — Handle crazy characters in collection names (PHP backend).
202 |
203 | [i46]: https://github.com/bobthecow/genghis/issues/46
204 | [i42]: https://github.com/bobthecow/genghis/issues/42
205 | [i56]: https://github.com/bobthecow/genghis/issues/56
206 |
207 |
208 | ## v2.1.4
209 |
210 | * [Fix #49][i49] — Add warning messages for `magic_quotes_gpc` and `magic_quotes_runtime`.
211 | * [Fix #51][i51] — Work around PHP driver issue with non-scalar ids.
212 | * [Fix #51][i51] — Fix error handling documents with `null` identifiers.
213 | * Make document headers prettier for non-string and non-ObjectId identifiers.
214 | * Handle URI decoding and routing for non-string and non-ObjectId identifiers in some browsers.
215 | * [Fix #44][i44] — Saner connection timeouts.
216 | * [Fix #50][i50] — Fix "add server" regression in PHP.
217 | * [Fix #54][i54] — Never daemonize `genghisapp` for Windows users.
218 |
219 | [i49]: https://github.com/bobthecow/genghis/issues/49
220 | [i51]: https://github.com/bobthecow/genghis/issues/51
221 | [i51]: https://github.com/bobthecow/genghis/issues/51
222 | [i44]: https://github.com/bobthecow/genghis/issues/44
223 | [i50]: https://github.com/bobthecow/genghis/issues/50
224 | [i54]: https://github.com/bobthecow/genghis/issues/54
225 |
226 |
227 | ## v2.1.3
228 |
229 | * Optical correction for masthead background image aspect.
230 | * Use Adobe's beautiful Source Code Pro rather than relying on the default system monospace.
231 | * [Fix #48][i48] — ActiveRecord messes up `DateTime#to_time`.
232 | * [Fix #52][i52] — MongoDate parsing regression in PHP.
233 |
234 | [i48]: https://github.com/bobthecow/genghis/issues/48
235 | [i52]: https://github.com/bobthecow/genghis/issues/52
236 |
237 |
238 | ## v2.1.2
239 |
240 | * Get CI working with Travis, add build status badge to README.
241 | * Fix Genghis asset URI when mounted on a non-root route (thanks Johan Buts).
242 | * Swap out masthead bg image for some CSS3 hotness.
243 |
244 |
245 | ## v2.1.1
246 |
247 | * [Fix #38][i38] — JSON rendering weirdness with empty array properties.
248 | * [Fix #40][i40] — Ruby 1.8.7 regression.
249 |
250 | [i38]: https://github.com/bobthecow/genghis/issues/38
251 | [i40]: https://github.com/bobthecow/genghis/issues/40
252 |
253 |
254 | ## v2.1
255 |
256 | * [Fix #28][i28] — Handle BSON BinData properly in documents and ids.
257 | * [Fix #33][i33] — Remove unexpected collapsed document representation in edit mode.
258 | * [Fix #32][i32] — No more mixed-content warning when Genghis is running over SSL.
259 | * [Fix #35][i35] — No more "Add Server" fail in Ruby.
260 | * Fix — Handle connection auth errors more gracefully.
261 | * Fix — Query bug when running under PHP 5.4 SAPI CLI server.
262 | * Add ObjectId timestamps to document headers.
263 | * Add a sanity check for PHP `date.timezone` settings.
264 | * Add an asset cachebuster param so nobody has to force refresh after updating.
265 | * Add a full API spec. Yey tests!
266 | * Improve consistency between PHP and Ruby APIs. This update brought to you by Full Test Coverage.
267 | * Refactor PHP API. For the children.
268 | * Added `CONTRIBUTING.markdown`.
269 |
270 | [i28]: https://github.com/bobthecow/genghis/issues/28
271 | [i33]: https://github.com/bobthecow/genghis/issues/33
272 | [i32]: https://github.com/bobthecow/genghis/issues/32
273 | [i35]: https://github.com/bobthecow/genghis/issues/35
274 |
275 |
276 | ## v2.0.2
277 |
278 | * [Fix #29][i29] — Don't throw unexpected unary expression error when parsing negative numbers.
279 | * [Fix #22][i22] — Handle high badge counts on nav dropdown.
280 | * [Fix #30][i30] — Weird content clipping when editing really long documents.
281 |
282 | [i29]: https://github.com/bobthecow/genghis/issues/29
283 | [i22]: https://github.com/bobthecow/genghis/issues/22
284 | [i30]: https://github.com/bobthecow/genghis/issues/30
285 |
286 |
287 | ## v2.0.1
288 |
289 | * [Fix #26][i26] — Don't double-encode HTML entities in JSON output.
290 |
291 | [i26]: https://github.com/bobthecow/genghis/issues/26
292 |
293 |
294 | ## v2.0.0
295 |
296 | Brand new features:
297 |
298 | * Genghis doesn't require a webserver! Ghengis.php now runs as a standalone server with the PHP 5.4 CLI SAPI.
299 | * Genghis doesn't require PHP! Introducing Genghis.rb — Thanks @TylerBrock for doing all the work :)
300 | * Add super-simple RubyGems installation. `gem install genghisapp` is the new hotness.
301 | * Add a command line executable / daemon. You're just a `genghisapp` away. How rad is that?
302 | * Add support for pre-configured servers via the `$GENGHIS_SERVERS` environment variable.
303 | * Add support for replica sets, e.g. `localhost:12345/?replicaSet=production`.
304 |
305 | Tons of improvements:
306 |
307 | * Add this CHANGELOG. Meta.
308 | * Genghis now has a more refined visual style — greeeeen!
309 | * More responsive design (check it in a really small window!)
310 | * Epic document parsing and rendering overhaul:
311 | * Huge speed improvements. Rendering, collapsing and scrolling like wow.
312 | * Date, ObjectId and regular expression values (and more) are now formatted (and edited) for humans, not robots.
313 | * Documents are now displayed _and edited_ as Genghis Flavored JSON, a more lenient and intuitive superset of JSON.
314 | * UX Improvements:
315 | * Speed up the initial page load time.
316 | * Update code editor. The new one (CodeMirror) is lighter, faster, smaller and a cleaner implementation.
317 | * Add Cmd+Enter / Ctrl+Enter keyboard shortcut for saving the document being edited.
318 | * Prevent "new document" modal from closing on background click.
319 | * Better "keyboard shortcuts" dialog on smaller screens.
320 | * Require database name confirmation rather than DELETE before removing a db.
321 | * Collection removal is paranoid as well: it also requires confirmation before removing.
322 | * Restore spinning states to most sections — a spinner will show rather than displaying incorrect or outdated info.
323 | * Expando-matic search box. No more squinting or scrolling to see your massive queries.
324 | * Update Bootstrap (2.1.0), jQuery (1.8.0), Underscore (1.3.3), and Backbone (0.9.2).
325 | * Use UglifyJS instead of closure compiler to minify JS. It's faster and doesn't require Java :)
326 | * Mustaches! Now using Hogan.js instead of Underscore templating.
327 | * Check for updates. You can disable this with a `$GENGHIS_NO_UPDATE_CHECK` environment variable.
328 | * Add a welcome screen with project link and version info.
329 | * The README has way more to READ.
330 | * Spun off Bootstrappy styles for Apprise into their own project. [Check it out!](https://github.com/bobthecow/apprise-bootstrap)
331 | * All this while reducing the codebase by about 10%. BOOM.
332 |
333 | And a handful of bug fixes:
334 |
335 | * [Fix #19][i19] — Only implicitly wrap MongoIds if they're 24 character hex strings.
336 | * [Fix #20][i20] — Support creating and editing documents with an `attributes` property.
337 | * Fix output glitches when displaying a brand new document immediately after an existing document.
338 | * Fix — possible JavaScript error when adding a new collection.
339 | * Fix — handful of rare (and relatively benign) error messages.
340 | * Fix — malformed server DSN could prevent servers list from rendering.
341 | * Fix — rare bug where properties with a specific structure might be mistaken for ObjectIds or Dates.
342 | * Fix — no longer recreates missing dbs and collections on GET requests.
343 | * Fix — all sorts of things now 404 if they're missing, rather than rendering an empty page.
344 | * Fix — assorted issues with running in subdirectories, and under nginx.
345 | * Improve error handling in a couple of places.
346 |
347 | [i19]: https://github.com/bobthecow/genghis/issues/19
348 | [i20]: https://github.com/bobthecow/genghis/issues/20
349 |
350 |
351 | ## v1.4.2
352 |
353 | * Mention the PECL driver dependency.
354 | * Fix regressions with the search box.
355 | * Fix auto-collapsing documents when there are a bunch.
356 | * Escape HTML in folded document summaries.
357 |
358 |
359 | ## v1.4.1
360 |
361 | * Update to Bootstrap v2.0.2.
362 | * Fix error message regression when PECL Mongo driver isn't present.
363 | * Fix missing CSS from the keyboard shortcuts help dialog.
364 | * Minor cleanup.
365 |
366 |
367 | ## v1.4.0
368 |
369 | * Add a keyboard shortcuts note to the footer.
370 | * Namespace PHP classes.
371 | * Improve document folding (style *and* performance!).
372 |
373 |
374 | ## v1.3.0
375 |
376 | Genghis v1.3.0: Now with KEYBOARD SHORTCUTS!
377 |
378 |
379 | ## v1.2.0
380 |
381 | * Update to Bootstrap v2.0.1.
382 | * Work around bug with PECL Mongo driver < 1.0.11.
383 |
384 |
385 | ## v1.1.0
386 |
387 | * Add authentication support.
388 | * Expose additional details in server, database and collection rows.
389 |
390 |
391 | ## v1.0.3
392 |
393 | Add a version number to docblocks and built packages.
394 |
395 |
396 | ## v1.0.2
397 |
398 | Update to Bootstrap v1.4.0.
399 |
400 |
401 | ## v1.0.1
402 |
403 | Fix an `E_STRICT` error in asset mime-type guessing.
404 |
405 |
406 | ## v1.0.0
407 |
408 | Initial release.
409 |
--------------------------------------------------------------------------------