diff --git a/crm/www/crm.py b/crm/www/crm.py index 22b2ed58..98871d14 100644 --- a/crm/www/crm.py +++ b/crm/www/crm.py @@ -3,6 +3,7 @@ from __future__ import unicode_literals import frappe +from frappe.utils import cint from frappe.utils.telemetry import capture no_cache = 1 @@ -32,6 +33,7 @@ def get_boot(): "site_name": frappe.local.site, "read_only_mode": frappe.flags.read_only, "csrf_token": frappe.sessions.get_csrf_token(), + "setup_complete": cint(frappe.get_system_settings("setup_complete")) } ) diff --git a/frappe-ui b/frappe-ui index b2dbd419..ee1e7d91 160000 --- a/frappe-ui +++ b/frappe-ui @@ -1 +1 @@ -Subproject commit b2dbd41936905aa46b18d3c22e5d09a7b08a9b98 +Subproject commit ee1e7d915a3147d387c419cd317d5982d060fd14 diff --git a/frontend/package.json b/frontend/package.json index 56683963..ecd3f0c9 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -14,7 +14,7 @@ "@vueuse/core": "^10.3.0", "@vueuse/integrations": "^10.3.0", "feather-icons": "^4.28.0", - "frappe-ui": "^0.1.71", + "frappe-ui": "^0.1.74", "gemoji": "^8.1.0", "lodash": "^4.17.21", "mime": "^4.0.1", @@ -22,7 +22,6 @@ "socket.io-client": "^4.7.2", "sortablejs": "^1.15.0", "tailwindcss": "^3.3.3", - "vite": "^4.4.9", "vue": "^3.4.12", "vue-router": "^4.2.2", "vuedraggable": "^4.1.0" diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 61e774c9..b735b073 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -12,11 +12,11 @@ import { sessionStore as session } from '@/stores/session' import { Toasts } from 'frappe-ui' import { computed, defineAsyncComponent } from 'vue' -const MobileLayout = defineAsyncComponent(() => - import('./components/Layouts/MobileLayout.vue') +const MobileLayout = defineAsyncComponent( + () => import('./components/Layouts/MobileLayout.vue'), ) -const DesktopLayout = defineAsyncComponent(() => - import('./components/Layouts/DesktopLayout.vue') +const DesktopLayout = defineAsyncComponent( + () => import('./components/Layouts/DesktopLayout.vue'), ) const Layout = computed(() => { if (window.innerWidth < 640) { diff --git a/frontend/src/components/Layouts/AppSidebar.vue b/frontend/src/components/Layouts/AppSidebar.vue index ada04c1d..e958952a 100644 --- a/frontend/src/components/Layouts/AppSidebar.vue +++ b/frontend/src/components/Layouts/AppSidebar.vue @@ -71,6 +71,7 @@ +
+ @@ -108,14 +110,15 @@ import CollapseSidebar from '@/components/Icons/CollapseSidebar.vue' import NotificationsIcon from '@/components/Icons/NotificationsIcon.vue' import SidebarLink from '@/components/SidebarLink.vue' import Notifications from '@/components/Notifications.vue' +import Settings from '@/components/Settings/Settings.vue' import { viewsStore } from '@/stores/views' import { unreadNotificationsCount, notificationsStore, } from '@/stores/notifications' -import { FeatherIcon } from 'frappe-ui' +import { FeatherIcon, TrialBanner, createResource } from 'frappe-ui' import { useStorage } from '@vueuse/core' -import { computed, h } from 'vue' +import { computed, h, provide } from 'vue' const { getPinnedViews, getPublicViews } = viewsStore() const { toggle: toggleNotificationPanel } = notificationsStore() @@ -226,4 +229,13 @@ function getIcon(routeName, icon) { return PinIcon } } + +const isFCSite = createResource({ + url: 'frappe.integrations.frappe_providers.frappecloud_billing.is_fc_site', + cache: 'isFCSite', + auto: true, + transform: (data) => Boolean(data), +}) + +provide('isFCSite', isFCSite) diff --git a/frontend/src/components/Settings/SettingsModal.vue b/frontend/src/components/Settings/Settings.vue similarity index 75% rename from frontend/src/components/Settings/SettingsModal.vue rename to frontend/src/components/Settings/Settings.vue index 2bbe9922..16ab8959 100644 --- a/frontend/src/components/Settings/SettingsModal.vue +++ b/frontend/src/components/Settings/Settings.vue @@ -1,5 +1,9 @@