Update projects in frontend to use slugs instead of ids
This commit is contained in:
parent
6edbadda2e
commit
9cc1ab5324
|
|
@ -17,13 +17,13 @@
|
||||||
<li class="popover-links__link">
|
<li class="popover-links__link">
|
||||||
<a
|
<a
|
||||||
data-cy="delete-project"
|
data-cy="delete-project"
|
||||||
@click="deleteProject(id)"
|
@click="deleteProject(slug)"
|
||||||
>Projekt löschen</a>
|
>Projekt löschen</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="popover-links__link">
|
<li class="popover-links__link">
|
||||||
<a
|
<a
|
||||||
data-cy="edit-project"
|
data-cy="edit-project"
|
||||||
@click="editProject(id)"
|
@click="editProject(slug)"
|
||||||
>Projekt bearbeiten</a>
|
>Projekt bearbeiten</a>
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
>
|
>
|
||||||
<a
|
<a
|
||||||
data-cy="share-project"
|
data-cy="share-project"
|
||||||
@click="updateProjectShareState(id, true)"
|
@click="updateProjectShareState(slug, true)"
|
||||||
>Projekt teilen</a>
|
>Projekt teilen</a>
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li
|
||||||
|
|
@ -41,7 +41,7 @@
|
||||||
>
|
>
|
||||||
<a
|
<a
|
||||||
data-cy="unshare-project"
|
data-cy="unshare-project"
|
||||||
@click="updateProjectShareState(id, false)"
|
@click="updateProjectShareState(slug, false)"
|
||||||
>Projekt nicht mehr teilen</a>
|
>Projekt nicht mehr teilen</a>
|
||||||
</li>
|
</li>
|
||||||
</widget-popover>
|
</widget-popover>
|
||||||
|
|
@ -59,7 +59,7 @@ const Ellipses = () => import(/* webpackChunkName: "icons" */'@/components/icons
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
id: {
|
slug: {
|
||||||
type: String,
|
type: String,
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
|
|
@ -90,15 +90,15 @@ export default {
|
||||||
toggleMenu: function () {
|
toggleMenu: function () {
|
||||||
this.showMenu = !this.showMenu;
|
this.showMenu = !this.showMenu;
|
||||||
},
|
},
|
||||||
editProject(id) {
|
editProject(slug) {
|
||||||
this.$router.push({name: 'edit-project', params: {id}});
|
this.$router.push({name: 'edit-project', params: {slug}});
|
||||||
},
|
},
|
||||||
deleteProject(id) {
|
deleteProject(slug) {
|
||||||
this.$apollo.mutate({
|
this.$apollo.mutate({
|
||||||
mutation: DELETE_PROJECT_MUTATION,
|
mutation: DELETE_PROJECT_MUTATION,
|
||||||
variables: {
|
variables: {
|
||||||
input: {
|
input: {
|
||||||
id,
|
slug,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
update(store, {data: {deleteProject: {success}}}) {
|
update(store, {data: {deleteProject: {success}}}) {
|
||||||
|
|
|
||||||
|
|
@ -7,15 +7,27 @@ const currentFilterVar = makeVar('');
|
||||||
const helloEmailVar = makeVar('');
|
const helloEmailVar = makeVar('');
|
||||||
|
|
||||||
const idToRefFactory = (__typename) => (_, {args, toReference}) => {
|
const idToRefFactory = (__typename) => (_, {args, toReference}) => {
|
||||||
// todo: can we log this via Vue.$log somehow?
|
// todo: can we log this via Vue.$log somehow?
|
||||||
console.log(`Trying to reference ${__typename} with id ${args.id}`);
|
console.log(`Referencing ${__typename} with ${args.id}`);
|
||||||
return toReference({
|
return toReference({
|
||||||
__typename,
|
__typename,
|
||||||
id: args.id
|
id: args.id
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const typePolicies = {
|
const typePolicies = {
|
||||||
|
ProjectNode: {
|
||||||
|
keyFields: ['slug']
|
||||||
|
},
|
||||||
|
InstrumentNode: {
|
||||||
|
keyFields: ['slug']
|
||||||
|
},
|
||||||
|
ModuleNode: {
|
||||||
|
keyFields: ['slug']
|
||||||
|
},
|
||||||
|
RoomEntryNode: {
|
||||||
|
keyFields: ['slug']
|
||||||
|
},
|
||||||
// https://www.apollographql.com/docs/react/local-state/managing-state-with-field-policies/#example
|
// https://www.apollographql.com/docs/react/local-state/managing-state-with-field-policies/#example
|
||||||
Query: {
|
Query: {
|
||||||
fields: {
|
fields: {
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ export default function (uri, networkErrorCallback) {
|
||||||
});
|
});
|
||||||
|
|
||||||
const consoleLink = new ApolloLink((operation, forward) => {
|
const consoleLink = new ApolloLink((operation, forward) => {
|
||||||
console.log('operation', operation);
|
console.log('operation', operation.operationName);
|
||||||
|
|
||||||
return forward(operation).map(data => {
|
return forward(operation).map(data => {
|
||||||
console.log(`returned from server for ${operation.operationName}`, data);
|
console.log(`returned from server for ${operation.operationName}`, data);
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@ import PROJECT_QUERY from '@/graphql/gql/queries/projectQuery.gql';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
methods: {
|
methods: {
|
||||||
updateProjectShareState(id, shared) {
|
updateProjectShareState(slug, shared) {
|
||||||
const input = {
|
const input = {
|
||||||
id: id,
|
slug,
|
||||||
shared,
|
shared,
|
||||||
};
|
};
|
||||||
this.$log.debug('updateProjectShareState', input);
|
this.$log.debug('updateProjectShareState', input);
|
||||||
|
|
@ -18,7 +18,7 @@ export default {
|
||||||
if (!errors) {
|
if (!errors) {
|
||||||
const query = PROJECT_QUERY;
|
const query = PROJECT_QUERY;
|
||||||
const variables = {
|
const variables = {
|
||||||
id: id,
|
slug
|
||||||
};
|
};
|
||||||
|
|
||||||
const {project} = store.readQuery({query, variables});
|
const {project} = store.readQuery({query, variables});
|
||||||
|
|
|
||||||
|
|
@ -15,14 +15,14 @@
|
||||||
:final="project.final"
|
:final="project.final"
|
||||||
data-cy="project-share-link"
|
data-cy="project-share-link"
|
||||||
class="project__share"
|
class="project__share"
|
||||||
@click.native="updateProjectShareState(project.id, !project.final)"
|
@click.native="updateProjectShareState(project.slug, !project.final)"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<project-actions
|
<project-actions
|
||||||
:share-buttons="false"
|
:share-buttons="false"
|
||||||
class="project__more"
|
class="project__more"
|
||||||
|
:slug="project.slug"
|
||||||
v-if="canEdit"
|
v-if="canEdit"
|
||||||
:id="project.id"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue