fix(customer-portal): white-label SOCFortress branding (#877) (#878)
Remove the "Contact SOCFortress" item from the user menu and replace the "Made with ... By SOCFortress" footer with a generic copyright that uses the configured portal title. Co-authored-by: taylor_socfortress <taylor.walton@socfortress.co> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
taylorcopilot committed
May 17, 2026 at 17:03 UTC
ce4af7ec1516c08fa5ef3748335cf03c44e5aeed
2 files changed
+7
-34
customer-portal/src/app-layouts/common/MainFooter.vue
+6
-18
@@ -2,35 +2,23 @@
2
<footer class="footer py-4" :class="{ boxed }">
3
<div class="wrap flex items-center justify-end gap-3">
4
<div class="copy">
5
- Made with
6
- <Icon :size="22" class="text-primary mx-1">
7
- <BrainIcon />
8
- </Icon>
9
- By
10
- <a
11
- href="https://www.socfortress.co/"
12
- target="_blank"
13
- alt="SOCFortress"
14
- rel="noopener noreferrer"
15
- class="mx-1"
16
- >
17
- SOCFortress
18
- </a>
19
- All rights Reserved © Copyright {{ year }}
5
+ <template v-if="portalTitle">© Copyright {{ year }} {{ portalTitle }}</template>
6
+ <template v-else>© Copyright {{ year }}</template>
7
</div>
8
</div>
9
</footer>
10
</template>
11
12
<script lang="ts" setup>
26
-import { ref } from "vue"
27
-import BrainIcon from "@/assets/icons/brain-icon.svg"
28
-import Icon from "@/components/common/Icon.vue"
13
+import { computed, ref } from "vue"
14
+import { usePortalSettingsStore } from "@/stores/portalSettings"
15
16
const { boxed } = defineProps<{
17
boxed: boolean
18
}>()
19
20
+const portalSettingsStore = usePortalSettingsStore()
21
+const portalTitle = computed(() => portalSettingsStore.portalTitle)
22
const year = ref(new Date().getFullYear())
23
</script>
24
customer-portal/src/app-layouts/common/Toolbar/Avatar.vue
+1
-16
@@ -6,14 +6,13 @@
6
7
<script lang="ts" setup>
8
import { NAvatar, NDropdown } from "naive-ui"
9
-import { h, ref } from "vue"
9
+import { ref } from "vue"
10
import { useRouter } from "vue-router"
11
import { useAuthStore } from "@/stores/auth"
12
import { renderIcon } from "@/utils"
13
14
const UserIcon = "ion:person-outline"
15
const LogoutIcon = "ion:log-out-outline"
16
-const ContactIcon = "ic:outline-alternate-email"
16
17
const router = useRouter()
18
const authStore = useAuthStore()
@@ -26,20 +25,6 @@ const options = ref([
25
key: "route-Profile",
26
icon: renderIcon(UserIcon)
27
},
29
- {
30
- label: () =>
31
- h(
32
- "a",
33
- {
34
- href: "https://www.socfortress.co/contact_form.html",
35
- target: "_blank",
36
- rel: "noopenner noreferrer"
37
- },
38
- "Contact SOCFortress"
39
- ),
40
- key: "contact-socfortress",
41
- icon: renderIcon(ContactIcon)
42
- },
28
{
29
label: "Logout",
30
key: "route-Logout",