From 95fb4f0b7123fedc3895946e5c1785a18a3b4d2b Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 1 Oct 2010 11:23:31 +0200 Subject: [PATCH] its going on.. (unfortunatly with some smaller bugs) --- .../lib/Controller/AggregatorController.php | 2 +- backend/lib/Controller/ChannelController.php | 2 +- backend/lib/View/JSON.php | 28 ++- backend/lib/View/View.php | 10 +- frontend/images/add.png | Bin 0 -> 733 bytes frontend/images/arrow_refresh.png | Bin 0 -> 685 bytes frontend/images/chart_curve.png | Bin 0 -> 710 bytes frontend/images/chart_line.png | Bin 0 -> 526 bytes frontend/images/control_end_blue.png | Bin 0 -> 737 bytes frontend/images/control_fastforward_blue.png | Bin 0 -> 736 bytes frontend/images/control_rewind_blue.png | Bin 0 -> 745 bytes frontend/images/control_start_blue.png | Bin 0 -> 720 bytes frontend/images/cookie.png | Bin 0 -> 3622 bytes frontend/images/delete.png | Bin 0 -> 715 bytes frontend/images/folder.png | Bin 0 -> 537 bytes frontend/images/server.png | Bin 0 -> 530 bytes frontend/images/shading.png | Bin 0 -> 225 bytes frontend/index.html | 29 +++- frontend/javascripts/functions.js | 162 +++++++++++------- frontend/javascripts/json2.js | 38 ++++ frontend/javascripts/script.js | 74 ++++---- frontend/stylesheets/style.css | 71 ++++++-- 22 files changed, 268 insertions(+), 148 deletions(-) create mode 100644 frontend/images/add.png create mode 100644 frontend/images/arrow_refresh.png create mode 100644 frontend/images/chart_curve.png create mode 100644 frontend/images/chart_line.png create mode 100644 frontend/images/control_end_blue.png create mode 100644 frontend/images/control_fastforward_blue.png create mode 100644 frontend/images/control_rewind_blue.png create mode 100644 frontend/images/control_start_blue.png create mode 100644 frontend/images/cookie.png create mode 100644 frontend/images/delete.png create mode 100644 frontend/images/folder.png create mode 100644 frontend/images/server.png create mode 100644 frontend/images/shading.png create mode 100644 frontend/javascripts/json2.js diff --git a/backend/lib/Controller/AggregatorController.php b/backend/lib/Controller/AggregatorController.php index cc749b1..dd45e68 100644 --- a/backend/lib/Controller/AggregatorController.php +++ b/backend/lib/Controller/AggregatorController.php @@ -44,7 +44,7 @@ class AggregatorController extends EntityController { return $aggregator; } else { - throw new \Exception($identifier . ' is not a group uuid'); + throw new \Exception($identifier . ' is not a group'); } } diff --git a/backend/lib/Controller/ChannelController.php b/backend/lib/Controller/ChannelController.php index fa6dd75..6543603 100644 --- a/backend/lib/Controller/ChannelController.php +++ b/backend/lib/Controller/ChannelController.php @@ -44,7 +44,7 @@ class ChannelController extends EntityController { return $channel; } else { - throw new \Exception($identifier . ' is not a channel uuid'); + throw new \Exception($identifier . ' is not a channel'); } } diff --git a/backend/lib/View/JSON.php b/backend/lib/View/JSON.php index 0333b34..c1137d6 100644 --- a/backend/lib/View/JSON.php +++ b/backend/lib/View/JSON.php @@ -23,8 +23,8 @@ namespace Volkszaehler\View; +use Doctrine\ORM\Query\AST\Functions; use Volkszaehler\Interpreter; - use Volkszaehler\View\HTTP; use Volkszaehler\Util; use Volkszaehler\Model; @@ -67,7 +67,7 @@ class JSON extends View { $json = $this->json->encode((Util\Debug::isActivated()) ? JSON_PRETTY : 0); if ($this->padding) { - $json = 'if (self.' . $this->padding . ') { ' . $this->padding . '(' . $json . '); }'; + $json = 'if (' . $this->padding . ') { ' . $this->padding . '(' . $json . '); }'; } $this->response->setHeader('Content-type', 'application/json'); @@ -79,18 +79,13 @@ class JSON extends View { * * @param Model\Channel $channel */ - protected function addChannel(Model\Channel $channel) { - $this->json['channel'] = self::convertEntity($channel); - } - - /** - * Add aggregator to output queue - * - * @param Model\Aggregator $aggregator - * @param boolean $recursive - */ - protected function addAggregator(Model\Aggregator $aggregator, $recursive = FALSE) { - $this->json['group'] = self::convertAggregator($aggregator, $recursive); + protected function addEntity(Model\Entity $entity) { + if ($entity instanceof Model\Aggregator) { + $this->json['entity'] = self::convertAggregator($entity); + } + else { + $this->json['entity'] = self::convertEntity($entity); + } } /** @@ -198,12 +193,11 @@ class JSON extends View { $jsonAggregator = self::convertEntity($aggregator); foreach ($aggregator->getChildren() as $entity) { - if ($entity instanceof Model\Channel) { - $jsonAggregator['channels'][] = self::convertEntity($entity); + $jsonAggregator['children'][] = self::convertEntity($entity); } elseif ($entity instanceof Model\Aggregator) { - $jsonAggregator['groups'][] = self::convertAggregator($entity); + $jsonAggregator['children'][] = self::convertAggregator($entity); } } diff --git a/backend/lib/View/View.php b/backend/lib/View/View.php index 1d6c5db..fc909ce 100644 --- a/backend/lib/View/View.php +++ b/backend/lib/View/View.php @@ -110,11 +110,8 @@ abstract class View { if ($data instanceof Interpreter\InterpreterInterface) { $this->addData($data); } - elseif ($data instanceof Model\Channel) { - $this->addChannel($data); - } - elseif ($data instanceof Model\Aggregator) { - $this->addAggregator($data); + elseif ($data instanceof Model\Entity) { + $this->addEntity($data); } elseif ($data instanceof \Exception) { $this->addException($data); @@ -131,8 +128,7 @@ abstract class View { protected abstract function render(); protected abstract function addData(Interpreter\InterpreterInterface $data); - protected abstract function addChannel(Model\Channel $channel); - protected abstract function addAggregator(Model\Aggregator $aggregator); + protected abstract function addEntity(Model\Entity $entity); protected abstract function addException(\Exception $exception); protected abstract function addDebug(Util\Debug $debug); } diff --git a/frontend/images/add.png b/frontend/images/add.png new file mode 100644 index 0000000000000000000000000000000000000000..6332fefea4be19eeadf211b0b202b272e8564898 GIT binary patch literal 733 zcmV<30wVp1P)9VHk(~TedF+gQSL8D5xnVSSWAVY>J9b+m>@{iq7_KE}go~11+5s4;8hc+i0Xa zI1j@EX5!S+Me6HNqKzU5YQwL;-W5$p%ZMKMeR<%zp69-~?<4?8|C8S?bklXr4v&Ov zb&06v2|-x?qB`90yn>Qi%Sh2^G4n)$ZdyvTPf9}1)_buUT7>`e2G&2VU@~Bb(o+Mz zi4)>IxlSY${Dj4k={-9RzU^W5g9|2V5RZ2ZulL9s2xQbZ@r6eP9Ra5u(s|C0Nj#&4>wTSkb?%#=9?@ z^oxDy-O@tyN{L@by(WWvQ3%CyEu8x{+#Jb4-h&K9Owi)2pgg+heWDyked|3R$$kL@A z#sp1v-r+=G4B8D6DqsDH0@7OztA7aT9qc1Py{()w`m``?Y0&gi2=ROcc-9+nU^I6< zT=e_Y=vSnG@?3Ue{BW5ONFttcE!R-R_W4O01|0-|K-YNXLo2`4Qv z`r1LxR6#yf3FB%T95gJnaKKivA~Z}S9A(ZxEDK}O3T04USJ P00000NkvXXu0mjf^IS-S literal 0 HcmV?d00001 diff --git a/frontend/images/arrow_refresh.png b/frontend/images/arrow_refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..0de26566d4102eec080253c2d08985ec58b14838 GIT binary patch literal 685 zcmV;e0#f~nP)`!iy8(2_#ButL^3%VaH2WCpD^U)OZxp@C)2#hU)y+@T%ZNzJigNk%37 zz-WYJwT%teVfiEI+B*@v4ey@58(ld4VY_&5-ox`e@AKg+0U-I`y79bmuw_~y6+4rZ zBG5EdFDS+@M0OSE`>d7SUDOzKZ&h*4eB1iX7tOd9RiYtW2mQ--bUahxr1`i{RG@dM zL#}_X=DDO1{;UI$pFu=dLYT_=5d8WC-sLfjr7UO-HKMAwa=!>)kEhvuwre zuW3yF@ZxFCkI*+ad|5kOX%5zu8IQjhan)UqgSrFGA_0nQFn@Z08DSEUToCSz4Z1ls z&fDbq$T&7|6iq$_uDI$@q1_kQ@dfqk*0>{SDL6V)94@)ete)j++*>bIc9sj}Y;R1o z#OpH+Yt-^4wfv{nern^iVag8RLq zBa83f%q*uO+hkn-px3iWUBhj*zEtZ=#J?K1BwoS4fri4we+W?%x_!2UEjG9A57v+ddMu0 zbbp6n;=LcDNq6gD2L9C2J@8#y?*rTbgTj6Ps|^D5|MCj{`@<*H#t`wKg(3XGf2QyU zf0@G{{9_BdAC4aSKNVGeAq>dh`~N>9tN(u{wmT>x9B`-HYmvir?8JeOFVbz5u> zH|V#x^ai*A`gyzm|72hZ`OUy04pZPY)6&ahrsWHdS>_MiW?QUvoolwwWxnYbrv=9G zAbFr`rQinWXqscE(MN|a!$l4~hCDEFhknBjyGi=*G17r<_V)jl zB|4H8rP?#iOLZRs>9-bTIvMExwy4+UuxQe`XV#)U8P$NSZU2ojH2n=T)ZNqrEM0*# zI5i4uc*w#O3aL7Q*+%*5QW{Y@8K%V=Ja7ZFGq?QL&e;54D`OK7Z~U*7wgHIO|JMZJ s)OG(gKsaSB6tDTOk-Qp=;RaBG0e_Hjj63iYg#Z8m07*qoM6N<$g46R|L;wH) literal 0 HcmV?d00001 diff --git a/frontend/images/chart_line.png b/frontend/images/chart_line.png new file mode 100644 index 0000000000000000000000000000000000000000..85020f3205adc903896aae3ac8b2431d81d25a92 GIT binary patch literal 526 zcmV+p0`dKcP)vZ>%h3)%~ z#+IbJ;FFDG??-c+T_21rm1LV#4~LF)_b?ghyQZ9u#u#o3H=L6>&|AoXU?qv@1Je4>AlGSTjH9nQnv` zZj`d7z#wVmBfa>gsDTLdFI#`g-3Fu!5 z$Es7u?8}cWwJkZs2@EU)U|{|IH*L!Qck23oaHd4px(fwB|2_x$_YKg$rO1-+wT;%l zQ`7tXR!Mt3P6M2(&pepC=Hh>#e_xW77aS^%7ub~^eqd9yzkqI;iK+$w0LJvVLF}yV Q@Bjb+07*qoM6N<$f}^baNdN!< literal 0 HcmV?d00001 diff --git a/frontend/images/control_end_blue.png b/frontend/images/control_end_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..72079357614b4254b163a5cac766093d1f99bbe7 GIT binary patch literal 737 zcmV<70v`Q|P)za-4I45g$8m^55K?|L?r+odSTVNnJ96LXt|7TGI4L>d~Fz z&-h8>1xd<>>vgSt=Y;X^$Jv9(As-4y`R%SPp?5wYYBW2LD^|g`7v>f>k`%^{A!C3N&EeR0q1EmI9?j zT<^fuCti3LD9UEdoCoe2BcvKUvD7KhHa~-21gL%Aj#%s&OGVR_$6iSuSoaqp%eN%J z76DWmU8pyEP^yWrwDz7wF9N262N52Jg#ie_jHv7Leqfv#&`?`&#}Fpfom5)T>7B!> zWsOHK0qlpu1b_k9E1Iu8-65F`u4B0T$PKrdAs|z3NmX=VY5BDbP=DEtvNfR%4Y5Zu z5VMpOD@qkb3GkT!aIm-Gn* z`85iZ>7zVE#RF?u>-GjXzTT2IfyTsX6XN-%yiPPHr0n_^E8Hzpe7MH(L!#e?D90zS zP^g}fN@{04Qcb!flJ%iEo~?q;Y!zl{=dXt}`IHwd0cyqO;QYY^WD0dM6YM#f=E3C+ z!2-R=&FDY;{gfv^)4f+|?c7Tj^US!+(gqX%T+i_HIx{<~voklC*uOv1|9t14Z-oeY T_TF$F*h9sL-j zNpc$weSXQZ6Gag%5kOy9HfA1@g zVA*&|VjFHeVhIV!`DzQM7F-a@NRTNvNlYYp4z%6NAQuJno^MeOJ!7dzy8e(=;etr6 z4q2h83Vb36o=G4!6u79$u)6u4LoN!;_)kItHmh9g5CP1HxVh+sSiS*Mlqx_uVfwL~ z+}p|}Y*;r1{g* z9DE4_W&SW~qUN5hWN@-RUJ#q3Ngxr&iJp;+4aEd;HM{A>I)B?7>yL4`Nc6h^we^ve z3YC6fwXTqAQWr8=Cd?emR={YnNptkhuSFVP{Q?6Lt^ zqF4A?)Arx1JpP&Pyh<4sUhXnam)AJ@xmkE-VuVGbg_|=vm|INb-=FD!zVlDxJ_uiv SXLQ>D0000yhD literal 0 HcmV?d00001 diff --git a/frontend/images/control_rewind_blue.png b/frontend/images/control_rewind_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..15d1584bdbb2c26a9fc4c8269aa54615a58a4657 GIT binary patch literal 745 zcmV1hlor z)=Ec^h7>5J3?Bj(D6|X+0|UcQj&m*_Qg!D|-c07sd7pF6opXl(U}#WhWg0W$d_xV%ATb~UcS*dC+@kfS*m{?64KBH-eM78JQAu#&2c z7TM!?0X98;&a@msh@1ehFDx4~_smCS0rm@Z$dv@5Y^ec>Jl}_`uDh5!i#cpZh5&_) z{y|~cgJzZ1d%`?CxkdJIg%by0u(~PqB0%Zdj?maMmYO=M!=;B#0>~5_5YO>&?w*4H z@LRbi!eNPrxg`gUUIeK8JG(3%R{o~|7so$K+8_qZe0Iz($pKd%d&oOhA&AGYXkKE` zO8~w=kN^smCS05H!-WT*2mpbXAJK6B{s*`+;U?8|s%XO8{Hs1d`DH6am$(L0coEX9 z)c+Ho)WS9-4?6~g4NrO@c2FaKCYmmR!DQ~YpfIn+s8pr^?KThtmU&}3Kr*7R^y^Rk z5Xsb_*=oc3w-9KI@B4=+yK6a8uQ@#oTkf1PnlL+NjAm=Zh)+xqld|idFEF=^(avw| z4U*w)Kx6;tnV0ZXQD@SHtHr7{`Y12 bpX>Y!%!CO%>C8GV00000NkvXXu0mjfJYGkQ literal 0 HcmV?d00001 diff --git a/frontend/images/control_start_blue.png b/frontend/images/control_start_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..6f11fcb086b1bfa51bc5070ca45fac0a988c624c GIT binary patch literal 720 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 literal 0 HcmV?d00001 diff --git a/frontend/images/delete.png b/frontend/images/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..08f249365afd29594b51210c6e21ba253897505d GIT binary patch literal 715 zcmV;+0yO=JP)C4}Mrzlg<+1Y8PEBfUp0jJpx4B>@E+cy3`^(Gw`Mf+2&yxZm<$to~Vpgvg&QKNR z_f#1(r6svZt%iF?s+n<8X?B&!h3g9Dbb8_=MX}!;HiQSAh`bp^WMl~Z-44teO7W_Y zV4thSL{h;rJY7!l3%5J4H1!tIzB`Dv+YxO(haWeausGZYkI8^hWj6mzo=L0{%;yxzh{5!Htr?51 zvG|W62MzC8BZ76hRpCyO2zOn<%e)K>NHge!-~)Ap33OdWw6hsLYbCxGNt0%wk_2z7 zfyYvXheSG)5HRK1VB~%mq7Dmurw#bi@hEcOr3&G1ZiF*$M=&9nB#VNf&Q^r$4G5kp zTURh&s)E0%5&hyVD}sp<72~zmAY`Y(9aqO6CXF%=zFHGzO-A&I(pE}v70YQxCPJ{Y z4L+?5-crdLn3ZRPEs!A4ehEY3ZRpL~w9>@aMN+{F4dI@v&>(QDHQum!mG~E^$OS8l z!7?%Uwib*ROP67Hw`ika)gX-(8Ia`-u_IEhxG7U<13kSsMW+$lbb2dUMm5p6pa}cjgA+U$^mJ^AjD?&bdi)8~y+Q002ovPDHLkV1g8IMc@Dc literal 0 HcmV?d00001 diff --git a/frontend/images/folder.png b/frontend/images/folder.png new file mode 100644 index 0000000000000000000000000000000000000000..784e8fa48234f4f64b6922a6758f254ee0ca08ec GIT binary patch literal 537 zcmV+!0_OdRP)x(K@^6+>g^d@v4;gkbWsEoXE%32*i1tcpTNXd5CcIl)ECgqz|2rE6EW}s7R?kl za1q`0GCkMruC6-2LANtwVlsgzsp4?{@7$`KBv!G66>Vie3h?3OmEEkjwdLG0PgLVi z`!N((f$A@n17Ldj#`};0I3@iHJ5M{#IZz|UIYRm4(!uV7eYIYIwQf&}_2J~}>pQ^n z6o8--^T(=hkBNQ_k{-_GWE;FMW7!p}f{NG3nHZ{D5<3d8&tLh%a4AqqnjMkr3m&fkMdECD3N5}Unig5wy40;>lo4j~k+e}v)` zR6)J8Mk*u=SpB`p6o)7j?S0T@9?bz#m@l>gc*zk__|*!FMcHwP!gwLJvS~9c0px8E zW8!PM!jse+otDvXRhleu>w{(hr=P& zTV2;rBMofZo=3rrs;YWAJqHeofOC+HNSe*6&}=qN@aeaKWm$(L&gF8enM?+{FRwu9 zoD1NBqmclHW{%@Tw}6Wqg+f989t^&~Me(EkfChX#56VZfjYtFPF_lU|uh;XF8H4TO zj!YM$blUKV1mw(6M2qNP2;H{su`-!X|7n%u=>+~>3AvaIiltqd9#DvgJ&1=10t0D6 z$;|KlP3c1Y-2fh17umvCJQ4=!_2+B&{P5)SL<2$#ZY7EM2$|!%^Ti9`3q;4qtws{i zDI^jJKbdhUAOoMo-`t-B@esjXtJQ*jzYmI{z|3qKZ(vLsG2zn?;Y5OJwYqN@My1o~ zTxy!Ox4y9nOZhb^2wGcN&dWOz9DLhi_oR#=SOyS-!hh=FNvz5*&gc}4bkUS$- zpueTJs?jS>W4VH5cvDBnk}bYn&!Q$gHPEkM{Aeg6CFgw8)S-s+lpfn7J^^Wlx#}xw U_BgG30kodM)78&qol`;+07=(QkN^Mx literal 0 HcmV?d00001 diff --git a/frontend/index.html b/frontend/index.html index 37a1eb8..dc49af7 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -18,6 +18,7 @@ + @@ -29,38 +30,50 @@ -
+
- - - + + +
+ + +

Kanäle

- +
+
- - + +
UUIDTitleTitel Typ OperationenAnzeige
+
+

Optionen

- + + + +
+ diff --git a/frontend/javascripts/functions.js b/frontend/javascripts/functions.js index a11d311..095450b 100644 --- a/frontend/javascripts/functions.js +++ b/frontend/javascripts/functions.js @@ -32,9 +32,9 @@ /** * Refresh plot with new data */ -function refresh() { - if ($('[name=refresh]').attr('checked')) { - getData(); +function refreshWindow() { + if ($('input[name=refresh]').attr('checked')) { + loadData(); } } @@ -53,24 +53,25 @@ function moveWindow(mode) { myWindowEnd += delta; } - getData(); + loadData(); } -function getData() { - // load json data with given time window - $.getJSON(backendUrl + '/data/' + myUUID + '.json', { from: myWindowStart, to: myWindowEnd, tuples: 500 }, function(data){ - json = data; - showChart(); +//load json data with given time window +function loadData() { + eachRecursive(entities, function(entity, parent) { + if (entity.active && entity.type != 'group') { + $.getJSON(backendUrl + '/data/' + entity.uuid + '.json', { from: myWindowStart, to: myWindowEnd, tuples: tuples }, ajaxWait(function(json) { + entity.data = json.data[0]; // TODO filter for correct uuid + }, showChart, 'data')); + } }); - - return false; } function showChart() { var jqData = new Array(); - $.each(json.data, function(index, value) { - jqData.push(value.tuples); + eachRecursive(entities, function(entity, parent) { + jqData.push(entity.data.tuples); }); // TODO read docs @@ -86,11 +87,13 @@ function showChart() { */ /** - * Get all entity infomration from backend + * Get all entity information from backend */ -function loadEntities() { +function loadEntities(uuids) { $.each(uuids, function(index, value) { - $.getJSON(backendUrl + '/entity/' + value + '.json', ajaxWait(showEntities, 'enities')); + $.getJSON(backendUrl + '/entity/' + value + '.json', ajaxWait(function(json) { + entities.push(json.entity); + }, showEntities, 'information')); }); } @@ -98,72 +101,101 @@ function loadEntities() { * Create nested entity list * @param data */ -function showEntities(data) { +function showEntities() { $('#entities tbody').empty(); - $.each(data, function(index, value) { - var entity = (value.group) ? value.group : value.channel; + var i = 0; + + eachRecursive(entities, function(entity, parent) { + entity.active = true; // TODO active by default or via backend property? + entity.color = colors[i++%colors.length]; - showEntity(entity); + $('#entities tbody').append( + $('') + .addClass((parent) ? 'child-of-entity-' + parent.uuid : '') + .attr('id', 'entity-' + entity.uuid) + .append( + $('').append( + $('') + .addClass((entity.type == 'group') ? 'group' : 'channel') + .attr('title', entity.uuid) + .text(entity.title) + ) + ) + .append($('').text(entity.type)) + .append($('') // operations + .append($('') + .attr('type', 'image') + .attr('src', 'images/delete.png') + .attr('alt', 'delete') + .bind('click', entity, function(event) { alert('delete: ' + event.data.uuid); }) + ) + ) + .append($('') + .append($('
') + .css('background-color', entity.color) + .addClass('indicator') + .append($('') + .attr('type', 'checkbox') + .attr('checked', entity.active) + .bind('change', entity, function(event) { + event.data.active = $(this).attr('checked'); + loadData(); + }) + ) + ) + ) + ); }); - $('#entities').treeTable(); -} - -/** - * Create nested entity list (recursive) - * @param entity - * @param parent - */ -function showEntity(entity, parent) { - $('#entities tbody').append( - $('') - .attr('class', (parent) ? 'child-of-entity-' + parent.uuid : '') - .attr('id', 'entity-' + entity.uuid) - .append($('').text(entity.uuid)) - .append($('').text(entity.title)) - .append($('').text(entity.type)) - ); - - var entities = new Array(); - if (entity.channels) { - $.merge(entities, entity.channels); - } - if (entity.groups) { - $.merge(entities, entity.groups); - } + // http://ludo.cubicphuse.nl/jquery-plugins/treeTable/doc/index.html + $('#entities table').treeTable(); - $.each(entities, function(index, value) { - showEntity(value, entity); - }); + // load data and show plot + loadData(); } /* * General helper functions */ -function ajaxWait(callback, identifier) { - if (!identifier) { - var identifier = 0; - } - - if (!ajaxWait.counter || !ajaxWait.data) { - ajaxWait.counter = new Array(); - ajaxWait.data = new Array(); - } - - if (!ajaxWait.counter[identifier] || !ajaxWait.data[identifier]) { - ajaxWait.counter[identifier] = 0; - ajaxWait.data[identifier] = new Array; - } +function ajaxWait(callback, finished, identifier) { + if (!ajaxWait.counter) { ajaxWait.counter = new Array(); } + if (!ajaxWait.counter[identifier]) { ajaxWait.counter[identifier] = 0; } ajaxWait.counter[identifier]++; return function (data, textStatus) { - ajaxWait.data[identifier].push(data); + callback(data, textStatus); if (!--ajaxWait.counter[identifier]) { - callback(ajaxWait.data[identifier]); + finished(); } }; -} \ No newline at end of file +} + +function eachRecursive(array, callback, parent) { + $.each(array, function(index, value) { + callback(value, parent); + + if (value.children) { // has children? + eachRecursive(value.children, callback, value); // call recursive + } + }); +} + +Array.prototype.contains = function(needle) { + for (var i=0; i