Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions src/Lepiter-Core/LePage.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,35 @@ LePage >> databaseKey [
^ type databaseKey
]

{ #category : #'api - editing' }
LePage >> duplicatePageWithNewName: aTitleString inDatabase: aDatabase [

| newPage uuidMapping |
uuidMapping := Dictionary new.
newPage := LePage named: aTitleString.
aDatabase addPage: newPage.
self
deep: [ :parent | parent children children ]
do: [ :each | ]
relationDo: [ :from :to |
| attributesReloader newSnippet |
newSnippet := to class new.
uuidMapping at: to uid put: newSnippet.
attributesReloader := LeContentAttributesReloader forContent: newSnippet.
attributesReloader
updateForMappings: attributesReloader relevantAttributeMappings
fromContent: to.
(from isKindOf: LePage)
ifTrue: [ newPage addSnippet: newSnippet ]
ifFalse: [
| parentSnippet |
parentSnippet := uuidMapping at: from uid.
parentSnippet children children isEmpty
ifTrue: [ parentSnippet addFirstSnippet: newSnippet ]
ifFalse: [ parentSnippet addSnippet: newSnippet ] ] ].
^ newPage
]

{ #category : #history }
LePage >> editHistory [
^ editHistory
Expand Down