0

Sidebar Grid of images issue

Hi all

Just started playing with ConnectedTV and have ran into a problem of sorts

Basically I am fetching a live JSON feed, and parsing that. A grid is then being used to create x number of cells which I would like to populate with the images from the JSON feed. I have verified that the images are publicly visible, etc - so there are no issues there. Furthermore the terminal is showing the correct URLS are being pulled. The problem is the grid simply isnt being created sad.gif

Any help would be appreciated - my code is below in full:

CODE
var SampleSidebarView = new KONtx.Class({
title: 'SampleSidebarView',

Extends: KONtx.system.SidebarView,


initView: function() {
// normally you wouldn't need to do this but once on startup (KONtx.application's onApplicationStartup for example), but for illustrative purposes doing it often here
// this._profileConnection();

},

createView: function() {
this.topContainer = new KONtx.control.EmptySpace({
styles: {
height: 52
}
}).appendTo(this);

this.sectionImage = new KONtx.element.Image({
src: 'Images/960x540/icon-logo-large.png',
styles: {
width: Theme.viewSpecs.SIDE_BAR.width,
height: 52
}
}).appendTo(this.topContainer);
this.myPhotosContainer = new KONtx.control.EmptySpace({
styles: {
vOffset: this.topContainer.outerHeight
}
}).appendTo(this);

this.myPhotos = new KONtx.element.Text({
label: 'My Photos',
styles: {
fontSize: '26px',
height: 30,
color: '#AAAAAA'
}
}).appendTo(this.myPhotosContainer);
this.fetchData();
},
fetchData: function() {
var u = new URL();
u.location = 'xxxx.xxxx.com/etc/blah/blah';
u.fetchAsync(this.handleFetchResponse.bindTo(this));
},

handleFetchResponse: function(u) {
if(u.response != 200) {
// request failed
return;
}
// do whatever you need to do to format the data and store in "result"
else {
var my_data_struct = JSON.parse(u.result);
this.showImages(my_data_struct);
}
},

showImages: function(data){
var self = this;
var introContainer = new KONtx.control.EmptySpace({
styles: {
vOffset: this.myPhotosContainer.outerHeight
}
}).appendTo(self);
var images = data.feed.entry;
var mygrid = new KONtx.control.Grid({
dataSet: images,
rows: 4,
columns: 1,
cellCreator: function () {
var cell = new KONtx.control.GridCell({
styles: {
height: 77,
width: 77
}
});
cell.imageBox = new KONtx.element.Container({
styles: { width:77, height:77},
}).appendTo(cell);
cell.image = new KONtx.element.Image({
styles: {
width: 77,
height: 77
}

}).appendTo(cell.imageBox);
return cell;
},
cellUpdater: function (cell, dataItem) {
//log("data " + dataItem.links[2].mediaGroup[0].thumbnail[0].url);
cell.image.src = dataItem.links[2].mediaGroup[0].thumbnail[0].url;
}
}).appendTo(introContainer);
var thumbNail = new KONtx.element.Image({
src: data.feed.entry[0].links[2].mediaGroup[0].thumbnail[0].url,
styles: {
width: 77,
height: 77
}
}).appendTo(introContainer);

},

updateView: function() {
//this.fetchData(); //ignore this
},
_profileConnection: function() {
//KONtx.speedtest.profileConnection(function(speed) { KONtx.messages.store("bandwidthBitrate", speed); });
}
});

