automated creation of entities

This commit is contained in:
Steffen Vogel 2011-08-03 15:43:03 +02:00
parent 87785e178d
commit a8ec9d6d6a
3 changed files with 39 additions and 10 deletions

View file

@ -41,7 +41,7 @@
<div id="export">
<img alt="export" src="images/export.png" />
<select>
<select class="icons">
<option value="default" style="background-image: url(images/export.png)" selected="selected">Export...</option>
<option value="permalink" style="background-image: url(images/link.png)" >Permalink</option>
<option value="png" style="background-image: url(images/image.png)" disabled="disabled" >Snapshot</option>
@ -152,15 +152,14 @@
<table>
<tr class="property"><th>Eigenschaft</th><th>Wert</th></tr>
<tr class="property"><td>Middleware:</td><td><input type="text" id="entity-create-middleware" /></td></tr>
<tr class="property"><td>Typ:</td><td><select id="enti"name="type" size="1"></select></td></tr>
<tr class="property"><td>Typ:</td><td><select class="icons" name="type" size="1"></select></td></tr>
<tr class="property"><td>&Ouml;ffentlich:</td><td><input type="radio" name="public" value="1"> ja&nbsp;&nbsp;<input type="radio" name="public" value="0"> nein</td></tr>
<tr class="property"><td>Titel:</td><td><input type="text" name="title" value="Kuehlschrank" /></td></tr>
<tr class="property"><td>Titel:</td><td><input type="text" name="title" value="Kühlschrank" /></td></tr>
<tr class="property"><td>Aufl&ouml;sung:</td><td><input type="text" name="resolution" value="1000" /></td></tr>
<tr class="property"><td>Kosten:<br /><p style="font-size: small">pro Wh</p></td><td><input type="text" name="cost" value="0.00025" /></td></tr>
<tr class="property"><td>Beschreibung:</td><td><input type="text" name="description" value="Swissnox 1-phasig" /></td></tr>
</table>
<input type="hidden" name="operation" value="add" />
<p><input type="submit" value="Erstellen" /></p>
<p><input type="submit" value="Erstellen" /> <label for="entity-create-cookie">Cookie:</label> <input id="entity-create-cookie" type="checkbox" /></p>
<p>Es wird ein neuer Kanal erstellt. Die Antwort der Middleware enthält dann die UUID.<br />
Diese muss dann im Controller angegeben werden (z.B. AVR Net-IO).</p>
</form>

View file

@ -127,7 +127,11 @@ vz.wui.dialogs.init = function() {
// show available entity types
vz.capabilities.definitions.entities.each(function(index, def) {
$('#entity-create select[name=type]').append(
$('<option>').html(def.translation[vz.options.language]).data('definition', def).val(def.name)
$('<option>')
.html(def.translation[vz.options.language])
.data('definition', def)
.val(def.name)
.css('background-image', 'url(images/types/' + def.icon)
);
});
$('#entity-create option[value=power]').attr('selected', 'selected');
@ -187,8 +191,35 @@ vz.wui.dialogs.init = function() {
});
$('#entity-create form').submit(function() {
$(this).attr('action', $('#entity-create-middleware').val() + '/channel.json');
$('#entity-add').dialog('close');
var def = $('select[name=type] option:selected', this).data('definition');
vz.load({
controller: (def.model == 'Volkszaehler\\Model\\Channel') ? 'channel' : 'aggregator',
url: $('#entity-create-middleware').val(),
data: $(this).serialize(),
type: 'POST',
success: function(json) {
var entity = new Entity(json.entity);
try {
entity.cookie = Boolean($('#entity-create-cookie').attr('checked'));
entity.middleware = $('#entity-create-middleware').val();
vz.entities.push(entity);
vz.entities.saveCookie();
vz.entities.showTable();
vz.entities.loadData().done(vz.wui.drawPlot);
}
catch (e) {
vz.wui.dialogs.exception(e);
}
finally {
$('#entity-add').dialog('close');
}
}
});
return false;
});
// update event handler after lazy loading

View file

@ -109,8 +109,7 @@ tr.entity td {
float: right;
}
#export option {
font-size: 16px;
select.icons option {
padding-left: 20px;
background-repeat: no-repeat;
}