iobroker.wiim 0.0.2 → 0.2.0

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/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 KaiIOB <Kaibrendel@kabelmail.de>
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2025 KaiIOB <Kaibrendel@kabelmail.de>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,130 +1,173 @@
1
- ![Logo](admin/wiim.png)
2
- # ioBroker.wiim
3
-
4
- [![NPM version](https://img.shields.io/npm/v/iobroker.wiim.svg)](https://www.npmjs.com/package/iobroker.wiim)
5
- [![Downloads](https://img.shields.io/npm/dm/iobroker.wiim.svg)](https://www.npmjs.com/package/iobroker.wiim)
6
- ![Number of Installations](https://iobroker.live/badges/wiim-installed.svg)
7
- ![Current version in stable repository](https://iobroker.live/badges/wiim-stable.svg)
8
-
9
- [![NPM](https://nodei.co/npm/iobroker.wiim.png?downloads=true)](https://nodei.co/npm/iobroker.wiim/)
10
-
11
- **Tests:** ![Test and Release](https://github.com/KaiIOB/ioBroker.wiim/workflows/Test%20and%20Release/badge.svg)
12
-
13
- ## wiim adapter for ioBroker
14
-
15
- adapter to access Wiim/Arylic devices
16
-
17
- ## Developer manual
18
- This section is intended for the developer. It can be deleted later.
19
-
20
- ### DISCLAIMER
21
-
22
- Please make sure that you consider copyrights and trademarks when you use names or logos of a company and add a disclaimer to your README.
23
- You can check other adapters for examples or ask in the developer community. Using a name or logo of a company without permission may cause legal problems for you.
24
-
25
- ### Getting started
26
-
27
- You are almost done, only a few steps left:
28
- 1. Create a new repository on GitHub with the name `ioBroker.wiim`
29
- 1. Initialize the current folder as a new git repository:
30
- ```bash
31
- git init -b main
32
- git add .
33
- git commit -m "Initial commit"
34
- ```
35
- 1. Link your local repository with the one on GitHub:
36
- ```bash
37
- git remote add origin https://github.com/KaiIOB/ioBroker.wiim
38
- ```
39
-
40
- 1. Push all files to the GitHub repo:
41
- ```bash
42
- git push origin main
43
- ```
44
- 1. Add a new secret under https://github.com/KaiIOB/ioBroker.wiim/settings/secrets. It must be named `AUTO_MERGE_TOKEN` and contain a personal access token with push access to the repository, e.g. yours. You can create a new token under https://github.com/settings/tokens.
45
-
46
- 1. Head over to [main.js](main.js) and start programming!
47
-
48
- ### Best Practices
49
- We've collected some [best practices](https://github.com/ioBroker/ioBroker.repositories#development-and-coding-best-practices) regarding ioBroker development and coding in general. If you're new to ioBroker or Node.js, you should
50
- check them out. If you're already experienced, you should also take a look at them - you might learn something new :)
51
-
52
- ### Scripts in `package.json`
53
- Several npm scripts are predefined for your convenience. You can run them using `npm run <scriptname>`
54
- | Script name | Description |
55
- |-------------|-------------|
56
- | `test:js` | Executes the tests you defined in `*.test.js` files. |
57
- | `test:package` | Ensures your `package.json` and `io-package.json` are valid. |
58
- | `test:integration` | Tests the adapter startup with an actual instance of ioBroker. |
59
- | `test` | Performs a minimal test run on package files and your tests. |
60
- | `check` | Performs a type-check on your code (without compiling anything). |
61
- | `coverage` | Generates code coverage using your test files. |
62
- | `lint` | Runs `ESLint` to check your code for formatting errors and potential bugs. |
63
- | `translate` | Translates texts in your adapter to all required languages, see [`@iobroker/adapter-dev`](https://github.com/ioBroker/adapter-dev#manage-translations) for more details. |
64
-
65
- ### Writing tests
66
- When done right, testing code is invaluable, because it gives you the
67
- confidence to change your code while knowing exactly if and when
68
- something breaks. A good read on the topic of test-driven development
69
- is https://hackernoon.com/introduction-to-test-driven-development-tdd-61a13bc92d92.
70
- Although writing tests before the code might seem strange at first, but it has very
71
- clear upsides.
72
-
73
- The template provides you with basic tests for the adapter startup and package files.
74
- It is recommended that you add your own tests into the mix.
75
-
76
- ### Publishing the adapter
77
- Using GitHub Actions, you can enable automatic releases on npm whenever you push a new git tag that matches the form
78
- `v<major>.<minor>.<patch>`. We **strongly recommend** that you do. The necessary steps are described in `.github/workflows/test-and-release.yml`.
79
-
80
- To get your adapter released in ioBroker, please refer to the documentation
81
- of [ioBroker.repositories](https://github.com/ioBroker/ioBroker.repositories#requirements-for-adapter-to-get-added-to-the-latest-repository).
82
-
83
- ### Test the adapter manually on a local ioBroker installation
84
- In order to install the adapter locally without publishing, the following steps are recommended:
85
- 1. Create a tarball from your dev directory:
86
- ```bash
87
- npm pack
88
- ```
89
- 1. Upload the resulting file to your ioBroker host
90
- 1. Install it locally (The paths are different on Windows):
91
- ```bash
92
- cd /opt/iobroker
93
- npm i /path/to/tarball.tgz
94
- ```
95
-
96
- For later updates, the above procedure is not necessary. Just do the following:
97
- 1. Overwrite the changed files in the adapter directory (`/opt/iobroker/node_modules/iobroker.wiim`)
98
- 1. Execute `iobroker upload wiim` on the ioBroker host
99
-
100
- ## Changelog
101
-
102
- <### 0.0.2
103
- * (KaiIOB) Arylic devices added and corrections>
104
-
105
-
106
- <### 0.0.1
107
- * (KaiIOB) initial release>
108
- <>
109
- ## License
110
- MIT License
111
-
112
- Copyright (c) 2025 KaiIOB <Kaibrendel@kabelmail.de>
113
-
114
- Permission is hereby granted, free of charge, to any person obtaining a copy
115
- of this software and associated documentation files (the "Software"), to deal
116
- in the Software without restriction, including without limitation the rights
117
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
118
- copies of the Software, and to permit persons to whom the Software is
119
- furnished to do so, subject to the following conditions:
120
-
121
- The above copyright notice and this permission notice shall be included in all
122
- copies or substantial portions of the Software.
123
-
124
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
125
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
126
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
127
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
128
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
129
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
130
- SOFTWARE.
1
+ ![Logo](admin/wiim.png)
2
+ # ioBroker.wiim
3
+
4
+ [![NPM version](https://img.shields.io/npm/v/iobroker.wiim.svg)](https://www.npmjs.com/package/iobroker.wiim)
5
+ [![Downloads](https://img.shields.io/npm/dm/iobroker.wiim.svg)](https://www.npmjs.com/package/iobroker.wiim)
6
+ ![Number of Installations](https://iobroker.live/badges/wiim-installed.svg)
7
+ ![Current version in stable repository](https://iobroker.live/badges/wiim-stable.svg)
8
+
9
+ [![NPM](https://nodei.co/npm/iobroker.wiim.png?downloads=true)](https://nodei.co/npm/iobroker.wiim/)
10
+
11
+ **Tests:** ![Test and Release](https://github.com/KaiIOB/ioBroker.wiim/workflows/Test%20and%20Release/badge.svg)
12
+
13
+ ## wiim adapter for ioBroker
14
+
15
+ adapter to access Wiim/Arylic devices
16
+
17
+ ## supported devices
18
+ The adapter has been tested with:
19
+
20
+ Wiim Amp
21
+ Wiim Mini
22
+ Arylic up2stream v3
23
+ Arylic S10+
24
+ Audiocast M5
25
+ August WR320B (after firmware upgrade to 4.6.415156.0)
26
+
27
+ Wiim devices use https communication, Arylic devices use http communication.
28
+ At least one feature (playPromptUrl) works only with Arylic devices with firmware >=4.6.415145
29
+ Currently only the most important features of the API are implemented. Please let me know if other features are useful to you.
30
+
31
+ You can find information on the devices here:
32
+
33
+ WiiM: https://www.wiimhome.com/wiimvibelink/overview
34
+ Arylic: https://www.arylic.com/
35
+ Audiocast: https://audiocast.io/
36
+ remark: Audicast M5 is sold under many different generic brands, I assume they all work with the adapter
37
+ August: https://augustint.com/
38
+ remark: the WR320B seems to be discontinued
39
+
40
+
41
+ ## Adapter Configuration
42
+
43
+ interval for refresh of player data in seconds: time between two requests for updated data
44
+
45
+
46
+ ## Available States
47
+
48
+ album: name of album played, string, read-only
49
+ string that can be used to display the name of the current album, e.g.:
50
+ "Electric"
51
+
52
+ title: name if title played, string, read-only
53
+ string that can be used to display the name of the current title, e.g.:
54
+ "Wild Flower"
55
+
56
+ artist: name of artist of title played, string, read-only
57
+ string that can be used to display the name of the artist of the current title, e.g.:
58
+ "The Cult"
59
+
60
+ albumArtURI: URL of the cover art of the album played, string, read-only
61
+ string that can be used to display the cover art of the current title, e.g.:
62
+ "https://i.scdn.co/image/ab67616d0000b273ca8a324a5d0fce617bb2613d"
63
+ Unfortunately, the generic Linkplay devices do not provide this information via http API....
64
+
65
+ sampleRate: sample rate of file played, number, read-only
66
+ number which can be used to display the current sample rate, e.g.;
67
+ "44100"
68
+
69
+
70
+ bitDepth: bit depth of file played, number, read-only
71
+ number holdin the value of the current bit depth, e.g.:
72
+ "16"
73
+
74
+ Play_Pause: button to play/pause, button, read/write
75
+ write "true" ti this datapoint to pause/play
76
+
77
+ next: button to skip to the next title in playlist, button, read/write
78
+ write "true" to this data point if you want to jump to the next title in the playlist
79
+
80
+ previous: button to go to the previous title in playlist, button read/write
81
+ write "true" to this data point if you want to jump to the previous title in the playlist
82
+
83
+ lastRefresh: time stamp of last data poll from device, string, read-only, e.g.:
84
+ "17:43:37"
85
+
86
+ volume: playback volume, number, read/write
87
+ use this datapoint to set the desired volume (0-100)
88
+
89
+ play_preset: start playback of specific preset, number, write-only
90
+ write the number of the preset you want to play to this datapoint
91
+
92
+ play_URL: URL of file to be played, string, read/write
93
+ the device will start to play the audio file/playlist located at the URL written to this datapoint
94
+
95
+ loop_mode: current loop mode, number, read-only
96
+ number between 1 and 4 indicating the current loop mode:
97
+ 0 - loop all
98
+ 1 - single loop
99
+ 2 - shuffle loop
100
+ 3 - shuffle, no loop
101
+ 4 - no shuffle, no loop
102
+
103
+ toggle_loop_mode: skip to next loop mode, button, read-only
104
+ not implemented yet
105
+
106
+ setMaster: IP address of device to which this device shall be a slave within the sync group, read/write
107
+ write the IP of the device controlling the sync group this device should join to this datapoint
108
+
109
+ leaveSyncGroup: button to make device leave the current sync group, button, write
110
+ write "true" to this datapoint in order to force the device leave the current snyc group
111
+
112
+ jumptopos: position in ms to which the playback should jump, number, write-only
113
+ write the position (in ms) to which playback should jump to this datapoint
114
+
115
+ jumptopli: number of playlist item to which the playback should jump, number, write-only
116
+ the device will jump to the index of the playlist xou write to this datapoint
117
+
118
+ mode: current source, string, read-only, e.g.:
119
+ "Spotify Connect"
120
+
121
+ switchmode: source to which the device should switch, write-only
122
+
123
+
124
+ playPromptUrl: URL of a file which should be played overlaying the current playback, string, write-only
125
+ the device will play the file locate in the URL you write to this datapoint. The device will play the file in addtion to the current title. This can be used to implement a doorbell. After the "doorbell" is played the playback of the current track will return to the additional volume
126
+
127
+ setShutdown: time in seconds until the device should shut down
128
+ the device will shutdown after the number of seconds you write to this datapoint
129
+
130
+
131
+ ## Changelog
132
+
133
+ <### 0.2.0
134
+ * (KaiIOB) introduction of bonjour auto-detect of streamers>
135
+
136
+
137
+ <### 0.1.0
138
+ * (KaiIOB) main functions implemented and code clean-up>
139
+
140
+
141
+ <### 0.0.3
142
+ * (KaiIOB) migration to setTimeout from setInteral>
143
+
144
+
145
+ <### 0.0.2
146
+ * (KaiIOB) Arylic devices added and corrections>
147
+
148
+
149
+ <### 0.0.1
150
+ * (KaiIOB) initial release>
151
+ <>
152
+ ## License
153
+ MIT License
154
+
155
+ Copyright (c) 2025 KaiIOB <Kaibrendel@kabelmail.de>
156
+
157
+ Permission is hereby granted, free of charge, to any person obtaining a copy
158
+ of this software and associated documentation files (the "Software"), to deal
159
+ in the Software without restriction, including without limitation the rights
160
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
161
+ copies of the Software, and to permit persons to whom the Software is
162
+ furnished to do so, subject to the following conditions:
163
+
164
+ The above copyright notice and this permission notice shall be included in all
165
+ copies or substantial portions of the Software.
166
+
167
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
168
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
169
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
170
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
171
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
172
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
173
+ SOFTWARE.
@@ -0,0 +1,44 @@
1
+ <script type="text/x-iobroker" data-template-name="wiim">
2
+ <div class="row">
3
+ <div class="col s2">
4
+ <input type="checkbox" data-field="enabled" data-default="false"/>
5
+ <!-- this field is mandatory, just to find out if to include this settings or not</span-->
6
+ <span class="translate">enabled</span>
7
+ </div>
8
+ <div class="col s4">
9
+ <input type="text" data-field="interval" size="30">
10
+ <span class="translate">period of time</span>
11
+ </div>
12
+ <div class="col s4">
13
+ <input type="text" data-field="state" size="30">
14
+ <span class="translate">new state</span>
15
+ </div>
16
+ <div class="col s2">
17
+ <input type="checkbox" data-field="setAck" data-default="false">
18
+ <span class="translate">ack</span>
19
+ </div>
20
+ </div>
21
+ </script>
22
+
23
+ <script type="text/javascript">
24
+ $.get("adapter/wiim/words.js", function(script) {
25
+ let translation = script.substring(script.indexOf('{'), script.length);
26
+ translation = translation.substring(0, translation.lastIndexOf(';'));
27
+ $.extend(systemDictionary, JSON.parse(translation));
28
+ });
29
+
30
+ // There are two ways how to predefine default settings:
31
+ // - with attribute "data-default" (content independent)
32
+ // - with function in global variable "defaults". Function name is equal with adapter name.
33
+ // as input function receives object with all information concerning it
34
+ if (typeof defaults !== 'undefined') {
35
+ defaults["wiim"] = function (obj, instanceObj) {
36
+ return {
37
+ enabled: false,
38
+ interval: '5m',
39
+ state: false,
40
+ setAck: false
41
+ };
42
+ }
43
+ }
44
+ </script>
@@ -1,6 +1,4 @@
1
1
  {
2
- "IP_Address": "IP address of device",
3
2
  "Refresh_Interval": "interval for refresh of player data in seconds",
4
- "Request_Type": "API request type: https for Wiim products, http for Arylic products",
5
3
  "wiim adapter settings": "Adaptereinstellungen für wiim"
6
4
  }
@@ -1,6 +1,4 @@
1
1
  {
2
- "IP_Address": "IP address of device",
3
2
  "Refresh_Interval": "interval for refresh of player data in seconds",
4
- "Request_Type": "API request type: https for Wiim products, http for Arylic products",
5
3
  "wiim adapter settings": "Adapter settings for wiim"
6
4
  }
@@ -1,6 +1,4 @@
1
1
  {
2
- "IP_Address": "IP address of device",
3
2
  "Refresh_Interval": "interval for refresh of player data in seconds",
4
- "Request_Type": "API request type: https for Wiim products, http for Arylic products",
5
3
  "wiim adapter settings": "Ajustes del adaptador para wiim"
6
4
  }
@@ -1,6 +1,4 @@
1
1
  {
2
- "IP_Address": "IP address of device",
3
2
  "Refresh_Interval": "interval for refresh of player data in seconds",
4
- "Request_Type": "API request type: https for Wiim products, http for Arylic products",
5
3
  "wiim adapter settings": "Paramètres d'adaptateur pour wiim"
6
4
  }
@@ -1,6 +1,4 @@
1
1
  {
2
- "IP_Address": "IP address of device",
3
2
  "Refresh_Interval": "interval for refresh of player data in seconds",
4
- "Request_Type": "API request type: https for Wiim products, http for Arylic products",
5
3
  "wiim adapter settings": "Impostazioni dell'adattatore per wiim"
6
4
  }
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "IP_Address": "IP address of device",
3
3
  "Refresh_Interval": "interval for refresh of player data in seconds",
4
- "Request_Type": "API request type: https for Wiim products, http for Arylic products",
5
4
  "wiim adapter settings": "Adapterinstellingen voor wiim"
6
5
  }
@@ -1,6 +1,4 @@
1
1
  {
2
- "IP_Address": "IP address of device",
3
2
  "Refresh_Interval": "interval for refresh of player data in seconds",
4
- "Request_Type": "API request type: https for Wiim products, http for Arylic products",
5
3
  "wiim adapter settings": "Ustawienia adaptera dla wiim"
6
4
  }
@@ -1,6 +1,4 @@
1
1
  {
2
- "IP_Address": "IP address of device",
3
2
  "Refresh_Interval": "interval for refresh of player data in seconds",
4
- "Request_Type": "API request type: https for Wiim products, http for Arylic products",
5
3
  "wiim adapter settings": "Configurações do adaptador para wiim"
6
4
  }
@@ -1,6 +1,4 @@
1
1
  {
2
- "IP_Address": "IP address of device",
3
2
  "Refresh_Interval": "interval for refresh of player data in seconds",
4
- "Request_Type": "API request type: https for Wiim products, http for Arylic products",
5
3
  "wiim adapter settings": "Настройки адаптера для wiim"
6
4
  }
@@ -1,6 +1,4 @@
1
1
  {
2
- "IP_Address": "IP address of device",
3
2
  "Refresh_Interval": "interval for refresh of player data in seconds",
4
- "Request_Type": "API request type: https for Wiim products, http for Arylic products",
5
3
  "wiim adapter settings": "Налаштування адаптера для wiim"
6
4
  }
@@ -1,6 +1,5 @@
1
1
  {
2
- "IP_Address": "IP address of device",
2
+
3
3
  "Refresh_Interval": "interval for refresh of player data in seconds",
4
- "Request_Type": "API request type: https for Wiim products, http for Arylic products",
5
4
  "wiim adapter settings": "wiim的适配器设置"
6
5
  }
@@ -1,36 +1,17 @@
1
- {
2
- "i18n": true,
3
- "type": "panel",
4
- "items": {
5
- "IP_Address": {
6
- "type": "text",
7
- "label": "IP address of device",
8
- "newLine": true,
9
- "xs": 12,
10
- "sm": 12,
11
- "md": 4,
12
- "lg": 3,
13
- "xl": 3
14
- },
15
- "Refresh_Interval": {
16
- "type": "number",
17
- "label": "interval for refresh of player data in seconds",
18
- "newLine": true,
19
- "xs": 12,
20
- "sm": 12,
21
- "md": 4,
22
- "lg": 3,
23
- "xl": 3
24
- },
25
- "Request_Type": {
26
- "type": "text",
27
- "label": "API request type: https for Wiim products, http for Arylic products",
28
- "newLine": true,
29
- "xs": 12,
30
- "sm": 12,
31
- "md": 4,
32
- "lg": 3,
33
- "xl": 3
34
- }
35
- }
36
- }
1
+ {
2
+ "i18n": true,
3
+ "type": "panel",
4
+ "items": {
5
+ "Refresh_Interval": {
6
+ "type": "number",
7
+ "label": "interval for refresh of player data in seconds",
8
+ "newLine": true,
9
+ "xs": 12,
10
+ "sm": 12,
11
+ "md": 4,
12
+ "lg": 3,
13
+ "xl": 3
14
+ }
15
+
16
+ }
17
+ }
@@ -0,0 +1,79 @@
1
+ <html>
2
+
3
+ <head>
4
+ <link rel="stylesheet" type="text/css" href="../../lib/css/materialize.css">
5
+ <link rel="stylesheet" type="text/css" href="../../css/adapter.css" />
6
+
7
+ <script type="text/javascript" src="../../lib/js/jquery-3.2.1.min.js"></script>
8
+ <script type="text/javascript" src="../../socket.io/socket.io.js"></script>
9
+ <script type="text/javascript" src="../../js/translate.js"></script>
10
+ <script type="text/javascript" src="../../lib/js/materialize.js"></script>
11
+
12
+ <script type="text/javascript" src="words.js"></script>
13
+ <style>
14
+ .m .col .select-wrapper + label {
15
+ top: -26px;
16
+ }
17
+ .m span{
18
+ font-size: 0.9em;
19
+ }
20
+ </style>
21
+ </head>
22
+
23
+ <body>
24
+
25
+ <div class="m adapter-container">
26
+ <div class="row">
27
+ <!-- Forms are the standard way to receive user inputted data.
28
+ Learn more http://materializecss.com/forms.html-->
29
+ <div class="row">
30
+ <div class="input-field col s6">
31
+ <img src="wiim.png" class="logo">
32
+ </div>
33
+ </div>
34
+ <div class="row">
35
+ <div class="input-field col s3">
36
+ <input class="value" id="test1" type="checkbox" />
37
+ <label for="test1" class="translate">test1</label>
38
+ </div>
39
+ </div>
40
+ <div class="row">
41
+ <div class="input-field col s12 m6 l4">
42
+ <input class="value" id="myText" type="text">
43
+ <label for="myText">Text</label>
44
+ <span class="translate">Descriptions of the input field</span>
45
+ </div>
46
+ <div class="input-field col s12 m6 l4">
47
+ <input type="number" class="value" id="test2" />
48
+ <label for="test2" class="translate">Number</label>
49
+ <!-- Important: label must come directly after input. Label is important. -->
50
+ <span class="translate">test2</span>
51
+ </div>
52
+ <div class="input-field col s12 m6 l4">
53
+ <input id="email" type="email" class="value validate">
54
+ <label for="email" data-error="wrong" data-success="right">Email</label>
55
+ <!-- You can add custom validation messages by adding either data-error or data-success attributes to your input field labels.-->
56
+ <span class="translate">Verification input</span>
57
+ </div>
58
+ </div>
59
+ <div class="row">
60
+ <div class="input-field col s12 m4">
61
+ <select class="value" id="mySelect">
62
+ <option value="auto" class="translate">Auto</option>
63
+ <option value="manual" class="translate">Manual</option>
64
+ </select>
65
+ <label for="mySelect" class="translate">My select</label>
66
+ <!-- Important: label must come directly after select. Label is important. -->
67
+ </div>
68
+ <div class="input-field col s12 m8">
69
+ <i class="material-icons prefix">mode_edit</i>
70
+ <textarea id="Textarea" class="value materialize-textarea"></textarea>
71
+ <label for="Textarea">Message</label>
72
+ </div>
73
+ </div>
74
+ </div>
75
+ </div>
76
+
77
+ </body>
78
+
79
+ </html>
package/admin/wiim.png CHANGED
Binary file