Didn't have the chance to migrate //all// templates just yet. We'll get there.
* Implement yet another template system
* Move orphans to the new system and fix a bug in it
* Link orphans in the admin panel
* Move the backlink handlers to the web package
* Move auth routing to web
* Move /user-list to the new system
* Move change password and translate it
* Move stuff
* Move admin-related stuff to the web
* Move a lot of files into internal dir
Outside of it are web and stuff that needs further refactoring
* Fix static not loading and de-qtpl tree
* Move tree to internal
* Keep the globe on the same line #230
* Revert "Keep the globe on the same line #230"
This reverts commit ae78e5e459.
* Migrate templates from hypview: delete, edit, start empty and existing WIP
The delete media view was removed, I didn't even know it still existed as a GET. A rudiment.
* Make views multi-file and break compilation
* Megarefactoring of hypha views
* Auth-related stuffs
* Fix some of those weird imports
* Migrate cat views
* Fix cat js
* Lower standards
* Internalize trauma
38 lines
1.1 KiB
Go
38 lines
1.1 KiB
Go
package shroom
|
||
|
||
import (
|
||
"fmt"
|
||
"github.com/bouncepaw/mycorrhiza/history"
|
||
"github.com/bouncepaw/mycorrhiza/internal/backlinks"
|
||
"github.com/bouncepaw/mycorrhiza/internal/categories"
|
||
hyphae2 "github.com/bouncepaw/mycorrhiza/internal/hyphae"
|
||
"github.com/bouncepaw/mycorrhiza/internal/user"
|
||
)
|
||
|
||
// Delete deletes the hypha and makes a history record about that.
|
||
func Delete(u *user.User, h hyphae2.ExistingHypha) error {
|
||
hop := history.
|
||
Operation(history.TypeDeleteHypha).
|
||
WithMsg(fmt.Sprintf("Delete ‘%s’", h.CanonicalName())).
|
||
WithUser(u)
|
||
|
||
originalText, _ := hyphae2.FetchMycomarkupFile(h)
|
||
switch h := h.(type) {
|
||
case *hyphae2.MediaHypha:
|
||
if h.HasTextFile() {
|
||
hop.WithFilesRemoved(h.MediaFilePath(), h.TextFilePath())
|
||
} else {
|
||
hop.WithFilesRemoved(h.MediaFilePath())
|
||
}
|
||
case *hyphae2.TextualHypha:
|
||
hop.WithFilesRemoved(h.TextFilePath())
|
||
}
|
||
if hop.Apply().HasErrors() {
|
||
return hop.Errs[0]
|
||
}
|
||
backlinks.UpdateBacklinksAfterDelete(h, originalText)
|
||
categories.RemoveHyphaFromAllCategories(h.CanonicalName())
|
||
hyphae2.DeleteHypha(h)
|
||
return nil
|
||
}
|