Skip to content

Commit 50a0c80

Browse files
authored
Merge pull request #377 from weswalla/experiment/full-project-view-attachment
Experiment/full project view attachment
2 parents 0701b9a + b74cc34 commit 50a0c80

File tree

13 files changed

+362
-84
lines changed

13 files changed

+362
-84
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Acorn is currently in **Alpha** testing phase.
66

77
## Things you can do
88

9-
- [**Download & install the latest Acorn release**](https://github.com/lightningrodlabs/acorn/releases/tag/v11.2.1).
9+
- [**Download & install the latest Acorn release**](https://github.com/lightningrodlabs/acorn/releases/tag/v11.2.2).
1010

1111
- Check out the [Acorn Knowledge Base](https://docs.acorn.software) to learn more about Acorn, its methodology and features.
1212

5.45 KB
Binary file not shown.

happs/happ/zomes/projects/src/lib.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,11 +199,9 @@ pub fn get_peers(get_options: GetOptions) -> ExternResult<Vec<AgentPubKey>> {
199199
None,
200200
get_options,
201201
)?;
202-
let self_agent_pub_key = AgentPubKeyB64::new(agent_info()?.agent_initial_pubkey);
203202
Ok(entries
204203
.into_iter()
205204
// eliminate yourself as a peer
206-
.filter(|x| x.entry.agent_pub_key != self_agent_pub_key)
207205
.map(|x| AgentPubKey::from(x.entry.agent_pub_key))
208206
.collect::<Vec<AgentPubKey>>())
209207
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "acorn-workspace",
33
"packageManager": "[email protected]",
4-
"version": "11.2.1",
4+
"version": "11.2.2",
55
"private": true,
66
"workspaces": {
77
"packages": [

weave-tool/acorn-moss.webhapp

10.3 KB
Binary file not shown.

web/dist/splashscreen.html

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,42 @@
1-
<!doctype html><html><head><title>Acorn</title><script defer="defer" src="./splash.js"></script></head><body><div class="splash-wrapper"><div class="splash-image-wrapper"><div class="splash-image-caption">Photograph by Valeriia Miller</div></div><div class="splash-content-wrapper"><div><div class="splash-logo">acorn</div><div class="splash-version">version 11.2.1</div></div><div class="splash-loading-message" id="activity">Setting up Holochain...</div><div class="splash-description">Acorn is an open-source, peer-to-peer project management application designed and built for distributed software development teams. Acorn functions through defining Intended Outcomes for a project in a Dependency Tree structure.<br/><br/>Acorn is built as a Holochain application, meaning it runs on decentralized peer-to-peer computing and can be used without server infrastructure or a hosting service. The users of a particular Acorn instance are its hosting power.</div><div class="splash-license">© 2020-2023 Harris-Braun Enterprises, LLC.<br/>Licensed under the Cryptographic Autonomy License v1.0.</div></div></div><script>const el = document.getElementById('activity')
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<title>Acorn</title>
5+
<script defer="defer" src="./splash.js"></script>
6+
</head>
7+
<body>
8+
<div class="splash-wrapper">
9+
<div class="splash-image-wrapper">
10+
<div class="splash-image-caption">Photograph by Valeriia Miller</div>
11+
</div>
12+
<div class="splash-content-wrapper">
13+
<div>
14+
<div class="splash-logo">acorn</div>
15+
<div class="splash-version">version 11.2.2</div>
16+
</div>
17+
<div class="splash-loading-message" id="activity">
18+
Setting up Holochain...
19+
</div>
20+
<div class="splash-description">
21+
Acorn is an open-source, peer-to-peer project management application
22+
designed and built for distributed software development teams. Acorn
23+
functions through defining Intended Outcomes for a project in a
24+
Dependency Tree structure.<br /><br />Acorn is built as a Holochain
25+
application, meaning it runs on decentralized peer-to-peer computing
26+
and can be used without server infrastructure or a hosting service.
27+
The users of a particular Acorn instance are its hosting power.
28+
</div>
29+
<div class="splash-license">
30+
© 2020-2023 Harris-Braun Enterprises, LLC.<br />Licensed under the
31+
Cryptographic Autonomy License v1.0.
32+
</div>
33+
</div>
34+
</div>
35+
<script>
36+
const el = document.getElementById('activity')
237
require('electron').ipcRenderer.on('status', (event, message) => {
338
el.innerHTML = message
4-
})</script></body></html>
39+
})
40+
</script>
41+
</body>
42+
</html>

web/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "acorn-ui",
3-
"version": "11.2.1",
3+
"version": "11.2.2",
44
"browser": {
55
"child_process": false
66
},

web/src/components/Header/HeaderLeftPanel.tsx

Lines changed: 86 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ export type HeaderLeftPanelProps = {
8282
handleAddAttachment: () => Promise<void>
8383
handleRemoveAttachment: (relationHash: EntryHash) => Promise<void>
8484
openAsset: (wal: WAL) => Promise<void>
85+
// New prop to control rendering
86+
showOnlyProjectSection?: boolean
8587
}
8688

8789
const HeaderLeftPanel: React.FC<HeaderLeftPanelProps> = ({
@@ -99,6 +101,7 @@ const HeaderLeftPanel: React.FC<HeaderLeftPanelProps> = ({
99101
handleAddAttachment,
100102
handleRemoveAttachment,
101103
openAsset,
104+
showOnlyProjectSection = false,
102105
}) => {
103106
const entryPointsRef = useRef<HTMLDivElement>(null)
104107
const exportProjectRef = useRef<HTMLDivElement>(null)
@@ -167,19 +170,23 @@ const HeaderLeftPanel: React.FC<HeaderLeftPanelProps> = ({
167170
return (
168171
<div className="header-left-panel-rows">
169172
<div className="header-left-panel">
170-
{/* Acorn Logo - non link */}
173+
{/* Only show logo if not in showOnlyProjectSection mode */}
174+
{!showOnlyProjectSection && (
175+
<>
176+
{/* Acorn Logo - non link */}
177+
{!whoami && (
178+
<div className="logo non-link">
179+
<img src="images/acorn-alpha-logo.png" className="logo-image" />
180+
</div>
181+
)}
171182

172-
{!whoami && (
173-
<div className="logo non-link">
174-
<img src="images/acorn-alpha-logo.png" className="logo-image" />
175-
</div>
176-
)}
177-
178-
{/* Acorn Logo - linked */}
179-
{whoami && (
180-
<NavLink to="/" className="logo">
181-
<img src="images/acorn-alpha-logo.png" className="logo-image" />
182-
</NavLink>
183+
{/* Acorn Logo - linked */}
184+
{whoami && (
185+
<NavLink to="/" className="logo">
186+
<img src="images/acorn-alpha-logo.png" className="logo-image" />
187+
</NavLink>
188+
)}
189+
</>
183190
)}
184191

185192
{whoami && (
@@ -316,58 +323,62 @@ const HeaderLeftPanel: React.FC<HeaderLeftPanelProps> = ({
316323
</div>
317324
)}
318325

319-
{/* Settings */}
320-
<Icon
321-
name="settings.svg"
322-
withTooltip
323-
tooltipText="Project Settings"
324-
size="header"
325-
onClick={() =>
326-
setModalState({
327-
id: OpenModal.ProjectSettings,
328-
cellId: projectId,
329-
})
330-
}
331-
className="header-action-icon"
332-
/>
333-
{/* Export */}
334-
<div className="export-wrapper" ref={exportProjectRef}>
335-
<Icon
336-
withTooltip
337-
tooltipText="Export"
338-
name="export.svg"
339-
size="header"
340-
className={`header-action-icon ${
341-
isExportOpen ? 'purple' : ''
342-
}`}
343-
onClick={() => setIsExportOpen(!isExportOpen)}
344-
/>
345-
{isExportOpen && (
346-
<div className="export-list-wrapper">
347-
{/* Top Triangle */}
348-
<img
349-
className="triangle-top-white"
350-
src={triangleTopWhite}
351-
/>
352-
<ExportMenuItem
353-
type="json"
354-
title="Export as JSON (Importable)"
355-
downloadFilename={`${projectNameForExport}.json`}
356-
onClick={() => {
357-
setIsExportOpen(false)
358-
}}
359-
/>
360-
<ExportMenuItem
361-
type="csv"
362-
title="Export as CSV"
363-
downloadFilename={`${projectNameForExport}.csv`}
364-
onClick={() => {
365-
setIsExportOpen(false)
366-
}}
326+
{!showOnlyProjectSection && (
327+
<>
328+
{/* Settings */}
329+
<Icon
330+
name="settings.svg"
331+
withTooltip
332+
tooltipText="Project Settings"
333+
size="header"
334+
onClick={() =>
335+
setModalState({
336+
id: OpenModal.ProjectSettings,
337+
cellId: projectId,
338+
})
339+
}
340+
className="header-action-icon"
341+
/>
342+
{/* Export */}
343+
<div className="export-wrapper" ref={exportProjectRef}>
344+
<Icon
345+
withTooltip
346+
tooltipText="Export"
347+
name="export.svg"
348+
size="header"
349+
className={`header-action-icon ${
350+
isExportOpen ? 'purple' : ''
351+
}`}
352+
onClick={() => setIsExportOpen(!isExportOpen)}
367353
/>
354+
{isExportOpen && (
355+
<div className="export-list-wrapper">
356+
{/* Top Triangle */}
357+
<img
358+
className="triangle-top-white"
359+
src={triangleTopWhite}
360+
/>
361+
<ExportMenuItem
362+
type="json"
363+
title="Export as JSON (Importable)"
364+
downloadFilename={`${projectNameForExport}.json`}
365+
onClick={() => {
366+
setIsExportOpen(false)
367+
}}
368+
/>
369+
<ExportMenuItem
370+
type="csv"
371+
title="Export as CSV"
372+
downloadFilename={`${projectNameForExport}.csv`}
373+
onClick={() => {
374+
setIsExportOpen(false)
375+
}}
376+
/>
377+
</div>
378+
)}
368379
</div>
369-
)}
370-
</div>
380+
</>
381+
)}
371382
{/* Add to Pocket */}
372383
{isWeaveContext() && (
373384
<Icon
@@ -383,22 +394,24 @@ const HeaderLeftPanel: React.FC<HeaderLeftPanelProps> = ({
383394
</div>
384395
</div>
385396
{/* Team Members Indicator */}
386-
<MembersIndicator
387-
members={membersMinusMe}
388-
presentMembers={presentMembers}
389-
onClickInviteMember={() => {
390-
setModalState({
391-
id: OpenModal.InviteMembers,
392-
passphrase: projectPassphrase,
393-
})
394-
}}
395-
/>
397+
{!showOnlyProjectSection && (
398+
<MembersIndicator
399+
members={membersMinusMe}
400+
presentMembers={presentMembers}
401+
onClickInviteMember={() => {
402+
setModalState({
403+
id: OpenModal.InviteMembers,
404+
passphrase: projectPassphrase,
405+
})
406+
}}
407+
/>
408+
)}
396409
</Route>
397410
)}
398411
</div>
399412
{/* Second row of the header */}
400413
{/* for showing active entry points tabs */}
401-
{whoami && (
414+
{whoami && !showOnlyProjectSection && (
402415
<Route path="/project">
403416
{/* Current Entry Points Tab */}
404417
<div className="header-left-panel second-row">

web/src/splashscreen.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<div class="splash-content-wrapper">
1313
<div>
1414
<div class="splash-logo">acorn</div>
15-
<div class="splash-version">version 11.2.1</div>
15+
<div class="splash-version">version 11.2.2</div>
1616
</div>
1717
<div class="splash-loading-message" id="activity">
1818
Setting up Holochain...

web/src/weave/OutcomeAssetView.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { updateOutcome } from '../redux/persistent/projects/outcomes/actions' //
1515
import ProjectsZomeApi from '../api/projectsApi'
1616
import { cellIdFromString } from '../utils'
1717
import constructProjectDataFetchers from '../api/projectDataFetchers' // Add this import
18+
import { openExpandedView } from '../redux/ephemeral/expanded-view/actions'
1819

1920
interface OutcomeAssetViewProps {
2021
wal: WAL
@@ -74,6 +75,7 @@ const OutcomeAssetView: React.FC<OutcomeAssetViewProps> = ({ wal }) => {
7475

7576
// 1. Set the active project ID in Redux state
7677
dispatch(setActiveProject(determinedProjectId))
78+
dispatch(openExpandedView(outcomeInfo.outcome.actionHash))
7779

7880
// 2. Construct fetchers for this project
7981
const fetchers = constructProjectDataFetchers(

0 commit comments

Comments
 (0)