iobroker.squeezeboxrpc 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -452,16 +452,75 @@ The widged dosent refresh automaticly, you have to press the refreshh button.
452
452
  | --------------------- | ----------------- | ----------------------------------------------------------------- |
453
453
  | Player widget | General group | Selection of the player widget. |
454
454
 
455
+ The widget itself has very little formatting.
456
+ For self formating there are some predefined css-classes:
457
+
458
+ | CSS-class | description |
459
+ | ---------- | ----------------------------------------- |
460
+ | plcontainer| Class name assigned to the ul-tag |
461
+ | plentry | Class name assigned to the li-tag |
462
+ | plrefresh | Class name assigned to the refresh-li tag |
463
+ | pltext | Class name assigned to the playlist name |
464
+
465
+ The following CSS for the vis-css tab can serve as an example:
466
+
467
+ Dark-mode
468
+
469
+ ```css
470
+ .plentry {
471
+ border: 1px #505050 groove;
472
+ margin:1px 0px;
473
+ padding:5px;
474
+ background-color:#202020;
475
+ }
476
+ .plrefresh {
477
+ padding:5px;
478
+ }
479
+ .plentry:hover {
480
+ background-color:#404040;
481
+ }
482
+ .plrefresh svg {
483
+ color:#cccccc;
484
+ }
485
+ .plrefresh svg:hover {
486
+ color:#ffffff;
487
+ filter: drop-shadow(0px 0px 1px #87ceeb);
488
+ }
489
+ ```
490
+
491
+ Light-mode
492
+
493
+ ```css
494
+ .plentry {
495
+ border: 1px #b0b0b0 groove;
496
+ margin:1px 0px;
497
+ padding:5px;
498
+ background-color:#c0c0c0;
499
+ }
500
+ .plrefresh {
501
+ padding:5px;
502
+ }
503
+ .plentry:hover {
504
+ background-color:#e0e0e0;
505
+ }
506
+ .plrefresh svg {
507
+ color:#444444;
508
+ }
509
+ .plrefresh svg:hover {
510
+ color:#000000;
511
+ filter: drop-shadow(0px 0px 1px #87ceeb);
512
+ }
513
+ ```
514
+
455
515
  ## SendTo-Befehle
456
516
 
457
517
  ### cmdGeneral
458
518
 
459
- Mit diesem Befehl können beliebige Befehle an den LMS-Server gesendet werden,
460
- um eine Rückmeldung zu erhalten.
519
+ This command can be used to send any command to the LMS server to receive a response.
461
520
 
462
- Beispiel:
521
+ Example:
463
522
 
464
- _Alle Playlists:_
523
+ **All Playlists:**
465
524
 
466
525
  ```js
467
526
  async function main() {
@@ -474,9 +533,9 @@ async function main() {
474
533
  main();
475
534
  ```
476
535
 
477
- _Alle Favoriten:_
536
+ **All Favorites:**
478
537
 
479
- Dieser Befehl wird vom Adapter intern verwendet, um die Favoriten zu laden.
538
+ This command is used internally by the adapter to load the favorites.
480
539
 
481
540
  ```js
482
541
  async function main() {
@@ -489,8 +548,8 @@ async function main() {
489
548
  main();
490
549
  ```
491
550
 
492
- Weitere Möglichkeiten und Detailbeschreibung über die Parameter sind in
493
- der folgenden CLI-Dokumentation enthalten:
551
+ Further options and detailed descriptions of the parameters
552
+ are contained in the following CLI documentation:
494
553
 
