mirror of
https://github.com/schlagmichdoch/PairDrop.git
synced 2025-04-26 01:36:18 -04:00
99 lines
3.2 KiB
HTML
99 lines
3.2 KiB
HTML
<link rel="import" href="../../bower_components/paper-input/paper-input.html">
|
|
<link rel="import" href="../../bower_components/iron-localstorage/iron-localstorage.html">
|
|
<link rel="import" href="device-name-dialog.html">
|
|
<dom-module id="device-name">
|
|
<template>
|
|
<style>
|
|
:host {
|
|
display: inline-block;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.name-label {
|
|
@apply(--paper-font-subhead);
|
|
text-align: center;
|
|
cursor: pointer;
|
|
width: 160px;
|
|
line-height: 12px !important;
|
|
}
|
|
|
|
:root {
|
|
/* Label and underline color when the input is not focused */
|
|
--paper-input-container-color: #333;
|
|
/* Label and underline color when the input is focused */
|
|
--paper-input-container-focus-color: #4285f4;
|
|
/* Label and underline color when the input is invalid */
|
|
--paper-input-container-invalid-color: red;
|
|
/* Input foreground color */
|
|
--paper-input-container-input-color: #333;
|
|
}
|
|
|
|
@media all and (max-height: 370px) {
|
|
:host {}
|
|
}
|
|
|
|
paper-dialog {
|
|
width: 300px;
|
|
text-align: left;
|
|
}
|
|
</style>
|
|
<div class="name-label" hidden$="{{name}}">My Device</div>
|
|
<div class="name-label" hidden$="{{!name}}">{{name}}</div>
|
|
<iron-localstorage name="device-name" value="{{name}}" iron-localstorage-load="_nameChanged"></iron-localstorage>
|
|
</template>
|
|
<script>
|
|
'use strict';
|
|
Polymer({
|
|
is: 'device-name',
|
|
properties: {
|
|
name: {
|
|
observer: '_nameChanged'
|
|
}
|
|
},
|
|
open: function() {
|
|
this.deviceNameDialog.open();
|
|
},
|
|
_nameChanged: function(name) {
|
|
if (!name) {
|
|
return;
|
|
}
|
|
this.cancelAsync(this.timer);
|
|
this.timer = this.async(function() {
|
|
if (!app.conn.notifyServer) {
|
|
this._nameChanged(name);
|
|
return;
|
|
}
|
|
try {
|
|
this._sendNameToServer(name);
|
|
} catch (e) {
|
|
this._nameChanged(name);
|
|
}
|
|
|
|
}, 300);
|
|
|
|
},
|
|
_sendNameToServer: function(name) {
|
|
app.conn.notifyServer({
|
|
serverMsg: 'device-name',
|
|
name: name
|
|
});
|
|
},
|
|
_initialize: function() {
|
|
console.log('initialize name');
|
|
},
|
|
get deviceNameDialog() {
|
|
var deviceNameDialog = document.querySelector('device-name-dialog');
|
|
if (!deviceNameDialog) {
|
|
deviceNameDialog = Polymer.Base.create('device-name-dialog');
|
|
deviceNameDialog.addEventListener('save-device-name', function(e) {
|
|
this.name = e.detail;
|
|
console.log(this.name);
|
|
}.bind(this));
|
|
document.body.appendChild(deviceNameDialog);
|
|
};
|
|
deviceNameDialog.deviceName = this.name;
|
|
return deviceNameDialog;
|
|
}
|
|
});
|
|
</script>
|
|
</dom-module>
|