humongous 0.1.4.pre → 0.1.5.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.4.pre
1
+ 0.1.3.pre
@@ -106,6 +106,14 @@ module Humongous
106
106
  { stats: @collection.stats, header: "Collection #{@database.name}.#{@collection.name} (#{@collection.stats.count}) stats" }.to_json
107
107
  end
108
108
 
109
+ delete "/database/:db_name/collection/:collection_name" do
110
+ @database = @connection.db(params[:db_name])
111
+ if @database.drop_collection(params[:collection_name])
112
+ content_type :json
113
+ { status: "OK", dropped: true }.to_json
114
+ end
115
+ end
116
+
109
117
  post "/database/:db_name/collection/:collection_name/page/:page" do
110
118
  selector = {}
111
119
  opts = {}
@@ -142,27 +150,15 @@ module Humongous
142
150
  end
143
151
 
144
152
  post "/database" do
145
- p params
146
- {}
153
+ @connection.db(params["database_name"]).create_collection("test");
154
+ { status: "OK", created: true, name: params["database_name"] }.to_json
147
155
  end
148
156
 
149
- end
150
-
151
- #gem version
152
- def self.version #:nodoc
153
- "development"
154
- end
155
-
156
- def self.description
157
- %Q{
158
- Humongous: A Ruby way to browse and maintain mongo instance. Using HTML5.
159
- This is beta version, So there is long way to go, but still you can enjoy its
160
- simplistic design.
161
- }
162
- end
157
+ post "/database/:database_name/collection" do
158
+ @connection.db(params["database_name"]).create_collection(params[:collection_name]);
159
+ { status: "OK", created: true, name: params["collection_name"] }.to_json
160
+ end
163
161
 
164
- def self.summary
165
- %Q{An standalone Mongo Browser for Ruby. Just run and forget.}
166
162
  end
167
163
 
168
164
  end
@@ -8,7 +8,7 @@ $(document).ready(function(){
8
8
  }).bind("ajaxComplete", function(){
9
9
  $( this ).modal('hide');
10
10
  });
