.container .page-header h1 {{node.nodeinfo.hostname}} small {{nodeid}} form(name="rowForm",ng-submit="save()") .form-group label Online p.form-control-static span.glyphicon(ng-class="{'glyphicon-ok':node.flags.online,'glyphicon-remove':!node.flags.online}") span(am-time-ago="node.lastseen") .form-group(ng-class="rowForm.group.$invalid ? 'has-error' : ''") label(for="formGroup") Group input.form-control(id="formGroup",placeholder="Group",type="text",name="group",pattern="[a-zA-Z0-9-]*",ng-model='node.nodeinfo.owner.contact') .form-group(ng-class="rowForm.hostname.$invalid ? 'has-error' : ''") label(for="formHostname") Hostname input.form-control(id="formHostname",placeholder="Hostname",type="text",name="hostname",pattern="[a-zA-Z0-9-]*",ng-model='node.nodeinfo.hostname',required) leaflet.map.node(geojson="geojson",center="center",markers="markers",event-broadcast="events") button.btn.btn-default(type="submit") span.glyphicon.glyphicon-floppy-disk(aria-hidden="true") | Save span.btn.btn-default(ng-click="gps()") span.glyphicon.glyphicon-screenshot(ng-if="loadingGPS") span.glyphicon.glyphicon-map-marker(aria-hidden="true") | GPS