@things-factory/operato-fleet 10.0.0-beta.4 → 10.0.0-beta.43
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/client/commons/marker-info-content.ts +3 -3
- package/client/entries/public/home.ts +246 -0
- package/client/pages/admin/admin.ts +1 -1
- package/client/pages/client/client.ts +8 -8
- package/client/pages/device/device.ts +8 -8
- package/client/pages/fleet-page-style.ts +1 -1
- package/client/pages/geofence/geofence.ts +6 -6
- package/client/pages/monitoring/map-mode.ts +4 -9
- package/client/pages/monitoring/monitoring.ts +8 -8
- package/client/pages/report/report-air-pressure.ts +8 -8
- package/client/pages/report/report-based-on-track.ts +2 -2
- package/client/pages/report/report-breakdown.ts +8 -8
- package/client/pages/report/report-delivery.ts +8 -8
- package/client/pages/report/report-device.ts +8 -8
- package/client/pages/report/report-humidity.ts +8 -8
- package/client/pages/report/report-illuminance.ts +8 -8
- package/client/pages/report/report-shock.ts +8 -8
- package/client/pages/report/report-style.ts +1 -1
- package/client/pages/report/report-temperature.ts +8 -8
- package/dist-server/middlewares/index.d.ts +2 -1
- package/dist-server/middlewares/index.js +1 -1
- package/dist-server/middlewares/index.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +28 -30
- package/views/public/home.html +0 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import '@material/
|
|
1
|
+
import '@material/web/progress/linear-progress.js'
|
|
2
2
|
import '@operato/board/ox-board-viewer.js'
|
|
3
3
|
|
|
4
4
|
import gql from 'graphql-tag'
|
|
@@ -28,7 +28,7 @@ export class MarkerInfoContent extends LitElement {
|
|
|
28
28
|
height: 100%;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
md-linear-progress {
|
|
32
32
|
margin: 13px;
|
|
33
33
|
width: 200px;
|
|
34
34
|
}
|
|
@@ -67,7 +67,7 @@ export class MarkerInfoContent extends LitElement {
|
|
|
67
67
|
hide-navigation
|
|
68
68
|
></ox-board-viewer>
|
|
69
69
|
|
|
70
|
-
${this.board ? html`` : html` <
|
|
70
|
+
${this.board ? html`` : html` <md-linear-progress indeterminate></md-linear-progress> `}
|
|
71
71
|
`
|
|
72
72
|
}
|
|
73
73
|
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import '@material/web/icon/icon.js'
|
|
2
|
+
import '@material/web/button/text-button.js'
|
|
3
|
+
import '@material/web/button/elevated-button.js'
|
|
4
|
+
|
|
5
|
+
import { css, html, LitElement } from 'lit'
|
|
6
|
+
import { customElement, property, query } from 'lit/decorators.js'
|
|
7
|
+
import { ifDefined } from 'lit/directives/if-defined.js'
|
|
8
|
+
|
|
9
|
+
import { i18next, localize } from '@operato/i18n'
|
|
10
|
+
|
|
11
|
+
@customElement('home-page')
|
|
12
|
+
export class HomePage extends localize(i18next)(LitElement) {
|
|
13
|
+
static styles = [
|
|
14
|
+
css`
|
|
15
|
+
:host {
|
|
16
|
+
display: block;
|
|
17
|
+
position: relative;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.signin {
|
|
21
|
+
position: absolute;
|
|
22
|
+
right: 20px;
|
|
23
|
+
top: 10px;
|
|
24
|
+
display: inline-block;
|
|
25
|
+
padding: 12px 24px;
|
|
26
|
+
font-size: 16px;
|
|
27
|
+
font-weight: bold;
|
|
28
|
+
color: var(--md-sys-color-on-tertiary-container);
|
|
29
|
+
background-color: var(--md-sys-color-tertiary-container);
|
|
30
|
+
border: none;
|
|
31
|
+
border-radius: 4px;
|
|
32
|
+
text-align: center;
|
|
33
|
+
text-decoration: none;
|
|
34
|
+
transition:
|
|
35
|
+
background-color 0.3s,
|
|
36
|
+
transform 0.3s;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.signin:hover {
|
|
40
|
+
color: var(--md-sys-color-tertiary-container);
|
|
41
|
+
background-color: var(--md-sys-color-on-tertiary-container);
|
|
42
|
+
transform: translateY(-2px);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.signin:active {
|
|
46
|
+
color: var(--md-sys-color-on-tertiary-container);
|
|
47
|
+
background-color: var(--md-sys-color-tertiary-container);
|
|
48
|
+
transform: translateY(0);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
[message] {
|
|
52
|
+
background-color: var(--md-sys-color-secondary-container);
|
|
53
|
+
padding: 60px 50px 0 50px;
|
|
54
|
+
color: var(--md-sys-color-on-secondary-container);
|
|
55
|
+
text-align: center;
|
|
56
|
+
font-size: 20px;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
[message] strong {
|
|
60
|
+
display: block;
|
|
61
|
+
font-size: 2.5rem;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
[message] img {
|
|
65
|
+
width: 800px;
|
|
66
|
+
max-width: 90%;
|
|
67
|
+
display: block;
|
|
68
|
+
margin: auto;
|
|
69
|
+
margin-top: -15px;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
[ticket] {
|
|
73
|
+
display: grid;
|
|
74
|
+
grid-template-columns: 96px 1fr;
|
|
75
|
+
width: 450px;
|
|
76
|
+
margin: auto;
|
|
77
|
+
margin-top: -20px;
|
|
78
|
+
margin-bottom: 60px;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
[brand] {
|
|
82
|
+
display: flex;
|
|
83
|
+
justify-content: center;
|
|
84
|
+
align-items: center;
|
|
85
|
+
border-radius: 12px;
|
|
86
|
+
overflow: hidden;
|
|
87
|
+
background-color: var(--md-sys-color-primary);
|
|
88
|
+
box-shadow: var(--box-shadow);
|
|
89
|
+
border-right: 3px dotted var(--md-sys-color-secondary-container);
|
|
90
|
+
text-align: center;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
[ticket] [content] {
|
|
94
|
+
border-radius: 12px;
|
|
95
|
+
background-color: var(--md-sys-color-tertiary-container);
|
|
96
|
+
padding: var(--spacing-medium) var(--spacing-large);
|
|
97
|
+
box-shadow: var(--box-shadow);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
fieldset {
|
|
101
|
+
border: none;
|
|
102
|
+
margin: 0;
|
|
103
|
+
padding: 0;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
legend {
|
|
107
|
+
margin: 0;
|
|
108
|
+
padding: var(--spacing-small) 0 var(--spacing-medium) 0;
|
|
109
|
+
font-weight: bold;
|
|
110
|
+
color: var(--legend-color);
|
|
111
|
+
text-transform: uppercase;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
input {
|
|
115
|
+
border: var(--md-sys-color-outline);
|
|
116
|
+
border-radius: var(--border-radius);
|
|
117
|
+
padding: var(--spacing-medium);
|
|
118
|
+
font: var(--input-font);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
input[type='text'] {
|
|
122
|
+
min-width: 190px;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
input:focus {
|
|
126
|
+
outline: none;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
@media screen and (max-width: 480px) {
|
|
130
|
+
[message] {
|
|
131
|
+
padding: 60px 10px 0 10px;
|
|
132
|
+
text-align: center;
|
|
133
|
+
font-size: 14px;
|
|
134
|
+
}
|
|
135
|
+
[message] strong {
|
|
136
|
+
margin-bottom: 15px;
|
|
137
|
+
font-size: 1.6rem;
|
|
138
|
+
line-height: 1.2em;
|
|
139
|
+
}
|
|
140
|
+
[message] img {
|
|
141
|
+
max-width: 100%;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
legend {
|
|
145
|
+
padding: 0;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
[ticket] {
|
|
149
|
+
display: grid;
|
|
150
|
+
grid-template-columns: 0 1fr;
|
|
151
|
+
width: 90%;
|
|
152
|
+
margin: auto;
|
|
153
|
+
margin-top: -15px;
|
|
154
|
+
margin-bottom: 60px;
|
|
155
|
+
}
|
|
156
|
+
[brand] {
|
|
157
|
+
border: 0;
|
|
158
|
+
}
|
|
159
|
+
[content] {
|
|
160
|
+
border: 1px solid var(--md-sys-color-primary);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
fieldset {
|
|
164
|
+
text-align: center;
|
|
165
|
+
}
|
|
166
|
+
input[type='text'] {
|
|
167
|
+
width: calc(100% - 20px);
|
|
168
|
+
margin: var(--spacing-small) 0 var(--spacing-medium) 0;
|
|
169
|
+
text-align: center;
|
|
170
|
+
}
|
|
171
|
+
fieldset md-text-button {
|
|
172
|
+
width: 100%;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
`
|
|
176
|
+
]
|
|
177
|
+
|
|
178
|
+
@property({ type: String, attribute: true }) tagline?: string
|
|
179
|
+
@property({ type: String, attribute: true }) explanation1?: string
|
|
180
|
+
@property({ type: String, attribute: true }) explanation2?: string
|
|
181
|
+
|
|
182
|
+
private _applicationMeta?: { icon?: string; title?: string; description?: string }
|
|
183
|
+
|
|
184
|
+
render() {
|
|
185
|
+
var { icon, title } = this.applicationMeta
|
|
186
|
+
|
|
187
|
+
const tagline = this.tagline || `Join the ${title} Business Program`
|
|
188
|
+
const explanation1 = this.explanation1 || 'Create your free account today.'
|
|
189
|
+
const explanation2 = this.explanation2 || 'Everything you need to go from where you are, to where you want to be.'
|
|
190
|
+
|
|
191
|
+
return html`
|
|
192
|
+
<a
|
|
193
|
+
class="signin"
|
|
194
|
+
@click=${e => {
|
|
195
|
+
e.preventDefault()
|
|
196
|
+
window.location.href = '/auth/signin'
|
|
197
|
+
}}
|
|
198
|
+
>
|
|
199
|
+
${i18next.t('button.sign_in')}</a
|
|
200
|
+
>
|
|
201
|
+
|
|
202
|
+
<div message>
|
|
203
|
+
<strong>${tagline}</strong> ${explanation1} <br />
|
|
204
|
+
${explanation2}
|
|
205
|
+
<img src="/assets/images/invitation.png" />
|
|
206
|
+
</div>
|
|
207
|
+
|
|
208
|
+
<div ticket>
|
|
209
|
+
<div brand><img src=${ifDefined(icon)} /></div>
|
|
210
|
+
<div content>
|
|
211
|
+
<form action="/auth/join" accept-charset="utf-8" name="join" method="post">
|
|
212
|
+
<fieldset>
|
|
213
|
+
<legend>${title} invitation ticket</legend>
|
|
214
|
+
<input type="email" name="email" placeholder="Enter your email address" />
|
|
215
|
+
<input type="submit" value="join now" />
|
|
216
|
+
</fieldset>
|
|
217
|
+
</form>
|
|
218
|
+
</div>
|
|
219
|
+
</div>
|
|
220
|
+
`
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
@query('input[type=email]') firstInput!: HTMLInputElement
|
|
224
|
+
|
|
225
|
+
firstUpdated() {
|
|
226
|
+
setTimeout(() => {
|
|
227
|
+
this.firstInput.focus()
|
|
228
|
+
}, 100)
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
get applicationMeta() {
|
|
232
|
+
if (!this._applicationMeta) {
|
|
233
|
+
var iconLink: HTMLLinkElement | null = document.querySelector('link[rel="application-icon"]')
|
|
234
|
+
var titleMeta: HTMLMetaElement | null = document.querySelector('meta[name="application-name"]')
|
|
235
|
+
var descriptionMeta: HTMLMetaElement | null = document.querySelector('meta[name="application-description"]')
|
|
236
|
+
|
|
237
|
+
this._applicationMeta = {
|
|
238
|
+
icon: iconLink?.href,
|
|
239
|
+
title: titleMeta ? titleMeta.content : 'Things Factory',
|
|
240
|
+
description: descriptionMeta ? descriptionMeta.content : 'Reimagining Software'
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
return this._applicationMeta
|
|
245
|
+
}
|
|
246
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { html, css } from 'lit'
|
|
2
|
-
import '@material/
|
|
3
|
-
import '@material/
|
|
2
|
+
import '@material/web/button/filled-button.js'
|
|
3
|
+
import '@material/web/textfield/outlined-text-field.js'
|
|
4
4
|
import { store, PageView } from '@operato/shell'
|
|
5
5
|
import '@operato/data-grist'
|
|
6
6
|
import { i18next, localize } from '@operato/i18n'
|
|
@@ -42,12 +42,12 @@ class FMSClient extends localize(i18next)(PageView) {
|
|
|
42
42
|
render() {
|
|
43
43
|
return html`
|
|
44
44
|
<form search>
|
|
45
|
-
<
|
|
46
|
-
<
|
|
47
|
-
<
|
|
48
|
-
<
|
|
49
|
-
<
|
|
50
|
-
<
|
|
45
|
+
<md-outlined-text-field label="device"></md-outlined-text-field>
|
|
46
|
+
<md-outlined-text-field label="client"></md-outlined-text-field>
|
|
47
|
+
<md-outlined-text-field label="delivery"></md-outlined-text-field>
|
|
48
|
+
<md-outlined-text-field label="from date" type="date"></md-outlined-text-field>
|
|
49
|
+
<md-outlined-text-field label="to date" type="date"></md-outlined-text-field>
|
|
50
|
+
<md-filled-button>search</md-filled-button>
|
|
51
51
|
</form>
|
|
52
52
|
|
|
53
53
|
<ox-grist
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { html, css } from 'lit'
|
|
2
|
-
import '@material/
|
|
3
|
-
import '@material/
|
|
2
|
+
import '@material/web/button/filled-button.js'
|
|
3
|
+
import '@material/web/textfield/outlined-text-field.js'
|
|
4
4
|
import { store, PageView } from '@operato/shell'
|
|
5
5
|
import '@operato/data-grist'
|
|
6
6
|
import { i18next, localize } from '@operato/i18n'
|
|
@@ -42,12 +42,12 @@ class FMSDevice extends localize(i18next)(PageView) {
|
|
|
42
42
|
render() {
|
|
43
43
|
return html`
|
|
44
44
|
<form search>
|
|
45
|
-
<
|
|
46
|
-
<
|
|
47
|
-
<
|
|
48
|
-
<
|
|
49
|
-
<
|
|
50
|
-
<
|
|
45
|
+
<md-outlined-text-field label="device"></md-outlined-text-field>
|
|
46
|
+
<md-outlined-text-field label="client"></md-outlined-text-field>
|
|
47
|
+
<md-outlined-text-field label="delivery"></md-outlined-text-field>
|
|
48
|
+
<md-outlined-text-field label="from date" type="date"></md-outlined-text-field>
|
|
49
|
+
<md-outlined-text-field label="to date" type="date"></md-outlined-text-field>
|
|
50
|
+
<md-filled-button>search</md-filled-button>
|
|
51
51
|
</form>
|
|
52
52
|
|
|
53
53
|
<ox-grist
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { html, css } from 'lit'
|
|
2
|
-
import '@material/
|
|
3
|
-
import '@material/
|
|
2
|
+
import '@material/web/button/filled-button.js'
|
|
3
|
+
import '@material/web/textfield/outlined-text-field.js'
|
|
4
4
|
import { store, PageView } from '@operato/shell'
|
|
5
5
|
import { i18next, localize } from '@operato/i18n'
|
|
6
6
|
|
|
@@ -46,10 +46,10 @@ class FMSGeoFence extends localize(i18next)(PageView) {
|
|
|
46
46
|
render() {
|
|
47
47
|
return html`
|
|
48
48
|
<form search>
|
|
49
|
-
<
|
|
50
|
-
<
|
|
51
|
-
<
|
|
52
|
-
<
|
|
49
|
+
<md-outlined-text-field label="client"></md-outlined-text-field>
|
|
50
|
+
<md-outlined-text-field label="geofence"></md-outlined-text-field>
|
|
51
|
+
<md-outlined-text-field label="type"></md-outlined-text-field>
|
|
52
|
+
<md-filled-button>search</md-filled-button>
|
|
53
53
|
</form>
|
|
54
54
|
|
|
55
55
|
<div main>
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { LitElement, html, css } from 'lit'
|
|
2
|
-
import '@material/
|
|
3
|
-
import '@material/mwc-formfield'
|
|
2
|
+
import '@material/web/radio/radio.js'
|
|
4
3
|
|
|
5
4
|
export const MODE_FLEET = 0
|
|
6
5
|
export const MODE_TRACK = 1
|
|
@@ -17,7 +16,7 @@ class MapMode extends LitElement {
|
|
|
17
16
|
background-color: var(--md-sys-color-surface);
|
|
18
17
|
box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px;
|
|
19
18
|
}
|
|
20
|
-
|
|
19
|
+
md-radio {
|
|
21
20
|
margin-right: -10px;
|
|
22
21
|
}
|
|
23
22
|
`
|
|
@@ -33,13 +32,9 @@ class MapMode extends LitElement {
|
|
|
33
32
|
render() {
|
|
34
33
|
var mode = this.mode || MODE_FLEET
|
|
35
34
|
return html`
|
|
36
|
-
<
|
|
37
|
-
<mwc-radio @click=${e => this.setMode(MODE_FLEET)} name="fleet" ?checked=${mode == MODE_FLEET}></mwc-radio>
|
|
38
|
-
</mwc-formfield>
|
|
35
|
+
<label>Fleet <md-radio @click=${e => this.setMode(MODE_FLEET)} name="fleet" ?checked=${mode == MODE_FLEET}></md-radio></label>
|
|
39
36
|
|
|
40
|
-
<
|
|
41
|
-
<mwc-radio @click=${e => this.setMode(MODE_TRACK)} name="track" ?checked=${mode == MODE_TRACK}></mwc-radio>
|
|
42
|
-
</mwc-formfield>
|
|
37
|
+
<label>Track <md-radio @click=${e => this.setMode(MODE_TRACK)} name="track" ?checked=${mode == MODE_TRACK}></md-radio></label>
|
|
43
38
|
`
|
|
44
39
|
}
|
|
45
40
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { html, css } from 'lit'
|
|
2
|
-
import '@material/
|
|
3
|
-
import '@material/
|
|
2
|
+
import '@material/web/button/filled-button.js'
|
|
3
|
+
import '@material/web/textfield/outlined-text-field.js'
|
|
4
4
|
|
|
5
5
|
import { store, PageView } from '@operato/shell'
|
|
6
6
|
import { i18next, localize } from '@operato/i18n'
|
|
@@ -76,12 +76,12 @@ class FMSMonitoring extends localize(i18next)(PageView) {
|
|
|
76
76
|
|
|
77
77
|
return html`
|
|
78
78
|
<form @change=${this.onchangeSearch.bind(this)} search>
|
|
79
|
-
<
|
|
80
|
-
<
|
|
81
|
-
<
|
|
82
|
-
<
|
|
83
|
-
<
|
|
84
|
-
<
|
|
79
|
+
<md-outlined-text-field label="device" .value=${device}></md-outlined-text-field>
|
|
80
|
+
<md-outlined-text-field label="client" .value=${client}></md-outlined-text-field>
|
|
81
|
+
<md-outlined-text-field label="delivery" .value=${delivery}></md-outlined-text-field>
|
|
82
|
+
<md-outlined-text-field label="from date" type="date" .value=${fromdate}></md-outlined-text-field>
|
|
83
|
+
<md-outlined-text-field label="to date" type="date" .value=${todate}></md-outlined-text-field>
|
|
84
|
+
<md-filled-button>search</md-filled-button>
|
|
85
85
|
</form>
|
|
86
86
|
|
|
87
87
|
<div main>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { html, css } from 'lit'
|
|
2
|
-
import '@material/
|
|
3
|
-
import '@material/
|
|
2
|
+
import '@material/web/button/filled-button.js'
|
|
3
|
+
import '@material/web/textfield/outlined-text-field.js'
|
|
4
4
|
import '@operato/data-grist'
|
|
5
5
|
import { i18next } from '@operato/i18n'
|
|
6
6
|
import { isMobileDevice } from '@operato/utils'
|
|
@@ -35,12 +35,12 @@ class ReportAirPressure extends ReportBasedOnTrack {
|
|
|
35
35
|
render() {
|
|
36
36
|
return html`
|
|
37
37
|
<form search>
|
|
38
|
-
<
|
|
39
|
-
<
|
|
40
|
-
<
|
|
41
|
-
<
|
|
42
|
-
<
|
|
43
|
-
<
|
|
38
|
+
<md-outlined-text-field label="device"></md-outlined-text-field>
|
|
39
|
+
<md-outlined-text-field label="client"></md-outlined-text-field>
|
|
40
|
+
<md-outlined-text-field label="delivery"></md-outlined-text-field>
|
|
41
|
+
<md-outlined-text-field label="from date" type="date"></md-outlined-text-field>
|
|
42
|
+
<md-outlined-text-field label="to date" type="date"></md-outlined-text-field>
|
|
43
|
+
<md-filled-button>search</md-filled-button>
|
|
44
44
|
</form>
|
|
45
45
|
<ox-grist
|
|
46
46
|
.mode=${isMobileDevice() ? 'LIST' : 'GRID'}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import '@material/
|
|
2
|
-
import '@material/
|
|
1
|
+
import '@material/web/button/filled-button.js'
|
|
2
|
+
import '@material/web/textfield/outlined-text-field.js'
|
|
3
3
|
import '../../commons/fleet-search'
|
|
4
4
|
import '../../commons/track-popup'
|
|
5
5
|
import '../../commons/marker-info-content'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { html, css } from 'lit'
|
|
2
|
-
import '@material/
|
|
3
|
-
import '@material/
|
|
2
|
+
import '@material/web/button/filled-button.js'
|
|
3
|
+
import '@material/web/textfield/outlined-text-field.js'
|
|
4
4
|
import '@operato/data-grist'
|
|
5
5
|
import { i18next } from '@operato/i18n'
|
|
6
6
|
import { isMobileDevice } from '@operato/utils'
|
|
@@ -35,12 +35,12 @@ class ReportBreakDown extends ReportBasedOnTrack {
|
|
|
35
35
|
render() {
|
|
36
36
|
return html`
|
|
37
37
|
<form search>
|
|
38
|
-
<
|
|
39
|
-
<
|
|
40
|
-
<
|
|
41
|
-
<
|
|
42
|
-
<
|
|
43
|
-
<
|
|
38
|
+
<md-outlined-text-field label="device"></md-outlined-text-field>
|
|
39
|
+
<md-outlined-text-field label="client"></md-outlined-text-field>
|
|
40
|
+
<md-outlined-text-field label="delivery"></md-outlined-text-field>
|
|
41
|
+
<md-outlined-text-field label="from date" type="date"></md-outlined-text-field>
|
|
42
|
+
<md-outlined-text-field label="to date" type="date"></md-outlined-text-field>
|
|
43
|
+
<md-filled-button>search</md-filled-button>
|
|
44
44
|
</form>
|
|
45
45
|
|
|
46
46
|
<ox-grist
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { html, css } from 'lit'
|
|
2
|
-
import '@material/
|
|
3
|
-
import '@material/
|
|
2
|
+
import '@material/web/button/filled-button.js'
|
|
3
|
+
import '@material/web/textfield/outlined-text-field.js'
|
|
4
4
|
import { store, PageView } from '@operato/shell'
|
|
5
5
|
import '@operato/data-grist'
|
|
6
6
|
import { i18next, localize } from '@operato/i18n'
|
|
@@ -34,12 +34,12 @@ class ReportDelivery extends localize(i18next)(PageView) {
|
|
|
34
34
|
render() {
|
|
35
35
|
return html`
|
|
36
36
|
<form search>
|
|
37
|
-
<
|
|
38
|
-
<
|
|
39
|
-
<
|
|
40
|
-
<
|
|
41
|
-
<
|
|
42
|
-
<
|
|
37
|
+
<md-outlined-text-field label="device"></md-outlined-text-field>
|
|
38
|
+
<md-outlined-text-field label="client"></md-outlined-text-field>
|
|
39
|
+
<md-outlined-text-field label="delivery"></md-outlined-text-field>
|
|
40
|
+
<md-outlined-text-field label="from date" type="date"></md-outlined-text-field>
|
|
41
|
+
<md-outlined-text-field label="to date" type="date"></md-outlined-text-field>
|
|
42
|
+
<md-filled-button>search</md-filled-button>
|
|
43
43
|
</form>
|
|
44
44
|
|
|
45
45
|
<ox-grist
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { html, css } from 'lit'
|
|
2
|
-
import '@material/
|
|
3
|
-
import '@material/
|
|
2
|
+
import '@material/web/button/filled-button.js'
|
|
3
|
+
import '@material/web/textfield/outlined-text-field.js'
|
|
4
4
|
import { store, PageView } from '@operato/shell'
|
|
5
5
|
import '@operato/data-grist'
|
|
6
6
|
import { i18next, localize } from '@operato/i18n'
|
|
@@ -33,12 +33,12 @@ class ReportDevice extends localize(i18next)(PageView) {
|
|
|
33
33
|
render() {
|
|
34
34
|
return html`
|
|
35
35
|
<form search>
|
|
36
|
-
<
|
|
37
|
-
<
|
|
38
|
-
<
|
|
39
|
-
<
|
|
40
|
-
<
|
|
41
|
-
<
|
|
36
|
+
<md-outlined-text-field label="device"></md-outlined-text-field>
|
|
37
|
+
<md-outlined-text-field label="client"></md-outlined-text-field>
|
|
38
|
+
<md-outlined-text-field label="delivery"></md-outlined-text-field>
|
|
39
|
+
<md-outlined-text-field label="from date" type="date"></md-outlined-text-field>
|
|
40
|
+
<md-outlined-text-field label="to date" type="date"></md-outlined-text-field>
|
|
41
|
+
<md-filled-button>search</md-filled-button>
|
|
42
42
|
</form>
|
|
43
43
|
|
|
44
44
|
<ox-grist
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { html, css } from 'lit'
|
|
2
|
-
import '@material/
|
|
3
|
-
import '@material/
|
|
2
|
+
import '@material/web/button/filled-button.js'
|
|
3
|
+
import '@material/web/textfield/outlined-text-field.js'
|
|
4
4
|
import '@operato/data-grist'
|
|
5
5
|
import { i18next } from '@operato/i18n'
|
|
6
6
|
import { isMobileDevice } from '@operato/utils'
|
|
@@ -35,12 +35,12 @@ class ReportHumidity extends ReportBasedOnTrack {
|
|
|
35
35
|
render() {
|
|
36
36
|
return html`
|
|
37
37
|
<form search>
|
|
38
|
-
<
|
|
39
|
-
<
|
|
40
|
-
<
|
|
41
|
-
<
|
|
42
|
-
<
|
|
43
|
-
<
|
|
38
|
+
<md-outlined-text-field label="device"></md-outlined-text-field>
|
|
39
|
+
<md-outlined-text-field label="client"></md-outlined-text-field>
|
|
40
|
+
<md-outlined-text-field label="delivery"></md-outlined-text-field>
|
|
41
|
+
<md-outlined-text-field label="from date" type="date"></md-outlined-text-field>
|
|
42
|
+
<md-outlined-text-field label="to date" type="date"></md-outlined-text-field>
|
|
43
|
+
<md-filled-button>search</md-filled-button>
|
|
44
44
|
</form>
|
|
45
45
|
|
|
46
46
|
<ox-grist
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { html, css } from 'lit'
|
|
2
|
-
import '@material/
|
|
3
|
-
import '@material/
|
|
2
|
+
import '@material/web/button/filled-button.js'
|
|
3
|
+
import '@material/web/textfield/outlined-text-field.js'
|
|
4
4
|
import '@operato/data-grist'
|
|
5
5
|
import { i18next } from '@operato/i18n'
|
|
6
6
|
import { isMobileDevice } from '@operato/utils'
|
|
@@ -34,12 +34,12 @@ class ReportIlluminance extends ReportBasedOnTrack {
|
|
|
34
34
|
render() {
|
|
35
35
|
return html`
|
|
36
36
|
<form search>
|
|
37
|
-
<
|
|
38
|
-
<
|
|
39
|
-
<
|
|
40
|
-
<
|
|
41
|
-
<
|
|
42
|
-
<
|
|
37
|
+
<md-outlined-text-field label="device"></md-outlined-text-field>
|
|
38
|
+
<md-outlined-text-field label="client"></md-outlined-text-field>
|
|
39
|
+
<md-outlined-text-field label="delivery"></md-outlined-text-field>
|
|
40
|
+
<md-outlined-text-field label="from date" type="date"></md-outlined-text-field>
|
|
41
|
+
<md-outlined-text-field label="to date" type="date"></md-outlined-text-field>
|
|
42
|
+
<md-filled-button>search</md-filled-button>
|
|
43
43
|
</form>
|
|
44
44
|
|
|
45
45
|
<ox-grist
|