by
20 Replies
  • You shouldn't be creating a grid based on the response to an XHR request. The grid should be created inside the createView (where all "markup" is created) and then you would call this.controls.mygrid.changeDataset(XHR_fetched_data); inside your request callback handler.

    -Jeremy
    0
  • @Jeremy

    Thanks for the reply :)}
    0
  • I dont know if this will be of any use, but the following is from the debug terminal - its returning no errors as I said, and appears to do everything, just the widget is not displaying anyting

    CODE
    WR 00:00:29:328: [T:31971] FINISHED 14.23 KB IN 0.38 s (37.35 KB/s) [http://www.someurl.com/pva/data/users/ec51b165c3e0498288137937f6c4bd66/feed/all?page=1&fmt=simplejson]
    WM 00:00:29:333: [T:31971] [KONtx/VideoSample] {BaseGrid-8} :: changePage (page index: 0, cell 0 data index: 0, cell count: 6)
    WM 00:00:29:357: [T:31971] [KONtx/VideoSample] {BaseGrid-8} :: _onDataPage (items 1-4/4)
    WM 00:00:29:371: [T:31971] [KONtx/VideoSample] {BaseGrid-8} :: _layoutCell 0
    WM 00:00:29:395: [T:31971] [KONtx/VideoSample] {BaseGrid-8} :: _layoutCell 1
    WM 00:00:29:419: [T:31971] [KONtx/VideoSample] {BaseGrid-8} :: _layoutCell 2
    WM 00:00:29:443: [T:31971] [KONtx/VideoSample] {BaseGrid-8} :: _layoutCell 3
    WM 00:00:29:445: [T:31971] [KONtx/VideoSample] {BaseGrid-8} :: _updateCell
    WM 00:00:29:446: [T:31971] [KONtx/VideoSample] {BaseGrid-8} :: _updateCell
    WM 00:00:29:448: [T:31971] [KONtx/VideoSample] {BaseGrid-8} :: _updateCell
    WM 00:00:29:464: [T:31971] [KONtx/VideoSample] {BaseGrid-8} :: _updateCell
    WM 00:00:29:467: [T:31971] [KONtx/VideoSample] {BaseGrid-8} :: _pageChanged
    WM 00:00:29:472: [T:31971] ******** Utils.TaskQ._runCurrent(): Name =
    WM 00:00:29:473: [T:31971] ** AppManager._sendVisibilityStatus @app id com.newbay.widgets.w1 @view id snippet-main @vis false
    WM 00:00:29:474: [T:31971] ** AppManager._send() @subject onHideView @app id com.newbay.widgets.w1 @seq 33 @args {"filename":"Framework/kontx/1.1/etc/window.xml","id":"snippet-main","type":"SNIPPETS"}
    WM 00:00:29:492: [T:31971] [KONtx/VideoSample] {HostEventManager} :: Got HostEvent: onHideView
    WM 00:00:29:495: [T:31971] [KONtx/VideoSample] {AnchorSnippetView-1} :: _onHideView
    WM 00:00:29:495: [T:31971] [KONtx/VideoSample] {AnchorSnippetView-1} :: hideView
    WM 00:00:29:496: [T:31971] ** AppManager._handleDispatchedHostEvent() @subject onHideView @app id com.newbay.widgets.w1 @result
    WM 00:00:29:497: [T:31971] ** AppManager._send() Sent @subject onHideView @app id com.newbay.widgets.w1 @seq 33
    WR 00:00:29:497: [T:31971] FINISHED 2.32 KB IN 0.05 s (47.33 KB/s) [http://www.someurl.com/pva/thumbnail/bc/40/1258112872000__e86059129517.png?th=77&tw=77&s=true]
    WM 00:00:29:500: [T:31971] ******** Utils.TaskQ._runCurrent(): Name =
    WM 00:00:29:500: [T:31971] ** AppManager._sendVisibilityStatus @app id com.yahoo.widgets.tv.snippetsample @view id snippet-main @vis false
    WM 00:00:29:501: [T:31971] ** AppManager._send() @subject onHideView @app id com.yahoo.widgets.tv.snippetsample @seq 34 @args {"filename":"Framework/kontx/1.1/etc/window.xml","id":"snippet-main","type":"SNIPPETS"}
    WM 00:00:29:504: [T:31971] [KONtx/SnippetSample] {HostEventManager} :: Got HostEvent: onHideView
    WM 00:00:29:505: [T:31971] [KONtx/SnippetSample] {StaticSnippetView-1} :: _onHideView
    WM 00:00:29:506: [T:31971] [KONtx/SnippetSample] {StaticSnippetView-1} :: hideView
    WM 00:00:29:506: [T:31971] ** AppManager._handleDispatchedHostEvent() @subject onHideView @app id com.yahoo.widgets.tv.snippetsample @result
    WM 00:00:29:507: [T:31971] ** AppManager._send() Sent @subject onHideView @app id com.yahoo.widgets.tv.snippetsample @seq 34
    WR 00:00:29:507: [T:31971] FINISHED 23.93 KB IN 0.06 s (398.81 KB/s) [http://www.someurl.com/pva/thumbnail/f8/81/1258115791000__2f6eaa781206.jpg?th=77&tw=77&s=true]
    WM 00:00:29:511: [T:31971] ******** Utils.TaskQ._runCurrent(): Name =
    WM 00:00:29:512: [T:31971] ** AppManager._sendVisibilityStatus @app id com.yahoo.widgets.tv.widgetgallery @view id AnchorSnippet @vis false
    WM 00:00:29:513: [T:31971] ** AppManager._send() @subject onHideView @app id com.yahoo.widgets.tv.widgetgallery @seq 35 @args {"filename":"Framework/kontx/1.1/etc/window.xml","id":"AnchorSnippet","type":"SNIPPETS"}
    WM 00:00:29:514: [T:31971] [KONtx/Yahoo!® Widget Gallery] {HostEventManager} :: Got HostEvent: onHideView
    WM 00:00:29:515: [T:31971] [KONtx/Yahoo!® Widget Gallery] {SnippetView-1} :: _onHideView
    WM 00:00:29:515: [T:31971] [KONtx/Yahoo!® Widget Gallery] {SnippetView-1} :: hideView
    WM 00:00:29:516: [T:31971] ** AppManager._handleDispatchedHostEvent() @subject onHideView @app id com.yahoo.widgets.tv.widgetgallery @result
    WM 00:00:29:517: [T:31971] ** AppManager._send() Sent @subject onHideView @app id com.yahoo.widgets.tv.widgetgallery @seq 35
    WR 00:00:29:518: [T:31971] FINISHED 17.87 KB IN 0.05 s (350.43 KB/s) [http://www.someurl.com/pva/thumbnail/d8/c0/1258109942000__e03ff2178f6b.jpg?th=77&tw=77&s=true]
    WM 00:00:29:538: [T:31971] ******** Utils.TaskQ._runCurrent(): Name =
    WM 00:00:29:538: [T:31971] ** AppManager._sendVisibilityStatus @app id com.yahoo.widgets.tv.toolbox @view id snippet-main @vis false
    WM 00:00:29:539: [T:31971] ** AppManager._send() @subject onHideView @app id com.yahoo.widgets.tv.toolbox @seq 36 @args {"filename":"Framework/kontx/1.1/etc/window.xml","id":"snippet-main","type":"SNIPPETS"}
    WM 00:00:29:540: [T:31971] [KONtx/Toolbox Examples] {HostEventManager} :: Got HostEvent: onHideView
    WM 00:00:29:541: [T:31971] [KONtx/Toolbox Examples] {ToolboxSnippetView-1} :: _onHideView
    WM 00:00:29:543: [T:31971] [KONtx/Toolbox Examples] {ToolboxSnippetView-1} :: hideView
    WM 00:00:29:543: [T:31971] ** AppManager._handleDispatchedHostEvent() @subject onHideView @app id com.yahoo.widgets.tv.toolbox @result
    WM 00:00:29:544: [T:31971] ** AppManager._send() Sent @subject onHideView @app id com.yahoo.widgets.tv.toolbox @seq 36
    WR 00:00:29:545: [T:31971] FINISHED 28.43 KB IN 0.10 s (284.34 KB/s) [http://www.someurl.com/pva/thumbnail/88/c1/1258115792000__a09ee90dad47.jpg?th=77&tw=77&s=true]
    WM 00:00:29:563: [T:31971] ******** Utils.TaskQ._runCurrent(): Name =
    WM 00:00:29:563: [T:31971] ** main._handleViewLoaded() @conf [object Object]
    WM 00:00:29:564: [T:31971] ** main._handleViewLoaded() View found
    WM 00:00:29:564: [T:31971] ** AppManager._sendVisibilityStatus @app id com.newbay.widgets.w1 @view id view-Main @vis true
    WM 00:00:29:564: [T:31971] ******** Utils.TaskQ._runCurrent(): Name =
    WM 00:00:29:565: [T:31971] ** main._handleSentVisibilityStatus()
    WM 00:00:29:565: [T:31971] ** main._refreshView() @curr conf [object Object] @new conf [object Object]
    WM 00:00:29:565: [T:31971] ** AppManager.getView() @App ID com.newbay.widgets.w1 @View ID view-Main
    WM 00:00:29:566: [T:31971] !!!!!!!! AppManager.getView(): View has parent node already!
    WM 00:00:29:567: [T:31971] ** AppManager._loadView() @app id com.newbay.widgets.w1 @view id view-Main @conf [object Object] @app status LOADED @view status LOADED @doLoad false
    WM 00:00:29:567: [T:31971] ******** main.updateWaitIndicator(): Visible = null
    WM 00:00:29:568: [T:31971] ******** main._updateWaitIndicator(): Visible = 0
    WM 00:00:29:569: [T:31971] ** ui.__setContent() @old content com.newbay.widgets.w1-view-Main
    WM 00:00:29:569: [T:31971] ** ui.__setContent() @new content com.newbay.widgets.w1-view-Main
    WM 00:00:29:569: [T:31971] ** main._refreshSidebar() @type 1
    WM 00:00:29:570: [T:31971] ** main.updateIcons() @force type sb
    WM 00:00:29:570: [T:31971] ** main._refreshSidebar() nothing changed
    WM 00:00:29:570: [T:31971] ** main.updateNavButtons() @conf [object Object] @wants focus true
    WM 00:00:29:571: [T:31971] ** main.updateNavButtons() @btn sb.navButtonsByColor.red @marker sb.markers.navButtons.0
    WM 00:00:29:572: [T:31971] ** main.updateNavButtons() @btn sb.navButtonsByColor.green @marker sb.markers.navButtons.1
    WM 00:00:29:572: [T:31971] ** main.updateNavButtons() @btn sb.navButtonsByColor.yellowDisabled @marker sb.markers.navButtons.2
    WM 00:00:29:573: [T:31971] ** main.updateNavButtons() @btn sb.navButtonsByColor.blue @marker sb.markers.navButtons.3
    WM 00:00:29:573: [T:31971] ******** main.updateWaitIndicator(): Visible = undefined
    WM 00:00:29:574: [T:31971] ******** main._updateWaitIndicator(): Visible = 0
    WM 00:00:29:579: [T:31971] ** main._updateTVState() @forced state
    WM 00:00:29:579: [T:31971] ** main._updateTVState() @display mode sb
    WM 00:00:29:580: [T:31971] ** main._updateTVState() @new state 1 @old state 1
    WM 00:00:29:580: [T:31971] ** main._inVideoEndDelay() @allow end delay false @ticking false
    WM 00:00:29:580: [T:31971] ** main._findVideoPaths @states [object Object]
    WM 00:00:29:580: [T:31971] ** main._findVideoPaths @num paths 0
    EM 00:00:29:581: [T:31971] System::SetTvState inState = 0x1
    EM 00:00:29:581: [T:31971] + TV_OUTPUTS
    EM 00:00:29:581: [T:31971] AppHostIfaceSDL::SetState 1
    WM 00:00:29:581: [T:31971] ******** Utils.TaskQ._runCurrent(): Name =
    WM 00:00:29:582: [T:31971] ** main._handleSentVisibilityStatus()
    WM 00:00:29:583: [T:31971] ******** Utils.TaskQ._runCurrent(): Name =
    WM 00:00:29:583: [T:31971] ** main._handleSentVisibilityStatus()
    WM 00:00:29:586: [T:31971] ******** Utils.TaskQ._runCurrent(): Name =
    WM 00:00:29:586: [T:31971] ** main._handleSentVisibilityStatus()
    WM 00:00:29:588: [T:31971] ******** Utils.TaskQ._runCurrent(): Name =
    WM 00:00:29:588: [T:31971] ** main._handleSentVisibilityStatus()
    SB 00:00:30:498: [T:31971] SurfaceBook: curr = 14.629MB (87) : peak = 14.629MB (87)
    WM 00:00:31:757: [T:31971] ******** Utils.Doggy.check()
    WM 00:00:31:757: [T:31971] ** Utils.Doggy.getTimeLeft() @interval 2500 @time left -1 @now 1.26513e+12 @last poke 1.26513e+12
    WM 00:00:31:757: [T:31971] ******** Utils.invokeCallback()
    WM 00:00:31:757: [T:31971] ******** main._updateWaitIndicator(): Visible = 0
    SB 00:00:48:157: [T:31971] SurfaceBook: curr = 9.872MB (56) : peak = 14.629MB (87)
    0
  • QUOTE (ph3n0m @ Feb 2 2010, 04:46 AM) <{POST_SNAPBACK}>
    @Jeremy

    Thanks for the reply :)
    CODE
    cell.imageBox.image.setSrc(dataItem.links[2].mediaGroup[0].thumbnail[0].url);
    0
  • What was the error you were seeing in the log?

    -Jeremy
    0
  • my apologies for not replying - been busy playing with the code.

    in the end I got my grid of images working - although I am still battling with proper pagination of the sidebar.

    I was wondering if I posted the working code as is, (even though its only a demo/messing around code) - could someone critque it and maybe answer my question about pagination and a json feed, etc?
    0
  • sure.
    0
  • QUOTE (Jeremy Johnstone @ Feb 18 2010, 11:20 AM) <{POST_SNAPBACK}>
    sure.



    Ok here is the full code (obviously I have removed any specific urls, but this is the full code as is)

    Basically I am just wondering how do proper paging in the sidebar, given that my json feed returns more then 20 items

    CODE
    /**
    * @author pkelly
    */

    var SampleSidebarView = new KONtx.Class({
    ClassName: 'SampleSidebarView',

    Extends: KONtx.system.SidebarView,

    config: {
    rows: 3,
    columns: 3
    },
    initialize: function() {
    this.parent();

    },
    fetchData: function() {
    var u = new URL();
    var count = 20;
    var pageNum = 1;
    u.location = 'http://www.trylifecache.com/pva/data/users/ec51b165c3e0498288137937f6c4bd66/feed/all?page='+ pageNum +'&count='+ count +'&fmt=simplejson';
    u.fetchAsync(this.handleFetchResponse.bindTo(this));
    },
    handleFetchResponse: function(u) {
    if(u.response != 200) {
    // request failed
    return;
    }
    // do whatever you need to do to format the data and store in "result"
    else {
    var self = this;
    var imageArr = [];
    var my_data_struct = JSON.parse(u.result);
    var totalCount = my_data_struct.feed.totalResults;
    //if (totalCount > count){

    //}
    var images = my_data_struct.feed.entry;
    for (var i in images){
    var attr = [];
    var item = images[i];
    attr.push(item.links[2].mediaGroup[0].thumbnail[0].url);
    attr.push(item.title);
    attr.push(item.published);
    attr.push(item.links[2].mediaGroup[0].content[0].height);
    attr.push(item.links[2].mediaGroup[0].content[0].width);
    imageArr.push(attr);
    }
    }
    //this.cache.imgData = images(imageArr).slice(0,50).map(function(src,i){return{src:src,label:'Image #'+(i+1)}});
    this.cache.imgData = imageArr.slice(0).map(function(src,i){return{src:src[0],title:src[1],create:src[2],height:src[3],width:src[4],label:src[1]}});
    log(this.cache.imgData);

    this.controls.grid.changeDataset(this.cache.imgData);
    },
    createView: function (){

    var __baseID = (this.id||this.ClassName||this._ktxID+'.ImageGrid');

    this.controls = {};

    this.controls.headerText = new KONtx.element.Text({
    label: "My Recent Photos",
    wrap: true,
    truncation: 'end',
    styles: {
    fontSize: '20px',
    color: '#FFFFFF',
    textAlign: 'left',
    width: this.width,
    height: 36,
    hOffset: 5
    }
    }).appendTo(this);

    //
    // if this seems goofy, it's because we need to create the page
    // indicator and metadata container first so we can measure their
    // height and fit the grid in last.
    //
    this.controls.pageindicator = new KONtx.control.PageIndicator({
    id: __baseID+'.PageIndicator',
    styles: {
    vAlign: 'bottom',
    vOffset: this.height
    }
    }).appendTo(this);

    this.controls.metadata = new KONtx.control.MetadataDisplay({
    id: __baseID+'.Metadata',
    styles: {
    height: 23,
    vAlign: 'bottom',
    vOffset: this.height - this.controls.pageindicator.height
    }
    }).appendTo(this);

    this.controls.grid = new KONtx.control.Grid({
    id: __baseID+'.Grid',
    rows: this.config.rows,
    columns: this.config.columns,
    styles: {
    width: this.width,
    height: this.height -
    this.controls.headerText.height -
    this.controls.pageindicator.height -
    this.controls.metadata.height,
    vOffset: this.controls.headerText.height
    },
    cellCreator: this.imageCellCreator,
    cellUpdater: this.imageCellUpdater
    }).appendTo(this);

    //
    // and now that everyone's created, let's introduce them to each other.
    //
    this.controls.grid.attachAccessories( this.controls.pageindicator, this.controls.metadata );
    },

    updateView: function (){
    this.fetchData();
    //this.controls.grid.changeDataset(this.cache.imgData);
    },

    //
    // cell create/update methods get fired in context of grid
    //
    imageCellCreator: function () {
    return new KONtx.control.PhotoGridCell({
    styles: this.getCellDimensions(),
    events: {
    // this onSelect fires in context of cell
    onSelect: function (event){
    var dataItemNumber = this.getCellDataIndex() + 1;
    var dataItemData = this.getCellDataItem();
    log ("height: " + dataItemData.height);
    log ("width: " + dataItemData.width);
    var imageRef = dataItemData.src;
    imageRef = imageRef.replace(/thumbnail/, "photos");
    imageRef = imageRef.replace(/\?th=77\&tw=77\&s=true/g, "");
    KONtx.application.loadView('view-Image',
    {
    imageURL: imageRef,
    imageTitle: dataItemData.title,
    createDate: dataItemData.create,
    height: dataItemData.height,
    width: dataItemData.width
    },false);


    }
    }
    });
    },

    imageCellUpdater: function (cell, dataitem) {
    cell.setSources(dataitem);

    }
    });
    0
  • gah - why is there no edit option to ammend a post?
    0
  • If I am following the code correctly, there is no need to slice the data yourself. Just pass the entire Array to the Grid and the Page Indicator will take care of crawling the Array and changing the dataset.

    Remove this line and just pass the entire Array Grid.
    QUOTE (ph3n0m @ Feb 19 2010, 08:56 AM) <{POST_SNAPBACK}>
    CODE
    this.cache.imgData = imageArr.slice(0).map(function(src,i){return{src:src[0],title:src[1],create:src[2],height:src[3],width:src[4],label:src[1]}});


    The non-Edit drives me nuts too... :r
    0
  • ok given that I could remove the array slicing - can anyone else see a problem with this successfully grabbing a new chunk of the json feed when a user selects a new page?
    0
  • Can you give the exact URL you are using? I need to take a look at the feed.
    0
  • QUOTE (WidgetRealm @ Feb 23 2010, 07:12 AM) <{POST_SNAPBACK}>
    Can you give the exact URL you are using? I need to take a look at the feed.

    http://www.trylifecache.com/pva/data/users...?fmt=simplejson

    By default it returns 20 per "page"
    0
  • QUOTE (ph3n0m @ Mar 2 2010, 06:11 AM) <{POST_SNAPBACK}>
    http://www.trylifecache.com/pva/data/users...?fmt=simplejson

    By default it returns 20 per "page"

    Have you tried creating your own pager using KONtx.utility.Pager()?
    0
  • QUOTE (Steve @ Mar 2 2010, 06:41 AM) <{POST_SNAPBACK}>
    Have you tried creating your own pager using KONtx.utility.Pager()?



    Steve - yes currently playing around with that idea - but rather then re-invent the wheel it would be nice to do something similiar to the "browse" functionality that Twitter has, in that you can browse through 40 odd pages of recent photos uploaded
    0
  • QUOTE (ph3n0m @ Mar 2 2010, 09:00 AM) <{POST_SNAPBACK}>
    Steve - yes currently playing around with that idea - but rather then re-invent the wheel it would be nice to do something similiar to the "browse" functionality that Twitter has, in that you can browse through 40 odd pages of recent photos uploaded

    I guess I don't really understand what problem you are trying to solve. This topic is confusing as there seems to be multiple problems being addressed.
    0
  • Steve - Agreed.

    Can you break the goal and problem down so it can be addressed in chunks.
    0
  • QUOTE (WidgetRealm @ Mar 2 2010, 08:53 PM) <{POST_SNAPBACK}>
    Steve - Agreed.

    Can you break the goal and problem down so it can be addressed in chunks.



    It breaks down as follows:

    I posted the full code for my sidebar above

    Currently the sidebar is only paging the 20 items that I can get returned from the json feed

    I am wondering how do I grab all items within the feed, and then ammend my code so that the sidebar can page through all the returned items

    An example of this, as I said before, is the twitter widget, which shows the most recent photos uploaded and allows the user to page through them all
    0
  • QUOTE (ph3n0m @ Mar 3 2010, 08:42 AM) <{POST_SNAPBACK}>
    It breaks down as follows:

    I posted the full code for my sidebar above

    Currently the sidebar is only paging the 20 items that I can get returned from the json feed

    I am wondering how do I grab all items within the feed, and then ammend my code so that the sidebar can page through all the returned items

    An example of this, as I said before, is the twitter widget, which shows the most recent photos uploaded and allows the user to page through them all

    It still sounds like you will want to use the KONtx.utility.Pager(), as this is going to be a custom paging functionality. Either that or modify the service to return all photos.

    You said you looked into using KONtx.utility.Pager(), what made you not choose this solution?
    0
  • Time basically was a limitiation - however I have started playing around with the pager, but yet I find myself in some difficulty with it - as indicated in this new thread @ page utility issue
    0
  • Recent Posts

    in Design / Interaction - Yahoo! TV Widgets