summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Posselt <Raydiation@users.noreply.github.com>2014-02-06 21:20:27 +0100
committerBernhard Posselt <Raydiation@users.noreply.github.com>2014-02-06 21:20:27 +0100
commitd3528d56b8fce33a340908d331745150199abe28 (patch)
tree49c4abbaa562fe3f44f93c5d68bd7dd0349bffd9
parente9e689e614d09b6c343cea6a8d03bc3ded859dfa (diff)
parentacec12a5dc6de8e3427165c81f9c6a79f4355e9b (diff)
Merge pull request #472 from sub/issue456
Rename folders (FIX #456)
-rw-r--r--js/app/services/businesslayer/folderbusinesslayer.coffee20
-rw-r--r--js/public/app.js21
-rw-r--r--templates/part.listfolder.php23
3 files changed, 58 insertions, 6 deletions
diff --git a/js/app/services/businesslayer/folderbusinesslayer.coffee b/js/app/services/businesslayer/folderbusinesslayer.coffee
index acb3b4a58..2be1c415a 100644
--- a/js/app/services/businesslayer/folderbusinesslayer.coffee
+++ b/js/app/services/businesslayer/folderbusinesslayer.coffee
@@ -155,6 +155,24 @@ FeedModel, $rootScope) ->
@_folderModel.removeByName(folderName)
+ edit: (folderId) ->
+ folder = @_folderModel.getById(folderId)
+ folder.editing = true
+ folder.originalValue = folder.name
+
+
+ rename: (folderId, folderName) ->
+ folder = @_folderModel.getById(folderId)
+ folder.editing = false
+ @_persistence.renameFolder(folderId, folderName)
+
+
+ cancel: (folderId) ->
+ folder = @_folderModel.getById(folderId)
+ folder.editing = false
+ folder.name = folder.originalValue
+
+
import: (xml) ->
opml = @_opmlParser.parseXML(xml)
@_importElement(opml, 0)
@@ -187,4 +205,4 @@ FeedModel, $rootScope) ->
ActiveFeed, Persistence, FeedType, ItemModel,
OPMLParser, NewestItem, FeedModel, $rootScope)
-] \ No newline at end of file
+]
diff --git a/js/public/app.js b/js/public/app.js
index f8002b608..789ab42e8 100644
--- a/js/public/app.js
+++ b/js/public/app.js
@@ -1494,6 +1494,27 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
return this._folderModel.removeByName(folderName);
};
+ FolderBusinessLayer.prototype.edit = function(folderId) {
+ var folder;
+ folder = this._folderModel.getById(folderId);
+ folder.editing = true;
+ return folder.originalValue = folder.name;
+ };
+
+ FolderBusinessLayer.prototype.rename = function(folderId, folderName) {
+ var folder;
+ folder = this._folderModel.getById(folderId);
+ folder.editing = false;
+ return this._persistence.renameFolder(folderId, folderName);
+ };
+
+ FolderBusinessLayer.prototype.cancel = function(folderId) {
+ var folder;
+ folder = this._folderModel.getById(folderId);
+ folder.editing = false;
+ return folder.name = folder.originalValue;
+ };
+
FolderBusinessLayer.prototype["import"] = function(xml) {
var opml;
opml = this._opmlParser.parseXML(xml);
diff --git a/templates/part.listfolder.php b/templates/part.listfolder.php
index 23775f971..49a83eb24 100644
--- a/templates/part.listfolder.php
+++ b/templates/part.listfolder.php
@@ -11,10 +11,22 @@
data-id="{{ folder.id }}"
droppable>
<button class="collapse"
+ ng-hide="folder.editing"
title="<?php p($l->t('Collapse'));?>"
ng-click="folderBusinessLayer.toggleFolder(folder.id)"></button>
+ <div ui-if="folder.editing" class="rename-feed">
+ <input type="text" ng-model="folder.name" autofocus>
+ <button title="<?php p($l->t('Cancel')); ?>"
+ ng-click="folderBusinessLayer.cancel(folder.id)"
+ class="action-button back-button action"></button>
+ <button title="<?php p($l->t('Save')); ?>"
+ ng-click="folderBusinessLayer.rename(folder.id, folder.name)"
+ class="action-button create-button action">
+ </button>
+ </div>
<a href="#"
class="title folder-icon"
+ ng-hide="folder.editing"
ng-click="folderBusinessLayer.load(folder.id)"
ng-class="{
'progress-icon': !folder.id,
@@ -27,7 +39,7 @@
<span class="utils">
<button ng-click="folderBusinessLayer.delete(folder.id)"
- ng-hide="!folder.id"
+ ng-hide="folder.editing || !folder.id"
class="svg action delete-icon delete-button"
title="<?php p($l->t('Delete folder')); ?>"
oc-tooltip></button>
@@ -49,10 +61,11 @@
ng-show="folder.error"
oc-tooltip></button>
-<!-- <button class="svg action edit-icon"
- ng-click="renameFolder(folder.id)"
- title="<?php p($l->t('Rename folder')); ?>"></button>
--->
+ <button class="svg action rename-feed-icon"
+ ng-hide="folder.editing"
+ ng-click="folderBusinessLayer.edit(folder.id)"
+ title="<?php p($l->t('Rename folder')); ?>"
+ oc-tooltip></button>
</span>
<ul>