bunch of cleanup
This commit is contained in:
parent
b67b763d89
commit
d64c6b3f16
8 changed files with 82 additions and 16 deletions
|
@ -38,6 +38,7 @@ function TopLinksCtrl($scope, feeds, feedItems, downloader) {
|
|||
newFeedItem.date = 'Date';
|
||||
newFeedItem.description = 'Long Description<br /> with HTML <b>and stuff</b>';
|
||||
newFeedItem.audioUrl = 'http://example.com/1';
|
||||
newFeedItem.queued = 1;
|
||||
|
||||
ixDbEz.put("feedItem", newFeedItem);
|
||||
|
||||
|
@ -50,6 +51,7 @@ function TopLinksCtrl($scope, feeds, feedItems, downloader) {
|
|||
newFeedItem.date = 'Date';
|
||||
newFeedItem.description = 'Second Long Description<br /> with HTML <b>and stuff</b>';
|
||||
newFeedItem.audioUrl = 'http://example.com/2';
|
||||
newFeedItem.queued = 0;
|
||||
|
||||
ixDbEz.put("feedItem", newFeedItem);
|
||||
};
|
||||
|
@ -66,9 +68,10 @@ function FeedCtrl($scope, $routeParams, feeds, pageSwitcher) {
|
|||
pageSwitcher.setBack('feeds');
|
||||
}
|
||||
|
||||
function QueueListCtrl($scope, $rootScope, $route, pageSwitcher, feedItems, feeds) {
|
||||
function QueueListCtrl($scope, $rootScope, pageSwitcher, feedItems, feeds, queueList) {
|
||||
$scope.queue = [];
|
||||
feedItems.list($scope);
|
||||
queueList.init($scope);
|
||||
feedItems.listQueue(queueList);
|
||||
|
||||
$scope.playItem = function(id) {
|
||||
feedItems.get(id, function(feedItem) {
|
||||
|
@ -116,7 +119,7 @@ function SettingsCtrl($scope, $route, settings, pageSwitcher) {
|
|||
alert('already Installed');
|
||||
// Already installed
|
||||
} else {
|
||||
var manifestURL = "http://192.168.100.37/b2gPodcast/manifest.webapp";
|
||||
var manifestURL = "http://localhost/b2gPodcast/package.manifest";
|
||||
var installApp = navigator.mozApps.install(manifestURL);
|
||||
|
||||
installApp.onsuccess = function(data) {
|
||||
|
@ -183,7 +186,7 @@ function TopBarCtrl($scope, player, pageSwitcher)
|
|||
};
|
||||
}
|
||||
|
||||
function InfoCtrl($scope)
|
||||
function InfoCtrl($scope, pageSwitcher)
|
||||
{
|
||||
pageSwitcher.change('info');
|
||||
}
|
||||
|
|
|
@ -32,6 +32,21 @@ angular.module('podcasts.services', ['podcasts.database'])
|
|||
}
|
||||
}
|
||||
}])
|
||||
.value('queueList', {
|
||||
queue: [],
|
||||
scope: null,
|
||||
init: function(scope) {
|
||||
this.scope = scope;
|
||||
scope.queue = this.queue = [];
|
||||
|
||||
},
|
||||
addToQueue: function(item) {
|
||||
this.queue.push(item);
|
||||
if (typeof this.scope !== "undefined") {
|
||||
this.scope.$apply();
|
||||
}
|
||||
}
|
||||
})
|
||||
.service('feedItems', ['db', function(db) {
|
||||
return {
|
||||
db: db,
|
||||
|
@ -61,11 +76,49 @@ angular.module('podcasts.services', ['podcasts.database'])
|
|||
newFeedItem.date = Date.parse(searchableXml.find('pubDate').text());
|
||||
newFeedItem.description = searchableXml.find('description').text();
|
||||
newFeedItem.audioUrl = searchableXml.find('enclosure').attr('url');
|
||||
newFeedItem.queued = 1;
|
||||
|
||||
this.db.put("feedItem", newFeedItem, undefined, function() {
|
||||
onSuccess(newFeedItem);
|
||||
});
|
||||
},
|
||||
getNextInQueue: function(feedItem) {
|
||||
var tempQueueList = { queue: [], addToQueue: function(item) { this.queue.push(item); } };
|
||||
var nextFeedItem = null;
|
||||
this.listQueue(tempQueueList, function() {
|
||||
var returnNextValue = false;
|
||||
angular.forEach(tempQueueList.queue, function(key, value) {
|
||||
if (returnNextValue) {
|
||||
nextFeedItem = value;
|
||||
returnNextValue = false;
|
||||
}
|
||||
if (feedItem.id === value.id) {
|
||||
returnNextValue = true;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return nextFeedItem;
|
||||
},
|
||||
listQueue: function(queueList, done) {
|
||||
this.db.getCursor("feedItem", function(ixDbCursorReq)
|
||||
{
|
||||
if(typeof ixDbCursorReq !== "undefined") {
|
||||
ixDbCursorReq.onsuccess = function (e) {
|
||||
var cursor = ixDbCursorReq.result || e.result;
|
||||
if (cursor) {
|
||||
queueList.addToQueue(cursor.value);
|
||||
|
||||
cursor.continue();
|
||||
} else {
|
||||
if (typeof done === 'function') {
|
||||
done();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}, undefined, IDBKeyRange.only(1), undefined, 'ixQueued');
|
||||
},
|
||||
list: function($scope) {
|
||||
this.db.getCursor("feedItem", function(ixDbCursorReq)
|
||||
{
|
||||
|
@ -210,7 +263,7 @@ angular.module('podcasts.services', ['podcasts.database'])
|
|||
finishSave(newFeed);
|
||||
});
|
||||
}, function() {
|
||||
console.log('Could not fetch XML for feed, adding just URL for now');
|
||||
console.error('Could not fetch XML for feed, adding just URL for now');
|
||||
var newFeed = {};
|
||||
newFeed.url = url;
|
||||
|
||||
|
@ -357,7 +410,6 @@ angular.module('podcasts.services', ['podcasts.database'])
|
|||
}
|
||||
|
||||
ngModel.$render = function() {
|
||||
console.log(ngModel);
|
||||
if (ngModel.$modelValue.value !== '') {
|
||||
ngModel.$viewValue = ngModel.$modelValue.value;
|
||||
}
|
||||
|
@ -446,6 +498,17 @@ angular.module('podcasts.services', ['podcasts.database'])
|
|||
feedItem.position = Math.floor(event.target.currentTime);
|
||||
db.put("feedItem", feedItem);
|
||||
});
|
||||
|
||||
// TODO: add something here for when audio is done to remove from queue and go to next song
|
||||
this.audio.bind('ended', function(event) {
|
||||
feedItem.queued = 0;
|
||||
feedItem.position = 0;
|
||||
db.put("feedItem", feedItem);
|
||||
|
||||
// start next item
|
||||
// get next item from queue
|
||||
play(nextFeedItem, $scope);
|
||||
});
|
||||
},
|
||||
pause: function() {
|
||||
this.audio[0].pause();
|
||||
|
@ -497,7 +560,6 @@ angular.module('podcasts.services', ['podcasts.database'])
|
|||
},
|
||||
setBack: function(backPage) {
|
||||
this.backPage = backPage;
|
||||
console.log(this);
|
||||
},
|
||||
getNextPage: function(current) {
|
||||
var nextPage,
|
||||
|
@ -656,6 +718,7 @@ angular.module('podcasts.database', []).
|
|||
ixDbEz.createObjStore("feedItem", "id", true);
|
||||
ixDbEz.createIndex("feedItem", "ixGuid", "guid", true);
|
||||
ixDbEz.createIndex("feedItem", "ixFeedId", "feedId");
|
||||
ixDbEz.createIndex("feedItem", "ixQueued", "queued");
|
||||
ixDbEz.createObjStore("setting", "id", true);
|
||||
ixDbEz.createIndex("setting", "ixName", "name", true);
|
||||
});
|
||||
|
|
3
lib/angular/angular.js
vendored
3
lib/angular/angular.js
vendored
|
@ -4870,7 +4870,8 @@ function $InterpolateProvider() {
|
|||
}];
|
||||
}
|
||||
|
||||
var URL_MATCH = /^([^:]+):\/\/(\w+:{0,1}\w*@)?([\w\.-]*)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,
|
||||
// Colin: adjusted URL_MATCH to support curly braces in packaged apps app://{asdf-fda-asdf} url format
|
||||
var URL_MATCH = /^([^:]+):\/\/(\w+:{0,1}\w*@)?([\w\.{}-]*)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,
|
||||
PATH_MATCH = /^([^\?#]*)?(\?([^#]*))?(#(.*))?$/,
|
||||
HASH_MATCH = PATH_MATCH,
|
||||
DEFAULT_PORTS = {'http': 80, 'https': 443, 'ftp': 21};
|
||||
|
|
|
@ -304,9 +304,6 @@ var ixDbEz = (function () {
|
|||
// skipSync - (optional) If true, skips all data synchronization in ixDbSync for a single transaction.
|
||||
//*********************************************************************************************************
|
||||
function Put_(objectStoreName, value, key, onSuccess, onError, skipSync) {
|
||||
console.log(objectStoreName);
|
||||
console.log(value);
|
||||
console.log(key);
|
||||
if (ixDb) {
|
||||
//The database is being created or upgraded, re-run when completed.
|
||||
if(ixDbVersionTansaction) {
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
"version": "0.0.1",
|
||||
"description": "Podcast Manager for Firefox OS",
|
||||
"icons": {
|
||||
"128": "/b2gPodcast/blaIcon128.png"
|
||||
"128": "/blaIcon128.png"
|
||||
},
|
||||
"launch_path": "/b2gPodcast/index.html",
|
||||
"launch_path": "/index.html",
|
||||
"developer": {
|
||||
"name": "Colin Frei",
|
||||
"url": "http://colinfrei.com"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "Podcast",
|
||||
"package_path": "http://192.168.100.37/b2gPodcast/package.zip",
|
||||
"package_path": "http://labs.colinfrei.com/package.zip",
|
||||
"version": "1.0"
|
||||
}
|
|
@ -17,9 +17,11 @@
|
|||
<option value="0">none</option>
|
||||
</select>
|
||||
</div>
|
||||
<h3>Description</h3>
|
||||
<div>
|
||||
{{ feed.summary }}
|
||||
</div>
|
||||
<h3>Episodes</h3>
|
||||
<div ng-repeat="item in feed.items | orderBy:'date'" class="listItem">
|
||||
<div class="playButton" style="width: 50px; float: right;">
|
||||
<span ng-click="playItem(item.id)"><i ng-class="{hasAudio: item.audio}" class="icon-play"></i></span>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div id="queueList" pull-to-refresh>
|
||||
<div id="queueList" pull-to-refresh="pull-to-refresh">
|
||||
<div id="scroller">
|
||||
<div id="pullDown">
|
||||
<span class="pullDownIcon"></span><span class="pullDownLabel">Pull down to refresh...</span>
|
||||
|
@ -12,7 +12,7 @@
|
|||
{{ feedItem.date | timeAgo }}
|
||||
</div>
|
||||
</div>
|
||||
<div ng-show="queue.length < 1" class="pullDownMessage">
|
||||
<div ng-hide="queue.length" class="pullDownMessage">
|
||||
<i class="icon-arrow-down"></i> Pull down to refresh.
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue