Move mobile app to sandbox
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/12342668 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/12342668 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/12342668 Branch: refs/heads/master Commit: 123426687c1a7d28340dbffbe98da063c2b16629 Parents: 230be65 Author: Sam Corbett <[email protected]> Authored: Fri Feb 6 17:05:37 2015 +0000 Committer: Sam Corbett <[email protected]> Committed: Fri Feb 6 17:05:37 2015 +0000 ---------------------------------------------------------------------- sandbox/mobile-app/pom.xml | 77 + .../mobile-app/src/main/webapp/WEB-INF/web.xml | 24 + .../main/webapp/assets/mobile/css/mobile.css | 74 + .../Powered-by-Cloudsoft-AMP-Logo-on-blue.png | Bin 0 -> 30107 bytes .../Powered-by-Cloudsoft-AMP-Logo-on-white.png | Bin 0 -> 28288 bytes .../images/Powered-by-Cloudsoft-AMP-Logo.png | Bin 0 -> 30522 bytes .../src/main/webapp/assets/mobile/js/app.js | 84 + .../main/webapp/assets/mobile/js/controllers.js | 202 + .../src/main/webapp/assets/mobile/js/filters.js | 29 + .../webapp/assets/mobile/js/i18n/en-us.json | 27 + .../main/webapp/assets/mobile/js/services.js | 28 + .../mobile/js/templates/applicationsList.html | 72 + .../mobile/js/templates/entitiesList.html | 53 + .../mobile/js/templates/entitySummary.html | 250 + .../libs/angular-1.2.19/angular-animate.js | 1633 + .../libs/angular-1.2.19/angular-animate.min.js | 28 + .../angular-1.2.19/angular-animate.min.js.map | 8 + .../libs/angular-1.2.19/angular-cookies.js | 204 + .../libs/angular-1.2.19/angular-cookies.min.js | 8 + .../angular-1.2.19/angular-cookies.min.js.map | 8 + .../mobile/libs/angular-1.2.19/angular-csp.css | 24 + .../libs/angular-1.2.19/angular-loader.js | 414 + .../libs/angular-1.2.19/angular-loader.min.js | 9 + .../angular-1.2.19/angular-loader.min.js.map | 8 + .../mobile/libs/angular-1.2.19/angular-mocks.js | 2171 ++ .../libs/angular-1.2.19/angular-resource.js | 619 + .../libs/angular-1.2.19/angular-resource.min.js | 13 + .../angular-1.2.19/angular-resource.min.js.map | 8 + .../mobile/libs/angular-1.2.19/angular-route.js | 927 + .../libs/angular-1.2.19/angular-route.min.js | 14 + .../angular-1.2.19/angular-route.min.js.map | 8 + .../libs/angular-1.2.19/angular-sanitize.js | 630 + .../libs/angular-1.2.19/angular-sanitize.min.js | 15 + .../angular-1.2.19/angular-sanitize.min.js.map | 8 + .../libs/angular-1.2.19/angular-scenario.js | 33778 +++++++++++++++++ .../mobile/libs/angular-1.2.19/angular-touch.js | 584 + .../libs/angular-1.2.19/angular-touch.min.js | 13 + .../angular-1.2.19/angular-touch.min.js.map | 8 + .../mobile/libs/angular-1.2.19/angular.js | 21778 +++++++++++ .../mobile/libs/angular-1.2.19/angular.min.js | 214 + .../libs/angular-1.2.19/angular.min.js.map | 8 + .../mobile/libs/angular-1.2.19/errors.json | 1 + .../angular-1.2.19/i18n/angular-locale_af-na.js | 99 + .../angular-1.2.19/i18n/angular-locale_af-za.js | 99 + .../angular-1.2.19/i18n/angular-locale_af.js | 99 + .../angular-1.2.19/i18n/angular-locale_am-et.js | 99 + .../angular-1.2.19/i18n/angular-locale_am.js | 99 + .../i18n/angular-locale_ar-001.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-ae.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-bh.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-dz.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-eg.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-iq.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-jo.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-kw.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-lb.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-ly.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-ma.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-om.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-qa.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-sa.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-sd.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-sy.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-tn.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar-ye.js | 99 + .../angular-1.2.19/i18n/angular-locale_ar.js | 99 + .../angular-1.2.19/i18n/angular-locale_bg-bg.js | 99 + .../angular-1.2.19/i18n/angular-locale_bg.js | 99 + .../angular-1.2.19/i18n/angular-locale_bn-bd.js | 99 + .../angular-1.2.19/i18n/angular-locale_bn-in.js | 99 + .../angular-1.2.19/i18n/angular-locale_bn.js | 99 + .../angular-1.2.19/i18n/angular-locale_ca-ad.js | 99 + .../angular-1.2.19/i18n/angular-locale_ca-es.js | 99 + .../angular-1.2.19/i18n/angular-locale_ca.js | 99 + .../angular-1.2.19/i18n/angular-locale_cs-cz.js | 99 + .../angular-1.2.19/i18n/angular-locale_cs.js | 99 + .../angular-1.2.19/i18n/angular-locale_da-dk.js | 99 + .../angular-1.2.19/i18n/angular-locale_da.js | 99 + .../angular-1.2.19/i18n/angular-locale_de-at.js | 99 + .../angular-1.2.19/i18n/angular-locale_de-be.js | 99 + .../angular-1.2.19/i18n/angular-locale_de-ch.js | 99 + .../angular-1.2.19/i18n/angular-locale_de-de.js | 99 + .../angular-1.2.19/i18n/angular-locale_de-li.js | 99 + .../angular-1.2.19/i18n/angular-locale_de-lu.js | 99 + .../angular-1.2.19/i18n/angular-locale_de.js | 99 + .../angular-1.2.19/i18n/angular-locale_el-cy.js | 99 + .../angular-1.2.19/i18n/angular-locale_el-gr.js | 99 + .../angular-1.2.19/i18n/angular-locale_el.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-as.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-au.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-bb.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-be.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-bm.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-bw.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-bz.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-ca.js | 99 + .../i18n/angular-locale_en-dsrt-us.js | 99 + .../i18n/angular-locale_en-dsrt.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-fm.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-gb.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-gu.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-gy.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-hk.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-ie.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-in.js | 99 + .../i18n/angular-locale_en-iso.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-jm.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-mh.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-mp.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-mt.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-mu.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-na.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-nz.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-ph.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-pk.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-pr.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-pw.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-sg.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-tc.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-tt.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-um.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-us.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-vg.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-vi.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-za.js | 99 + .../angular-1.2.19/i18n/angular-locale_en-zw.js | 99 + .../angular-1.2.19/i18n/angular-locale_en.js | 99 + .../i18n/angular-locale_es-419.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-ar.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-bo.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-cl.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-co.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-cr.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-do.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-ea.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-ec.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-es.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-gq.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-gt.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-hn.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-ic.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-mx.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-ni.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-pa.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-pe.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-pr.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-py.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-sv.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-us.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-uy.js | 99 + .../angular-1.2.19/i18n/angular-locale_es-ve.js | 99 + .../angular-1.2.19/i18n/angular-locale_es.js | 99 + .../angular-1.2.19/i18n/angular-locale_et-ee.js | 99 + .../angular-1.2.19/i18n/angular-locale_et.js | 99 + .../angular-1.2.19/i18n/angular-locale_eu-es.js | 99 + .../angular-1.2.19/i18n/angular-locale_eu.js | 99 + .../angular-1.2.19/i18n/angular-locale_fa-af.js | 99 + .../angular-1.2.19/i18n/angular-locale_fa-ir.js | 99 + .../angular-1.2.19/i18n/angular-locale_fa.js | 99 + .../angular-1.2.19/i18n/angular-locale_fi-fi.js | 99 + .../angular-1.2.19/i18n/angular-locale_fi.js | 99 + .../i18n/angular-locale_fil-ph.js | 99 + .../angular-1.2.19/i18n/angular-locale_fil.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-be.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-bf.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-bi.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-bj.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-bl.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-ca.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-cd.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-cf.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-cg.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-ch.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-ci.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-cm.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-dj.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-fr.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-ga.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-gf.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-gn.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-gp.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-gq.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-km.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-lu.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-mc.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-mf.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-mg.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-ml.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-mq.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-ne.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-re.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-rw.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-sn.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-td.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-tg.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr-yt.js | 99 + .../angular-1.2.19/i18n/angular-locale_fr.js | 99 + .../angular-1.2.19/i18n/angular-locale_gl-es.js | 99 + .../angular-1.2.19/i18n/angular-locale_gl.js | 99 + .../i18n/angular-locale_gsw-ch.js | 99 + .../angular-1.2.19/i18n/angular-locale_gsw.js | 99 + .../angular-1.2.19/i18n/angular-locale_gu-in.js | 99 + .../angular-1.2.19/i18n/angular-locale_gu.js | 99 + .../angular-1.2.19/i18n/angular-locale_he-il.js | 99 + .../angular-1.2.19/i18n/angular-locale_he.js | 99 + .../angular-1.2.19/i18n/angular-locale_hi-in.js | 99 + .../angular-1.2.19/i18n/angular-locale_hi.js | 99 + .../angular-1.2.19/i18n/angular-locale_hr-hr.js | 99 + .../angular-1.2.19/i18n/angular-locale_hr.js | 99 + .../angular-1.2.19/i18n/angular-locale_hu-hu.js | 99 + .../angular-1.2.19/i18n/angular-locale_hu.js | 99 + .../angular-1.2.19/i18n/angular-locale_id-id.js | 99 + .../angular-1.2.19/i18n/angular-locale_id.js | 99 + .../angular-1.2.19/i18n/angular-locale_in.js | 99 + .../angular-1.2.19/i18n/angular-locale_is-is.js | 99 + .../angular-1.2.19/i18n/angular-locale_is.js | 99 + .../angular-1.2.19/i18n/angular-locale_it-ch.js | 99 + .../angular-1.2.19/i18n/angular-locale_it-it.js | 99 + .../angular-1.2.19/i18n/angular-locale_it-sm.js | 99 + .../angular-1.2.19/i18n/angular-locale_it.js | 99 + .../angular-1.2.19/i18n/angular-locale_iw.js | 99 + .../angular-1.2.19/i18n/angular-locale_ja-jp.js | 99 + .../angular-1.2.19/i18n/angular-locale_ja.js | 99 + .../angular-1.2.19/i18n/angular-locale_kn-in.js | 99 + .../angular-1.2.19/i18n/angular-locale_kn.js | 99 + .../angular-1.2.19/i18n/angular-locale_ko-kr.js | 99 + .../angular-1.2.19/i18n/angular-locale_ko.js | 99 + .../angular-1.2.19/i18n/angular-locale_ln-cd.js | 99 + .../angular-1.2.19/i18n/angular-locale_ln-cg.js | 99 + .../angular-1.2.19/i18n/angular-locale_ln.js | 99 + .../angular-1.2.19/i18n/angular-locale_lt-lt.js | 99 + .../angular-1.2.19/i18n/angular-locale_lt.js | 99 + .../angular-1.2.19/i18n/angular-locale_lv-lv.js | 99 + .../angular-1.2.19/i18n/angular-locale_lv.js | 99 + .../angular-1.2.19/i18n/angular-locale_ml-in.js | 99 + .../angular-1.2.19/i18n/angular-locale_ml.js | 99 + .../angular-1.2.19/i18n/angular-locale_mr-in.js | 99 + .../angular-1.2.19/i18n/angular-locale_mr.js | 99 + .../angular-1.2.19/i18n/angular-locale_ms-bn.js | 99 + .../angular-1.2.19/i18n/angular-locale_ms-my.js | 99 + .../angular-1.2.19/i18n/angular-locale_ms.js | 99 + .../angular-1.2.19/i18n/angular-locale_mt-mt.js | 99 + .../angular-1.2.19/i18n/angular-locale_mt.js | 99 + .../angular-1.2.19/i18n/angular-locale_nl-aw.js | 99 + .../angular-1.2.19/i18n/angular-locale_nl-be.js | 99 + .../angular-1.2.19/i18n/angular-locale_nl-cw.js | 99 + .../angular-1.2.19/i18n/angular-locale_nl-nl.js | 99 + .../angular-1.2.19/i18n/angular-locale_nl-sx.js | 99 + .../angular-1.2.19/i18n/angular-locale_nl.js | 99 + .../angular-1.2.19/i18n/angular-locale_no.js | 99 + .../angular-1.2.19/i18n/angular-locale_or-in.js | 99 + .../angular-1.2.19/i18n/angular-locale_or.js | 99 + .../angular-1.2.19/i18n/angular-locale_pl-pl.js | 99 + .../angular-1.2.19/i18n/angular-locale_pl.js | 99 + .../angular-1.2.19/i18n/angular-locale_pt-ao.js | 99 + .../angular-1.2.19/i18n/angular-locale_pt-br.js | 99 + .../angular-1.2.19/i18n/angular-locale_pt-gw.js | 99 + .../angular-1.2.19/i18n/angular-locale_pt-mz.js | 99 + .../angular-1.2.19/i18n/angular-locale_pt-pt.js | 99 + .../angular-1.2.19/i18n/angular-locale_pt-st.js | 99 + .../angular-1.2.19/i18n/angular-locale_pt.js | 99 + .../angular-1.2.19/i18n/angular-locale_ro-md.js | 99 + .../angular-1.2.19/i18n/angular-locale_ro-ro.js | 99 + .../angular-1.2.19/i18n/angular-locale_ro.js | 99 + .../angular-1.2.19/i18n/angular-locale_ru-md.js | 99 + .../angular-1.2.19/i18n/angular-locale_ru-ru.js | 99 + .../angular-1.2.19/i18n/angular-locale_ru-ua.js | 99 + .../angular-1.2.19/i18n/angular-locale_ru.js | 99 + .../angular-1.2.19/i18n/angular-locale_sk-sk.js | 99 + .../angular-1.2.19/i18n/angular-locale_sk.js | 99 + .../angular-1.2.19/i18n/angular-locale_sl-si.js | 99 + .../angular-1.2.19/i18n/angular-locale_sl.js | 99 + .../angular-1.2.19/i18n/angular-locale_sq-al.js | 99 + .../angular-1.2.19/i18n/angular-locale_sq.js | 99 + .../i18n/angular-locale_sr-cyrl-ba.js | 99 + .../i18n/angular-locale_sr-cyrl-me.js | 99 + .../i18n/angular-locale_sr-cyrl-rs.js | 99 + .../i18n/angular-locale_sr-cyrl.js | 99 + .../i18n/angular-locale_sr-latn-ba.js | 99 + .../i18n/angular-locale_sr-latn-me.js | 99 + .../i18n/angular-locale_sr-latn-rs.js | 99 + .../i18n/angular-locale_sr-latn.js | 99 + .../angular-1.2.19/i18n/angular-locale_sr.js | 99 + .../angular-1.2.19/i18n/angular-locale_sv-fi.js | 99 + .../angular-1.2.19/i18n/angular-locale_sv-se.js | 99 + .../angular-1.2.19/i18n/angular-locale_sv.js | 99 + .../angular-1.2.19/i18n/angular-locale_sw-ke.js | 99 + .../angular-1.2.19/i18n/angular-locale_sw-tz.js | 99 + .../angular-1.2.19/i18n/angular-locale_sw.js | 99 + .../angular-1.2.19/i18n/angular-locale_ta-in.js | 99 + .../angular-1.2.19/i18n/angular-locale_ta-lk.js | 99 + .../angular-1.2.19/i18n/angular-locale_ta.js | 99 + .../angular-1.2.19/i18n/angular-locale_te-in.js | 99 + .../angular-1.2.19/i18n/angular-locale_te.js | 99 + .../angular-1.2.19/i18n/angular-locale_th-th.js | 99 + .../angular-1.2.19/i18n/angular-locale_th.js | 99 + .../angular-1.2.19/i18n/angular-locale_tl.js | 99 + .../angular-1.2.19/i18n/angular-locale_tr-tr.js | 99 + .../angular-1.2.19/i18n/angular-locale_tr.js | 99 + .../angular-1.2.19/i18n/angular-locale_uk-ua.js | 99 + .../angular-1.2.19/i18n/angular-locale_uk.js | 99 + .../angular-1.2.19/i18n/angular-locale_ur-in.js | 99 + .../angular-1.2.19/i18n/angular-locale_ur-pk.js | 99 + .../angular-1.2.19/i18n/angular-locale_ur.js | 99 + .../angular-1.2.19/i18n/angular-locale_vi-vn.js | 99 + .../angular-1.2.19/i18n/angular-locale_vi.js | 99 + .../angular-1.2.19/i18n/angular-locale_zh-cn.js | 99 + .../i18n/angular-locale_zh-hans-cn.js | 99 + .../i18n/angular-locale_zh-hans-hk.js | 99 + .../i18n/angular-locale_zh-hans-mo.js | 99 + .../i18n/angular-locale_zh-hans-sg.js | 99 + .../i18n/angular-locale_zh-hans.js | 99 + .../i18n/angular-locale_zh-hant-hk.js | 99 + .../i18n/angular-locale_zh-hant-mo.js | 99 + .../i18n/angular-locale_zh-hant-tw.js | 99 + .../i18n/angular-locale_zh-hant.js | 99 + .../angular-1.2.19/i18n/angular-locale_zh-hk.js | 99 + .../angular-1.2.19/i18n/angular-locale_zh-tw.js | 99 + .../angular-1.2.19/i18n/angular-locale_zh.js | 99 + .../angular-1.2.19/i18n/angular-locale_zu-za.js | 99 + .../angular-1.2.19/i18n/angular-locale_zu.js | 99 + .../mobile/libs/angular-1.2.19/version.json | 1 + .../mobile/libs/angular-1.2.19/version.txt | 1 + .../.bower.json | 19 + .../README.md | 9 + .../angular-translate-loader-static-files.js | 31 + ...angular-translate-loader-static-files.min.js | 6 + .../bower.json | 8 + .../mobile/libs/angular-translate-loader-url | 1 + .../.bower.json | 18 + .../angular-translate-storage-cookie/README.md | 9 + .../angular-translate-storage-cookie.js | 19 + .../angular-translate-storage-cookie.min.js | 6 + .../angular-translate-storage-cookie/bower.json | 8 + .../angular-translate-storage-local/.bower.json | 20 + .../angular-translate-storage-local/README.md | 9 + .../angular-translate-storage-local.js | 38 + .../angular-translate-storage-local.min.js | 6 + .../angular-translate-storage-local/bower.json | 9 + .../mobile/libs/angular-translate/.bower.json | 16 + .../mobile/libs/angular-translate/README.md | 9 + .../libs/angular-translate/angular-translate.js | 883 + .../angular-translate/angular-translate.min.js | 6 + .../mobile/libs/angular-translate/bower.json | 5 + .../.gitignore | 102 + .../dist/css/mobile-angular-ui-base.css | 7543 ++++ .../dist/css/mobile-angular-ui-base.min.css | 1 + .../dist/css/mobile-angular-ui-desktop.css | 531 + .../dist/css/mobile-angular-ui-desktop.min.css | 1 + .../dist/css/mobile-angular-ui-hover.css | 480 + .../dist/css/mobile-angular-ui-hover.min.css | 1 + .../dist/fonts/FontAwesome.otf | Bin 0 -> 75188 bytes .../dist/fonts/fontawesome-webfont.eot | Bin 0 -> 72449 bytes .../dist/fonts/fontawesome-webfont.svg | 504 + .../dist/fonts/fontawesome-webfont.ttf | Bin 0 -> 141564 bytes .../dist/fonts/fontawesome-webfont.woff | Bin 0 -> 83760 bytes .../dist/js/mobile-angular-ui.js | 1854 + .../dist/js/mobile-angular-ui.min.js | 1 + sandbox/mobile-app/src/main/webapp/index.m.html | 99 + usage/jsgui/pom.xml | 11 - .../main/webapp/assets/mobile/css/mobile.css | 74 - .../Powered-by-Cloudsoft-AMP-Logo-on-blue.png | Bin 30107 -> 0 bytes .../Powered-by-Cloudsoft-AMP-Logo-on-white.png | Bin 28288 -> 0 bytes .../images/Powered-by-Cloudsoft-AMP-Logo.png | Bin 30522 -> 0 bytes .../src/main/webapp/assets/mobile/js/app.js | 84 - .../main/webapp/assets/mobile/js/controllers.js | 202 - .../src/main/webapp/assets/mobile/js/filters.js | 29 - .../webapp/assets/mobile/js/i18n/en-us.json | 27 - .../main/webapp/assets/mobile/js/services.js | 28 - .../mobile/js/templates/applicationsList.html | 72 - .../mobile/js/templates/entitiesList.html | 53 - .../mobile/js/templates/entitySummary.html | 250 - .../libs/angular-1.2.19/angular-animate.js | 1633 - .../libs/angular-1.2.19/angular-animate.min.js | 28 - .../angular-1.2.19/angular-animate.min.js.map | 8 - .../libs/angular-1.2.19/angular-cookies.js | 204 - .../libs/angular-1.2.19/angular-cookies.min.js | 8 - .../angular-1.2.19/angular-cookies.min.js.map | 8 - .../mobile/libs/angular-1.2.19/angular-csp.css | 24 - .../libs/angular-1.2.19/angular-loader.js | 414 - .../libs/angular-1.2.19/angular-loader.min.js | 9 - .../angular-1.2.19/angular-loader.min.js.map | 8 - .../mobile/libs/angular-1.2.19/angular-mocks.js | 2171 -- .../libs/angular-1.2.19/angular-resource.js | 619 - .../libs/angular-1.2.19/angular-resource.min.js | 13 - .../angular-1.2.19/angular-resource.min.js.map | 8 - .../mobile/libs/angular-1.2.19/angular-route.js | 927 - .../libs/angular-1.2.19/angular-route.min.js | 14 - .../angular-1.2.19/angular-route.min.js.map | 8 - .../libs/angular-1.2.19/angular-sanitize.js | 630 - .../libs/angular-1.2.19/angular-sanitize.min.js | 15 - .../angular-1.2.19/angular-sanitize.min.js.map | 8 - .../libs/angular-1.2.19/angular-scenario.js | 33778 ----------------- .../mobile/libs/angular-1.2.19/angular-touch.js | 584 - .../libs/angular-1.2.19/angular-touch.min.js | 13 - .../angular-1.2.19/angular-touch.min.js.map | 8 - .../mobile/libs/angular-1.2.19/angular.js | 21778 ----------- .../mobile/libs/angular-1.2.19/angular.min.js | 214 - .../libs/angular-1.2.19/angular.min.js.map | 8 - .../mobile/libs/angular-1.2.19/errors.json | 1 - .../angular-1.2.19/i18n/angular-locale_af-na.js | 99 - .../angular-1.2.19/i18n/angular-locale_af-za.js | 99 - .../angular-1.2.19/i18n/angular-locale_af.js | 99 - .../angular-1.2.19/i18n/angular-locale_am-et.js | 99 - .../angular-1.2.19/i18n/angular-locale_am.js | 99 - .../i18n/angular-locale_ar-001.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-ae.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-bh.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-dz.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-eg.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-iq.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-jo.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-kw.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-lb.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-ly.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-ma.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-om.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-qa.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-sa.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-sd.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-sy.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-tn.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar-ye.js | 99 - .../angular-1.2.19/i18n/angular-locale_ar.js | 99 - .../angular-1.2.19/i18n/angular-locale_bg-bg.js | 99 - .../angular-1.2.19/i18n/angular-locale_bg.js | 99 - .../angular-1.2.19/i18n/angular-locale_bn-bd.js | 99 - .../angular-1.2.19/i18n/angular-locale_bn-in.js | 99 - .../angular-1.2.19/i18n/angular-locale_bn.js | 99 - .../angular-1.2.19/i18n/angular-locale_ca-ad.js | 99 - .../angular-1.2.19/i18n/angular-locale_ca-es.js | 99 - .../angular-1.2.19/i18n/angular-locale_ca.js | 99 - .../angular-1.2.19/i18n/angular-locale_cs-cz.js | 99 - .../angular-1.2.19/i18n/angular-locale_cs.js | 99 - .../angular-1.2.19/i18n/angular-locale_da-dk.js | 99 - .../angular-1.2.19/i18n/angular-locale_da.js | 99 - .../angular-1.2.19/i18n/angular-locale_de-at.js | 99 - .../angular-1.2.19/i18n/angular-locale_de-be.js | 99 - .../angular-1.2.19/i18n/angular-locale_de-ch.js | 99 - .../angular-1.2.19/i18n/angular-locale_de-de.js | 99 - .../angular-1.2.19/i18n/angular-locale_de-li.js | 99 - .../angular-1.2.19/i18n/angular-locale_de-lu.js | 99 - .../angular-1.2.19/i18n/angular-locale_de.js | 99 - .../angular-1.2.19/i18n/angular-locale_el-cy.js | 99 - .../angular-1.2.19/i18n/angular-locale_el-gr.js | 99 - .../angular-1.2.19/i18n/angular-locale_el.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-as.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-au.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-bb.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-be.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-bm.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-bw.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-bz.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-ca.js | 99 - .../i18n/angular-locale_en-dsrt-us.js | 99 - .../i18n/angular-locale_en-dsrt.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-fm.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-gb.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-gu.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-gy.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-hk.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-ie.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-in.js | 99 - .../i18n/angular-locale_en-iso.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-jm.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-mh.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-mp.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-mt.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-mu.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-na.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-nz.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-ph.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-pk.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-pr.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-pw.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-sg.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-tc.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-tt.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-um.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-us.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-vg.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-vi.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-za.js | 99 - .../angular-1.2.19/i18n/angular-locale_en-zw.js | 99 - .../angular-1.2.19/i18n/angular-locale_en.js | 99 - .../i18n/angular-locale_es-419.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-ar.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-bo.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-cl.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-co.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-cr.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-do.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-ea.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-ec.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-es.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-gq.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-gt.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-hn.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-ic.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-mx.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-ni.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-pa.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-pe.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-pr.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-py.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-sv.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-us.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-uy.js | 99 - .../angular-1.2.19/i18n/angular-locale_es-ve.js | 99 - .../angular-1.2.19/i18n/angular-locale_es.js | 99 - .../angular-1.2.19/i18n/angular-locale_et-ee.js | 99 - .../angular-1.2.19/i18n/angular-locale_et.js | 99 - .../angular-1.2.19/i18n/angular-locale_eu-es.js | 99 - .../angular-1.2.19/i18n/angular-locale_eu.js | 99 - .../angular-1.2.19/i18n/angular-locale_fa-af.js | 99 - .../angular-1.2.19/i18n/angular-locale_fa-ir.js | 99 - .../angular-1.2.19/i18n/angular-locale_fa.js | 99 - .../angular-1.2.19/i18n/angular-locale_fi-fi.js | 99 - .../angular-1.2.19/i18n/angular-locale_fi.js | 99 - .../i18n/angular-locale_fil-ph.js | 99 - .../angular-1.2.19/i18n/angular-locale_fil.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-be.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-bf.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-bi.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-bj.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-bl.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-ca.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-cd.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-cf.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-cg.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-ch.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-ci.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-cm.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-dj.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-fr.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-ga.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-gf.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-gn.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-gp.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-gq.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-km.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-lu.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-mc.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-mf.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-mg.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-ml.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-mq.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-ne.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-re.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-rw.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-sn.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-td.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-tg.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr-yt.js | 99 - .../angular-1.2.19/i18n/angular-locale_fr.js | 99 - .../angular-1.2.19/i18n/angular-locale_gl-es.js | 99 - .../angular-1.2.19/i18n/angular-locale_gl.js | 99 - .../i18n/angular-locale_gsw-ch.js | 99 - .../angular-1.2.19/i18n/angular-locale_gsw.js | 99 - .../angular-1.2.19/i18n/angular-locale_gu-in.js | 99 - .../angular-1.2.19/i18n/angular-locale_gu.js | 99 - .../angular-1.2.19/i18n/angular-locale_he-il.js | 99 - .../angular-1.2.19/i18n/angular-locale_he.js | 99 - .../angular-1.2.19/i18n/angular-locale_hi-in.js | 99 - .../angular-1.2.19/i18n/angular-locale_hi.js | 99 - .../angular-1.2.19/i18n/angular-locale_hr-hr.js | 99 - .../angular-1.2.19/i18n/angular-locale_hr.js | 99 - .../angular-1.2.19/i18n/angular-locale_hu-hu.js | 99 - .../angular-1.2.19/i18n/angular-locale_hu.js | 99 - .../angular-1.2.19/i18n/angular-locale_id-id.js | 99 - .../angular-1.2.19/i18n/angular-locale_id.js | 99 - .../angular-1.2.19/i18n/angular-locale_in.js | 99 - .../angular-1.2.19/i18n/angular-locale_is-is.js | 99 - .../angular-1.2.19/i18n/angular-locale_is.js | 99 - .../angular-1.2.19/i18n/angular-locale_it-ch.js | 99 - .../angular-1.2.19/i18n/angular-locale_it-it.js | 99 - .../angular-1.2.19/i18n/angular-locale_it-sm.js | 99 - .../angular-1.2.19/i18n/angular-locale_it.js | 99 - .../angular-1.2.19/i18n/angular-locale_iw.js | 99 - .../angular-1.2.19/i18n/angular-locale_ja-jp.js | 99 - .../angular-1.2.19/i18n/angular-locale_ja.js | 99 - .../angular-1.2.19/i18n/angular-locale_kn-in.js | 99 - .../angular-1.2.19/i18n/angular-locale_kn.js | 99 - .../angular-1.2.19/i18n/angular-locale_ko-kr.js | 99 - .../angular-1.2.19/i18n/angular-locale_ko.js | 99 - .../angular-1.2.19/i18n/angular-locale_ln-cd.js | 99 - .../angular-1.2.19/i18n/angular-locale_ln-cg.js | 99 - .../angular-1.2.19/i18n/angular-locale_ln.js | 99 - .../angular-1.2.19/i18n/angular-locale_lt-lt.js | 99 - .../angular-1.2.19/i18n/angular-locale_lt.js | 99 - .../angular-1.2.19/i18n/angular-locale_lv-lv.js | 99 - .../angular-1.2.19/i18n/angular-locale_lv.js | 99 - .../angular-1.2.19/i18n/angular-locale_ml-in.js | 99 - .../angular-1.2.19/i18n/angular-locale_ml.js | 99 - .../angular-1.2.19/i18n/angular-locale_mr-in.js | 99 - .../angular-1.2.19/i18n/angular-locale_mr.js | 99 - .../angular-1.2.19/i18n/angular-locale_ms-bn.js | 99 - .../angular-1.2.19/i18n/angular-locale_ms-my.js | 99 - .../angular-1.2.19/i18n/angular-locale_ms.js | 99 - .../angular-1.2.19/i18n/angular-locale_mt-mt.js | 99 - .../angular-1.2.19/i18n/angular-locale_mt.js | 99 - .../angular-1.2.19/i18n/angular-locale_nl-aw.js | 99 - .../angular-1.2.19/i18n/angular-locale_nl-be.js | 99 - .../angular-1.2.19/i18n/angular-locale_nl-cw.js | 99 - .../angular-1.2.19/i18n/angular-locale_nl-nl.js | 99 - .../angular-1.2.19/i18n/angular-locale_nl-sx.js | 99 - .../angular-1.2.19/i18n/angular-locale_nl.js | 99 - .../angular-1.2.19/i18n/angular-locale_no.js | 99 - .../angular-1.2.19/i18n/angular-locale_or-in.js | 99 - .../angular-1.2.19/i18n/angular-locale_or.js | 99 - .../angular-1.2.19/i18n/angular-locale_pl-pl.js | 99 - .../angular-1.2.19/i18n/angular-locale_pl.js | 99 - .../angular-1.2.19/i18n/angular-locale_pt-ao.js | 99 - .../angular-1.2.19/i18n/angular-locale_pt-br.js | 99 - .../angular-1.2.19/i18n/angular-locale_pt-gw.js | 99 - .../angular-1.2.19/i18n/angular-locale_pt-mz.js | 99 - .../angular-1.2.19/i18n/angular-locale_pt-pt.js | 99 - .../angular-1.2.19/i18n/angular-locale_pt-st.js | 99 - .../angular-1.2.19/i18n/angular-locale_pt.js | 99 - .../angular-1.2.19/i18n/angular-locale_ro-md.js | 99 - .../angular-1.2.19/i18n/angular-locale_ro-ro.js | 99 - .../angular-1.2.19/i18n/angular-locale_ro.js | 99 - .../angular-1.2.19/i18n/angular-locale_ru-md.js | 99 - .../angular-1.2.19/i18n/angular-locale_ru-ru.js | 99 - .../angular-1.2.19/i18n/angular-locale_ru-ua.js | 99 - .../angular-1.2.19/i18n/angular-locale_ru.js | 99 - .../angular-1.2.19/i18n/angular-locale_sk-sk.js | 99 - .../angular-1.2.19/i18n/angular-locale_sk.js | 99 - .../angular-1.2.19/i18n/angular-locale_sl-si.js | 99 - .../angular-1.2.19/i18n/angular-locale_sl.js | 99 - .../angular-1.2.19/i18n/angular-locale_sq-al.js | 99 - .../angular-1.2.19/i18n/angular-locale_sq.js | 99 - .../i18n/angular-locale_sr-cyrl-ba.js | 99 - .../i18n/angular-locale_sr-cyrl-me.js | 99 - .../i18n/angular-locale_sr-cyrl-rs.js | 99 - .../i18n/angular-locale_sr-cyrl.js | 99 - .../i18n/angular-locale_sr-latn-ba.js | 99 - .../i18n/angular-locale_sr-latn-me.js | 99 - .../i18n/angular-locale_sr-latn-rs.js | 99 - .../i18n/angular-locale_sr-latn.js | 99 - .../angular-1.2.19/i18n/angular-locale_sr.js | 99 - .../angular-1.2.19/i18n/angular-locale_sv-fi.js | 99 - .../angular-1.2.19/i18n/angular-locale_sv-se.js | 99 - .../angular-1.2.19/i18n/angular-locale_sv.js | 99 - .../angular-1.2.19/i18n/angular-locale_sw-ke.js | 99 - .../angular-1.2.19/i18n/angular-locale_sw-tz.js | 99 - .../angular-1.2.19/i18n/angular-locale_sw.js | 99 - .../angular-1.2.19/i18n/angular-locale_ta-in.js | 99 - .../angular-1.2.19/i18n/angular-locale_ta-lk.js | 99 - .../angular-1.2.19/i18n/angular-locale_ta.js | 99 - .../angular-1.2.19/i18n/angular-locale_te-in.js | 99 - .../angular-1.2.19/i18n/angular-locale_te.js | 99 - .../angular-1.2.19/i18n/angular-locale_th-th.js | 99 - .../angular-1.2.19/i18n/angular-locale_th.js | 99 - .../angular-1.2.19/i18n/angular-locale_tl.js | 99 - .../angular-1.2.19/i18n/angular-locale_tr-tr.js | 99 - .../angular-1.2.19/i18n/angular-locale_tr.js | 99 - .../angular-1.2.19/i18n/angular-locale_uk-ua.js | 99 - .../angular-1.2.19/i18n/angular-locale_uk.js | 99 - .../angular-1.2.19/i18n/angular-locale_ur-in.js | 99 - .../angular-1.2.19/i18n/angular-locale_ur-pk.js | 99 - .../angular-1.2.19/i18n/angular-locale_ur.js | 99 - .../angular-1.2.19/i18n/angular-locale_vi-vn.js | 99 - .../angular-1.2.19/i18n/angular-locale_vi.js | 99 - .../angular-1.2.19/i18n/angular-locale_zh-cn.js | 99 - .../i18n/angular-locale_zh-hans-cn.js | 99 - .../i18n/angular-locale_zh-hans-hk.js | 99 - .../i18n/angular-locale_zh-hans-mo.js | 99 - .../i18n/angular-locale_zh-hans-sg.js | 99 - .../i18n/angular-locale_zh-hans.js | 99 - .../i18n/angular-locale_zh-hant-hk.js | 99 - .../i18n/angular-locale_zh-hant-mo.js | 99 - .../i18n/angular-locale_zh-hant-tw.js | 99 - .../i18n/angular-locale_zh-hant.js | 99 - .../angular-1.2.19/i18n/angular-locale_zh-hk.js | 99 - .../angular-1.2.19/i18n/angular-locale_zh-tw.js | 99 - .../angular-1.2.19/i18n/angular-locale_zh.js | 99 - .../angular-1.2.19/i18n/angular-locale_zu-za.js | 99 - .../angular-1.2.19/i18n/angular-locale_zu.js | 99 - .../mobile/libs/angular-1.2.19/version.json | 1 - .../mobile/libs/angular-1.2.19/version.txt | 1 - .../.bower.json | 19 - .../README.md | 9 - .../angular-translate-loader-static-files.js | 31 - ...angular-translate-loader-static-files.min.js | 6 - .../bower.json | 8 - .../mobile/libs/angular-translate-loader-url | 1 - .../.bower.json | 18 - .../angular-translate-storage-cookie/README.md | 9 - .../angular-translate-storage-cookie.js | 19 - .../angular-translate-storage-cookie.min.js | 6 - .../angular-translate-storage-cookie/bower.json | 8 - .../angular-translate-storage-local/.bower.json | 20 - .../angular-translate-storage-local/README.md | 9 - .../angular-translate-storage-local.js | 38 - .../angular-translate-storage-local.min.js | 6 - .../angular-translate-storage-local/bower.json | 9 - .../mobile/libs/angular-translate/.bower.json | 16 - .../mobile/libs/angular-translate/README.md | 9 - .../libs/angular-translate/angular-translate.js | 883 - .../angular-translate/angular-translate.min.js | 6 - .../mobile/libs/angular-translate/bower.json | 5 - .../.gitignore | 102 - .../dist/css/mobile-angular-ui-base.css | 7543 ---- .../dist/css/mobile-angular-ui-base.min.css | 1 - .../dist/css/mobile-angular-ui-desktop.css | 531 - .../dist/css/mobile-angular-ui-desktop.min.css | 1 - .../dist/css/mobile-angular-ui-hover.css | 480 - .../dist/css/mobile-angular-ui-hover.min.css | 1 - .../dist/fonts/FontAwesome.otf | Bin 75188 -> 0 bytes .../dist/fonts/fontawesome-webfont.eot | Bin 72449 -> 0 bytes .../dist/fonts/fontawesome-webfont.svg | 504 - .../dist/fonts/fontawesome-webfont.ttf | Bin 141564 -> 0 bytes .../dist/fonts/fontawesome-webfont.woff | Bin 83760 -> 0 bytes .../dist/js/mobile-angular-ui.js | 1854 - .../dist/js/mobile-angular-ui.min.js | 1 - usage/jsgui/src/main/webapp/index.html | 7 - usage/jsgui/src/main/webapp/index.m.html | 99 - 718 files changed, 103936 insertions(+), 103853 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/pom.xml ---------------------------------------------------------------------- diff --git a/sandbox/mobile-app/pom.xml b/sandbox/mobile-app/pom.xml new file mode 100644 index 0000000..cdb7f76 --- /dev/null +++ b/sandbox/mobile-app/pom.xml @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <packaging>war</packaging> + + <artifactId>brooklyn-mobile-app</artifactId> + + <name>Brooklyn Mobile GUI</name> + + <description> + A mobile skin for Brooklyn + </description> + + <parent> + <groupId>io.brooklyn</groupId> + <artifactId>brooklyn-parent</artifactId> + <version>0.7.0-SNAPSHOT</version><!-- BROOKLYN_VERSION --> + <relativePath>../../pom.xml</relativePath> + </parent> + + <properties> + <project.build.webapp> + ${project.build.directory}/${project.build.finalName} + </project.build.webapp> + </properties> + + <dependencies> + <dependency> + <groupId>org.testng</groupId> + <artifactId>testng</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.rat</groupId> + <artifactId>apache-rat-plugin</artifactId> + <configuration> + <excludes combine.children="append"> + <exclude>**/src/main/webapp/assets/mobile/js/i18n/*</exclude> + <exclude>**/src/main/webapp/assets/mobile/libs/angular-1.2.19/*</exclude> + <exclude>**/src/main/webapp/assets/mobile/libs/angular-translate/*</exclude> + <exclude>**/src/main/webapp/assets/mobile/libs/angular-translate-loader-url/*</exclude> + <exclude>**/src/main/webapp/assets/mobile/libs/angular-translate-storage-cookie/*</exclude> + <exclude>**/src/main/webapp/assets/mobile/libs/angular-translate-storage-local/*</exclude> + <exclude>**/src/main/webapp/assets/mobile/libs/mcasimir-mobile-angular-ui-be39011/*</exclude> + </excludes> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> +</project> + http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/WEB-INF/web.xml ---------------------------------------------------------------------- diff --git a/sandbox/mobile-app/src/main/webapp/WEB-INF/web.xml b/sandbox/mobile-app/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..a126eb1 --- /dev/null +++ b/sandbox/mobile-app/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,24 @@ +<!DOCTYPE web-app PUBLIC + "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" + "http://java.sun.com/dtd/web-app_2_3.dtd" > +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<web-app> + <display-name>Brooklyn Mobile</display-name> +</web-app> http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/css/mobile.css ---------------------------------------------------------------------- diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/css/mobile.css b/sandbox/mobile-app/src/main/webapp/assets/mobile/css/mobile.css new file mode 100644 index 0000000..8ddaf8a --- /dev/null +++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/css/mobile.css @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +*/ +.poweredLogo{ + width:150px; + height:28px; + float:right; + margin: 20px 20px; + content:url("/assets/mobile/images/Powered-by-Cloudsoft-AMP-Logo-on-blue.png"); +} + +.navbar-absolute-bottom{ + border-top-width: 0px; +} + +.navbar-app{ + color:#419641; +} +.list-group-item a{ + color:#666; +} + +.navbar-app .btn, .navbar-app .btn-navbar{ + color:#777; +} + +.sidebar-left{ + background: none repeat scroll 0 0 #555; +} + +.navbar-footer{ + background: none repeat scroll 0 0 #555; +} + +.list-group-item span, .list-group-item h4, .navbar-brand span, .panel-body .panel h4{ + white-space: nowrap; + /*width: 100%;*/ + overflow: hidden; /* "overflow" value must be different from "visible" */ + text-overflow: ellipsis; +} + +.panel-heading .btn-navbar:last-child{ + padding:0px 0px 6px 12px; +} + +.entityListHeader { + padding: 10px 0px 40px 0px; +} + +.entityListHeader .navbar-brand-center { + margin: 0px 35px; +} +.navbar-brand{ + padding:15px 30px !important; +} + +.wrapword{ + word-wrap: break-word; +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/images/Powered-by-Cloudsoft-AMP-Logo-on-blue.png ---------------------------------------------------------------------- diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/images/Powered-by-Cloudsoft-AMP-Logo-on-blue.png b/sandbox/mobile-app/src/main/webapp/assets/mobile/images/Powered-by-Cloudsoft-AMP-Logo-on-blue.png new file mode 100644 index 0000000..4e6b2b3 Binary files /dev/null and b/sandbox/mobile-app/src/main/webapp/assets/mobile/images/Powered-by-Cloudsoft-AMP-Logo-on-blue.png differ http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/images/Powered-by-Cloudsoft-AMP-Logo-on-white.png ---------------------------------------------------------------------- diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/images/Powered-by-Cloudsoft-AMP-Logo-on-white.png b/sandbox/mobile-app/src/main/webapp/assets/mobile/images/Powered-by-Cloudsoft-AMP-Logo-on-white.png new file mode 100644 index 0000000..7143636 Binary files /dev/null and b/sandbox/mobile-app/src/main/webapp/assets/mobile/images/Powered-by-Cloudsoft-AMP-Logo-on-white.png differ http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/images/Powered-by-Cloudsoft-AMP-Logo.png ---------------------------------------------------------------------- diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/images/Powered-by-Cloudsoft-AMP-Logo.png b/sandbox/mobile-app/src/main/webapp/assets/mobile/images/Powered-by-Cloudsoft-AMP-Logo.png new file mode 100644 index 0000000..a627f53 Binary files /dev/null and b/sandbox/mobile-app/src/main/webapp/assets/mobile/images/Powered-by-Cloudsoft-AMP-Logo.png differ http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/js/app.js ---------------------------------------------------------------------- diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/js/app.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/js/app.js new file mode 100644 index 0000000..cedad5d --- /dev/null +++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/js/app.js @@ -0,0 +1,84 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +*/ +var app = angular.module('BrooklynMobile', [ + "ngRoute", + "ngTouch", + "mobile-angular-ui", + "BrooklynApp.Services", + "BrooklynApp.filters", + "BrooklynApp.controllers", + "pascalprecht.translate", + "ngCookies"]); + +app.config(function($routeProvider, $translateProvider) { + //Defaults root to applications. Should change in the future + $routeProvider.when('/', { + templateUrl : "/assets/mobile/js/templates/applicationsList.html", + controller:"ApplicationListController" + }); + + //Lists applications + $routeProvider.when('/v1/applications', { + templateUrl : "/assets/mobile/js/templates/applicationsList.html", + controller:"ApplicationListController" + }); + + //List entities + $routeProvider.when('/v1/applications/:appId/entities/:id', { + templateUrl : "/assets/mobile/js/templates/entitiesList.html", + controller:"EntityListController" + }); + $routeProvider.when('/v1/applications/:appId/entities', { + templateUrl : "/assets/mobile/js/templates/entitiesList.html", + controller:"EntityListController" + }); + $routeProvider.when('/v1/applications/:appId', { + templateUrl : "/assets/mobile/js/templates/entitiesList.html", + controller:"EntityListController" + }); + + //Application and entity details + $routeProvider.when('/v1/applications/:appId/entities/:id/summary', { + templateUrl : "/assets/mobile/js/templates/entitySummary.html", + controller:"EntityDetailsController" + }); + $routeProvider.when('/v1/applications/:appId/summary', { + templateUrl : "/assets/mobile/js/templates/entitySummary.html", + controller:"EntityDetailsController" + }); + + $translateProvider.useStaticFilesLoader({ + prefix: '/assets/mobile/js/i18n/', + suffix: '.json' + }); + //$translateProvider.useLocalStorage(); + $translateProvider.preferredLanguage('en-us'); + +}); + +app.controller('MainController', function($rootScope, $scope) { + + $rootScope.$on("$routeChangeStart", function() { + $rootScope.loading = true; + }); + + $rootScope.$on("$routeChangeSuccess", function() { + $rootScope.loading = false; + }); +}); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/js/controllers.js ---------------------------------------------------------------------- diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/js/controllers.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/js/controllers.js new file mode 100644 index 0000000..68e21d1 --- /dev/null +++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/js/controllers.js @@ -0,0 +1,202 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +*/ +var bklnControllers = angular.module('BrooklynApp.controllers',['ngResource']); + +//Brooklyn ApplicationList controller +bklnControllers.controller('ApplicationListController', function($scope, $interval, ApplicationService){ + // + $scope.reloadTimer; + $scope.loadData = function(){ + ApplicationService.query({}, function (applications){ + $scope.applications = applications; + console.log('ApplicationListController: new data loaded'); + }); + }; + + $scope.showDetails = function($event){ + alert("swipe happened"); + $event.stopPropagation(); + console.dir ($event); + }; + + $scope.$on('$viewContentLoaded', function() { + console.log('ApplicationListController: loadeding'); + $scope.loadData(); + console.log('ApplicationListController: requested data'); + $scope.reloadTimer = $interval($scope.loadData, 10000); + console.log('ApplicationListController: reload timer set'); + console.log('ApplicationListController: loaded'); + }); + + $scope.$on('$destroy', function() { + console.log('ApplicationListController: unloading'); + if (angular.isDefined($scope.reloadTimer)) { + $interval.cancel($scope.reloadTimer); + $scope.reloadTimer = undefined; + } + console.log('ApplicationListController: reload timer stopped'); + console.log('ApplicationListController: unloaded'); + }); + +}); + + +bklnControllers.controller('EntityListController', function($scope, $http, $interval, $location, $routeParams){ + + $scope.reloadTimer; + $scope.path = $location.path().replace("#",''); + var shownPath = false; + $scope.loadData = function(){ + + $http({method: 'GET', url: $scope.path}). + success(function(data) { + $scope.entity = data; + $scope.name = (data.spec) ? data.spec.name : data.name; + var children = (data.links.children) ? data.links.children : data.links.entities ; + $scope.back = (data.links.parent) ? data.links.parent : "/v1/applications"; + if (!shownPath) { + console.info ("Current path: "+ $location.path()); + console.info ("Back path: "+ $scope.back); + shownPath = true; + } + console.log('EntityListController: new data loaded'); + $http({method: 'GET', url: children}). + success(function(data) { + $scope.entities = data; + //get status sequentially.. + angular.forEach($scope.entities, function (value, index){ + $http.get(value.links.sensors + "/service.state") + .success(function(data){ + data = data.replace(/"/g,''); + value.status = (data.length > 0) ? data : "Unknown"; + }); + }); + + }); + }); + }; + + $scope.$on('$viewContentLoaded', function() { + console.log('EntityListController: loadeding'); + $scope.loadData(); + console.log('EntityListController: requested data'); + $scope.reloadTimer = $interval($scope.loadData, 10000); + console.log('EntityListController: reload timer set'); + console.log('EntityListController: loaded'); + }); + + $scope.$on('$destroy', function() { + console.log('EntityListController: unloading'); + if (angular.isDefined($scope.reloadTimer)) { + $interval.cancel($scope.reloadTimer); + $scope.reloadTimer = undefined; + } + console.log('EntityListController: reload timer stopped'); + console.log('EntityListController: unloaded'); + }); + +}); + +bklnControllers.controller('EntityDetailsController', function($scope, $filter, $window, $location, $http, $resource, $routeParams){ + + + $scope.goBack = function (){ + $window.history.back(); + }; + + $scope.init = function(){ + $scope.path = $location.path().replace("#",''); + + $scope.selfLink = $location.path().replace("/summary",''); + + $http({method: 'GET', url: $scope.selfLink}). + success(function(data) { + $scope.entity = data; + $scope.name = (data.spec) ? data.spec.name : data.name; + var sensors = ($scope.entity.links.sensors) ? $scope.entity.links.sensors : $scope.selfLink + "/sensors"; + $http({method:'GET', url:$scope.entity.links.effectors}). + success(function(data){ + $scope.entity.effectors = data; + console.dir (data); + }); + + $http({method: 'GET', url: sensors + '/current-state'}). + success(function(data) { + $scope.entity.status = (data["service.state"]) ? data["service.state"].replace(/"/g,'') : null; + $scope.entity.isUp = data["service.isUp"]; + }); + + var activities = ($scope.entity.links.activities) ? $scope.entity.links.activities : $scope.selfLink + "/activities"; + $http({method: 'GET', url: activities}). + success(function(data) { + console.info(activities); + console.dir(data); + $scope.entity.activities = data; + }); + var config = ($scope.entity.links.config) ? $scope.entity.links.config : $scope.selfLink + "/config"; + var configUrl = config + '/current-state'; + $http({method: 'GET', url: configUrl}). + success(function(data) { + console.info(configUrl); + console.dir(data); + var config = []; + angular.forEach(data, function (v, k){ + config.push({"key": k, "value":v}); + }); + $scope.entity.config = config; + }); + + console.dir ($scope.entity); + }); + }; + + $scope.isTopLevelActivity = function(input){ + var submitter = input.submittedByTask; + return (submitter == null ||(submitter != null && $filter('filter')($scope.entity.activities,{"id":submitter.metadata.id}).length == 0 )); + }; + + $scope.expunge = function (){ + //TODO: show dialog requesting if user wants to release resources + var expungeURL = $scope.selfLink + "/expunge?replace=false"; + $http({method: 'POST', url: expungeURL}). + success(function(data) { + console.info(expungeURL); + console.dir(data); + }); + + + }; + + $scope.executeEffector = function (uri){ + var effector = uri + "?timeout=0"; + var data = ""; + console.info ("Executing: " + effector); + $http({method: 'POST', url: effector, data:data, headers: {'Content-Type': 'application/x-www-form-urlencoded'}}). + success(function(data) { + console.info("Success"); + console.dir(data); + }). + error(function(data, status){ + console.error ("Failed: " + status); + console.dir (data); + }); + }; + $scope.init(); + +}); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/js/filters.js ---------------------------------------------------------------------- diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/js/filters.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/js/filters.js new file mode 100644 index 0000000..289bd3f --- /dev/null +++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/js/filters.js @@ -0,0 +1,29 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +*/ +'use strict'; +var bklnFilters = angular.module('BrooklynApp.filters',[]); + +bklnFilters.filter('Capitalize', function(){ + return function(input){ + input = input || ''; + var out = input.toLocaleLowerCase(); + out = out.charAt(0).toLocaleUpperCase() + out.substring(1); + return out; +}; +}); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/js/i18n/en-us.json ---------------------------------------------------------------------- diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/js/i18n/en-us.json b/sandbox/mobile-app/src/main/webapp/assets/mobile/js/i18n/en-us.json new file mode 100644 index 0000000..ca3ea5e --- /dev/null +++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/js/i18n/en-us.json @@ -0,0 +1,27 @@ +{ + "TITLE" : "Brooklyn", + "APP_NAME_LONG" : "Brooklyn", + "APP_NAME_SHORT" : "Brooklyn", + "APPLICATION_LIST_TITLE":"Applications", + "NO_APPS_FOUND": "No applications found.", + "NO_ENTITIES_FOUND": "No entities found.", + "M_MENU_APPS": "Applications", + "M_MENU_HELP": "Help", + "M_MEMU_POWERED_BY":"", + "LOADING": "Loading ...", + "E_DISMISS_BUTTON":"Dismiss", + "E_DETIALS_SUMMARY":"Summary", + "E_DETIALS_CONFIG": "Config", + "E_DETIALS_LIFECYCLE": "Lifecycle", + "E_DETIALS_POLICIES":"Policies", + "E_DETIALS_ACTIVITIES":"Activities", + "E_DETIALS_NO_CONFIG_FOUND":"No configurations found", + "E_DETIALS_NO_POLICIES_FOUND":"No policies found", + "E_DETIALS_NO_ACTIVITIES_FOUND":"No activities found", + "E_SUMMARY_NAME":"Name", + "E_SUMMARY_ID": "Id", + "E_SUMMARY_STATUS":"Status", + "E_SUMMARY_TYPE": "Type", + "E_SUMMARY_SERVICE_UP":"Service up" + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/js/services.js ---------------------------------------------------------------------- diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/js/services.js b/sandbox/mobile-app/src/main/webapp/assets/mobile/js/services.js new file mode 100644 index 0000000..6e16afa --- /dev/null +++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/js/services.js @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +*/ + +var brooklynServices = angular.module('BrooklynApp.Services', ['ngResource']); + +brooklynServices.factory('ApplicationService', ['$resource', function ($resource) { + var Application = $resource('/v1/applications/:id', {url:'/v1/applications/:id'}, { + query: {method:'GET', params:{}, isArray:true}, + entities:{url:'v1/applications/:id/entities', method:'GET', isArray:true}, + }); + return Application; +}]); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/js/templates/applicationsList.html ---------------------------------------------------------------------- diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/js/templates/applicationsList.html b/sandbox/mobile-app/src/main/webapp/assets/mobile/js/templates/applicationsList.html new file mode 100644 index 0000000..1ab6fc5 --- /dev/null +++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/js/templates/applicationsList.html @@ -0,0 +1,72 @@ +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<div class="scrollable"> + <div class="scrollable-content"> + <div class="list-group"> + <div style="padding: 10px 0px 19px 0px;" class="list-group-item"> + <span style="font-size: 1.5em; font-weight: 400; padding-left: 15px">{{'APPLICATION_LIST_TITLE' | translate}}</span> + <!-- <div class="btn-group pull-right"> + <a href="{{$scope.loadData()}}" class="btn btn-navbar"> <i + class="fa fa-refresh"></i> + </a> + </div> --> + </div> + + <div ng-if="applications.length == 0" class="list-group-item"> + <h5 class="list-group-item-text text-center">{{'NO_APPS_FOUND' | translate}}</h5> + </div> + + <div ng-repeat="application in applications" + href="#{{application.links.entities}}/{{application.id}}" + class="list-group-item"> + <a href="#{{application.links.entities}}/{{application.id}}" ng-show="!showActions" ng-swipe-left="showDetails($event)"> + <i class="fa fa-chevron-right pull-right"></i> + <h5 class="list-group-item-heading">{{application.spec.name}}</h5> + + <p class="list-group-item-text"> + + <i ng-if="application.status == 'RUNNING'" + class="fa fa-circle text-success"></i> <i + ng-if="application.status == 'UNKNOWN'" + class="fa fa-exclamation text-warning"></i> <i + ng-if="application.status == 'STARTING'" + class="fa fa-circle text-info"></i> {{application.status | Capitalize}} + </p> + </a> + + <a href="#{{application.links.entities}}/{{application.id}}" ng-show="showActions" ng-swipe-right="showActions = false"> + <span ng-href="#{{application.links.self}}/summary" class="fa pull-right" style="background-color:green;margin: -10px 0px;padding: 20px 20px;color: white;display: block;z-index: 2000;"> Details</span> + <i class="fa fa-chevron-right pull-right"></i> + <h5 class="list-group-item-heading">{{application.spec.name}}</h5> + + <p class="list-group-item-text"> + + <i ng-if="application.status == 'RUNNING'" + class="fa fa-circle text-success"></i> <i + ng-if="application.status == 'UNKNOWN'" + class="fa fa-exclamation text-warning"></i> <i + ng-if="application.status == 'STARTING'" + class="fa fa-circle text-info"></i> {{application.status | Capitalize}} + </p> + </a> + </div> + </div> + </div> +</div> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/js/templates/entitiesList.html ---------------------------------------------------------------------- diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/js/templates/entitiesList.html b/sandbox/mobile-app/src/main/webapp/assets/mobile/js/templates/entitiesList.html new file mode 100644 index 0000000..0417f8b --- /dev/null +++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/js/templates/entitiesList.html @@ -0,0 +1,53 @@ +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> +<div class="scrollable"> + + <div class="list-group-item entityListHeader"> + + <div class="btn-group pull-left"> + <a href="#{{back}}" class="btn btn-navbar "> <i + class="fa fa-chevron-left"></i> + </a> + </div> + <div class=" navbar-brand navbar-brand-center"><span style="font-size: 1.5em; font-weight: 400;">{{name}}</span></div> + + <div class="btn-group pull-right"> + <a href="#{{entity.links.self}}/summary" class="btn btn-navbar"> + <i class="fa fa-info"></i> + </a> + </div> + + </div> + <div ng-if="entities.length == 0" class="list-group-item"> + <h5 class="list-group-item-text text-center">{{'NO_ENTITIES_FOUND' | translate}}</h5> + </div> + <a ng-repeat="entry in entities" href="#{{entry.links.self}}" + class="list-group-item"> <i class="fa fa-chevron-right pull-right"></i> + <h4 class="list-group-item-heading">{{entry.name}}</h4> + <p class="list-group-item-text"> + <i ng-if="entry.status == 'running'" + class="fa fa-circle text-success"></i> <i + ng-if="entry.status == 'Unknown'" + class="fa fa-exclamation text-warning"></i> <i + ng-if="entry.status == 'on-fire'" class="fa fa-fire text-danger"></i> + <i ng-if="entry.status == 'starting'" class="fa fa-circle text-info"></i> + {{entry.status | Capitalize}} + </p> + </a> +</div> http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/12342668/sandbox/mobile-app/src/main/webapp/assets/mobile/js/templates/entitySummary.html ---------------------------------------------------------------------- diff --git a/sandbox/mobile-app/src/main/webapp/assets/mobile/js/templates/entitySummary.html b/sandbox/mobile-app/src/main/webapp/assets/mobile/js/templates/entitySummary.html new file mode 100644 index 0000000..832700d --- /dev/null +++ b/sandbox/mobile-app/src/main/webapp/assets/mobile/js/templates/entitySummary.html @@ -0,0 +1,250 @@ +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> +<div content-for="title"> + <span ng-click="goBack()">{{entity.name}}</span> +</div> +<!-- Left icon --> +<div content-for="left-control-nav-icon-left"> + <div ng-click="toggle('mainSidebar')" + class="btn btn-navbar sidebar-toggle"> + <i class="fa fa-cogs"></i> + </div> +</div> + +<!-- Right icon --> +<div content-for="right-control-nav-icon-right"> + <div ng-click="toggle('rightSidebar')" + class="btn btn-navbar sidebar-toggle"> + <i class="fa fa-list"></i> + </div> +</div> + +<!-- Left navigation (effectors) --> +<div content-for="left-control-nav"> + <h2 class="app-name"> </h2> + <div class="scrollable sidebar-scrollable"> + <div class="scrollable-content"> + <div class="list-group" toggle="off" bubble target="mainSidebar"> + <a class="list-group-item" ng-repeat="effector in entity.effectors" + ng-click="executeEffector(effector.links.self); toggle('leftSidebar');" > <span ng-switch on="effector.name"> <i + ng-switch-when="restart" class="fa fa-refresh fa-2x"></i> <i + ng-switch-when="start" class="fa fa-play fa-2x"></i> <i + ng-switch-when="stop" class="fa fa-power-off fa-2x"></i> <i + ng-switch-when="resize" class="fa fa-arrows fa-2x"></i> <i + ng-switch-when="deploy" class="fa fa-cloud-upload fa-2x"></i> <i + ng-switch-when="undeploy" class="fa fa-cloud-download fa-2x"></i> + <i ng-switch-default class="fa fa-cloud fa-2x"></i> + </span> <span style="padding-left: 10px; font-size: 1.5em;">{{effector.name | Capitalize}}</span> + </a> + </div> + + </div> + </div> +</div> + +<div content-for="right-control-nav"> + <h2 class="app-name"> </h2> + <div class="scrollable sidebar-scrollable"> + <div class="scrollable-content"> + <div class="list-group" toggle="off" bubble target="rightSidebar"> + <a class="list-group-item" href="" ng-click="selected = 'Summary'; toggle('rightSidebar')"> <span ng-switch + on="effector.name"> <i ng-switch-default + class="fa fa-bullseye fa-2x"></i> + </span> <span style="padding-left: 10px; font-size: 1.5em;">{{'E_DETIALS_SUMMARY' | translate}}</span> + </a> <a class="list-group-item" href="" ng-click="selected = 'Lifecycle'; toggle('rightSidebar')"> <span ng-switch + on="effector.name"> <i ng-switch-default + class="fa fa-sun-o fa-2x"></i> + </span> <span style="padding-left: 10px; font-size: 1.5em;">{{'E_DETIALS_LIFECYCLE' | translate}}</span> + </a> <a class="list-group-item" href="" ng-click="selected = 'Config'; toggle('rightSidebar')"> <span ng-switch + on="effector.name"> <i ng-switch-default + class="fa fa-cogs fa-2x"></i> + </span> <span style="padding-left: 10px; font-size: 1.5em;">{{'E_DETIALS_CONFIG' | translate}}</span> + </a> <a class="list-group-item" href="" ng-click="selected = 'Policies'; toggle('rightSidebar')"> <span ng-switch + on="effector.name"> <i ng-switch-default + class="fa fa-legal fa-2x"></i> + </span> <span style="padding-left: 10px; font-size: 1.5em;">{{'E_DETIALS_POLICIES' | translate}}</span> + </a> <a class="list-group-item" href="" ng-click="selected = 'Activities'; toggle('rightSidebar')"> <span ng-switch + on="effector.name"> <i ng-switch-default + class="fa fa-tasks fa-2x"></i> + </span> <span style="padding-left: 10px; font-size: 1.5em;">{{'E_DETIALS_ACTIVITIES' | translate}}</span> + </a> + </div> + + </div> + </div> +</div> + +<!-- Entity Details/Summary --> + +<div class="scrollable" ng-init="selected = 'Summary'" > + <div class="scrollable-content section" ng-show="selected == 'Summary'"> + + <form action="" id=""> + + <div class="panel"> + <div class="panel-heading"> + <div class="panel-title"> + <span>{{'E_DETIALS_SUMMARY' | translate}}</span> + </div> + </div> + <div class="panel-body"> + + <div class="block"> + <label class="control-label">{{'E_SUMMARY_NAME' | translate}}</label> <input type="text" + ng-model="entity.name" placeholder="Name" class="form-control" + readonly> + </div> + <div class="block"> + <label class="control-label">{{'E_SUMMARY_STATUS' | translate}}</label> <input type="text" + ng-model="entity.status" placeholder="Status" + class="form-control" readonly> + </div> + <div class="block"> + <label class="control-label">{{'E_SUMMARY_SERVICE_UP' | translate}}</label> <input type="text" + ng-model="entity.isUp" placeholder="Service isUp" + class="form-control" readonly> + </div> + + <div class="block"> + <label class="control-label">{{'E_SUMMARY_TYPE' | translate}}</label> <input type="text" + ng-model="entity.type" placeholder="Type" class="form-control" + readonly> + </div> + + <div class="block"> + <label class="control-label">{{'E_SUMMARY_ID' | translate}}</label> <input type="text" + ng-model="entity.id" placeholder="Id" class="form-control" + readonly> + </div> + + </div> + <br /> + <br /> + + <div bs-panel class="form-actions"> + <button class="btn btn-success btn-block" ng-click="goBack()">{{'E_DISMISS_BUTTON' | translate}}</button> + </div> + </div> + </form> + </div> + + <div class="scrollable-content section" ng-show="selected == 'Lifecycle'"> + + <div class="panel"> + <div class="panel-heading"> + <div class="panel-title"> + <span>{{'E_DETIALS_LIFECYCLE' | translate}}</span> + </div> + </div> + <div class="panel-body"> + <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. </p> + <br/> + + </div> + <div bs-panel class="form-actions"> + <button class="btn btn-danger btn-block" ng-click="expunge(); goBack();">Expunge</button> + </div> + <div bs-panel class="form-actions"> + <button class="btn btn-success btn-block" ng-click="goBack()">{{'E_DISMISS_BUTTON' | translate}}</button> + </div> + </div> + </div> + <div class="scrollable-content section" ng-show="selected == 'Config'"> + + <div class="panel"> + <div class="panel-heading"> + <div class="panel-title"> + <span>{{'E_DETIALS_CONFIG' | translate}}</span> + </div> + </div> + <div class="panel-body"> + <br/> + <div ng-if="entity.config.length == 0"> + <h5 class="list-group-item-text text-center">{{'E_DETIALS_NO_CONFIG_FOUND' | translate}}</h5> + <br/> + </div> + <div class="panel panel-default" ng-repeat="conf in entity.config | orderBy:'key'"> + <div class="panel-heading"> + <h4>{{conf.key | Capitalize}}</h4> + </div> + <div class="panel-body wrapword"> + {{conf.value}} + </div> + </div> + </div> + <div bs-panel class="form-actions"> + <button class="btn btn-success btn-block" ng-click="goBack()">{{'E_DISMISS_BUTTON' | translate}}</button> + </div> + </div> + </div> + <div class="scrollable-content section" ng-show="selected == 'Policies'"> + + <div class="panel"> + <div class="panel-heading"> + <div class="panel-title"> + <span>{{'E_DETIALS_POLICIES' | translate}}</span> + </div> + </div> + <div class="panel-body"> + <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. </p> + <br/> + + </div> + <div bs-panel class="form-actions"> + <button class="btn btn-success btn-block" ng-click="goBack()">{{'E_DISMISS_BUTTON' | translate}}</button> + </div> + + </div> + </div> + <div class="scrollable-content section" ng-show="selected == 'Activities'"> + + <div class="panel"> + <div class="panel-heading"> + <div class="panel-title"> + <span>{{'E_DETIALS_ACTIVITIES' | translate}}</span> + </div> + </div> + <div class="panel-body"> + <!--<p> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. </p> + --><br/> + + <div ng-if="entity.activities.length == 0"> + <h5 class="list-group-item-text text-center">{{'E_DETIALS_NO_ACTIVITIES_FOUND' | translate}}</h5> + </div> + <!-- <div class="panel panel-default" ng-repeat="activity in entity.activities" ng-if="activity.submittedByTask == null || (ctivity.submittedByTask != null && $filter('filter')($scope.entity.links.activities,{'id':activity.submittedByTask.metadata.id}).length) == 0"> --> + <div class="panel panel-default" ng-repeat="activity in entity.activities" ng-if ="isTopLevelActivity(activity)"> + <div class="panel-heading"> + <h4>{{activity.displayName | Capitalize}}</h4> + </div> + <!-- <div class="panel-body"> + Panel content + </div> --> + <table class="table"> + <tr><td>Submitted</td><td>{{activity.submitTimeUtc | date:'MM/dd/yyyy @ h:mma'}}</td></tr> + <tr><td>Status</td><td>{{activity.currentStatus}}</td></tr> + </table> + </div> + + </div> + <div bs-panel class="form-actions"> + <button class="btn btn-success btn-block" ng-click="goBack()">{{'E_DISMISS_BUTTON' | translate}}</button> + </div> + </div> + </div> +</div> \ No newline at end of file
