Browse Source

fix: in project-edit view, don't show agent warning on new one, and automatically switch if they're changing

pull/219/head
Trent Larson 2 days ago
parent
commit
9ff24f8258
  1. 23
      src/views/NewEditProjectView.vue

23
src/views/NewEditProjectView.vue

@ -470,11 +470,11 @@ export default class NewEditProjectView extends Vue {
this.projectId = (this.$route.query["projectId"] as string) || "";
if (this.projectId) {
if (this.isSavedProject()) {
if (this.numAccounts === 0) {
this.notify.error(NOTIFY_PROJECT_ACCOUNT_LOADING_ERROR.message);
} else {
this.loadProject(this.activeDid);
this.loadProject(this.activeDid, this.projectId);
}
}
}
@ -484,11 +484,9 @@ export default class NewEditProjectView extends Vue {
* Retrieves project information from the API and populates form fields
* @param userDid - User's decentralized identifier
*/
async loadProject(userDid: string) {
async loadProject(userDid: string, projectId: string) {
const url =
this.apiServer +
"/api/claim/byHandle/" +
encodeURIComponent(this.projectId);
this.apiServer + "/api/claim/byHandle/" + encodeURIComponent(projectId);
const headers = await getHeaders(userDid);
try {
@ -505,6 +503,12 @@ export default class NewEditProjectView extends Vue {
}
if (this.fullClaim?.agent?.identifier) {
this.agentDid = this.fullClaim.agent.identifier;
if (this.activeDid !== this.projectIssuerDid) {
this.agentDid = this.projectIssuerDid;
this.notify.warning(
"You were previously the agent, so the agent has been set to the previous owner. You can change it.",
);
}
}
if (this.fullClaim.startTime) {
const localDateTime = DateTime.fromISO(
@ -609,7 +613,7 @@ export default class NewEditProjectView extends Vue {
private async saveProject() {
// Make a claim
const vcClaim: PlanActionClaim = this.fullClaim;
if (this.projectId) {
if (this.isSavedProject()) {
vcClaim.lastClaimId = this.lastClaimJwtId;
}
if (this.agentDid) {
@ -943,6 +947,10 @@ export default class NewEditProjectView extends Vue {
this.longitude = event.latlng.lng;
}
private isSavedProject(): boolean {
return !!this.projectId;
}
/**
* Computed property for character count display
* Shows current description length and maximum character limit
@ -958,6 +966,7 @@ export default class NewEditProjectView extends Vue {
*/
get shouldShowOwnershipWarning(): boolean {
return (
this.isSavedProject() &&
this.activeDid !== this.projectIssuerDid &&
this.agentDid !== this.projectIssuerDid
);

Loading…
Cancel
Save