visual_db 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/views/about.erb ADDED
@@ -0,0 +1,71 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <link rel="shortcut icon" href="../../assets/ico/favicon.ico">
8
+
9
+ <title>About ~ Visual DB</title>
10
+ <link href="/css/bootstrap.min.css" rel="stylesheet">
11
+ <link href="/css/starter-template.css" rel="stylesheet">
12
+ <link href="/css/main.css" rel="stylesheet">
13
+ </head>
14
+ <body>
15
+
16
+ <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
17
+ <div class="container">
18
+ <div class="navbar-header">
19
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
20
+ <span class="sr-only">Toggle navigation</span>
21
+ <span class="icon-bar"></span>
22
+ <span class="icon-bar"></span>
23
+ <span class="icon-bar"></span>
24
+ </button>
25
+ <a class="navbar-brand active" href="about">Visual DB</a>
26
+ </div>
27
+ <div class="collapse navbar-collapse">
28
+ <ul class="nav navbar-nav">
29
+ <li><a href="/">
30
+ Connect
31
+ </a></li>
32
+ <li><a href="databases">
33
+ Databases<% if $db_name %> :: <%= $db_name %><% end %>
34
+ </a></li>
35
+ <li><a href="tables">Tables
36
+ <% if $table_name %> :: <%= $table_name %><% end %>
37
+ </a></li>
38
+ <li><a href="query">
39
+ Query
40
+ </a></li>
41
+ </ul>
42
+ </div><!--/.nav-collapse -->
43
+ </div>
44
+ </div>
45
+
46
+ <div class="container">
47
+
48
+ <div class="starter-template">
49
+ <div class="well about_well">
50
+ <p style="text-align:center">
51
+ <b>Visual DB </b>is a web utility written in Ruby to view and modify mySQL
52
+ databases on local or remotely hosted systems
53
+ </p>
54
+
55
+ <hr>
56
+
57
+ <p>
58
+ <b>Homepage : </b><a href="https://github.com/at1as/visual_db">Github</a>
59
+ </p>
60
+ <p>
61
+ <b>Created by : </b> <a href="http://www.jasonwillems.com">Jason Willems</a>
62
+ </p>
63
+ <p>
64
+ <b>License :</b> Distributed under an M.I.T. license
65
+ </p>
66
+ </div>
67
+ </div>
68
+ </div><!-- /.container -->
69
+
70
+ </body>
71
+ </html>
@@ -0,0 +1,97 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <link rel="shortcut icon" href="../../assets/ico/favicon.ico">
8
+
9
+ <title>Connect ~ Visual DB</title>
10
+ <link href="/css/bootstrap.min.css" rel="stylesheet">
11
+ <link href="/css/starter-template.css" rel="stylesheet">
12
+ <link href="/css/main.css" rel="stylesheet">
13
+ </head>
14
+ <body>
15
+
16
+ <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
17
+ <div class="container">
18
+ <div class="navbar-header">
19
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
20
+ <span class="sr-only">Toggle navigation</span>
21
+ <span class="icon-bar"></span>
22
+ <span class="icon-bar"></span>
23
+ <span class="icon-bar"></span>
24
+ </button>
25
+ <a class="navbar-brand" href="about">Visual DB</a>
26
+ </div>
27
+ <div class="collapse navbar-collapse">
28
+ <ul class="nav navbar-nav">
29
+ <li><a href="/">Connect</a></li>
30
+ <li class="active">
31
+ <a href="databases">Databases<% if $db_name %> :: <span style="color:green"><%= $db_name %></span><% end %></a>
32
+ </li>
33
+ <li><a href="tables">Tables<% if $table_name %> :: <%= $table_name %><% end %></a></li>
34
+ <li><a href="query">Query</a></li>
35
+ </ul>
36
+ </div><!--/.nav-collapse -->
37
+ </div>
38
+ </div>
39
+
40
+ <div class="container">
41
+
42
+ <div class="starter-template">
43
+
44
+ <% if $db_name %>
45
+ <h3>Using <span style="color:green"><%= $db_name %></span> Database</h3>
46
+ <% else %>
47
+ <h3>Please select Database</h3>
48
+ <% end %>
49
+ <% unless $db_error.nil? %>
50
+ <div class="db_err"><%= $db_error %></div>
51
+ <% end %>
52
+ <% unless $db_success.nil? %>
53
+ <div class="db_update">Query OK: <%= $db_success %> Rows Affected</div>
54
+ <% end %>
55
+
56
+ <div class="well db_well">
57
+
58
+ <form method="post" action="/databases" style="margin-top:20px;">
59
+ <select class="form-control" name="select_database" id="select_database">
60
+ <% $db_list.each do |database| %>
61
+ <% if database == $db_name %>
62
+ <option selected><%= database %></option>
63
+ <% else %>
64
+ <option><%= database %></option>
65
+ <% end %>
66
+ <% end %>
67
+ </select>
68
+ <% if $db_list.length > 0 %>
69
+ <input class="btn btn-block btn-primary db_btn" type="submit" value="Use Database">
70
+ <% end %>
71
+ </form>
72
+
73
+ <hr>
74
+
75
+ <form style="" method="post" action="/database">
76
+ <input class="form-control" name="database" value="" placeholder="Database Name">
77
+ <input type="hidden" name="action" value="create">
78
+ <input class="btn btn-block db_btn" type="submit" value="Create Database">
79
+ </form>
80
+
81
+ <form method="post" action="/database" style="margin-top:30px">
82
+ <input type="hidden" name="action" value="delete">
83
+ <select class="form-control" name="database" id="database">
84
+ <% $db_list.each do |database| %>
85
+ <option><%= database %></option>
86
+ <% end %>
87
+ </select>
88
+ <input class="btn btn-block db_btn" type="submit" value="Delete Database">
89
+ </form>
90
+ </div><!--/.well -->
91
+ </div><!-- /.starter-template -->
92
+ </div><!-- /.container -->
93
+
94
+ <script type="javascript">
95
+ </script>
96
+ </body>
97
+ </html>
data/views/index.erb ADDED
@@ -0,0 +1,77 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <link rel="shortcut icon" href="../../assets/ico/favicon.ico">
8
+
9
+ <title>Connect ~ Visual DB</title>
10
+ <link href="css/bootstrap.min.css" rel="stylesheet">
11
+ <link href="css/starter-template.css" rel="stylesheet">
12
+ <link href="css/main.css" rel="stylesheet">
13
+ </head>
14
+ <body>
15
+
16
+ <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
17
+ <div class="container">
18
+ <div class="navbar-header">
19
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
20
+ <span class="sr-only">Toggle navigation</span>
21
+ <span class="icon-bar"></span>
22
+ <span class="icon-bar"></span>
23
+ <span class="icon-bar"></span>
24
+ </button>
25
+ <a class="navbar-brand" href="about">Visual DB</a>
26
+ </div>
27
+ <div class="collapse navbar-collapse">
28
+ <ul class="nav navbar-nav">
29
+ <li class="active"><a href="/">Connect</a></li>
30
+ <li><a href="databases">Databases<% if $db_name %> :: <%= $db_name %><% end %></a></li>
31
+ <li><a href="tables">Tables<% if $table_name %> :: <%= $table_name %><% end %></a></li>
32
+ <li><a href="query">Query</a></li>
33
+ </ul>
34
+ </div><!--/.nav-collapse -->
35
+ </div>
36
+ </div>
37
+
38
+ <div class="container">
39
+
40
+ <div class="starter-template">
41
+
42
+ <% if $sql_conn %>
43
+ <h3 style="color:green">Successfully Connected</h3>
44
+ <% else %>
45
+ <h3>Please enter your MySQL credentials</h3>
46
+ <% end %>
47
+ <% if $db_error %>
48
+ <span class="db_err"><%= $db_error %></span>
49
+ <% end %>
50
+ <div class="well login_well">
51
+ <form method="post" action="/connect">
52
+ <b>Host</b>
53
+ <input class="form-control" name="hostname" id="hostname" value="localhost" >
54
+ <b>Port</b>
55
+ <input class="form-control" name="port" id="port" value="3306" >
56
+ <b>Username</b>
57
+ <input class="form-control" name="username" id="username" value="root" autofocus >
58
+ <b>Password</b>
59
+ <input class="form-control" name="password" id="password" placeholder="" >
60
+ <% if !$sql_conn %>
61
+ <input class="btn btn-block btn-primary login_btn" type="submit" value="Connect">
62
+ <% end %>
63
+ </form>
64
+
65
+ <% if $sql_conn %>
66
+ <form method="post" action="/disconnect">
67
+ <input class="btn btn-block btn-primary login_btn" type="submit" value="Disconnect">
68
+ </form>
69
+ <% end %>
70
+
71
+ </div><!-- /.well -->
72
+ </div><!-- /.starter-template -->
73
+
74
+ </div><!-- /.container -->
75
+
76
+ </body>
77
+ </html>
data/views/query.erb ADDED
@@ -0,0 +1,68 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <link rel="shortcut icon" href="../../assets/ico/favicon.ico">
8
+
9
+ <title>About ~ Visual DB</title>
10
+ <link href="/css/bootstrap.min.css" rel="stylesheet">
11
+ <link href="/css/starter-template.css" rel="stylesheet">
12
+ <link href="/css/main.css" rel="stylesheet">
13
+ </head>
14
+ <body>
15
+
16
+ <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
17
+ <div class="container">
18
+ <div class="navbar-header">
19
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
20
+ <span class="sr-only">Toggle navigation</span>
21
+ <span class="icon-bar"></span>
22
+ <span class="icon-bar"></span>
23
+ <span class="icon-bar"></span>
24
+ </button>
25
+ <a class="navbar-brand active" href="about">Visual DB</a>
26
+ </div>
27
+ <div class="collapse navbar-collapse">
28
+ <ul class="nav navbar-nav">
29
+ <li>
30
+ <a href="/">Connect</a>
31
+ </li>
32
+ <li>
33
+ <a href="databases">Databases<% if $db_name %> :: <%= $db_name %><% end %></a>
34
+ </li>
35
+ <li>
36
+ <a href="tables">Tables<% if $table_name %> :: <%= $table_name %><% end %></a>
37
+ </li>
38
+ <li class="active">
39
+ <a href="query">Query</a>
40
+ </li>
41
+ </ul>
42
+ </div><!--/.nav-collapse -->
43
+ </div>
44
+ </div>
45
+
46
+ <div class="container">
47
+
48
+ <div class="starter-template">
49
+ <h2>Enter an SQL query</h2>
50
+ <% unless $db_error.nil? %>
51
+ <div class="db_err"><%= $db_error %></div>
52
+ <% end %>
53
+ <% unless $db_success.nil? %>
54
+ <div class="db_update">Query OK: <%= $db_success %> Rows Affected</div>
55
+ <% end %>
56
+ <div class="well query_well">
57
+ <div>
58
+ <form method="post" action="/query">
59
+ <input class="form-control" name="query" id="query" placeholder="SQL Query">
60
+ <input class="btn btn-block btn-primary query_btn" type="submit" value="Submit">
61
+ </form>
62
+ </div>
63
+ </div>
64
+ </div>
65
+
66
+ </div><!-- /.container -->
67
+ </body>
68
+ </html>
data/views/tables.erb ADDED
@@ -0,0 +1,308 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <link rel="shortcut icon" href="../../assets/ico/favicon.ico">
8
+
9
+ <title>Connect ~ Visual DB</title>
10
+ <link href="/css/bootstrap.min.css" rel="stylesheet">
11
+ <link href="/css/starter-template.css" rel="stylesheet">
12
+ <link href="/css/main.css" rel="stylesheet">
13
+
14
+ <!-- Table Sorting -->
15
+ <script src="/js/sorttable.js"></script>
16
+ </head>
17
+ <body>
18
+
19
+ <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
20
+ <div class="container">
21
+ <div class="navbar-header">
22
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
23
+ <span class="sr-only">Toggle navigation</span>
24
+ <span class="icon-bar"></span>
25
+ <span class="icon-bar"></span>
26
+ <span class="icon-bar"></span>
27
+ </button>
28
+ <a class="navbar-brand" href="/about">Visual DB</a>
29
+ </div>
30
+ <div class="collapse navbar-collapse">
31
+ <ul class="nav navbar-nav">
32
+ <li>
33
+ <a href="/">Connect</a>
34
+ </li>
35
+ <li>
36
+ <a href="/databases">Databases<% if $db_name %> :: <%= $db_name %><% end %></a>
37
+ </li>
38
+ <li class="active">
39
+ <a href="/tables">Tables<% if $table_name %> :: <span class="head_active"><%= $table_name %></span><% end %></a>
40
+ </li>
41
+ <li>
42
+ <a href="/query">Query</a>
43
+ </li>
44
+ </ul>
45
+ </div><!--/.nav-collapse -->
46
+ </div>
47
+ </div>
48
+
49
+ <div class="container">
50
+ <div class="starter-template">
51
+ <% unless $db_error.nil? %>
52
+ <div class="db_err"><%= $db_error %></div>
53
+ <% end %>
54
+ <% unless $db_success.nil? %>
55
+ <div class="db_update">Query OK: <%= $db_success %> Rows Affected</div>
56
+ <% end %>
57
+
58
+ <div style="margin-left:auto; margin-right:auto">
59
+ <div class="well table_well">
60
+
61
+ <h4>Database :: <span id="db_name" style="color:green"><%= $db_name %></span></h4>
62
+ <div class="tbl_info">Tables : <%= $db_tables.length %></div>
63
+
64
+ <!-- START SELECT TABLE -->
65
+ <form method="post" action="/tables" style="display:inline-block">
66
+ <span style="display:inline-block">
67
+ <% if $db_tables.length > 0 %>
68
+ <select class="form-control inline_input" name="select_table" id="select_table">
69
+ <% $db_tables.each do |table_name| %>
70
+ <% if table_name == $table_name %>
71
+ <option selected><%=table_name%></option>
72
+ <% else %>
73
+ <option><%=table_name%></option>
74
+ <% end %>
75
+ <% end %>
76
+ </select>
77
+ <% end %>
78
+ </span>
79
+ <span class="inline_btn_container">
80
+ <% if $db_tables.length > 0 %>
81
+ <input class="btn btn-block btn-primary inline_btn" type="submit" value="Select Table">
82
+ <% end %>
83
+ </span>
84
+ </form>
85
+
86
+ <!-- START CREATE TABLE -->
87
+ <form method="post" action="/table" style="margin-top:10px;">
88
+ <input type="hidden" name="action" value="create">
89
+ <span style="display:inline-block;">
90
+ <input class="form-control inline_input" name="new_table" value="" placeholder="Name (fields)">
91
+ </span>
92
+ <span class="inline_btn_container">
93
+ <input class="btn btn-block inline_btn" type="submit" value="Create New Table">
94
+ </span>
95
+ </form>
96
+
97
+ <!-- START DELETE TABLE -->
98
+ <% if $db_tables.length > 0 %>
99
+ <form method="post" action="/table" style="margin-top:10px">
100
+ <input type="hidden" name="action" value="delete">
101
+ <span style="display:inline-block">
102
+ <select class="form-control inline_input" name="table" id="table">
103
+ <% $db_tables.each do |table_name| %>
104
+ <option><%=table_name%></option>
105
+ <% end %>
106
+ </select>
107
+ </span>
108
+ <span class="inline_btn_container">
109
+ <input class="btn btn-block inline_btn" type="submit" value="Delete Table">
110
+ </span>
111
+ </form>
112
+ <% end %>
113
+ </div>
114
+
115
+ <!-- START FILTER FROM TABLE -->
116
+ <% if $table_name %>
117
+ <div class="well table_well">
118
+
119
+ <% if $table_name %>
120
+ <h4>Table :: <span id="table_name" style="color:green"><%= $table_name %></span></h4>
121
+ <% end %>
122
+
123
+ <div class="tbl_info">
124
+ <span class="tbl_info_entry">Rows : <%= $full_table.num_rows %></span>
125
+ <span class="tbl_info_entry">Columns : <%= $full_table.num_fields %></span>
126
+ <span class="tbl_info_entry">Cells : <%= $full_table.num_rows * $full_table.num_fields %></span>
127
+ </div>
128
+
129
+ <!-- START FILTER FROM TABLE -->
130
+ <form method="post" action="/table/query">
131
+
132
+ <div class="form-row">
133
+ <label class="form-label tbl_form_label">Action</label>
134
+ <select class="form-control tbl_action_input" name="query_action" id="query_action" onchange="update_query()">
135
+ <option value="filter">Filter</option>
136
+ <option value="insert">Insert</option>
137
+ <option value="update">Update</option>
138
+ <option value="delete">Delete</option>
139
+ <option value="alter">Alter</option>
140
+ <option value="showcols">Show Columns</option>
141
+ </select>
142
+ </div>
143
+
144
+ <div class="form-row" id="set_params_container" style="display:none">
145
+ <label id="set_form_label" class="form-label tbl_form_label">Set Params</label>
146
+ <span style="display:inline-block;">
147
+ <input class="form-control tbl_action_input" name="set_params" id="set_params" value="" placeholder="field1=new-value1, field2=new-value2">
148
+ </span>
149
+ </div>
150
+
151
+ <div class="form-row" id="params_container">
152
+ <label id="query_form_label" class="form-label tbl_form_label">Params</label>
153
+ <span style="display:inline-block;">
154
+ <input class="form-control tbl_action_input" name="query_params" id="query_params" value="" placeholder="SELECT * FROM TABLENAME WHERE <query>">
155
+ </span>
156
+ </div>
157
+
158
+ <div>
159
+ <span>
160
+ <label class="form-control tbl_sql_label" word-wrap name="full_query" id="full_query">SELECT * FROM TABLE WHERE</label>
161
+ </span>
162
+ <div>
163
+ <input class="btn btn-block btn-primary tbl_action_btn" id="table_action_btn"; type="submit" value="Filter Table">
164
+ </div>
165
+ </div>
166
+ </form>
167
+
168
+ </div>
169
+ <% end %>
170
+
171
+ <!-- START COLUMNS DISPLAY -->
172
+
173
+ <% if $table_cols %>
174
+ <div style="display:table; margin: 0 auto;">
175
+ <table class="table table-striped sortable" data-sortable>
176
+ <tr><!--HEADERS-->
177
+ <% ["field", "type", "null", "key", "default", "extra"].each do |heading| %>
178
+ <td class="header_cell">
179
+ <%= heading %>
180
+ </td>
181
+ <% end %>
182
+ </tr>
183
+ <!-- BODY -->
184
+ <% $table_cols.each do |row| %>
185
+ <tr>
186
+ <% row.each do |cell| %>
187
+ <td><%= cell rescue "ERR" %> </td>
188
+ <% end %>
189
+ </tr>
190
+ <% end %>
191
+ </table>
192
+ </div>
193
+ <% end %>
194
+
195
+ <!-- START TABLE DISPLAY -->
196
+ <% if $full_table && $table_cols.nil? %>
197
+ <div style="display:table; margin: 0 auto;">
198
+ <table class="table table-striped sortable" data-sortable>
199
+ <tr><!--HEADERS-->
200
+ <% $full_table.num_fields.times do |i| %>
201
+ <td class="header_cell">
202
+ <%= $full_table.fetch_field_direct(i).name %>
203
+ <% if $full_table.fetch_field_direct(i).is_pri_key? %>*<% end %>
204
+ </td>
205
+ <% end %>
206
+ </tr>
207
+
208
+ <!--BODY-->
209
+ <% $full_table.num_rows.times do %>
210
+ <tr>
211
+ <% row_contents = $full_table.fetch_row %>
212
+ <% $full_table.num_fields.times do |i| %>
213
+ <td >
214
+ <%= row_contents[i] rescue "ERR" %>
215
+ </td>
216
+ <% end %>
217
+ </tr>
218
+ <% end %>
219
+ </table>
220
+ </div>
221
+ <% end %>
222
+ <!-- END TABLE DISPLAY -->
223
+ </div>
224
+
225
+ <!-- START CSV DOWNLOAD -->
226
+ <% if $full_table && $table_cols.nil? %>
227
+ <form method="post" action="/csv">
228
+ <div class="well csv_well">
229
+ <input class="btn btn-block csv_btn" type="submit" value="Download Table as CSV">
230
+ </div>
231
+ </form>
232
+ <% end %>
233
+
234
+ </div><!-- /.container -->
235
+
236
+ <script type="text/javascript">
237
+
238
+ var query_params = document.getElementById("query_params");
239
+
240
+ function update_query() {
241
+
242
+ // TODO: Exceptions when elements not present
243
+ var action = document.getElementById("query_action").value;
244
+ var params_view = document.getElementById("params_container");
245
+ var params = document.getElementById("query_params");
246
+ var set_params_view = document.getElementById("set_params_container");
247
+ var set_params = document.getElementById("set_params");
248
+ var table_name = document.getElementById("table_name").innerHTML;
249
+ var db_name = document.getElementById("db_name").innerHTML;
250
+ var db_table = " " + db_name + "." + table_name + " ";
251
+ var full_query = document.getElementById("full_query");
252
+ var field_label = document.getElementById("query_form_label");
253
+ var query_btn = document.getElementById("table_action_btn");
254
+ var clause = "";
255
+ var setter = "";
256
+
257
+ (action === "update" || action ==="insert" || action ==="alter" ? set_params_view.style.display = "" : set_params_view.style.display = "none");
258
+ (action === "insert" || action ==="alter" || action==="showcols" ? params_view.style.display = "none" : params_view.style.display = "");
259
+
260
+ if (action === "insert") {
261
+ field_label.innerHTML = "Params";
262
+ set_params.placeholder = "(field1, field2) VALUES (\"value1\", \"value2\")";
263
+ (params.value === "" ? clause = set_params.placeholder : clause = set_params.value);
264
+ full_query.innerHTML = "INSERT INTO" + db_table + clause;
265
+ }
266
+ else if (action === "update") {
267
+ field_label.innerHTML = "Clause";
268
+ params.placeholder = "(field1, field2)=(\"value1\", \"value2\")";
269
+ (params.value === "" ? clause = params.placeholder : clause = params.value);
270
+ (set_params.value === "" ? setter = set_params.placeholder : setter = set_params.value);
271
+ full_query.innerHTML = "UPDATE" + db_table + "SET " + setter + " WHERE " + clause;
272
+ }
273
+ else if (action === "filter") {
274
+ field_label.innerHTML = "Clause";
275
+ params.placeholder = "(field1, field2)=(\"value1\", \"value2\")";
276
+ (params.value === "" ? clause = params.placeholder : clause = params.value);
277
+ full_query.innerHTML = "SELECT * FROM" + db_table + "WHERE " + clause;
278
+ }
279
+ else if (action === "delete") {
280
+ field_label.innerHTML = "Clause";
281
+ params.placeholder = "(field1, field2)=(\"value1\", \"value2\")";
282
+ (params.value === "" ? clause = params.placeholder : clause = params.value);
283
+ full_query.innerHTML = "DELETE FROM" + db_table + "WHERE " + clause;
284
+ }
285
+ else if (action === "alter") {
286
+ field_label.innerHTML = "Command";
287
+ set_params.placeholder = "action column args";
288
+ (params.value === "" ? clause = set_params.placeholder : clause = set_params.value);
289
+ full_query.innerHTML = "ALTER TABLE" + db_table + clause;
290
+ }
291
+ else if (action === "showcols") {
292
+ full_query.innerHTML = "SHOW COLUMNS FROM" + db_table;
293
+ }
294
+
295
+ query_btn.value = action.substring(0,1).toUpperCase() + action.substring(1);
296
+ };
297
+
298
+ if (document.getElementById("query_params")) {
299
+ document.getElementById("query_params").addEventListener("input", function(){
300
+ update_query();
301
+ });
302
+ }
303
+
304
+ update_query();
305
+
306
+ </script>
307
+ </body>
308
+ </html>
data/visual_db.gemspec ADDED
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'visual_db/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "visual_db"
8
+ spec.date = "2015-02-13"
9
+ spec.version = VisualDb::VERSION
10
+ spec.authors = ["Jason Willems"]
11
+ spec.email = ["jason@willems.ca"]
12
+ spec.summary = "Visual SQL"
13
+ spec.description = "Browser front-end for navigating and modifying mySQL databases"
14
+ spec.homepage = "https://github.com/at1as/visual_db"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0")
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_runtime_dependency "sinatra", "~>1.4", ">= 1.4.5"
22
+ spec.add_runtime_dependency "mysql", "~> 2.9", ">= 2.9.1"
23
+ spec.add_runtime_dependency "vegas", "~> 0.1", ">= 0.1.11"
24
+ spec.add_development_dependency "bundler", "~> 1.7"
25
+ spec.add_development_dependency "rake", "~> 10.0"
26
+ end
27
+