11
- $('.database_list tr').click( function( e ){
11
+ $('.database_list tr').live('click', function( e ){
12
12
  var data_source = $( e.target ).attr( "data-source" );
13
13
  $( this ).siblings().removeClass('active');
14
14
  $( this ).addClass( 'active' );
@@ -49,8 +49,12 @@ $(document).ready(function(){
49
49
  }
50
50
  })
51
51
  } );
52
- $(".delete").bind( 'click', function(e){
52
+ $(".databases .delete").bind( 'click', function(e){
53
53
  var elem = $(".database_list").find(".active");
54
+ if(!elem.length){
55
+ alert("Please choose a database to delete.");
56
+ return false;
57
+ }
54
58
  var data_source = elem.children().attr("data-source");
55
59
  app.ax({
56
60
  url: data_source,
@@ -61,14 +65,15 @@ $(document).ready(function(){
61
65
  }
62
66
  });
63
67
  } );
64
- $(".add").bind( 'click', function(e){
68
+ $(".databases .add").bind( 'click', function(e){
69
+ $("#modal_skeleton.modal").remove();
65
70
  var modal_skeleton = app.html.modal_skeleton.create( "modal_skeleton" );
66
- console.log(modal_skeleton)
71
+ var input_field = app.html.template.input_field
67
72
  modal_skeleton.children[0].children = [
68
73
  { tag: "H3", text: "Add Database" }
69
74
  ];
70
75
  modal_skeleton.children[1].children = [
71
- app.html.template.input_field.container({
76
+ input_field.container({
72
77
  id: "database_name",
73
78
  name: "database_name",
74
79
  text: "Name",
@@ -77,18 +82,74 @@ $(document).ready(function(){
77
82
  })
78
83
  ];
79
84
  modal_skeleton.children[2].children = [
80
- { tag: "A", cls: "btn primary", text: "Add", onClick: function(e){
81
- console.log(this)
82
- app.ax({
83
- url: "/database",
84
- data: $("#database_name").val(),
85
- success: function(data){
86
- console.log(this);
85
+ { tag: "A", cls: "btn primary", text: "Add" }
86
+ ]
87
+ $( "#modal_skeleton a" ).live("click", function(e){
88
+ $( "#modal_skeleton" ).modal('hide');
89
+ app.ax({
90
+ url: "/database",
91
+ data: { database_name: $("#database_name").val() },
92
+ success: function(data){
93
+ if(data["created"]){
94
+ $(".database_list table tbody").append("<tr><td data-source='/database/"+data["name"]+"'>"+data["name"]+"</td></tr>")
87
95
  }
88
- })
89
- } }
96
+ }
97
+ });
98
+ });
99
+ $( modal_skeleton ).modal({
100
+ keyboard: true,
101
+ backdrop: "static",
102
+ show: true
103
+ });
104
+ } );
105
+ $(".collections .delete").bind( 'click', function(e){
106
+ var elem = $(".collections_list").find(".active");
107
+ if(!elem.length){
108
+ alert("Please choose a collection to delete.");
109
+ return false;
110
+ }
111
+ var data_source = elem.children().attr("data-source");
112
+ app.ax({
113
+ url: data_source,
114
+ type: "DELETE",
115
+ success: function(data){
116
+ console.log("DELETED: " + JSON.stringify(data));
117
+ $(elem).remove();
118
+ }
119
+ });
120
+ } );
121
+ $(".collections .add").bind( 'click', function(e){
122
+ $("#modal_skeleton.modal").remove();
123
+ var db = app.storage.get("database");
124
+ var modal_skeleton = app.html.modal_skeleton.create( "modal_skeleton" );
125
+ var input_field = app.html.template.input_field
126
+ modal_skeleton.children[0].children = [
127
+ { tag: "H3", text: "Add a Collection" }
128
+ ];
129
+ modal_skeleton.children[1].children = [
130
+ input_field.container({
131
+ id: "collection_name",
132
+ name: "collection_name",
133
+ text: "Name",
134
+ placeholder: "Collection Name",
135
+ size: "30"
136
+ })
137
+ ];
138
+ modal_skeleton.children[2].children = [
139
+ { tag: "A", cls: "btn primary", text: "Add" }
90
140
  ]
91
- $( modal_skeleton ).appendTo( ".content" );
141
+ $( "#modal_skeleton a" ).live("click", function(e){
142
+ $( "#modal_skeleton" ).modal('hide');
143
+ app.ax({
144
+ url: "/database/" + db + "/collection",
145
+ data: { collection_name: $("#collection_name").val() },
146
+ success: function(data){
147
+ if(data["created"]){
148
+ $(".collections_list table tbody").append("<tr><td data-source='/database/"+db+"/collection/"+data["name"]+"'>"+data["name"]+"</td></tr>")
149
+ }
150
+ }
151
+ });
152
+ });
92
153
  $( modal_skeleton ).modal({
93
154
  keyboard: true,
94
155
  backdrop: "static",
@@ -18,7 +18,7 @@ app.html.query_browser = {
18
18
  ] },
19
19
  { tag: "DIV", cls: "sort_form", children: [
20
20
  { tag: "LABEL", "for": "sort", text: "Sort" },
21
- { tag: "INPUT", type: "text", placeholder: "{\"_id\":1}", id: "sort", name: "sort" }
21
+ { tag: "INPUT", type: "text", placeholder: "[\"name\", \"asc\"]", id: "sort", name: "sort" }
22
22
  ] },
23
23
  { tag: "DIV", cls: "clear" }
24
24
  ] },
@@ -26,7 +26,7 @@ app.html.query_browser = {
26
26
  { tag: "DIV", cls: "input_row", children: [
27
27
  { tag: "DIV", cls: "fields_form", children: [
28
28
  { tag: "LABEL", "for": "fields", text: "Fields" },
29
- { tag: "INPUT", type: "text", placeholder: "All", id: "fields", size: "30", name: "fields" }
29
+ { tag: "INPUT", type: "text", placeholder: "field1, field2", id: "fields", size: "30", name: "fields" }
30
30
  ] },
31
31
  { tag: "DIV", cls: "skip_form", children: [
32
32
  { tag: "LABEL", "for": "skip", text: "Skip" },
@@ -104,4 +104,8 @@ tr.active{
104
104
  padding-top: 10px;
105
105
  float: right;
106
106
  line-height: 26px;
107
+ }
108
+ a:hover{
109
+ text-decoration: none;
110
+ cursor: pointer;
107
111
  }
@@ -0,0 +1,3 @@
1
+ module Humongous
2
+ VERSION = "0.1.5.pre"
3
+ end
@@ -53,7 +53,7 @@
53
53
  <div class="sidebar-header">
54
54
  <h3>Databases</h3>
55
55
  <div class="add_remove">
56
- <a class="add">ADD</a>
56
+ <a class="add">ADD</a> |
57
57
  <a class="delete">REMOVE</a>
58
58
  </div>
59
59
  <div class="clear"></div>
@@ -71,7 +71,14 @@
71
71
  </div>
72
72
  </div>
73
73
  <div class="collections">
74
- <h3>Collections</h3>
74
+ <div class="sidebar-header">
75
+ <h3>Collections</h3>
76
+ <div class="add_remove">
77
+ <a class="add">ADD</a> |
78
+ <a class="delete">REMOVE</a>
79
+ </div>
80
+ <div class="clear"></div>
81
+ </div>
75
82
  <div class="collections_list">
76
83
  </div>
77
84
  </div>
@@ -165,11 +172,6 @@
165
172
  <img src="/images/ajax-loader.gif"></img>
166
173
  </div>
167
174
  </div>
168
- <div id="modal_skeleton" style="display:none" class="modal">
169
- <div class="modal-header"></div>
170
- <div class="modal-body"></div>
171
- <div class="modal-footer"></div>
172
- </div>
173
175
 
174
176
  <footer>
175
177
  <p>&copy; Bagwan Pankaj 2012</p>
data/lib/humongous.rb CHANGED
@@ -7,6 +7,7 @@ require "mongo"
7
7
  require "json"
8
8
  require "crack"
9
9
  require 'humongous/application'
10
+ require 'humongous/version'
10
11
 
11
12
  module Humongous
12
13
 
@@ -16,7 +17,7 @@ module Humongous
16
17
 
17
18
  #gem version
18
19
  def self.version #:nodoc
19
- File.read(File.join(File.dirname(__FILE__), '..', 'VERSION'))
20
+ Humongous::VERSION
20
21
  end
21
22
 
22
23
  def self.description
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: humongous
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4.pre
4
+ version: 0.1.5.pre
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-01-21 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: vegas
16
- requirement: &2160166020 !ruby/object:Gem::Requirement
16
+ requirement: &2160588840 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - =
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.1.8
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2160166020
24
+ version_requirements: *2160588840
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: sinatra
27
- requirement: &2160164040 !ruby/object:Gem::Requirement
27
+ requirement: &2160588280 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - =
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.3.2
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2160164040
35
+ version_requirements: *2160588280
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bson_ext
38
- requirement: &2160157780 !ruby/object:Gem::Requirement
38
+ requirement: &2160587640 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - =
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.5.2
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2160157780
46
+ version_requirements: *2160587640
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: mongo
49
- requirement: &2160155040 !ruby/object:Gem::Requirement
49
+ requirement: &2160586860 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - =
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.5.2
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2160155040
57
+ version_requirements: *2160586860
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: json
60
- requirement: &2160152160 !ruby/object:Gem::Requirement
60
+ requirement: &2160585840 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - =
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.6.5
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *2160152160
68
+ version_requirements: *2160585840
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: crack
71
- requirement: &2160150400 !ruby/object:Gem::Requirement
71
+ requirement: &2160584600 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - =
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: 0.3.1
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *2160150400
79
+ version_requirements: *2160584600
80
80
  description: ! 'Humongous: A Ruby way to browse and maintain mongo instance. Using
81
81
  HTML5.'
82
82
  email: bagwanpankaj@gmail.com
@@ -91,8 +91,10 @@ files:
91
91
  - VERSION
92
92
  - bin/humongous
93
93
  - lib/humongous.rb
94
+ - lib/humongous/version.rb
94
95
  - lib/humongous/application.rb
95
96
  - lib/humongous/public/images/favicon.ico
97
+ - lib/humongous/public/images/ajax-loader.gif
96
98
  - lib/humongous/public/javascripts/application.js
97
99
  - lib/humongous/public/javascripts/bootstrap-modal.js
98
100
  - lib/humongous/public/javascripts/core.js