Renaming folder, backboneified.

This commit is contained in:
Samuel Clay 2012-05-23 20:20:11 -07:00
parent 19eaa0e7c7
commit f997d48f1c
3 changed files with 21 additions and 13 deletions

View file

@ -54,6 +54,13 @@ NEWSBLUR.Models.FeedOrFolder = Backbone.Model.extend({
});
return true;
},
rename: function(new_folder_name) {
var folder_title = this.get('folder_title');
var in_folder = this.collection.options.title;
NEWSBLUR.assets.rename_folder(folder_title, new_folder_name, in_folder);
this.set('folder_title', new_folder_name);
}
});

View file

@ -5412,22 +5412,11 @@
manage_menu_rename_folder: function(folder, $folder) {
var self = this;
var in_folder = '';
var $parent = $folder.parents('li.folder');
var new_folder_name = $('.NB-menu-manage-folder-rename-confirm .NB-menu-manage-title').val();
if (new_folder_name.length <= 0) return this.hide_confirm_rename_menu_item();
var folder_view = NEWSBLUR.assets.folders.get_view($folder);
if ($parent.length) {
in_folder = $parent.eq(0).find('.folder_title_text').eq(0).text();
}
this.model.rename_folder(folder, new_folder_name, in_folder, function() {
});
$('.folder_title_text', $folder).eq(0).text(new_folder_name);
if (new_folder_name.length > 0) folder_view.model.rename(new_folder_name);
this.hide_confirm_rename_menu_item(true);
$('.NB-menu-manage-folder-rename').parents('.NB-menu-manage').data('folder_name', new_folder_name);
},
// =============================

View file

@ -19,6 +19,14 @@ NEWSBLUR.Views.Folder = Backbone.View.extend({
"mouseleave" : "remove_hover_inverse"
},
initialize: function() {
_.bindAll(this, 'update_title');
if (this.model) {
// Root folder does not have a model.
this.model.bind('change:folder_title', this.update_title);
}
},
render: function() {
var depth = this.options.depth;
this.options.collapsed = _.contains(NEWSBLUR.Preferences.collapsed_folders, this.options.title);
@ -75,6 +83,10 @@ NEWSBLUR.Views.Folder = Backbone.View.extend({
return $folder;
},
update_title: function() {
this.$('.folder_title_text').html(this.model.get('folder_title'));
},
// ==========
// = Events =
// ==========