495
554
  [CLI-Documentation](#further-api-documentation)
496
555
 
@@ -522,10 +581,19 @@ der folgenden CLI-Dokumentation enthalten:
522
581
  ### **WORK IN PROGRESS**
523
582
 
524
583
  -->
584
+ ### 1.5.1 (2024-11-29)
585
+
586
+ - improve documentation
587
+ - remove margin from plcontainer
588
+ - improve textoverflow with ellipsis
589
+ - adjust initial widgetsize of playlist widget
590
+ - repair attributes for playlist widget
591
+ - add light mode css for playlist widget
592
+
525
593
  ### 1.5.0 (2024-11-28)
526
594
 
527
- - Umstellung auf iobroker/eslint
528
- - Neues Widget playlist
595
+ - Switch to iobroker/eslint
596
+ - New widget playlist
529
597
 
530
598
  ### 1.4.0 (2024-11-27)
531
599
 
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "squeezeboxrpc",
4
- "version": "1.5.0",
4
+ "version": "1.5.1",
5
5
  "news": {
6
+ "1.5.1": {
7
+ "en": "improve documentation\nremove margin from plcontainer\nimprove textoverflow with ellipsis\nadjust initial widgetsize of playlist widget\nrepair attributes for playlist widget\nadd light mode css for playlist widget",
8
+ "de": "verbesserung der dokumentation\nentfernen sie den rand von plcontainer\ntextoverflow mit ellipsis verbessern\neinstellen der ersten widgetsize der wiedergabeliste widget\nreparatur-attribute für playlist widget\nlichtmodus css für playlist widget hinzufügen",
9
+ "ru": "улучшение документации\nудалить маржу от plcontainer\nулучшить текстовый поток с эллипсисом\nнастроить первоначальный виджет\nатрибуты для воспроизведения виджета\nдобавить режим cs для виджета списка воспроизведения",
10
+ "pt": "melhorar a documentação\nremover a margem do plcontainer\nmelhorar o fluxo de texto com ellipsis\najustar o widget inicial do widget da lista de reprodução\natributos de reparo para widget de lista de reprodução\nadd light mode css para widget da lista de reprodução",
11
+ "nl": "de documentatie verbeteren\nde marge uit plcontainer verwijderen\nverbeteren textoverflow met ellipsis\nde initiële widgetgrootte van afspeellijstwidget aanpassen\nreparatie attributen voor afspeellijst widget\nlichtmodus css toevoegen voor afspeellijstwidget",
12
+ "fr": "améliorer la documentation\nenlever la marge du plcontainer\naméliorer le textoverflow avec ellipse\najustez le widget initial du widget playlist\nattributs de réparation pour widget playlist\najouter le mode lumière css pour le widget playlist",
13
+ "it": "migliorare la documentazione\nrimuovere il margine da plcontainer\nmigliorare il flusso di testo con ellipsis\nregolare la dimensione iniziale del widget di playlist\nattributi di riparazione per widget di playlist\naggiungere css modalità di luce per widget di playlist",
14
+ "es": "mejorar la documentación\neliminar el margen de plcontainer\nmejorar el flujo de textover con elipsis\najustar el widgetsize inicial del widget de lista de reproducción\natributos de reparación para el widget de lista\nañadir light mode css para el widget de lista de reproducción",
15
+ "pl": "poprawić dokumentację\nusunąć margines z plakietki\npoprawić przepływ tekstuwerwiru za pomocą elipsy\ndostosować początkowy rozmiar widgetsize widget listy odtwarzania\nnaprawa atrybutów widgetu listy odtwarzania\ndodaj tryb światła css dla widżetu listy odtwarzania",
16
+ "uk": "вдосконалення документації\nприбрати запас від plcontainer\nполіпшення текстового потоку з еліпсом\nналаштування початкового віджетурозміри віджету\nвідремонтувати атрибути для відтворення віджету\nadd light режим css для playlist віджет",
17
+ "zh-cn": "改进文件编制\n从容器中删除边距\n改进带有椭圆的文本流\n调整播放列表部件的初始部件大小\n播放列表部件的修复属性\n为播放列表部件添加轻模式 ccs"
18
+ },
6
19
  "1.5.0": {
7
20
  "en": "Umstellung auf iobroker/eslint\nNeues Widget playlist",
8
21
  "de": "Anpassung an iobroker/eslint\nNeues Widget Playlist",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.squeezeboxrpc",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "description": "ioBroker Logitech Squeezebox Adapter over JSON/RPC-Protocol",
5
5
  "author": {
6
6
  "name": "oweitman",
@@ -2000,23 +2000,32 @@
2000
2000
  let result = yield vis.binds["squeezeboxrpc"].getPlaylistData(ainstance.join("."));
2001
2001
  let playlist = result.result.playlists_loop;
2002
2002
  let text = "";
2003
- text += "<style>";
2004
- text += `#${widgetID} ul.plcontainer { `;
2005
- text += " list-style-type: none;";
2006
- text += " padding-left: 0px;";
2007
- text += " color:white;";
2008
- text += "}";
2009
- text += `#${widgetID} li.plentry { `;
2010
- text += " cursor: pointer;";
2011
- text += "}";
2012
- text += `#${widgetID} li.plrefresh { `;
2013
- text += " width: 1em;";
2014
- text += " height: 1em;";
2015
- text += " margin: 5px 0px;";
2016
- text += "}";
2017
- text += "</style>";
2003
+ text += `
2004
+ <style>
2005
+ #${widgetID} ul.plcontainer {
2006
+ list-style-type: none;
2007
+ padding-left: 0px;
2008
+ margin: 0px;
2009
+ }
2010
+ #${widgetID} li.plentry {
2011
+ cursor: pointer;
2012
+ height: 1em;
2013
+ margin: 5px 0px;
2014
+ }
2015
+ #${widgetID} li.plentry div {
2016
+ text-overflow: ellipsis;
2017
+ overflow: hidden;
2018
+ white-space: nowrap;
2019
+ }
2020
+ #${widgetID} li.plrefresh {
2021
+ width: 1em;
2022
+ height: 1em;
2023
+ margin: 5px 0px;
2024
+ }
2025
+ </style>
2026
+ `;
2018
2027
  text += '<ul class="plcontainer">';
2019
- text += '<li class="plrefresh"><svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" data-testid="RefreshIcon"><path fill="currentColor" d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"></path></svg></li>';
2028
+ text += '<li class="plrefresh"><div><svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" data-testid="RefreshIcon"><path fill="currentColor" d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"></path></svg></div></li>';
2020
2029
  for (let i = 0; i < playlist.length; i++) {
2021
2030
  let pl = playlist[i];
2022
2031
  text += `<li class="plentry"><div class="pltext" data-plid="${pl.id}" data-pln="${playername}" data-ins="${ainstance.join(".")}" onclick="vis.binds.squeezeboxrpc.playlist.onclickplaylist(this,event)">${pl.playlist}</div></li>`;
@@ -1781,26 +1781,33 @@ vis.binds['squeezeboxrpc'] = {
1781
1781
  let result = await vis.binds['squeezeboxrpc'].getPlaylistData(ainstance.join('.'));
1782
1782
  let playlist = result.result.playlists_loop;
1783
1783
  let text = '';
1784
- text += '<style>';
1785
- text += `#${widgetID} ul.plcontainer { `;
1786
- text += ' list-style-type: none;';
1787
- text += ' padding-left: 0px;';
1788
- text += ' color:white;';
1789
- text += '}';
1790
- text += `#${widgetID} li.plentry { `;
1791
- text += ' cursor: pointer;';
1792
- text += '}';
1793
-
1794
- text += `#${widgetID} li.plrefresh { `;
1795
- text += ' width: 1em;';
1796
- text += ' height: 1em;';
1797
- text += ' margin: 5px 0px;';
1798
- text += '}';
1799
-
1800
- text += '</style>';
1784
+ text += `
1785
+ <style>
1786
+ #${widgetID} ul.plcontainer {
1787
+ list-style-type: none;
1788
+ padding-left: 0px;
1789
+ margin: 0px;
1790
+ }
1791
+ #${widgetID} li.plentry {
1792
+ cursor: pointer;
1793
+ height: 1em;
1794
+ margin: 5px 0px;
1795
+ }
1796
+ #${widgetID} li.plentry div {
1797
+ text-overflow: ellipsis;
1798
+ overflow: hidden;
1799
+ white-space: nowrap;
1800
+ }
1801
+ #${widgetID} li.plrefresh {
1802
+ width: 1em;
1803
+ height: 1em;
1804
+ margin: 5px 0px;
1805
+ }
1806
+ </style>
1807
+ `;
1801
1808
  text += '<ul class="plcontainer">';
1802
1809
  text +=
1803
- '<li class="plrefresh"><svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" data-testid="RefreshIcon"><path fill="currentColor" d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"></path></svg></li>';
1810
+ '<li class="plrefresh"><div><svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" data-testid="RefreshIcon"><path fill="currentColor" d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"></path></svg></div></li>';
1804
1811
  for (let i = 0; i < playlist.length; i++) {
1805
1812
  let pl = playlist[i];
1806
1813
  text += `<li class="plentry"><div class="pltext" data-plid="${pl.id}" data-pln="${playername}" data-ins="${ainstance.join('.')}" onclick="vis.binds.squeezeboxrpc.playlist.onclickplaylist(this,event)">${pl.playlist}</div></li>`;
@@ -225,13 +225,13 @@
225
225
  type="text/ejs"
226
226
  class="vis-tpl"
227
227
  data-vis-prev='<img src="widgets/squeezeboxrpc/img/playlist.png"></img>'
228
- data-vis-attrs="widgetPlayer/custom;"
228
+ data-vis-attrs="widgetPlayer/custom,squeezeboxrpc.attrSelect;"
229
229
  data-vis-set="squeezeboxrpc"
230
230
  data-vis-type="static"
231
231
  data-vis-beta="false"
232
232
  data-vis-update-style="true"
233
233
  data-vis-name="Playlist">
234
- <div class="vis-widget <%== this.data.attr('class') %>" style="width: 50px; height: 20px;overflow:auto;scrollbar-width: none" id="<%= this.data.attr('wid') %>"><%
234
+ <div class="vis-widget <%== this.data.attr('class') %>" style="width: 200px; height: 200px;overflow:auto;scrollbar-width: none" id="<%= this.data.attr('wid') %>"><%
235
235
  vis.binds.squeezeboxrpc.playlist.createWidget(this.data.wid, this.view, this.data, this.style);
236
236
  %></div>
237
237
  </script>