From 6532182b20d37de6ca6666e96ff00931b045056f Mon Sep 17 00:00:00 2001 From: Jon Lebensold Date: Sat, 13 Oct 2012 09:31:40 +0200 Subject: [PATCH] pushed the destroy logic down to the node view... likely need to do the same refactor for make_child --- app/css/app.css | 33 +++++++++++++++++-- .../app/views/authority_manager_view.coffee | 22 +++---------- app/js/app/views/note_view.coffee | 2 +- app/js/app/views/tree_node_view.coffee | 19 ++++++++++- public/javascripts/templates/note.ejs | 3 +- public/javascripts/templates/tree_node.ejs | 8 ++++- 6 files changed, 63 insertions(+), 24 deletions(-) diff --git a/app/css/app.css b/app/css/app.css index 36303d5..3671663 100644 --- a/app/css/app.css +++ b/app/css/app.css @@ -14,10 +14,38 @@ body { .authority_manager .tree { height: 300px; overflow: scroll; + margin: 0 0; + } + .authority_manager .tree .buttons { + display:none; + float: right; + clear: both; + margin: 0 5px 0 0; + position: relative; + + } + .authority_manager .tree .buttons a { + display:block; + position: absolute; + background: #FFF; + padding: 0x 2px; + } + .authority_manager .tree li div:hover > .buttons { + display: block; + } + .authority_manager .tree li div:hover > .buttons a:hover { + background: #E5E5E5; + } + .authority_manager .tree li, + .authority_manager .tree ul { + list-style:none; + padding: 0 0 0 8px; + margin: 0 0 0 0px; } .authority_manager ul.tree li div{ - background: #F3F3F3; - margin: 1px 0px; + background: #FFF; + border-bottom: 1px solid #F0F0F0; + margin: 5px 0px; font-size: 12px; } @@ -68,6 +96,7 @@ body { padding: 5px; } + /* tags */ div.tagsinput { border:1px solid #CCC; background: #FFF; padding:5px; width:300px; height:100px; overflow-y: auto;} div.tagsinput span.tag { border: 1px solid #a5d24a; -moz-border-radius:2px; -webkit-border-radius:2px; display: block; float: left; padding: 5px; text-decoration:none; background: #cde69c; color: #638421; margin-right: 5px; margin-bottom:5px;font-family: helvetica; font-size:13px;} diff --git a/app/js/app/views/authority_manager_view.coffee b/app/js/app/views/authority_manager_view.coffee index 748dcaf..edae715 100644 --- a/app/js/app/views/authority_manager_view.coffee +++ b/app/js/app/views/authority_manager_view.coffee @@ -4,35 +4,21 @@ class App.Views.AuthorityManagerView extends Backbone.View { 'click .btn_add_node' : 'add_node' 'click .make_child' : 'make_child' - 'click .destroy' : 'destroy' } initialize: -> - _.bindAll @, 'render', 'add_node', 'make_child', 'destroy' + _.bindAll @, 'render', 'add_node', 'make_child' @template = _.template($('#authority_manager').html()) @treeview = new App.Views.TreeNodeView({model: @collection.first() }) @model = @collection.first() @bulksave = new App.Models.AuthorityBulkSave() @ - destroy: (e) -> - e.preventDefault() - view = @ - node = @model.search $(e.target).parent().data('node-id') - saveset = node.setup_children_for_persistence((n) -> - n.set('ancestry',node.parent().get('_id')) - n.detach() - node.get('parent').attach n - ) - node.destroy() - @bulksave.save({ model: saveset }) - make_child: (e) -> e.preventDefault() - self = @model.search $(e.target).parent().data('node-id') - new_parent = @model.search $(e.target).parent().parent().prev().find('div').data('node-id') - view = @ - + self = @model.search $(e.target).parent().parent().parent().data('node-id') + new_parent = @model.search $(e.target).parent().parent().parent().parent().prev().find('div').data('node-id') + children = self.children() self.detach() diff --git a/app/js/app/views/note_view.coffee b/app/js/app/views/note_view.coffee index d00fd88..d2fee0f 100644 --- a/app/js/app/views/note_view.coffee +++ b/app/js/app/views/note_view.coffee @@ -2,7 +2,7 @@ class App.Views.NoteView extends Backbone.View className: "note" events: -> { - 'blur input': 'save_note' + 'blur textarea': 'save_note' 'mouseover':'mouseon' 'mouseout':'mouseoff' 'click a.delete': 'delete_note' diff --git a/app/js/app/views/tree_node_view.coffee b/app/js/app/views/tree_node_view.coffee index 5533774..65a9e51 100644 --- a/app/js/app/views/tree_node_view.coffee +++ b/app/js/app/views/tree_node_view.coffee @@ -1,10 +1,27 @@ class App.Views.TreeNodeView extends Backbone.View tagName: "li" + events: -> + 'click .destroy' : 'destroy' initialize: -> @template = _.template($('#tree_node').html()) - _.bindAll @, 'render' + _.bindAll @, 'render', 'destroy' @model.children().on('remove', @render) @model.children().on('add', @render) + @bulksave = new App.Models.AuthorityBulkSave() + + destroy: (e) -> + e.preventDefault() + node = @model + + saveset = node.setup_children_for_persistence((n) -> + n.set('ancestry',node.parent().get('_id')) + n.detach() + node.get('parent').attach n + ) + node.destroy() + if (saveset.length > 0) + @bulksave.save({ model: saveset }) + false render: -> diff --git a/public/javascripts/templates/note.ejs b/public/javascripts/templates/note.ejs index 8c83a3b..9b69091 100644 --- a/public/javascripts/templates/note.ejs +++ b/public/javascripts/templates/note.ejs @@ -1,5 +1,6 @@ - +
+ x c \ No newline at end of file diff --git a/public/javascripts/templates/tree_node.ejs b/public/javascripts/templates/tree_node.ejs index a269c61..89b89d9 100644 --- a/public/javascripts/templates/tree_node.ejs +++ b/public/javascripts/templates/tree_node.ejs @@ -1 +1,7 @@ -
<%= name %>mcx
\ No newline at end of file +
+ <%= name %> +
+ +   +
+
\ No newline at end of file