Browse Source

remove relative URL references in different target because mobile chokes

ui-fixes-2025-06-w2
Trent Larson 6 days ago
parent
commit
b3ca6c9d91
  1. 2
      .env.development
  2. 1
      src/components/HiddenDidDialog.vue
  3. 10
      src/components/ProjectIcon.vue
  4. 3
      src/views/ClaimView.vue
  5. 2
      src/views/ConfirmGiftView.vue
  6. 3
      src/views/ContactsView.vue
  7. 9
      src/views/HelpView.vue
  8. 29
      src/views/OnboardMeetingSetupView.vue
  9. 1
      src/views/ProjectViewView.vue

2
.env.development

@ -2,7 +2,7 @@
# iOS doesn't like spaces in the app title. # iOS doesn't like spaces in the app title.
TIME_SAFARI_APP_TITLE="TimeSafari_Dev" TIME_SAFARI_APP_TITLE="TimeSafari_Dev"
VITE_APP_SERVER=http://localhost:3000 VITE_APP_SERVER=http://localhost:8080
# This is the claim ID for actions in the BVC project, with the JWT ID on this environment (not production). # This is the claim ID for actions in the BVC project, with the JWT ID on this environment (not production).
VITE_BVC_MEETUPS_PROJECT_CLAIM_ID=https://endorser.ch/entity/01HWE8FWHQ1YGP7GFZYYPS272F VITE_BVC_MEETUPS_PROJECT_CLAIM_ID=https://endorser.ch/entity/01HWE8FWHQ1YGP7GFZYYPS272F
VITE_DEFAULT_ENDORSER_API_SERVER=http://localhost:3000 VITE_DEFAULT_ENDORSER_API_SERVER=http://localhost:3000

1
src/components/HiddenDidDialog.vue

@ -50,7 +50,6 @@
<span v-if="!serverUtil.isEmptyOrHiddenDid(visDid)"> <span v-if="!serverUtil.isEmptyOrHiddenDid(visDid)">
<a <a
:href="`/did/${visDid}`" :href="`/did/${visDid}`"
target="_blank"
class="text-blue-500" class="text-blue-500"
> >
<font-awesome <font-awesome

10
src/components/ProjectIcon.vue

