Compare commits
3 Commits
pse-335/do
...
screenshot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
878978a191 | ||
|
|
444d6dd5a9 | ||
|
|
65efe55677 |
5
.github/ISSUE_TEMPLATE/bug-desktop.yml
vendored
5
.github/ISSUE_TEMPLATE/bug-desktop.yml
vendored
@@ -58,9 +58,8 @@ body:
|
||||
id: homeserver
|
||||
attributes:
|
||||
label: Homeserver
|
||||
description: |
|
||||
Which server is your account registered on? If it is a local or non-public homeserver, please tell us what is the homeserver implementation (ex: Synapse/Dendrite/etc.) and the version.
|
||||
placeholder: e.g. matrix.org or Synapse 1.50.0rc1
|
||||
description: Which server is your account registered on?
|
||||
placeholder: e.g. matrix.org
|
||||
validations:
|
||||
required: false
|
||||
- type: dropdown
|
||||
|
||||
5
.github/ISSUE_TEMPLATE/bug-web.yml
vendored
5
.github/ISSUE_TEMPLATE/bug-web.yml
vendored
@@ -66,9 +66,8 @@ body:
|
||||
id: homeserver
|
||||
attributes:
|
||||
label: Homeserver
|
||||
description: |
|
||||
Which server is your account registered on? If it is a local or non-public homeserver, please tell us what is the homeserver implementation (ex: Synapse/Dendrite/etc.) and the version.
|
||||
placeholder: e.g. matrix.org or Synapse 1.50.0rc1
|
||||
description: Which server is your account registered on?
|
||||
placeholder: e.g. matrix.org
|
||||
validations:
|
||||
required: false
|
||||
- type: dropdown
|
||||
|
||||
8
.github/ISSUE_TEMPLATE/config.ylm
vendored
8
.github/ISSUE_TEMPLATE/config.ylm
vendored
@@ -1,8 +0,0 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Report a security vulnerability
|
||||
url: https://github.com/vector-im/element-web/security/policy
|
||||
about: Please review our security policy for more details
|
||||
- name: Questions & support
|
||||
url: https://matrix.to/#/#element-web:matrix.org
|
||||
about: Please ask and answer questions here.
|
||||
@@ -15,6 +15,7 @@ jobs:
|
||||
contains(github.event.issue.labels.*.name, 'A-Polls') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Location-Sharing') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Message-Bubbles') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-Maximised-Widgets') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-IA') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Themes-Custom') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
|
||||
@@ -29,7 +30,7 @@ jobs:
|
||||
repo: context.repo.repo,
|
||||
labels: ['Z-Labs']
|
||||
})
|
||||
|
||||
|
||||
move_needs_info_issues:
|
||||
name: X-Needs-Info issues to Need info column on triage board
|
||||
runs-on: ubuntu-latest
|
||||
@@ -72,30 +73,6 @@ jobs:
|
||||
PROJECT_ID: "PN_kwDOAM0swc0sUA"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
add_product_issues:
|
||||
name: X-Needs-Product to Design project board
|
||||
runs-on: ubuntu-latest
|
||||
if: >
|
||||
contains(github.event.issue.labels.*.name, 'X-Needs-Product')
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
id: add_to_project
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||
projectNextItem {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc4AAg6N"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
Delight_issues_to_board:
|
||||
name: Delight issues to project board
|
||||
runs-on: ubuntu-latest
|
||||
@@ -28,32 +28,22 @@ jobs:
|
||||
env:
|
||||
TEAM: "design"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
- id: any_matching_reviewers
|
||||
- id: any_reviewers_in_the_team
|
||||
run: |
|
||||
# Fetch requested reviewers, and people who are on the team
|
||||
echo '${{ tojson(fromjson(steps.find_team_members.outputs.data).organization.team.members.nodes[*].login) }}' | tee /tmp/team_members.json
|
||||
echo '${{ tojson(github.event.pull_request.requested_reviewers[*].login) }}' | tee /tmp/reviewers.json
|
||||
jq --raw-output .[] < /tmp/team_members.json | sort | tee /tmp/team_members.txt
|
||||
jq --raw-output .[] < /tmp/reviewers.json | sort | tee /tmp/reviewers.txt
|
||||
|
||||
# Fetch requested team reviewers, and the name of the team
|
||||
echo '${{ tojson(github.event.pull_request.requested_teams[*].slug) }}' | tee /tmp/team_reviewers.json
|
||||
jq --raw-output .[] < /tmp/team_reviewers.json | sort | tee /tmp/team_reviewers.txt
|
||||
echo '${{ env.TEAM }}' | tee /tmp/team.txt
|
||||
|
||||
# If either a reviewer matches a team member, or a team matches our team, say "true"
|
||||
if [ $(join /tmp/team_members.txt /tmp/reviewers.txt | wc -l) != 0 ]; then
|
||||
echo "::set-output name=match::true"
|
||||
elif [ $(join /tmp/team.txt /tmp/team_reviewers.txt | wc -l) != 0 ]; then
|
||||
echo "::set-output name=match::true"
|
||||
else
|
||||
if [ $(join /tmp/team_members.txt /tmp/reviewers.txt | wc -l) = 0 ]; then
|
||||
echo "::set-output name=match::false"
|
||||
else
|
||||
echo "::set-output name=match::true"
|
||||
fi
|
||||
env:
|
||||
TEAM: "design"
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
id: add_to_project
|
||||
if: steps.any_matching_reviewers.outputs.match == 'true'
|
||||
if: >
|
||||
(steps.any_reviewers_in_the_team.outputs.match == 'true') ||
|
||||
(github.event.pull_request.requested_teams.slug == env.TEAM)
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
@@ -70,70 +60,3 @@ jobs:
|
||||
PROJECT_ID: "PN_kwDOAM0swc0sUA"
|
||||
TEAM: "design"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
add_product_pr_to_project:
|
||||
name: Move PRs asking for design review to the design board
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
id: find_team_members
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
query find_team_members($team: String!) {
|
||||
organization(login: "vector-im") {
|
||||
team(slug: $team) {
|
||||
members {
|
||||
nodes {
|
||||
login
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
team: ${{ env.TEAM }}
|
||||
env:
|
||||
TEAM: "product"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
- id: any_matching_reviewers
|
||||
run: |
|
||||
# Fetch requested reviewers, and people who are on the team
|
||||
echo '${{ tojson(fromjson(steps.find_team_members.outputs.data).organization.team.members.nodes[*].login) }}' | tee /tmp/team_members.json
|
||||
echo '${{ tojson(github.event.pull_request.requested_reviewers[*].login) }}' | tee /tmp/reviewers.json
|
||||
jq --raw-output .[] < /tmp/team_members.json | sort | tee /tmp/team_members.txt
|
||||
jq --raw-output .[] < /tmp/reviewers.json | sort | tee /tmp/reviewers.txt
|
||||
|
||||
# Fetch requested team reviewers, and the name of the team
|
||||
echo '${{ tojson(github.event.pull_request.requested_teams[*].slug) }}' | tee /tmp/team_reviewers.json
|
||||
jq --raw-output .[] < /tmp/team_reviewers.json | sort | tee /tmp/team_reviewers.txt
|
||||
echo '${{ env.TEAM }}' | tee /tmp/team.txt
|
||||
|
||||
# If either a reviewer matches a team member, or a team matches our team, say "true"
|
||||
if [ $(join /tmp/team_members.txt /tmp/reviewers.txt | wc -l) != 0 ]; then
|
||||
echo "::set-output name=match::true"
|
||||
elif [ $(join /tmp/team.txt /tmp/team_reviewers.txt | wc -l) != 0 ]; then
|
||||
echo "::set-output name=match::true"
|
||||
else
|
||||
echo "::set-output name=match::false"
|
||||
fi
|
||||
env:
|
||||
TEAM: "product"
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
id: add_to_project
|
||||
if: steps.any_matching_reviewers.outputs.match == 'true'
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!, $contentid:ID!) {
|
||||
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||
projectNextItem {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.pull_request.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc4AAg6N"
|
||||
TEAM: "product"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
@@ -33,29 +33,3 @@ jobs:
|
||||
project: Issue triage
|
||||
column: Triaged
|
||||
repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
remove_Z-Labs_label:
|
||||
name: Remove Z-Labs label when features behind labs flags are removed
|
||||
runs-on: ubuntu-latest
|
||||
if: >
|
||||
!(contains(github.event.issue.labels.*.name, 'A-Maths') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Message-Pinning') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Threads') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Polls') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Location-Sharing') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Message-Bubbles') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-IA') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Themes-Custom') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Tags')) &&
|
||||
contains(github.event.issue.labels.*.name, 'Z-Labs')
|
||||
steps:
|
||||
- uses: actions/github-script@v5
|
||||
with:
|
||||
script: |
|
||||
github.rest.issues.removeLabel({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
name: ['Z-Labs']
|
||||
})
|
||||
1
.github/workflows/triage-priority-bugs.yml
vendored
1
.github/workflows/triage-priority-bugs.yml
vendored
@@ -34,7 +34,6 @@ jobs:
|
||||
P1_issues_to_crypto_team_workboard:
|
||||
runs-on: ubuntu-latest
|
||||
if: >
|
||||
contains(github.event.issue.labels.*.name, 'Z-UISI') ||
|
||||
(contains(github.event.issue.labels.*.name, 'A-E2EE') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
|
||||
|
||||
198
CHANGELOG.md
198
CHANGELOG.md
@@ -1,201 +1,3 @@
|
||||
Changes in [1.9.9](https://github.com/vector-im/element-web/releases/tag/v1.9.9) (2022-01-17)
|
||||
=============================================================================================
|
||||
|
||||
## ✨ Features
|
||||
* Add permission dropdown for sending reactions ([\#7492](https://github.com/matrix-org/matrix-react-sdk/pull/7492)). Fixes #20450.
|
||||
* Ship maximised widgets and remove feature flag ([\#7509](https://github.com/matrix-org/matrix-react-sdk/pull/7509)).
|
||||
* Properly maintain aspect ratio of inline images ([\#7503](https://github.com/matrix-org/matrix-react-sdk/pull/7503)).
|
||||
* Add zoom buttons to the location view ([\#7482](https://github.com/matrix-org/matrix-react-sdk/pull/7482)).
|
||||
* Remove bubble from around location events ([\#7459](https://github.com/matrix-org/matrix-react-sdk/pull/7459)). Fixes #20323.
|
||||
* Disable "Publish this room" option in invite only rooms ([\#7441](https://github.com/matrix-org/matrix-react-sdk/pull/7441)). Fixes #6596. Contributed by @aaronraimist.
|
||||
* Give secret key field an `id` ([\#7489](https://github.com/matrix-org/matrix-react-sdk/pull/7489)). Fixes #20390. Contributed by @SimonBrandner.
|
||||
* Display a tooltip when you hover over a location ([\#7472](https://github.com/matrix-org/matrix-react-sdk/pull/7472)).
|
||||
* Open map in a dialog when it is clicked ([\#7465](https://github.com/matrix-org/matrix-react-sdk/pull/7465)).
|
||||
* a11y - wrap notification level radios in fieldsets ([\#7471](https://github.com/matrix-org/matrix-react-sdk/pull/7471)).
|
||||
* Wrap inputs in fieldsets in Space visibility settings ([\#7350](https://github.com/matrix-org/matrix-react-sdk/pull/7350)).
|
||||
* History based navigation with new right panel store ([\#7398](https://github.com/matrix-org/matrix-react-sdk/pull/7398)). Fixes #19686 #19660 and #19634.
|
||||
* Associate room alias warning with public option in settings ([\#7430](https://github.com/matrix-org/matrix-react-sdk/pull/7430)).
|
||||
* Disable quick reactions button when no permissions ([\#7412](https://github.com/matrix-org/matrix-react-sdk/pull/7412)). Fixes #20270.
|
||||
* Allow opening a map view in OpenStreetMap ([\#7428](https://github.com/matrix-org/matrix-react-sdk/pull/7428)).
|
||||
* Display the user's avatar when they shared their location ([\#7424](https://github.com/matrix-org/matrix-react-sdk/pull/7424)).
|
||||
* Remove the Forward and Share buttons for location messages only ([\#7423](https://github.com/matrix-org/matrix-react-sdk/pull/7423)).
|
||||
* Add configuration to disable relative date markers in timeline ([\#7405](https://github.com/matrix-org/matrix-react-sdk/pull/7405)).
|
||||
* Space preferences for whether or not you see DMs in a Space ([\#7250](https://github.com/matrix-org/matrix-react-sdk/pull/7250)). Fixes #19529 and #19955.
|
||||
* Have LocalEchoWrapper emit updates so the app can react faster ([\#7358](https://github.com/matrix-org/matrix-react-sdk/pull/7358)). Fixes #19749.
|
||||
* Use semantic heading on dialog component ([\#7383](https://github.com/matrix-org/matrix-react-sdk/pull/7383)).
|
||||
* Add `/jumptodate` slash command ([\#7372](https://github.com/matrix-org/matrix-react-sdk/pull/7372)). Fixes #7677.
|
||||
* Update room context menu copy ([\#7361](https://github.com/matrix-org/matrix-react-sdk/pull/7361)). Fixes #20133.
|
||||
* Use lazy rendering in the AddExistingToSpaceDialog ([\#7369](https://github.com/matrix-org/matrix-react-sdk/pull/7369)). Fixes #18784.
|
||||
* Tweak FacePile tooltip to include whether or not you are included ([\#7367](https://github.com/matrix-org/matrix-react-sdk/pull/7367)). Fixes #17278.
|
||||
|
||||
## 🐛 Bug Fixes
|
||||
* Ensure group audio-only calls don't switch on the webcam on join ([\#20234](https://github.com/vector-im/element-web/pull/20234)). Fixes #20212.
|
||||
* Fix wrongly wrapping code blocks, breaking line numbers ([\#7507](https://github.com/matrix-org/matrix-react-sdk/pull/7507)). Fixes #20316.
|
||||
* Set header buttons to no phase when right panel is closed ([\#7506](https://github.com/matrix-org/matrix-react-sdk/pull/7506)).
|
||||
* Fix active Jitsi calls (and other active widgets) not being visible on screen, by showing them in PiP if they are not visible in any other container ([\#7435](https://github.com/matrix-org/matrix-react-sdk/pull/7435)). Fixes #15169 and #20275.
|
||||
* Fix layout of message bubble preview in settings ([\#7497](https://github.com/matrix-org/matrix-react-sdk/pull/7497)).
|
||||
* Prevent mutations of js-sdk owned objects as it breaks accountData ([\#7504](https://github.com/matrix-org/matrix-react-sdk/pull/7504)). Fixes matrix-org/element-web-rageshakes#7822.
|
||||
* fallback properly with pluralized strings ([\#7495](https://github.com/matrix-org/matrix-react-sdk/pull/7495)). Fixes #20455.
|
||||
* Consider continuations when resolving whether a tile is last in section ([\#7461](https://github.com/matrix-org/matrix-react-sdk/pull/7461)). Fixes #20368 and #20369.
|
||||
* Fix read receipts and sent indicators for bubble layout ([\#7460](https://github.com/matrix-org/matrix-react-sdk/pull/7460)). Fixes #18298 and #20345.
|
||||
* null-guard dataset mxTheme to prevent html exports from exploding ([\#7493](https://github.com/matrix-org/matrix-react-sdk/pull/7493)). Fixes #20453.
|
||||
* Fix avatar container overlapping give feedback cta ([\#7491](https://github.com/matrix-org/matrix-react-sdk/pull/7491)). Fixes matrix-org/element-web-rageshakes#7987.
|
||||
* Fix jump to bottom button working when on a permalink ([\#7494](https://github.com/matrix-org/matrix-react-sdk/pull/7494)). Fixes #19813.
|
||||
* Remove the Description from the location picker ([\#7485](https://github.com/matrix-org/matrix-react-sdk/pull/7485)).
|
||||
* Fix look of the untrusted device dialog ([\#7487](https://github.com/matrix-org/matrix-react-sdk/pull/7487)). Fixes #20447. Contributed by @SimonBrandner.
|
||||
* Hide maximise button in the sticker picker ([\#7488](https://github.com/matrix-org/matrix-react-sdk/pull/7488)). Fixes #20443. Contributed by @SimonBrandner.
|
||||
* Fix space ordering to match newer spec ([\#7481](https://github.com/matrix-org/matrix-react-sdk/pull/7481)).
|
||||
* Fix typing notification colors ([\#7490](https://github.com/matrix-org/matrix-react-sdk/pull/7490)). Fixes #20144. Contributed by @SimonBrandner.
|
||||
* fix fallback for pluralized strings ([\#7480](https://github.com/matrix-org/matrix-react-sdk/pull/7480)). Fixes #20426.
|
||||
* Fix right panel soft crashes chat rooms ([\#7479](https://github.com/matrix-org/matrix-react-sdk/pull/7479)). Fixes #20433.
|
||||
* update yarn.lock and i18n ([\#7476](https://github.com/matrix-org/matrix-react-sdk/pull/7476)). Fixes #20426 and #20423.
|
||||
* Don't send typing notification when restoring composer draft ([\#7477](https://github.com/matrix-org/matrix-react-sdk/pull/7477)). Fixes #20424.
|
||||
* Fix room joining spinner being incorrect if you change room mid-join ([\#7473](https://github.com/matrix-org/matrix-react-sdk/pull/7473)).
|
||||
* Only return the approved widget capabilities instead of accepting all requested capabilities ([\#7454](https://github.com/matrix-org/matrix-react-sdk/pull/7454)). Contributed by @dhenneke.
|
||||
* Fix quoting messages from the search view ([\#7466](https://github.com/matrix-org/matrix-react-sdk/pull/7466)). Fixes #20353.
|
||||
* Attribute fallback i18n strings with lang attribute ([\#7323](https://github.com/matrix-org/matrix-react-sdk/pull/7323)).
|
||||
* Fix spotlight cmd-k wrongly expanding left panel ([\#7463](https://github.com/matrix-org/matrix-react-sdk/pull/7463)). Fixes #20399.
|
||||
* Fix room_id check when adding user widgets ([\#7448](https://github.com/matrix-org/matrix-react-sdk/pull/7448)). Fixes #19382. Contributed by @bink.
|
||||
* Add new line in settings label ([\#7451](https://github.com/matrix-org/matrix-react-sdk/pull/7451)). Fixes #20365.
|
||||
* Fix handling incoming redactions in EventIndex ([\#7443](https://github.com/matrix-org/matrix-react-sdk/pull/7443)). Fixes #19326.
|
||||
* Fix room alias address isn't checked for validity before being shown as added ([\#7107](https://github.com/matrix-org/matrix-react-sdk/pull/7107)). Fixes #19609. Contributed by @Palid.
|
||||
* Call view accessibility fixes ([\#7439](https://github.com/matrix-org/matrix-react-sdk/pull/7439)). Fixes #18516.
|
||||
* Fix offscreen canvas breaking with split-brained firefox support ([\#7440](https://github.com/matrix-org/matrix-react-sdk/pull/7440)).
|
||||
* Removed red shield in forwarding preview. ([\#7447](https://github.com/matrix-org/matrix-react-sdk/pull/7447)). Contributed by @ankur12-1610.
|
||||
* Wrap status message ([\#7325](https://github.com/matrix-org/matrix-react-sdk/pull/7325)). Fixes #20092. Contributed by @SimonBrandner.
|
||||
* Move hideSender logic into state so it causes re-render ([\#7413](https://github.com/matrix-org/matrix-react-sdk/pull/7413)). Fixes #18448.
|
||||
* Fix dialpad positioning ([\#7446](https://github.com/matrix-org/matrix-react-sdk/pull/7446)). Fixes #20175. Contributed by @SimonBrandner.
|
||||
* Hide non-functional list options on Suggested sublist ([\#7410](https://github.com/matrix-org/matrix-react-sdk/pull/7410)). Fixes #20252.
|
||||
* Fix width overflow in mini composer overflow menu ([\#7411](https://github.com/matrix-org/matrix-react-sdk/pull/7411)). Fixes #20263.
|
||||
* Fix being wrongly sent to Home space when creating/joining/leaving rooms ([\#7418](https://github.com/matrix-org/matrix-react-sdk/pull/7418)). Fixes matrix-org/element-web-rageshakes#7331 #20246 and #20240.
|
||||
* Fix HTML Export where the data-mx-theme is `Light` not `light` ([\#7415](https://github.com/matrix-org/matrix-react-sdk/pull/7415)).
|
||||
* Don't disable username/password fields whilst doing wk-lookup ([\#7438](https://github.com/matrix-org/matrix-react-sdk/pull/7438)). Fixes #20121.
|
||||
* Prevent keyboard propagation out of context menus ([\#7437](https://github.com/matrix-org/matrix-react-sdk/pull/7437)). Fixes #20317.
|
||||
* Fix nulls leaking into geo urls ([\#7433](https://github.com/matrix-org/matrix-react-sdk/pull/7433)).
|
||||
* Fix zIndex of peristent apps in miniMode ([\#7429](https://github.com/matrix-org/matrix-react-sdk/pull/7429)).
|
||||
* Space panel should watch spaces for space name changes ([\#7432](https://github.com/matrix-org/matrix-react-sdk/pull/7432)).
|
||||
* Fix list formatting alternating on edit ([\#7422](https://github.com/matrix-org/matrix-react-sdk/pull/7422)). Fixes #20073. Contributed by @renancleyson-dev.
|
||||
* Don't show `Testing small changes` without UIFeature.Feedback ([\#7427](https://github.com/matrix-org/matrix-react-sdk/pull/7427)). Fixes #20298.
|
||||
* Fix invisible toggle space panel button ([\#7426](https://github.com/matrix-org/matrix-react-sdk/pull/7426)). Fixes #20279.
|
||||
* Fix legacy breadcrumbs wrongly showing up ([\#7425](https://github.com/matrix-org/matrix-react-sdk/pull/7425)).
|
||||
* Space Panel use SettingsStore instead of SpaceStore as source of truth ([\#7404](https://github.com/matrix-org/matrix-react-sdk/pull/7404)). Fixes #20250.
|
||||
* Fix inline code block nowrap issue ([\#7406](https://github.com/matrix-org/matrix-react-sdk/pull/7406)).
|
||||
* Fix notification badge for All Rooms space ([\#7401](https://github.com/matrix-org/matrix-react-sdk/pull/7401)). Fixes #20229.
|
||||
* Show error if could not load space hierarchy ([\#7399](https://github.com/matrix-org/matrix-react-sdk/pull/7399)). Fixes #20221.
|
||||
* Increase gap between ELS and the subsequent event to prevent overlap ([\#7391](https://github.com/matrix-org/matrix-react-sdk/pull/7391)). Fixes #18319.
|
||||
* Fix list of members in space preview ([\#7356](https://github.com/matrix-org/matrix-react-sdk/pull/7356)). Fixes #19781.
|
||||
* Fix sizing of e2e shield in bubble layout ([\#7394](https://github.com/matrix-org/matrix-react-sdk/pull/7394)). Fixes #19090.
|
||||
* Fix bubble radius wrong when followed by a state event from same user ([\#7393](https://github.com/matrix-org/matrix-react-sdk/pull/7393)). Fixes #18982.
|
||||
* Fix alignment between ELS and Events in bubble layout ([\#7392](https://github.com/matrix-org/matrix-react-sdk/pull/7392)). Fixes #19652 and #19057.
|
||||
* Don't include the accuracy parameter in location events if accuracy could not be determined. ([\#7375](https://github.com/matrix-org/matrix-react-sdk/pull/7375)).
|
||||
* Make compact layout only apply to Modern layout ([\#7382](https://github.com/matrix-org/matrix-react-sdk/pull/7382)). Fixes #18412.
|
||||
* Pin qrcode to fix e2e verification bug ([\#7378](https://github.com/matrix-org/matrix-react-sdk/pull/7378)). Fixes #20188.
|
||||
* Add internationalisation to progress strings in room export dialog ([\#7385](https://github.com/matrix-org/matrix-react-sdk/pull/7385)). Fixes #20208.
|
||||
* Prevent escape to cancel edit from also scrolling to bottom ([\#7380](https://github.com/matrix-org/matrix-react-sdk/pull/7380)). Fixes #20182.
|
||||
* Fix narrow mode composer buttons for polls labs ([\#7386](https://github.com/matrix-org/matrix-react-sdk/pull/7386)). Fixes #20067.
|
||||
* Fix useUserStatusMessage exploding on unknown user ([\#7365](https://github.com/matrix-org/matrix-react-sdk/pull/7365)).
|
||||
* Fix room join spinner in room list header ([\#7364](https://github.com/matrix-org/matrix-react-sdk/pull/7364)). Fixes #20139.
|
||||
* Fix room search sometimes not opening spotlight ([\#7363](https://github.com/matrix-org/matrix-react-sdk/pull/7363)). Fixes matrix-org/element-web-rageshakes#7288.
|
||||
|
||||
Changes in [1.9.9-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.9.9-rc.1) (2022-01-11)
|
||||
=======================================================================================================
|
||||
|
||||
## ✨ Features
|
||||
* Ship maximised widgets and remove feature flag ([\#7509](https://github.com/matrix-org/matrix-react-sdk/pull/7509)).
|
||||
* Properly maintain aspect ratio of inline images ([\#7503](https://github.com/matrix-org/matrix-react-sdk/pull/7503)).
|
||||
* Add zoom buttons to the location view ([\#7482](https://github.com/matrix-org/matrix-react-sdk/pull/7482)).
|
||||
* Remove bubble from around location events ([\#7459](https://github.com/matrix-org/matrix-react-sdk/pull/7459)). Fixes #20323.
|
||||
* Disable "Publish this room" option in invite only rooms ([\#7441](https://github.com/matrix-org/matrix-react-sdk/pull/7441)). Fixes #6596. Contributed by @aaronraimist.
|
||||
* Add permission dropdown for sending reactions ([\#7492](https://github.com/matrix-org/matrix-react-sdk/pull/7492)). Fixes #20450.
|
||||
* Give secret key field an `id` ([\#7489](https://github.com/matrix-org/matrix-react-sdk/pull/7489)). Fixes #20390. Contributed by @SimonBrandner.
|
||||
* Display a tooltip when you hover over a location ([\#7472](https://github.com/matrix-org/matrix-react-sdk/pull/7472)).
|
||||
* Open map in a dialog when it is clicked ([\#7465](https://github.com/matrix-org/matrix-react-sdk/pull/7465)).
|
||||
* a11y - wrap notification level radios in fieldsets ([\#7471](https://github.com/matrix-org/matrix-react-sdk/pull/7471)).
|
||||
* Wrap inputs in fieldsets in Space visibility settings ([\#7350](https://github.com/matrix-org/matrix-react-sdk/pull/7350)).
|
||||
* History based navigation with new right panel store ([\#7398](https://github.com/matrix-org/matrix-react-sdk/pull/7398)). Fixes #19686 #19660 and #19634.
|
||||
* Associate room alias warning with public option in settings ([\#7430](https://github.com/matrix-org/matrix-react-sdk/pull/7430)).
|
||||
* Disable quick reactions button when no permissions ([\#7412](https://github.com/matrix-org/matrix-react-sdk/pull/7412)). Fixes #20270.
|
||||
* Allow opening a map view in OpenStreetMap ([\#7428](https://github.com/matrix-org/matrix-react-sdk/pull/7428)).
|
||||
* Display the user's avatar when they shared their location ([\#7424](https://github.com/matrix-org/matrix-react-sdk/pull/7424)).
|
||||
* Remove the Forward and Share buttons for location messages only ([\#7423](https://github.com/matrix-org/matrix-react-sdk/pull/7423)).
|
||||
* Add configuration to disable relative date markers in timeline ([\#7405](https://github.com/matrix-org/matrix-react-sdk/pull/7405)).
|
||||
* Space preferences for whether or not you see DMs in a Space ([\#7250](https://github.com/matrix-org/matrix-react-sdk/pull/7250)). Fixes #19529 and #19955.
|
||||
* Have LocalEchoWrapper emit updates so the app can react faster ([\#7358](https://github.com/matrix-org/matrix-react-sdk/pull/7358)). Fixes #19749.
|
||||
* Use semantic heading on dialog component ([\#7383](https://github.com/matrix-org/matrix-react-sdk/pull/7383)).
|
||||
* Add `/jumptodate` slash command ([\#7372](https://github.com/matrix-org/matrix-react-sdk/pull/7372)). Fixes #7677.
|
||||
* Update room context menu copy ([\#7361](https://github.com/matrix-org/matrix-react-sdk/pull/7361)). Fixes #20133.
|
||||
* Use lazy rendering in the AddExistingToSpaceDialog ([\#7369](https://github.com/matrix-org/matrix-react-sdk/pull/7369)). Fixes #18784.
|
||||
* Tweak FacePile tooltip to include whether or not you are included ([\#7367](https://github.com/matrix-org/matrix-react-sdk/pull/7367)). Fixes #17278.
|
||||
|
||||
## 🐛 Bug Fixes
|
||||
* Ensure group audio-only calls don't switch on the webcam on join ([\#20234](https://github.com/vector-im/element-web/pull/20234)). Fixes #20212.
|
||||
* Fix wrongly wrapping code blocks, breaking line numbers ([\#7507](https://github.com/matrix-org/matrix-react-sdk/pull/7507)). Fixes #20316.
|
||||
* Set header buttons to no phase when right panel is closed ([\#7506](https://github.com/matrix-org/matrix-react-sdk/pull/7506)).
|
||||
* Fix active Jitsi calls (and other active widgets) not being visible on screen, by showing them in PiP if they are not visible in any other container ([\#7435](https://github.com/matrix-org/matrix-react-sdk/pull/7435)). Fixes #15169 and #20275.
|
||||
* Fix layout of message bubble preview in settings ([\#7497](https://github.com/matrix-org/matrix-react-sdk/pull/7497)).
|
||||
* Prevent mutations of js-sdk owned objects as it breaks accountData ([\#7504](https://github.com/matrix-org/matrix-react-sdk/pull/7504)). Fixes matrix-org/element-web-rageshakes#7822.
|
||||
* fallback properly with pluralized strings ([\#7495](https://github.com/matrix-org/matrix-react-sdk/pull/7495)). Fixes #20455.
|
||||
* Consider continuations when resolving whether a tile is last in section ([\#7461](https://github.com/matrix-org/matrix-react-sdk/pull/7461)). Fixes #20368 and #20369.
|
||||
* Fix read receipts and sent indicators for bubble layout ([\#7460](https://github.com/matrix-org/matrix-react-sdk/pull/7460)). Fixes #18298 and #20345.
|
||||
* null-guard dataset mxTheme to prevent html exports from exploding ([\#7493](https://github.com/matrix-org/matrix-react-sdk/pull/7493)). Fixes #20453.
|
||||
* Fix avatar container overlapping give feedback cta ([\#7491](https://github.com/matrix-org/matrix-react-sdk/pull/7491)). Fixes matrix-org/element-web-rageshakes#7987.
|
||||
* Fix jump to bottom button working when on a permalink ([\#7494](https://github.com/matrix-org/matrix-react-sdk/pull/7494)). Fixes #19813.
|
||||
* Remove the Description from the location picker ([\#7485](https://github.com/matrix-org/matrix-react-sdk/pull/7485)).
|
||||
* Fix look of the untrusted device dialog ([\#7487](https://github.com/matrix-org/matrix-react-sdk/pull/7487)). Fixes #20447. Contributed by @SimonBrandner.
|
||||
* Hide maximise button in the sticker picker ([\#7488](https://github.com/matrix-org/matrix-react-sdk/pull/7488)). Fixes #20443. Contributed by @SimonBrandner.
|
||||
* Fix space ordering to match newer spec ([\#7481](https://github.com/matrix-org/matrix-react-sdk/pull/7481)).
|
||||
* Fix typing notification colors ([\#7490](https://github.com/matrix-org/matrix-react-sdk/pull/7490)). Fixes #20144. Contributed by @SimonBrandner.
|
||||
* fix fallback for pluralized strings ([\#7480](https://github.com/matrix-org/matrix-react-sdk/pull/7480)). Fixes #20426.
|
||||
* Fix right panel soft crashes chat rooms ([\#7479](https://github.com/matrix-org/matrix-react-sdk/pull/7479)). Fixes #20433.
|
||||
* update yarn.lock and i18n ([\#7476](https://github.com/matrix-org/matrix-react-sdk/pull/7476)). Fixes #20426 and #20423.
|
||||
* Don't send typing notification when restoring composer draft ([\#7477](https://github.com/matrix-org/matrix-react-sdk/pull/7477)). Fixes #20424.
|
||||
* Fix room joining spinner being incorrect if you change room mid-join ([\#7473](https://github.com/matrix-org/matrix-react-sdk/pull/7473)).
|
||||
* Only return the approved widget capabilities instead of accepting all requested capabilities ([\#7454](https://github.com/matrix-org/matrix-react-sdk/pull/7454)). Contributed by @dhenneke.
|
||||
* Fix quoting messages from the search view ([\#7466](https://github.com/matrix-org/matrix-react-sdk/pull/7466)). Fixes #20353.
|
||||
* Attribute fallback i18n strings with lang attribute ([\#7323](https://github.com/matrix-org/matrix-react-sdk/pull/7323)).
|
||||
* Fix spotlight cmd-k wrongly expanding left panel ([\#7463](https://github.com/matrix-org/matrix-react-sdk/pull/7463)). Fixes #20399.
|
||||
* Fix room_id check when adding user widgets ([\#7448](https://github.com/matrix-org/matrix-react-sdk/pull/7448)). Fixes #19382. Contributed by @bink.
|
||||
* Add new line in settings label ([\#7451](https://github.com/matrix-org/matrix-react-sdk/pull/7451)). Fixes #20365.
|
||||
* Fix handling incoming redactions in EventIndex ([\#7443](https://github.com/matrix-org/matrix-react-sdk/pull/7443)). Fixes #19326.
|
||||
* Fix room alias address isn't checked for validity before being shown as added ([\#7107](https://github.com/matrix-org/matrix-react-sdk/pull/7107)). Fixes #19609. Contributed by @Palid.
|
||||
* Call view accessibility fixes ([\#7439](https://github.com/matrix-org/matrix-react-sdk/pull/7439)). Fixes #18516.
|
||||
* Fix offscreen canvas breaking with split-brained firefox support ([\#7440](https://github.com/matrix-org/matrix-react-sdk/pull/7440)).
|
||||
* Removed red shield in forwarding preview. ([\#7447](https://github.com/matrix-org/matrix-react-sdk/pull/7447)). Contributed by @ankur12-1610.
|
||||
* Wrap status message ([\#7325](https://github.com/matrix-org/matrix-react-sdk/pull/7325)). Fixes #20092. Contributed by @SimonBrandner.
|
||||
* Move hideSender logic into state so it causes re-render ([\#7413](https://github.com/matrix-org/matrix-react-sdk/pull/7413)). Fixes #18448.
|
||||
* Fix dialpad positioning ([\#7446](https://github.com/matrix-org/matrix-react-sdk/pull/7446)). Fixes #20175. Contributed by @SimonBrandner.
|
||||
* Hide non-functional list options on Suggested sublist ([\#7410](https://github.com/matrix-org/matrix-react-sdk/pull/7410)). Fixes #20252.
|
||||
* Fix width overflow in mini composer overflow menu ([\#7411](https://github.com/matrix-org/matrix-react-sdk/pull/7411)). Fixes #20263.
|
||||
* Fix being wrongly sent to Home space when creating/joining/leaving rooms ([\#7418](https://github.com/matrix-org/matrix-react-sdk/pull/7418)). Fixes matrix-org/element-web-rageshakes#7331 #20246 and #20240.
|
||||
* Fix HTML Export where the data-mx-theme is `Light` not `light` ([\#7415](https://github.com/matrix-org/matrix-react-sdk/pull/7415)).
|
||||
* Don't disable username/password fields whilst doing wk-lookup ([\#7438](https://github.com/matrix-org/matrix-react-sdk/pull/7438)). Fixes #20121.
|
||||
* Prevent keyboard propagation out of context menus ([\#7437](https://github.com/matrix-org/matrix-react-sdk/pull/7437)). Fixes #20317.
|
||||
* Fix nulls leaking into geo urls ([\#7433](https://github.com/matrix-org/matrix-react-sdk/pull/7433)).
|
||||
* Fix zIndex of peristent apps in miniMode ([\#7429](https://github.com/matrix-org/matrix-react-sdk/pull/7429)).
|
||||
* Space panel should watch spaces for space name changes ([\#7432](https://github.com/matrix-org/matrix-react-sdk/pull/7432)).
|
||||
* Fix list formatting alternating on edit ([\#7422](https://github.com/matrix-org/matrix-react-sdk/pull/7422)). Fixes #20073. Contributed by @renancleyson-dev.
|
||||
* Don't show `Testing small changes` without UIFeature.Feedback ([\#7427](https://github.com/matrix-org/matrix-react-sdk/pull/7427)). Fixes #20298.
|
||||
* Fix invisible toggle space panel button ([\#7426](https://github.com/matrix-org/matrix-react-sdk/pull/7426)). Fixes #20279.
|
||||
* Fix legacy breadcrumbs wrongly showing up ([\#7425](https://github.com/matrix-org/matrix-react-sdk/pull/7425)).
|
||||
* Space Panel use SettingsStore instead of SpaceStore as source of truth ([\#7404](https://github.com/matrix-org/matrix-react-sdk/pull/7404)). Fixes #20250.
|
||||
* Fix inline code block nowrap issue ([\#7406](https://github.com/matrix-org/matrix-react-sdk/pull/7406)).
|
||||
* Fix notification badge for All Rooms space ([\#7401](https://github.com/matrix-org/matrix-react-sdk/pull/7401)). Fixes #20229.
|
||||
* Show error if could not load space hierarchy ([\#7399](https://github.com/matrix-org/matrix-react-sdk/pull/7399)). Fixes #20221.
|
||||
* Increase gap between ELS and the subsequent event to prevent overlap ([\#7391](https://github.com/matrix-org/matrix-react-sdk/pull/7391)). Fixes #18319.
|
||||
* Fix list of members in space preview ([\#7356](https://github.com/matrix-org/matrix-react-sdk/pull/7356)). Fixes #19781.
|
||||
* Fix sizing of e2e shield in bubble layout ([\#7394](https://github.com/matrix-org/matrix-react-sdk/pull/7394)). Fixes #19090.
|
||||
* Fix bubble radius wrong when followed by a state event from same user ([\#7393](https://github.com/matrix-org/matrix-react-sdk/pull/7393)). Fixes #18982.
|
||||
* Fix alignment between ELS and Events in bubble layout ([\#7392](https://github.com/matrix-org/matrix-react-sdk/pull/7392)). Fixes #19652 and #19057.
|
||||
* Don't include the accuracy parameter in location events if accuracy could not be determined. ([\#7375](https://github.com/matrix-org/matrix-react-sdk/pull/7375)).
|
||||
* Make compact layout only apply to Modern layout ([\#7382](https://github.com/matrix-org/matrix-react-sdk/pull/7382)). Fixes #18412.
|
||||
* Pin qrcode to fix e2e verification bug ([\#7378](https://github.com/matrix-org/matrix-react-sdk/pull/7378)). Fixes #20188.
|
||||
* Add internationalisation to progress strings in room export dialog ([\#7385](https://github.com/matrix-org/matrix-react-sdk/pull/7385)). Fixes #20208.
|
||||
* Prevent escape to cancel edit from also scrolling to bottom ([\#7380](https://github.com/matrix-org/matrix-react-sdk/pull/7380)). Fixes #20182.
|
||||
* Fix narrow mode composer buttons for polls labs ([\#7386](https://github.com/matrix-org/matrix-react-sdk/pull/7386)). Fixes #20067.
|
||||
* Fix useUserStatusMessage exploding on unknown user ([\#7365](https://github.com/matrix-org/matrix-react-sdk/pull/7365)).
|
||||
* Fix room join spinner in room list header ([\#7364](https://github.com/matrix-org/matrix-react-sdk/pull/7364)). Fixes #20139.
|
||||
* Fix room search sometimes not opening spotlight ([\#7363](https://github.com/matrix-org/matrix-react-sdk/pull/7363)). Fixes matrix-org/element-web-rageshakes#7288.
|
||||
|
||||
Changes in [1.9.8](https://github.com/vector-im/element-web/releases/tag/v1.9.8) (2021-12-20)
|
||||
=============================================================================================
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
"https://scalar-staging.riot.im/scalar/api"
|
||||
],
|
||||
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
|
||||
"uisi_autorageshake_app": "element-auto-uisi",
|
||||
"defaultCountryCode": "GB",
|
||||
"showLabsSettings": false,
|
||||
"features": { },
|
||||
@@ -48,6 +47,6 @@
|
||||
"breadcrumbs": true
|
||||
},
|
||||
"jitsi": {
|
||||
"preferredDomain": "meet.element.io"
|
||||
"preferredDomain": "jitsi.riot.im"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ For a good example, see https://develop.element.io/config.json.
|
||||
Defaults to `GB` if the given code is unknown or not provided.
|
||||
1. `settingDefaults`: Defaults for settings that support the `config` level,
|
||||
as an object mapping setting name to value (note that the "theme" setting
|
||||
is special cased to the `default_theme` in the config file). See [Settings section](#settings)
|
||||
is special cased to the `default_theme` in the config file).
|
||||
1. `disable_custom_urls`: disallow the user to change the
|
||||
default homeserver when signing up or logging in.
|
||||
1. `permalinkPrefix`: Used to change the URL that Element generates permalinks with.
|
||||
@@ -103,7 +103,7 @@ For a good example, see https://develop.element.io/config.json.
|
||||
1. `jitsi`: Used to change the default conference options. Learn more about the
|
||||
Jitsi options at [jitsi.md](./jitsi.md).
|
||||
1. `preferredDomain`: The domain name of the preferred Jitsi instance. Defaults
|
||||
to `meet.element.io`. This is used whenever a user clicks on the voice/video
|
||||
to `jitsi.riot.im`. This is used whenever a user clicks on the voice/video
|
||||
call buttons - integration managers may use a different domain.
|
||||
1. `enable_presence_by_hs_url`: The property key should be the URL of the homeserver
|
||||
and its value defines whether to enable/disable the presence status display
|
||||
@@ -152,8 +152,8 @@ For a good example, see https://develop.element.io/config.json.
|
||||
1. `sentry`: [Sentry](https://sentry.io/) configuration for rageshake data being sent to sentry.
|
||||
1. `dsn`: the Sentry [DSN](https://docs.sentry.io/product/sentry-basics/dsn-explainer/)
|
||||
2. `environment`: (optional) The [Environment](https://docs.sentry.io/product/sentry-basics/environments/) to pass to sentry
|
||||
1. `map_style_url`: Map tile server style URL for location sharing. e.g.
|
||||
'https://api.maptiler.com/maps/streets/style.json?key=YOUR_KEY_GOES_HERE'
|
||||
1. `map_style_url`: Maptile server URL for location sharing. e.g.
|
||||
'https://api.maptiler.com/maps/basic/style.json?key=YOUR_KEY_GOES_HERE'
|
||||
1. `analyticsOwner`: The entity that analytics data is being sent to. Used in copy
|
||||
when explaining to the user where data is being sent. If not set, defaults to `brand`.
|
||||
|
||||
@@ -200,80 +200,8 @@ Desktop app configuration
|
||||
|
||||
See https://github.com/vector-im/element-desktop#user-specified-configjson
|
||||
|
||||
# Settings
|
||||
|
||||
Defaults for settings that support the `config` level,
|
||||
as an object mapping setting name to value
|
||||
|
||||
*Note* that the "theme" setting is special cased to the `default_theme` in the config file).
|
||||
|
||||
## Supported settings
|
||||
|
||||
* `alwaysShowTimestamps`: boolean
|
||||
* `analyticsOptIn`: boolean
|
||||
* `autocompleteDelay`: number
|
||||
* `automaticErrorReporting`: boolean
|
||||
* `autoplayGifs`: boolean
|
||||
* `autoplayVideo`: boolean
|
||||
* `baseFontSize`: number
|
||||
* `breadcrumbs`: boolean
|
||||
* `ctrlFForSearch`: boolean
|
||||
* `custom_themes`
|
||||
* `developerMode`: boolean
|
||||
* `enableSyntaxHighlightLanguageDetection`: boolean
|
||||
* `enableWidgetScreenshots`: boolean
|
||||
* `expandCodeByDefault`: boolean
|
||||
* `forceRoomExportParameters` - Override room export parameters. Accepts an object:
|
||||
```
|
||||
{
|
||||
range: 'Beginning' | 'Timeline' | 'LastNMessages',
|
||||
sizeMb: number, // max 100gb
|
||||
format: 'Html' | 'PlainText' | 'Json',
|
||||
numberOfMessages: number,
|
||||
includeAttachments: boolean,
|
||||
}
|
||||
```
|
||||
* `Images.size`: 'normal' | 'large'
|
||||
* `language`: ISO language code
|
||||
* `layout`: 'irc' | 'group' | 'bubble'
|
||||
* `lowBandwidth`: boolean
|
||||
* `MessageComposerInput.autoReplaceEmoji`: boolean
|
||||
* `MessageComposerInput.ctrlEnterToSend`: boolean
|
||||
* `MessageComposerInput.isRichTextEnabled`: boolean
|
||||
* `MessageComposerInput.showFormatting`: boolean
|
||||
* `MessageComposerInput.showLocationButton`: boolean
|
||||
* `MessageComposerInput.showStickersButton`: boolean
|
||||
* `MessageComposerInput.suggestEmoji`: boolean
|
||||
* `MessageComposerInput.surroundWith`: boolean
|
||||
* `Pill.shouldShowPillAvatar`: boolean
|
||||
* `promptBeforeInviteUnknownUsers`: boolean
|
||||
* `readMarkerInViewThresholdMs`: number
|
||||
* `readMarkerOutOfViewThresholdMs`: number
|
||||
* `RoomList.backgroundImage`
|
||||
* `scrollToBottomOnMessageSent`: boolean
|
||||
* `showAvatarChanges`: boolean
|
||||
* `showCallButtonsInComposer`: boolean
|
||||
* `showChatEffects`: boolean
|
||||
* `showCodeLineNumbers`: boolean
|
||||
* `showCookieBar`: boolean
|
||||
* `showDeveloperTools`: boolean
|
||||
* `showDisplaynameChanges`: boolean
|
||||
* `showImages`: boolean
|
||||
* `showJoinLeaves`: boolean
|
||||
* `showReadReceipts`: boolean
|
||||
* `showRedactions`: boolean
|
||||
* `showTwelveHourTimestamps`: boolean
|
||||
* `showTypingNotifications`: boolean
|
||||
* `Spaces.allRoomsInHome`: boolean
|
||||
* `TagPanel.enableTagPanel`: boolean
|
||||
* `TextualBody.enableBigEmoji`: boolean
|
||||
* `urlPreviewsEnabled`: boolean
|
||||
* `useCustomFontSize`: number
|
||||
* `VideoView.flipVideoHorizontally`: boolean
|
||||
* `webRtcAllowPeerToPeer`: boolean
|
||||
* `Widgets.leftPanel`
|
||||
|
||||
## UI Features
|
||||
UI Features
|
||||
===========
|
||||
|
||||
Parts of the UI can be disabled using UI features. These are settings which appear
|
||||
under `settingDefaults` and can only be `true` (default) or `false`. When `false`,
|
||||
|
||||
@@ -4,10 +4,10 @@ Element uses [Jitsi](https://jitsi.org/) for conference calls, which provides op
|
||||
self-hosting your own server and supports most major platforms.
|
||||
|
||||
1:1 calls, or calls between you and one other person, do not use Jitsi. Instead, those
|
||||
calls work directly between clients or via TURN servers configured on the respective
|
||||
calls work directly between clients or via TURN servers configured on the respective
|
||||
homeservers.
|
||||
|
||||
There's a number of ways to start a Jitsi call: the easiest way is to click on the
|
||||
There's a number of ways to start a Jitsi call: the easiest way is to click on the
|
||||
voice or video buttons near the message composer in a room with more than 2 people. This
|
||||
will add a Jitsi widget which allows anyone in the room to join.
|
||||
|
||||
@@ -16,10 +16,6 @@ provide their own approaches for adding Jitsi widgets.
|
||||
|
||||
## Configuring Element to use your self-hosted Jitsi server
|
||||
|
||||
You can host your own Jitsi server to use with Element. It's usually advisable to use a recent
|
||||
version of Jitsi. In particular, versions older than around 6826 will cause problems with
|
||||
Element 1.9.10 or newer.
|
||||
|
||||
Element will use the Jitsi server that is embedded in the widget, even if it is not the
|
||||
one you configured. This is because conference calls must be held on a single Jitsi
|
||||
server and cannot be split over multiple servers.
|
||||
@@ -34,17 +30,17 @@ to your [config](./config.md) the following:
|
||||
}
|
||||
```
|
||||
|
||||
Element's default is `meet.element.io` (a free service offered by Element). `meet.jit.si`
|
||||
is an instance hosted by Jitsi themselves and is also free to use.
|
||||
The default is `jitsi.riot.im` (a free service offered by Element), and the demo site for
|
||||
Jitsi uses `meet.jit.si` (also free).
|
||||
|
||||
Once you've applied the config change, refresh Element and press the call button. This
|
||||
should start a new conference on your Jitsi server.
|
||||
should start a new conference on your Jitsi server.
|
||||
|
||||
**Note**: The widget URL will point to a `jitsi.html` page hosted by Element. The Jitsi
|
||||
domain will appear later in the URL as a configuration parameter.
|
||||
|
||||
**Hint**: If you want everyone on your homeserver to use the same Jitsi server by
|
||||
default, and you are using element-web 1.6 or newer, set the following on your homeserver's
|
||||
default, and you are using element-web 1.6 or newer, set the following on your homeserver's
|
||||
`/.well-known/matrix/client` config:
|
||||
```json
|
||||
{
|
||||
@@ -59,11 +55,11 @@ default, and you are using element-web 1.6 or newer, set the following on your h
|
||||
Element Android (1.0.5+) supports custom Jitsi domains, similar to Element Web above.
|
||||
|
||||
1:1 calls, or calls between you and one other person, do not use Jitsi. Instead, those
|
||||
calls work directly between clients or via TURN servers configured on the respective
|
||||
calls work directly between clients or via TURN servers configured on the respective
|
||||
homeservers.
|
||||
|
||||
For rooms with more than 2 joined members, when creating a Jitsi conference via call/video buttons of the toolbar (not via integration manager), Element Android will create a widget using the [wrapper](https://github.com/vector-im/element-web/blob/develop/docs/jitsi-dev.md) hosted on `app.element.io`.
|
||||
The domain used is the one specified by the `/.well-known/matrix/client` endpoint, and if not present it uses the fallback defined in `config.json` (meet.element.io)
|
||||
The domain used is the one specified by the `/.well-known/matrix/client` endpoint, and if not present it uses the fallback defined in `config.xml` (jitsi.riot.im)
|
||||
|
||||
For active Jitsi widgets in the room, a native Jitsi widget UI is created and points to the instance specified in the `domain` key of the widget content data.
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ Then you can deploy it to your cluster with something like `kubectl apply -f my-
|
||||
"breadcrumbs": true
|
||||
},
|
||||
"jitsi": {
|
||||
"preferredDomain": "meet.element.io"
|
||||
"preferredDomain": "jitsi.riot.im"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
56
docs/labs.md
56
docs/labs.md
@@ -126,6 +126,31 @@ and notification noises are suppressed. Not perfect, but can help reduce noise.
|
||||
|
||||
Enables sending hidden read receipts as per [MSC2285](https://github.com/matrix-org/matrix-doc/pull/2285)
|
||||
|
||||
## New layout switcher (with message bubbles) (`feature_new_layout_switcher`)
|
||||
|
||||
Adds a "Message layout" section under `Settings -> Appearance`, where the user can select their preferred message layout (e.g. IRC or Modern). Additionally, adds a new "Message bubbles" layout.
|
||||
|
||||
## Polls (`feature_polls`) [In Development]
|
||||
|
||||
Polls are a way to gauge interest from your community about a certain topic with a simple voting mechanic
|
||||
within the message timeline. Note that this feature is currently under active development and therefore is
|
||||
entirely incomplete and may not work at all - it is not recommended for general use at this time.
|
||||
|
||||
Bug reports, feature requests, etc are not currently accepted for this feature flag. A later stage of
|
||||
development will provide opportunities for feedback.
|
||||
|
||||
## Maximised widgets (`feature_maximised_widgets`) [In Development]
|
||||
|
||||
Maximised widgets provide a room layout in which a widget is (temporarily) the primary focus of the room. The whole chat area is then used for the widget. The chat is moved into the right panel.
|
||||
|
||||
Note that this feature is currently under active development and therefore is
|
||||
entirely incomplete and may not work at all - it is not recommended for general use at this time.
|
||||
|
||||
## Metaspaces (`feature_spaces_metaspaces`) [In Development]
|
||||
|
||||
Metaspaces are automatically populated spaces you can enable in your Space panel.
|
||||
By default, you'll have Home or All rooms, but you can opt in to a People, Favourites, and Other Rooms metaspace too.
|
||||
|
||||
## Location sharing (`feature_location_share`) [In Development]
|
||||
|
||||
Allows users to send and display location data using [maplibre](https://maplibre.org).
|
||||
@@ -135,9 +160,9 @@ demonstrate viability and prove [MSC3488](https://github.com/matrix-org/matrix-d
|
||||
and [MSC3489](https://github.com/matrix-org/matrix-doc/pull/3489) - **the UI has not yet
|
||||
been designed, and it will not exit labs until it has**.
|
||||
|
||||
For this to work, you must specify the URL of a valid map tile server style file in
|
||||
the `map_style_url` setting in config.json.
|
||||
For example: "https://api.maptiler.com/maps/streets/style.json?key=YOUR_KEY_GOES_HERE"`
|
||||
For this to work, you must specify a valid maptiler.com API key in
|
||||
`"map_style_url": "https://api.maptiler.com/maps/basic/style.json?key=YOUR_KEY_GOES_HERE"`
|
||||
in your config.json, or find an alternative map tile server.
|
||||
|
||||
## Breadcrumbs v2 (`feature_breadcrumbs_v2`)
|
||||
|
||||
@@ -147,28 +172,3 @@ triggered by the button to the right of the filter field.
|
||||
## Spotlight search (`feature_spotlight`) [In Development]
|
||||
|
||||
Switches to a new room search experience.
|
||||
|
||||
## Extensible events rendering (`feature_extensible_events`) [In Development]
|
||||
|
||||
*Intended for developer use only at the moment.*
|
||||
|
||||
Extensible Events are a [new event format](https://github.com/matrix-org/matrix-doc/pull/1767) which
|
||||
supports graceful fallback in unknown event types. Instead of rendering nothing or a blank space, events
|
||||
can define a series of other events which represent the event's information but in different ways. The
|
||||
base of these fallbacks being text.
|
||||
|
||||
Turning this flag on indicates that, when possible, the extensible events structure should be parsed on
|
||||
supported event types. This should lead to zero perceptual change in the timeline except in cases where
|
||||
the sender is using unknown/unrecognised event types.
|
||||
|
||||
Sending events with extensible events structure is always enabled - this should not affect any downstream
|
||||
client.
|
||||
|
||||
## Right panel stays open (`feature_right_panel_default_open`)
|
||||
|
||||
This is an experimental default open right panel mode as a quick fix for those
|
||||
who prefer to have the right panel open consistently across rooms.
|
||||
|
||||
If no right panel state is known for the room or it was closed on the last room
|
||||
visit, it will default to the room member list. Otherwise, the saved card last
|
||||
used in that room is shown.
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
],
|
||||
"hosting_signup_link": "https://element.io/matrix-services?utm_source=element-web&utm_medium=web",
|
||||
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
|
||||
"uisi_autorageshake_app": "element-auto-uisi",
|
||||
"showLabsSettings": false,
|
||||
"piwik": {
|
||||
"url": "https://piwik.riot.im/",
|
||||
@@ -49,9 +48,5 @@
|
||||
"privacyPolicyUrl": "https://element.io/privacy",
|
||||
"termsOfServiceUrl": "https://element.io/terms-of-service",
|
||||
"url": "https://ems.element.io/element-home/in-app-loader"
|
||||
},
|
||||
"posthog": {
|
||||
"projectApiKey": "phc_Jzsm6DTm6V2705zeU5dcNvQDlonOR68XvX2sh1sEOHO",
|
||||
"apiHost": "https://posthog.hss.element.io"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
],
|
||||
"hosting_signup_link": "https://element.io/matrix-services?utm_source=element-web&utm_medium=web",
|
||||
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
|
||||
"uisi_autorageshake_app": "element-auto-uisi",
|
||||
"showLabsSettings": true,
|
||||
"piwik": {
|
||||
"url": "https://piwik.riot.im/",
|
||||
@@ -58,6 +57,8 @@
|
||||
"projectApiKey": "phc_Jzsm6DTm6V2705zeU5dcNvQDlonOR68XvX2sh1sEOHO",
|
||||
"apiHost": "https://posthog.hss.element.io"
|
||||
},
|
||||
"features": {},
|
||||
"map_style_url": "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx"
|
||||
"features": {
|
||||
"feature_spaces_metaspaces": true
|
||||
},
|
||||
"map_style_url": "https://api.maptiler.com/maps/basic/style.json?key=JCdnMQY3oGklTYYLIvtI"
|
||||
}
|
||||
|
||||
12
package.json
12
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "element-web",
|
||||
"version": "1.9.9",
|
||||
"version": "1.9.8",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "New Vector Ltd.",
|
||||
"repository": {
|
||||
@@ -46,7 +46,7 @@
|
||||
"start": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n reskindex,reskindex-react,res,element-js \"yarn reskindex:watch\" \"yarn reskindex:watch-react\" \"yarn start:res\" \"yarn start:js\"",
|
||||
"start:https": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n reskindex,reskindex-react,res,element-js \"yarn reskindex:watch\" \"yarn reskindex:watch-react\" \"yarn start:res\" \"yarn start:js --https\"",
|
||||
"start:res": "yarn build:jitsi && node scripts/copy-res.js -w",
|
||||
"start:js": "webpack-dev-server --host=0.0.0.0 --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js -w --mode development --disable-host-check --hot",
|
||||
"start:js": "webpack-dev-server --host=0.0.0.0 --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js -w --progress --mode development --disable-host-check --hot",
|
||||
"lint": "yarn lint:types && yarn lint:js && yarn lint:style",
|
||||
"lint:js": "eslint --max-warnings 0 src",
|
||||
"lint:js-fix": "eslint --fix src",
|
||||
@@ -57,6 +57,7 @@
|
||||
"dependencies": {
|
||||
"@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.8.tgz",
|
||||
"browser-request": "^0.3.3",
|
||||
"eslint-plugin-import": "^2.25.2",
|
||||
"gfm.css": "^1.1.2",
|
||||
"jsrsasign": "^10.2.0",
|
||||
"katex": "^0.12.0",
|
||||
@@ -110,8 +111,7 @@
|
||||
"dotenv": "^10.0.0",
|
||||
"eslint": "7.18.0",
|
||||
"eslint-config-google": "^0.14.0",
|
||||
"eslint-plugin-import": "^2.25.4",
|
||||
"eslint-plugin-matrix-org": "^0.4.0",
|
||||
"eslint-plugin-matrix-org": "github:matrix-org/eslint-plugin-matrix-org#48ec1e6af2cfb8310b9a6e23edf2dc7a26ddd580",
|
||||
"eslint-plugin-react": "^7.22.0",
|
||||
"eslint-plugin-react-hooks": "^4.2.0",
|
||||
"extract-text-webpack-plugin": "^4.0.0-beta.0",
|
||||
@@ -126,12 +126,12 @@
|
||||
"loader-utils": "^1.4.0",
|
||||
"matrix-mock-request": "^1.2.3",
|
||||
"matrix-react-test-utils": "^0.2.3",
|
||||
"matrix-web-i18n": "^1.2.0",
|
||||
"matrix-web-i18n": "github:matrix-org/matrix-web-i18n",
|
||||
"mini-css-extract-plugin": "^0.12.0",
|
||||
"minimist": "^1.2.5",
|
||||
"mkdirp": "^1.0.4",
|
||||
"modernizr": "^3.11.7",
|
||||
"node-fetch": "^2.6.7",
|
||||
"node-fetch": "^2.6.1",
|
||||
"optimize-css-assets-webpack-plugin": "^5.0.4",
|
||||
"postcss-easings": "^2.0.0",
|
||||
"postcss-extend": "^1.0.5",
|
||||
|
||||
@@ -12,20 +12,20 @@ const ProxyAgent = require("simple-proxy-agent");
|
||||
console.log("Making webapp directory");
|
||||
mkdirp.sync("webapp");
|
||||
|
||||
// curl -s https://meet.element.io/libs/external_api.min.js > ./webapp/jitsi_external_api.min.js
|
||||
// curl -s https://jitsi.riot.im/libs/external_api.min.js > ./webapp/jitsi_external_api.min.js
|
||||
console.log("Downloading Jitsi script");
|
||||
const fname = path.join("webapp", "jitsi_external_api.min.js");
|
||||
|
||||
const options = {};
|
||||
if (process.env.HTTPS_PROXY) {
|
||||
options.agent = new ProxyAgent(process.env.HTTPS_PROXY, { tunnel: true });
|
||||
options.agent = new ProxyAgent(process.env.HTTPS_PROXY, {tunnel: true});
|
||||
}
|
||||
|
||||
fetch("https://meet.element.io/libs/external_api.min.js", options).then(res => {
|
||||
const stream = fs.createWriteStream(fname);
|
||||
return new Promise((resolve, reject) => {
|
||||
res.body.pipe(stream);
|
||||
res.body.on('error', err => reject(err));
|
||||
res.body.on('finish', () => resolve());
|
||||
});
|
||||
fetch("https://jitsi.riot.im/libs/external_api.min.js", options).then(res => {
|
||||
const stream = fs.createWriteStream(fname);
|
||||
return new Promise((resolve, reject) => {
|
||||
res.body.pipe(stream);
|
||||
res.body.on('error', err => reject(err));
|
||||
res.body.on('finish', () => resolve());
|
||||
});
|
||||
}).then(() => console.log('Done with Jitsi download'));
|
||||
|
||||
@@ -25,8 +25,7 @@ function clone() {
|
||||
if [ -n "$branch" ]
|
||||
then
|
||||
echo "Trying to use $org/$repo#$branch"
|
||||
# Disable auth prompts: https://serverfault.com/a/665959
|
||||
GIT_TERMINAL_PROMPT=0 git clone https://github.com/$org/$repo.git $repo --branch $branch \
|
||||
git clone git://github.com/$org/$repo.git $repo --branch $branch \
|
||||
"${GIT_CLONE_ARGS[@]}"
|
||||
return $?
|
||||
fi
|
||||
|
||||
@@ -32,7 +32,5 @@
|
||||
"Failed to start": "Αποτυχία έναρξης",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)",
|
||||
"Missing indexeddb worker script!": "Απουσία indexeddb worker script!",
|
||||
"Use %(brand)s on mobile": "Χρήση %(brand)s σε κινητό",
|
||||
"Switch to space by number": "Εναλλαγή σε space με αριθμό"
|
||||
"Missing indexeddb worker script!": "Απουσία indexeddb worker script!"
|
||||
}
|
||||
|
||||
@@ -12,8 +12,7 @@
|
||||
"Dismiss": "Dismiss",
|
||||
"Switch to space by number": "Switch to space by number",
|
||||
"Open user settings": "Open user settings",
|
||||
"Previous recently visited room or community": "Previous recently visited room or community",
|
||||
"Next recently visited room or community": "Next recently visited room or community",
|
||||
"Previous/next recently visited room or community": "Previous/next recently visited room or community",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)",
|
||||
"Go to your browser to complete Sign In": "Go to your browser to complete Sign In",
|
||||
"Unknown device": "Unknown device",
|
||||
|
||||
@@ -12,26 +12,11 @@
|
||||
"Invalid JSON": "Ugyldig JSON",
|
||||
"Unexpected error preparing the app. See console for details.": "Uventa feil under lasting av programmet. Sjå konsollen for detaljar.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ugyldig oppsett: berre muleg å berre spesifiere ein av default_server_config, default_server_name eller default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Ugyldig oppsett: Ingen standardserver er spesifisert.",
|
||||
"Invalid configuration: no default server specified.": "Ugyldig oppsett: ingen \"default server\" er spesifisert.",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Oppsettet for din Element inneheld ugyldig JSON. Sjekk konfigurasjonsfila, deretter last om sida.",
|
||||
"Unable to load config file: please refresh the page to try again.": "Fekk ikkje til å lasta konfigurasjonsfila: last inn sida for å prøva om att.",
|
||||
"Go to your browser to complete Sign In": "Opna nettlesaren din for å fullføra innlogginga",
|
||||
"Unsupported browser": "Nettlesaren er ikkje støtta",
|
||||
"Your browser can't run %(brand)s": "Din nettlesar kan ikkje køyra %(brand)s",
|
||||
"Go to element.io": "Gå til element.io",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Du kan fortsetja å bruka gjeldande nettlesar, men nokre eller alle funksjonane fungerer kanskje ikkje, og utsjånaden og kjensla av applikasjonen kan vera feil.",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Installer <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, eller <safariLink>Safari</safariLink> for den beste opplevinga.",
|
||||
"I understand the risks and wish to continue": "Eg forstår risikoen og ynskjer å fortsetja",
|
||||
"Previous/next recently visited room or community": "Føregåande/neste nyleg besøkte rom eller samfunn",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s brukar avanserte nettlesarfunksjonar som ikkje er støtta av den gjeldande nettlesaren din.",
|
||||
"Use %(brand)s on mobile": "Bruk %(brand)s på mobil",
|
||||
"Powered by Matrix": "Driven av Matrix",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Skrivebord (%(platformName)s)",
|
||||
"Your Element is misconfigured": "Element er feilkonfigurert",
|
||||
"Failed to start": "Klarte ikkje å starta",
|
||||
"Open user settings": "Opna brukarinnstillingar",
|
||||
"Switch to space by number": "Byt til plass etter nummer",
|
||||
"Open": "Opna",
|
||||
"Download Completed": "Nedlasting Fullført"
|
||||
"Go to element.io": "Gå til element.io"
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"Dismiss": "Zamietnuť",
|
||||
"powered by Matrix": "poháňa Matrix",
|
||||
"Welcome to Element": "Víta vás Element",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizované, šifrované konverzácie a spolupráca na platforme [matrix]",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizovaný, šifrovaný chat a spolupráca na platforme [matrix]",
|
||||
"Sign In": "Prihlásiť sa",
|
||||
"Create Account": "Vytvoriť účet",
|
||||
"Explore rooms": "Preskúmať miestnosti",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Ви можете продовжити, користуючись вашим поточним браузером, але деякі функції можуть не працювати, а застосунок може виглядати неправильно.",
|
||||
"I understand the risks and wish to continue": "Я усвідомлюю ризик і бажаю продовжити",
|
||||
"Go to element.io": "Перейти на element.io",
|
||||
"Failed to start": "Не вдалося запустити",
|
||||
"Failed to start": "Запуск не вдався",
|
||||
"Download Completed": "Завантаження завершено",
|
||||
"Missing indexeddb worker script!": "Відсутній робочий сценарій IndexedDB!",
|
||||
"Your Element is misconfigured": "Ваш Element налаштовано неправильно",
|
||||
|
||||
@@ -218,6 +218,12 @@ function joinConference() { // event handler bound in HTML
|
||||
|
||||
switchVisibleContainers();
|
||||
|
||||
if (widgetApi) {
|
||||
// ignored promise because we don't care if it works
|
||||
// noinspection JSIgnoredPromiseFromCall
|
||||
widgetApi.setAlwaysOnScreen(true);
|
||||
}
|
||||
|
||||
logger.warn(
|
||||
"[Jitsi Widget] The next few errors about failing to parse URL parameters are fine if " +
|
||||
"they mention 'external_api' or 'jitsi' in the stack. They're just Jitsi Meet trying to parse " +
|
||||
@@ -246,16 +252,6 @@ function joinConference() { // event handler bound in HTML
|
||||
if (userId) meetApi.executeCommand("email", userId);
|
||||
if (roomName) meetApi.executeCommand("subject", roomName);
|
||||
|
||||
// fires once when user joins the conference
|
||||
// (regardless of video on or off)
|
||||
meetApi.on("videoConferenceJoined", () => {
|
||||
if (widgetApi) {
|
||||
// ignored promise because we don't care if it works
|
||||
// noinspection JSIgnoredPromiseFromCall
|
||||
widgetApi.setAlwaysOnScreen(true);
|
||||
}
|
||||
});
|
||||
|
||||
meetApi.on("readyToClose", () => {
|
||||
switchVisibleContainers();
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@ Copyright 2016 Aviral Dasgupta
|
||||
Copyright 2016 OpenMarket Ltd
|
||||
Copyright 2019 Michael Telatynski <7t3chguy@gmail.com>
|
||||
Copyright 2018 - 2021 New Vector Ltd
|
||||
Copyright 2022 Šimon Brandner <simon.bra.ag@gmail.com>
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@@ -35,8 +34,10 @@ import Modal from "matrix-react-sdk/src/Modal";
|
||||
import InfoDialog from "matrix-react-sdk/src/components/views/dialogs/InfoDialog";
|
||||
import Spinner from "matrix-react-sdk/src/components/views/elements/Spinner";
|
||||
import {
|
||||
CategoryName,
|
||||
Categories,
|
||||
CMD_OR_CTRL,
|
||||
DIGITS,
|
||||
Modifiers,
|
||||
registerShortcut,
|
||||
} from "matrix-react-sdk/src/accessibility/KeyboardShortcuts";
|
||||
import { isOnlyCtrlOrCmdKeyEvent, Key } from "matrix-react-sdk/src/Keyboard";
|
||||
@@ -286,50 +287,43 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||
});
|
||||
|
||||
// register OS-specific shortcuts
|
||||
registerShortcut("KeyBinding.switchToSpaceByNumber", CategoryName.NAVIGATION, {
|
||||
default: {
|
||||
ctrlOrCmdKey: true,
|
||||
registerShortcut(Categories.NAVIGATION, {
|
||||
keybinds: [{
|
||||
modifiers: [CMD_OR_CTRL],
|
||||
key: DIGITS,
|
||||
},
|
||||
displayName: _td("Switch to space by number"),
|
||||
}],
|
||||
description: _td("Switch to space by number"),
|
||||
});
|
||||
|
||||
if (isMac) {
|
||||
registerShortcut("KeyBinding.openUserSettings", CategoryName.NAVIGATION, {
|
||||
default: {
|
||||
commandKey: true,
|
||||
registerShortcut(Categories.NAVIGATION, {
|
||||
keybinds: [{
|
||||
modifiers: [Modifiers.COMMAND],
|
||||
key: Key.COMMA,
|
||||
},
|
||||
displayName: _td("Open user settings"),
|
||||
}],
|
||||
description: _td("Open user settings"),
|
||||
});
|
||||
registerShortcut("KeyBinding.previousVisitedRoomOrCommunity", CategoryName.NAVIGATION, {
|
||||
default: {
|
||||
commandKey: true,
|
||||
|
||||
registerShortcut(Categories.NAVIGATION, {
|
||||
keybinds: [{
|
||||
modifiers: [Modifiers.COMMAND],
|
||||
key: Key.SQUARE_BRACKET_LEFT,
|
||||
},
|
||||
displayName: _td("Previous recently visited room or community"),
|
||||
});
|
||||
registerShortcut("KeyBinding.nextVisitedRoomOrCommunity", CategoryName.NAVIGATION, {
|
||||
default: {
|
||||
commandKey: true,
|
||||
}, {
|
||||
modifiers: [Modifiers.COMMAND],
|
||||
key: Key.SQUARE_BRACKET_RIGHT,
|
||||
},
|
||||
displayName: _td("Next recently visited room or community"),
|
||||
}],
|
||||
description: _td("Previous/next recently visited room or community"),
|
||||
});
|
||||
} else {
|
||||
registerShortcut("KeyBinding.previousVisitedRoomOrCommunity", CategoryName.NAVIGATION, {
|
||||
default: {
|
||||
altKey: true,
|
||||
registerShortcut(Categories.NAVIGATION, {
|
||||
keybinds: [{
|
||||
modifiers: [Modifiers.ALT],
|
||||
key: Key.ARROW_LEFT,
|
||||
},
|
||||
displayName: _td("Previous recently visited room or community"),
|
||||
});
|
||||
registerShortcut("KeyBinding.nextVisitedRoomOrCommunity", CategoryName.NAVIGATION, {
|
||||
default: {
|
||||
altKey: true,
|
||||
}, {
|
||||
modifiers: [Modifiers.ALT],
|
||||
key: Key.ARROW_RIGHT,
|
||||
},
|
||||
displayName: _td("Next recently visited room or community"),
|
||||
}],
|
||||
description: _td("Previous/next recently visited room or community"),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
106
src/vector/screenshots.html
Normal file
106
src/vector/screenshots.html
Normal file
@@ -0,0 +1,106 @@
|
||||
<!doctype html>
|
||||
<html lang="en" style="height: 100%;">
|
||||
<!--
|
||||
A page to render components of element-web that may be used for
|
||||
screenshot testing.
|
||||
|
||||
See src/vector/screenshots.tsx for more information.
|
||||
-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Element Screenshots</title>
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="<%= require('../../res/vector-icons/apple-touch-icon-57.png') %>">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="<%= require('../../res/vector-icons/apple-touch-icon-60.png') %>">
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="<%= require('../../res/vector-icons/apple-touch-icon-72.png') %>">
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="<%= require('../../res/vector-icons/apple-touch-icon-76.png') %>">
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="<%= require('../../res/vector-icons/apple-touch-icon-114.png') %>">
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="<%= require('../../res/vector-icons/apple-touch-icon-120.png') %>">
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="<%= require('../../res/vector-icons/apple-touch-icon-144.png') %>">
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="<%= require('../../res/vector-icons/apple-touch-icon-152.png') %>">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="<%= require('../../res/vector-icons/apple-touch-icon-180.png') %>">
|
||||
<link rel="manifest" href="manifest.json">
|
||||
<meta name="referrer" content="no-referrer">
|
||||
<link rel="shortcut icon" href="<%= require('../../res/vector-icons/favicon.ico') %>">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="apple-mobile-web-app-title" content="Element">
|
||||
<meta name="application-name" content="Element">
|
||||
<meta name="msapplication-TileColor" content="#da532c">
|
||||
<meta name="msapplication-TileImage" content="<%= require('../../res/vector-icons/mstile-150.png') %>">
|
||||
<meta name="msapplication-config" content="<%= require('../../res/vector-icons/browserconfig.xml') %>">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
<meta property="og:image" content="<%= og_image_url %>" />
|
||||
<meta http-equiv="Content-Security-Policy" content="
|
||||
default-src 'none';
|
||||
style-src 'self' 'unsafe-inline';
|
||||
script-src 'self' 'unsafe-eval' https://www.recaptcha.net https://www.gstatic.com;
|
||||
img-src * blob: data:;
|
||||
connect-src *;
|
||||
font-src 'self' data:;
|
||||
media-src * blob: data:;
|
||||
child-src * blob: data:;
|
||||
worker-src 'self';
|
||||
frame-src * blob: data:;
|
||||
form-action 'self';
|
||||
manifest-src 'self';
|
||||
">
|
||||
<% for (var i=0; i < htmlWebpackPlugin.files.css.length; i++) {
|
||||
var file = htmlWebpackPlugin.files.css[i];
|
||||
var match = file.match(/^bundles\/.*?\/theme-(.*)\.css$/);
|
||||
if (match) {
|
||||
var title = match[1].charAt(0).toUpperCase() + match[1].slice(1);
|
||||
%>
|
||||
<link rel="stylesheet" disabled="disabled" data-mx-theme="<%= title %>" title="<%= title %>" href="<%= file %>">
|
||||
<% } else { %>
|
||||
<link rel="stylesheet" href="<%= file %>">
|
||||
<% }
|
||||
} %>
|
||||
|
||||
<% for (var i=0; i < htmlWebpackPlugin.tags.headTags.length; i++) {
|
||||
var tag = htmlWebpackPlugin.tags.headTags[i];
|
||||
var path = tag.attributes && tag.attributes.href;
|
||||
if (path.indexOf("Inter") !== -1) { %>
|
||||
<link rel="preload" as="font" href="<%= path %>" crossorigin="anonymous"/>
|
||||
<% }
|
||||
} %>
|
||||
|
||||
</head>
|
||||
<body style="height: 100%; margin: 0;">
|
||||
<noscript>Sorry, Element requires JavaScript to be enabled.</noscript> <!-- TODO: Translate this? -->
|
||||
<section id="matrixchat" style="height: 100%;" class="notranslate"></section>
|
||||
<script src="<%= htmlWebpackPlugin.files.js.find(entry => entry.includes("screenshots.js")) %>"></script>
|
||||
|
||||
<!-- Legacy supporting Prefetch images -->
|
||||
<img src="<%= require('matrix-react-sdk/res/img/warning.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
||||
<img src="<%= require('matrix-react-sdk/res/img/e2e/warning.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
||||
<img src="<%= require('matrix-react-sdk/res/img/feather-customised/warning-triangle.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
||||
<img src="<%= require('matrix-react-sdk/res/img/format/bold.svg') %>" width="25" height="22" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
||||
<img src="<%= require('matrix-react-sdk/res/img/format/code.svg') %>" width="25" height="22" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
||||
<img src="<%= require('matrix-react-sdk/res/img/format/italics.svg') %>" width="25" height="22" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
||||
<img src="<%= require('matrix-react-sdk/res/img/format/quote.svg') %>" width="25" height="22" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
||||
<img src="<%= require('matrix-react-sdk/res/img/format/strikethrough.svg') %>" width="25" height="22" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
||||
|
||||
<audio id="messageAudio">
|
||||
<source src="media/message.ogg" type="audio/ogg" />
|
||||
<source src="media/message.mp3" type="audio/mpeg" />
|
||||
</audio>
|
||||
<audio id="ringAudio" loop>
|
||||
<source src="media/ring.ogg" type="audio/ogg" />
|
||||
<source src="media/ring.mp3" type="audio/mpeg" />
|
||||
</audio>
|
||||
<audio id="ringbackAudio" loop>
|
||||
<source src="media/ringback.ogg" type="audio/ogg" />
|
||||
<source src="media/ringback.mp3" type="audio/mpeg" />
|
||||
</audio>
|
||||
<audio id="callendAudio">
|
||||
<source src="media/callend.ogg" type="audio/ogg" />
|
||||
<source src="media/callend.mp3" type="audio/mpeg" />
|
||||
</audio>
|
||||
<audio id="busyAudio">
|
||||
<source src="media/busy.ogg" type="audio/ogg" />
|
||||
<source src="media/busy.mp3" type="audio/mpeg" />
|
||||
</audio>
|
||||
<audio id="remoteAudio"></audio>
|
||||
<!-- let CSS themes pass constants to the app -->
|
||||
<div id="mx_theme_accentColor"></div><div id="mx_theme_secondaryAccentColor"></div><div id="mx_theme_tertiaryAccentColor"></div>
|
||||
</body>
|
||||
</html>
|
||||
141
src/vector/screenshots.tsx
Normal file
141
src/vector/screenshots.tsx
Normal file
@@ -0,0 +1,141 @@
|
||||
/*
|
||||
Copyright 2022 New Vector Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// This file is a cut-down copy of index.ts. It goes together with
|
||||
// screenshots.html to create a page allowing you to choose a component,
|
||||
// Which is rendered with example data, allowing us to take screenshots
|
||||
// (using code in matrix-react-sdk/tests/end-to-end-tests/screenshots.js)
|
||||
// and compare for any changes against previous versions.
|
||||
|
||||
import './modernizr';
|
||||
import * as ReactDOM from "react-dom";
|
||||
import React, { ChangeEvent, ReactElement } from 'react';
|
||||
import { MatrixClientPeg } from "matrix-react-sdk/src/MatrixClientPeg";
|
||||
|
||||
import { screenshotNotificationUserSettingsTab } from './screenshots/notification_user_settings_tab';
|
||||
|
||||
let widthInput: HTMLInputElement;
|
||||
let heightInput: HTMLInputElement;
|
||||
let classInput: HTMLInputElement;
|
||||
|
||||
async function settled(...promises: Array<Promise<any>>) {
|
||||
for (const prom of promises) {
|
||||
try {
|
||||
await prom;
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function start() {
|
||||
const {
|
||||
preparePlatform,
|
||||
loadSkin,
|
||||
loadLanguage,
|
||||
loadTheme,
|
||||
} = await import(
|
||||
/* webpackChunkName: "init" */
|
||||
/* webpackPreload: true */
|
||||
"./init");
|
||||
|
||||
try {
|
||||
preparePlatform();
|
||||
const loadLanguagePromise = loadLanguage();
|
||||
const loadThemePromise = loadTheme();
|
||||
const loadSkinPromise = loadSkin();
|
||||
await settled(loadSkinPromise, loadThemePromise, loadLanguagePromise);
|
||||
|
||||
await loadSkinPromise;
|
||||
await loadThemePromise;
|
||||
await loadLanguagePromise;
|
||||
|
||||
await myLoadApp();
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
}
|
||||
}
|
||||
|
||||
async function myLoadApp() {
|
||||
// We know that MatrixClientPeg is a MatrixClientPegClass
|
||||
await (MatrixClientPeg as any).createClient({});
|
||||
|
||||
window.matrixChat = ReactDOM.render(
|
||||
<div>
|
||||
<input type="hidden" id="screenshot_width" value="" />
|
||||
<input type="hidden" id="screenshot_height" value="" />
|
||||
<input type="hidden" id="screenshot_class" value="" />
|
||||
<select id="select_screenshot" defaultValue="" onChange={selectChange}>
|
||||
<option value="">-- Choose component to screenshot --</option>
|
||||
{
|
||||
screenshots.map((screenshot) =>
|
||||
<option
|
||||
value={screenshot.name}
|
||||
key={screenshot.name}
|
||||
>{ screenshot.name }</option>,
|
||||
)
|
||||
}
|
||||
</select>
|
||||
<div id="screenshot" />
|
||||
</div>,
|
||||
document.getElementById('matrixchat'),
|
||||
);
|
||||
|
||||
widthInput = document.getElementById("screenshot_width") as HTMLInputElement;
|
||||
heightInput = document.getElementById("screenshot_height") as HTMLInputElement;
|
||||
classInput = document.getElementById("screenshot_class") as HTMLInputElement;
|
||||
}
|
||||
|
||||
function selectChange(event: ChangeEvent<HTMLSelectElement>) {
|
||||
const screenshot = screenshots.find((scr) => scr.name === event.target.value);
|
||||
if (screenshot) {
|
||||
widthInput["value"] = screenshot.width.toString();
|
||||
heightInput["value"] = screenshot.height.toString();
|
||||
classInput["value"] = screenshot.cssClass;
|
||||
ReactDOM.render(
|
||||
screenshot.fn() as ReactElement,
|
||||
document.getElementById('screenshot'),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* To add more screenshots, add a row to this table.
|
||||
*
|
||||
* Note: width, height and cssClass act as hints to the screenshotting code in
|
||||
* matrix-react-sdk about how to render the screenshot - they do not affect the
|
||||
* size or appearance if you visit the page in your browser.
|
||||
*/
|
||||
const screenshots = [
|
||||
{
|
||||
name: "NotificationUserSettingsTab_wide",
|
||||
fn: screenshotNotificationUserSettingsTab,
|
||||
width: 800,
|
||||
height: 800,
|
||||
cssClass: "mx_NotificationUserSettingsTab",
|
||||
},
|
||||
{
|
||||
name: "NotificationUserSettingsTab_narrow",
|
||||
fn: screenshotNotificationUserSettingsTab,
|
||||
width: 400,
|
||||
height: 800,
|
||||
cssClass: "mx_NotificationUserSettingsTab",
|
||||
},
|
||||
];
|
||||
|
||||
start().catch(err => {
|
||||
console.error(err);
|
||||
});
|
||||
244
src/vector/screenshots/notification_user_settings_tab.tsx
Normal file
244
src/vector/screenshots/notification_user_settings_tab.tsx
Normal file
@@ -0,0 +1,244 @@
|
||||
/*
|
||||
Copyright 2022 New Vector Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import { IPushRules } from "matrix-js-sdk/src/@types/PushRules";
|
||||
import { MatrixClientPeg } from "matrix-react-sdk/src/MatrixClientPeg";
|
||||
import { PushProcessor } from 'matrix-js-sdk/src/pushprocessor';
|
||||
import React, { ReactElement } from 'react';
|
||||
import * as sdk from 'matrix-react-sdk';
|
||||
|
||||
export function screenshotNotificationUserSettingsTab(): ReactElement {
|
||||
MatrixClientPeg.get().getPushRules = async () => {
|
||||
return PushProcessor.rewriteDefaultRules(pushRulesJson() as IPushRules);
|
||||
};
|
||||
|
||||
MatrixClientPeg.get().getPushers = async () => {
|
||||
return { pushers: [] };
|
||||
};
|
||||
MatrixClientPeg.get().getThreePids = async () => {
|
||||
return { threepids: [] };
|
||||
};
|
||||
|
||||
const NotificationUserSettingsTab= sdk.getComponent(
|
||||
'views.settings.tabs.user.NotificationUserSettingsTab');
|
||||
return <NotificationUserSettingsTab />;
|
||||
}
|
||||
|
||||
function pushRulesJson() {
|
||||
// This is a lightly-modified paste of the JSON returned from a GET
|
||||
// to /pushrules/
|
||||
|
||||
/* eslint-disable */
|
||||
return {
|
||||
"global": {
|
||||
"underride": [
|
||||
{
|
||||
"conditions": [
|
||||
{ "kind": "event_match", "key": "type", "pattern": "m.call.invite" },
|
||||
],
|
||||
"actions": [
|
||||
"notify",
|
||||
{ "set_tweak": "sound", "value": "ring" },
|
||||
{ "set_tweak": "highlight", "value": false },
|
||||
],
|
||||
"rule_id": ".m.rule.call",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
},
|
||||
{
|
||||
"conditions": [
|
||||
{ "kind": "room_member_count", "is": "2" },
|
||||
{ "kind": "event_match", "key": "type", "pattern": "m.room.message" },
|
||||
],
|
||||
"actions": [
|
||||
"notify",
|
||||
{ "set_tweak": "sound", "value": "default" },
|
||||
{ "set_tweak": "highlight", "value": false },
|
||||
],
|
||||
"rule_id": ".m.rule.room_one_to_one",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
},
|
||||
{
|
||||
"conditions": [
|
||||
{ "kind": "room_member_count", "is": "2" },
|
||||
{ "kind": "event_match", "key": "type", "pattern": "m.room.encrypted" },
|
||||
],
|
||||
"actions": [
|
||||
"notify",
|
||||
{ "set_tweak": "sound", "value": "default" },
|
||||
{ "set_tweak": "highlight", "value": false },
|
||||
],
|
||||
"rule_id": ".m.rule.encrypted_room_one_to_one",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
},
|
||||
{
|
||||
"conditions": [
|
||||
{ "kind": "event_match", "key": "type", "pattern": "m.room.message" },
|
||||
],
|
||||
"actions": [
|
||||
"dont_notify",
|
||||
],
|
||||
"rule_id": ".m.rule.message",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
},
|
||||
{
|
||||
"conditions": [
|
||||
{ "kind": "event_match", "key": "type", "pattern": "m.room.encrypted" },
|
||||
],
|
||||
"actions": [
|
||||
"dont_notify",
|
||||
],
|
||||
"rule_id": ".m.rule.encrypted",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
},
|
||||
{
|
||||
"conditions": [
|
||||
{ "kind": "event_match", "key": "type", "pattern": "im.vector.modular.widgets" },
|
||||
{ "kind": "event_match", "key": "content.type", "pattern": "jitsi" },
|
||||
{ "kind": "event_match", "key": "state_key", "pattern": "*" },
|
||||
],
|
||||
"actions": [
|
||||
"notify",
|
||||
{ "set_tweak": "highlight", "value": false },
|
||||
],
|
||||
"rule_id": ".im.vector.jitsi",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
},
|
||||
],
|
||||
"sender": [],
|
||||
"room": [],
|
||||
"content": [
|
||||
{
|
||||
"actions": [
|
||||
"notify",
|
||||
{ "set_tweak": "sound", "value": "default" },
|
||||
{ "set_tweak": "highlight" },
|
||||
],
|
||||
"pattern": "username",
|
||||
"rule_id": ".m.rule.contains_user_name",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
},
|
||||
],
|
||||
"override": [
|
||||
{
|
||||
"conditions": [],
|
||||
"actions": [
|
||||
"dont_notify"
|
||||
],
|
||||
"rule_id": ".m.rule.master",
|
||||
"default": true,
|
||||
"enabled": false,
|
||||
},
|
||||
{
|
||||
"conditions": [
|
||||
{ "kind": "event_match", "key": "content.msgtype", "pattern": "m.notice" }
|
||||
],
|
||||
"actions": [
|
||||
"dont_notify",
|
||||
],
|
||||
"rule_id": ".m.rule.suppress_notices",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
},
|
||||
{
|
||||
"conditions": [
|
||||
{ "kind": "event_match", "key": "type", "pattern": "m.room.member" },
|
||||
{ "kind": "event_match", "key": "content.membership", "pattern": "invite" },
|
||||
{ "kind": "event_match", "key": "state_key", "pattern": "@username:example.com" }
|
||||
],
|
||||
"actions": [
|
||||
"notify",
|
||||
{ "set_tweak": "sound", "value": "default" },
|
||||
{ "set_tweak": "highlight", "value": false }
|
||||
],
|
||||
"rule_id": ".m.rule.invite_for_me",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
},
|
||||
{
|
||||
"conditions": [
|
||||
{ "kind": "event_match", "key": "type", "pattern": "m.room.member" }
|
||||
],
|
||||
"actions": [
|
||||
"dont_notify",
|
||||
],
|
||||
"rule_id": ".m.rule.member_event",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
},
|
||||
{
|
||||
"conditions": [
|
||||
{ "kind": "contains_display_name" }
|
||||
],
|
||||
"actions": [
|
||||
"notify",
|
||||
{ "set_tweak": "sound", "value": "default" },
|
||||
{ "set_tweak": "highlight" }
|
||||
],
|
||||
"rule_id": ".m.rule.contains_display_name",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
},
|
||||
{
|
||||
"conditions": [
|
||||
{ "kind": "event_match", "key": "content.body", "pattern": "@room" },
|
||||
{ "kind": "sender_notification_permission", "key": "room" }
|
||||
],
|
||||
"actions": [
|
||||
"notify",
|
||||
{ "set_tweak": "highlight", "value": true }
|
||||
],
|
||||
"rule_id": ".m.rule.roomnotif",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
},
|
||||
{
|
||||
"conditions": [
|
||||
{ "kind": "event_match", "key": "type", "pattern": "m.room.tombstone" },
|
||||
{ "kind": "event_match", "key": "state_key", "pattern": "" }
|
||||
],
|
||||
"actions": [
|
||||
"notify",
|
||||
{ "set_tweak": "highlight", "value": true }
|
||||
],
|
||||
"rule_id": ".m.rule.tombstone",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
},
|
||||
{
|
||||
"conditions": [
|
||||
{ "kind": "event_match", "key": "type", "pattern": "m.reaction" }
|
||||
],
|
||||
"actions": [
|
||||
"dont_notify",
|
||||
],
|
||||
"rule_id": ".m.rule.reaction",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
}
|
||||
],
|
||||
},
|
||||
"device": {},
|
||||
};
|
||||
/* eslint-enable */
|
||||
}
|
||||
|
||||
@@ -77,7 +77,6 @@ describe('joining a room', function() {
|
||||
const ROOM_ALIAS = '#alias:localhost';
|
||||
const ROOM_ID = '!id:localhost';
|
||||
|
||||
httpBackend.when('GET', '/capabilities').respond(200, { capabilities : {} });
|
||||
httpBackend.when('GET', '/pushrules').respond(200, {});
|
||||
httpBackend.when('POST', '/filter').respond(200, { filter_id: 'fid' });
|
||||
|
||||
|
||||
@@ -313,7 +313,6 @@ describe('loading:', function() {
|
||||
});
|
||||
|
||||
it('shows the last known room by default', function() {
|
||||
httpBackend.when('GET', '/capabilities').respond(200, { capabilities: {} });
|
||||
httpBackend.when('GET', '/pushrules').respond(200, {});
|
||||
|
||||
loadApp();
|
||||
@@ -333,7 +332,6 @@ describe('loading:', function() {
|
||||
it('shows a home page by default if we have no joined rooms', function() {
|
||||
localStorage.removeItem("mx_last_room_id");
|
||||
|
||||
httpBackend.when('GET', '/capabilities').respond(200, { capabilities : {} });
|
||||
httpBackend.when('GET', '/pushrules').respond(200, {});
|
||||
|
||||
loadApp();
|
||||
@@ -351,7 +349,6 @@ describe('loading:', function() {
|
||||
});
|
||||
|
||||
it('shows a room view if we followed a room link', function() {
|
||||
httpBackend.when('GET', '/capabilities').respond(200, { capabilities : {} });
|
||||
httpBackend.when('GET', '/pushrules').respond(200, {});
|
||||
|
||||
loadApp({
|
||||
@@ -425,8 +422,6 @@ describe('loading:', function() {
|
||||
|
||||
describe('Guest auto-registration:', function() {
|
||||
it('shows a welcome page by default', function() {
|
||||
httpBackend.when('GET', '/capabilities').respond(200, { capabilities: {} });
|
||||
|
||||
loadApp();
|
||||
|
||||
return sleep(1).then(() => {
|
||||
@@ -457,8 +452,6 @@ describe('loading:', function() {
|
||||
});
|
||||
|
||||
it('uses the default homeserver to register with', function() {
|
||||
httpBackend.when('GET', '/capabilities').respond(200, { capabilities: {} });
|
||||
|
||||
loadApp();
|
||||
|
||||
return sleep(1).then(() => {
|
||||
@@ -493,8 +486,6 @@ describe('loading:', function() {
|
||||
});
|
||||
|
||||
it('shows a room view if we followed a room link', function() {
|
||||
httpBackend.when('GET', '/capabilities').respond(200, { capabilities: {} });
|
||||
|
||||
loadApp({
|
||||
uriFragment: "#/room/!room:id",
|
||||
});
|
||||
@@ -526,8 +517,6 @@ describe('loading:', function() {
|
||||
|
||||
describe('Login as user', function() {
|
||||
beforeEach(function() {
|
||||
httpBackend.when('GET', '/capabilities').respond(200, { capabilities: {} });
|
||||
|
||||
// first we have to load the homepage
|
||||
loadApp();
|
||||
|
||||
@@ -674,7 +663,6 @@ describe('loading:', function() {
|
||||
// Wait for another trip around the event loop for the UI to update
|
||||
return sleep(1);
|
||||
}).then(() => {
|
||||
httpBackend.when('GET', '/capabilities').respond(200, { capabilities : {} });
|
||||
httpBackend.when('GET', '/pushrules').respond(200, {});
|
||||
return expectAndAwaitSync().catch((e) => {
|
||||
throw new Error("Never got /sync after login: did the client start?");
|
||||
|
||||
@@ -99,6 +99,7 @@ module.exports = (env, argv) => {
|
||||
|
||||
entry: {
|
||||
"bundle": "./src/vector/index.ts",
|
||||
"screenshots": "./src/vector/screenshots.tsx",
|
||||
"mobileguide": "./src/vector/mobile_guide/index.ts",
|
||||
"jitsi": "./src/vector/jitsi/index.ts",
|
||||
"usercontent": "./node_modules/matrix-react-sdk/src/usercontent/index.ts",
|
||||
@@ -496,6 +497,22 @@ module.exports = (env, argv) => {
|
||||
},
|
||||
}),
|
||||
|
||||
// This is our screenshots page for testing
|
||||
new HtmlWebpackPlugin({
|
||||
template: './src/vector/screenshots.html',
|
||||
filename: 'screenshots.html',
|
||||
|
||||
// we inject the links ourselves via the template, because
|
||||
// HtmlWebpackPlugin will screw up our formatting like the names
|
||||
// of the themes and which chunks we actually care about.
|
||||
inject: false,
|
||||
excludeChunks: ['mobileguide', 'usercontent', 'jitsi'],
|
||||
minify: false,
|
||||
templateParameters: {
|
||||
og_image_url: ogImageUrl,
|
||||
},
|
||||
}),
|
||||
|
||||
// This is the jitsi widget wrapper (embedded, so isolated stack)
|
||||
new HtmlWebpackPlugin({
|
||||
template: './src/vector/jitsi/index.html',
|
||||
|
||||
Reference in New Issue
Block a user