Compare commits
	
		
			26 Commits
		
	
	
		
			test-andro
			...
			ed91853dcf
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| ed91853dcf | |||
| 3f9efeee3e   | |||
| d592a81b7c | |||
| 145214e6cc | |||
| 4271ec7c21   | |||
| 1deffe8ee4 | |||
| bcac82b860   | |||
| 9da7515042 | |||
| a088d90c6a   | |||
| 9481498725   | |||
| 3d28254ae1 | |||
| 1666c25d13 | |||
| a3ebf712f9   | |||
| 0ea3f3a118 | |||
| 9d80e68a4e | |||
| 9ce77897d8   | |||
| bf4afb03e6 | |||
| f134e6d4c3 | |||
| 97a3a24378   | |||
| 7f5a524d4b | |||
| dbd3a5841b   | |||
| 60cf0b641d   | |||
| bfadb1c2b2   | |||
| 0548c6cbea | |||
| 8dda8ec0dd | |||
| 5725c3e7da | 
| @@ -1,12 +1,11 @@ | ||||
| /.dioxus/ | ||||
| /.git/ | ||||
| /.github/ | ||||
| /debug/ | ||||
| /node_modules/ | ||||
| /static/ | ||||
| /target/ | ||||
| /.git | ||||
| /.github | ||||
| /node_modules | ||||
| /target | ||||
|  | ||||
| .dockerignore | ||||
| /docker-compose-dev.yml | ||||
| /docker-compose-prod.yml | ||||
| /docker/dev/app/Dockerfile | ||||
| /docker/prod/app/Dockerfile | ||||
| /docker-compose-dev.yaml | ||||
| /docker-compose-prod.yaml | ||||
| /docker-compose.yaml | ||||
| /docker/dev/*/Dockerfile | ||||
| /docker/prod/*/Dockerfile | ||||
|   | ||||
							
								
								
									
										8
									
								
								.github/workflows/shellcheck-check.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/shellcheck-check.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -25,4 +25,10 @@ jobs: | ||||
|           fetch-depth: 0 | ||||
|       - name: ShellCheck check | ||||
|         # https://www.shellcheck.net/wiki/Recursiveness | ||||
|         run: find . -type f -name "*.sh" -print0 | xargs -0 shellcheck | ||||
|         run: | | ||||
|           if find . -type f -name "*.sh" -print0 | grep -qz .; then | ||||
|             find . -type f -name "*.sh" -print0 | xargs -0 shellcheck | ||||
|             exit 0 | ||||
|           else | ||||
|             echo "No shell scripts found. Skipping ShellCheck." | ||||
|           fi | ||||
|   | ||||
							
								
								
									
										15
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,10 +1,9 @@ | ||||
| /target/ | ||||
| /dist/ | ||||
| /static/ | ||||
| /.dioxus/ | ||||
| /node_modules/ | ||||
| /node_modules | ||||
| /target | ||||
|  | ||||
| **/*.rs.bk | ||||
| /**/*.rs.bk | ||||
| /.DS_Store | ||||
| /.env | ||||
| /.env.prod | ||||
|  | ||||
| .env | ||||
| .env.prod | ||||
| /docker-compose.yaml | ||||
|   | ||||
							
								
								
									
										63
									
								
								.idea/codeStyles/Project.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								.idea/codeStyles/Project.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,63 @@ | ||||
