summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-04-13 22:48:31 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-04-13 22:48:31 +0200
commitce7cd121f42b093569d7a31fac3bcd5837429cff (patch)
tree5cbe7751eb4c53cffd0ea1cbd61be4104e212462 /js
parent0fa0fb22c72653de35eb3ff8b9ffcf833a96e901 (diff)
fix import scoping issue that caused feeds not to be imported at times, set created folders to be opened by default
Diffstat (limited to 'js')
-rw-r--r--js/app/controllers/settingscontroller.coffee1
-rw-r--r--js/app/services/bl/folderbl.coffee24
-rw-r--r--js/app/services/models/feedmodel.coffee2
-rw-r--r--js/public/app.js52
-rw-r--r--js/tests/services/bl/folderblSpec.coffee3
5 files changed, 50 insertions, 32 deletions
diff --git a/js/app/controllers/settingscontroller.coffee b/js/app/controllers/settingscontroller.coffee
index d573e1213..3c6a7771e 100644
--- a/js/app/controllers/settingscontroller.coffee
+++ b/js/app/controllers/settingscontroller.coffee
@@ -34,6 +34,7 @@ angular.module('News').controller 'SettingsController',
try
FolderBl.import(fileContent)
catch error
+ console.error error
$scope.error = true
] \ No newline at end of file
diff --git a/js/app/services/bl/folderbl.coffee b/js/app/services/bl/folderbl.coffee
index abba97054..42c1d9752 100644
--- a/js/app/services/bl/folderbl.coffee
+++ b/js/app/services/bl/folderbl.coffee
@@ -132,18 +132,24 @@ ItemModel, ShowAll, _ExistsError, OPMLParser)->
_importElement: (opml, parentFolderId) ->
for item in opml.getItems()
if item.isFolder()
- try
- @create item.getName(), (data) =>
- @_importElement(item, data.folders[0].id)
- catch error
- if error instanceof _ExistsError
- folder = @_folderModel.getByName(item.getName())
- @open(folder.id)
- @_importElement(item, folder.id)
+ do (item) =>
+ try
+ @create item.getName(), (data) =>
+ @_importElement(item, data.folders[0].id)
+ catch error
+ if error instanceof _ExistsError
+ folder = @_folderModel.getByName(item.getName())
+ @open(folder.id)
+ @_importElement(item, folder.id)
+ else
+ console.info error
else
try
- @_feedBl.create(item.getUrl(), parentFolderId)
+ do (item) =>
+ @_feedBl.create(item.getUrl(), parentFolderId)
catch error
+ if not error instanceof _ExistsError
+ console.info error
return new FolderBl(FolderModel, FeedBl, ShowAll, ActiveFeed, Persistence,
diff --git a/js/app/services/models/feedmodel.coffee b/js/app/services/models/feedmodel.coffee
index 405ea2651..e0006e8d2 100644
--- a/js/app/services/models/feedmodel.coffee
+++ b/js/app/services/models/feedmodel.coffee
@@ -41,6 +41,8 @@ angular.module('News').factory '_FeedModel',
if data.faviconLink == null
data.faviconLink = 'url(' +
@_utils.imagePath('news', 'rss.svg') + ')'
+ else
+ data.faviconLink = 'url(' + data.faviconLink + ')'
###
We want to add a feed on the client side before
we have an id from the server. Once the server returns
diff --git a/js/public/app.js b/js/public/app.js
index 358b1dacc..04dfaaf79 100644
--- a/js/public/app.js
+++ b/js/public/app.js
@@ -468,6 +468,7 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
return FolderBl["import"](fileContent);
} catch (_error) {
error = _error;
+ console.error(error);
return $scope.error = true;
}
};
@@ -993,7 +994,7 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
};
FolderBl.prototype._importElement = function(opml, parentFolderId) {
- var error, folder, item, _i, _len, _ref, _results,
+ var error, item, _i, _len, _ref, _results,
_this = this;
_ref = opml.getItems();
@@ -1001,26 +1002,37 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
item = _ref[_i];
if (item.isFolder()) {
+ _results.push((function(item) {
+ var error, folder;
+
+ try {
+ return _this.create(item.getName(), function(data) {
+ return _this._importElement(item, data.folders[0].id);
+ });
+ } catch (_error) {
+ error = _error;
+ if (error instanceof _ExistsError) {
+ folder = _this._folderModel.getByName(item.getName());
+ _this.open(folder.id);
+ return _this._importElement(item, folder.id);
+ } else {
+ return console.info(error);
+ }
+ }
+ })(item));
+ } else {
try {
- _results.push(this.create(item.getName(), function(data) {
- return _this._importElement(item, data.folders[0].id);
- }));
+ _results.push((function(item) {
+ return _this._feedBl.create(item.getUrl(), parentFolderId);
+ })(item));
} catch (_error) {
error = _error;
- if (error instanceof _ExistsError) {
- folder = this._folderModel.getByName(item.getName());
- this.open(folder.id);
- _results.push(this._importElement(item, folder.id));
+ if (!error instanceof _ExistsError) {
+ _results.push(console.info(error));
} else {
_results.push(void 0);
}
}
- } else {
- try {
- _results.push(this._feedBl.create(item.getUrl(), parentFolderId));
- } catch (_error) {
- error = _error;
- }
}
}
return _results;
@@ -1455,6 +1467,8 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
}
if (data.faviconLink === null) {
data.faviconLink = 'url(' + this._utils.imagePath('news', 'rss.svg') + ')';
+ } else {
+ data.faviconLink = 'url(' + data.faviconLink + ')';
}
/*
We want to add a feed on the client side before
@@ -1933,7 +1947,7 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
(function() {
- angular.module('News').factory('_OPMLParser', function() {
+ angular.module('News').factory('OPMLParser', function() {
var Feed, Folder, OPMLParser;
Feed = (function() {
@@ -2018,7 +2032,7 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
return OPMLParser;
})();
- return OPMLParser;
+ return new OPMLParser();
});
}).call(this);
@@ -2577,12 +2591,6 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
}
]);
- angular.module('News').factory('OPMLParser', [
- '_OPMLParser', function(_OPMLParser) {
- return new _OPMLParser();
- }
- ]);
-
}).call(this);
// Generated by CoffeeScript 1.6.2
diff --git a/js/tests/services/bl/folderblSpec.coffee b/js/tests/services/bl/folderblSpec.coffee
index 8bb40033d..49f68634f 100644
--- a/js/tests/services/bl/folderblSpec.coffee
+++ b/js/tests/services/bl/folderblSpec.coffee
@@ -273,12 +273,13 @@ describe 'FolderBl', ->
</head>
<body>
<outline text="Design" title="Design" />
+ <outline text="test" title="test"></outline>
</body>
</opml>'
@FolderBl.import(xml)
- expect(@persistence.createFolder).toHaveBeenCalledWith('Design', 0,
+ expect(@persistence.createFolder).toHaveBeenCalledWith('test', 0,
jasmine.any(Function))
expect(@persistence.createFeed).not.toHaveBeenCalled()