erd 0.1.6 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.rdoc +1 -3
- data/app/assets/javascripts/erd/application.js +1 -1
- data/app/assets/javascripts/erd/erd.js.coffee +80 -2
- data/app/assets/stylesheets/erd/erd.css.scss +425 -130
- data/app/controllers/erd/erd_controller.rb +9 -8
- data/app/views/erd/erd/_column.html.erb +14 -1
- data/app/views/erd/erd/_model.html.erb +34 -3
- data/app/views/erd/erd/index.html.erb +10 -4
- data/erd.gemspec +4 -1
- data/lib/erd/railtie.rb +4 -7
- data/lib/erd/version.rb +1 -1
- data/spec/fake_app/fake_app.rb +2 -0
- data/spec/{requests → features}/erd_spec.rb +0 -0
- data/spec/lib/migrator_spec.rb +2 -2
- data/vendor/assets/javascripts/jquery-ui.min.js +12 -0
- metadata +95 -36
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1f72d039d2e3a380b178558b66f5d6f5f2bf27dc
|
4
|
+
data.tar.gz: 44dbc5d5f38a2bd2b633227edbc56baafca34b6a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ed3527095628c3148b30ff030608f933ea8910b3f7a4f565bd6d7eb3b826ac9f44e5b9eb0334ea7feb50745a014602c8a83cae4091501ce210e53b7436cd1859
|
7
|
+
data.tar.gz: 07a41f90d9fb8746d106f3ccca5a52b681da491f4c95f54c2538cdf48ddfe299af9f69925cf901ee1c7a956adf58fff8f891fcf72c75603964483aa392cde5fc
|
data/README.rdoc
CHANGED
@@ -5,7 +5,7 @@ A Rails engine for drawing your app's ER diagram and operating migrations
|
|
5
5
|
|
6
6
|
== Requirements
|
7
7
|
|
8
|
-
* Rails 3.2 or 3.1
|
8
|
+
* Rails 4.0, 3.2, or 3.1
|
9
9
|
|
10
10
|
* Graphviz
|
11
11
|
|
@@ -39,8 +39,6 @@ Browse at your http://localhost:3000/erd
|
|
39
39
|
|
40
40
|
== TODO
|
41
41
|
|
42
|
-
* Better design
|
43
|
-
|
44
42
|
* Better UI
|
45
43
|
|
46
44
|
* Fix buggy JS
|
@@ -90,7 +90,10 @@ class ERD
|
|
90
90
|
setup_click_handlers: ->
|
91
91
|
$('div.model_name_text, span.column_name_text, span.column_type_text').on 'click', @handle_text_elem_click
|
92
92
|
$('div.model a.add_column').on 'click', @handle_add_column_click
|
93
|
+
$('div.model a.cancel').on 'click', @handle_cancel_click
|
93
94
|
$('div.model a.close').on 'click', @handle_remove_model_click
|
95
|
+
$('div#open_migration').on 'click', @handle_open_migration_click
|
96
|
+
$('div#close_migration').on 'click', @handle_close_migration_click
|
94
97
|
|
95
98
|
setup_submit_handlers: ->
|
96
99
|
$('form.rename_model_form').on 'submit', @handle_rename_model
|
@@ -130,10 +133,10 @@ class ERD
|
|
130
133
|
name_span = $("<span/>", class: 'column_name_text')
|
131
134
|
.append(name)
|
132
135
|
|
133
|
-
type_span = $("<span/>", class: 'column_type_text')
|
136
|
+
type_span = $("<span/>", class: 'column_type_text unsaved')
|
134
137
|
.append(type)
|
135
138
|
|
136
|
-
li_node = $("<li/>", class: 'column')
|
139
|
+
li_node = $("<li/>", class: 'column unsaved')
|
137
140
|
.append(name_span)
|
138
141
|
.append(" ")
|
139
142
|
.append(type_span)
|
@@ -164,6 +167,9 @@ class ERD
|
|
164
167
|
.siblings('.column_type_text')
|
165
168
|
.text(to)
|
166
169
|
.show()
|
170
|
+
.addClass('unsaved')
|
171
|
+
.parents('.column')
|
172
|
+
.addClass('unsaved')
|
167
173
|
|
168
174
|
handle_rename_column: (ev) =>
|
169
175
|
ev.preventDefault()
|
@@ -180,6 +186,8 @@ class ERD
|
|
180
186
|
.siblings('.column_name_text')
|
181
187
|
.text(to)
|
182
188
|
.show()
|
189
|
+
.parents('.column')
|
190
|
+
.addClass('unsaved')
|
183
191
|
|
184
192
|
handle_rename_model: (ev) =>
|
185
193
|
ev.preventDefault()
|
@@ -195,6 +203,7 @@ class ERD
|
|
195
203
|
.siblings('.model_name_text')
|
196
204
|
.text(to)
|
197
205
|
.show()
|
206
|
+
.addClass('unsaved')
|
198
207
|
|
199
208
|
handle_add_column_click: (ev) =>
|
200
209
|
ev.preventDefault()
|
@@ -208,6 +217,8 @@ class ERD
|
|
208
217
|
target.hide()
|
209
218
|
.next('form')
|
210
219
|
.show()
|
220
|
+
.find('a.cancel')
|
221
|
+
.show()
|
211
222
|
.find('input[name=type]')
|
212
223
|
.val('string')
|
213
224
|
.end()
|
@@ -215,6 +226,22 @@ class ERD
|
|
215
226
|
.val('')
|
216
227
|
.focus()
|
217
228
|
|
229
|
+
handle_cancel_click: (ev) =>
|
230
|
+
ev.preventDefault()
|
231
|
+
target = $(ev.currentTarget)
|
232
|
+
|
233
|
+
m = target.parents('div.model')
|
234
|
+
if m.hasClass('noclick')
|
235
|
+
m.removeClass('noclick')
|
236
|
+
return false
|
237
|
+
|
238
|
+
target.hide()
|
239
|
+
.parent('form')
|
240
|
+
.hide()
|
241
|
+
.prev('a.add_column, span, div')
|
242
|
+
.show()
|
243
|
+
|
244
|
+
|
218
245
|
handle_text_elem_click: (ev) =>
|
219
246
|
target = $(ev.currentTarget)
|
220
247
|
text = target.text()
|
@@ -227,6 +254,8 @@ class ERD
|
|
227
254
|
target.hide()
|
228
255
|
.next('form')
|
229
256
|
.show()
|
257
|
+
.find('a.cancel')
|
258
|
+
.show()
|
230
259
|
.find('input[name=to]')
|
231
260
|
.val(text)
|
232
261
|
.focus()
|
@@ -253,9 +282,58 @@ class ERD
|
|
253
282
|
@paper.clear()
|
254
283
|
@connect_arrows(@edges)
|
255
284
|
|
285
|
+
handle_open_migration_click: (ev) =>
|
286
|
+
ev.preventDefault()
|
287
|
+
|
288
|
+
target = $(ev.currentTarget)
|
289
|
+
text = target.text()
|
290
|
+
|
291
|
+
m = target.parents('div.model')
|
292
|
+
if m.hasClass('noclick')
|
293
|
+
m.removeClass('noclick')
|
294
|
+
return false
|
295
|
+
|
296
|
+
target.hide()
|
297
|
+
.next('div')
|
298
|
+
.show()
|
299
|
+
.find('#close_migration')
|
300
|
+
.show()
|
301
|
+
|
302
|
+
|
303
|
+
handle_close_migration_click: (ev) =>
|
304
|
+
ev.preventDefault()
|
305
|
+
|
306
|
+
target = $(ev.currentTarget)
|
307
|
+
text = target.text()
|
308
|
+
|
309
|
+
m = target.parents('div.model')
|
310
|
+
if m.hasClass('noclick')
|
311
|
+
m.removeClass('noclick')
|
312
|
+
return false
|
313
|
+
|
314
|
+
target.hide()
|
315
|
+
.parent()
|
316
|
+
.hide()
|
317
|
+
.prev('div')
|
318
|
+
.show()
|
319
|
+
|
256
320
|
$ ->
|
257
321
|
window.erd = new ERD('erd', $('#erd'), window.raw_edges)
|
258
322
|
|
259
323
|
$('#erd').css('height', window.innerHeight)
|
260
324
|
$(window).on 'resize', ->
|
261
325
|
$('#erd').css('height', window.innerHeight)
|
326
|
+
|
327
|
+
$("#open_migration").click ->
|
328
|
+
$('#close_migration').css('right', $('#migration').width() + ($(this).width() / 2) - 5)
|
329
|
+
|
330
|
+
$('#open_up').click ->
|
331
|
+
$('#migration_status .up').addClass('open')
|
332
|
+
$('#migration_status .down').removeClass('open')
|
333
|
+
|
334
|
+
$('#open_down').click ->
|
335
|
+
$('#migration_status .down').addClass('open')
|
336
|
+
$('#migration_status .up').removeClass('open')
|
337
|
+
|
338
|
+
$('#close_all').click ->
|
339
|
+
$('#migration_status tr').removeClass('open')
|