| <component name="ProjectCodeStyleConfiguration"> | ||||
|   <code_scheme name="Project" version="173"> | ||||
|     <HTMLCodeStyleSettings> | ||||
|       <option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" /> | ||||
|     </HTMLCodeStyleSettings> | ||||
|     <JSCodeStyleSettings version="0"> | ||||
|       <option name="FORCE_SEMICOLON_STYLE" value="true" /> | ||||
|       <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" /> | ||||
|       <option name="FORCE_QUOTE_STYlE" value="true" /> | ||||
|       <option name="ENFORCE_TRAILING_COMMA" value="Remove" /> | ||||
|       <option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" /> | ||||
|       <option name="SPACES_WITHIN_IMPORTS" value="true" /> | ||||
|     </JSCodeStyleSettings> | ||||
|     <TypeScriptCodeStyleSettings version="0"> | ||||
|       <option name="FORCE_SEMICOLON_STYLE" value="true" /> | ||||
|       <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" /> | ||||
|       <option name="FORCE_QUOTE_STYlE" value="true" /> | ||||
|       <option name="ENFORCE_TRAILING_COMMA" value="Remove" /> | ||||
|       <option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" /> | ||||
|       <option name="SPACES_WITHIN_IMPORTS" value="true" /> | ||||
|     </TypeScriptCodeStyleSettings> | ||||
|     <VueCodeStyleSettings> | ||||
|       <option name="INTERPOLATION_NEW_LINE_AFTER_START_DELIMITER" value="false" /> | ||||
|       <option name="INTERPOLATION_NEW_LINE_BEFORE_END_DELIMITER" value="false" /> | ||||
|     </VueCodeStyleSettings> | ||||
|     <codeStyleSettings language="HTML"> | ||||
|       <option name="SOFT_MARGINS" value="80" /> | ||||
|       <indentOptions> | ||||
|         <option name="INDENT_SIZE" value="2" /> | ||||
|         <option name="CONTINUATION_INDENT_SIZE" value="2" /> | ||||
|         <option name="TAB_SIZE" value="2" /> | ||||
|       </indentOptions> | ||||
|     </codeStyleSettings> | ||||
|     <codeStyleSettings language="JavaScript"> | ||||
|       <option name="SOFT_MARGINS" value="80" /> | ||||
|       <indentOptions> | ||||
|         <option name="INDENT_SIZE" value="2" /> | ||||
|         <option name="CONTINUATION_INDENT_SIZE" value="2" /> | ||||
|         <option name="TAB_SIZE" value="2" /> | ||||
|       </indentOptions> | ||||
|     </codeStyleSettings> | ||||
|     <codeStyleSettings language="Markdown"> | ||||
|       <option name="RIGHT_MARGIN" value="80" /> | ||||
|     </codeStyleSettings> | ||||
|     <codeStyleSettings language="TypeScript"> | ||||
|       <option name="SOFT_MARGINS" value="80" /> | ||||
|       <indentOptions> | ||||
|         <option name="INDENT_SIZE" value="2" /> | ||||
|         <option name="CONTINUATION_INDENT_SIZE" value="2" /> | ||||
|         <option name="TAB_SIZE" value="2" /> | ||||
|       </indentOptions> | ||||
|     </codeStyleSettings> | ||||
|     <codeStyleSettings language="Vue"> | ||||
|       <option name="SOFT_MARGINS" value="80" /> | ||||
|       <indentOptions> | ||||
|         <option name="CONTINUATION_INDENT_SIZE" value="2" /> | ||||
|       </indentOptions> | ||||
|     </codeStyleSettings> | ||||
|     <codeStyleSettings language="yaml"> | ||||
|       <option name="SOFT_MARGINS" value="80" /> | ||||
|     </codeStyleSettings> | ||||
|   </code_scheme> | ||||
| </component> | ||||
							
								
								
									
										5
									
								
								.idea/codeStyles/codeStyleConfig.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.idea/codeStyles/codeStyleConfig.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| <component name="ProjectCodeStyleConfiguration"> | ||||
|   <state> | ||||
|     <option name="USE_PER_PROJECT_SETTINGS" value="true" /> | ||||
|   </state> | ||||
| </component> | ||||
							
								
								
									
										2
									
								
								.idea/dataSources.local.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.idea/dataSources.local.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="dataSourceStorageLocal" created-in="RR-243.22562.230"> | ||||
