partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

commit 013ade7226816a1a5198502732c3e2cea8fb77f1
parent 768595a24a253b214394a3376e82862a20b1b225
Author: Felicitus <felicitus@felicitus.org>
Date:   Tue, 21 Jun 2011 14:50:47 +0200

Reworked units to match the new deserialize model

Diffstat:
Mfrontend/js/Components/Unit/UnitEditor.js | 12++++--------
Msrc/de/RaumZeitLabor/PartKeepr/Unit/Unit.php | 30+++++++++++++++++++++++++++++-
Msrc/de/RaumZeitLabor/PartKeepr/Unit/UnitService.php | 26++------------------------
3 files changed, 35 insertions(+), 33 deletions(-)

diff --git a/frontend/js/Components/Unit/UnitEditor.js b/frontend/js/Components/Unit/UnitEditor.js @@ -54,18 +54,14 @@ Ext.define('PartKeepr.UnitEditor', { Ext.defer(function () { this.gridPanel.getSelectionModel().select(toSelect); }, 100, this); }, onItemSave: function () { - var selection = this.gridPanel.getSelectionModel().getSelection(); - var records = []; + + this.record.prefixes().removeAll(true); + for (var i=0;i<selection.length;i++) { - records.push(selection[i].get("id")); + this.record.prefixes().add({id: selection[i].get("id") }); } - var call = new PartKeepr.ServiceCall("Unit", "setUnitPrefixes"); - call.setParameter("prefixes", records); - call.setParameter("id", this.record.get("id")); - call.doCall(); - this.callParent(); } }); diff --git a/src/de/RaumZeitLabor/PartKeepr/Unit/Unit.php b/src/de/RaumZeitLabor/PartKeepr/Unit/Unit.php @@ -1,5 +1,7 @@ <?php namespace de\RaumZeitLabor\PartKeepr\Unit; +use de\RaumZeitLabor\PartKeepr\Util\Deserializable; + use de\RaumZeitLabor\PartKeepr\Util\Serializable; use de\RaumZeitLabor\PartKeepr\Util\BaseEntity; @@ -16,7 +18,7 @@ use de\RaumZeitLabor\PartKeepr\PartKeepr, * * @Entity **/ -class Unit extends BaseEntity implements Serializable { +class Unit extends BaseEntity implements Serializable, Deserializable { /** * The name of the unit (e.g. Volts, Ampere, Farad, Metres) * @Column(type="string") @@ -103,4 +105,30 @@ class Unit extends BaseEntity implements Serializable { "prefixes" => $this->serializeChildren($this->getPrefixes()) ); } + + /** + * Deserializes the unit + * @param array $parameters The array with the parameters to set + */ + public function deserialize (array $parameters) { + foreach ($parameters as $key => $value) { + switch ($key) { + case "name": + $this->setName($value); + break; + case "symbol": + $this->setSymbol($value); + break; + case "prefixes": + $prefixes = $this->getPrefixes(); + $prefixes->clear(); + + foreach ($value as $prefix) { + $prefix = SiPrefix::loadById($prefix["id"]); + $prefixes->add($prefix); + } + break; + } + } + } } \ No newline at end of file diff --git a/src/de/RaumZeitLabor/PartKeepr/Unit/UnitService.php b/src/de/RaumZeitLabor/PartKeepr/Unit/UnitService.php @@ -33,28 +33,11 @@ class UnitService extends Service implements RestfulService { } } - public function setUnitPrefixes () { - $this->requireParameter("id"); - - $unit = UnitManager::getInstance()->getUnit($this->getParameter("id")); - - $prefixes = $unit->getPrefixes(); - - $prefixes->clear(); - - foreach ($this->getParameter("prefixes") as $prefix) { - $prefix = SiPrefix::loadById($prefix); - $prefixes->add($prefix); - } - - } - public function create () { $this->requireParameter("name"); $unit = new Unit; - - $this->setUnitData($unit); + $unit->deserialize($this->getParameters()); PartKeepr::getEM()->persist($unit); PartKeepr::getEM()->flush(); @@ -62,18 +45,13 @@ class UnitService extends Service implements RestfulService { return array("data" => $unit->serialize()); } - private function setUnitData (Unit $unit) { - $unit->setName($this->getParameter("name")); - $unit->setSymbol($this->getParameter("symbol")); - } - public function update () { $this->requireParameter("id"); $this->requireParameter("name"); $unit = UnitManager::getInstance()->getUnit($this->getParameter("id")); + $unit->deserialize($this->getParameters()); - $this->setUnitData($unit); PartKeepr::getEM()->flush(); return array("data" => $unit->serialize());