@ -1,17 +1,17 @@
<!-- eslint-disable vue/no-v-html --> <!-- eslint-disable vue/no-v-html -->
<template> <template>
<a <a
v-if="linkToFull && imageUrl" v-if="linkToFullImage && imageUrl"
:href="imageUrl" :href="imageUrl"
target="_blank" target="_blank"
class="h-full w-full object-contain" class="h-full w-full object-contain"
> >
<div class="h-full w-full object-contain" v-html="generateIdenticon()" /> <div class="h-full w-full object-contain" v-html="generateIcon()" />
</a> </a>
<div <div
v-else v-else
class="h-full w-full object-contain" class="h-full w-full object-contain"
v-html="generateIdenticon()" v-html="generateIcon()"
/> />
</template> </template>
<script lang="ts"> <script lang="ts">
@ -35,9 +35,9 @@ export default class ProjectIcon extends Vue {
@Prop entityId = ""; @Prop entityId = "";
@Prop iconSize = 0; @Prop iconSize = 0;
@Prop imageUrl = ""; @Prop imageUrl = "";
@Prop linkToFull = false; @Prop linkToFullImage = false;
generateIdenticon() { generateIcon() {
if (this.imageUrl) { if (this.imageUrl) {
return `<img src="${this.imageUrl}" class="w-full h-full object-contain" />`; return `<img src="${this.imageUrl}" class="w-full h-full object-contain" />`;
} else { } else {

3
src/views/ClaimView.vue

@ -294,7 +294,6 @@
<span v-if="!serverUtil.isEmptyOrHiddenDid(confirmerId)"> <span v-if="!serverUtil.isEmptyOrHiddenDid(confirmerId)">
<a <a
:href="`/did/${confirmerId}`" :href="`/did/${confirmerId}`"
target="_blank"
class="text-blue-500" class="text-blue-500"
> >
<font-awesome <font-awesome
@ -335,7 +334,6 @@
<span v-if="!serverUtil.isEmptyOrHiddenDid(confsVisibleTo)"> <span v-if="!serverUtil.isEmptyOrHiddenDid(confsVisibleTo)">
<a <a
:href="`/did/${confsVisibleTo}`" :href="`/did/${confsVisibleTo}`"
target="_blank"
class="text-blue-500" class="text-blue-500"
> >
<font-awesome <font-awesome
@ -453,7 +451,6 @@
<span v-if="!serverUtil.isEmptyOrHiddenDid(visDid)"> <span v-if="!serverUtil.isEmptyOrHiddenDid(visDid)">
<a <a
:href="`/did/${visDid}`" :href="`/did/${visDid}`"
target="_blank"
class="text-blue-500" class="text-blue-500"
> >
<font-awesome <font-awesome

2
src/views/ConfirmGiftView.vue

@ -105,7 +105,6 @@
encodeURIComponent(giveDetails?.fulfillsPlanHandleId || '') encodeURIComponent(giveDetails?.fulfillsPlanHandleId || '')
" "
class="text-blue-500 mt-2 cursor-pointer" class="text-blue-500 mt-2 cursor-pointer"
target="_blank"
> >
This fulfills a bigger plan This fulfills a bigger plan
<font-awesome <font-awesome
@ -129,7 +128,6 @@
encodeURIComponent(giveDetails?.fulfillsHandleId || '') encodeURIComponent(giveDetails?.fulfillsHandleId || '')
" "
class="text-blue-500 mt-2 cursor-pointer" class="text-blue-500 mt-2 cursor-pointer"
target="_blank"
> >
This fulfills This fulfills
{{ {{

3
src/views/ContactsView.vue

@ -12,7 +12,7 @@
<span /> <span />
<span> <span>
<a <a
href="/help-onboarding" :href="APP_SERVER + '/help-onboarding'"
target="_blank" target="_blank"
class="text-xs uppercase bg-gradient-to-b from-blue-400 to-blue-700 shadow-[inset_0_-1px_0_0_rgba(0,0,0,0.5)] text-white px-1.5 py-1 rounded-md ml-1" class="text-xs uppercase bg-gradient-to-b from-blue-400 to-blue-700 shadow-[inset_0_-1px_0_0_rgba(0,0,0,0.5)] text-white px-1.5 py-1 rounded-md ml-1"
> >
@ -443,6 +443,7 @@ export default class ContactsView extends Vue {
showGiveConfirmed = true; showGiveConfirmed = true;
showLargeIdenticon?: Contact; showLargeIdenticon?: Contact;
APP_SERVER = APP_SERVER;
AppString = AppString; AppString = AppString;
libsUtil = libsUtil; libsUtil = libsUtil;

9
src/views/HelpView.vue

@ -211,7 +211,7 @@
<h2 class="text-xl font-semibold">How do I add someone else?</h2> <h2 class="text-xl font-semibold">How do I add someone else?</h2>
<p> <p>
<a href="/help-onboarding" target="_blank" class="text-blue-500"> <a :href="APP_SERVER + '/help-onboarding'" target="_blank" class="text-blue-500">
Use these instructions. Use these instructions.
</a> </a>
To start scanning, go to the To start scanning, go to the
@ -579,7 +579,7 @@ import { useClipboard } from "@vueuse/core";
import * as Package from "../../package.json"; import * as Package from "../../package.json";
import QuickNav from "../components/QuickNav.vue"; import QuickNav from "../components/QuickNav.vue";
import { NotificationIface, USE_DEXIE_DB } from "../constants/app"; import { APP_SERVER, NotificationIface, USE_DEXIE_DB } from "../constants/app";
import * as databaseUtil from "../db/databaseUtil"; import * as databaseUtil from "../db/databaseUtil";
import { import {
retrieveSettingsForActiveAccount, retrieveSettingsForActiveAccount,
@ -601,6 +601,11 @@ export default class HelpView extends Vue {
showDidCopy = false; showDidCopy = false;
showVerifiable = false; showVerifiable = false;
APP_SERVER = APP_SERVER;
// Ideally, we put no functionality in here, especially in the setup,
// because we never want this page to have a chance of throwing an error.
// call fn, copy text to the clipboard, then redo fn after 2 seconds // call fn, copy text to the clipboard, then redo fn after 2 seconds
doCopyTwoSecRedo(text: string, fn: () => void) { doCopyTwoSecRedo(text: string, fn: () => void) {
fn(); fn();

29
src/views/OnboardMeetingSetupView.vue

@ -215,27 +215,26 @@
v-if="!isLoading && currentMeeting != null && !!currentMeeting.password" v-if="!isLoading && currentMeeting != null && !!currentMeeting.password"
class="mt-8 p-4 border rounded-lg bg-white shadow" class="mt-8 p-4 border rounded-lg bg-white shadow"
> >
<div class="flex items-center justify-between mb-4"> <div class="flex items-center justify-between">
<h2 class="text-2xl">Meeting Members</h2> <h2 class="text-2xl">Meeting Members</h2>
</div> </div>
<div <div class="mt-4">
class="flex items-center gap-2 cursor-pointer text-blue-600" &bull; Page for Members
title="Click to copy link for members" <span
@click="copyMembersLinkToClipboard" class="ml-4 cursor-pointer text-blue-600"
> title="Click to copy link for members"
<span> @click="copyMembersLinkToClipboard"
&bull; Page for Members >
<font-awesome icon="link" /> <font-awesome icon="link" />
</span> </span>
<router-link <a
v-if="!!currentMeeting.password" v-if="!!currentMeeting.password"
:to="onboardMeetingMembersLink()" :href="onboardMeetingMembersLink()"
class="inline-block text-blue-600 ml-4" class="ml-4 text-blue-600"
target="_blank" target="_blank"
@click.stop
> >
<font-awesome icon="external-link" /> <font-awesome icon="external-link" />
</router-link> </a>
</div> </div>
<MembersList <MembersList
@ -286,7 +285,7 @@ import {
} from "../libs/endorserServer"; } from "../libs/endorserServer";
import { encryptMessage } from "../libs/crypto"; import { encryptMessage } from "../libs/crypto";
import { logger } from "../utils/logger"; import { logger } from "../utils/logger";
import { USE_DEXIE_DB } from "@/constants/app"; import { APP_SERVER, USE_DEXIE_DB } from "@/constants/app";
interface ServerMeeting { interface ServerMeeting {
groupId: number; // from the server groupId: number; // from the server
name: string; // to & from the server name: string; // to & from the server
@ -721,7 +720,7 @@ export default class OnboardMeetingView extends Vue {
onboardMeetingMembersLink(): string { onboardMeetingMembersLink(): string {
if (this.currentMeeting) { if (this.currentMeeting) {
return `/onboard-meeting-members/${this.currentMeeting?.groupId}?password=${encodeURIComponent( return `${APP_SERVER}/onboard-meeting-members/${this.currentMeeting?.groupId}?password=${encodeURIComponent(
this.currentMeeting?.password || "", this.currentMeeting?.password || "",
)}`; )}`;
} }

1
src/views/ProjectViewView.vue

@ -56,7 +56,6 @@
<span v-if="!serverUtil.isEmptyOrHiddenDid(issuer)"> <span v-if="!serverUtil.isEmptyOrHiddenDid(issuer)">
<a <a
:href="`/did/${issuer}`" :href="`/did/${issuer}`"
target="_blank"
class="text-blue-500" class="text-blue-500"
> >
<font-awesome <font-awesome

Loading…
Cancel
Save