Bugzilla – Bug 13247
Add capability to pop to a certain page on the menu stack
Last modified: 2009-10-05 14:29:22 UTC
This bug is an enhancement request for the SlimBrowse protocol to enable moving backwards to an arbitrary page on the stack. Process: Each page is assigned a name that can be used with the "nextWindow" directive to move backwards on the window stack until that page is reached. Changes: 1. Each page can be assigned a "windowId" attribute that identifies it on the stack. The name will be attributed in the window field. Example: { actions => ..., text => "Demo Menu", window => { titleStyle => ..., windowId => "demo", }, } 2. The "nextWindow" directive for a "do" action can take any name of a page on the stack as a target. The stack will be searched backwards from the current window until a window with a matching windowId is found. All windows above that window are then popped from the stack. Example: { actions => { "do" => {...} }, nextWindow => "demo", text => "Return to Demo Menu", } 3. The "windowId" tag may not take a value of one of the predefined targets for nextWindow, that is: "parent", "grandparent", "nowPlaying", "playlist", "home", "refresh", "refreshOrigin"
Also affects ip3k UI.
Ben to cover SP-side, Andy to cover ip3K side.
== Auto-comment from SVN commit #7152 to the jive repo by bklaas == == https://svn.slimdevices.com/jive?view=revision&revision=7152 == Bug: 13247 Description: full Squeezeplay-side support for popping back to a specific windowId in the stack follows the exact specification that Pippin posted on initial bug comment
Andy, this one goes to you for the ip3k support ratcheting down the time estimation to 2hrs. I'll leave it up to you to tweak further
Ben, are there already pages using this? I do have an implementation in my iPeng beta but nothing to test it against :-)
there aren't so I just hacked this into Jive.pm to test. Alarm Settings page gets and id of 'foo', remove alarm item gets a nextWindow param of 'foo' sers/bklaas/svk/slim/7.4/trunk/server/Slim/Control: svk diff === Jive.pm ================================================================== --- Jive.pm (revision 35377) +++ Jive.pm (local) @@ -991,7 +991,7 @@ }, }, }, - nextWindow => 'grandparent', + nextWindow => 'foo', }, ); my $removeAlarm = { @@ -1529,7 +1529,7 @@ player => 0, }, }, - window => { titleStyle => 'settings' }, + window => { windowId => 'foo' }, }; }
Cool. Thanks. Will give it a try. I don't have a working svn copy right now, but I can just change a normal "build" version, can't I?
it's Perl, totally hackable in any form! :)
You meant: It's Perl, a total hack in any form :))
Updated spec on Wiki http://wiki.slimdevices.com/index.php/SqueezeCenterSqueezePlayInterface
== Auto-comment from SVN commit #28476 to the slim repo by andy == == https://svn.slimdevices.com/slim?view=revision&revision=28476 == Bug 13247, player UI support for windowId/nextWindow
== Auto-comment from SVN commit #7262 to the network repo by andy == == https://svn.slimdevices.com/network?view=revision&revision=7262 == Bug 13247, change 'Return to App Gallery' to use nextWindow
== Auto-comment from SVN commit #28479 to the slim repo by andy == == https://svn.slimdevices.com/slim?view=revision&revision=28479 == Bug 13247, add windowId/nextWindow support for SP
SC side should be done, not sure nextWindow/windowId is working correctly on SP though.
== Auto-comment from SVN commit #28480 to the slim repo by bklaas == == https://svn.slimdevices.com/slim?view=revision&revision=28480 == Bug: 13247 Description: nextWindow param needs to be part of 'go' action
== Auto-comment from SVN commit #7474 to the jive repo by bklaas == == https://svn.slimdevices.com/jive?view=revision&revision=7474 == Fixed Bug: 13247 +1 Description: add setWindowId() method to Window.lua allow browseSink results to optionally set a windowId (previously only the menu item that created the window did)
Ben, "nextWindow param needs to be part of 'go' action" That's not how it is specified here: http://wiki.slimdevices.com/index.php/SqueezeCenterSqueezePlayInterface There it says "nextWindow" is part of the <item_fields> It's also not what I specified above so this is a change to "follows the exact specification that Pippin posted on initial bug comment" so probably a change as I posted it based on the spec in the wiki. Could you update the spec if needed? I'll check whether iPeng works this way, too (glance into the code says "probably yes") but let's try to get the doc somewhat consistent to the real world.
sorry, for squeezeplay it is valid to have a nextWindow param, in declining level of precedence, at base, item, or json action level. -- actions take precedence over items/base, item takes precendence over base nextWindow = aNextWindow or iNextWindow or bNextWindow wiki has been updated. my checkin message should have read: "nextWindow param needed, in this particular application, to be part of 'go' action"
Thanks! Good to see the wiki updated!
This bug has been marked as fixed in the 7.4.0 release version of SqueezeBox Server! * SqueezeCenter: 28672 * Squeezebox 2 and 3: 130 * Transporter: 80 * Receiver: 65 * Boom: 50 * Controller: 7790 * Radio: 7790 Please see the Release Notes for all the details: http://wiki.slimdevices.com/index.php/Release_Notes If you haven't already, please download and install the new version from http://www.logitechsqueezebox.com/support/download-squeezebox-server.html If you are still experiencing this problem, feel free to reopen the bug with your new comments and we'll have another look.