|   <component name="dataSourceStorageLocal" created-in="RR-243.23654.116"> | ||||
|     <data-source name="todo_baggins@localhost" uuid="1658668c-c2b8-426d-a22f-16fbad9eff0b"> | ||||
|       <database-info product="PostgreSQL" version="16.4 (Debian 16.4-1.pgdg120+1)" jdbc-version="4.2" driver-name="PostgreSQL JDBC Driver" driver-version="42.6.0" dbms="POSTGRES" exact-version="16.4" exact-driver-version="42.6"> | ||||
|         <identifier-quote-string>"</identifier-quote-string> | ||||
|   | ||||
							
								
								
									
										1070
									
								
								.idea/dataSources/1658668c-c2b8-426d-a22f-16fbad9eff0b.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1070
									
								
								.idea/dataSources/1658668c-c2b8-426d-a22f-16fbad9eff0b.xml
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,2 +1,2 @@ | ||||
| #n:public | ||||
| !<md> [785, 0, null, null, -2147483648, -2147483648] | ||||
| !<md> [946, 0, null, null, -2147483648, -2147483648] | ||||
|   | ||||
							
								
								
									
										203
									
								
								.idea/icon.svg
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										203
									
								
								.idea/icon.svg
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,203 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
|  | ||||
| <svg | ||||
|    width="512" | ||||
|    height="512" | ||||
|    viewBox="0 0 512 512" | ||||
|    version="1.1" | ||||
|    id="svg1" | ||||
|    sodipodi:docname="icon.svg" | ||||
|    inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg"> | ||||
|   <sodipodi:namedview | ||||
|      id="namedview1" | ||||
|      pagecolor="#505050" | ||||
|      bordercolor="#eeeeee" | ||||
|      borderopacity="1" | ||||
|      inkscape:showpageshadow="0" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pagecheckerboard="0" | ||||
|      inkscape:deskcolor="#505050" | ||||
|      inkscape:document-units="px" | ||||
|      inkscape:zoom="1.1020922" | ||||
|      inkscape:cx="188.27826" | ||||
|      inkscape:cy="204.15715" | ||||
|      inkscape:window-width="1920" | ||||
|      inkscape:window-height="1011" | ||||
|      inkscape:window-x="0" | ||||
|      inkscape:window-y="0" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="layer1" /> | ||||
|   <defs | ||||
|      id="defs1"> | ||||
|     <inkscape:path-effect | ||||
|        effect="fillet_chamfer" | ||||
|        id="path-effect2" | ||||
|        is_visible="true" | ||||
|        lpeversion="1" | ||||
|        nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1" | ||||
|        radius="0" | ||||
|        unit="px" | ||||
|        method="auto" | ||||
|        mode="F" | ||||
|        chamfer_steps="1" | ||||
|        flexible="false" | ||||
|        use_knot_distance="true" | ||||
|        apply_no_radius="true" | ||||
|        apply_with_radius="true" | ||||
|        only_selected="false" | ||||
|        hide_knots="false" /> | ||||
|     <inkscape:path-effect | ||||
|        effect="fillet_chamfer" | ||||
|        id="path-effect1" | ||||
|        is_visible="true" | ||||
|        lpeversion="1" | ||||
|        nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1" | ||||
|        radius="0" | ||||
|        unit="px" | ||||
|        method="auto" | ||||
|        mode="F" | ||||
|        chamfer_steps="1" | ||||
|        flexible="false" | ||||
|        use_knot_distance="true" | ||||
|        apply_no_radius="true" | ||||
|        apply_with_radius="true" | ||||
|        only_selected="false" | ||||
|        hide_knots="false" /> | ||||
|   </defs> | ||||
|   <g | ||||
|      inkscape:label="Layer 1" | ||||
|      inkscape:groupmode="layer" | ||||
|      id="layer1"> | ||||
|     <rect | ||||
|        style="display:inline;fill:#27272a;fill-opacity:1;stroke:none;stroke-width:32;stroke-dasharray:none;stroke-opacity:1" | ||||
|        id="rect1" | ||||
|        width="512" | ||||
|        height="512" | ||||
|        x="0" | ||||
|        y="0" | ||||
|        sodipodi:insensitive="true" | ||||
|        inkscape:label="background" | ||||
|        ry="128.00018" | ||||
|        sodipodi:type="rect" | ||||
|        rx="129.98714" /> | ||||
|     <g | ||||
|        id="g17" | ||||
|        inkscape:label="logo" | ||||
|        transform="translate(8)"> | ||||
|       <g | ||||
|          id="g8" | ||||
|          inkscape:label="ring"> | ||||
|         <g | ||||
|            id="g7" | ||||
|            inkscape:label="back"> | ||||
|           <circle | ||||
|              style="fill:#d97706;fill-opacity:1;stroke:#d97706;stroke-width:32;stroke-dasharray:none;stroke-opacity:1" | ||||
|              id="path1" | ||||
|              cx="224" | ||||
|              cy="256" | ||||
|              r="128" | ||||
|              inkscape:label="ring back" /> | ||||
|           <rect | ||||
|              style="fill:#d97706;fill-opacity:1;stroke:none;stroke-width:21.8936;stroke-dasharray:none;stroke-opacity:1" | ||||
|              id="rect2" | ||||
|              width="48" | ||||
|              height="288" | ||||
|              x="224" | ||||
|              y="112" | ||||
|              inkscape:label="rect2" /> | ||||
|         </g> | ||||
|         <g | ||||
|            id="g1" | ||||
|            transform="translate(-4.163147,-0.69235229)" | ||||
|            inkscape:label="front"> | ||||
|           <circle | ||||
|              style="fill:#27272a;fill-opacity:1;stroke:none;stroke-width:32;stroke-dasharray:none;stroke-opacity:1" | ||||
|              id="path1-5-2" | ||||
|              cx="276.16315" | ||||
|              cy="256.69235" | ||||
|              r="128" /> | ||||
|           <circle | ||||
|              style="fill:none;fill-opacity:1;stroke:#fbbf24;stroke-width:32;stroke-dasharray:none;stroke-opacity:1" | ||||
|              id="path1-5" | ||||
|              cx="276.16315" | ||||
|              cy="256.69235" | ||||
|              r="128" /> | ||||
|         </g> | ||||
|       </g> | ||||
|       <g | ||||
|          id="g16" | ||||
|          inkscape:label="tick" | ||||
|          transform="translate(16.000231,-8.3918418e-5)"> | ||||
|         <g | ||||
|            id="g6" | ||||
|            transform="rotate(45,-57.96574,415.4208)" | ||||
|            style="fill:#d97706;fill-opacity:1;stroke:none;stroke-opacity:1" | ||||
|            inkscape:label="back"> | ||||
|           <rect | ||||
|              style="fill:#d97706;fill-opacity:1;stroke:none;stroke-width:32;stroke-dasharray:none;stroke-opacity:1" | ||||
|              id="rect9" | ||||
|              width="32.000458" | ||||
|              height="32" | ||||
|              x="273.94067" | ||||
|              y="210.74516" | ||||
|              transform="rotate(-45,-57.96574,415.4208)" /> | ||||
|           <rect | ||||
|              style="fill:#d97706;fill-opacity:1;stroke:none;stroke-width:32;stroke-dasharray:none;stroke-opacity:1" | ||||
|              id="rect8" | ||||
|              width="32.000458" | ||||
|              height="32" | ||||
|              x="206.05841" | ||||
|              y="233.37257" | ||||
|              transform="rotate(-45,-57.96574,415.4208)" /> | ||||
|           <rect | ||||
|              style="fill:#d97706;fill-opacity:1;stroke:none;stroke-width:32;stroke-dasharray:none;stroke-opacity:1" | ||||
|              id="rect7" | ||||
|              height="16" | ||||
|              x="228.686" | ||||
|              y="285.255" | ||||
|              width="32" | ||||
|              transform="rotate(-45,-57.96574,415.4208)" /> | ||||
|           <rect | ||||
|              style="fill:#d97706;fill-opacity:1;stroke:none;stroke-width:32;stroke-dasharray:none;stroke-opacity:1" | ||||
|              id="rect5" | ||||
|              width="64" | ||||
|              height="32" | ||||
|              x="0" | ||||
|              y="100" /> | ||||
|           <rect | ||||
|              style="fill:#d97706;fill-opacity:1;stroke:none;stroke-width:39.1918;stroke-dasharray:none;stroke-opacity:1" | ||||
|              id="rect6" | ||||
|              width="32" | ||||
|              height="96" | ||||
|              x="32" | ||||
|              y="36" /> | ||||
|         </g> | ||||
|         <g | ||||
|            id="g4" | ||||
|            transform="rotate(45,-41.965512,454.04877)" | ||||
|            style="fill:#fbbf24;fill-opacity:1;stroke:none;stroke-opacity:1" | ||||
|            inkscape:label="front"> | ||||
|           <rect | ||||
|              style="fill:#fbbf24;fill-opacity:1;stroke:none;stroke-width:32;stroke-dasharray:none;stroke-opacity:1" | ||||
|              id="rect3" | ||||
|              width="64" | ||||
|              height="32" | ||||
|              x="0" | ||||
|              y="100" /> | ||||
|           <rect | ||||
|              style="fill:#fbbf24;fill-opacity:1;stroke:none;stroke-width:39.1918;stroke-dasharray:none;stroke-opacity:1" | ||||
|              id="rect4" | ||||
|              width="32" | ||||
|              height="96" | ||||
|              x="32" | ||||
|              y="36" /> | ||||
|         </g> | ||||
|       </g> | ||||
|     </g> | ||||
|   </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 6.4 KiB | 
							
								
								
									
										2
									
								
								.idea/sqldialects.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.idea/sqldialects.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,8 +1,6 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="SqlDialectMappings"> | ||||
