diff --git a/src/App.vue b/src/App.vue
index 3c80735..9e9963b 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -15,6 +15,7 @@ import { OptionsStateInteface } from "./store/module-options/state"
import { colors } from "quasar"
import { tipsTricks } from "src/scripts/utilities/tipsTricks"
import { shell } from "electron"
+import { summonAllPlusheForms } from "src/scripts/utilities/plusheMascot"
@Component({
components: {
@@ -94,12 +95,14 @@ export default class App extends BaseClass {
}
const messageToShow = tipsTricks[Math.floor(Math.random() * tipsTricks.length)]
-
+ const plusheForm = summonAllPlusheForms[Math.floor(Math.random() * summonAllPlusheForms.length)]
this.starupNotif = this.$q.notify({
+
timeout: 15000,
- icon: "mdi-help",
- type: "info",
+ icon: (this.hidePlushes) ? "mdi-help" : undefined,
+ color: "info",
message: "Did you know?",
+ avatar: (!this.hidePlushes) ? plusheForm : undefined,
caption: messageToShow,
actions: [{ icon: "mdi-close", color: "white" }]
})
@@ -226,6 +229,8 @@ export default class App extends BaseClass {
@Watch("SGET_options", { deep: true })
onSettingsChange () {
const options = this.SGET_options
+
+ this.hidePlushes = options.hidePlushes
this.$q.dark.set(options.darkMode)
if (options.darkMode) {
colors.setBrand("dark", "#1b333e")
@@ -236,5 +241,10 @@ export default class App extends BaseClass {
colors.setBrand("primary", "#e8bb50")
}
}
+
+ /**
+ * Hides the mascot... nooo :(
+ */
+ hidePlushes = false
}
diff --git a/src/BaseClass.ts b/src/BaseClass.ts
index 6033663..d8f31df 100644
--- a/src/BaseClass.ts
+++ b/src/BaseClass.ts
@@ -252,6 +252,23 @@ export default class BaseClass extends Vue {
})
}
+ /**
+ * Open a new route for an already existing object
+ * @param existingObject An already existing object passed in
+ */
+ openExistingDocumentRouteWithEdit (existingObject:I_OpenedDocument | I_FieldRelationship) {
+ this.$router.push({
+ path: existingObject.url,
+ query: { editMode: "editMode" }
+ }).catch((e: {name: string}) => {
+ const errorName : string = e.name
+ if (errorName === "NavigationDuplicated") {
+ return
+ }
+ console.log(e)
+ })
+ }
+
/**
* Open a new route for an already existing object
* @param existingObject An already existing object passed in
diff --git a/src/assets/fantasiaPlushe/fantasia_didYouKnow.png b/src/assets/fantasiaPlushe/fantasia_didYouKnow.png
new file mode 100644
index 0000000..091c685
Binary files /dev/null and b/src/assets/fantasiaPlushe/fantasia_didYouKnow.png differ
diff --git a/src/assets/fantasiaPlushe/fantasia_flop.png b/src/assets/fantasiaPlushe/fantasia_flop.png
new file mode 100644
index 0000000..19e4e44
Binary files /dev/null and b/src/assets/fantasiaPlushe/fantasia_flop.png differ
diff --git a/src/assets/fantasiaPlushe/fantasia_hug.png b/src/assets/fantasiaPlushe/fantasia_hug.png
new file mode 100644
index 0000000..a2cdb53
Binary files /dev/null and b/src/assets/fantasiaPlushe/fantasia_hug.png differ
diff --git a/src/assets/fantasiaPlushe/fantasia_reading.png b/src/assets/fantasiaPlushe/fantasia_reading.png
new file mode 100644
index 0000000..1978529
Binary files /dev/null and b/src/assets/fantasiaPlushe/fantasia_reading.png differ
diff --git a/src/components/ObjectTree.vue b/src/components/ObjectTree.vue
index b412ced..248132b 100644
--- a/src/components/ObjectTree.vue
+++ b/src/components/ObjectTree.vue
@@ -110,7 +110,25 @@
+
+
Accessibility - Text shadow
@@ -116,6 +132,12 @@
/>
+
+
+ Application extras
+
+
+
Hide Welcome screen social links
@@ -161,13 +183,48 @@
/>
+
+
+ Hide Fantasia mascot
+
+
+ Hides the amazingly adorable and awesome Fantasia, the tiny arcane dragon.
+
+ How could you! :(
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- Document view settings
+
+ Document view/edit
-
+
+
+ Document control bar
+
+
+
+
Disable document control bar
@@ -184,7 +241,7 @@
/>
-
+
Disable document guides
@@ -199,7 +256,13 @@
/>
-
+
+
+
Disable document tooltips
@@ -214,7 +277,7 @@
/>
-
+
Hide empty fields
@@ -231,9 +294,63 @@
/>
+
+
+ Prevent auto-scrolling
+
+
+ Determines if the documents will recall their scroll distances and auto-scroll on switching ot not.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- Quick-search & Quick-add popups
+
+ Popup dialogs
+
+
+
+
+
+ Universal dialog settings
+
+
+
+
+
+ Close quick popups with same key
+
+
+ This allows for closing of the quick-search and quick-add popups with the same key combination that was used to open them to begin with.
+
+
+
+
+
+
+
+
@@ -271,24 +388,78 @@
/>
+
+
+
+
+
+
+
+
+
+ Hierarchical tree
+
+
+
+
+
- Close quick popups with same key
+ Hide tags in tree
- This allows for closing of the quick-search and quick-add popups with the same key combination that was used to open them to begin with.
+ Determines if the tags show in the hierarchical tree at all
-
+
+
+
+
+ Top tags in tree
+
+
+ Show tags at the top of the hierarchical tree
+
+
+
+
+
+
+
+
+
+ Compact tags
+
+
+ Determine if the tags should be shown as individual categories or they should show as one big category with each tag as a subcategory.
+
+
+
+
+
-
-
- Hierarchy tree
+
@@ -339,6 +510,12 @@
/>
+
+
+ Information display settings
+
+
+
Hide document count entirely
@@ -384,51 +561,6 @@
/>
-
-
- Hide tags in tree
-
-
- Determines if the tags show in the hierarchical tree at all
-
-
-
-
-
-
-
-
-
- Top tags in tree
-
-
- Show tags at the top of the hierarchical tree
-
-
-
-
-
-
-
-
-
- Compact tags
-
-
- Determine if the tags should be shown as individual categories or they should show as one big category with each tag as a subcategory.
-
-
-
-
-
-
-
Hide order numbers
@@ -444,8 +576,75 @@
/>
+
+
+
+
+ Hide extra icons
+
+
+ This option hides icons that are normally shown for convinience, but don't actually add any functiuonality.
+
+ For example the "Open document" icon next to document with no children nodes that can just as well opened with a normal left click instead of clicking on the icon.
+
+
+
+
+
+
+
+
+
+ Hide "Add under" icon
+
+
+ This option hides the "Add a new document belonging under XY" icon.
+
+
+
+
+
+
+
+
+
+ Hide "Edit" icon
+
+
+ This option hides the "Edit XY" icon.
+
+
+
+
+
+
+
+
+
+ Hide "Open" icon
+
+
+ This option hides the "Open XY" icon.
+
+
+
+
+
+
-
+
@@ -683,9 +882,11 @@ export default class ProgramSettings extends DialogBase {
options: OptionsStateInteface = {
_id: "settings",
darkMode: false,
+ preventAutoScroll: false,
textShadow: false,
doubleDashDocCount: false,
hideDeadCrossThrough: false,
+ hidePlushes: false,
tagsAtTop: false,
noTags: false,
compactTags: false,
@@ -706,6 +907,10 @@ export default class ProgramSettings extends DialogBase {
hideTooltipsStart: false,
hideTooltipsProject: false,
hideTreeOrderNumbers: false,
+ hideTreeExtraIcons: false,
+ hideTreeIconAddUnder: false,
+ hideTreeIconEdit: false,
+ hideTreeIconView: false,
userKeybindList: []
}
diff --git a/src/css/app.scss b/src/css/app.scss
index 62b1f9b..7b8402e 100644
--- a/src/css/app.scss
+++ b/src/css/app.scss
@@ -112,7 +112,7 @@ a {
}
.q-notification.bg-info {
- max-width: 500px;
+ max-width: 550px;
border: 2px solid var(--q-color-dark);
color: var(--q-color-dark);
@@ -203,6 +203,21 @@ a {
}
}
+.q-notification__avatar {
+ height: 135px;
+ width: 135px;
+ margin-right: 30px;
+ flex-shrink: 0;
+ border-radius: 0;
+ margin-top: 15px;
+ margin-bottom: 15px;
+
+ img {
+ width: auto !important;
+ object-fit: contain;
+ }
+}
+
.isDeadIndicator {
margin-right: 5px;
font-weight: 600;
diff --git a/src/documents/changeLog.md b/src/documents/changeLog.md
index e078499..b0fc792 100644
--- a/src/documents/changeLog.md
+++ b/src/documents/changeLog.md
@@ -43,22 +43,34 @@
- New action for **Hiearachical Tree**
- Add new document type: `DOCUMENT TYPE`
- Only available in the root-categories
- - Expand all
- - Collapse all
+ - Expand all under this nodd
+ - Collapse all under this node
- Copy name
- Copy text color
- Copy background color
- Open document
+ - Edit document
- Create new document with this document as parent
- Copy this document
- Delete document
+- Added a special description field for categories that become visible only when the document is switches to the category mode
+- Added Fantasia mascot in the app! ^_^
+- Different document tabs now keep scroll distance and resume wherever you left them at
- Added support for default empty keybinds
- Added a dedicated button that opens the connected documents straight from the little chips in relationship fields while in edit mode
- Added support for background color for documents
- Added support for "Minor document" mode switch for better organization and visual representation of documents
- Added support for "Dead/Gone/Destroyed" mode switch for better organization and visual representation of documents
+- Added trivia concerning Fantasia mascot
+- Added support for direct opening of documents in edit mode from the hierarchy tree without needing to open the document in view mode first
+- Added option: Hide Fantasia mascot
- Added option: Accessibility - Hide strike-through
- Added option: Accessibility - Hide order numbers
+- Added option: Hide extra icons
+- Added option: Hide "Add under" icon
+- Added option: Hide "Edit" icon
+- Added option: Hide "Open" icon
+- Added option: Prevent auto-scrolling
- Added functionality to copy existing documents along with all their contents
- Added keybind: Close all tabs without changes except for this
- Added keybind: Close all tabs without changes
@@ -71,6 +83,7 @@
- Changed focusing of the hierarchy tree search input from CTRL + SHIFT + W to CTRL + SHIFT +T
- Updated fullscreen editor looks to work more like a proper document editor
- Unified icons for same actions across the app
+- Program settings have been separated into multiple tabs and sub-groups in order to be actually possible to navigate effectively
- Reordered the basic document settings inside the app and separated them from the document content
- Adjusted maximum width of switch fields to make them look like spaggeti
- Updated the Advanced search guide with new additions and added one new Trivia popup text concerning it
diff --git a/src/interfaces/I_OpenedDocument.ts b/src/interfaces/I_OpenedDocument.ts
index b3033bb..fdbe55d 100644
--- a/src/interfaces/I_OpenedDocument.ts
+++ b/src/interfaces/I_OpenedDocument.ts
@@ -13,6 +13,7 @@ export interface I_OpenedDocument{
hasEdits: boolean
isNew: boolean
url: string
+ scrollDistance?: number
extraFields: I_ExtraDocumentFields[]
}
diff --git a/src/pages/DocumentDisplay.vue b/src/pages/DocumentDisplay.vue
index b137b7c..40c6ebc 100644
--- a/src/pages/DocumentDisplay.vue
+++ b/src/pages/DocumentDisplay.vue
@@ -302,8 +302,14 @@ export default class PageDocumentDisplay extends BaseClass {
this.disableDocumentControlBar = options.disableDocumentControlBar
this.isDarkMode = options.darkMode
this.hideEmptyFields = options.hideEmptyFields
+ this.preventAutoScroll = options.preventAutoScroll
}
+ /**
+ * Determines if the documents will recall their scroll distances and auto-scroll on switching ot not.
+ */
+ preventAutoScroll = false
+
/**
* Determines if the document control bar is show or hidden
*/
@@ -357,12 +363,48 @@ export default class PageDocumentDisplay extends BaseClass {
*/
@Watch("$route", { immediate: true, deep: true })
async onUrlChange () {
+ window.removeEventListener("scroll", this.watchPageScroll)
+ window.removeEventListener("scroll", this.watchPageScroll)
+ window.removeEventListener("scroll", this.watchPageScroll)
+
await this.sleep(50)
+ const doc = this.findRequestedOrActiveDocument() as I_OpenedDocument
window.scrollTo({ top: 0, behavior: "auto" })
await this.reloadLocalContent().catch(e => console.log(e))
- window.scrollTo({ top: 0, behavior: "auto" })
+ const scrollTop = (doc.scrollDistance && !this.preventAutoScroll) ? doc.scrollDistance : 0
+
+ window.scrollTo({ top: scrollTop, behavior: "auto" })
+
+ window.removeEventListener("scroll", this.watchPageScroll)
+ window.removeEventListener("scroll", this.watchPageScroll)
+ window.removeEventListener("scroll", this.watchPageScroll)
+
+ window.addEventListener("scroll", this.watchPageScroll)
+ }
+
+ decounceScrollTimer = false as any
+ watchPageScroll () {
+ if (this.preventAutoScroll) {
+ return
+ }
+
+ if (this.decounceScrollTimer) {
+ window.clearTimeout(this.decounceScrollTimer)
+ }
+
+ this.decounceScrollTimer = window.setTimeout(() => {
+ const currentScroll = window.scrollY
+
+ const dataCopy: I_OpenedDocument = extend(true, {}, this.findRequestedOrActiveDocument())
+
+ dataCopy.scrollDistance = currentScroll
+
+ // Attempts to add current document to list
+ const dataPass = { doc: dataCopy, treeAction: false }
+ this.SSET_updateOpenedDocument(dataPass)
+ }, 200)
}
/**
@@ -431,6 +473,10 @@ export default class PageDocumentDisplay extends BaseClass {
this.currentData.extraFields = objectFields
+ if (this.$route.query?.editMode) {
+ this.editMode = true
+ }
+
const dataCopy: I_OpenedDocument = extend(true, {}, this.currentData)
// Attempts to add current document to list
@@ -732,7 +778,7 @@ export default class PageDocumentDisplay extends BaseClass {
const isCategory = this.retrieveFieldValue(this.currentData, "categorySwitch")
const ignoredList = ["breakDocumentSettings", "name", "documentColor", "documentBackgroundColor", "parentDoc", "order", "categorySwitch", "minorSwitch", "deadSwitch", "tags"]
- return (!isCategory || ignoredList.includes(currentFieldID))
+ return (((!isCategory && currentFieldID !== "categoryDescription") || ignoredList.includes(currentFieldID)) || (isCategory && currentFieldID === "categoryDescription"))
}
/**
diff --git a/src/pages/ProjectScreen.vue b/src/pages/ProjectScreen.vue
index ee74296..bdabaf1 100644
--- a/src/pages/ProjectScreen.vue
+++ b/src/pages/ProjectScreen.vue
@@ -14,8 +14,17 @@
{{projectName}}
-
-
+
+
+
+
+
+
+
@@ -117,6 +126,7 @@ import PouchDB from "pouchdb"
import newDocumentDialog from "src/components/dialogs/NewDocument.vue"
import { retrieveCurrentProjectName } from "src/scripts/projectManagement/projectManagent"
import { tipsTricks } from "src/scripts/utilities/tipsTricks"
+import { summonAllPlusheForms } from "src/scripts/utilities/plusheMascot"
@Component({
components: {
@@ -135,8 +145,14 @@ export default class ProjectScreen extends BaseClass {
onSettingsChange () {
const options = this.SGET_options
this.hideTooltipsProject = options.hideTooltipsProject
+ this.hidePlushes = options.hidePlushes
}
+ /**
+ * Hides the mascot... nooo :(
+ */
+ hidePlushes = false
+
/**
* Determines if the project screen help hint should show or not
*/
@@ -155,6 +171,7 @@ export default class ProjectScreen extends BaseClass {
Loading.hide()
this.tipTrickMessage = tipsTricks[Math.floor(Math.random() * tipsTricks.length)]
+ this.plusheForm = summonAllPlusheForms[Math.floor(Math.random() * summonAllPlusheForms.length)]
}
/**
@@ -167,6 +184,11 @@ export default class ProjectScreen extends BaseClass {
*/
tipTrickMessage = ""
+ /**
+ * Current form the majestic Fantasia desided to take this fine day!
+ */
+ plusheForm = ""
+
/****************************************************************/
// GRAPH FUNCTIONALITY
/****************************************************************/
@@ -369,6 +391,13 @@ export default class ProjectScreen extends BaseClass {