forked from trent_larson/crowd-funder-for-time-pwa
Chore: convert "unnamed" into constant
- "Unnamed/Unknown" simplified into just "Unnamed" - Phrase variations have their own constants
This commit is contained in:
@@ -22,7 +22,7 @@ projects, and special entities with selection. * * @author Matthew Raymer */
|
|||||||
<!-- "Unnamed" entity -->
|
<!-- "Unnamed" entity -->
|
||||||
<SpecialEntityCard
|
<SpecialEntityCard
|
||||||
entity-type="unnamed"
|
entity-type="unnamed"
|
||||||
label="Unnamed"
|
:label="unnamedEntityName"
|
||||||
icon="circle-question"
|
icon="circle-question"
|
||||||
:entity-data="unnamedEntityData"
|
:entity-data="unnamedEntityData"
|
||||||
:notify="notify"
|
:notify="notify"
|
||||||
@@ -83,6 +83,7 @@ import ShowAllCard from "./ShowAllCard.vue";
|
|||||||
import { Contact } from "../db/tables/contacts";
|
import { Contact } from "../db/tables/contacts";
|
||||||
import { PlanData } from "../interfaces/records";
|
import { PlanData } from "../interfaces/records";
|
||||||
import { NotificationIface } from "../constants/app";
|
import { NotificationIface } from "../constants/app";
|
||||||
|
import { UNNAMED_ENTITY_NAME } from "@/constants/entities";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* EntityGrid - Unified grid layout for displaying people or projects
|
* EntityGrid - Unified grid layout for displaying people or projects
|
||||||
@@ -277,10 +278,17 @@ export default class EntityGrid extends Vue {
|
|||||||
get unnamedEntityData(): { did: string; name: string } {
|
get unnamedEntityData(): { did: string; name: string } {
|
||||||
return {
|
return {
|
||||||
did: "",
|
did: "",
|
||||||
name: "Unnamed",
|
name: UNNAMED_ENTITY_NAME,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the unnamed entity name constant
|
||||||
|
*/
|
||||||
|
get unnamedEntityName(): string {
|
||||||
|
return UNNAMED_ENTITY_NAME;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if a person DID is conflicted
|
* Check if a person DID is conflicted
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ import { Component, Prop, Vue } from "vue-facing-decorator";
|
|||||||
import EntityIcon from "./EntityIcon.vue";
|
import EntityIcon from "./EntityIcon.vue";
|
||||||
import ProjectIcon from "./ProjectIcon.vue";
|
import ProjectIcon from "./ProjectIcon.vue";
|
||||||
import { Contact } from "../db/tables/contacts";
|
import { Contact } from "../db/tables/contacts";
|
||||||
|
import { UNNAMED_ENTITY_NAME } from "@/constants/entities";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Entity interface for both person and project entities
|
* Entity interface for both person and project entities
|
||||||
@@ -163,7 +164,7 @@ export default class EntitySummaryButton extends Vue {
|
|||||||
|
|
||||||
// If the entity is the special "Unnamed", use "Unnamed"
|
// If the entity is the special "Unnamed", use "Unnamed"
|
||||||
if (this.entity?.did === "") {
|
if (this.entity?.did === "") {
|
||||||
return "Unnamed";
|
return UNNAMED_ENTITY_NAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the entity does not have a set name, but is not the special "Unnamed", use their DID
|
// If the entity does not have a set name, but is not the special "Unnamed", use their DID
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ import {
|
|||||||
NOTIFY_GIFTED_DETAILS_NO_IDENTIFIER,
|
NOTIFY_GIFTED_DETAILS_NO_IDENTIFIER,
|
||||||
NOTIFY_GIFTED_DETAILS_RECORDING_GIVE,
|
NOTIFY_GIFTED_DETAILS_RECORDING_GIVE,
|
||||||
} from "@/constants/notifications";
|
} from "@/constants/notifications";
|
||||||
|
import { UNNAMED_ENTITY_NAME } from "@/constants/entities";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
components: {
|
components: {
|
||||||
@@ -457,7 +458,7 @@ export default class GiftedDialog extends Vue {
|
|||||||
if (!this.giver || !this.giver.did) {
|
if (!this.giver || !this.giver.did) {
|
||||||
this.giver = {
|
this.giver = {
|
||||||
did: "",
|
did: "",
|
||||||
name: "Unnamed",
|
name: UNNAMED_ENTITY_NAME,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -519,7 +520,7 @@ export default class GiftedDialog extends Vue {
|
|||||||
if (!this.receiver || !this.receiver.did) {
|
if (!this.receiver || !this.receiver.did) {
|
||||||
this.receiver = {
|
this.receiver = {
|
||||||
did: "",
|
did: "",
|
||||||
name: "Unnamed",
|
name: UNNAMED_ENTITY_NAME,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -596,7 +597,7 @@ export default class GiftedDialog extends Vue {
|
|||||||
return { ...contact, name: "You" };
|
return { ...contact, name: "You" };
|
||||||
} else if (!contact.did || contact.did === "") {
|
} else if (!contact.did || contact.did === "") {
|
||||||
// If DID is empty/null, create "Unnamed" entity
|
// If DID is empty/null, create "Unnamed" entity
|
||||||
return { ...contact, name: "Unnamed" };
|
return { ...contact, name: UNNAMED_ENTITY_NAME };
|
||||||
} else {
|
} else {
|
||||||
// Return the contact as-is
|
// Return the contact as-is
|
||||||
return contact;
|
return contact;
|
||||||
|
|||||||
@@ -81,7 +81,7 @@
|
|||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<h3 class="text-lg font-medium">
|
<h3 class="text-lg font-medium">
|
||||||
{{ member.name || "Unnamed Member" }}
|
{{ member.name || unnamedMember }}
|
||||||
</h3>
|
</h3>
|
||||||
<div
|
<div
|
||||||
v-if="!getContactFor(member.did) && member.did !== activeDid"
|
v-if="!getContactFor(member.did) && member.did !== activeDid"
|
||||||
@@ -177,6 +177,7 @@ import {
|
|||||||
NOTIFY_ADD_CONTACT_FIRST,
|
NOTIFY_ADD_CONTACT_FIRST,
|
||||||
NOTIFY_CONTINUE_WITHOUT_ADDING,
|
NOTIFY_CONTINUE_WITHOUT_ADDING,
|
||||||
} from "@/constants/notifications";
|
} from "@/constants/notifications";
|
||||||
|
import { UNNAMED_MEMBER } from "@/constants/entities";
|
||||||
|
|
||||||
interface Member {
|
interface Member {
|
||||||
admitted: boolean;
|
admitted: boolean;
|
||||||
@@ -220,6 +221,13 @@ export default class MembersList extends Vue {
|
|||||||
apiServer = "";
|
apiServer = "";
|
||||||
contacts: Array<Contact> = [];
|
contacts: Array<Contact> = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the unnamed member constant
|
||||||
|
*/
|
||||||
|
get unnamedMember(): string {
|
||||||
|
return UNNAMED_MEMBER;
|
||||||
|
}
|
||||||
|
|
||||||
async created() {
|
async created() {
|
||||||
this.notify = createNotifyHelpers(this.$notify);
|
this.notify = createNotifyHelpers(this.$notify);
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ issuer information. * * @author Matthew Raymer */
|
|||||||
<h3
|
<h3
|
||||||
class="text-xs font-medium text-ellipsis whitespace-nowrap overflow-hidden"
|
class="text-xs font-medium text-ellipsis whitespace-nowrap overflow-hidden"
|
||||||
>
|
>
|
||||||
{{ project.name || "Unnamed Project" }}
|
{{ project.name || unnamedProject }}
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<div class="text-xs text-slate-500 truncate">
|
<div class="text-xs text-slate-500 truncate">
|
||||||
@@ -31,6 +31,7 @@ import ProjectIcon from "./ProjectIcon.vue";
|
|||||||
import { PlanData } from "../interfaces/records";
|
import { PlanData } from "../interfaces/records";
|
||||||
import { Contact } from "../db/tables/contacts";
|
import { Contact } from "../db/tables/contacts";
|
||||||
import { didInfo } from "../libs/endorserServer";
|
import { didInfo } from "../libs/endorserServer";
|
||||||
|
import { UNNAMED_PROJECT } from "@/constants/entities";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ProjectCard - Displays a project entity with selection capability
|
* ProjectCard - Displays a project entity with selection capability
|
||||||
@@ -63,6 +64,13 @@ export default class ProjectCard extends Vue {
|
|||||||
@Prop({ required: true })
|
@Prop({ required: true })
|
||||||
allContacts!: Contact[];
|
allContacts!: Contact[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the unnamed project constant
|
||||||
|
*/
|
||||||
|
get unnamedProject(): string {
|
||||||
|
return UNNAMED_PROJECT;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Computed display name for the project issuer
|
* Computed display name for the project issuer
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -115,6 +115,7 @@ import { urlBase64ToUint8Array } from "../libs/crypto/vc/util";
|
|||||||
import * as libsUtil from "../libs/util";
|
import * as libsUtil from "../libs/util";
|
||||||
import { logger } from "../utils/logger";
|
import { logger } from "../utils/logger";
|
||||||
import { PlatformServiceMixin } from "../utils/PlatformServiceMixin";
|
import { PlatformServiceMixin } from "../utils/PlatformServiceMixin";
|
||||||
|
import { UNNAMED_ENTITY_NAME } from "@/constants/entities";
|
||||||
|
|
||||||
// Example interface for error
|
// Example interface for error
|
||||||
interface ErrorResponse {
|
interface ErrorResponse {
|
||||||
@@ -602,7 +603,7 @@ export default class PushNotificationPermission extends Vue {
|
|||||||
* Returns the default message for direct push
|
* Returns the default message for direct push
|
||||||
*/
|
*/
|
||||||
get notificationMessagePlaceholder(): string {
|
get notificationMessagePlaceholder(): string {
|
||||||
return "Click to share some gratitude with the world -- even if they're unnamed.";
|
return `Click to share some gratitude with the world -- even if they're ${UNNAMED_ENTITY_NAME.toLowerCase()}.`;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
17
src/constants/entities.ts
Normal file
17
src/constants/entities.ts
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
/**
|
||||||
|
* Constants for entity-related strings, particularly for unnamed/unknown person entities
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Core unnamed entity names
|
||||||
|
export const UNNAMED_ENTITY_NAME = "Unnamed";
|
||||||
|
|
||||||
|
// Descriptive phrases for unnamed entities
|
||||||
|
export const SOMEONE_UNNAMED = "Someone Unnamed";
|
||||||
|
export const UNNAMED_MEMBER = "Unnamed Member";
|
||||||
|
export const UNNAMED_PERSON = "That unnamed person";
|
||||||
|
export const UNNAMED_USER = "unnamed user";
|
||||||
|
|
||||||
|
// Project-related unnamed entities
|
||||||
|
export const UNNAMED_PROJECT = "Unnamed Project";
|
||||||
|
|
||||||
|
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
|
import { UNNAMED_PERSON } from "./entities";
|
||||||
|
|
||||||
// Notification message constants for user-facing notifications
|
// Notification message constants for user-facing notifications
|
||||||
// Add new notification messages here as needed
|
// Add new notification messages here as needed
|
||||||
@@ -867,7 +868,7 @@ export const NOTIFY_CONTACT_LINK_COPIED = {
|
|||||||
// Template for registration success message
|
// Template for registration success message
|
||||||
// Used in: ContactsView.vue (register method - registration success with contact name)
|
// Used in: ContactsView.vue (register method - registration success with contact name)
|
||||||
export const getRegisterPersonSuccessMessage = (name?: string): string =>
|
export const getRegisterPersonSuccessMessage = (name?: string): string =>
|
||||||
`${name || "That unnamed person"} ${NOTIFY_REGISTER_PERSON_SUCCESS.message}`;
|
`${name || UNNAMED_PERSON} ${NOTIFY_REGISTER_PERSON_SUCCESS.message}`;
|
||||||
|
|
||||||
// Template for visibility success message
|
// Template for visibility success message
|
||||||
// Used in: ContactsView.vue (setVisibility method - visibility success with contact name)
|
// Used in: ContactsView.vue (setVisibility method - visibility success with contact name)
|
||||||
@@ -1372,7 +1373,7 @@ export function createQRContactAddedMessage(hasVisibility: boolean): string {
|
|||||||
export function createQRRegistrationSuccessMessage(
|
export function createQRRegistrationSuccessMessage(
|
||||||
contactName: string,
|
contactName: string,
|
||||||
): string {
|
): string {
|
||||||
return `${contactName || "That unnamed person"}${NOTIFY_QR_REGISTRATION_SUCCESS.message}`;
|
return `${contactName || UNNAMED_PERSON}${NOTIFY_QR_REGISTRATION_SUCCESS.message}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ContactQRScanShowView.vue timeout constants
|
// ContactQRScanShowView.vue timeout constants
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ import { PlanSummaryRecord } from "../interfaces/records";
|
|||||||
import { logger } from "../utils/logger";
|
import { logger } from "../utils/logger";
|
||||||
import { PlatformServiceFactory } from "@/services/PlatformServiceFactory";
|
import { PlatformServiceFactory } from "@/services/PlatformServiceFactory";
|
||||||
import { APP_SERVER } from "@/constants/app";
|
import { APP_SERVER } from "@/constants/app";
|
||||||
|
import { SOMEONE_UNNAMED } from "@/constants/entities";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Standard context for schema.org data
|
* Standard context for schema.org data
|
||||||
@@ -309,7 +310,7 @@ export function didInfoForContact(
|
|||||||
showDidForVisible: boolean = false,
|
showDidForVisible: boolean = false,
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
): { known: boolean; displayName: string; profileImageUrl?: string } {
|
): { known: boolean; displayName: string; profileImageUrl?: string } {
|
||||||
if (!did) return { displayName: "Someone Unnamed/Unknown", known: false };
|
if (!did) return { displayName: SOMEONE_UNNAMED, known: false };
|
||||||
if (did === activeDid) {
|
if (did === activeDid) {
|
||||||
return { displayName: "You", known: true };
|
return { displayName: "You", known: true };
|
||||||
} else if (contact) {
|
} else if (contact) {
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import { logger } from "../utils/logger";
|
|||||||
import { PlatformServiceFactory } from "../services/PlatformServiceFactory";
|
import { PlatformServiceFactory } from "../services/PlatformServiceFactory";
|
||||||
import { IIdentifier } from "@veramo/core";
|
import { IIdentifier } from "@veramo/core";
|
||||||
import { DEFAULT_ROOT_DERIVATION_PATH } from "./crypto";
|
import { DEFAULT_ROOT_DERIVATION_PATH } from "./crypto";
|
||||||
|
import { UNNAMED_USER } from "@/constants/entities";
|
||||||
|
|
||||||
// Consolidate this with src/utils/PlatformServiceMixin.mapQueryResultToValues
|
// Consolidate this with src/utils/PlatformServiceMixin.mapQueryResultToValues
|
||||||
function mapQueryResultToValues(
|
function mapQueryResultToValues(
|
||||||
@@ -192,7 +193,7 @@ export const nameForContact = (
|
|||||||
): string => {
|
): string => {
|
||||||
return (
|
return (
|
||||||
(contact?.name as string) ||
|
(contact?.name as string) ||
|
||||||
(capitalize ? "This" : "this") + " unnamed user"
|
(capitalize ? "This" : "this") + " " + UNNAMED_USER
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -42,13 +42,13 @@
|
|||||||
icon="circle-question"
|
icon="circle-question"
|
||||||
class="text-slate-400 text-4xl shrink-0"
|
class="text-slate-400 text-4xl shrink-0"
|
||||||
/>
|
/>
|
||||||
<span class="text-ellipsis overflow-hidden italic text-slate-500">(Unnamed/Unknown)</span>
|
<span class="text-ellipsis overflow-hidden italic text-slate-500">{{ unnamedEntityName }}</span>
|
||||||
</span>
|
</span>
|
||||||
<span class="text-right">
|
<span class="text-right">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="block w-full text-center text-sm 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-3 py-1.5 rounded-md"
|
class="block w-full text-center text-sm 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-3 py-1.5 rounded-md"
|
||||||
@click="openDialog({ did: '', name: 'Unnamed' })"
|
@click="openDialog({ did: '', name: unnamedEntityName })"
|
||||||
>
|
>
|
||||||
<font-awesome icon="gift" class="fa-fw"></font-awesome>
|
<font-awesome icon="gift" class="fa-fw"></font-awesome>
|
||||||
</button>
|
</button>
|
||||||
@@ -108,6 +108,7 @@ import { GiverReceiverInputInfo } from "../libs/util";
|
|||||||
import { logger } from "../utils/logger";
|
import { logger } from "../utils/logger";
|
||||||
import { PlatformServiceMixin } from "@/utils/PlatformServiceMixin";
|
import { PlatformServiceMixin } from "@/utils/PlatformServiceMixin";
|
||||||
import { createNotifyHelpers, TIMEOUTS } from "@/utils/notify";
|
import { createNotifyHelpers, TIMEOUTS } from "@/utils/notify";
|
||||||
|
import { UNNAMED_ENTITY_NAME } from "@/constants/entities";
|
||||||
@Component({
|
@Component({
|
||||||
components: { GiftedDialog, QuickNav, EntityIcon },
|
components: { GiftedDialog, QuickNav, EntityIcon },
|
||||||
mixins: [PlatformServiceMixin],
|
mixins: [PlatformServiceMixin],
|
||||||
@@ -246,7 +247,7 @@ export default class ContactGiftingView extends Vue {
|
|||||||
return { did: this.activeDid, name: "You" };
|
return { did: this.activeDid, name: "You" };
|
||||||
} else if (!contact.did || contact.did === "") {
|
} else if (!contact.did || contact.did === "") {
|
||||||
// If DID is empty/null, create "Unnamed" entity
|
// If DID is empty/null, create "Unnamed" entity
|
||||||
return { did: "", name: "Unnamed" };
|
return { did: "", name: UNNAMED_ENTITY_NAME };
|
||||||
} else {
|
} else {
|
||||||
// Create a copy of the contact to avoid modifying the original
|
// Create a copy of the contact to avoid modifying the original
|
||||||
return { ...contact };
|
return { ...contact };
|
||||||
@@ -267,7 +268,7 @@ export default class ContactGiftingView extends Vue {
|
|||||||
return { giver, recipient };
|
return { giver, recipient };
|
||||||
} else {
|
} else {
|
||||||
// We're selecting a recipient, so the selected entity becomes the recipient
|
// We're selecting a recipient, so the selected entity becomes the recipient
|
||||||
const recipient = selectedEntity || { did: "", name: "Unnamed" };
|
const recipient = selectedEntity || { did: "", name: UNNAMED_ENTITY_NAME };
|
||||||
const giver = this.createGiverFromContext();
|
const giver = this.createGiverFromContext();
|
||||||
return { giver, recipient };
|
return { giver, recipient };
|
||||||
}
|
}
|
||||||
@@ -292,7 +293,7 @@ export default class ContactGiftingView extends Vue {
|
|||||||
name: this.recipientProjectName,
|
name: this.recipientProjectName,
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
return { did: "", name: "Unnamed" };
|
return { did: "", name: UNNAMED_ENTITY_NAME };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -316,11 +317,20 @@ export default class ContactGiftingView extends Vue {
|
|||||||
name: this.giverProjectName,
|
name: this.giverProjectName,
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
return { did: "", name: "Unnamed" };
|
return { did: "", name: UNNAMED_ENTITY_NAME };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the unnamed entity name constant
|
||||||
|
*/
|
||||||
|
get unnamedEntityName(): string {
|
||||||
|
return UNNAMED_ENTITY_NAME;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
get shouldShowYouEntity(): boolean {
|
get shouldShowYouEntity(): boolean {
|
||||||
if (this.stepType === "giver") {
|
if (this.stepType === "giver") {
|
||||||
// When selecting a giver, show "You" if the current recipient is not "You"
|
// When selecting a giver, show "You" if the current recipient is not "You"
|
||||||
@@ -346,3 +356,4 @@ export default class ContactGiftingView extends Vue {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -290,6 +290,7 @@ import {
|
|||||||
NOTIFY_SERVER_ACCESS_ERROR,
|
NOTIFY_SERVER_ACCESS_ERROR,
|
||||||
NOTIFY_NO_IDENTITY_ERROR,
|
NOTIFY_NO_IDENTITY_ERROR,
|
||||||
} from "@/constants/notifications";
|
} from "@/constants/notifications";
|
||||||
|
import { UNNAMED_PERSON } from "@/constants/entities";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DIDView Component
|
* DIDView Component
|
||||||
@@ -549,7 +550,7 @@ export default class DIDView extends Vue {
|
|||||||
contact.registered = true;
|
contact.registered = true;
|
||||||
await this.$updateContact(contact.did, { registered: true });
|
await this.$updateContact(contact.did, { registered: true });
|
||||||
|
|
||||||
const name = contact.name || "That unnamed person";
|
const name = contact.name || UNNAMED_PERSON;
|
||||||
this.notify.success(
|
this.notify.success(
|
||||||
`${name} ${NOTIFY_REGISTRATION_SUCCESS.message}`,
|
`${name} ${NOTIFY_REGISTRATION_SUCCESS.message}`,
|
||||||
TIMEOUTS.LONG,
|
TIMEOUTS.LONG,
|
||||||
|
|||||||
@@ -233,7 +233,7 @@
|
|||||||
|
|
||||||
<div class="grow">
|
<div class="grow">
|
||||||
<h2 class="text-base font-semibold">
|
<h2 class="text-base font-semibold">
|
||||||
{{ project.name || "Unnamed Project" }}
|
{{ project.name || unnamedProject }}
|
||||||
</h2>
|
</h2>
|
||||||
<div class="text-sm">
|
<div class="text-sm">
|
||||||
<font-awesome
|
<font-awesome
|
||||||
@@ -340,6 +340,7 @@ import {
|
|||||||
NOTIFY_DISCOVER_LOCAL_SEARCH_ERROR,
|
NOTIFY_DISCOVER_LOCAL_SEARCH_ERROR,
|
||||||
NOTIFY_DISCOVER_MAP_SEARCH_ERROR,
|
NOTIFY_DISCOVER_MAP_SEARCH_ERROR,
|
||||||
} from "@/constants/notifications";
|
} from "@/constants/notifications";
|
||||||
|
import { UNNAMED_PROJECT } from "@/constants/entities";
|
||||||
interface Tile {
|
interface Tile {
|
||||||
indexLat: number;
|
indexLat: number;
|
||||||
indexLon: number;
|
indexLon: number;
|
||||||
@@ -370,6 +371,13 @@ export default class DiscoverView extends Vue {
|
|||||||
|
|
||||||
notify!: ReturnType<typeof createNotifyHelpers>;
|
notify!: ReturnType<typeof createNotifyHelpers>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the unnamed project constant
|
||||||
|
*/
|
||||||
|
get unnamedProject(): string {
|
||||||
|
return UNNAMED_PROJECT;
|
||||||
|
}
|
||||||
|
|
||||||
activeDid = "";
|
activeDid = "";
|
||||||
allContacts: Array<Contact> = [];
|
allContacts: Array<Contact> = [];
|
||||||
allMyDids: Array<string> = [];
|
allMyDids: Array<string> = [];
|
||||||
|
|||||||
@@ -199,7 +199,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Then you can record your appreciation for... whatever: select any contact on the home page
|
Then you can record your appreciation for... whatever: select any contact on the home page
|
||||||
(or "Unnamed") and send it. The main goal is to record what people
|
(or "{{ unnamedEntityName }}") and send it. The main goal is to record what people
|
||||||
have given you, to grow giving economies. You can also record your own
|
have given you, to grow giving economies. You can also record your own
|
||||||
ideas for projects. Each claim is recorded on a
|
ideas for projects. Each claim is recorded on a
|
||||||
custom ledger.
|
custom ledger.
|
||||||
@@ -598,6 +598,7 @@ import * as Package from "../../package.json";
|
|||||||
import QuickNav from "../components/QuickNav.vue";
|
import QuickNav from "../components/QuickNav.vue";
|
||||||
import { APP_SERVER } from "../constants/app";
|
import { APP_SERVER } from "../constants/app";
|
||||||
import { PlatformServiceMixin } from "@/utils/PlatformServiceMixin";
|
import { PlatformServiceMixin } from "@/utils/PlatformServiceMixin";
|
||||||
|
import { UNNAMED_ENTITY_NAME } from "@/constants/entities";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HelpView.vue - Comprehensive Help System Component
|
* HelpView.vue - Comprehensive Help System Component
|
||||||
@@ -645,6 +646,13 @@ export default class HelpView extends Vue {
|
|||||||
APP_SERVER = APP_SERVER;
|
APP_SERVER = APP_SERVER;
|
||||||
Capacitor = Capacitor;
|
Capacitor = Capacitor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the unnamed entity name constant
|
||||||
|
*/
|
||||||
|
get unnamedEntityName(): string {
|
||||||
|
return UNNAMED_ENTITY_NAME;
|
||||||
|
}
|
||||||
|
|
||||||
// Ideally, we put no functionality in here, especially in the setup,
|
// 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.
|
// because we never want this page to have a chance of throwing an error.
|
||||||
|
|
||||||
|
|||||||
@@ -305,6 +305,7 @@ import { PlatformServiceMixin } from "@/utils/PlatformServiceMixin";
|
|||||||
import { createNotifyHelpers, TIMEOUTS } from "@/utils/notify";
|
import { createNotifyHelpers, TIMEOUTS } from "@/utils/notify";
|
||||||
import { NOTIFY_CONTACT_LOADING_ISSUE } from "@/constants/notifications";
|
import { NOTIFY_CONTACT_LOADING_ISSUE } from "@/constants/notifications";
|
||||||
import * as Package from "../../package.json";
|
import * as Package from "../../package.json";
|
||||||
|
import { UNNAMED_ENTITY_NAME } from "@/constants/entities";
|
||||||
|
|
||||||
// consolidate this with GiveActionClaim in src/interfaces/claims.ts
|
// consolidate this with GiveActionClaim in src/interfaces/claims.ts
|
||||||
interface Claim {
|
interface Claim {
|
||||||
@@ -1506,7 +1507,7 @@ export default class HomeView extends Vue {
|
|||||||
return { did: this.activeDid, name: "You" };
|
return { did: this.activeDid, name: "You" };
|
||||||
} else if (!giver.did || giver.did === "") {
|
} else if (!giver.did || giver.did === "") {
|
||||||
// If DID is empty/null, create "Unnamed" entity
|
// If DID is empty/null, create "Unnamed" entity
|
||||||
return { did: "", name: "Unnamed" };
|
return { did: "", name: UNNAMED_ENTITY_NAME };
|
||||||
} else {
|
} else {
|
||||||
// Return the giver as-is
|
// Return the giver as-is
|
||||||
return giver;
|
return giver;
|
||||||
|
|||||||
@@ -183,7 +183,7 @@
|
|||||||
class="text-blue-500"
|
class="text-blue-500"
|
||||||
@click="onClickLoadProject(plan.handleId)"
|
@click="onClickLoadProject(plan.handleId)"
|
||||||
>
|
>
|
||||||
{{ plan.name || "Unnamed Project" }}
|
{{ plan.name || unnamedProject }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="fulfillersToHitLimit" class="text-center">
|
<div v-if="fulfillersToHitLimit" class="text-center">
|
||||||
@@ -207,7 +207,7 @@
|
|||||||
class="text-blue-500"
|
class="text-blue-500"
|
||||||
@click="onClickLoadProject(fulfilledByThis.handleId)"
|
@click="onClickLoadProject(fulfilledByThis.handleId)"
|
||||||
>
|
>
|
||||||
{{ fulfilledByThis.name || "Unnamed Project" }}
|
{{ fulfilledByThis.name || unnamedProject }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -611,6 +611,7 @@ import { PlatformServiceMixin } from "@/utils/PlatformServiceMixin";
|
|||||||
import { createNotifyHelpers, TIMEOUTS } from "@/utils/notify";
|
import { createNotifyHelpers, TIMEOUTS } from "@/utils/notify";
|
||||||
import { NOTIFY_CONFIRM_CLAIM } from "@/constants/notifications";
|
import { NOTIFY_CONFIRM_CLAIM } from "@/constants/notifications";
|
||||||
import { APP_SERVER } from "@/constants/app";
|
import { APP_SERVER } from "@/constants/app";
|
||||||
|
import { UNNAMED_PROJECT } from "@/constants/entities";
|
||||||
/**
|
/**
|
||||||
* Project View Component
|
* Project View Component
|
||||||
* @author Matthew Raymer
|
* @author Matthew Raymer
|
||||||
@@ -664,6 +665,13 @@ export default class ProjectViewView extends Vue {
|
|||||||
/** Notification helpers instance */
|
/** Notification helpers instance */
|
||||||
notify!: ReturnType<typeof createNotifyHelpers>;
|
notify!: ReturnType<typeof createNotifyHelpers>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the unnamed project constant
|
||||||
|
*/
|
||||||
|
get unnamedProject(): string {
|
||||||
|
return UNNAMED_PROJECT;
|
||||||
|
}
|
||||||
|
|
||||||
// Account and Settings State
|
// Account and Settings State
|
||||||
/** Currently active DID */
|
/** Currently active DID */
|
||||||
activeDid = "";
|
activeDid = "";
|
||||||
|
|||||||
@@ -247,7 +247,7 @@
|
|||||||
|
|
||||||
<div class="grow overflow-hidden">
|
<div class="grow overflow-hidden">
|
||||||
<h2 class="text-base font-semibold">
|
<h2 class="text-base font-semibold">
|
||||||
{{ project.name || "Unnamed Project" }}
|
{{ project.name || unnamedProject }}
|
||||||
</h2>
|
</h2>
|
||||||
<div class="text-sm truncate">
|
<div class="text-sm truncate">
|
||||||
{{ project.description }}
|
{{ project.description }}
|
||||||
@@ -289,6 +289,7 @@ import {
|
|||||||
NOTIFY_OFFERS_FETCH_ERROR,
|
NOTIFY_OFFERS_FETCH_ERROR,
|
||||||
NOTIFY_CAMERA_SHARE_METHOD,
|
NOTIFY_CAMERA_SHARE_METHOD,
|
||||||
} from "@/constants/notifications";
|
} from "@/constants/notifications";
|
||||||
|
import { UNNAMED_PROJECT } from "@/constants/entities";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Projects View Component
|
* Projects View Component
|
||||||
@@ -327,6 +328,13 @@ export default class ProjectsView extends Vue {
|
|||||||
|
|
||||||
notify!: ReturnType<typeof createNotifyHelpers>;
|
notify!: ReturnType<typeof createNotifyHelpers>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the unnamed project constant
|
||||||
|
*/
|
||||||
|
get unnamedProject(): string {
|
||||||
|
return UNNAMED_PROJECT;
|
||||||
|
}
|
||||||
|
|
||||||
// User account state
|
// User account state
|
||||||
activeDid = "";
|
activeDid = "";
|
||||||
allContacts: Array<Contact> = [];
|
allContacts: Array<Contact> = [];
|
||||||
|
|||||||
@@ -69,6 +69,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { test, expect } from '@playwright/test';
|
import { test, expect } from '@playwright/test';
|
||||||
|
import { UNNAMED_ENTITY_NAME } from '../src/constants/entities';
|
||||||
import { deleteContact, generateAndRegisterEthrUser, importUser } from './testUtils';
|
import { deleteContact, generateAndRegisterEthrUser, importUser } from './testUtils';
|
||||||
|
|
||||||
test('Check activity feed - check that server is running', async ({ page }) => {
|
test('Check activity feed - check that server is running', async ({ page }) => {
|
||||||
@@ -177,7 +178,7 @@ test('Check User 0 can register a random person', async ({ page }) => {
|
|||||||
await page.goto('./');
|
await page.goto('./');
|
||||||
await page.getByTestId('closeOnboardingAndFinish').click();
|
await page.getByTestId('closeOnboardingAndFinish').click();
|
||||||
await page.getByRole('button', { name: 'Person' }).click();
|
await page.getByRole('button', { name: 'Person' }).click();
|
||||||
await page.getByRole('listitem').filter({ hasText: 'Unnamed' }).locator('svg').click();
|
await page.getByRole('listitem').filter({ hasText: UNNAMED_ENTITY_NAME }).locator('svg').click();
|
||||||
await page.getByPlaceholder('What was given').fill('Gave me access!');
|
await page.getByPlaceholder('What was given').fill('Gave me access!');
|
||||||
await page.getByRole('button', { name: 'Sign & Send' }).click();
|
await page.getByRole('button', { name: 'Sign & Send' }).click();
|
||||||
await expect(page.getByText('That gift was recorded.')).toBeVisible();
|
await expect(page.getByText('That gift was recorded.')).toBeVisible();
|
||||||
|
|||||||
@@ -79,6 +79,7 @@
|
|||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
import { test, expect } from '@playwright/test';
|
import { test, expect } from '@playwright/test';
|
||||||
|
import { UNNAMED_ENTITY_NAME } from '../src/constants/entities';
|
||||||
import { importUser } from './testUtils';
|
import { importUser } from './testUtils';
|
||||||
|
|
||||||
test('Record something given', async ({ page }) => {
|
test('Record something given', async ({ page }) => {
|
||||||
@@ -101,7 +102,7 @@ test('Record something given', async ({ page }) => {
|
|||||||
await page.goto('./');
|
await page.goto('./');
|
||||||
await page.getByTestId('closeOnboardingAndFinish').click();
|
await page.getByTestId('closeOnboardingAndFinish').click();
|
||||||
await page.getByRole('button', { name: 'Person' }).click();
|
await page.getByRole('button', { name: 'Person' }).click();
|
||||||
await page.getByRole('listitem').filter({ hasText: 'Unnamed' }).locator('svg').click();
|
await page.getByRole('listitem').filter({ hasText: UNNAMED_ENTITY_NAME }).locator('svg').click();
|
||||||
await page.getByPlaceholder('What was given').fill(finalTitle);
|
await page.getByPlaceholder('What was given').fill(finalTitle);
|
||||||
await page.getByRole('spinbutton').fill(randomNonZeroNumber.toString());
|
await page.getByRole('spinbutton').fill(randomNonZeroNumber.toString());
|
||||||
await page.getByRole('button', { name: 'Sign & Send' }).click();
|
await page.getByRole('button', { name: 'Sign & Send' }).click();
|
||||||
|
|||||||
@@ -85,6 +85,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { test, expect } from '@playwright/test';
|
import { test, expect } from '@playwright/test';
|
||||||
|
import { UNNAMED_ENTITY_NAME } from '../src/constants/entities';
|
||||||
import { importUser, createUniqueStringsArray, createRandomNumbersArray } from './testUtils';
|
import { importUser, createUniqueStringsArray, createRandomNumbersArray } from './testUtils';
|
||||||
|
|
||||||
test('Record 9 new gifts', async ({ page }) => {
|
test('Record 9 new gifts', async ({ page }) => {
|
||||||
@@ -116,7 +117,7 @@ test('Record 9 new gifts', async ({ page }) => {
|
|||||||
await page.getByTestId('closeOnboardingAndFinish').click();
|
await page.getByTestId('closeOnboardingAndFinish').click();
|
||||||
}
|
}
|
||||||
await page.getByRole('button', { name: 'Person' }).click();
|
await page.getByRole('button', { name: 'Person' }).click();
|
||||||
await page.getByRole('listitem').filter({ hasText: 'Unnamed' }).locator('svg').click();
|
await page.getByRole('listitem').filter({ hasText: UNNAMED_ENTITY_NAME }).locator('svg').click();
|
||||||
await page.getByPlaceholder('What was given').fill(finalTitles[i]);
|
await page.getByPlaceholder('What was given').fill(finalTitles[i]);
|
||||||
await page.getByRole('spinbutton').fill(finalNumbers[i].toString());
|
await page.getByRole('spinbutton').fill(finalNumbers[i].toString());
|
||||||
await page.getByRole('button', { name: 'Sign & Send' }).click();
|
await page.getByRole('button', { name: 'Sign & Send' }).click();
|
||||||
|
|||||||
Reference in New Issue
Block a user