|     <file url="file://$PROJECT_DIR$/migrations/00000000000000_diesel_initial_setup/down.sql" dialect="GenericSQL" /> | ||||
|     <file url="file://$PROJECT_DIR$/migrations/00000000000000_diesel_initial_setup/up.sql" dialect="PostgreSQL" /> | ||||
|     <file url="PROJECT" dialect="PostgreSQL" /> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										530
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										530
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										22
									
								
								Cargo.toml
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								Cargo.toml
									
									
									
									
									
								
							| @@ -1,28 +1,28 @@ | ||||
| [package] | ||||
| name = "todo-baggins" | ||||
| version = "0.1.0" | ||||
| authors = ["Matouš Volf <66163112+matous-volf@users.noreply.github.com>"] | ||||
| authors = ["Matouš Volf <git@matousvolf.cz>"] | ||||
| edition = "2021" | ||||
|  | ||||
| # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||||
|  | ||||
| [dependencies] | ||||
| chrono = { version = "0.4.38", features = ["serde", "unstable-locales"] } | ||||
| dioxus = { version = "0.6.0", features = ["fullstack", "router"] } | ||||
| feruca = { version = "0.10.0" } | ||||
| serde = { version = "1.0.208" } | ||||
| serde_json = { version = "1.0.125" } | ||||
| serde_with = { version = "3.9.0", features = ["chrono_0_4"] } | ||||
| tracing = "0.1.40" | ||||
| chrono = { version = "0.4.39", features = ["serde", "unstable-locales"] } | ||||
| dioxus = { version = "0.6.1", features = ["fullstack", "router"] } | ||||
| feruca = { version = "0.10.1" } | ||||
| serde = { version = "1.0.217" } | ||||
| serde_json = { version = "1.0.134" } | ||||
| serde_with = { version = "3.12.0", features = ["chrono_0_4"] } | ||||
| tracing = "0.1.41" | ||||
| unic-langid-impl = { version = "0.9.5", features = ["serde"] } | ||||
| validator = { version = "0.19.0", features = ["derive"] } | ||||
|  | ||||
| diesel = { version = "2.2.2", features = ["chrono", "postgres", "postgres_backend", "serde_json"], optional = true } | ||||
| diesel = { version = "2.2.6", features = ["chrono", "postgres", "postgres_backend", "serde_json"], optional = true } | ||||
| diesel_migrations = { version = "2.2.0", features = ["postgres"], optional = true } | ||||
| dotenvy = { version = "0.15.7", optional = true } | ||||
| time = { version = "0.3.36", optional = true } | ||||
| time = { version = "0.3.37", optional = true } | ||||
|  | ||||
| async-std = { version = "1.12.0", optional = true } | ||||
| async-std = { version = "1.13.0", optional = true } | ||||
| dioxus-i18n = { version = "0.3.0", optional = true } | ||||
| dioxus-query = { version = "0.6.0", optional = true } | ||||
| voca_rs = { version = "1.15.2", optional = true } | ||||
|   | ||||
							
								
								
									
										15
									
								
								Dioxus.toml
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								Dioxus.toml
									
									
									
									
									
								
							| @@ -25,18 +25,3 @@ reload_html = true | ||||
|  | ||||
| # which files or dirs will be watcher monitoring | ||||
| watch_path = ["src", "assets"] | ||||
|  | ||||
| # include `assets` in web platform | ||||
| [web.resource] | ||||
|  | ||||
| # CSS style file | ||||
| style = [] | ||||
|  | ||||
| # Javascript code file | ||||
| script = ["https://kit.fontawesome.com/3c1b409f8f.js"] | ||||
|  | ||||
| [web.resource.dev] | ||||
|  | ||||
| # Javascript code file | ||||
| # serve: [dev-server] only | ||||
| script = [] | ||||
|   | ||||
| @@ -12,11 +12,22 @@ services: | ||||
|       - ./Cargo.toml:/srv/app/Cargo.toml | ||||
|       - ./diesel.toml:/srv/app/diesel.toml | ||||
|       - ./Dioxus.toml:/srv/app/Dioxus.toml | ||||
|       - ./package.json:/srv/app/package.json | ||||
|       - ./package-lock.json:/srv/app/package-lock.json | ||||
|     restart: always | ||||
|     ports: ["8000:8000"] | ||||
|     depends_on: ["db"] | ||||
|     depends_on: ["db", "style-builder"] | ||||
|  | ||||
|   style-builder: | ||||
|     build: | ||||
|       dockerfile: docker/dev/style-builder/Dockerfile | ||||
|     volumes: | ||||
|       - ./assets:/srv/app/assets | ||||
|       - ./src:/srv/app/src | ||||
|       - ./package.json:/srv/app/package.json | ||||
|       - ./package-lock.json:/srv/app/package-lock.json | ||||
|     # To prevent the container from exiting. | ||||
|     # See https://github.com/rails/rails/issues/44048. | ||||
|     tty: true | ||||
|     restart: always | ||||
|  | ||||
|   db: | ||||
|     image: postgres:16.4-bookworm | ||||
|   | ||||
| @@ -1,27 +1,16 @@ | ||||
| # 1.83.0-bookworm | ||||
| FROM rust@sha256:a45bf1f5d9af0a23b26703b3500d70af1abff7f984a7abef5a104b42c02a292b | ||||
|  | ||||
| RUN cargo install dioxus-cli diesel_cli \ | ||||
|  && apt-get update && apt-get install -y --no-install-recommends \ | ||||
|     nodejs=18.19.0+dfsg-6~deb12u2 \ | ||||
|     npm=9.2.0~ds1-1 \ | ||||
|     supervisor=4.2.5-1 \ | ||||
|  && apt-get clean \ | ||||
|  && rm -rf /var/lib/apt/lists/* | ||||
| RUN cargo install dioxus-cli diesel_cli | ||||
|  | ||||
| COPY . /srv/app | ||||
| WORKDIR /srv/app | ||||
|  | ||||
| RUN npm install | ||||
|  | ||||
| COPY docker/dev/app/supervisord.conf /etc/supervisor/conf.d/supervisord.conf | ||||
|  | ||||
| RUN chown -R 1000:1000 /srv/app \ | ||||
|  && chown -R 1000:1000 /usr/local/cargo \ | ||||
|  && mkdir -p /.local/share/dioxus \ | ||||
|  && chown -R 1000:1000 /.local/share/dioxus | ||||
| RUN mkdir -p /.local/share/dioxus \ | ||||
|  && chown -R 1000:1000 /srv/app /usr/local/cargo /.local/share/dioxus | ||||
|  | ||||
| HEALTHCHECK CMD curl --fail -H "Accept: text/html" http://localhost:8000 || exit 1 | ||||
|  | ||||
| USER 1000:1000 | ||||
|  | ||||
| CMD ["sh", "docker/dev/app/entrypoint.sh"] | ||||
| CMD ["dx", "serve", "--addr", "0.0.0.0", "--port", "8000"] | ||||
|   | ||||
| @@ -1,3 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| supervisord -c /etc/supervisor/conf.d/supervisord.conf | ||||
| @@ -1,23 +0,0 @@ | ||||
| [supervisord] | ||||
| nodaemon=true | ||||
| logfile=/dev/null | ||||
| logfile_maxbytes=0 | ||||
| pidfile=/dev/null | ||||
|  | ||||
| [program:npm] | ||||
| command=npm run watch | ||||
| directory=/srv/app | ||||
| autostart=true | ||||
| autorestart=true | ||||
| stdout_logfile=/dev/fd/1 | ||||
| stdout_logfile_maxbytes=0 | ||||
| redirect_stderr=true | ||||
|  | ||||
| [program:dx] | ||||
| command=dx serve --addr 0.0.0.0 --port 8000 | ||||
| directory=/srv/app | ||||
| autostart=true | ||||
| autorestart=true | ||||
| stdout_logfile=/dev/fd/1 | ||||
| stdout_logfile_maxbytes=0 | ||||
| redirect_stderr=true | ||||
							
								
								
									
										15
									
								
								docker/dev/style-builder/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								docker/dev/style-builder/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| # 23-alpine3.21 | ||||
| FROM node@sha256:c61b6b12a3c96373673cd52d7ecee2314e82bca5d541eecf0bc6aee870c8c6f7 | ||||
|  | ||||
| WORKDIR /srv/app | ||||
|  | ||||
| COPY ./package.json ./package.json | ||||
| COPY ./package-lock.json ./package-lock.json | ||||
|  | ||||
| RUN npm install | ||||
|  | ||||
| USER 1000:1000 | ||||
|  | ||||
| #checkov:skip=CKV_DOCKER_2: No need for (or even a simple way to do) a healthcheck. | ||||
|  | ||||
| CMD ["npm", "run", "watch"] | ||||
| @@ -12,7 +12,7 @@ WORKDIR /srv/app | ||||
|  | ||||
| RUN npm install \ | ||||
|  && npm run build \ | ||||
|  && dx build --release | ||||
|  && dx bundle | ||||
|  | ||||
| FROM debian@sha256:b877a1a3fdf02469440f1768cf69c9771338a875b7add5e80c45b756c92ac20a AS runner | ||||
|  | ||||
|   | ||||
| @@ -35,10 +35,11 @@ pub(crate) fn App() -> Element { | ||||
|  | ||||
|     rsx! { | ||||
|         document::Link { rel: "icon", href: FAVICON } | ||||
|         document::Link { rel: "stylesheet", href: TAILWIND_CSS } | ||||
|         document::Link { rel: "stylesheet", href: FONTS_CSS } | ||||
|         document::Link { rel: "stylesheet", href: INPUT_NUMBER_ARROWS_CSS } | ||||
|         document::Link { rel: "stylesheet", href: INPUT_RANGE_CSS } | ||||
|         document::Stylesheet { href: TAILWIND_CSS } | ||||
|         document::Stylesheet { href: FONTS_CSS } | ||||
|         document::Stylesheet { href: INPUT_NUMBER_ARROWS_CSS } | ||||
|         document::Stylesheet { href: INPUT_RANGE_CSS } | ||||
|         document::Script { src: "https://kit.fontawesome.com/3c1b409f8f.js" } | ||||
|  | ||||
|         div { | ||||
|             class: "min-h-screen text-zinc-200 bg-zinc-800 pt-4 pb-36", | ||||
|   | ||||
| @@ -15,7 +15,7 @@ pub(crate) fn TaskListItem(task: TaskWithSubtasks) -> Element { | ||||
|         div { | ||||
|             class: "flex flex-col", | ||||
|             div { | ||||
|                 class: "mt-2 grow font-medium", | ||||
|                 class: "mt-1 grow font-medium", | ||||
|                 {task.task().title()} | ||||
|             }, | ||||
|             div { | ||||
|   | ||||
| @@ -19,7 +19,7 @@ use diesel::prelude::*; | ||||
| use diesel::{ExpressionMethods, OptionalExtension, QueryDsl, RunQueryDsl, SelectableHelper}; | ||||
| use dioxus::prelude::*; | ||||
| #[cfg(feature = "server")] | ||||
| use time::util::days_in_year_month; | ||||
| use time::Month; | ||||
| #[cfg(feature = "server")] | ||||
| use validator::Validate; | ||||
|  | ||||
| @@ -178,10 +178,11 @@ pub(crate) async fn complete_task(task_id: i32) -> Result<Task, ServerFnError<Er | ||||
|                 *date = NaiveDate::from_ymd_opt( | ||||
|                     date.year(), | ||||
|                     date.month(), | ||||
|                     reoccurrence.start_date().day().min(days_in_year_month( | ||||
|                         date.year(), | ||||
|                         (date.month() as u8).try_into().unwrap(), | ||||
|                     ) as u32), | ||||
|                     reoccurrence.start_date().day().min( | ||||
|                         Month::try_from(date.month() as u8) | ||||
|                             .unwrap() | ||||
|                             .length(date.year()) as u32, | ||||
|                     ), | ||||
|                 ) | ||||
|                 .unwrap() | ||||
|             } | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| /** @type {import('tailwindcss').Config} */ | ||||
| /** @type {import("tailwindcss").Config} */ | ||||
| module.exports = { | ||||
|   mode: "all", | ||||
|   content: ["./src/**/*.{rs,html,css}", "./dist/**/*.html"], | ||||
|   content: ["./src/**/*.{rs,html,css}"], | ||||
|   theme: { | ||||
|     fontFamily: { | ||||
|       sans: ["Inter", "sans-serif"], | ||||
|   | ||||
		Reference in New Issue
	
	Block a user