WIP: Add Create Meeting button for registered users with no meetings

- OnboardMeetingListView now shows Create Meeting button for registered users when meetings.length === 0
- Added createMeeting() method to route to meeting setup page
- Maintains "No meetings available" message for unregistered users
- Resolves Test User #0 import flow where chair icon should show Create Meeting option
- Fixed linter errors in databaseUtil.ts and ImportAccountView.vue
This commit is contained in:
Matthew Raymer
2025-07-08 06:18:11 +00:00
parent 745830e150
commit 72c087e40a
8 changed files with 520 additions and 107 deletions

View File

@@ -55,8 +55,6 @@ import QuickNav from "../components/QuickNav.vue";
import TopMessage from "../components/TopMessage.vue";
import MembersList from "../components/MembersList.vue";
import UserNameDialog from "../components/UserNameDialog.vue";
import * as databaseUtil from "../db/databaseUtil";
import { logConsoleAndDb } from "../db/databaseUtil";
import { encryptMessage } from "../libs/crypto";
import {
errorStringForLog,
@@ -64,6 +62,7 @@ import {
serverMessageForUser,
} from "../libs/endorserServer";
import { generateSaveAndActivateIdentity } from "../libs/util";
import { PlatformServiceMixin } from "@/utils/PlatformServiceMixin";
@Component({
components: {
@@ -72,6 +71,7 @@ import { generateSaveAndActivateIdentity } from "../libs/util";
MembersList,
UserNameDialog,
},
mixins: [PlatformServiceMixin],
})
export default class OnboardMeetingMembersView extends Vue {
activeDid = "";
@@ -105,11 +105,11 @@ export default class OnboardMeetingMembersView extends Vue {
this.isLoading = false;
return;
}
const settings = await databaseUtil.retrieveSettingsForActiveAccount();
this.activeDid = settings.activeDid || "";
this.apiServer = settings.apiServer || "";
this.firstName = settings.firstName || "";
this.isRegistered = settings.isRegistered || false;
const settings = await this.$accountSettings();
this.activeDid = settings?.activeDid || "";
this.apiServer = settings?.apiServer || "";
this.firstName = settings?.firstName || "";
this.isRegistered = !!settings?.isRegistered;
try {
if (!this.activeDid) {
this.activeDid = await generateSaveAndActivateIdentity();
@@ -160,7 +160,7 @@ export default class OnboardMeetingMembersView extends Vue {
this.errorMessage =
serverMessageForUser(error) ||
"There was an error checking for that meeting. Reload or go back and try again.";
logConsoleAndDb(
this.$logAndConsole(
"Error checking meeting: " + errorStringForLog(error),
true,
);
@@ -192,7 +192,7 @@ export default class OnboardMeetingMembersView extends Vue {
{ headers },
);
} catch (error) {
logConsoleAndDb(
this.$logAndConsole(
"Error adding member to meeting: " + errorStringForLog(error),
true,
);
@@ -225,7 +225,7 @@ export default class OnboardMeetingMembersView extends Vue {
{ headers },
);
} catch (error) {
logConsoleAndDb(
this.$logAndConsole(
"Error updating member in meeting: " + errorStringForLog(error),
true,
);