mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-13 07:46:06 +00:00
Merge branch 'master' of github.com:Ocelot-Social-Community/Ocelot-Social into 4265-move-sort-newsfeed-menu-into-filter-menu
# Conflicts: # backend/src/schema/resolvers/donations.spec.js
This commit is contained in:
commit
629a8da241
22
.github/ISSUE_TEMPLATE/bug_report.md
vendored
22
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@ -1,25 +1,9 @@
|
||||
---
|
||||
name: 🐛 Bug report
|
||||
about: Create a report to help us improve
|
||||
name: 🐛 Bug Report
|
||||
about: Create a report to help us to improve.
|
||||
labels: bug
|
||||
title: 🐛 [Bug]
|
||||
---
|
||||
|
||||
## :bug: Bugreport
|
||||
## :bug: Bug Report
|
||||
<!-- Describe your issue in detail. Include screenshots if needed. Give us as much information as possible. Use a clear and concise description of what the bug is.-->
|
||||
|
||||
### Steps to reproduce the behavior
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
4. ...
|
||||
5. Profit
|
||||
|
||||
### Expected behavior
|
||||
<!-- A clear and concise description of what you expected to happen. -->
|
||||
|
||||
### Version & Environment
|
||||
<!-- Add context about your environment and used version here. -->
|
||||
|
||||
### Additional context
|
||||
<!-- Add any other context about the problem here. -->
|
||||
|
||||
21
.github/ISSUE_TEMPLATE/devops_ticket.md
vendored
21
.github/ISSUE_TEMPLATE/devops_ticket.md
vendored
@ -1,24 +1,9 @@
|
||||
---
|
||||
name: 💥 DevOps ticket
|
||||
about: Help us manage our deployed App.
|
||||
name: 💥 DevOps Ticket
|
||||
about: Help us manage our deployed app.
|
||||
labels: devops
|
||||
title: 💥 [DevOps]
|
||||
---
|
||||
|
||||
## 💥 DevOps ticket
|
||||
## 💥 DevOps Ticket
|
||||
<!-- Describe your issue in detail. Include screenshots if needed. Give us as much information as possible. Use a clear and concise description of what the problem is.-->
|
||||
|
||||
### Motive
|
||||
<!-- Why does this task need to be done? What can we benefit from this? -->
|
||||
|
||||
### Related issues
|
||||
<!-- Are there any related issues to link to? Please paste them below for reference. -->
|
||||
|
||||
### Implementation
|
||||
<!-- Please, document any ideas of how the task can be performed. -->
|
||||
|
||||
### Validation
|
||||
<!-- How can we make sure that this task was successful? -->
|
||||
|
||||
### Additional context
|
||||
<!-- Add other context or background about the feature request here.-->
|
||||
|
||||
12
.github/ISSUE_TEMPLATE/epic.md
vendored
Normal file
12
.github/ISSUE_TEMPLATE/epic.md
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
name: 🌟 Epic
|
||||
about: Define a big development step.
|
||||
labels: epic
|
||||
title: 🌟 [EPIC]
|
||||
---
|
||||
<!-- THIS ISSUE-TYPE IS NOT FOR YOU! -->
|
||||
<!-- If you need an answer right away, visit the ocelot.social Discord:
|
||||
https://discord.gg/AJSX9DCSUA -->
|
||||
|
||||
## 🌟 EPIC
|
||||
<!-- Describe your Epic in detail. Include screenshots and drawings -->
|
||||
21
.github/ISSUE_TEMPLATE/feature_request.md
vendored
21
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@ -1,24 +1,9 @@
|
||||
---
|
||||
name: 🚀 Feature request
|
||||
about: Suggest an idea for this project
|
||||
name: 🚀 Feature Request
|
||||
about: Suggest an idea for this project.
|
||||
labels: feature
|
||||
title: 🚀 [Feature]
|
||||
---
|
||||
|
||||
## :rocket: Feature
|
||||
## :rocket: Feature Request
|
||||
<!-- Give a short summary of the Feature. Use Screenshots if you want. -->
|
||||
|
||||
### User Problem
|
||||
<!-- Which problem is this solving? Why do you think this is important? Who will benefit from it and how? -->
|
||||
|
||||
### Implementation
|
||||
<!-- How do you think this feature should be implemented? How will it be used? Where in the network should it be located? Which steps and screens are involved? -->
|
||||
|
||||
### Design & Layout
|
||||
<!-- Attach Screenshots and Sketches to illustrate your idea. -->
|
||||
|
||||
### Validation
|
||||
<!-- How can we make sure that this feature indeed solves the above problem? How do we know if it has been accepted by the users of the network, once released? -->
|
||||
|
||||
### Additional context
|
||||
<!-- Add other context or background about the feature request here.-->
|
||||
|
||||
2
.github/ISSUE_TEMPLATE/question.md
vendored
2
.github/ISSUE_TEMPLATE/question.md
vendored
@ -8,5 +8,5 @@ title: 💬 [Question]
|
||||
<!-- If you need an answer right away, visit the ocelot.social Discord:
|
||||
https://discord.gg/AJSX9DCSUA -->
|
||||
|
||||
## :speech_balloon: Question
|
||||
## 💬 Question
|
||||
<!-- Describe your Question in detail. Include screenshots and drawings if needed. -->
|
||||
|
||||
15
.github/ISSUE_TEMPLATE/refactor_tickets.md
vendored
15
.github/ISSUE_TEMPLATE/refactor_tickets.md
vendored
@ -1,21 +1,10 @@
|
||||
---
|
||||
name: 🔧 Refactor ticket
|
||||
name: 🔧 Refactor
|
||||
about: Help us improve our code by refactoring it.
|
||||
labels: refactor
|
||||
title: 🔧 [Refactor]
|
||||
---
|
||||
|
||||
## :zap: Refactor ticket
|
||||
## 🔧 Refactor
|
||||
<!-- Describe your issue in detail. Include screenshots if needed. Give us as much information as possible. Use a clear and concise description of what the problem is.-->
|
||||
|
||||
### Motive
|
||||
<!-- What is the purpose of this refactoring? If it's removing depcrecated code, please link to the deprecation notice. -->
|
||||
|
||||
### Related issues
|
||||
<!-- Are there any related issues to link to? Please paste them below for reference. -->
|
||||
|
||||
### Implementation
|
||||
<!-- Please, document any ideas of how the code should be refactored. -->
|
||||
|
||||
### Additional context
|
||||
<!-- Add other context or background about the feature request here.-->
|
||||
|
||||
179
.github/dependabot.yml
vendored
Normal file
179
.github/dependabot.yml
vendored
Normal file
@ -0,0 +1,179 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: npm
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "04:00"
|
||||
open-pull-requests-limit: 10
|
||||
ignore:
|
||||
- dependency-name: cypress
|
||||
versions:
|
||||
- 6.3.0
|
||||
- 6.4.0
|
||||
- 6.5.0
|
||||
- 6.6.0
|
||||
- 6.7.1
|
||||
- 6.8.0
|
||||
- 7.0.0
|
||||
- 7.0.1
|
||||
- 7.1.0
|
||||
- dependency-name: cypress-cucumber-preprocessor
|
||||
versions:
|
||||
- 4.0.0
|
||||
- 4.0.1
|
||||
- 4.0.3
|
||||
- dependency-name: date-fns
|
||||
versions:
|
||||
- 2.16.1
|
||||
- 2.17.0
|
||||
- 2.18.0
|
||||
- 2.19.0
|
||||
- 2.20.0
|
||||
- 2.20.1
|
||||
- 2.20.2
|
||||
- 2.20.3
|
||||
- 2.21.0
|
||||
- dependency-name: cypress-file-upload
|
||||
versions:
|
||||
- 5.0.2
|
||||
- 5.0.3
|
||||
- 5.0.4
|
||||
- 5.0.5
|
||||
- dependency-name: neo4j-driver
|
||||
versions:
|
||||
- 4.2.2
|
||||
- package-ecosystem: npm
|
||||
directory: "/backend"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "04:00"
|
||||
open-pull-requests-limit: 10
|
||||
ignore:
|
||||
- dependency-name: y18n
|
||||
versions:
|
||||
- 4.0.1
|
||||
- 4.0.2
|
||||
- dependency-name: metascraper-publisher
|
||||
versions:
|
||||
- 5.16.16
|
||||
- 5.18.1
|
||||
- 5.18.12
|
||||
- 5.18.2
|
||||
- 5.18.4
|
||||
- 5.18.5
|
||||
- 5.18.6
|
||||
- 5.18.9
|
||||
- 5.20.0
|
||||
- 5.21.0
|
||||
- 5.21.2
|
||||
- 5.21.3
|
||||
- 5.21.4
|
||||
- 5.21.5
|
||||
- dependency-name: metascraper-author
|
||||
versions:
|
||||
- 5.16.16
|
||||
- 5.18.1
|
||||
- 5.18.12
|
||||
- 5.18.2
|
||||
- 5.18.4
|
||||
- 5.18.5
|
||||
- 5.18.6
|
||||
- 5.18.9
|
||||
- 5.20.0
|
||||
- 5.21.0
|
||||
- 5.21.2
|
||||
- 5.21.3
|
||||
- 5.21.4
|
||||
- 5.21.5
|
||||
- dependency-name: neo4j-driver
|
||||
versions:
|
||||
- 4.2.2
|
||||
- dependency-name: neo4j-graphql-js
|
||||
versions:
|
||||
- 2.19.1
|
||||
- dependency-name: mustache
|
||||
versions:
|
||||
- 4.1.0
|
||||
- package-ecosystem: npm
|
||||
directory: "/webapp"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "04:00"
|
||||
open-pull-requests-limit: 10
|
||||
ignore:
|
||||
- dependency-name: nuxt
|
||||
versions:
|
||||
- 2.14.12
|
||||
- 2.15.0
|
||||
- 2.15.1
|
||||
- 2.15.2
|
||||
- 2.15.3
|
||||
- dependency-name: v-tooltip
|
||||
versions:
|
||||
- 2.1.2
|
||||
- dependency-name: "@vue/server-test-utils"
|
||||
versions:
|
||||
- 1.1.2
|
||||
- 1.1.3
|
||||
- dependency-name: node-notifier
|
||||
versions:
|
||||
- 8.0.1
|
||||
- package-ecosystem: docker
|
||||
directory: "/webapp"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "04:00"
|
||||
open-pull-requests-limit: 10
|
||||
ignore:
|
||||
- dependency-name: node
|
||||
versions:
|
||||
- ">= 15.5.a, < 15.6"
|
||||
- dependency-name: node
|
||||
versions:
|
||||
- 15.10.0.pre.alpine3.10
|
||||
- 15.11.0.pre.alpine3.10
|
||||
- 15.12.0.pre.alpine3.10
|
||||
- 15.13.0.pre.alpine3.10
|
||||
- 15.7.0.pre.alpine3.10
|
||||
- 15.8.0.pre.alpine3.10
|
||||
- 15.9.0.pre.alpine3.10
|
||||
- package-ecosystem: docker
|
||||
directory: "/backend"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "04:00"
|
||||
open-pull-requests-limit: 10
|
||||
ignore:
|
||||
- dependency-name: node
|
||||
versions:
|
||||
- ">= 15.4.a, < 15.5"
|
||||
- dependency-name: node
|
||||
versions:
|
||||
- ">= 15.5.a, < 15.6"
|
||||
- dependency-name: node
|
||||
versions:
|
||||
- 15.10.0.pre.alpine3.10
|
||||
- 15.11.0.pre.alpine3.10
|
||||
- 15.12.0.pre.alpine3.10
|
||||
- 15.13.0.pre.alpine3.10
|
||||
- 15.7.0.pre.alpine3.10
|
||||
- 15.8.0.pre.alpine3.10
|
||||
- 15.9.0.pre.alpine3.10
|
||||
- package-ecosystem: docker
|
||||
directory: "/neo4j"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "04:00"
|
||||
open-pull-requests-limit: 10
|
||||
ignore:
|
||||
- dependency-name: neo4j
|
||||
versions:
|
||||
- 4.2.3
|
||||
- 4.2.4
|
||||
- package-ecosystem: docker
|
||||
directory: "/deployment/legacy-migration/maintenance-worker"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "04:00"
|
||||
open-pull-requests-limit: 10
|
||||
@ -81,7 +81,7 @@
|
||||
"languagedetect": "^2.0.0",
|
||||
"linkifyjs": "~2.1.8",
|
||||
"lodash": "~4.17.14",
|
||||
"merge-graphql-schemas": "^1.7.7",
|
||||
"merge-graphql-schemas": "^1.7.8",
|
||||
"metascraper": "^5.11.8",
|
||||
"metascraper-audio": "^5.14.26",
|
||||
"metascraper-author": "^5.14.22",
|
||||
@ -134,7 +134,7 @@
|
||||
"eslint-plugin-standard": "~4.0.1",
|
||||
"jest": "~25.3.0",
|
||||
"nodemon": "~2.0.2",
|
||||
"prettier": "~2.2.0",
|
||||
"prettier": "~2.3.2",
|
||||
"rosie": "^2.0.1",
|
||||
"supertest": "~4.0.2"
|
||||
},
|
||||
|
||||
@ -137,100 +137,93 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
|
||||
}),
|
||||
])
|
||||
|
||||
const [
|
||||
peterLustig,
|
||||
bobDerBaumeister,
|
||||
jennyRostock,
|
||||
huey,
|
||||
dewey,
|
||||
louie,
|
||||
dagobert,
|
||||
] = await Promise.all([
|
||||
Factory.build(
|
||||
'user',
|
||||
{
|
||||
id: 'u1',
|
||||
name: 'Peter Lustig',
|
||||
slug: 'peter-lustig',
|
||||
role: 'admin',
|
||||
},
|
||||
{
|
||||
email: 'admin@example.org',
|
||||
},
|
||||
),
|
||||
Factory.build(
|
||||
'user',
|
||||
{
|
||||
id: 'u2',
|
||||
name: 'Bob der Baumeister',
|
||||
slug: 'bob-der-baumeister',
|
||||
role: 'moderator',
|
||||
},
|
||||
{
|
||||
email: 'moderator@example.org',
|
||||
},
|
||||
),
|
||||
Factory.build(
|
||||
'user',
|
||||
{
|
||||
id: 'u3',
|
||||
name: 'Jenny Rostock',
|
||||
slug: 'jenny-rostock',
|
||||
role: 'user',
|
||||
},
|
||||
{
|
||||
email: 'user@example.org',
|
||||
},
|
||||
),
|
||||
Factory.build(
|
||||
'user',
|
||||
{
|
||||
id: 'u4',
|
||||
name: 'Huey',
|
||||
slug: 'huey',
|
||||
role: 'user',
|
||||
},
|
||||
{
|
||||
email: 'huey@example.org',
|
||||
},
|
||||
),
|
||||
Factory.build(
|
||||
'user',
|
||||
{
|
||||
id: 'u5',
|
||||
name: 'Dewey',
|
||||
slug: 'dewey',
|
||||
role: 'user',
|
||||
},
|
||||
{
|
||||
email: 'dewey@example.org',
|
||||
},
|
||||
),
|
||||
Factory.build(
|
||||
'user',
|
||||
{
|
||||
id: 'u6',
|
||||
name: 'Louie',
|
||||
slug: 'louie',
|
||||
role: 'user',
|
||||
},
|
||||
{
|
||||
email: 'louie@example.org',
|
||||
},
|
||||
),
|
||||
Factory.build(
|
||||
'user',
|
||||
{
|
||||
id: 'u7',
|
||||
name: 'Dagobert',
|
||||
slug: 'dagobert',
|
||||
role: 'user',
|
||||
},
|
||||
{
|
||||
email: 'dagobert@example.org',
|
||||
},
|
||||
),
|
||||
])
|
||||
const [peterLustig, bobDerBaumeister, jennyRostock, huey, dewey, louie, dagobert] =
|
||||
await Promise.all([
|
||||
Factory.build(
|
||||
'user',
|
||||
{
|
||||
id: 'u1',
|
||||
name: 'Peter Lustig',
|
||||
slug: 'peter-lustig',
|
||||
role: 'admin',
|
||||
},
|
||||
{
|
||||
email: 'admin@example.org',
|
||||
},
|
||||
),
|
||||
Factory.build(
|
||||
'user',
|
||||
{
|
||||
id: 'u2',
|
||||
name: 'Bob der Baumeister',
|
||||
slug: 'bob-der-baumeister',
|
||||
role: 'moderator',
|
||||
},
|
||||
{
|
||||
email: 'moderator@example.org',
|
||||
},
|
||||
),
|
||||
Factory.build(
|
||||
'user',
|
||||
{
|
||||
id: 'u3',
|
||||
name: 'Jenny Rostock',
|
||||
slug: 'jenny-rostock',
|
||||
role: 'user',
|
||||
},
|
||||
{
|
||||
email: 'user@example.org',
|
||||
},
|
||||
),
|
||||
Factory.build(
|
||||
'user',
|
||||
{
|
||||
id: 'u4',
|
||||
name: 'Huey',
|
||||
slug: 'huey',
|
||||
role: 'user',
|
||||
},
|
||||
{
|
||||
email: 'huey@example.org',
|
||||
},
|
||||
),
|
||||
Factory.build(
|
||||
'user',
|
||||
{
|
||||
id: 'u5',
|
||||
name: 'Dewey',
|
||||
slug: 'dewey',
|
||||
role: 'user',
|
||||
},
|
||||
{
|
||||
email: 'dewey@example.org',
|
||||
},
|
||||
),
|
||||
Factory.build(
|
||||
'user',
|
||||
{
|
||||
id: 'u6',
|
||||
name: 'Louie',
|
||||
slug: 'louie',
|
||||
role: 'user',
|
||||
},
|
||||
{
|
||||
email: 'louie@example.org',
|
||||
},
|
||||
),
|
||||
Factory.build(
|
||||
'user',
|
||||
{
|
||||
id: 'u7',
|
||||
name: 'Dagobert',
|
||||
slug: 'dagobert',
|
||||
role: 'user',
|
||||
},
|
||||
{
|
||||
email: 'dagobert@example.org',
|
||||
},
|
||||
),
|
||||
])
|
||||
|
||||
await Promise.all([
|
||||
peterLustig.relateTo(Berlin, 'isIn'),
|
||||
@ -561,7 +554,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
|
||||
const hashtagAndMention1 =
|
||||
'The new physics of <a class="hashtag" data-hashtag-id="QuantenFlussTheorie" href="/?hashtag=QuantenFlussTheorie">#QuantenFlussTheorie</a> can explain <a class="hashtag" data-hashtag-id="QuantumGravity" href="/?hashtag=QuantumGravity">#QuantumGravity</a>! <a class="mention" data-mention-id="u1" href="/profile/u1">@peter-lustig</a> got that already. ;-)'
|
||||
const createPostMutation = gql`
|
||||
mutation($id: ID, $title: String!, $content: String!, $categoryIds: [ID]) {
|
||||
mutation ($id: ID, $title: String!, $content: String!, $categoryIds: [ID]) {
|
||||
CreatePost(id: $id, title: $title, content: $content, categoryIds: $categoryIds) {
|
||||
id
|
||||
}
|
||||
@ -618,7 +611,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
|
||||
const mentionInComment2 =
|
||||
'Did <a class="mention" data-mention-id="u1" href="/profile/u1">@peter-lustig</a> tell you?'
|
||||
const createCommentMutation = gql`
|
||||
mutation($id: ID, $postId: ID!, $content: String!) {
|
||||
mutation ($id: ID, $postId: ID!, $content: String!) {
|
||||
CreateComment(id: $id, postId: $postId, content: $content) {
|
||||
id
|
||||
}
|
||||
|
||||
@ -13,7 +13,7 @@ const driver = getDriver()
|
||||
const neode = getNeode()
|
||||
const categoryIds = ['cat9']
|
||||
const createPostMutation = gql`
|
||||
mutation($id: ID, $title: String!, $postContent: String!, $categoryIds: [ID]!) {
|
||||
mutation ($id: ID, $title: String!, $postContent: String!, $categoryIds: [ID]!) {
|
||||
CreatePost(id: $id, title: $title, content: $postContent, categoryIds: $categoryIds) {
|
||||
id
|
||||
title
|
||||
@ -22,7 +22,7 @@ const createPostMutation = gql`
|
||||
}
|
||||
`
|
||||
const updatePostMutation = gql`
|
||||
mutation($id: ID!, $title: String!, $postContent: String!, $categoryIds: [ID]!) {
|
||||
mutation ($id: ID!, $title: String!, $postContent: String!, $categoryIds: [ID]!) {
|
||||
UpdatePost(id: $id, content: $postContent, title: $title, categoryIds: $categoryIds) {
|
||||
title
|
||||
content
|
||||
@ -95,7 +95,7 @@ describe('hashtags', () => {
|
||||
</p>
|
||||
`
|
||||
const postWithHastagsQuery = gql`
|
||||
query($id: ID) {
|
||||
query ($id: ID) {
|
||||
Post(id: $id) {
|
||||
tags {
|
||||
id
|
||||
|
||||
@ -29,7 +29,7 @@ afterAll(async () => {
|
||||
})
|
||||
|
||||
const createPostMutation = gql`
|
||||
mutation($title: String!, $content: String!, $categoryIds: [ID]) {
|
||||
mutation ($title: String!, $content: String!, $categoryIds: [ID]) {
|
||||
CreatePost(title: $title, content: $content, categoryIds: $categoryIds) {
|
||||
language
|
||||
}
|
||||
|
||||
@ -10,7 +10,7 @@ const driver = getDriver()
|
||||
const neode = getNeode()
|
||||
const categoryIds = ['cat9']
|
||||
const createPostMutation = gql`
|
||||
mutation($id: ID, $title: String!, $postContent: String!, $categoryIds: [ID]!) {
|
||||
mutation ($id: ID, $title: String!, $postContent: String!, $categoryIds: [ID]!) {
|
||||
CreatePost(id: $id, title: $title, content: $postContent, categoryIds: $categoryIds) {
|
||||
id
|
||||
title
|
||||
@ -19,7 +19,7 @@ const createPostMutation = gql`
|
||||
}
|
||||
`
|
||||
const updatePostMutation = gql`
|
||||
mutation($id: ID!, $title: String!, $postContent: String!, $categoryIds: [ID]!) {
|
||||
mutation ($id: ID!, $title: String!, $postContent: String!, $categoryIds: [ID]!) {
|
||||
UpdatePost(id: $id, content: $postContent, title: $title, categoryIds: $categoryIds) {
|
||||
title
|
||||
content
|
||||
@ -27,7 +27,7 @@ const updatePostMutation = gql`
|
||||
}
|
||||
`
|
||||
const createCommentMutation = gql`
|
||||
mutation($id: ID, $postId: ID!, $commentContent: String!) {
|
||||
mutation ($id: ID, $postId: ID!, $commentContent: String!) {
|
||||
CreateComment(id: $id, postId: $postId, content: $commentContent) {
|
||||
id
|
||||
content
|
||||
@ -80,7 +80,7 @@ afterEach(async () => {
|
||||
|
||||
describe('notifications', () => {
|
||||
const notificationQuery = gql`
|
||||
query($read: Boolean) {
|
||||
query ($read: Boolean) {
|
||||
notifications(read: $read, orderBy: updatedAt_desc) {
|
||||
read
|
||||
reason
|
||||
@ -367,7 +367,7 @@ describe('notifications', () => {
|
||||
describe('if the notification was marked as read earlier', () => {
|
||||
const markAsReadAction = async () => {
|
||||
const mutation = gql`
|
||||
mutation($id: ID!) {
|
||||
mutation ($id: ID!) {
|
||||
markAsRead(id: $id) {
|
||||
read
|
||||
}
|
||||
|
||||
@ -80,7 +80,7 @@ describe('authorization', () => {
|
||||
|
||||
describe('access email address', () => {
|
||||
const userQuery = gql`
|
||||
query($name: String) {
|
||||
query ($name: String) {
|
||||
User(name: $name) {
|
||||
email
|
||||
}
|
||||
@ -165,7 +165,7 @@ describe('authorization', () => {
|
||||
|
||||
describe('access Signup', () => {
|
||||
const signupMutation = gql`
|
||||
mutation($email: String!, $inviteCode: String) {
|
||||
mutation ($email: String!, $inviteCode: String) {
|
||||
Signup(email: $email, inviteCode: $inviteCode) {
|
||||
email
|
||||
}
|
||||
|
||||
@ -54,7 +54,7 @@ describe('slugifyMiddleware', () => {
|
||||
describe('CreatePost', () => {
|
||||
const categoryIds = ['cat9']
|
||||
const createPostMutation = gql`
|
||||
mutation($title: String!, $content: String!, $categoryIds: [ID]!, $slug: String) {
|
||||
mutation ($title: String!, $content: String!, $categoryIds: [ID]!, $slug: String) {
|
||||
CreatePost(title: $title, content: $content, categoryIds: $categoryIds, slug: $slug) {
|
||||
slug
|
||||
}
|
||||
@ -164,7 +164,7 @@ describe('slugifyMiddleware', () => {
|
||||
|
||||
describe('SignupVerification', () => {
|
||||
const mutation = gql`
|
||||
mutation(
|
||||
mutation (
|
||||
$password: String!
|
||||
$email: String!
|
||||
$name: String!
|
||||
|
||||
@ -10,7 +10,7 @@ const driver = getDriver()
|
||||
const neode = getNeode()
|
||||
|
||||
const postQuery = gql`
|
||||
query($id: ID) {
|
||||
query ($id: ID) {
|
||||
Post(id: $id) {
|
||||
clickedCount
|
||||
}
|
||||
|
||||
@ -17,14 +17,14 @@ let authenticatedUser,
|
||||
commentingUser
|
||||
|
||||
const createCommentMutation = gql`
|
||||
mutation($id: ID, $postId: ID!, $content: String!) {
|
||||
mutation ($id: ID, $postId: ID!, $content: String!) {
|
||||
CreateComment(id: $id, postId: $postId, content: $content) {
|
||||
id
|
||||
}
|
||||
}
|
||||
`
|
||||
const updateCommentMutation = gql`
|
||||
mutation($content: String!, $id: ID!) {
|
||||
mutation ($content: String!, $id: ID!) {
|
||||
UpdateComment(content: $content, id: $id) {
|
||||
id
|
||||
}
|
||||
@ -32,7 +32,7 @@ const updateCommentMutation = gql`
|
||||
`
|
||||
|
||||
const reportMutation = gql`
|
||||
mutation($resourceId: ID!, $reasonCategory: ReasonCategory!, $reasonDescription: String!) {
|
||||
mutation ($resourceId: ID!, $reasonCategory: ReasonCategory!, $reasonDescription: String!) {
|
||||
fileReport(
|
||||
resourceId: $resourceId
|
||||
reasonCategory: $reasonCategory
|
||||
@ -43,7 +43,7 @@ const reportMutation = gql`
|
||||
}
|
||||
`
|
||||
const reviewMutation = gql`
|
||||
mutation($resourceId: ID!, $disable: Boolean, $closed: Boolean) {
|
||||
mutation ($resourceId: ID!, $disable: Boolean, $closed: Boolean) {
|
||||
review(resourceId: $resourceId, disable: $disable, closed: $closed) {
|
||||
createdAt
|
||||
updatedAt
|
||||
@ -52,7 +52,7 @@ const reviewMutation = gql`
|
||||
`
|
||||
|
||||
const updateUserMutation = gql`
|
||||
mutation($id: ID!, $name: String) {
|
||||
mutation ($id: ID!, $name: String) {
|
||||
UpdateUser(id: $id, name: $name) {
|
||||
name
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ afterEach(async () => {
|
||||
})
|
||||
|
||||
const createCommentMutation = gql`
|
||||
mutation($id: ID, $postId: ID!, $content: String!) {
|
||||
mutation ($id: ID, $postId: ID!, $content: String!) {
|
||||
CreateComment(id: $id, postId: $postId, content: $content) {
|
||||
id
|
||||
content
|
||||
@ -128,7 +128,7 @@ describe('CreateComment', () => {
|
||||
|
||||
describe('UpdateComment', () => {
|
||||
const updateCommentMutation = gql`
|
||||
mutation($content: String!, $id: ID!) {
|
||||
mutation ($content: String!, $id: ID!) {
|
||||
UpdateComment(content: $content, id: $id) {
|
||||
id
|
||||
content
|
||||
@ -220,7 +220,7 @@ describe('UpdateComment', () => {
|
||||
|
||||
describe('DeleteComment', () => {
|
||||
const deleteCommentMutation = gql`
|
||||
mutation($id: ID!) {
|
||||
mutation ($id: ID!) {
|
||||
DeleteComment(id: $id) {
|
||||
id
|
||||
content
|
||||
|
||||
@ -9,8 +9,8 @@ const instance = getNeode()
|
||||
const driver = getDriver()
|
||||
|
||||
const updateDonationsMutation = gql`
|
||||
mutation($showDonations: Boolean, $goal: Int, $progress: Int) {
|
||||
UpdateDonations(showDonations: $showDonations, goal: $goal, progress: $progress) {
|
||||
mutation ($goal: Int, $progress: Int) {
|
||||
UpdateDonations(goal: $goal, progress: $progress) {
|
||||
id
|
||||
showDonations
|
||||
goal
|
||||
|
||||
@ -37,7 +37,7 @@ afterEach(async () => {
|
||||
|
||||
describe('AddEmailAddress', () => {
|
||||
const mutation = gql`
|
||||
mutation($email: String!) {
|
||||
mutation ($email: String!) {
|
||||
AddEmailAddress(email: $email) {
|
||||
email
|
||||
verifiedAt
|
||||
@ -142,7 +142,7 @@ describe('AddEmailAddress', () => {
|
||||
|
||||
describe('VerifyEmailAddress', () => {
|
||||
const mutation = gql`
|
||||
mutation($email: String!, $nonce: String!) {
|
||||
mutation ($email: String!, $nonce: String!) {
|
||||
VerifyEmailAddress(email: $email, nonce: $nonce) {
|
||||
email
|
||||
createdAt
|
||||
@ -309,7 +309,7 @@ describe('VerifyNonce', () => {
|
||||
})
|
||||
|
||||
const verifyNonceQuery = gql`
|
||||
query($email: String!, $nonce: String!) {
|
||||
query ($email: String!, $nonce: String!) {
|
||||
VerifyNonce(email: $email, nonce: $nonce)
|
||||
}
|
||||
`
|
||||
|
||||
@ -37,8 +37,7 @@ const babyLovesCatEmbedResponse = new Response(
|
||||
thumbnail_height: 360,
|
||||
provider_url: 'https://www.youtube.com/',
|
||||
thumbnail_width: 480,
|
||||
html:
|
||||
'<iframe width="480" height="270" src="https://www.youtube.com/embed/qkdXAtO40Fo?start=18&feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>',
|
||||
html: '<iframe width="480" height="270" src="https://www.youtube.com/embed/qkdXAtO40Fo?start=18&feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>',
|
||||
thumbnail_url: 'https://i.ytimg.com/vi/qkdXAtO40Fo/hqdefault.jpg',
|
||||
version: '1.0',
|
||||
author_name: 'Merkley Family',
|
||||
@ -57,7 +56,7 @@ describe('Query', () => {
|
||||
})
|
||||
const { query } = createTestClient(server)
|
||||
const embed = gql`
|
||||
query($url: String!) {
|
||||
query ($url: String!) {
|
||||
embed(url: $url) {
|
||||
type
|
||||
title
|
||||
@ -204,8 +203,7 @@ Have all the information for the brand in separate config files. Set these defau
|
||||
video: null,
|
||||
lang: 'de',
|
||||
sources: ['resource', 'oembed'],
|
||||
html:
|
||||
'<iframe width="480" height="270" src="https://www.youtube.com/embed/qkdXAtO40Fo?start=18&feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>',
|
||||
html: '<iframe width="480" height="270" src="https://www.youtube.com/embed/qkdXAtO40Fo?start=18&feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>',
|
||||
},
|
||||
},
|
||||
errors: undefined,
|
||||
|
||||
@ -16,7 +16,7 @@ let user2
|
||||
let variables
|
||||
|
||||
const mutationFollowUser = gql`
|
||||
mutation($id: ID!) {
|
||||
mutation ($id: ID!) {
|
||||
followUser(id: $id) {
|
||||
name
|
||||
followedBy {
|
||||
@ -29,7 +29,7 @@ const mutationFollowUser = gql`
|
||||
`
|
||||
|
||||
const mutationUnfollowUser = gql`
|
||||
mutation($id: ID!) {
|
||||
mutation ($id: ID!) {
|
||||
unfollowUser(id: $id) {
|
||||
name
|
||||
followedBy {
|
||||
@ -42,7 +42,7 @@ const mutationUnfollowUser = gql`
|
||||
`
|
||||
|
||||
const userQuery = gql`
|
||||
query($id: ID) {
|
||||
query ($id: ID) {
|
||||
User(id: $id) {
|
||||
followedBy {
|
||||
id
|
||||
|
||||
@ -11,7 +11,7 @@ let mutate
|
||||
const driver = getDriver()
|
||||
|
||||
const generateInviteCodeMutation = gql`
|
||||
mutation($expiresAt: String = null) {
|
||||
mutation ($expiresAt: String = null) {
|
||||
GenerateInviteCode(expiresAt: $expiresAt) {
|
||||
code
|
||||
createdAt
|
||||
@ -31,7 +31,7 @@ const myInviteCodesQuery = gql`
|
||||
`
|
||||
|
||||
const isValidInviteCodeQuery = gql`
|
||||
query($code: ID!) {
|
||||
query ($code: ID!) {
|
||||
isValidInviteCode(code: $code)
|
||||
}
|
||||
`
|
||||
|
||||
@ -31,7 +31,7 @@ describe('resolvers', () => {
|
||||
describe('custom mutation, not handled by neo4j-graphql-js', () => {
|
||||
let variables
|
||||
const updateUserMutation = gql`
|
||||
mutation($id: ID!, $name: String) {
|
||||
mutation ($id: ID!, $name: String) {
|
||||
UpdateUser(id: $id, name: $name) {
|
||||
name
|
||||
location {
|
||||
|
||||
@ -16,7 +16,7 @@ let mutate,
|
||||
closeReportVariables
|
||||
|
||||
const reviewMutation = gql`
|
||||
mutation($resourceId: ID!, $disable: Boolean, $closed: Boolean) {
|
||||
mutation ($resourceId: ID!, $disable: Boolean, $closed: Boolean) {
|
||||
review(resourceId: $resourceId, disable: $disable, closed: $closed) {
|
||||
createdAt
|
||||
updatedAt
|
||||
|
||||
@ -139,7 +139,7 @@ describe('given some notifications', () => {
|
||||
|
||||
describe('notifications', () => {
|
||||
const notificationQuery = gql`
|
||||
query($read: Boolean, $orderBy: NotificationOrdering) {
|
||||
query ($read: Boolean, $orderBy: NotificationOrdering) {
|
||||
notifications(read: $read, orderBy: $orderBy) {
|
||||
from {
|
||||
__typename
|
||||
@ -249,7 +249,7 @@ describe('given some notifications', () => {
|
||||
const deletePostAction = async () => {
|
||||
authenticatedUser = await author.toJson()
|
||||
const deletePostMutation = gql`
|
||||
mutation($id: ID!) {
|
||||
mutation ($id: ID!) {
|
||||
DeletePost(id: $id) {
|
||||
id
|
||||
deleted
|
||||
@ -284,7 +284,7 @@ describe('given some notifications', () => {
|
||||
|
||||
describe('markAsRead', () => {
|
||||
const markAsReadMutation = gql`
|
||||
mutation($id: ID!) {
|
||||
mutation ($id: ID!) {
|
||||
markAsRead(id: $id) {
|
||||
from {
|
||||
__typename
|
||||
|
||||
@ -55,7 +55,7 @@ describe('passwordReset', () => {
|
||||
|
||||
describe('requestPasswordReset', () => {
|
||||
const mutation = gql`
|
||||
mutation($email: String!) {
|
||||
mutation ($email: String!) {
|
||||
requestPasswordReset(email: $email)
|
||||
}
|
||||
`
|
||||
@ -116,7 +116,7 @@ describe('resetPassword', () => {
|
||||
}
|
||||
|
||||
const mutation = gql`
|
||||
mutation($nonce: String!, $email: String!, $newPassword: String!) {
|
||||
mutation ($nonce: String!, $email: String!, $newPassword: String!) {
|
||||
resetPassword(nonce: $nonce, email: $email, newPassword: $newPassword)
|
||||
}
|
||||
`
|
||||
@ -196,7 +196,7 @@ describe('resetPassword', () => {
|
||||
it('updates password of the user', async () => {
|
||||
await mutate({ mutation, variables })
|
||||
const checkLoginMutation = gql`
|
||||
mutation($email: String!, $password: String!) {
|
||||
mutation ($email: String!, $password: String!) {
|
||||
login(email: $email, password: $password)
|
||||
}
|
||||
`
|
||||
|
||||
@ -16,7 +16,7 @@ const categoryIds = ['cat9', 'cat4', 'cat15']
|
||||
let variables
|
||||
|
||||
const createPostMutation = gql`
|
||||
mutation($id: ID, $title: String!, $content: String!, $language: String, $categoryIds: [ID]) {
|
||||
mutation ($id: ID, $title: String!, $content: String!, $language: String, $categoryIds: [ID]) {
|
||||
CreatePost(
|
||||
id: $id
|
||||
title: $title
|
||||
@ -323,7 +323,7 @@ describe('CreatePost', () => {
|
||||
describe('UpdatePost', () => {
|
||||
let author, newlyCreatedPost
|
||||
const updatePostMutation = gql`
|
||||
mutation($id: ID!, $title: String!, $content: String!, $image: ImageInput) {
|
||||
mutation ($id: ID!, $title: String!, $content: String!, $image: ImageInput) {
|
||||
UpdatePost(id: $id, title: $title, content: $content, image: $image) {
|
||||
id
|
||||
title
|
||||
@ -497,7 +497,7 @@ describe('UpdatePost', () => {
|
||||
describe('pin posts', () => {
|
||||
let author
|
||||
const pinPostMutation = gql`
|
||||
mutation($id: ID!) {
|
||||
mutation ($id: ID!) {
|
||||
pinPost(id: $id) {
|
||||
id
|
||||
title
|
||||
@ -773,7 +773,7 @@ describe('pin posts', () => {
|
||||
|
||||
it('pinned post appear first even when created before other posts', async () => {
|
||||
const postOrderingQuery = gql`
|
||||
query($orderBy: [_PostOrdering]) {
|
||||
query ($orderBy: [_PostOrdering]) {
|
||||
Post(orderBy: $orderBy) {
|
||||
id
|
||||
pinned
|
||||
@ -816,7 +816,7 @@ describe('pin posts', () => {
|
||||
describe('unpin posts', () => {
|
||||
let pinnedPost
|
||||
const unpinPostMutation = gql`
|
||||
mutation($id: ID!) {
|
||||
mutation ($id: ID!) {
|
||||
unpinPost(id: $id) {
|
||||
id
|
||||
title
|
||||
@ -928,7 +928,7 @@ describe('unpin posts', () => {
|
||||
describe('DeletePost', () => {
|
||||
let author
|
||||
const deletePostMutation = gql`
|
||||
mutation($id: ID!) {
|
||||
mutation ($id: ID!) {
|
||||
DeletePost(id: $id) {
|
||||
id
|
||||
deleted
|
||||
@ -1052,14 +1052,14 @@ describe('DeletePost', () => {
|
||||
describe('emotions', () => {
|
||||
let author, postToEmote
|
||||
const PostsEmotionsCountQuery = gql`
|
||||
query($id: ID!) {
|
||||
query ($id: ID!) {
|
||||
Post(id: $id) {
|
||||
emotionsCount
|
||||
}
|
||||
}
|
||||
`
|
||||
const PostsEmotionsQuery = gql`
|
||||
query($id: ID!) {
|
||||
query ($id: ID!) {
|
||||
Post(id: $id) {
|
||||
emotions {
|
||||
emotion
|
||||
@ -1093,7 +1093,7 @@ describe('emotions', () => {
|
||||
|
||||
describe('AddPostEmotions', () => {
|
||||
const addPostEmotionsMutation = gql`
|
||||
mutation($to: _PostInput!, $data: _EMOTEDInput!) {
|
||||
mutation ($to: _PostInput!, $data: _EMOTEDInput!) {
|
||||
AddPostEmotions(to: $to, data: $data) {
|
||||
from {
|
||||
id
|
||||
@ -1210,7 +1210,7 @@ describe('emotions', () => {
|
||||
describe('RemovePostEmotions', () => {
|
||||
let removePostEmotionsVariables, postsEmotionsQueryVariables
|
||||
const removePostEmotionsMutation = gql`
|
||||
mutation($to: _PostInput!, $data: _EMOTEDInput!) {
|
||||
mutation ($to: _PostInput!, $data: _EMOTEDInput!) {
|
||||
RemovePostEmotions(to: $to, data: $data) {
|
||||
from {
|
||||
id
|
||||
@ -1309,13 +1309,13 @@ describe('emotions', () => {
|
||||
let PostsEmotionsByCurrentUserVariables
|
||||
|
||||
const PostsEmotionsCountByEmotionQuery = gql`
|
||||
query($postId: ID!, $data: _EMOTEDInput!) {
|
||||
query ($postId: ID!, $data: _EMOTEDInput!) {
|
||||
PostsEmotionsCountByEmotion(postId: $postId, data: $data)
|
||||
}
|
||||
`
|
||||
|
||||
const PostsEmotionsByCurrentUserQuery = gql`
|
||||
query($postId: ID!) {
|
||||
query ($postId: ID!) {
|
||||
PostsEmotionsByCurrentUser(postId: $postId)
|
||||
}
|
||||
`
|
||||
|
||||
@ -36,7 +36,7 @@ afterEach(async () => {
|
||||
|
||||
describe('Signup', () => {
|
||||
const mutation = gql`
|
||||
mutation($email: String!, $inviteCode: String) {
|
||||
mutation ($email: String!, $inviteCode: String) {
|
||||
Signup(email: $email, inviteCode: $inviteCode) {
|
||||
email
|
||||
}
|
||||
@ -145,7 +145,7 @@ describe('Signup', () => {
|
||||
|
||||
describe('SignupVerification', () => {
|
||||
const mutation = gql`
|
||||
mutation(
|
||||
mutation (
|
||||
$name: String!
|
||||
$password: String!
|
||||
$email: String!
|
||||
|
||||
@ -11,7 +11,7 @@ describe('file a report on a resource', () => {
|
||||
let authenticatedUser, currentUser, mutate, query, moderator, abusiveUser, otherReportingUser
|
||||
const categoryIds = ['cat9']
|
||||
const fileReportMutation = gql`
|
||||
mutation($resourceId: ID!, $reasonCategory: ReasonCategory!, $reasonDescription: String!) {
|
||||
mutation ($resourceId: ID!, $reasonCategory: ReasonCategory!, $reasonDescription: String!) {
|
||||
fileReport(
|
||||
resourceId: $resourceId
|
||||
reasonCategory: $reasonCategory
|
||||
@ -42,7 +42,7 @@ describe('file a report on a resource', () => {
|
||||
reasonDescription: 'Violates code of conduct !!!',
|
||||
}
|
||||
const reportsQuery = gql`
|
||||
query($closed: Boolean) {
|
||||
query ($closed: Boolean) {
|
||||
reports(orderBy: createdAt_desc, closed: $closed) {
|
||||
id
|
||||
createdAt
|
||||
@ -74,7 +74,7 @@ describe('file a report on a resource', () => {
|
||||
}
|
||||
`
|
||||
const reviewMutation = gql`
|
||||
mutation($resourceId: ID!, $disable: Boolean, $closed: Boolean) {
|
||||
mutation ($resourceId: ID!, $disable: Boolean, $closed: Boolean) {
|
||||
review(resourceId: $resourceId, disable: $disable, closed: $closed) {
|
||||
createdAt
|
||||
resource {
|
||||
|
||||
@ -76,7 +76,7 @@ describe('rewards', () => {
|
||||
|
||||
describe('reward', () => {
|
||||
const rewardMutation = gql`
|
||||
mutation($from: ID!, $to: ID!) {
|
||||
mutation ($from: ID!, $to: ID!) {
|
||||
reward(badgeKey: $from, userId: $to) {
|
||||
id
|
||||
badges {
|
||||
@ -266,7 +266,7 @@ describe('rewards', () => {
|
||||
}
|
||||
|
||||
const unrewardMutation = gql`
|
||||
mutation($from: ID!, $to: ID!) {
|
||||
mutation ($from: ID!, $to: ID!) {
|
||||
unreward(badgeKey: $from, userId: $to) {
|
||||
id
|
||||
badges {
|
||||
|
||||
@ -28,7 +28,7 @@ afterAll(async () => {
|
||||
})
|
||||
|
||||
const searchQuery = gql`
|
||||
query($query: String!) {
|
||||
query ($query: String!) {
|
||||
searchResults(query: $query, limit: 5) {
|
||||
__typename
|
||||
... on Post {
|
||||
@ -49,7 +49,7 @@ const searchQuery = gql`
|
||||
`
|
||||
|
||||
const searchPostQuery = gql`
|
||||
query($query: String!, $firstPosts: Int, $postsOffset: Int) {
|
||||
query ($query: String!, $firstPosts: Int, $postsOffset: Int) {
|
||||
searchPosts(query: $query, firstPosts: $firstPosts, postsOffset: $postsOffset) {
|
||||
postCount
|
||||
posts {
|
||||
|
||||
@ -9,17 +9,17 @@ const instance = getNeode()
|
||||
const driver = getDriver()
|
||||
|
||||
const mutationShoutPost = gql`
|
||||
mutation($id: ID!) {
|
||||
mutation ($id: ID!) {
|
||||
shout(id: $id, type: Post)
|
||||
}
|
||||
`
|
||||
const mutationUnshoutPost = gql`
|
||||
mutation($id: ID!) {
|
||||
mutation ($id: ID!) {
|
||||
unshout(id: $id, type: Post)
|
||||
}
|
||||
`
|
||||
const queryPost = gql`
|
||||
query($id: ID!) {
|
||||
query ($id: ID!) {
|
||||
Post(id: $id) {
|
||||
id
|
||||
shoutedBy {
|
||||
|
||||
@ -70,7 +70,7 @@ describe('SocialMedia', () => {
|
||||
|
||||
beforeEach(() => {
|
||||
mutation = gql`
|
||||
mutation($url: String!) {
|
||||
mutation ($url: String!) {
|
||||
CreateSocialMedia(url: $url) {
|
||||
id
|
||||
url
|
||||
@ -131,7 +131,7 @@ describe('SocialMedia', () => {
|
||||
describe('ownedBy', () => {
|
||||
beforeEach(() => {
|
||||
mutation = gql`
|
||||
mutation($url: String!) {
|
||||
mutation ($url: String!) {
|
||||
CreateSocialMedia(url: $url) {
|
||||
url
|
||||
ownedBy {
|
||||
@ -162,7 +162,7 @@ describe('SocialMedia', () => {
|
||||
const socialMedia = await setUpSocialMedia()
|
||||
|
||||
mutation = gql`
|
||||
mutation($id: ID!, $url: String!) {
|
||||
mutation ($id: ID!, $url: String!) {
|
||||
UpdateSocialMedia(id: $id, url: $url) {
|
||||
id
|
||||
url
|
||||
@ -225,7 +225,7 @@ describe('SocialMedia', () => {
|
||||
const socialMedia = await setUpSocialMedia()
|
||||
|
||||
mutation = gql`
|
||||
mutation($id: ID!) {
|
||||
mutation ($id: ID!) {
|
||||
DeleteSocialMedia(id: $id) {
|
||||
id
|
||||
url
|
||||
|
||||
@ -39,7 +39,7 @@ afterAll(async () => {
|
||||
})
|
||||
|
||||
const userDataQuery = gql`
|
||||
query($id: ID!) {
|
||||
query ($id: ID!) {
|
||||
userData(id: $id) {
|
||||
user {
|
||||
id
|
||||
|
||||
@ -171,7 +171,7 @@ describe('currentUser', () => {
|
||||
|
||||
describe('login', () => {
|
||||
const loginMutation = gql`
|
||||
mutation($email: String!, $password: String!) {
|
||||
mutation ($email: String!, $password: String!) {
|
||||
login(email: $email, password: $password)
|
||||
}
|
||||
`
|
||||
@ -287,7 +287,7 @@ describe('login', () => {
|
||||
|
||||
describe('change password', () => {
|
||||
const changePasswordMutation = gql`
|
||||
mutation($oldPassword: String!, $newPassword: String!) {
|
||||
mutation ($oldPassword: String!, $newPassword: String!) {
|
||||
changePassword(oldPassword: $oldPassword, newPassword: $newPassword)
|
||||
}
|
||||
`
|
||||
|
||||
@ -17,7 +17,7 @@ const driver = getDriver()
|
||||
const neode = getNeode()
|
||||
|
||||
const deleteUserMutation = gql`
|
||||
mutation($id: ID!, $resource: [Deletable]) {
|
||||
mutation ($id: ID!, $resource: [Deletable]) {
|
||||
DeleteUser(id: $id, resource: $resource) {
|
||||
id
|
||||
name
|
||||
@ -46,7 +46,7 @@ const deleteUserMutation = gql`
|
||||
`
|
||||
|
||||
const switchUserRoleMutation = gql`
|
||||
mutation($role: UserGroup!, $id: ID!) {
|
||||
mutation ($role: UserGroup!, $id: ID!) {
|
||||
switchUserRole(role: $role, id: $id) {
|
||||
name
|
||||
role
|
||||
@ -81,7 +81,7 @@ describe('User', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
userQuery = gql`
|
||||
query($email: String) {
|
||||
query ($email: String) {
|
||||
User(email: $email) {
|
||||
name
|
||||
}
|
||||
@ -144,7 +144,7 @@ describe('UpdateUser', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
updateUserMutation = gql`
|
||||
mutation(
|
||||
mutation (
|
||||
$id: ID!
|
||||
$name: String
|
||||
$termsAndConditionsAgreedVersion: String
|
||||
|
||||
@ -9,7 +9,7 @@ const driver = getDriver()
|
||||
let authenticatedUser, mutate, query, variables
|
||||
|
||||
const updateUserMutation = gql`
|
||||
mutation($id: ID!, $name: String!, $locationName: String) {
|
||||
mutation ($id: ID!, $name: String!, $locationName: String) {
|
||||
UpdateUser(id: $id, name: $name, locationName: $locationName) {
|
||||
locationName
|
||||
}
|
||||
@ -17,7 +17,7 @@ const updateUserMutation = gql`
|
||||
`
|
||||
|
||||
const queryLocations = gql`
|
||||
query($place: String!, $lang: String!) {
|
||||
query ($place: String!, $lang: String!) {
|
||||
queryLocations(place: $place, lang: $lang) {
|
||||
place_name
|
||||
id
|
||||
|
||||
@ -93,7 +93,7 @@ describe('muteUser', () => {
|
||||
muteAction = (variables) => {
|
||||
const { mutate } = createTestClient(server)
|
||||
const muteUserMutation = gql`
|
||||
mutation($id: ID!) {
|
||||
mutation ($id: ID!) {
|
||||
muteUser(id: $id) {
|
||||
id
|
||||
name
|
||||
@ -310,7 +310,7 @@ describe('unmuteUser', () => {
|
||||
unmuteAction = (variables) => {
|
||||
const { mutate } = createTestClient(server)
|
||||
const unmuteUserMutation = gql`
|
||||
mutation($id: ID!) {
|
||||
mutation ($id: ID!) {
|
||||
unmuteUser(id: $id) {
|
||||
id
|
||||
name
|
||||
|
||||
@ -32,7 +32,7 @@ afterAll(async () => {
|
||||
describe('count post teaser views', () => {
|
||||
let aUser, bUser
|
||||
const markTeaserAsViewed = gql`
|
||||
mutation($id: ID!) {
|
||||
mutation ($id: ID!) {
|
||||
markTeaserAsViewed(id: $id) {
|
||||
id
|
||||
viewedTeaserCount
|
||||
|
||||
@ -910,6 +910,13 @@
|
||||
dependencies:
|
||||
regenerator-runtime "^0.13.4"
|
||||
|
||||
"@babel/runtime@^7.9.2":
|
||||
version "7.12.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e"
|
||||
integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==
|
||||
dependencies:
|
||||
regenerator-runtime "^0.13.4"
|
||||
|
||||
"@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6":
|
||||
version "7.8.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b"
|
||||
@ -956,32 +963,32 @@
|
||||
exec-sh "^0.3.2"
|
||||
minimist "^1.2.0"
|
||||
|
||||
"@graphql-toolkit/common@0.9.12":
|
||||
version "0.9.12"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-toolkit/common/-/common-0.9.12.tgz#a3bf91d00130100cfa0a72be718b16cc1011ab45"
|
||||
integrity sha512-NjBVxeM1GB0bldiBm4UQoxKtbu/hjRfcqDEt1JPia+uXgFde3qTxtF5IZkworRFNCp+8KPSVrwcreQHSfFW63w==
|
||||
"@graphql-toolkit/common@0.10.4":
|
||||
version "0.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-toolkit/common/-/common-0.10.4.tgz#7785f2a3f14559d0778859c49f4442078c196695"
|
||||
integrity sha512-HQ3HaxCqX+UE8y/0h7LMDBBGSIKJxY/gaQesaksvE2Y+N4NpSWdiW6HpOcgXfC2HGf9yM0hEdsERzzL8z3mbHQ==
|
||||
dependencies:
|
||||
aggregate-error "3.0.1"
|
||||
camel-case "4.1.1"
|
||||
graphql-tools-fork "9.0.1"
|
||||
graphql-tools "5.0.0"
|
||||
lodash "4.17.15"
|
||||
|
||||
"@graphql-toolkit/file-loading@0.9.12":
|
||||
version "0.9.12"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-toolkit/file-loading/-/file-loading-0.9.12.tgz#f7d5d7e042df59c4e6c8fe3417c67dd1cddf9043"
|
||||
integrity sha512-xEmKkbWI5FXQARTN3dbPzshwcmduOJUvx1QGsfcuryVDdQJZynUEaPF7IxYaFpvQF7vwxGIRdff/jC/a5ypDrA==
|
||||
"@graphql-toolkit/file-loading@0.10.4":
|
||||
version "0.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-toolkit/file-loading/-/file-loading-0.10.4.tgz#50e8933e44b17853544c1fe63350df93f33a5e80"
|
||||
integrity sha512-oUmy/sO3BJfax85pVKI7FZ6TWrViNuWXoJkRM293YV9bKGuYU9TgqZoHyM+oEqWO5ruXCL/nCdw3cIBau+rSNA==
|
||||
dependencies:
|
||||
globby "11.0.0"
|
||||
unixify "1.0.0"
|
||||
|
||||
"@graphql-toolkit/schema-merging@0.9.12":
|
||||
version "0.9.12"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-toolkit/schema-merging/-/schema-merging-0.9.12.tgz#f058a7d256a4ed0e61e9874f90ae03326b81668e"
|
||||
integrity sha512-ciqxLeMw7KPbJcq/xgnPbGyJGRO6bO1zQcdWCUSssyw8VDRHj5PFqEOAzT88eZQkEtg3qLN/wQEypeyFyNTHzw==
|
||||
"@graphql-toolkit/schema-merging@0.10.4":
|
||||
version "0.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-toolkit/schema-merging/-/schema-merging-0.10.4.tgz#2428590a531a33e9fe03be27cce9030f1c4c044b"
|
||||
integrity sha512-naL6reYBuILLMrkMfKz0lOLL0kl6gGYnaaywnO/Dgp9F4NeAxDdAs5CV6Fy9NO5OzePFP58Dnc4sh2RyYrrFJg==
|
||||
dependencies:
|
||||
"@graphql-toolkit/common" "0.9.12"
|
||||
"@graphql-toolkit/common" "0.10.4"
|
||||
deepmerge "4.2.2"
|
||||
graphql-tools-fork "9.0.1"
|
||||
graphql-tools "5.0.0"
|
||||
tslib "1.11.1"
|
||||
|
||||
"@hapi/address@2.x.x":
|
||||
@ -2036,7 +2043,7 @@ apollo-link-context@~1.0.20:
|
||||
apollo-link "^1.2.14"
|
||||
tslib "^1.9.3"
|
||||
|
||||
apollo-link-http-common@^0.2.15, apollo-link-http-common@^0.2.16:
|
||||
apollo-link-http-common@^0.2.14, apollo-link-http-common@^0.2.16:
|
||||
version "0.2.16"
|
||||
resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz#756749dafc732792c8ca0923f9a40564b7c59ecc"
|
||||
integrity sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg==
|
||||
@ -2054,7 +2061,7 @@ apollo-link-http@~1.5.17:
|
||||
apollo-link-http-common "^0.2.16"
|
||||
tslib "^1.9.3"
|
||||
|
||||
apollo-link@^1.0.0, apollo-link@^1.2.13, apollo-link@^1.2.14:
|
||||
apollo-link@^1.0.0, apollo-link@^1.2.12, apollo-link@^1.2.14:
|
||||
version "1.2.14"
|
||||
resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9"
|
||||
integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==
|
||||
@ -2211,6 +2218,16 @@ apollo-tracing@^0.12.0:
|
||||
apollo-server-env "^2.4.5"
|
||||
apollo-server-plugin-base "^0.10.2"
|
||||
|
||||
apollo-upload-client@^13.0.0:
|
||||
version "13.0.0"
|
||||
resolved "https://registry.yarnpkg.com/apollo-upload-client/-/apollo-upload-client-13.0.0.tgz#146d1ddd85d711fcac8ca97a72d3ca6787f2b71b"
|
||||
integrity sha512-lJ9/bk1BH1lD15WhWRha2J3+LrXrPIX5LP5EwiOUHv8PCORp4EUrcujrA3rI5hZeZygrTX8bshcuMdpqpSrvtA==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.9.2"
|
||||
apollo-link "^1.2.12"
|
||||
apollo-link-http-common "^0.2.14"
|
||||
extract-files "^8.0.0"
|
||||
|
||||
apollo-utilities@1.3.3, apollo-utilities@^1.3.3:
|
||||
version "1.3.3"
|
||||
resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.3.tgz#f1854715a7be80cd810bc3ac95df085815c0787c"
|
||||
@ -4299,10 +4316,10 @@ extglob@^2.0.4:
|
||||
snapdragon "^0.8.1"
|
||||
to-regex "^3.0.1"
|
||||
|
||||
extract-files@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-7.0.0.tgz#3dc7853320ff7876ec62d6e98f2f4e6f3e6282f6"
|
||||
integrity sha512-3AUlT7TD+DbQXNe3t70QrgJU6Wgcp7rk1Zm0vqWz8OYnw4vxihgG0TgZ2SIGrVqScc4WfOu7B4a0BezGJ0YqvQ==
|
||||
extract-files@^8.0.0:
|
||||
version "8.1.0"
|
||||
resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-8.1.0.tgz#46a0690d0fe77411a2e3804852adeaa65cd59288"
|
||||
integrity sha512-PTGtfthZK79WUMk+avLmwx3NGdU8+iVFXC2NMGxKsn0MnihOG2lvumj+AZo8CTwTrwjXDgZ5tztbRlEdRjBonQ==
|
||||
|
||||
extsprintf@1.3.0:
|
||||
version "1.3.0"
|
||||
@ -4849,19 +4866,19 @@ graphql-tag@^2.9.2, graphql-tag@~2.10.3:
|
||||
resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.3.tgz#ea1baba5eb8fc6339e4c4cf049dabe522b0edf03"
|
||||
integrity sha512-4FOv3ZKfA4WdOKJeHdz6B3F/vxBLSgmBcGeAFPf4n1F64ltJUvOOerNj0rsJxONQGdhUMynQIvd6LzB+1J5oKA==
|
||||
|
||||
graphql-tools-fork@9.0.1:
|
||||
version "9.0.1"
|
||||
resolved "https://registry.yarnpkg.com/graphql-tools-fork/-/graphql-tools-fork-9.0.1.tgz#fc8df40c108bdba3268999dea355cc614c765038"
|
||||
integrity sha512-kM6mUNVekgnWKtVqLGQ9HvQqQ3zZVPZRg1esltBoohsbUMaChl+9QkjBjoMxnZPnbTGOOGGagopNBQALIBysNg==
|
||||
graphql-tools@5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-5.0.0.tgz#67281c834a0e29f458adba8018f424816fa627e9"
|
||||
integrity sha512-5zn3vtn//382b7G3Wzz3d5q/sh+f7tVrnxeuhTMTJ7pWJijNqLxH7VEzv8VwXCq19zAzHYEosFHfXiK7qzvk7w==
|
||||
dependencies:
|
||||
apollo-link "^1.2.13"
|
||||
apollo-link-http-common "^0.2.15"
|
||||
apollo-link "^1.2.14"
|
||||
apollo-upload-client "^13.0.0"
|
||||
deprecated-decorator "^0.1.6"
|
||||
extract-files "^7.0.0"
|
||||
form-data "^3.0.0"
|
||||
iterall "^1.3.0"
|
||||
node-fetch "^2.6.0"
|
||||
uuid "^7.0.2"
|
||||
tslib "^1.11.1"
|
||||
uuid "^7.0.3"
|
||||
|
||||
graphql-tools@^4.0.0, graphql-tools@^4.0.4, graphql-tools@^4.0.5:
|
||||
version "4.0.8"
|
||||
@ -6606,13 +6623,13 @@ merge-descriptors@1.0.1:
|
||||
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
|
||||
integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
|
||||
|
||||
merge-graphql-schemas@^1.7.7:
|
||||
version "1.7.7"
|
||||
resolved "https://registry.yarnpkg.com/merge-graphql-schemas/-/merge-graphql-schemas-1.7.7.tgz#673898f97c384d88fd66e49359b2f604e5864441"
|
||||
integrity sha512-3mjFHXpsF+bnsnSy/FlZiWCcNo7AULuG8kEBE+YVX8qbzNrEPJVhSg7ANr5LjQZbGtSlTz7fa3Wqw0bfbQ5R5Q==
|
||||
merge-graphql-schemas@^1.7.8:
|
||||
version "1.7.8"
|
||||
resolved "https://registry.yarnpkg.com/merge-graphql-schemas/-/merge-graphql-schemas-1.7.8.tgz#11a0a672a38a61d988c09ffdebe1bd4f8418de48"
|
||||
integrity sha512-C3EJ1i86OjmbcCT524wVPRl17M5VZzgyh9kIGYAlYnAILX+7xfh8cCbMKfehh9n4opZg6CtcPogCiVZ6PB2NyQ==
|
||||
dependencies:
|
||||
"@graphql-toolkit/file-loading" "0.9.12"
|
||||
"@graphql-toolkit/schema-merging" "0.9.12"
|
||||
"@graphql-toolkit/file-loading" "0.10.4"
|
||||
"@graphql-toolkit/schema-merging" "0.10.4"
|
||||
tslib "1.11.1"
|
||||
|
||||
merge-stream@^2.0.0:
|
||||
@ -7816,10 +7833,10 @@ prettier-linter-helpers@^1.0.0:
|
||||
dependencies:
|
||||
fast-diff "^1.1.2"
|
||||
|
||||
prettier@~2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.0.tgz#8a03c7777883b29b37fb2c4348c66a78e980418b"
|
||||
integrity sha512-yYerpkvseM4iKD/BXLYUkQV5aKt4tQPqaGW6EsZjzyu0r7sVZZNPJW4Y8MyKmicp6t42XUPcBVA+H6sB3gqndw==
|
||||
prettier@~2.3.2:
|
||||
version "2.3.2"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d"
|
||||
integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==
|
||||
|
||||
pretty-format@^25.3.0:
|
||||
version "25.3.0"
|
||||
@ -9406,15 +9423,15 @@ ts-invariant@^0.4.0:
|
||||
dependencies:
|
||||
tslib "^1.9.3"
|
||||
|
||||
tslib@1.11.1, tslib@^1.9.0:
|
||||
tslib@1.11.1:
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
|
||||
integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==
|
||||
|
||||
tslib@^1.10.0, tslib@^1.9.3:
|
||||
version "1.13.0"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
|
||||
integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==
|
||||
tslib@^1.10.0, tslib@^1.11.1, tslib@^1.9.0, tslib@^1.9.3:
|
||||
version "1.14.1"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||
|
||||
tunnel-agent@^0.6.0:
|
||||
version "0.6.0"
|
||||
@ -9689,7 +9706,7 @@ uuid@^3.1.0, uuid@^3.3.2:
|
||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
|
||||
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
|
||||
|
||||
uuid@^7.0.2:
|
||||
uuid@^7.0.3:
|
||||
version "7.0.3"
|
||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b"
|
||||
integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==
|
||||
|
||||
@ -49,5 +49,6 @@
|
||||
},
|
||||
"resolutions": {
|
||||
"set-value": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"dependencies": {}
|
||||
}
|
||||
|
||||
@ -59,6 +59,8 @@
|
||||
:onClick="commands.horizontal_rule"
|
||||
icon="minus"
|
||||
/>
|
||||
|
||||
<menu-legend class="legend-button" />
|
||||
</div>
|
||||
</editor-menu-bar>
|
||||
</template>
|
||||
@ -66,11 +68,13 @@
|
||||
<script>
|
||||
import { EditorMenuBar } from 'tiptap'
|
||||
import MenuBarButton from './MenuBarButton'
|
||||
import MenuLegend from './MenuLegend.vue'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
EditorMenuBar,
|
||||
MenuBarButton,
|
||||
MenuLegend,
|
||||
},
|
||||
props: {
|
||||
editor: Object,
|
||||
@ -78,3 +82,10 @@ export default {
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.legend-button {
|
||||
display: inline;
|
||||
position: relative;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -10,7 +10,7 @@ export default {
|
||||
isActive: Boolean,
|
||||
icon: String,
|
||||
label: String,
|
||||
onClick: Function,
|
||||
onClick: { type: Function, default: () => {} },
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
115
webapp/components/Editor/MenuLegend.vue
Normal file
115
webapp/components/Editor/MenuLegend.vue
Normal file
@ -0,0 +1,115 @@
|
||||
<template>
|
||||
<dropdown :placement="placement" offset="5">
|
||||
<template #default="{ openMenu, closeMenu }">
|
||||
<slot name="button">
|
||||
<menu-bar-button
|
||||
icon="question-circle"
|
||||
circle
|
||||
ghost
|
||||
class="legend-question-button"
|
||||
@mouseover.native="openMenu()"
|
||||
@mouseleave.native="closeMenu()"
|
||||
/>
|
||||
</slot>
|
||||
</template>
|
||||
<template #popover="" class="legend">
|
||||
<div class="legend-container">
|
||||
<div class="legend-header">{{ $t(`editor.legend.legendTitle`) }}</div>
|
||||
<div
|
||||
:class="['legend-table', index < legendItems.length - 1 && 'legend-table-split-line']"
|
||||
v-for="(item, index) in legendItems"
|
||||
:key="item.name"
|
||||
>
|
||||
<div>
|
||||
<base-button size="small" circle ghost :icon="item.iconName" class="legend-icon">
|
||||
<span v-if="item.label">{{ item.label }}</span>
|
||||
</base-button>
|
||||
<span>{{ $t(item.name) }}</span>
|
||||
</div>
|
||||
<span class="tool-shortcut">{{ item.shortcut }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</dropdown>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Dropdown from '~/components/Dropdown'
|
||||
import MenuBarButton from './MenuBarButton'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
Dropdown,
|
||||
MenuBarButton,
|
||||
},
|
||||
props: {
|
||||
placement: { type: String, default: 'bottom-start' },
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
legendItems: [
|
||||
{ iconName: 'bold', name: `editor.legend.bold`, shortcut: 'ctrl + b' },
|
||||
{ iconName: 'italic', name: `editor.legend.italic`, shortcut: 'ctrl + i' },
|
||||
{ iconName: 'underline', name: `editor.legend.underline`, shortcut: 'ctrl + u' },
|
||||
{ iconName: 'link', name: `editor.legend.link`, shortcut: '' },
|
||||
{ iconName: 'paragraph', name: `editor.legend.paragraph`, shortcut: '' },
|
||||
{ label: 'H3', name: `editor.legend.heading3`, shortcut: '### + space' },
|
||||
{ label: 'H4', name: `editor.legend.heading4`, shortcut: '#### + space' },
|
||||
{ iconName: 'list-ul', name: `editor.legend.unorderedList`, shortcut: '* + space' },
|
||||
{ iconName: 'list-ol', name: `editor.legend.orderedList`, shortcut: '1. + space' },
|
||||
{ iconName: 'quote-right', name: `editor.legend.quote`, shortcut: '> + space' },
|
||||
{ iconName: 'minus', name: `editor.legend.ruler`, shortcut: '---' },
|
||||
],
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.legend-question-button {
|
||||
color: $color-neutral-40;
|
||||
font-size: 1.2rem !important;
|
||||
}
|
||||
.legend-question-button:hover {
|
||||
background: none !important;
|
||||
color: $color-neutral-40 !important;
|
||||
}
|
||||
.legend-question-button:focus {
|
||||
outline: none !important;
|
||||
}
|
||||
.legend {
|
||||
padding: 0rem;
|
||||
border: 1px solid #e5e3e8;
|
||||
}
|
||||
.legend-container {
|
||||
display: flex;
|
||||
width: 18rem !important;
|
||||
flex-direction: column;
|
||||
}
|
||||
.legend-header {
|
||||
margin-bottom: 0.5em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.legend-table {
|
||||
display: grid;
|
||||
align-items: center;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
padding: 0.2em;
|
||||
}
|
||||
.legend-table-split-line {
|
||||
border-bottom: 0.5px solid grey;
|
||||
}
|
||||
|
||||
.legend-table > div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.tool-shortcut {
|
||||
padding-left: 2rem;
|
||||
}
|
||||
.legend-icon {
|
||||
pointer-events: none;
|
||||
margin-right: 1rem;
|
||||
}
|
||||
</style>
|
||||
@ -313,6 +313,20 @@
|
||||
"addLetter": "Tippe einen Buchstaben",
|
||||
"noHashtagsFound": "Keine Hashtags gefunden"
|
||||
},
|
||||
"legend": {
|
||||
"bold": "Fett",
|
||||
"heading3": "Überschrift 3",
|
||||
"heading4": "Überschrift 4",
|
||||
"italic": "Kursiv",
|
||||
"legendTitle": "Tastaturkürzel und Markdown-Code",
|
||||
"link": "Verlinkung",
|
||||
"orderedList": "Geordnete Liste",
|
||||
"paragraph": "Absatz",
|
||||
"quote": "Zitat",
|
||||
"ruler": "Linie",
|
||||
"underline": "Unterstrichen",
|
||||
"unorderedList": "Ungeordnete Liste"
|
||||
},
|
||||
"mention": {
|
||||
"noUsersFound": "Keine Benutzer gefunden"
|
||||
},
|
||||
|
||||
@ -313,6 +313,20 @@
|
||||
"addLetter": "Type a letter",
|
||||
"noHashtagsFound": "No hashtags found"
|
||||
},
|
||||
"legend": {
|
||||
"bold": "Bold",
|
||||
"heading3": "Heading 3",
|
||||
"heading4": "Heading 4",
|
||||
"italic": "Italic",
|
||||
"legendTitle": "Keyboard shortcuts and markdown code",
|
||||
"link": "Link",
|
||||
"orderedList": "Ordered list",
|
||||
"paragraph": "Paragraph",
|
||||
"quote": "Quote",
|
||||
"ruler": "Ruler",
|
||||
"underline": "Underline",
|
||||
"unorderedList": "Unordered list"
|
||||
},
|
||||
"mention": {
|
||||
"noUsersFound": "No users found"
|
||||
},
|
||||
|
||||
@ -259,6 +259,20 @@
|
||||
"addLetter": "Введите букву",
|
||||
"noHashtagsFound": "Хэштеги не найдены"
|
||||
},
|
||||
"legend": {
|
||||
"bold": "Полужирный",
|
||||
"heading3": "Заголовок 3",
|
||||
"heading4": "Заголовок 4",
|
||||
"italic": "Курсив",
|
||||
"legendTitle": "Клавиатурные сокращения и код разметки",
|
||||
"link": "Ссылка",
|
||||
"orderedList": "Нумерованный список",
|
||||
"paragraph": "Параграф",
|
||||
"quote": "Кавычки",
|
||||
"ruler": "Горизонтальная линия",
|
||||
"underline": "Подчеркнутый",
|
||||
"unorderedList": "Маркированный список"
|
||||
},
|
||||
"mention": {
|
||||
"noUsersFound": "Пользователи не найдены"
|
||||
},
|
||||
|
||||
4814
webapp/package-lock.json
generated
4814
webapp/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -78,7 +78,7 @@
|
||||
"cross-env": "~7.0.2",
|
||||
"date-fns": "2.12.0",
|
||||
"express": "~4.17.1",
|
||||
"graphql": "~14.6.0",
|
||||
"graphql": "~14.7.0",
|
||||
"intersection-observer": "^0.12.0",
|
||||
"jsonwebtoken": "~8.5.1",
|
||||
"linkify-it": "~2.2.0",
|
||||
@ -133,7 +133,7 @@
|
||||
"eslint-plugin-jest": "~24.1.3",
|
||||
"eslint-plugin-node": "~11.1.0",
|
||||
"eslint-plugin-prettier": "~3.1.4",
|
||||
"eslint-plugin-promise": "~4.2.1",
|
||||
"eslint-plugin-promise": "~4.3.1",
|
||||
"eslint-plugin-standard": "~5.0.0",
|
||||
"eslint-plugin-vue": "~6.2.2",
|
||||
"faker": "^5.1.0",
|
||||
|
||||
@ -8016,10 +8016,10 @@ eslint-plugin-prettier@~3.1.4:
|
||||
dependencies:
|
||||
prettier-linter-helpers "^1.0.0"
|
||||
|
||||
eslint-plugin-promise@~4.2.1:
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a"
|
||||
integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==
|
||||
eslint-plugin-promise@~4.3.1:
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz#61485df2a359e03149fdafc0a68b0e030ad2ac45"
|
||||
integrity sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==
|
||||
|
||||
eslint-plugin-standard@~5.0.0:
|
||||
version "5.0.0"
|
||||
@ -9349,10 +9349,10 @@ graphql-upload@^8.0.2:
|
||||
http-errors "^1.7.3"
|
||||
object-path "^0.11.4"
|
||||
|
||||
"graphql@14.0.2 - 14.2.0 || ^14.3.1", graphql@^14.5.8, graphql@~14.6.0:
|
||||
version "14.6.0"
|
||||
resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.6.0.tgz#57822297111e874ea12f5cd4419616930cd83e49"
|
||||
integrity sha512-VKzfvHEKybTKjQVpTFrA5yUq2S9ihcZvfJAtsDBBCuV6wauPu1xl/f9ehgVf0FcEJJs4vz6ysb/ZMkGigQZseg==
|
||||
"graphql@14.0.2 - 14.2.0 || ^14.3.1", graphql@^14.5.8, graphql@~14.7.0:
|
||||
version "14.7.0"
|
||||
resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.7.0.tgz#7fa79a80a69be4a31c27dda824dc04dac2035a72"
|
||||
integrity sha512-l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA==
|
||||
dependencies:
|
||||
iterall "^1.2.2"
|
||||
|
||||
@ -10670,16 +10670,11 @@ istanbul-reports@^3.0.2:
|
||||
html-escaper "^2.0.0"
|
||||
istanbul-lib-report "^3.0.0"
|
||||
|
||||
iterall@^1.1.3, iterall@^1.2.1:
|
||||
iterall@^1.1.3, iterall@^1.2.1, iterall@^1.2.2:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea"
|
||||
integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==
|
||||
|
||||
iterall@^1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz#92d70deb8028e0c39ff3164fdbf4d8b088130cd7"
|
||||
integrity sha512-yynBb1g+RFUPY64fTrFv7nsjRrENBQJaX2UL+2Szc9REFrSNm1rpSXHGzhmAy7a9uv3vlvgBlXnf9RqmPH1/DA==
|
||||
|
||||
izitoast@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/izitoast/-/izitoast-1.4.0.tgz#1aa4e3408b7159fba743506af66d8be54fd929fb"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user