humongous 0.1.4.pre → 0.1.5.pre

Sign up to get free protection for your applications and to get access to all the features.
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