Home of the Squeezebox™ & Transporter® network music players.
Page 1 of 27 12311 ... LastLast
Results 1 to 10 of 265
  1. #1
    Senior Member
    Join Date
    Aug 2012
    Location
    Austria
    Posts
    652

    Announce: Alternative Web Interface (beta)

    extGUI4LMS - An Alternative Web Interface for the Logitech Media Server

    Name:  es2.jpg
Views: 7181
Size:  70.4 KB

    Name:  S2.jpg
Views: 7171
Size:  28.1 KB

    Features
    A desktop-like, responsive and intuitive user interface build with modern web technologies
    Advanced playlist management
    Custom search function
    Statistics with pretty graphs
    Plus
    - Favorites
    - Internet radio
    - Limited access to plugins
    - Lyrics
    - Discogs integration
    - ...

    Scope
    This is not, and is not meant to be, a complete replacement for the standard web interface. There is no access to settings and some other advanced functionality, and only fairly limited support for using the GUI of plugins. The main focus is to show as much real-time information as possible at a glance, to enable quick and easy navigation through the music library, and to make managing the current playlist easier.

    Status
    It's mostly feature-complete (compared to the initial scope, which has, however, expanded quite a bit since the first release - mostly due to feedback from this forum), and fairly stable on my setup. I'd still consider it beta quality, though - I'm quite sure there are a number of bugs left.

    Performance
    The app places a higher load on the server than the standard web interface, since it fetches a lot more information more frequently. It also needs more resources on the client site, due to the completely Javascript-based GUI. That being said, it seems to be fast enough even on fairly low-powered hardware (I tested it on an AMD E-450 powered netbook and it was ok). If your server is slow and your collection is large, you might run into performance issues, though.

    Prerequisites
    A modern web browser
    - Works well on Google Chrome/Chromium and Internet Explorer 9. I'd recommend Chrome/Chromium, though, since it seems to have better Javascript performance - if you have issues, check first if it works with Chrome.
    - Reported to work on Opera, Safari and IE10
    - Mostly works on Firefox >= 19 (reported to completely work in Firefox Aurora 21, though)
    If you have a large music collection, your LMS server needs to provide adequate performance

    Installation
    extGUI4LMS can be installed using Logitech Media Server's Extension Downloader. Add https://www.nexus0.net/pub/sw/extgui4lms/repo.xml to the list of Additional Repositories in the Extension downloader plugin settings (located in Settings/Plugins in the standard web interface) and activate the plugin.
    You'll find an entry in the Extras menu, which is just a link (http://<yourlmsserver>/plugins/LMSnewGUI/html/app.html),
    so you could bookmark it - it doesn't have to be launched from the regular web interface.

    Usage Instructions
    See the built-in help (click on the ? icon at the top of the application)

    Homepage
    includes more (and newer!) screenshots: https://www.nexus0.net/pub/sw/extgui4lms/
    Last edited by Roland0; 2016-09-02 at 12:33. Reason: updated link to repo

  2. #2
    Babelfish's Best Boy mherger's Avatar
    Join Date
    Apr 2005
    Location
    Switzerland
    Posts
    19,781

    Announce: Alternative Web Interface(beta)

    Hi Roland,

    Good to see such an initiative! This is something I've been wanting to do
    for years...

    > This is not, and is not meant to be, a complete replacement for the
    > normal web interface. There are no settings, plugins, internet radio and
    > other advanced functionality.


    I guess this will be a killer for many potential users. Would you be
    interested in using the SlimBrowse menu as used by other controller apps
    to get access to those features?

    > - Not tested with other browsers


    I've only run a few quick tests with Opera, and it seemed to work quite ok.

    > Installation
    > Download the 3 attached zip files, rename LMSnewGUI.dist.z01.zip to
    > LMSnewGUI.dist.z01 and LMSnewGUI.dist.z02.zip to LMSnewGUI.dist.z02 and
    > unzip the LMSnewGUI.dist.zip file (I had to split it due to size limits
    > in this forum - you'll need to use a zip program capable of processing
    > split archives)


    This might be the big problem #2 for many. I actually had to google to
    figure out how to extract this on my mac. The command line zip/unzip tools
    didn't recognize parts 1 & 2 due to the additional .zip extension. Once I
    removed that they would work.

    Do you have some web space somewhere? Or a dropbox account or something?
    It would be much easier to install if you could provide a simple XML file
    to be included in the plugins list.

    I have a few implementation questions: why did you decide to implement a
    JSONP handler when most of the features could have been implemented in JS
    directly using json/rpc? JSONP would only be needed if you wanted to load
    the skin from one server to control another instance on a different
    server. Otherwise you can use simple json/rpc. If you want to implement
    search/browsing on your own, you'll risk that users will complain because
    it'll behave slightly different than the "original". It's probably easier
    to use the existing implementation than trying to re-invent that wheel in
    most cases. In particular the handling of contributors can vary easily.

    And you should not require to ship the SqueezeJS files, as they're part of
    the server distribution anyway.

    --

    Michael

  3. #3
    Senior Member
    Join Date
    Aug 2012
    Location
    Austria
    Posts
    652
    Hi Michael,

    Quote Originally Posted by mherger View Post
    Good to see such an initiative! This is something I've been wanting to do
    for years...

    > This is not, and is not meant to be, a complete replacement for the
    > normal web interface. There are no settings, plugins, internet radio and
    > other advanced functionality.


    I guess this will be a killer for many potential users. Would you be
    interested in using the SlimBrowse menu as used by other controller apps
    to get access to those features?
    Certainly, I just hadn't time to have a look at this topic. Maybe you can point me to the right place - I only noticed the "radios" cli command, and haven't come across the SlimBrowse menu.

    Quote Originally Posted by mherger View Post

    > - Not tested with other browsers


    I've only run a few quick tests with Opera, and it seemed to work quite ok.
    Great. Since you are on MacOS, did you get a chance to try Safari? As it's WebKit-based, I'd assume it should work, but you never know...

    Quote Originally Posted by mherger View Post

    > Installation
    > Download the 3 attached zip files, rename LMSnewGUI.dist.z01.zip to
    > LMSnewGUI.dist.z01 and LMSnewGUI.dist.z02.zip to LMSnewGUI.dist.z02 and
    > unzip the LMSnewGUI.dist.zip file (I had to split it due to size limits
    > in this forum - you'll need to use a zip program capable of processing
    > split archives)


    This might be the big problem #2 for many. I actually had to google to
    figure out how to extract this on my mac. The command line zip/unzip tools
    didn't recognize parts 1 & 2 due to the additional .zip extension. Once I
    removed that they would work.
    Well, the forum doesn't allow me to upload *.z0? attachments, and I actually did mention that they need to be renamed.

    Quote Originally Posted by mherger View Post
    Do you have some web space somewhere? Or a dropbox account or something?
    It would be much easier to install if you could provide a simple XML file
    to be included in the plugins list.
    True, but atm I don't have any of those. If there is enough interest in this plugin, I guess I'd have to provide something like that.

    Quote Originally Posted by mherger View Post
    I have a few implementation questions: why did you decide to implement a
    JSONP handler when most of the features could have been implemented in JS
    directly using json/rpc? JSONP would only be needed if you wanted to load
    the skin from one server to control another instance on a different
    server. Otherwise you can use simple json/rpc. If you want to implement
    search/browsing on your own, you'll risk that users will complain because
    it'll behave slightly different than the "original". It's probably easier
    to use the existing implementation than trying to re-invent that wheel in
    most cases. In particular the handling of contributors can vary easily.
    It would certainly be easier, but the available commands have a number of limitations, either in functionality or in performance (or I didn't understand them well enough ;-)
    eg.
    - the GUI enables you to add/remove an arbitrary number of artists/tracks in one operation. The available commands are limited to a single artist/album
    - the available commands return track ids, so I'd have to send another request to get the meta information
    - songinfo/tracks command seem to only take a single track, so I'd have to send one request per track to get the meta information
    - the GUI displays album duration, which is not returned by the album command, so I'd have to send an addition request
    etc.

    With my approach, I can do all of these operations in a single call to the server, and also take advantage of dbi prefetch to minimize database queries (which makes a huge difference e.g. when displaying a large number of tracks, for which I need the album, artist, genretracks, genre, persist and comment tables)

    Quote Originally Posted by mherger View Post
    And you should not require to ship the SqueezeJS files, as they're part of
    the server distribution anyway.
    The Base.js included with the server doesn't work with Ext4 due to API changes. Additionally, there a two issues in it I'd consider bugs:
    - SongParser doesn't return bitrates for local tracks
    - the playlistchange event gets fired for just about every change on the player (e.g. play, pause, track change - basically the same as playerstatechange). That might be a semantic problem, but I wouldn't consider the play list changed just because it's stopped - and there is no other event I could use to detect an actual play list change (tracks added, deleted etc)


    Thanks for the feedback!

    ----
    Roland

  4. #4
    Senior Member
    Join Date
    Aug 2008
    Location
    Norway
    Posts
    334

    Problems

    I unzipped the 3 files and moved the LMSnewGUI folder to my NAS into the plugins folder and restarted the LMS, but nothing ever showed up under the Extras menu.
    Any Idea what could have gone wrong?
    The information tab under settings shows :
    Plugin Folders: /opt/ssods4/var/home/SqueezeboxServer/Cache/InstalledPlugins/Plugins, /share/HDA_DATA/.qpkg/LogitechMediaServer/var/home/SqueezeboxServer/Plugins

    All my other Plugins are found under the first path: /opt/ssods4/var/home/SqueezeboxServer/Cache/InstalledPlugins/Plugins
    so that's where I filed the LMSnewGUI. But I also tried to file it under the other path: /share/HDA_DATA/.qpkg/LogitechMediaServer/var/home/SqueezeboxServer/Plugins
    But the result were the same = Nil.

    I noticed that when I traverse the tree on the server, the first path changes to: /share/HDA_DATA/.qpkg/LogitechMediaServer/var/home/SqueezeboxServer/Cache/InstalledPlugins/Plugins
    which appears to be a mix of the two.

    Should I expect to find this plugin under the plugins Tab on the Settings screen of the old LMS Web interface?

    Anyway - do you have any ideas?

    Rgds
    Viking

    Edit: I found that your suggested path; http://NAS8C7D37/plugins/LMSnewGUI/html/app.html
    on my NAS would read; \\NAS8C7D37\InstalledPlugins\Plugins\LMSnewGUI\HTM L\EN\plugins\LMSnewGUI\html\app.html
    When I launch that, the explorer tab reads; extGUI4LMS(beta) but nothing ever shows up.
    The html folder under LMSnewGUI is completely empty except for a new folder named EN
    Last edited by oyvindo; 2013-02-26 at 15:15. Reason: New findings...

  5. #5
    Senior Member bonze's Avatar
    Join Date
    Jun 2006
    Location
    Bucks. UK
    Posts
    1,499
    As you say it works well on Chrome, but can't get it to display at all on IE10.

    Music Library > Genres seems to be blank, or should I wait a while?
    Can't sort any columns in Album Tracks.

    Haven't had a chance to play fully yet, but it looks interesting.
    LMS Version: 7.9
    TranquilPC T2-WHS-A3 - WHS 2011
    2x Touch, 3x SB3

  6. #6
    Babelfish's Best Boy mherger's Avatar
    Join Date
    Apr 2005
    Location
    Switzerland
    Posts
    19,781

    Announce: Alternative Web Interface(beta)

    > As you say it works well on Chrome, but can't get it to display at all
    > on IE10.


    Please check the developer's console (I think it's using F12 - or some
    Extras menu...) to see whether you get some useful JS error message.

    --

    Michael

  7. #7
    Senior Member
    Join Date
    Aug 2012
    Location
    Austria
    Posts
    652
    Quote Originally Posted by oyvindo View Post
    I unzipped the 3 files and moved the LMSnewGUI folder to my NAS into the plugins folder and restarted the LMS, but nothing ever showed up under the Extras menu.
    Any Idea what could have gone wrong?
    The information tab under settings shows :
    Plugin Folders: /opt/ssods4/var/home/SqueezeboxServer/Cache/InstalledPlugins/Plugins, /share/HDA_DATA/.qpkg/LogitechMediaServer/var/home/SqueezeboxServer/Plugins

    All my other Plugins are found under the first path: /opt/ssods4/var/home/SqueezeboxServer/Cache/InstalledPlugins/Plugins
    so that's where I filed the LMSnewGUI. But I also tried to file it under the other path: /share/HDA_DATA/.qpkg/LogitechMediaServer/var/home/SqueezeboxServer/Plugins
    But the result were the same = Nil.

    I noticed that when I traverse the tree on the server, the first path changes to: /share/HDA_DATA/.qpkg/LogitechMediaServer/var/home/SqueezeboxServer/Cache/InstalledPlugins/Plugins
    which appears to be a mix of the two.

    Should I expect to find this plugin under the plugins Tab on the Settings screen of the old LMS Web interface?

    Anyway - do you have any ideas?

    Rgds
    Viking

    Edit: I found that your suggested path; http://NAS8C7D37/plugins/LMSnewGUI/html/app.html
    on my NAS would read; \\NAS8C7D37\InstalledPlugins\Plugins\LMSnewGUI\HTM L\EN\plugins\LMSnewGUI\html\app.html
    When I launch that, the explorer tab reads; extGUI4LMS(beta) but nothing ever shows up.
    The html folder under LMSnewGUI is completely empty except for a new folder named EN
    Can you first check if the plugin itself loaded successfully (from you description, I'd assume it didn't)? You should have an entry in the standard web interface in the plugin tab:
    Name:  screen1.jpg
