From 78003ad56fa039e4a9d39b80156c4fda82ea8637 Mon Sep 17 00:00:00 2001 From: j <0x006A@0x2620.org> Date: Tue, 4 Jun 2013 11:59:36 +0000 Subject: [PATCH] return request id in list item functions, that way pending requests get canceled and init gets never called for outdated values of pandora.user.ui.find and its not needed to pass the value of query to init --- static/js/pandora/list.js | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/static/js/pandora/list.js b/static/js/pandora/list.js index 9d0096bf4..2fed35035 100644 --- a/static/js/pandora/list.js +++ b/static/js/pandora/list.js @@ -82,11 +82,10 @@ pandora.ui.list = function() { id: 'list', items: function(data, callback) { //Ox.Log('', 'data, pandora.Query.toObject', data, pandora.Query.toObject()) - pandora.api.find(Ox.extend(data, { + return pandora.api.find(Ox.extend(data, { query: pandora.user.ui.find, keys: data.keys ? ['modified'].concat(data.keys) : void 0 }), callback); - return Ox.clone(data, true); }, scrollbarVisible: true, selected: pandora.user.ui.listSelection, @@ -161,10 +160,9 @@ pandora.ui.list = function() { }; }, items: function(data, callback) { - pandora.api.find(Ox.extend(data, { + return pandora.api.find(Ox.extend(data, { query: pandora.user.ui.find }), callback); - return Ox.clone(data, true); }, keys: ['director', 'id', 'modified', 'posterRatio', 'title', 'year'], selected: pandora.user.ui.listSelection, @@ -230,7 +228,7 @@ pandora.ui.list = function() { }; }, items: function(data, callback) { - pandora.api.find(Ox.extend(data, { + return pandora.api.find(Ox.extend(data, { query: pandora.user.ui.find, clips: { query: pandora.getClipsQuery(), @@ -238,7 +236,6 @@ pandora.ui.list = function() { keys: [] } }), callback); - return Ox.clone(data, true); }, keys: ['clips', 'director', 'duration', 'id', 'modified', 'posterRatio', 'title', 'videoRatio', 'year'], selected: pandora.user.ui.listSelection, @@ -347,14 +344,13 @@ pandora.ui.list = function() { items: function(data, callback) { var clipsQuery = pandora.getClipsQuery(), isClipsQuery = !!clipsQuery.conditions.length; - pandora.api.find(Ox.extend(data, Ox.extend({ + return pandora.api.find(Ox.extend(data, Ox.extend({ query: pandora.user.ui.find }, isClipsQuery ? {clips: { query: clipsQuery, items: 1000000, keys: [] }} : {})), callback); - return Ox.clone(data, true); }, keys: ['clips', 'director', 'duration', 'id', 'modified', 'posterRatio', 'rendered', 'title', 'year'], selected: pandora.user.ui.listSelection, @@ -410,15 +406,15 @@ pandora.ui.list = function() { }); }, init: function(data) { - var folder, list; - if (data.query.conditions.length == 0) { + var find = pandora.user.ui.find, folder, list; + if (find.conditions.length == 0) { pandora.$ui.allItems.update(data.items); } else if ( - data.query.conditions.length == 1 - && data.query.conditions[0].key == 'list' - && data.query.conditions[0].operator == '==' + find.conditions.length == 1 + && find.conditions[0].key == 'list' + && find.conditions[0].operator == '==' ) { - list = data.query.conditions[0].value; + list = find.conditions[0].value; folder = pandora.getListData(list).folder; if (pandora.$ui.folderList[folder]) { pandora.$ui.folderList[folder].value(