diff --git a/.env b/.env deleted file mode 100644 index 5e194b4..0000000 --- a/.env +++ /dev/null @@ -1,2 +0,0 @@ -BASEROW_TOKEN="TFxO7vzBLVRCu9I3VMoHmTuCvSu8aCDi" -BASEROW_IDS='{"measure": 328253,"measure_combination": 328217, "organism": 328255, "funding_program": 328256, "factsheet": 328273, "location_requirements": 328188, "reference_implementation": 328465, "business": 328472, "experience_report": 330802, "approval_requirement": 330806, "service_provider": 330824, "service_provider_contact_person": 330832, "material": 330836, "source": 334231, "tree_type": 342622, "aenderungfactsheet": 330946}' \ No newline at end of file diff --git a/.env.example b/.env.example deleted file mode 100644 index 232bb44..0000000 --- a/.env.example +++ /dev/null @@ -1,2 +0,0 @@ -BASEROWTOKEN='ENTER_THE_TOKEN_HERE' -BASEROW_IDS="{'massnahmen': 1, 'massnahmenkombination': 2, 'organismen': 3, 'foerderprogramme': 4, 'factsheet': 5, 'standortansprueche': 6, 'referenzumsetzung': 7, 'betriebsverzeichnis': 8, 'erfahrungsbericht': 9, 'genehmigungspflicht': 10, 'dienstleister': 11, 'ansprechperson': 12, 'material': 13, 'quellen': 14, 'baumarten': 15, 'aenderungfactsheet': 16,}" \ No newline at end of file diff --git a/assets/i18n b/assets/i18n new file mode 120000 index 0000000..b4f9cb8 --- /dev/null +++ b/assets/i18n @@ -0,0 +1 @@ +../i18n/ \ No newline at end of file diff --git a/assets/images b/assets/images new file mode 120000 index 0000000..e4c5bd0 --- /dev/null +++ b/assets/images @@ -0,0 +1 @@ +../images/ \ No newline at end of file diff --git a/assets/i18n/de.json b/i18n/de.json similarity index 98% rename from assets/i18n/de.json rename to i18n/de.json index 7610b1c..caa06ba 100644 --- a/assets/i18n/de.json +++ b/i18n/de.json @@ -83,6 +83,11 @@ "12": "Dezember" } } + }, + "fields": { + "measure": { + + } } } \ No newline at end of file diff --git a/assets/images/actions/ansitzstangen.jpg b/images/actions/ansitzstangen.jpg similarity index 100% rename from assets/images/actions/ansitzstangen.jpg rename to images/actions/ansitzstangen.jpg diff --git a/assets/images/actions/areatype/betriebsflaeche.jpg b/images/actions/areatype/betriebsflaeche.jpg similarity index 100% rename from assets/images/actions/areatype/betriebsflaeche.jpg rename to images/actions/areatype/betriebsflaeche.jpg diff --git a/assets/images/actions/areatype/betriebsstaette.jpg b/images/actions/areatype/betriebsstaette.jpg similarity index 100% rename from assets/images/actions/areatype/betriebsstaette.jpg rename to images/actions/areatype/betriebsstaette.jpg diff --git a/assets/images/actions/areatype/landschaft.jpg b/images/actions/areatype/landschaft.jpg similarity index 100% rename from assets/images/actions/areatype/landschaft.jpg rename to images/actions/areatype/landschaft.jpg diff --git a/assets/images/actions/areatype/weinberg.jpg b/images/actions/areatype/weinberg.jpg similarity index 100% rename from assets/images/actions/areatype/weinberg.jpg rename to images/actions/areatype/weinberg.jpg diff --git a/assets/images/actions/aushebung.jpg b/images/actions/aushebung.jpg similarity index 100% rename from assets/images/actions/aushebung.jpg rename to images/actions/aushebung.jpg diff --git a/assets/images/actions/einzelbaeume.jpg b/images/actions/einzelbaeume.jpg similarity index 100% rename from assets/images/actions/einzelbaeume.jpg rename to images/actions/einzelbaeume.jpg diff --git a/assets/images/actions/gebauede_dachbegruenung.jpg b/images/actions/gebauede_dachbegruenung.jpg similarity index 100% rename from assets/images/actions/gebauede_dachbegruenung.jpg rename to images/actions/gebauede_dachbegruenung.jpg diff --git a/assets/images/actions/hecken.jpg b/images/actions/hecken.jpg similarity index 100% rename from assets/images/actions/hecken.jpg rename to images/actions/hecken.jpg diff --git a/assets/images/actions/insektennisthilfe.jpg b/images/actions/insektennisthilfe.jpg similarity index 100% rename from assets/images/actions/insektennisthilfe.jpg rename to images/actions/insektennisthilfe.jpg diff --git a/assets/images/actions/nist_brut_unterschlupforte.jpg b/images/actions/nist_brut_unterschlupforte.jpg similarity index 100% rename from assets/images/actions/nist_brut_unterschlupforte.jpg rename to images/actions/nist_brut_unterschlupforte.jpg diff --git a/assets/images/actions/pflanzgefaesse.jpg b/images/actions/pflanzgefaesse.jpg similarity index 100% rename from assets/images/actions/pflanzgefaesse.jpg rename to images/actions/pflanzgefaesse.jpg diff --git a/assets/images/actions/saumbegruenung.jpg b/images/actions/saumbegruenung.jpg similarity index 100% rename from assets/images/actions/saumbegruenung.jpg rename to images/actions/saumbegruenung.jpg diff --git a/assets/images/actions/staudenbeete.jpg b/images/actions/staudenbeete.jpg similarity index 100% rename from assets/images/actions/staudenbeete.jpg rename to images/actions/staudenbeete.jpg diff --git a/assets/images/actions/steinhaufen.jpg b/images/actions/steinhaufen.jpg similarity index 100% rename from assets/images/actions/steinhaufen.jpg rename to images/actions/steinhaufen.jpg diff --git a/assets/images/actions/terassengaerten.jpg b/images/actions/terassengaerten.jpg similarity index 100% rename from assets/images/actions/terassengaerten.jpg rename to images/actions/terassengaerten.jpg diff --git a/assets/images/actions/totholz.jpg b/images/actions/totholz.jpg similarity index 100% rename from assets/images/actions/totholz.jpg rename to images/actions/totholz.jpg diff --git a/assets/images/actions/trockenmauern.jpg b/images/actions/trockenmauern.jpg similarity index 100% rename from assets/images/actions/trockenmauern.jpg rename to images/actions/trockenmauern.jpg diff --git a/assets/images/actions/unterstockbegruenung.jpg b/images/actions/unterstockbegruenung.jpg similarity index 100% rename from assets/images/actions/unterstockbegruenung.jpg rename to images/actions/unterstockbegruenung.jpg diff --git a/assets/images/actions/wasserstellen.jpg b/images/actions/wasserstellen.jpg similarity index 100% rename from assets/images/actions/wasserstellen.jpg rename to images/actions/wasserstellen.jpg diff --git a/assets/images/actions/zwickelflaeche.jpg b/images/actions/zwickelflaeche.jpg similarity index 100% rename from assets/images/actions/zwickelflaeche.jpg rename to images/actions/zwickelflaeche.jpg diff --git a/assets/images/logo.png b/images/logo.png similarity index 100% rename from assets/images/logo.png rename to images/logo.png diff --git a/assets/images/logo_trans.png b/images/logo_trans.png similarity index 100% rename from assets/images/logo_trans.png rename to images/logo_trans.png diff --git a/assets/images/measures/1INvxqyzDIRfezdbLQVQHC4WQm1oXPDt_9b4225e2fc82e97f774755670a2ec5556b4aebcd3c7866152a9a8071d6b49cae.png b/images/measures/1INvxqyzDIRfezdbLQVQHC4WQm1oXPDt_9b4225e2fc82e97f774755670a2ec5556b4aebcd3c7866152a9a8071d6b49cae.png similarity index 100% rename from assets/images/measures/1INvxqyzDIRfezdbLQVQHC4WQm1oXPDt_9b4225e2fc82e97f774755670a2ec5556b4aebcd3c7866152a9a8071d6b49cae.png rename to images/measures/1INvxqyzDIRfezdbLQVQHC4WQm1oXPDt_9b4225e2fc82e97f774755670a2ec5556b4aebcd3c7866152a9a8071d6b49cae.png diff --git a/assets/images/measures/4tesamWaskItfFsP0HRMgXgsQvgVMslm_caca0ac02495800606a1fba09be5488ee6cdc2ba450f3128402f3cf2d83e3aa9.png b/images/measures/4tesamWaskItfFsP0HRMgXgsQvgVMslm_caca0ac02495800606a1fba09be5488ee6cdc2ba450f3128402f3cf2d83e3aa9.png similarity index 100% rename from assets/images/measures/4tesamWaskItfFsP0HRMgXgsQvgVMslm_caca0ac02495800606a1fba09be5488ee6cdc2ba450f3128402f3cf2d83e3aa9.png rename to images/measures/4tesamWaskItfFsP0HRMgXgsQvgVMslm_caca0ac02495800606a1fba09be5488ee6cdc2ba450f3128402f3cf2d83e3aa9.png diff --git a/assets/images/measures/50Uy54KbYOrnZUDBUroffHt0Kbdn57bv_3a85f34e87ccdda48faa328aabdccd15b91d46f1207a7b74e9d6635ac14ae179.jpeg b/images/measures/50Uy54KbYOrnZUDBUroffHt0Kbdn57bv_3a85f34e87ccdda48faa328aabdccd15b91d46f1207a7b74e9d6635ac14ae179.jpeg similarity index 100% rename from assets/images/measures/50Uy54KbYOrnZUDBUroffHt0Kbdn57bv_3a85f34e87ccdda48faa328aabdccd15b91d46f1207a7b74e9d6635ac14ae179.jpeg rename to images/measures/50Uy54KbYOrnZUDBUroffHt0Kbdn57bv_3a85f34e87ccdda48faa328aabdccd15b91d46f1207a7b74e9d6635ac14ae179.jpeg diff --git a/assets/images/measures/5JsHpzEdOuJDqoDe0mINrMQ43l3S4vi4_1d9e9c604bd178b0575f92f96d4a431b12e1de8dbbae6bff8ed8dd8ae67c4a9f.png b/images/measures/5JsHpzEdOuJDqoDe0mINrMQ43l3S4vi4_1d9e9c604bd178b0575f92f96d4a431b12e1de8dbbae6bff8ed8dd8ae67c4a9f.png similarity index 100% rename from assets/images/measures/5JsHpzEdOuJDqoDe0mINrMQ43l3S4vi4_1d9e9c604bd178b0575f92f96d4a431b12e1de8dbbae6bff8ed8dd8ae67c4a9f.png rename to images/measures/5JsHpzEdOuJDqoDe0mINrMQ43l3S4vi4_1d9e9c604bd178b0575f92f96d4a431b12e1de8dbbae6bff8ed8dd8ae67c4a9f.png diff --git a/assets/images/measures/6sQV880tI7edIjPJfFMW5X7grvEmSqkH_6d60f1c6c5a38636bf054fa76806a715d8f82d623bc2b67b166b10eb5d360b04.png b/images/measures/6sQV880tI7edIjPJfFMW5X7grvEmSqkH_6d60f1c6c5a38636bf054fa76806a715d8f82d623bc2b67b166b10eb5d360b04.png similarity index 100% rename from assets/images/measures/6sQV880tI7edIjPJfFMW5X7grvEmSqkH_6d60f1c6c5a38636bf054fa76806a715d8f82d623bc2b67b166b10eb5d360b04.png rename to images/measures/6sQV880tI7edIjPJfFMW5X7grvEmSqkH_6d60f1c6c5a38636bf054fa76806a715d8f82d623bc2b67b166b10eb5d360b04.png diff --git a/assets/images/measures/AunMBIB6od0DInX25XOctG0SWKrmvMcS_bc1c67725499ad3595b8023eb2722ef1e9585c92904a8636989092e1aeffb3fe.png b/images/measures/AunMBIB6od0DInX25XOctG0SWKrmvMcS_bc1c67725499ad3595b8023eb2722ef1e9585c92904a8636989092e1aeffb3fe.png similarity index 100% rename from assets/images/measures/AunMBIB6od0DInX25XOctG0SWKrmvMcS_bc1c67725499ad3595b8023eb2722ef1e9585c92904a8636989092e1aeffb3fe.png rename to images/measures/AunMBIB6od0DInX25XOctG0SWKrmvMcS_bc1c67725499ad3595b8023eb2722ef1e9585c92904a8636989092e1aeffb3fe.png diff --git a/assets/images/measures/Bk5gUE824YJVXT0Rze5DYNUQxTxZ9SHI_983bbb715b7942f2172e3925197391485833ed18e2b0456fdc036f0af85fd6eb.png b/images/measures/Bk5gUE824YJVXT0Rze5DYNUQxTxZ9SHI_983bbb715b7942f2172e3925197391485833ed18e2b0456fdc036f0af85fd6eb.png similarity index 100% rename from assets/images/measures/Bk5gUE824YJVXT0Rze5DYNUQxTxZ9SHI_983bbb715b7942f2172e3925197391485833ed18e2b0456fdc036f0af85fd6eb.png rename to images/measures/Bk5gUE824YJVXT0Rze5DYNUQxTxZ9SHI_983bbb715b7942f2172e3925197391485833ed18e2b0456fdc036f0af85fd6eb.png diff --git a/assets/images/measures/DwbTufMsgAJrCrUUe2hSu0ZWGPF4jKQn_611d87a7e87134991b313af31fdc20b1ec31241fe872a5afdaaa60f558de830b.png b/images/measures/DwbTufMsgAJrCrUUe2hSu0ZWGPF4jKQn_611d87a7e87134991b313af31fdc20b1ec31241fe872a5afdaaa60f558de830b.png similarity index 100% rename from assets/images/measures/DwbTufMsgAJrCrUUe2hSu0ZWGPF4jKQn_611d87a7e87134991b313af31fdc20b1ec31241fe872a5afdaaa60f558de830b.png rename to images/measures/DwbTufMsgAJrCrUUe2hSu0ZWGPF4jKQn_611d87a7e87134991b313af31fdc20b1ec31241fe872a5afdaaa60f558de830b.png diff --git a/assets/images/measures/DwbTufMsgAJrCrUUe2hSu0ZWGPF4jKQn_611d87a7e87134991b313af31fdc20b1ec31241fe872a5afdaaa60f558de830b.png.1 b/images/measures/DwbTufMsgAJrCrUUe2hSu0ZWGPF4jKQn_611d87a7e87134991b313af31fdc20b1ec31241fe872a5afdaaa60f558de830b.png.1 similarity index 100% rename from assets/images/measures/DwbTufMsgAJrCrUUe2hSu0ZWGPF4jKQn_611d87a7e87134991b313af31fdc20b1ec31241fe872a5afdaaa60f558de830b.png.1 rename to images/measures/DwbTufMsgAJrCrUUe2hSu0ZWGPF4jKQn_611d87a7e87134991b313af31fdc20b1ec31241fe872a5afdaaa60f558de830b.png.1 diff --git a/assets/images/measures/EIFtx9Q4EZ1BsqgAbhvsomdbiJQcaemi_ee833429e304022ebb1fe95ecc821b6c03e83596eb12b36a87a44b73cb174e64.jpg b/images/measures/EIFtx9Q4EZ1BsqgAbhvsomdbiJQcaemi_ee833429e304022ebb1fe95ecc821b6c03e83596eb12b36a87a44b73cb174e64.jpg similarity index 100% rename from assets/images/measures/EIFtx9Q4EZ1BsqgAbhvsomdbiJQcaemi_ee833429e304022ebb1fe95ecc821b6c03e83596eb12b36a87a44b73cb174e64.jpg rename to images/measures/EIFtx9Q4EZ1BsqgAbhvsomdbiJQcaemi_ee833429e304022ebb1fe95ecc821b6c03e83596eb12b36a87a44b73cb174e64.jpg diff --git a/assets/images/measures/Fw1RgO8RMh1GnL4jFCPV7AHlQc9naJXJ_0b531a261d0cb1fab5510113a2871a9fe846cead40e297edddc08ca56c1d0284.png b/images/measures/Fw1RgO8RMh1GnL4jFCPV7AHlQc9naJXJ_0b531a261d0cb1fab5510113a2871a9fe846cead40e297edddc08ca56c1d0284.png similarity index 100% rename from assets/images/measures/Fw1RgO8RMh1GnL4jFCPV7AHlQc9naJXJ_0b531a261d0cb1fab5510113a2871a9fe846cead40e297edddc08ca56c1d0284.png rename to images/measures/Fw1RgO8RMh1GnL4jFCPV7AHlQc9naJXJ_0b531a261d0cb1fab5510113a2871a9fe846cead40e297edddc08ca56c1d0284.png diff --git a/assets/images/measures/GYoWkiGLitE7wS4km5GOffOfjby3t8dS_5f4cd29323bdfe41018605a5d21fdbc6ab49fb9cecc6823e0e3228fa9dd564f2.png b/images/measures/GYoWkiGLitE7wS4km5GOffOfjby3t8dS_5f4cd29323bdfe41018605a5d21fdbc6ab49fb9cecc6823e0e3228fa9dd564f2.png similarity index 100% rename from assets/images/measures/GYoWkiGLitE7wS4km5GOffOfjby3t8dS_5f4cd29323bdfe41018605a5d21fdbc6ab49fb9cecc6823e0e3228fa9dd564f2.png rename to images/measures/GYoWkiGLitE7wS4km5GOffOfjby3t8dS_5f4cd29323bdfe41018605a5d21fdbc6ab49fb9cecc6823e0e3228fa9dd564f2.png diff --git a/assets/images/measures/L8I2ZQru3fNcnd6jc2jSywqSjvMf955n_9308958de1cd1a8e886aa5787e623c59bbda77b1c99a3d44ab61c280afb28ab3.png b/images/measures/L8I2ZQru3fNcnd6jc2jSywqSjvMf955n_9308958de1cd1a8e886aa5787e623c59bbda77b1c99a3d44ab61c280afb28ab3.png similarity index 100% rename from assets/images/measures/L8I2ZQru3fNcnd6jc2jSywqSjvMf955n_9308958de1cd1a8e886aa5787e623c59bbda77b1c99a3d44ab61c280afb28ab3.png rename to images/measures/L8I2ZQru3fNcnd6jc2jSywqSjvMf955n_9308958de1cd1a8e886aa5787e623c59bbda77b1c99a3d44ab61c280afb28ab3.png diff --git a/assets/images/measures/M0hPe8Wp5mBEU0RBoKJlGGsCf2nCARKU_fef9b0abb5a07d2bca6a4e7ca486d17e9d87f57bc77c2bedb999873a42e19539.png b/images/measures/M0hPe8Wp5mBEU0RBoKJlGGsCf2nCARKU_fef9b0abb5a07d2bca6a4e7ca486d17e9d87f57bc77c2bedb999873a42e19539.png similarity index 100% rename from assets/images/measures/M0hPe8Wp5mBEU0RBoKJlGGsCf2nCARKU_fef9b0abb5a07d2bca6a4e7ca486d17e9d87f57bc77c2bedb999873a42e19539.png rename to images/measures/M0hPe8Wp5mBEU0RBoKJlGGsCf2nCARKU_fef9b0abb5a07d2bca6a4e7ca486d17e9d87f57bc77c2bedb999873a42e19539.png diff --git a/assets/images/measures/NYExryx0dkE0HP16gRkwihwcYQ5UHfsE_e1dbc9c2e09ba5aaf562bad32897c394e1e736f37f0a98071bba320dd7d5c0fd.png b/images/measures/NYExryx0dkE0HP16gRkwihwcYQ5UHfsE_e1dbc9c2e09ba5aaf562bad32897c394e1e736f37f0a98071bba320dd7d5c0fd.png similarity index 100% rename from assets/images/measures/NYExryx0dkE0HP16gRkwihwcYQ5UHfsE_e1dbc9c2e09ba5aaf562bad32897c394e1e736f37f0a98071bba320dd7d5c0fd.png rename to images/measures/NYExryx0dkE0HP16gRkwihwcYQ5UHfsE_e1dbc9c2e09ba5aaf562bad32897c394e1e736f37f0a98071bba320dd7d5c0fd.png diff --git a/assets/images/measures/OcHASLErh2Te8A6kXL8WmmrG1jmCI4A6_c4163d5d60ebc1a55b208f4a855ee3925c44a907fc537aa1d0e959c605b926a8.png b/images/measures/OcHASLErh2Te8A6kXL8WmmrG1jmCI4A6_c4163d5d60ebc1a55b208f4a855ee3925c44a907fc537aa1d0e959c605b926a8.png similarity index 100% rename from assets/images/measures/OcHASLErh2Te8A6kXL8WmmrG1jmCI4A6_c4163d5d60ebc1a55b208f4a855ee3925c44a907fc537aa1d0e959c605b926a8.png rename to images/measures/OcHASLErh2Te8A6kXL8WmmrG1jmCI4A6_c4163d5d60ebc1a55b208f4a855ee3925c44a907fc537aa1d0e959c605b926a8.png diff --git a/assets/images/measures/P3QgpA52R8K5JQrjcfZDM9HuVVBh8c3x_79667ce6cc057ac2b09cab5c377acdaaf4b32ee45dd1aae0c658d4641365da4f.png b/images/measures/P3QgpA52R8K5JQrjcfZDM9HuVVBh8c3x_79667ce6cc057ac2b09cab5c377acdaaf4b32ee45dd1aae0c658d4641365da4f.png similarity index 100% rename from assets/images/measures/P3QgpA52R8K5JQrjcfZDM9HuVVBh8c3x_79667ce6cc057ac2b09cab5c377acdaaf4b32ee45dd1aae0c658d4641365da4f.png rename to images/measures/P3QgpA52R8K5JQrjcfZDM9HuVVBh8c3x_79667ce6cc057ac2b09cab5c377acdaaf4b32ee45dd1aae0c658d4641365da4f.png diff --git a/assets/images/measures/P4EsgmBe1mWuVHbyxhSMKi2XBnyhlv1z_84af3a6875b07e3d0e4655e4a527907f5551ef970e8d0e9a1e742ae5b4dda0ed.png b/images/measures/P4EsgmBe1mWuVHbyxhSMKi2XBnyhlv1z_84af3a6875b07e3d0e4655e4a527907f5551ef970e8d0e9a1e742ae5b4dda0ed.png similarity index 100% rename from assets/images/measures/P4EsgmBe1mWuVHbyxhSMKi2XBnyhlv1z_84af3a6875b07e3d0e4655e4a527907f5551ef970e8d0e9a1e742ae5b4dda0ed.png rename to images/measures/P4EsgmBe1mWuVHbyxhSMKi2XBnyhlv1z_84af3a6875b07e3d0e4655e4a527907f5551ef970e8d0e9a1e742ae5b4dda0ed.png diff --git a/assets/images/measures/PZN8GvP5vXfQp0jKi3pFi61iPpdcx3Sy_62b63c520239d814a7b38869b59b68b09140349bf3e6e08f8b7b34b7c450dbfc.png b/images/measures/PZN8GvP5vXfQp0jKi3pFi61iPpdcx3Sy_62b63c520239d814a7b38869b59b68b09140349bf3e6e08f8b7b34b7c450dbfc.png similarity index 100% rename from assets/images/measures/PZN8GvP5vXfQp0jKi3pFi61iPpdcx3Sy_62b63c520239d814a7b38869b59b68b09140349bf3e6e08f8b7b34b7c450dbfc.png rename to images/measures/PZN8GvP5vXfQp0jKi3pFi61iPpdcx3Sy_62b63c520239d814a7b38869b59b68b09140349bf3e6e08f8b7b34b7c450dbfc.png diff --git a/assets/images/measures/S0294ydEFIXXYTkSn77VZawh72Prgrx8_67117b1fd3331388959dd38b4e4b8cefdf62542c312584ed18e14575cf4c7006.png b/images/measures/S0294ydEFIXXYTkSn77VZawh72Prgrx8_67117b1fd3331388959dd38b4e4b8cefdf62542c312584ed18e14575cf4c7006.png similarity index 100% rename from assets/images/measures/S0294ydEFIXXYTkSn77VZawh72Prgrx8_67117b1fd3331388959dd38b4e4b8cefdf62542c312584ed18e14575cf4c7006.png rename to images/measures/S0294ydEFIXXYTkSn77VZawh72Prgrx8_67117b1fd3331388959dd38b4e4b8cefdf62542c312584ed18e14575cf4c7006.png diff --git a/assets/images/measures/SHMb30fyxxjqqwvJd6WiPHz6uoasrQ1F_209d0a99d91fa910ad28d723ed78dd50cdb4949343040803b97e35f9c6ff6b1a.png b/images/measures/SHMb30fyxxjqqwvJd6WiPHz6uoasrQ1F_209d0a99d91fa910ad28d723ed78dd50cdb4949343040803b97e35f9c6ff6b1a.png similarity index 100% rename from assets/images/measures/SHMb30fyxxjqqwvJd6WiPHz6uoasrQ1F_209d0a99d91fa910ad28d723ed78dd50cdb4949343040803b97e35f9c6ff6b1a.png rename to images/measures/SHMb30fyxxjqqwvJd6WiPHz6uoasrQ1F_209d0a99d91fa910ad28d723ed78dd50cdb4949343040803b97e35f9c6ff6b1a.png diff --git a/assets/images/measures/UAKhiUzvvxntXNiOPRF3aY1XDIpn0IEg_2daf8036b85ee37c2ae72a52776c07f62cec84998786814c5789c2fdc117b61c.png b/images/measures/UAKhiUzvvxntXNiOPRF3aY1XDIpn0IEg_2daf8036b85ee37c2ae72a52776c07f62cec84998786814c5789c2fdc117b61c.png similarity index 100% rename from assets/images/measures/UAKhiUzvvxntXNiOPRF3aY1XDIpn0IEg_2daf8036b85ee37c2ae72a52776c07f62cec84998786814c5789c2fdc117b61c.png rename to images/measures/UAKhiUzvvxntXNiOPRF3aY1XDIpn0IEg_2daf8036b85ee37c2ae72a52776c07f62cec84998786814c5789c2fdc117b61c.png diff --git a/assets/images/measures/WEF11cRQklcWPoCQL8OIrrkt2CO4N0AL_e1bdeddf2c8ffe3eafcc2639842c70307f77a02b4ea8fc53ba6fb66215a26b22.png b/images/measures/WEF11cRQklcWPoCQL8OIrrkt2CO4N0AL_e1bdeddf2c8ffe3eafcc2639842c70307f77a02b4ea8fc53ba6fb66215a26b22.png similarity index 100% rename from assets/images/measures/WEF11cRQklcWPoCQL8OIrrkt2CO4N0AL_e1bdeddf2c8ffe3eafcc2639842c70307f77a02b4ea8fc53ba6fb66215a26b22.png rename to images/measures/WEF11cRQklcWPoCQL8OIrrkt2CO4N0AL_e1bdeddf2c8ffe3eafcc2639842c70307f77a02b4ea8fc53ba6fb66215a26b22.png diff --git a/assets/images/measures/WiFsXnBbj4YkETYrZdqdya6GA6C3J2hP_d58df1c9a83a43d98abe7082e63511e4cc0d3f8c06da263331b7c04b06b9aed0.png b/images/measures/WiFsXnBbj4YkETYrZdqdya6GA6C3J2hP_d58df1c9a83a43d98abe7082e63511e4cc0d3f8c06da263331b7c04b06b9aed0.png similarity index 100% rename from assets/images/measures/WiFsXnBbj4YkETYrZdqdya6GA6C3J2hP_d58df1c9a83a43d98abe7082e63511e4cc0d3f8c06da263331b7c04b06b9aed0.png rename to images/measures/WiFsXnBbj4YkETYrZdqdya6GA6C3J2hP_d58df1c9a83a43d98abe7082e63511e4cc0d3f8c06da263331b7c04b06b9aed0.png diff --git a/assets/images/measures/Xf43KLfURcM9zrfltdhYLaXaKAr3iw7z_d18991806958a3fd888716b04b4fd3e217fb63470eca459337500d49e5e527b3.png b/images/measures/Xf43KLfURcM9zrfltdhYLaXaKAr3iw7z_d18991806958a3fd888716b04b4fd3e217fb63470eca459337500d49e5e527b3.png similarity index 100% rename from assets/images/measures/Xf43KLfURcM9zrfltdhYLaXaKAr3iw7z_d18991806958a3fd888716b04b4fd3e217fb63470eca459337500d49e5e527b3.png rename to images/measures/Xf43KLfURcM9zrfltdhYLaXaKAr3iw7z_d18991806958a3fd888716b04b4fd3e217fb63470eca459337500d49e5e527b3.png diff --git a/assets/images/measures/ZJmRMHU6SAfVb0kuuMYwTiI6apBhcLTm_63c43a1ba67ea9e9ac86ca58c194acb2f10cd3d5685a0f38ba3e94d3baf17883.png b/images/measures/ZJmRMHU6SAfVb0kuuMYwTiI6apBhcLTm_63c43a1ba67ea9e9ac86ca58c194acb2f10cd3d5685a0f38ba3e94d3baf17883.png similarity index 100% rename from assets/images/measures/ZJmRMHU6SAfVb0kuuMYwTiI6apBhcLTm_63c43a1ba67ea9e9ac86ca58c194acb2f10cd3d5685a0f38ba3e94d3baf17883.png rename to images/measures/ZJmRMHU6SAfVb0kuuMYwTiI6apBhcLTm_63c43a1ba67ea9e9ac86ca58c194acb2f10cd3d5685a0f38ba3e94d3baf17883.png diff --git a/assets/images/measures/bYItGzbvoti7m7svkc4kl3JYS0xP6WU3_dc60057ff017386717ed8e49ad03d2637f6414be938dcb3b9f270e11a33673c8.png b/images/measures/bYItGzbvoti7m7svkc4kl3JYS0xP6WU3_dc60057ff017386717ed8e49ad03d2637f6414be938dcb3b9f270e11a33673c8.png similarity index 100% rename from assets/images/measures/bYItGzbvoti7m7svkc4kl3JYS0xP6WU3_dc60057ff017386717ed8e49ad03d2637f6414be938dcb3b9f270e11a33673c8.png rename to images/measures/bYItGzbvoti7m7svkc4kl3JYS0xP6WU3_dc60057ff017386717ed8e49ad03d2637f6414be938dcb3b9f270e11a33673c8.png diff --git a/assets/images/measures/bvhjpzmIywWBacg2TZLmAei1JaiEuJ5A_975ac63c9fb65547d78e860ed81ed16f250d36cb91f5610a1ee3f4913f72f77a.png b/images/measures/bvhjpzmIywWBacg2TZLmAei1JaiEuJ5A_975ac63c9fb65547d78e860ed81ed16f250d36cb91f5610a1ee3f4913f72f77a.png similarity index 100% rename from assets/images/measures/bvhjpzmIywWBacg2TZLmAei1JaiEuJ5A_975ac63c9fb65547d78e860ed81ed16f250d36cb91f5610a1ee3f4913f72f77a.png rename to images/measures/bvhjpzmIywWBacg2TZLmAei1JaiEuJ5A_975ac63c9fb65547d78e860ed81ed16f250d36cb91f5610a1ee3f4913f72f77a.png diff --git a/assets/images/measures/cXuMiI2ClGQc9rWfWQToPLFlsrBipvUE_8f397ef97af78d30b6643f6993d6a02f52fc16c09d81354c6182c40a4c95a7e6.png b/images/measures/cXuMiI2ClGQc9rWfWQToPLFlsrBipvUE_8f397ef97af78d30b6643f6993d6a02f52fc16c09d81354c6182c40a4c95a7e6.png similarity index 100% rename from assets/images/measures/cXuMiI2ClGQc9rWfWQToPLFlsrBipvUE_8f397ef97af78d30b6643f6993d6a02f52fc16c09d81354c6182c40a4c95a7e6.png rename to images/measures/cXuMiI2ClGQc9rWfWQToPLFlsrBipvUE_8f397ef97af78d30b6643f6993d6a02f52fc16c09d81354c6182c40a4c95a7e6.png diff --git a/assets/images/measures/elu16SeNQMHB6WTGHe2QenvG2tZC0bBb_c813a1f3b7e4562e112272831ccc2518a46a9a36c28c81f163dab7812c3eaeb7.png b/images/measures/elu16SeNQMHB6WTGHe2QenvG2tZC0bBb_c813a1f3b7e4562e112272831ccc2518a46a9a36c28c81f163dab7812c3eaeb7.png similarity index 100% rename from assets/images/measures/elu16SeNQMHB6WTGHe2QenvG2tZC0bBb_c813a1f3b7e4562e112272831ccc2518a46a9a36c28c81f163dab7812c3eaeb7.png rename to images/measures/elu16SeNQMHB6WTGHe2QenvG2tZC0bBb_c813a1f3b7e4562e112272831ccc2518a46a9a36c28c81f163dab7812c3eaeb7.png diff --git a/assets/images/measures/gl5FV7WFz7PJ7RDlc40nbH7CtUp0M3Ni_50e57510c1be177e50f8948fd90a65bfa7ca33a2f2890a442ed7385eaa858a9d.png b/images/measures/gl5FV7WFz7PJ7RDlc40nbH7CtUp0M3Ni_50e57510c1be177e50f8948fd90a65bfa7ca33a2f2890a442ed7385eaa858a9d.png similarity index 100% rename from assets/images/measures/gl5FV7WFz7PJ7RDlc40nbH7CtUp0M3Ni_50e57510c1be177e50f8948fd90a65bfa7ca33a2f2890a442ed7385eaa858a9d.png rename to images/measures/gl5FV7WFz7PJ7RDlc40nbH7CtUp0M3Ni_50e57510c1be177e50f8948fd90a65bfa7ca33a2f2890a442ed7385eaa858a9d.png diff --git a/assets/images/measures/h4NN2aOzumFAOWWIkBm8ytDlhkaxFnC7_8ef6cc4498721c3e411009118320167049a53446eef547ca250e0b3134a2e973.png b/images/measures/h4NN2aOzumFAOWWIkBm8ytDlhkaxFnC7_8ef6cc4498721c3e411009118320167049a53446eef547ca250e0b3134a2e973.png similarity index 100% rename from assets/images/measures/h4NN2aOzumFAOWWIkBm8ytDlhkaxFnC7_8ef6cc4498721c3e411009118320167049a53446eef547ca250e0b3134a2e973.png rename to images/measures/h4NN2aOzumFAOWWIkBm8ytDlhkaxFnC7_8ef6cc4498721c3e411009118320167049a53446eef547ca250e0b3134a2e973.png diff --git a/assets/images/measures/kSW1EqQsZ90iLk3Tj4wCMYXrQy2wBv0Q_a7361ed2c4ffb0e3998122bcd494679e5f3fbec19231a120f977a8c82e831118.png b/images/measures/kSW1EqQsZ90iLk3Tj4wCMYXrQy2wBv0Q_a7361ed2c4ffb0e3998122bcd494679e5f3fbec19231a120f977a8c82e831118.png similarity index 100% rename from assets/images/measures/kSW1EqQsZ90iLk3Tj4wCMYXrQy2wBv0Q_a7361ed2c4ffb0e3998122bcd494679e5f3fbec19231a120f977a8c82e831118.png rename to images/measures/kSW1EqQsZ90iLk3Tj4wCMYXrQy2wBv0Q_a7361ed2c4ffb0e3998122bcd494679e5f3fbec19231a120f977a8c82e831118.png diff --git a/assets/images/measures/kiAjqMumouAf4NTJmKgY40NtOJbVfwLI_a27a499bf55214893f93ff2572bbede323af5176961910e3e97915b22390cff6.png b/images/measures/kiAjqMumouAf4NTJmKgY40NtOJbVfwLI_a27a499bf55214893f93ff2572bbede323af5176961910e3e97915b22390cff6.png similarity index 100% rename from assets/images/measures/kiAjqMumouAf4NTJmKgY40NtOJbVfwLI_a27a499bf55214893f93ff2572bbede323af5176961910e3e97915b22390cff6.png rename to images/measures/kiAjqMumouAf4NTJmKgY40NtOJbVfwLI_a27a499bf55214893f93ff2572bbede323af5176961910e3e97915b22390cff6.png diff --git a/assets/images/measures/m09JKrlc3U4ct1tfaLkzqU3lfd41rnXD_a5e145571c153d7c4368f576e61b7b12ab2490dd570d28f4fec62189822b7737.png b/images/measures/m09JKrlc3U4ct1tfaLkzqU3lfd41rnXD_a5e145571c153d7c4368f576e61b7b12ab2490dd570d28f4fec62189822b7737.png similarity index 100% rename from assets/images/measures/m09JKrlc3U4ct1tfaLkzqU3lfd41rnXD_a5e145571c153d7c4368f576e61b7b12ab2490dd570d28f4fec62189822b7737.png rename to images/measures/m09JKrlc3U4ct1tfaLkzqU3lfd41rnXD_a5e145571c153d7c4368f576e61b7b12ab2490dd570d28f4fec62189822b7737.png diff --git a/assets/images/measures/m3xfa3zao5Rn2vW7RTlWDC7Rm61a7Stv_2dd648383712c28f04854aea96853f24fe3f62ced3f067b1d856af708492e3a0.png b/images/measures/m3xfa3zao5Rn2vW7RTlWDC7Rm61a7Stv_2dd648383712c28f04854aea96853f24fe3f62ced3f067b1d856af708492e3a0.png similarity index 100% rename from assets/images/measures/m3xfa3zao5Rn2vW7RTlWDC7Rm61a7Stv_2dd648383712c28f04854aea96853f24fe3f62ced3f067b1d856af708492e3a0.png rename to images/measures/m3xfa3zao5Rn2vW7RTlWDC7Rm61a7Stv_2dd648383712c28f04854aea96853f24fe3f62ced3f067b1d856af708492e3a0.png diff --git a/assets/images/measures/mhzSmCWoGB8e5vHNkRBVbbZf8fdZvLfx_f7642d269367526791c9d81e92fc8b0ce13cc838cd76f1ca3ecdb2348c207f60.png b/images/measures/mhzSmCWoGB8e5vHNkRBVbbZf8fdZvLfx_f7642d269367526791c9d81e92fc8b0ce13cc838cd76f1ca3ecdb2348c207f60.png similarity index 100% rename from assets/images/measures/mhzSmCWoGB8e5vHNkRBVbbZf8fdZvLfx_f7642d269367526791c9d81e92fc8b0ce13cc838cd76f1ca3ecdb2348c207f60.png rename to images/measures/mhzSmCWoGB8e5vHNkRBVbbZf8fdZvLfx_f7642d269367526791c9d81e92fc8b0ce13cc838cd76f1ca3ecdb2348c207f60.png diff --git a/assets/images/measures/nEKk8Z13y06J94ZiuuovkGwIT9PqKK1m_ee6d6eb815a4a44cbb2eedaf2b9497a9f3a58c498ed4de36835bfa7ef9e2872b.png b/images/measures/nEKk8Z13y06J94ZiuuovkGwIT9PqKK1m_ee6d6eb815a4a44cbb2eedaf2b9497a9f3a58c498ed4de36835bfa7ef9e2872b.png similarity index 100% rename from assets/images/measures/nEKk8Z13y06J94ZiuuovkGwIT9PqKK1m_ee6d6eb815a4a44cbb2eedaf2b9497a9f3a58c498ed4de36835bfa7ef9e2872b.png rename to images/measures/nEKk8Z13y06J94ZiuuovkGwIT9PqKK1m_ee6d6eb815a4a44cbb2eedaf2b9497a9f3a58c498ed4de36835bfa7ef9e2872b.png diff --git a/assets/images/measures/p6wiS4TOSB0zCH4xE7VrSG4zfOB2zo30_e27892abb832f8f148da368b6f3a43bea4ee15a398b002ced294f304c1bbb421.png b/images/measures/p6wiS4TOSB0zCH4xE7VrSG4zfOB2zo30_e27892abb832f8f148da368b6f3a43bea4ee15a398b002ced294f304c1bbb421.png similarity index 100% rename from assets/images/measures/p6wiS4TOSB0zCH4xE7VrSG4zfOB2zo30_e27892abb832f8f148da368b6f3a43bea4ee15a398b002ced294f304c1bbb421.png rename to images/measures/p6wiS4TOSB0zCH4xE7VrSG4zfOB2zo30_e27892abb832f8f148da368b6f3a43bea4ee15a398b002ced294f304c1bbb421.png diff --git a/assets/images/measures/qDOhiKSAsSD8KRY1W5ONdjmpdpdSvhTv_c79de0bcb871cac9fc437cebee4e5d2e6bdff3faef66e59e44d1cfaa70557cca.png b/images/measures/qDOhiKSAsSD8KRY1W5ONdjmpdpdSvhTv_c79de0bcb871cac9fc437cebee4e5d2e6bdff3faef66e59e44d1cfaa70557cca.png similarity index 100% rename from assets/images/measures/qDOhiKSAsSD8KRY1W5ONdjmpdpdSvhTv_c79de0bcb871cac9fc437cebee4e5d2e6bdff3faef66e59e44d1cfaa70557cca.png rename to images/measures/qDOhiKSAsSD8KRY1W5ONdjmpdpdSvhTv_c79de0bcb871cac9fc437cebee4e5d2e6bdff3faef66e59e44d1cfaa70557cca.png diff --git a/assets/images/measures/qNMLY6v16j8cH6RMKKdsO0BlUcjQkVSp_4fa126601f67b8f881e3e2db0e9da24a7b2ddf070097b947173b478c94a52ef4.png b/images/measures/qNMLY6v16j8cH6RMKKdsO0BlUcjQkVSp_4fa126601f67b8f881e3e2db0e9da24a7b2ddf070097b947173b478c94a52ef4.png similarity index 100% rename from assets/images/measures/qNMLY6v16j8cH6RMKKdsO0BlUcjQkVSp_4fa126601f67b8f881e3e2db0e9da24a7b2ddf070097b947173b478c94a52ef4.png rename to images/measures/qNMLY6v16j8cH6RMKKdsO0BlUcjQkVSp_4fa126601f67b8f881e3e2db0e9da24a7b2ddf070097b947173b478c94a52ef4.png diff --git a/assets/images/measures/qOZiILFz6vhSll5ZgxDyqHsayw93FDyL_f15f7f4b24aaa15156be8b81309cd262c20a234157cb91c75da022b192ab40ff.png b/images/measures/qOZiILFz6vhSll5ZgxDyqHsayw93FDyL_f15f7f4b24aaa15156be8b81309cd262c20a234157cb91c75da022b192ab40ff.png similarity index 100% rename from assets/images/measures/qOZiILFz6vhSll5ZgxDyqHsayw93FDyL_f15f7f4b24aaa15156be8b81309cd262c20a234157cb91c75da022b192ab40ff.png rename to images/measures/qOZiILFz6vhSll5ZgxDyqHsayw93FDyL_f15f7f4b24aaa15156be8b81309cd262c20a234157cb91c75da022b192ab40ff.png diff --git a/assets/images/measures/rFFJ0vvavAST34hjEdyfjTuBnuTVC06X_91858d9f3dc1795b35422284d0a90d74f1216e46d92b3ab827e1fd383bbb94c8.png b/images/measures/rFFJ0vvavAST34hjEdyfjTuBnuTVC06X_91858d9f3dc1795b35422284d0a90d74f1216e46d92b3ab827e1fd383bbb94c8.png similarity index 100% rename from assets/images/measures/rFFJ0vvavAST34hjEdyfjTuBnuTVC06X_91858d9f3dc1795b35422284d0a90d74f1216e46d92b3ab827e1fd383bbb94c8.png rename to images/measures/rFFJ0vvavAST34hjEdyfjTuBnuTVC06X_91858d9f3dc1795b35422284d0a90d74f1216e46d92b3ab827e1fd383bbb94c8.png diff --git a/assets/images/measures/rknR76qWmE8sWwWeML4CnCBZOFyUmmM6_7bbe2b2410a2f2601d104c619578a17b919b13e9ba191069322f5b0a1684d1b1.png b/images/measures/rknR76qWmE8sWwWeML4CnCBZOFyUmmM6_7bbe2b2410a2f2601d104c619578a17b919b13e9ba191069322f5b0a1684d1b1.png similarity index 100% rename from assets/images/measures/rknR76qWmE8sWwWeML4CnCBZOFyUmmM6_7bbe2b2410a2f2601d104c619578a17b919b13e9ba191069322f5b0a1684d1b1.png rename to images/measures/rknR76qWmE8sWwWeML4CnCBZOFyUmmM6_7bbe2b2410a2f2601d104c619578a17b919b13e9ba191069322f5b0a1684d1b1.png diff --git a/assets/images/measures/sHPBjrVB0iMg7CkMRXnkXf4gCJGrKsOo_bc7ce18fe837b45b54a3d157eea40c3c6360266bbc3bbea3f02a40cc6cbafd6c.png b/images/measures/sHPBjrVB0iMg7CkMRXnkXf4gCJGrKsOo_bc7ce18fe837b45b54a3d157eea40c3c6360266bbc3bbea3f02a40cc6cbafd6c.png similarity index 100% rename from assets/images/measures/sHPBjrVB0iMg7CkMRXnkXf4gCJGrKsOo_bc7ce18fe837b45b54a3d157eea40c3c6360266bbc3bbea3f02a40cc6cbafd6c.png rename to images/measures/sHPBjrVB0iMg7CkMRXnkXf4gCJGrKsOo_bc7ce18fe837b45b54a3d157eea40c3c6360266bbc3bbea3f02a40cc6cbafd6c.png diff --git a/assets/images/measures/vjbB2AfEMUWiHBxcEzd3ttLGVMi3QYd9_bddd248c50ca3ae799bd8af90a8bc88b1f9008978b595104d7ba5bb57389e84c.png b/images/measures/vjbB2AfEMUWiHBxcEzd3ttLGVMi3QYd9_bddd248c50ca3ae799bd8af90a8bc88b1f9008978b595104d7ba5bb57389e84c.png similarity index 100% rename from assets/images/measures/vjbB2AfEMUWiHBxcEzd3ttLGVMi3QYd9_bddd248c50ca3ae799bd8af90a8bc88b1f9008978b595104d7ba5bb57389e84c.png rename to images/measures/vjbB2AfEMUWiHBxcEzd3ttLGVMi3QYd9_bddd248c50ca3ae799bd8af90a8bc88b1f9008978b595104d7ba5bb57389e84c.png diff --git a/lib/main.dart b/lib/main.dart index 245dd98..b59c152 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,6 @@ import 'package:ambito/src/packages/ambito_api/base_api.dart'; import 'package:ambito/src/packages/ambito_db/base_db.dart'; +import 'package:ambito/src/packages/ambito_notifier/notifier/theme_manager.dart'; import 'package:ambito/src/packages/ambito_sharedprefs/ambito_sharedprefs.dart'; import 'package:ambito/src/packages/ambito_theme/ambito_theme.dart'; import 'package:ambito/src/packages/ambito_theme/ambito_theme_large.dart'; @@ -7,18 +8,19 @@ import 'package:ambito/src/packages/ambito_theme/ambito_theme_medium.dart'; import 'package:ambito/src/packages/ambito_theme/ambito_theme_small.dart'; import 'package:ambito/src/pages/actions/actions_page.dart'; import 'package:ambito/src/pages/actions/actions_pre_page.dart'; +import 'package:ambito/src/pages/actions/create/action_create_page.dart'; import 'package:ambito/src/pages/actions/detail/action_detail_page.dart'; import 'package:ambito/src/pages/calendar/calendar_page.dart'; import 'package:ambito/src/pages/calendar/calendar_page_year.dart'; import 'package:ambito/src/pages/dashboard/dashboard_page.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:flutter_i18n/flutter_i18n.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:get/get.dart'; import 'package:isar/isar.dart'; import 'package:logger/logger.dart'; +import 'package:provider/provider.dart'; import 'package:screen_breakpoints/screen_breakpoints.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:syncfusion_localizations/syncfusion_localizations.dart'; @@ -72,9 +74,29 @@ AmbitoTheme largeTheme = AmbitoThemeLarge(); AmbitoTheme mediumTheme = AmbitoThemeMedium(); AmbitoTheme smallTheme = AmbitoThemeSmall(); +const BASEROW_TOKEN = 'TFxO7vzBLVRCu9I3VMoHmTuCvSu8aCDi'; +const BASEROW_IDS = { + "measure": 328253, + "measure_combination": 328217, + "organism": 328255, + "funding_program": 328256, + "factsheet": 328273, + "location_requirements": 328188, + "reference_implementation": 328465, + "business": 328472, + "experience_report": 330802, + "approval_requirement": 330806, + "service_provider": 330824, + "service_provider_contact_person": 330832, + "material": 330836, + "source": 334231, + "tree_type": 342622, + "aenderungfactsheet": 330946, +}; + void main() async { WidgetsFlutterBinding.ensureInitialized(); - await dotenv.load(fileName: '.env'); + //await dotenv.load(fileName: '.env'); await AmbitoSharedPrefs.start(); await AmbitoIsarDB.init(); await Future.wait([ @@ -105,91 +127,102 @@ class Ambito extends StatelessWidget { Widget build(BuildContext context) { return BreakpointConfigurator( configuration: myBreakpoints, - child: GetMaterialApp( - debugShowCheckedModeBanner: false, - localizationsDelegates: [ - FlutterI18nDelegate( - translationLoader: FileTranslationLoader( - fallbackFile: 'de', - basePath: 'i18n', - ), - missingTranslationHandler: (key, locale) { - if (kDebugMode) { - print("--- Missing Key: $key, languageCode: $locale"); - } - }, - ), - GlobalMaterialLocalizations.delegate, - GlobalCupertinoLocalizations.delegate, - GlobalWidgetsLocalizations.delegate, - SfGlobalLocalizations.delegate, - ], - title: 'AmBiTo', - supportedLocales: const [Locale('de')], - locale: const Locale('de'), - builder: FlutterI18n.rootAppBuilder(), - theme: (getTheme(context)).lightThemeData, - darkTheme: (getTheme(context)).darkThemeData, - themeMode: ThemeMode.light, - initialRoute: '/massnahmen', - getPages: [ - GetPage( - name: '/', - page: () => const ActionsPrePage(), - ), - GetPage( - name: '/kalender', - page: () => const CalendarPage(), - ), - GetPage( - name: '/kalender/jahr', - page: () => const CalendarPageYear(), - ), - GetPage( - name: '/massnahmen', - page: () => const ActionsPrePage(), - ), - GetPage( - name: '/massnahmendatenbank', - page: () => const ActionsPage(), - ), - GetPage( - name: '/dashboard', - page: () => DashboardPage( - businessId: prefs.getInt('currentUser') ?? 22, - userId: 0, - ), - ), - GetPage( - name: '/dashboard/meine-massnahmen', - page: () => DashboardPage( - businessId: prefs.getInt('currentUser') ?? 22, - userId: 0, - ), - ), - GetPage( - name: '/dashboard/urkunde', - page: () => DashboardPage( - businessId: prefs.getInt('currentUser') ?? 22, - userId: 0, - ), - ), - GetPage( - name: '/dashboard/flaechen', - page: () => DashboardPage( - businessId: prefs.getInt('currentUser') ?? 22, - userId: 0, - ), - ), - GetPage( - name: '/dashboard/stammdaten', - page: () => DashboardPage( - businessId: prefs.getInt('currentUser') ?? 22, - userId: 0, - ), - ), - GetPage(name: '/massnahme/:id', page: () => const ActionDetailPage()) - ], + child: ChangeNotifierProvider( + create: (_) => ThemeManager(), + child: Consumer( + builder: (context, ThemeManager themeManager, child) { + return GetMaterialApp( + debugShowCheckedModeBanner: false, + localizationsDelegates: [ + FlutterI18nDelegate( + translationLoader: FileTranslationLoader( + fallbackFile: 'de', + basePath: 'i18n', + ), + missingTranslationHandler: (key, locale) { + if (kDebugMode) { + print("--- Missing Key: $key, languageCode: $locale"); + } + }, + ), + GlobalMaterialLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + SfGlobalLocalizations.delegate, + ], + title: 'AmBiTo', + supportedLocales: const [Locale('de')], + locale: const Locale('de'), + builder: FlutterI18n.rootAppBuilder(), + theme: ThemeManager().themeData?.lightThemeData, + darkTheme: ThemeManager().themeData?.darkThemeData, + themeMode: ThemeMode.light, + initialRoute: '/massnahmen', + getPages: [ + GetPage( + name: '/', + page: () => const ActionsPrePage(), + ), + GetPage( + name: '/kalender', + page: () => const CalendarPage(), + ), + GetPage( + name: '/kalender/jahr', + page: () => const CalendarPageYear(), + ), + GetPage( + name: '/massnahmen', + page: () => const ActionsPrePage(), + ), + GetPage( + name: '/massnahmendatenbank', + page: () => const ActionsPage(), + ), + GetPage( + name: '/dashboard', + page: () => DashboardPage( + businessId: prefs.getInt('currentUser') ?? 22, + userId: 0, + ), + ), + GetPage( + name: '/dashboard/meine-massnahmen', + page: () => DashboardPage( + businessId: prefs.getInt('currentUser') ?? 22, + userId: 0, + ), + ), + GetPage( + name: '/dashboard/urkunde', + page: () => DashboardPage( + businessId: prefs.getInt('currentUser') ?? 22, + userId: 0, + ), + ), + GetPage( + name: '/dashboard/flaechen', + page: () => DashboardPage( + businessId: prefs.getInt('currentUser') ?? 22, + userId: 0, + ), + ), + GetPage( + name: '/dashboard/stammdaten', + page: () => DashboardPage( + businessId: prefs.getInt('currentUser') ?? 22, + userId: 0, + ), + ), + GetPage( + name: '/massnahme/neu', + page: () => const ActionsCreatePage(), + ), + GetPage( + name: '/massnahme/:id', page: () => const ActionDetailPage()) + ], + ); + }), ), ); } diff --git a/lib/src/entity/measure/measure.dart b/lib/src/entity/measure/measure.dart index dbe98b6..f5b9752 100644 --- a/lib/src/entity/measure/measure.dart +++ b/lib/src/entity/measure/measure.dart @@ -6,7 +6,7 @@ import 'package:json_annotation/json_annotation.dart'; part 'measure.g.dart'; -@JsonSerializable(explicitToJson: true) +@JsonSerializable(explicitToJson: true, includeIfNull: true) @collection class Measure extends BaseEntity with EntityWithId { Measure(); @@ -160,6 +160,29 @@ extension MeasureExtension on Measure { return image; } + CachedNetworkImageProvider? getFullImageProvider() { + if (files != null && files!.isNotEmpty) { + if (files![0].url != null) { + return CachedNetworkImageProvider(files![0].url!); + } + } + } + + CachedNetworkImage? getFullImage() { + CachedNetworkImage? image; + if (files != null && files!.isNotEmpty) { + if (files![0].url != null) { + image = CachedNetworkImage( + imageUrl: files![0].url!, + placeholder: (context, url) => const CircularProgressIndicator(), + errorWidget: (context, url, error) => const Icon(Icons.error), + fit: BoxFit.cover, + ); + } + } + return image; + } + CachedNetworkImage? getImage() { CachedNetworkImage? image; if (files != null && files!.isNotEmpty) { diff --git a/lib/src/entity/measure/measure_repository.dart b/lib/src/entity/measure/measure_repository.dart index 978b502..4d56528 100644 --- a/lib/src/entity/measure/measure_repository.dart +++ b/lib/src/entity/measure/measure_repository.dart @@ -10,6 +10,40 @@ class MeasureRepository extends BaseDB { @override IsarCollection collection = isar.measures; + Future buildLists() async { + var measures = getAll(); + Map>> lists = {}; + + List props = MeasureSchema.schema.properties; + for (var prop in props) { + if (prop.type == IsarType.objectList) { + lists[prop.name] = []; + } + } + + logger.d(lists); + + int counter = 0; + + for (Measure measure in measures) { + var json = measure.toJson(); + if (counter == 0) { + logger.d(json); + } + + lists.forEach((key, value) { + if (counter == 0) { + logger.d(key); + } + if (json[key] != null) { + logger.d(json[key]); + } + }); + counter++; + } + return true; + } + Future buildMeasureFilters() async { Map> filtersAreaType = {}; Map> filtersMeasureGroup = {}; @@ -111,7 +145,6 @@ class MeasureRepository extends BaseDB { } } } - logger.d(files); return true; } } diff --git a/lib/src/packages/ambito_api/base_api.dart b/lib/src/packages/ambito_api/base_api.dart index d665755..7cfa94b 100644 --- a/lib/src/packages/ambito_api/base_api.dart +++ b/lib/src/packages/ambito_api/base_api.dart @@ -2,8 +2,8 @@ import 'dart:convert'; import 'package:ambito/src/entity/entities.dart'; import 'package:ambito/src/packages/ambito_api/restclient.dart'; -import 'package:flutter_dotenv/flutter_dotenv.dart'; +import '../../../main.dart'; import '../ambito_db/base_db.dart'; class BaseApi { @@ -11,7 +11,7 @@ class BaseApi { init() { // read table ids from .env file... - tables = jsonDecode(dotenv.get('BASEROW_IDS')); + tables = BASEROW_IDS; } Future getContent(String table) async { @@ -26,10 +26,6 @@ class BaseApi { var json = _jsonDecoded(response.body); - //if (table == 'measure') { - // logger.d(json); - //} - var results = json['results']; final repositoryMap = { diff --git a/lib/src/packages/ambito_api/restclient.dart b/lib/src/packages/ambito_api/restclient.dart index 7e9f0b8..30f61d2 100644 --- a/lib/src/packages/ambito_api/restclient.dart +++ b/lib/src/packages/ambito_api/restclient.dart @@ -4,7 +4,6 @@ import 'dart:async'; import 'dart:convert'; import 'package:ambito/main.dart'; -import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:http/http.dart' as http; class RestClient { @@ -20,7 +19,7 @@ class RestClient { var headers = { "Content-Type": contentType, "Accept": accept, - "Authorization": "Token ${dotenv.get('BASEROW_TOKEN')}", + "Authorization": "Token $BASEROW_TOKEN", }; return headers; } diff --git a/lib/src/packages/ambito_formbuilder/ambito_formbuilder.dart b/lib/src/packages/ambito_formbuilder/ambito_formbuilder.dart new file mode 100644 index 0000000..ad9c4d7 --- /dev/null +++ b/lib/src/packages/ambito_formbuilder/ambito_formbuilder.dart @@ -0,0 +1,112 @@ +import 'package:ambito/src/entity/entities.dart'; +import 'package:ambito/src/entity/measure/measure_repository.dart'; +import 'package:ambito/src/extensions/extensions.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_form_builder/flutter_form_builder.dart'; +import 'package:isar/isar.dart'; + +import '../../../main.dart'; + +class AmbitoFormBuilder { + String type = ''; + List fields = []; + + Widget init(BuildContext context, String dbType) { + MeasureRepository().buildLists(); + + switch (dbType) { + case 'Measure': + type = dbType.toLowerCase(); + List props = MeasureSchema.schema.properties; + for (var prop in props) { + switch (prop.type) { + case IsarType.bool: + fields.add(_getBoolInputField(context, prop.name)); + break; + case IsarType.byte: + // TODO: Handle this case. + case IsarType.int: + // TODO: Handle this case. + case IsarType.float: + // TODO: Handle this case. + case IsarType.long: + // TODO: Handle this case. + case IsarType.double: + // TODO: Handle this case. + case IsarType.dateTime: + // TODO: Handle this case. + case IsarType.string: + fields.add(_getTextInputField(context, prop.name)); + break; + case IsarType.object: + logger.d(prop.toJson()); + logger.d(prop.target); + break; + case IsarType.json: + // TODO: Handle this case. + case IsarType.boolList: + // TODO: Handle this case. + case IsarType.byteList: + // TODO: Handle this case. + case IsarType.intList: + // TODO: Handle this case. + case IsarType.floatList: + // TODO: Handle this case. + case IsarType.longList: + // TODO: Handle this case. + case IsarType.doubleList: + // TODO: Handle this case. + case IsarType.dateTimeList: + // TODO: Handle this case. + case IsarType.stringList: + // TODO: Handle this case. + case IsarType.objectList: + //logger.d(prop.target); + break; + } + } + break; + } + return get(); + } + + Widget get() { + return FormBuilder(child: Column(children: fields)); + } + + _getField(BuildContext context, String type, String name) {} + + _getTextInputField(BuildContext context, String name) { + return Padding( + padding: const EdgeInsets.only(bottom: 40), + child: FormBuilderTextField( + name: name, + decoration: + InputDecoration(labelText: context.translate('fields.$type.$name')), + obscureText: false, + ), + ); + } + + _getBoolInputField(BuildContext context, String name) { + return Padding( + padding: const EdgeInsets.only(bottom: 40), + child: FormBuilderSwitch( + name: name, + title: Text(context.translate('fields.$type.$name')), + ), + ); + } + + _getDropdownField(BuildContext context, String name) { + return Padding( + padding: const EdgeInsets.only(bottom: 40), + child: FormBuilderDropdown( + name: name, + decoration: + InputDecoration(labelText: context.translate('fields.$type.$name')), + items: [], + ), + ); + } +} diff --git a/lib/src/packages/ambito_theme/ambito_theme.dart b/lib/src/packages/ambito_theme/ambito_theme.dart index 414a4a0..2250d13 100644 --- a/lib/src/packages/ambito_theme/ambito_theme.dart +++ b/lib/src/packages/ambito_theme/ambito_theme.dart @@ -1,3 +1,4 @@ +import 'package:ambito/src/packages/ambito_notifier/notifier/theme_manager.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:screen_breakpoints/screen_breakpoints.dart'; @@ -51,11 +52,14 @@ final actionAreaFGColors = { AmbitoTheme getTheme(BuildContext context) { var breakpoint = context.breakpoint; if (breakpoint >= myBreakpoints.lg) { + ThemeManager().setTheme(largeTheme); return largeTheme; } if (breakpoint >= myBreakpoints.sm) { + ThemeManager().setTheme(smallTheme); return mediumTheme; } + ThemeManager().setTheme(mediumTheme); return smallTheme; } diff --git a/lib/src/packages/ambito_theme/ambito_theme_large.dart b/lib/src/packages/ambito_theme/ambito_theme_large.dart index 4c475a9..667d4ce 100644 --- a/lib/src/packages/ambito_theme/ambito_theme_large.dart +++ b/lib/src/packages/ambito_theme/ambito_theme_large.dart @@ -28,13 +28,13 @@ class AmbitoThemeLarge extends AmbitoTheme { letterSpacing: 0, ), headlineMedium: GoogleFonts.openSans( - fontSize: 28, + fontSize: 40, height: 1.29, fontWeight: FontWeight.w400, letterSpacing: 0, ), headlineSmall: GoogleFonts.openSans( - fontSize: 24, + fontSize: 32, height: 1.33, fontWeight: FontWeight.w400, letterSpacing: 0, diff --git a/lib/src/packages/ambito_theme/ambito_theme_medium.dart b/lib/src/packages/ambito_theme/ambito_theme_medium.dart index c22705a..5401028 100644 --- a/lib/src/packages/ambito_theme/ambito_theme_medium.dart +++ b/lib/src/packages/ambito_theme/ambito_theme_medium.dart @@ -22,7 +22,7 @@ class AmbitoThemeMedium extends AmbitoTheme { letterSpacing: 0, ), headlineLarge: GoogleFonts.openSans( - fontSize: 44, + fontSize: 40, height: 1.25, fontWeight: FontWeight.w400, letterSpacing: 0, diff --git a/lib/src/pages/actions/actions_page.dart b/lib/src/pages/actions/actions_page.dart index 942ab61..1eb66ec 100644 --- a/lib/src/pages/actions/actions_page.dart +++ b/lib/src/pages/actions/actions_page.dart @@ -311,10 +311,10 @@ class ActionsPageState extends State { return Visibility( visible: visible[massnahme.id] ?? false, child: InkWell( - onHover: (hovered) {}, onTap: () async { Get.toNamed('/massnahme/${massnahme.id}'); }, + onHover: (hovered) {}, highlightColor: Colors.transparent, splashColor: Colors.transparent, focusColor: Colors.transparent, diff --git a/lib/src/pages/actions/actions_pre_page.dart b/lib/src/pages/actions/actions_pre_page.dart index bc72c3a..cdd292a 100644 --- a/lib/src/pages/actions/actions_pre_page.dart +++ b/lib/src/pages/actions/actions_pre_page.dart @@ -44,7 +44,11 @@ class ActionsPrePageState extends State { setState(() {}); }); }, - onHover: (value) {}, + onHover: (hovered) {}, + highlightColor: Colors.transparent, + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, child: SizedBox( width: 262, height: 380, @@ -64,8 +68,7 @@ class ActionsPrePageState extends State { padding: const EdgeInsets.only(left: 16, right: 16), child: Text( filter.name!, - style: largeTheme - .currentThemeData.textTheme.headlineMedium + style: largeTheme.currentThemeData.textTheme.labelMedium ?.copyWith( color: actionAreaFGColors[filter.name!], fontWeight: FontWeight.bold, @@ -148,20 +151,26 @@ class ActionsPrePageState extends State { children: cards, ), theme.verticalSpacerMax, - TextButton( - onPressed: () async { + InkWell( + onHover: (hovered) {}, + highlightColor: Colors.transparent, + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + onTap: () async { await prefs.setString('selected_areaType', ''); await Get.toNamed('/massnahmendatenbank'); }, child: Container( decoration: BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(8)), + borderRadius: + const BorderRadius.all(Radius.circular(8)), color: theme.currentColorScheme.onSurface.withOpacity(.1), ), width: Breakpoint.fromContext(context).width, child: Padding( - padding: EdgeInsets.all(20), + padding: const EdgeInsets.all(20), child: Text( 'Alle Maßnahmen anzeigen', style: theme.headlineMedium.copyWith( diff --git a/lib/src/pages/actions/create/action_create_page.dart b/lib/src/pages/actions/create/action_create_page.dart new file mode 100644 index 0000000..6c85990 --- /dev/null +++ b/lib/src/pages/actions/create/action_create_page.dart @@ -0,0 +1,76 @@ +import 'package:ambito/src/packages/ambito_formbuilder/ambito_formbuilder.dart'; +import 'package:flutter/material.dart'; +import 'package:screen_breakpoints/screen_breakpoints.dart'; + +import '../../../packages/ambito_theme/ambito_theme.dart'; +import '../../../widgets/appbar/ambito_appbar.dart'; +import '../../ambito_page.dart'; + +class ActionsCreatePage extends AmbitoPage { + const ActionsCreatePage({super.key}); + + @override + final String path = 'massnahmen'; + @override + final String title = 'Maßnamen'; + + @override + State createState() => ActionsCreatePageState(); +} + +class ActionsCreatePageState extends State { + Widget form = const Center( + child: CircularProgressIndicator(), + ); + + @override + void initState() { + super.initState(); + } + + @override + Widget build(BuildContext context) { + final AmbitoTheme theme = getTheme(context); + form = AmbitoFormBuilder().init(context, 'Measure'); + + return Scaffold( + appBar: AmbitoAppbar( + links: const ['dashboard', 'massnahmen'], + breakpoint: Breakpoint.fromContext(context), + ), + body: BreakpointBuilder(builder: ( + context, + breakpoint, + configuration, + ) { + return SingleChildScrollView( + child: Center( + child: SizedBox( + width: Breakpoint.fromContext(context).width, + child: Column( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(breakpoint.toString()), + Text(theme.toString()), + theme.verticalSpacerMax, + Text( + 'Neue Maßnahme anlegen', + textAlign: TextAlign.start, + style: theme.currentThemeData.textTheme.headlineLarge + ?.copyWith( + color: theme.currentColorScheme.onSurface, + ), + ), + theme.verticalSpacerMax, + form, + ], + ), + ), + ), + ); + }), + ); + } +} diff --git a/lib/src/pages/actions/detail/action_detail_page.dart b/lib/src/pages/actions/detail/action_detail_page.dart index 775ecb3..c45610b 100644 --- a/lib/src/pages/actions/detail/action_detail_page.dart +++ b/lib/src/pages/actions/detail/action_detail_page.dart @@ -5,7 +5,7 @@ import 'package:flutter_breadcrumb/flutter_breadcrumb.dart'; import 'package:get/get.dart'; import 'package:screen_breakpoints/screen_breakpoints.dart'; -import '../../../../main.dart'; +import '../../../packages/ambito_theme/ambito_theme.dart'; import '../../../widgets/appbar/ambito_appbar.dart'; import '../../ambito_page.dart'; import 'cards/_cards.dart'; @@ -35,60 +35,8 @@ class ActionDetailPageState extends State { void initState() { id = Get.parameters['id'] ?? ''; if (id != '') { - massnahme = MeasureRepository().get(int.parse(id)) as Measure; setState(() { - if (massnahme != null) { - contentItems = [ - DescriptionCard( - massnahme: massnahme!, - ), - largeTheme.verticalSpacer, - BackgroundCard( - massnahme: massnahme!, - ), - largeTheme.verticalSpacer, - PresetsCard( - massnahme: massnahme!, - ), - largeTheme.verticalSpacer, - BiodiverisityCard( - massnahme: massnahme!, - ), - largeTheme.verticalSpacer, - CreationCard( - massnahme: massnahme!, - ), - largeTheme.verticalSpacer, - MaintenanceCard( - massnahme: massnahme!, - ), - largeTheme.verticalSpacer, - FundingCard( - massnahme: massnahme!, - ), - largeTheme.verticalSpacer, - ]; - - sidebarItems = [ - AdvisorCard( - massnahme: massnahme!, - ), - largeTheme.verticalSpacer, - MaterialCard( - massnahme: massnahme!, - ), - largeTheme.verticalSpacer, - FactsheetCard( - massnahme: massnahme!, - ), - largeTheme.verticalSpacer, - ReviewCard( - massnahme: massnahme!, - ), - ]; - - content = _buildInfoPage(massnahme!); - } + massnahme = MeasureRepository().get(int.parse(id)) as Measure; }); } @@ -102,11 +50,18 @@ class ActionDetailPageState extends State { links: const ['dashboard', 'massnahmen'], breakpoint: Breakpoint.fromContext(context), ), - body: content, + body: _buildInfoPage(context, massnahme), ); } - Widget _buildInfoPage(Measure massnahme) { + Widget _buildInfoPage(BuildContext context, Measure? massnahme) { + final AmbitoTheme theme = getTheme(context); + + if (massnahme == null) { + return const Center( + child: CircularProgressIndicator(), + ); + } return Column( children: [ Align( @@ -118,7 +73,10 @@ class ActionDetailPageState extends State { onPressed: () { Get.offAndToNamed('/'); }, - child: const Text('Start'), + child: Text( + 'Start', + style: theme.bodyMedium, + ), ), ), BreadCrumbItem( @@ -126,7 +84,10 @@ class ActionDetailPageState extends State { onPressed: () { Get.offAndToNamed('/massnahmendatenbank'); }, - child: const Text('Massnahmen'), + child: Text( + 'Massnahmen', + style: theme.bodyMedium, + ), ), ), BreadCrumbItem( @@ -138,64 +99,89 @@ class ActionDetailPageState extends State { divider: const Icon(Icons.chevron_right), ), ), - Container( + SizedBox( width: double.infinity, - height: 400, - color: largeTheme.currentColorScheme.primary, - child: massnahme.getImage(), + height: 300, + child: massnahme.getFullImage(), ), Expanded( child: SingleChildScrollView( - child: Column( - children: [ - largeTheme.verticalSpacer, - Align( - alignment: Alignment.centerLeft, - child: Text( - massnahme.name!, - style: largeTheme.currentThemeData.textTheme.titleLarge, + child: SizedBox( + width: 1152, + child: Column( + children: [ + theme.verticalSpacer, + Align( + alignment: Alignment.centerLeft, + child: Text( + massnahme.name!, + style: theme.currentThemeData.textTheme.headlineMedium, + ), ), - ), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Expanded( - child: SingleChildScrollView( - child: ListView.builder( - shrinkWrap: true, - itemCount: contentItems.length, - itemBuilder: (BuildContext context, int index) { - return contentItems[index]; - }), + theme.verticalSpacer, + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + child: Column(children: [ + DescriptionCard( + massnahme: massnahme!, + ), + theme.verticalSpacer, + BackgroundCard( + massnahme: massnahme!, + ), + theme.verticalSpacer, + PresetsCard( + massnahme: massnahme!, + ), + theme.verticalSpacer, + BiodiverisityCard( + massnahme: massnahme!, + ), + theme.verticalSpacer, + CreationCard( + massnahme: massnahme!, + ), + theme.verticalSpacer, + MaintenanceCard( + massnahme: massnahme!, + ), + theme.verticalSpacer, + FundingCard( + massnahme: massnahme!, + ), + theme.verticalSpacer, + ]), ), - ), - largeTheme.horizontalSpacer, - SizedBox( - width: 300, - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - AdvisorCard( - massnahme: massnahme, - ), - largeTheme.verticalSpacer, - MaterialCard( - massnahme: massnahme, - ), - largeTheme.verticalSpacer, - FactsheetCard( - massnahme: massnahme, - ), - largeTheme.verticalSpacer, - ReviewCard( - massnahme: massnahme, - ), - ], + theme.horizontalSpacer, + SizedBox( + width: 300, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + AdvisorCard( + massnahme: massnahme, + ), + theme.verticalSpacer, + MaterialCard( + massnahme: massnahme, + ), + theme.verticalSpacer, + FactsheetCard( + massnahme: massnahme, + ), + theme.verticalSpacer, + ReviewCard( + massnahme: massnahme, + ), + ], + ), ), - ), - ], - ), - ], + ], + ), + ], + ), ), ), ), diff --git a/lib/src/pages/actions/detail/cards/description_card.dart b/lib/src/pages/actions/detail/cards/description_card.dart index 76e1d86..af275d9 100644 --- a/lib/src/pages/actions/detail/cards/description_card.dart +++ b/lib/src/pages/actions/detail/cards/description_card.dart @@ -1,4 +1,4 @@ -import 'package:ambito/src/extensions/extensions.dart'; +import 'package:expansion_tile_card/expansion_tile_card.dart'; import 'package:flutter/material.dart'; import '../../../../entity/entities.dart'; @@ -15,30 +15,25 @@ class DescriptionCard extends StatelessWidget { return SizedBox( width: double.infinity, - child: Card( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(0), - ), - elevation: 0, - color: theme.currentColorScheme.secondary, - child: Padding( - padding: const EdgeInsets.all(16), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - context.translate('page.actionDetailPage.description.title'), - style: theme.currentThemeData.textTheme.titleMedium, - ), - theme.verticalSpacer, - Text( - massnahme.factsheetDefinition ?? '', - style: theme.currentThemeData.textTheme.bodyMedium, - ), - ], + child: ExpansionTileCard( + elevation: 0, + baseColor: theme.currentColorScheme.secondary, + title: Text( + massnahme.name ?? '', + style: theme.currentThemeData.textTheme.headlineMedium, ), - ), - ), + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + theme.verticalSpacer, + Text( + massnahme.factsheetDefinition ?? '', + style: theme.currentThemeData.textTheme.bodyMedium, + ), + ], + ), + ]), ); } } diff --git a/lib/src/pages/dashboard/dashboard_page.dart b/lib/src/pages/dashboard/dashboard_page.dart index aab30a7..a7d413a 100644 --- a/lib/src/pages/dashboard/dashboard_page.dart +++ b/lib/src/pages/dashboard/dashboard_page.dart @@ -186,9 +186,8 @@ class DashboardPageState extends State { SizedBox( width: 532, child: Card( - elevation: 4, - surfaceTintColor: - greenColors['primary']?.withOpacity(0.3), + elevation: 0, + color: greenColors['primary']?.withOpacity(0.3), child: Padding( padding: const EdgeInsets.all(16), child: Column( @@ -385,8 +384,8 @@ class DashboardPageState extends State { return SizedBox( width: 532, child: Card( - elevation: 4, - surfaceTintColor: Colors.white, + elevation: 0, + color: Theme.of(context).colorScheme.outline.withOpacity(.1), child: Padding( padding: const EdgeInsets.all(16), child: Column( diff --git a/lib/src/widgets/appbar/ambito_appbar.dart b/lib/src/widgets/appbar/ambito_appbar.dart index 564bf80..5f8c659 100644 --- a/lib/src/widgets/appbar/ambito_appbar.dart +++ b/lib/src/widgets/appbar/ambito_appbar.dart @@ -1,5 +1,6 @@ import 'package:ambito/main.dart'; import 'package:ambito/src/extensions/extensions.dart'; +import 'package:ambito/src/packages/ambito_theme/ambito_theme.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:screen_breakpoints/screen_breakpoints.dart'; @@ -15,7 +16,7 @@ class AmbitoAppbar extends AppBar { child: InkWell( onHover: (value) {}, onTap: () { - Get.toNamed('/'); + Get.toNamed('/dashboard'); }, child: Image.asset( 'assets/images/logo_trans.png', @@ -63,12 +64,27 @@ class AmbitoAppbar extends AppBar { ), ), if (breakpoint >= myBreakpoints.md) - IconButton( - onPressed: () {}, + PopupMenuButton( + onSelected: (item) {}, icon: Icon( Icons.person, color: largeTheme.currentColorScheme.primary, ), + itemBuilder: ( + BuildContext context, + ) { + return [ + PopupMenuItem( + onTap: () async { + Get.toNamed('/massnahme/neu'); + }, + child: Text( + 'Neue Maßnahme', + style: getTheme(context).bodyMedium, + ), + ), + ]; + }, ), const SizedBox( width: 30, @@ -78,8 +94,6 @@ class AmbitoAppbar extends AppBar { static Widget _links(BuildContext context, List? links) { List linkButtons = []; - logger.d(context.breakpoint.breakpoint); - logger.d(myBreakpoints.sm?.breakpoint); if (context.breakpoint.breakpoint >= myBreakpoints.md!.breakpoint && links != null && links.isNotEmpty) { diff --git a/pubspec.lock b/pubspec.lock index ef5616c..cd08bdf 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -286,6 +286,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.0" + expansion_tile_card: + dependency: "direct main" + description: + name: expansion_tile_card + sha256: "27ce4cb518f00e21d0f2309aaa6462b26b148e93cee2029a73088cecf42b1eb0" + url: "https://pub.dev" + source: hosted + version: "3.0.0" fake_async: dependency: transitive description: @@ -351,10 +359,10 @@ packages: dependency: transitive description: name: flutter_compass - sha256: be642484f9f6975c1c6edff568281b001f2f1e604de27ecea18d97eebbdef22f + sha256: "1b4d7e6c95a675ec8482b5c9c9ccf1ebf0ced3dbec59dce28ad609da953de850" url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.8.1" flutter_dotenv: dependency: "direct main" description: @@ -446,10 +454,10 @@ packages: dependency: "direct main" description: name: geolocator - sha256: "0ec58b731776bc43097fcf751f79681b6a8f6d3bc737c94779fe9f1ad73c1a81" + sha256: d2ec66329cab29cb297d51d96c067d457ca519dca8589665fa0b82ebacb7dbe4 url: "https://pub.dev" source: hosted - version: "13.0.1" + version: "13.0.2" geolocator_android: dependency: transitive description: @@ -462,10 +470,10 @@ packages: dependency: transitive description: name: geolocator_apple - sha256: bc2aca02423ad429cb0556121f56e60360a2b7d694c8570301d06ea0c00732fd + sha256: "6154ea2682563f69fc0125762ed7e91e7ed85d0b9776595653be33918e064807" url: "https://pub.dev" source: hosted - version: "2.3.7" + version: "2.3.8+1" geolocator_platform_interface: dependency: transitive description: @@ -694,10 +702,10 @@ packages: dependency: "direct main" description: name: logger - sha256: "697d067c60c20999686a0add96cf6aba723b3aa1f83ecf806a8097231529ec32" + sha256: be4b23575aac7ebf01f225a241eb7f6b5641eeaf43c6a8613510fc2f8cf187d1 url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.5.0" logging: dependency: transitive description: @@ -1187,34 +1195,34 @@ packages: dependency: "direct main" description: name: syncfusion_flutter_calendar - sha256: "769d3bbf8743922d74b242a968366661bd7b2973b3d34af9b9bc865874a520d9" + sha256: "00703dd2e154ad534e7e898958f1e4c1573b15a19448c0b183365f4b9779f054" url: "https://pub.dev" source: hosted - version: "27.1.58" + version: "27.2.2" syncfusion_flutter_core: dependency: transitive description: name: syncfusion_flutter_core - sha256: "31d2ddf410ee41abb3ecf85b7b6e8e1563307ad52ee784ddd91337e30280f715" + sha256: "225b1cc135549bb4eef096d63b7323c30ee61c4b095c7e8a14bf9333e243d84b" url: "https://pub.dev" source: hosted - version: "27.1.58" + version: "27.2.2" syncfusion_flutter_datepicker: dependency: "direct main" description: name: syncfusion_flutter_datepicker - sha256: e25797401bec43cd64c475150f87150e8bc3e67212d4d1273ff35483ea793a8b + sha256: e2e2a97b033390f0791316c6019743991aa598563d09f603ba13230cd50b8905 url: "https://pub.dev" source: hosted - version: "27.1.58" + version: "27.2.2" syncfusion_localizations: dependency: "direct main" description: name: syncfusion_localizations - sha256: a74b674f8d691927bebc10d19966539ecc92fa3b472c85df57e565f43e18483d + sha256: c821c64ce38126ce1f5e5a36bc433157d49a03f04c19b45878cb82cca6267fde url: "https://pub.dev" source: hosted - version: "27.1.58" + version: "27.2.2" synchronized: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 8185692..a454242 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -55,6 +55,7 @@ dependencies: image_downloader_web: ^2.0.6 screen_breakpoints: ^1.0.5 provider: ^6.1.2 + expansion_tile_card: ^3.0.0 dev_dependencies: @@ -66,7 +67,8 @@ dev_dependencies: flutter: uses-material-design: true assets: - - .env + - i18n/ + - images/ - assets/ - - assets/i18n/ - assets/images/ + - assets/i18n/