Views: 6934
Size:  4.1 KB

    Have you checked the server log file if there is anything interesting in it? If not, you could try setting the server.plugins logging to debug (Server Setting/Advanced/Logging)

    fyi, the directory structure of the unzipped file should look like this:
    Code:
    LMSnewGUI
    LMSnewGUI/HTML
    LMSnewGUI/HTML/EN
    LMSnewGUI/HTML/EN/plugins
    LMSnewGUI/HTML/EN/plugins/LMSnewGUI
    LMSnewGUI/HTML/EN/plugins/LMSnewGUI/SqueezeJS
    LMSnewGUI/HTML/EN/plugins/LMSnewGUI/html
    LMSnewGUI/HTML/EN/plugins/LMSnewGUI/html/extjs4
    LMSnewGUI/HTML/EN/plugins/LMSnewGUI/html/extjs4/ux
    LMSnewGUI/HTML/EN/plugins/LMSnewGUI/html/extjs4/resources
    LMSnewGUI/HTML/EN/plugins/LMSnewGUI/html/app
    LMSnewGUI/HTML/EN/plugins/LMSnewGUI/html/app/controller
    LMSnewGUI/HTML/EN/plugins/LMSnewGUI/html/app/store
    LMSnewGUI/HTML/EN/plugins/LMSnewGUI/html/app/ux
    LMSnewGUI/HTML/EN/plugins/LMSnewGUI/html/app/view
    LMSnewGUI/HTML/EN/plugins/LMSnewGUI/html/app/model
    LMSnewGUI/HTML/EN/plugins/LMSnewGUI/html/images
    and the plugin itself should be located in
    LMSnewGUI/Plugin.pm

    In addition, you might want to check file permissions - your NAS seems to be Unix-based, so pls. make sure that the LMS user has permissions to access the plugin folder/files

    ----
    Roland
    Last edited by Roland0; 2013-02-26 at 17:04.

  8. #8
    Senior Member
    Join Date
    Aug 2012
    Location
    Austria
    Posts
    652
    Quote Originally Posted by bonze View Post
    As you say it works well on Chrome, but can't get it to display at all on IE10.

    Music Library > Genres seems to be blank, or should I wait a while?
    Can't sort any columns in Album Tracks.

    Haven't had a chance to play fully yet, but it looks interesting.
    Genres shouldn't be blank, they are supposed to be loaded at start-up. Can you check if you can select genres in the Search>custom search genres condition or is it empty too?
    If yes, you could try looking for errors / strange stuff at the browser's javascript console (in the Tools Menu in Chrome - open it before you launch the GUI), or switch the LMS log for plugin.lmsnewgui to debug and look for this line:
    Code:
    Plugins::LMSnewGUI::Plugin::handleJSONP (144) handleJSONP args={'cmd' => 'getGenres','player' => ''}
    Not all columns are sortable / filterable - those which might hold a large number of results are not, since the data is loaded on demand (e.g.Music Library>Albums, Search>Tracks). Can you tell me which tab you mean?

    ----
    Roland

  9. #9
    Senior Member bonze's Avatar
    Join Date
    Jun 2006
    Location
    Bucks. UK
    Posts
    1,499
    Quote Originally Posted by mherger View Post
    > As you say it works well on Chrome, but can't get it to display at all
    > on IE10.


    Please check the developer's console (I think it's using F12 - or some
    Extras menu...) to see whether you get some useful JS error message.
    HTML1504: Unexpected end tag.
    app.html, line 174 character 2

    SCRIPT7002: XMLHttpRequest: Network Error 0x2ee2, Could not complete the operation due to error 00002ee2.
    app.html

    SCRIPT5007: Object expected
    Function code (22), line 2 character 1
    LMS Version: 7.9
    TranquilPC T2-WHS-A3 - WHS 2011
    2x Touch, 3x SB3

  10. #10
    Senior Member bonze's Avatar
    Join Date
    Jun 2006
    Location
    Bucks. UK
    Posts
    1,499
    Quote Originally Posted by Roland0 View Post
    Genres shouldn't be blank, they are supposed to be loaded at start-up. Can you check if you can select genres in the Search>custom search genres condition or is it empty too?
    If yes, you could try looking for errors / strange stuff at the browser's javascript console (in the Tools Menu in Chrome - open it before you launch the GUI), or switch the LMS log for plugin.lmsnewgui to debug and look for this line:
    Code:
    Plugins::LMSnewGUI::Plugin::handleJSONP (144) handleJSONP args={'cmd' => 'getGenres','player' => ''}
    Not all columns are sortable / filterable - those which might hold a large number of results are not, since the data is loaded on demand (e.g.Music Library>Albums, Search>Tracks). Can you tell me which tab you mean?

    ----
    Roland
    Choose Genres in the Custom Search condition is also blank.
    Oddly, Library Statistics > Tracks by Genres isn't.
    I'll see if I can dig out any errors.

    The sortable columns I was looking at were in
    Music Library>Album and then drill down to Tracks.
    Again I will look for an error.
    LMS Version: 7.9
    TranquilPC T2-WHS-A3 - WHS 2011
    2x Touch, 3x SB3

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •