diff --git a/.DS_Store b/.DS_Store index 48de152b..5f75c679 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/docker-compose.yml b/docker-compose.yml index caa26dfe..7cc45238 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -130,6 +130,7 @@ services: - mih-api-hub #============== API Hub ==================================================================== mih-api-hub: + platform: linux/amd64 build: context: ./mih_api_hub target: builder @@ -172,22 +173,6 @@ services: - mih-network depends_on: - mih-db - #============== PHP My Admin ==================================================================== - # phpmyadmin: - # platform: linux/amd64 - # image: phpmyadmin/phpmyadmin - # container_name: MIH-phpmyadmin - # environment: - # PMA_HOST: mih-db - # PMA_PORT: 3306 - # PMA_ARBITRARY: - # networks: - # - mih-network - # restart: always - # ports: - # - 8081:80 - # depends_on: - # - mih-db #============== Minio File Storage ==================================================================== mih-minio: platform: linux/amd64 @@ -208,7 +193,7 @@ services: #============== MIH-Monitor Portainer ==================================================================== mih-monitor: container_name: mih-monitor - image: portainer/portainer-ce:2.20.3 + image: portainer/portainer-ce:lts ports: - "127.0.0.1:9444:9443" volumes: @@ -220,7 +205,7 @@ services: #============== MIH-AI Ollama ==================================================================== mih-ai: container_name: mih-ai - image: ollama/ollama:0.21.2 + image: ollama/ollama:latest ports: - "127.0.0.1:11434:11434" volumes: diff --git a/mih_api_hub/Dockerfile b/mih_api_hub/Dockerfile index dfd1da3d..7bb69304 100644 --- a/mih_api_hub/Dockerfile +++ b/mih_api_hub/Dockerfile @@ -5,7 +5,7 @@ WORKDIR /app COPY requirements.txt ./ RUN --mount=type=cache,target=/root/.cache/pip \ - pip --default-timeout=120 install -r requirements.txt + pip --default-timeout=120 install -r requirements.txt # COPY . ./app @@ -30,4 +30,4 @@ RUN --mount=type=cache,target=/root/.cache/pip \ # COPY ./requirements.txt ./ -# RUN pip3 install --no-cache-dir -r requirements.txt \ No newline at end of file +# RUN pip3 install --no-cache-dir -r requirements.txt diff --git a/mih_ui/lib/mih_config/mih_go_router.dart b/mih_ui/lib/mih_config/mih_go_router.dart index d4487056..2d5db6b4 100644 --- a/mih_ui/lib/mih_config/mih_go_router.dart +++ b/mih_ui/lib/mih_config/mih_go_router.dart @@ -3,6 +3,7 @@ import 'package:go_router/go_router.dart'; import 'package:mzansi_innovation_hub/mih_packages/mih_file_viewer/components/mih_print_prevew.dart'; import 'package:mzansi_innovation_hub/mih_objects/arguments.dart'; import 'package:mzansi_innovation_hub/mih_package_components/Example/package_test.dart'; +import 'package:mzansi_innovation_hub/mih_providers/about_mih_provider.dart'; import 'package:mzansi_innovation_hub/mih_providers/mzansi_directory_provider.dart'; import 'package:mzansi_innovation_hub/mih_packages/about_mih/about_mih.dart'; import 'package:mzansi_innovation_hub/mih_packages/access_review/mih_access.dart'; @@ -79,6 +80,8 @@ class MihGoRouter { "/${MihGoRouterPaths.aboutMih}", "/${MihGoRouterPaths.businessProfileView}/:business_id", "/${MihGoRouterPaths.mzansiProfileView}/:username", + MihGoRouterPaths.privacyPolicyExternal, + MihGoRouterPaths.termsOfServiceExternal, ]; KenLogger.success( "Redirect Check: ${state.fullPath}, isUserSignedIn: $isUserSignedIn"); @@ -88,6 +91,8 @@ class MihGoRouter { if (isUserSignedIn && unauthenticatedPaths.contains(state.fullPath) && state.fullPath != "/${MihGoRouterPaths.aboutMih}" && + state.fullPath != MihGoRouterPaths.privacyPolicyExternal && + state.fullPath != MihGoRouterPaths.termsOfServiceExternal && state.fullPath != "/${MihGoRouterPaths.mzansiProfileView}/:username" && state.fullPath != @@ -132,6 +137,32 @@ class MihGoRouter { return MihAuthPasswordReset(token: token); }, ), + GoRoute( + name: "mihPrivacyPolicy", + path: MihGoRouterPaths.privacyPolicyExternal, + builder: (BuildContext context, GoRouterState state) { + KenLogger.success("MihGoRouter: provacyPolicy"); + WidgetsBinding.instance.addPostFrameCallback((_) { + if (context.mounted) { + context.read().setToolIndex(1); + } + }); + return AboutMih(); + }, + ), + GoRoute( + name: "mihTermsOfService", + path: MihGoRouterPaths.termsOfServiceExternal, + builder: (BuildContext context, GoRouterState state) { + KenLogger.success("MihGoRouter: termsOfService"); + WidgetsBinding.instance.addPostFrameCallback((_) { + if (context.mounted) { + context.read().setToolIndex(2); + } + }); + return AboutMih(); + }, + ), // ========================== MIH Home ================================== GoRoute( name: "mihHome", diff --git a/mih_ui/lib/mih_config/mih_theme.dart b/mih_ui/lib/mih_config/mih_theme.dart index ed884841..aeb468be 100644 --- a/mih_ui/lib/mih_config/mih_theme.dart +++ b/mih_ui/lib/mih_config/mih_theme.dart @@ -114,10 +114,6 @@ class MihTheme { mode; } - String getLatestVersion() { - return latestVersion; - } - ThemeData getThemeData() { return getData(mode == "Dark"); } diff --git a/mih_ui/lib/mih_packages/about_mih/about_mih.dart b/mih_ui/lib/mih_packages/about_mih/about_mih.dart index cfdb07ef..2bebe75a 100644 --- a/mih_ui/lib/mih_packages/about_mih/about_mih.dart +++ b/mih_ui/lib/mih_packages/about_mih/about_mih.dart @@ -55,6 +55,7 @@ class _AboutMihState extends State { context.goNamed( 'mihHome', ); + context.read().setToolIndex(0); FocusScope.of(context).unfocus(); }, ); diff --git a/mih_ui/lib/mih_packages/about_mih/package_tools/mih_info.dart b/mih_ui/lib/mih_packages/about_mih/package_tools/mih_info.dart index 7bd6f402..44493a26 100644 --- a/mih_ui/lib/mih_packages/about_mih/package_tools/mih_info.dart +++ b/mih_ui/lib/mih_packages/about_mih/package_tools/mih_info.dart @@ -4,12 +4,14 @@ import 'package:mih_package_toolkit/mih_package_toolkit.dart'; import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/mih_objects/profile_link.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_profile_links.dart'; +import 'package:mzansi_innovation_hub/mih_providers/about_mih_provider.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_business_details_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_install_services.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_user_services.dart'; +import 'package:provider/provider.dart'; import 'package:url_launcher/url_launcher.dart'; import 'package:redacted/redacted.dart'; import 'package:share_plus/share_plus.dart'; @@ -341,7 +343,7 @@ class _MihInfoState extends State { ); } - Widget aboutHeadings() { + Widget aboutHeadings(AboutMihProvider aboutProvider) { return Column( children: [ SizedBox( @@ -365,7 +367,7 @@ class _MihInfoState extends State { ), ), Text( - "MIH App Version: ${MzansiInnovationHub.of(context)!.theme.getLatestVersion()}", + "MIH App Version: ${aboutProvider.version}", textAlign: TextAlign.center, style: const TextStyle( fontWeight: FontWeight.normal, @@ -852,21 +854,27 @@ class _MihInfoState extends State { @override Widget build(BuildContext context) { - return MihPackageToolBody( - backgroundColor: MihColors.primary(), - borderOn: false, - bodyItem: getBody(), - ); + return Consumer(builder: ( + BuildContext context, + AboutMihProvider aboutProvider, + Widget? child, + ) { + return MihPackageToolBody( + backgroundColor: MihColors.primary(), + borderOn: false, + bodyItem: getBody(aboutProvider), + ); + }); } - Widget getBody() { + Widget getBody(AboutMihProvider aboutProvider) { return Stack( children: [ MihSingleChildScroll( scrollbarOn: true, child: Column( children: [ - aboutHeadings(), + aboutHeadings(aboutProvider), communityCounter(), callToActionsButtons(), // mihDivider(), diff --git a/mih_ui/lib/mih_packages/mih_home/components/mih_app_drawer.dart b/mih_ui/lib/mih_packages/mih_home/components/mih_app_drawer.dart index 6757941c..1f0def0d 100644 --- a/mih_ui/lib/mih_packages/mih_home/components/mih_app_drawer.dart +++ b/mih_ui/lib/mih_packages/mih_home/components/mih_app_drawer.dart @@ -237,15 +237,8 @@ class _MIHAppDrawerState extends State { ], ), onTap: () { - WidgetsBinding.instance - .addPostFrameCallback((_) async { - context - .read() - .setToolIndex(1); - }); context.goNamed( - "aboutMih", - extra: true, + "mihPrivacyPolicy", ); }, ), @@ -268,15 +261,8 @@ class _MIHAppDrawerState extends State { ], ), onTap: () { - WidgetsBinding.instance - .addPostFrameCallback((_) async { - context - .read() - .setToolIndex(2); - }); context.goNamed( - "aboutMih", - extra: true, + "mihTermsOfService", ); }, ), diff --git a/mih_ui/lib/mih_providers/about_mih_provider.dart b/mih_ui/lib/mih_providers/about_mih_provider.dart index 18b2e985..e5da12d0 100644 --- a/mih_ui/lib/mih_providers/about_mih_provider.dart +++ b/mih_ui/lib/mih_providers/about_mih_provider.dart @@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart'; class AboutMihProvider extends ChangeNotifier { int toolIndex; + String version = "1.3.0"; AboutMihProvider({ this.toolIndex = 0, diff --git a/mih_ui/pubspec.yaml b/mih_ui/pubspec.yaml index 7d4988b0..97bff19e 100644 --- a/mih_ui/pubspec.yaml +++ b/mih_ui/pubspec.yaml @@ -1,7 +1,7 @@ name: mzansi_innovation_hub description: "" publish_to: "none" # Remove this line if you wish to publish to pub.dev -version: 1.2.7+132 +version: 1.3.0+133 environment: sdk: ">=3.5.3 <4.0.0"