3939 {{ __('More') }}
4040 </span >
4141 </div >
42- <Button v-if =" isModerator" variant =" ghost" @click =" openPageModal()" >
42+ <Button
43+ v-if =" isModerator && !readOnlyMode"
44+ variant =" ghost"
45+ @click =" openPageModal()"
46+ >
4347 <template #icon >
4448 <Plus class =" h-4 w-4 text-ink-gray-7 stroke-1.5" />
4549 </template >
6367 </div >
6468 </div >
6569 <div class =" m-2 flex flex-col gap-1" >
70+ <div
71+ v-if =" readOnlyMode && !sidebarStore.isSidebarCollapsed"
72+ class =" z-10 m-2 bg-surface-modal py-2.5 px-3 text-xs text-ink-gray-7 leading-5 rounded-md"
73+ >
74+ {{
75+ __(
76+ 'This site is being updated. You will not be able to make any changes. Full access will be restored shortly.'
77+ )
78+ }}
79+ </div >
6680 <TrialBanner
6781 v-if ="
6882 userResource.data?.is_system_manager && userResource.data?.is_fc_site
7488 :isSidebarCollapsed =" sidebarStore.isSidebarCollapsed"
7589 appName =" learning"
7690 />
77- <SidebarLink
78- v-if =" isOnboardingStepsCompleted"
79- :link =" {
80- label: __('Help'),
81- }"
82- :isCollapsed =" sidebarStore.isSidebarCollapsed"
83- @click ="
84- () => {
85- showHelpModal = minimize ? true : !showHelpModal
86- minimize = !showHelpModal
87- }
91+
92+ <div
93+ class =" flex items-center mt-4"
94+ :class ="
95+ sidebarStore.isSidebarCollapsed ? 'flex-col space-y-3' : 'flex-row'
8896 "
8997 >
90- <template #icon >
91- <span class =" grid h-5 w-6 flex-shrink-0 place-items-center" >
92- <CircleHelp class =" h-4 w-4 stroke-1.5" />
93- </span >
94- </template >
95- </SidebarLink >
96- <SidebarLink
97- :link =" {
98- label: sidebarStore.isSidebarCollapsed ? 'Expand' : 'Collapse',
99- }"
100- :isCollapsed =" sidebarStore.isSidebarCollapsed"
101- @click =" toggleSidebar()"
102- >
103- <template #icon >
104- <span class =" grid h-5 w-6 flex-shrink-0 place-items-center" >
105- <CollapseSidebar
106- class =" h-4 w-4 text-ink-gray-7 duration-300 ease-in-out"
107- :class =" {
108- '[transform:rotateY(180deg)]': sidebarStore.isSidebarCollapsed,
109- }"
98+ <div
99+ class =" flex items-center flex-1"
100+ :class ="
101+ sidebarStore.isSidebarCollapsed
102+ ? 'flex-col space-y-3'
103+ : 'flex-row space-x-3'
104+ "
105+ >
106+ <Tooltip v-if =" readOnlyMode && sidebarStore.isSidebarCollapsed" >
107+ <CircleAlert
108+ class =" size-4 stroke-1.5 text-ink-gray-7 cursor-pointer"
110109 />
111- </span >
112- </template >
113- </SidebarLink >
110+ <template #body >
111+ <div
112+ class =" max-w-[30ch] rounded bg-surface-gray-7 px-2 py-1 text-center text-p-xs text-ink-white shadow-xl"
113+ >
114+ {{
115+ __(
116+ 'This site is being updated. You will not be able to make any changes. Full access will be restored shortly.'
117+ )
118+ }}
119+ </div >
120+ </template >
121+ </Tooltip >
122+ <Tooltip :text =" __('Powered by Learning')" >
123+ <Zap
124+ class =" size-4 stroke-1.5 text-ink-gray-7 cursor-pointer"
125+ @click =" redirectToWebsite()"
126+ />
127+ </Tooltip >
128+ <Tooltip :text =" __('Help')" >
129+ <CircleHelp
130+ class =" size-4 stroke-1.5 text-ink-gray-7 cursor-pointer"
131+ @click ="
132+ () => {
133+ showHelpModal = minimize ? true : !showHelpModal
134+ minimize = !showHelpModal
135+ }
136+ "
137+ />
138+ </Tooltip >
139+ </div >
140+ <Tooltip
141+ :text ="
142+ sidebarStore.isSidebarCollapsed ? __('Expand') : __('Collapse')
143+ "
144+ >
145+ <CollapseSidebar
146+ class =" size-4 text-ink-gray-7 duration-300 stroke-1.5 ease-in-out cursor-pointer"
147+ :class =" {
148+ '[transform:rotateY(180deg)]': sidebarStore.isSidebarCollapsed,
149+ }"
150+ @click =" toggleSidebar()"
151+ />
152+ </Tooltip >
153+ </div >
114154 </div >
115155 <HelpModal
116156 v-if =" showOnboarding && showHelpModal"
@@ -148,14 +188,15 @@ import { usersStore } from '@/stores/user'
148188import { sessionStore } from ' @/stores/session'
149189import { useSidebar } from ' @/stores/sidebar'
150190import { useSettings } from ' @/stores/settings'
151- import { Button , createResource } from ' frappe-ui'
191+ import { Button , createResource , Tooltip } from ' frappe-ui'
152192import PageModal from ' @/components/Modals/PageModal.vue'
153193import { capture } from ' @/telemetry'
154194import LMSLogo from ' @/components/Icons/LMSLogo.vue'
155195import { useRouter } from ' vue-router'
156196import InviteIcon from ' ./Icons/InviteIcon.vue'
157197import {
158198 BookOpen ,
199+ CircleAlert ,
159200 ChevronRight ,
160201 Plus ,
161202 CircleHelp ,
@@ -164,6 +205,7 @@ import {
164205 UserPlus ,
165206 Users ,
166207 BookText ,
208+ Zap ,
167209} from ' lucide-vue-next'
168210import {
169211 TrialBanner ,
@@ -192,6 +234,7 @@ const currentStep = ref({})
192234const router = useRouter ()
193235let onboardingDetails
194236let isOnboardingStepsCompleted = false
237+ const readOnlyMode = window .read_only_mode
195238const iconProps = {
196239 strokeWidth: 1.5 ,
197240 width: 16 ,
@@ -578,4 +621,8 @@ watch(userResource, () => {
578621 setUpOnboarding ()
579622 }
580623})
624+
625+ const redirectToWebsite = () => {
626+ window .open (' https://frappe.io/learning' , ' _blank' )
627+ }
581628< / script>
0 commit comments