Skip to content
This repository was archived by the owner on May 12, 2021. It is now read-only.

Commit 7d1dda4

Browse files
committed
Merge branch 'master' of https://github.com/ssbc/patchwork into add-attending-gatherings-view
2 parents b9c12d0 + d8465c4 commit 7d1dda4

39 files changed

+1062
-3401
lines changed

docs/CONTRIBUTING.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ Hey, thanks for contributing to Patchwork! We've collected some useful info
44
below, but if you have any questions please don't hesitate to [create an
55
issue][new-issue]!
66

7+
If you're a new contributor you may want to browse the label
8+
["Good first issue"](https://github.com/ssbc/patchwork/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22).
9+
710
## Process
811

912
Patchwork is developed on GitHub using the usual [GitHub flow][flow]. New

docs/DESIGN.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Patchwork's Design Principles
2+
3+
This document describes the design goals and philosophy of Patchwork. Features of and changes to Patchwork should always aim to follow these principles. If we really want to add a feature/make a change to Patchwork that goes against these principles, we should think about changing the principles first, rather than ignoring them and making the change anyway.
4+
5+
This document should be version tracked, and any change to it should go through the [advice process](http://www.reinventingorganizationswiki.com/Decision_Making) with the stakeholders listed below.
6+
7+
### Stakeholders
8+
* Patchwork contributors
9+
* Patchwork users
10+
* The broader Scuttlebutt community
11+
* People outside the Scuttlebutt community who might be affected
12+
13+
## Design goals
14+
15+
### Goals and scope: Patchwork should...
16+
* Follow the [Scuttlebutt principles](https://www.scuttlebutt.nz/principles/)
17+
* Be a client that people can feel confident recommending to their friends who aren't using Scuttlebutt, and who might not have much tech knowledge
18+
* Be safe (privacy, blocking, etc)
19+
* Be usable (not confusing or broken; clear explanations of new concepts)
20+
* Be healthy (non-addictive, calm, consentful)
21+
* Be accessible (to the extent practical -- some a11y features are hard to retrofit into the existing code)
22+
* Be a fun client to use -- users should enjoy using it and, in a positive way, be tempted to try other Scuttlebutt clients
23+
* Look good
24+
25+
### Non-goals: Patchwork is not...
26+
* A place where we experiment with new features - Try it in other clients first
27+
* For message types outside the core social networking use case. Messages such as posts, comments, gatherings, and blogs are in scope; messages such as chess and git-ssb are out of scope.
28+
29+
30+
### Roadmap
31+
* Eventually retire Patchwork 3, potentially transferring the Patchwork name to another client, which might become Patchwork 4
32+
* Maintain functionality until Patchwork 3 is retired. Focus more on maintenance than new features.
33+
* Potentialy remove less-used features if we don't have energy to maintain them
34+
* While accepting that Patchwork 3 is a legacy codebase, try to keep it easy to maintain, and help out (potential) new contributors

lib/context-menu-and-spellcheck.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ function setupContextMenuAndSpellCheck (config, { navigate, getMessageText }) {
1616

1717
const contextMenuBuilder = new ContextMenuBuilder(spellCheckHandler, null, true, (menu, menuInfo) => {
1818
const ddg = new MenuItem({
19-
label: 'Search with DuckDuckGo',
19+
label: 'Search With DuckDuckGo',
2020
click: () => {
2121
const url = `https://duckduckgo.com/?q=${encodeURIComponent(menuInfo.selectionText)}`
2222
shell.openExternal(url)
@@ -95,6 +95,16 @@ function setupContextMenuAndSpellCheck (config, { navigate, getMessageText }) {
9595
}
9696
})
9797
menu.append(copyEmbed)
98+
const openImageInBrowser = new MenuItem({
99+
label: 'Open Image With Browser',
100+
click: () => {
101+
const host = config.ws.host === '::' ? 'localhost' : config.ws.host
102+
const blobKey = encodeURIComponent(extractedRef)
103+
const url = `http://${host}:${config.ws.port}/blobs/get/${blobKey}`
104+
shell.openExternal(url)
105+
}
106+
})
107+
menu.append(openImageInBrowser)
98108
}
99109
}
100110

0 commit comments

Comments
 (0)