Tons of littele interface changes and cleanups
Massive update to image scraper with much better image getter Lots of little ui updates for mobile
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<!-- change class to .master-note-edit to have it popup on the screen -->
|
||||
<!-- change class to .master-note-edit to have it popup on the screen.
|
||||
@keyup.esc="closeButtonAction()" -->
|
||||
<div
|
||||
id="InputNotes"
|
||||
class="master-note-edit"
|
||||
@keyup.esc="closeButtonAction()"
|
||||
class="master-note-edit"
|
||||
>
|
||||
|
||||
<!-- Giant Edit Note Menu -->
|
||||
@@ -89,9 +89,9 @@
|
||||
|
||||
<div class="edit-divide"></div>
|
||||
|
||||
<div class="edit-button" v-on:click="$router.push(`/notes/open/${noteid}/menu/colors`)" data-tooltip="Note Color" data-position="bottom center" :style="{ 'background-color':styleObject['noteBackground'], 'color':styleObject['noteText']}">
|
||||
<!-- <div class="edit-button" v-on:click="$router.push(`/notes/open/${noteid}/menu/colors`)" data-tooltip="Note Color" data-position="bottom center" :style="{ 'background-color':styleObject['noteBackground'], 'color':styleObject['noteText']}">
|
||||
<i class="paint brush icon"></i>
|
||||
</div>
|
||||
</div> -->
|
||||
<!-- <div class="edit-button" v-on:click="$router.push(`/notes/open/${noteid}/menu/tags`)" data-tooltip="Tags" data-position="bottom center">
|
||||
<i class="tags icon"></i>
|
||||
</div> -->
|
||||
@@ -107,7 +107,9 @@
|
||||
<div class="edit-divide"></div>
|
||||
|
||||
<div class="edit-button" v-on:click="$router.push(`/notes/open/${noteid}/menu/options`)" data-tooltip="More Options" data-position="bottom center">
|
||||
|
||||
<i class="ellipsis horizontal icon"></i>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="edit-divide"></div>
|
||||
@@ -128,6 +130,7 @@
|
||||
|
||||
<div class="edit-button ui" v-on:click="closeButtonAction()" :data-tooltip="`Close\n(ESC)`" data-position="bottom center">
|
||||
<i class="green close icon"></i>
|
||||
<span class="ui green text">Done</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -139,7 +142,7 @@
|
||||
:class="{ 'side-menu-open':sideMenuOpen, 'size-down':(sizeDown == true),}">
|
||||
|
||||
<!-- Squire box grows -->
|
||||
<div id="text-box-container" class="note-wrapper">
|
||||
<div id="text-box-container" class="note-wrapper" :style="{ 'background-color':styleObject['noteBackground']}">
|
||||
|
||||
<!-- Loading indicator -->
|
||||
<transition name="fade">
|
||||
@@ -161,19 +164,22 @@
|
||||
v-on:blur="save" type="text" v-model="noteTitle" placeholder="Title" class="stealth-input glint">
|
||||
</textarea>
|
||||
|
||||
<div class="large-close-button glint" v-on:click="closeButtonAction()">
|
||||
<!-- close button giant -->
|
||||
<div v-if="!$store.getters.getIsUserOnMobile" class="large-close-button" v-on:click="closeButtonAction()">
|
||||
<i class="fitted green close icon"></i>
|
||||
</div>
|
||||
|
||||
<!-- little tags on the side, only show on desktop -->
|
||||
<div class="note-mini-tag-area" :class="{ 'size-down':sizeDown }" v-on:click="$router.push(`/notes/open/${noteid}/menu/tags`)">
|
||||
<span class="add-mini-tag" v-if="noteTags.length == 0">
|
||||
<!-- tags on the side, only show on desktop -->
|
||||
<div class="note-mini-tag-area" :class="{ 'size-down':sizeDown }"
|
||||
v-on:click="$router.push(`/notes/open/${noteid}/menu/tags`)"
|
||||
:style="{ 'background-color':styleObject['noteBackground'] }">
|
||||
<span class="add-mini-tag" v-if="allTags.length == 0">
|
||||
<i class="tags icon"></i>Add Tags
|
||||
</span>
|
||||
<span v-for="tag in allTags" class="active-mini-tag" v-if="isTagOnNote(tag.id)">
|
||||
#{{ tag.text }}
|
||||
<span v-for="tag in allTags" class="active-mini-tag">
|
||||
#{{ tag }}
|
||||
</span>
|
||||
<span class="active-mini-tag" v-if="noteTags.length > 0">
|
||||
<span class="active-mini-tag" v-if="allTags.length > 0">
|
||||
+
|
||||
</span>
|
||||
|
||||
@@ -201,21 +207,23 @@
|
||||
/>
|
||||
|
||||
<!-- Side slide menus for colors, tags, images and other options -->
|
||||
<side-slide-menu v-if="colors" v-on:close="colors = false" name="colors">
|
||||
<!-- <side-slide-menu v-if="colors" v-on:close="colors = false" name="colors">
|
||||
<color-picker
|
||||
@changeColor="onChangeColor"
|
||||
@close="colors = false; $router.go(-1)"
|
||||
:style-object="styleObject"
|
||||
/>
|
||||
</side-slide-menu>
|
||||
</side-slide-menu> -->
|
||||
|
||||
<side-slide-menu v-if="tags" v-on:close="tags = false; fetchNoteTags()" name="tags" :style-object="styleObject">
|
||||
<!-- tag edit menu -->
|
||||
<side-slide-menu v-if="tags" v-on:close="tags = false; fetchNoteTags()" name="tags">
|
||||
<div class="ui basic segment">
|
||||
<note-tag-edit :noteId="noteid" :key="'tags-for-note-'+noteid"/>
|
||||
</div>
|
||||
</side-slide-menu>
|
||||
|
||||
<side-slide-menu v-if="images" v-on:close="images = false" name="images" :style-object="styleObject">
|
||||
<!-- images menu -->
|
||||
<side-slide-menu v-if="images" v-on:close="images = false" name="images">
|
||||
<div class="ui basic segment">
|
||||
<simple-attachment-note
|
||||
:note-id="noteid"
|
||||
@@ -224,67 +232,81 @@
|
||||
</div>
|
||||
</side-slide-menu>
|
||||
|
||||
<side-slide-menu v-if="options" v-on:close="options = false" name="note-options" :style-object="styleObject">
|
||||
<side-slide-menu v-if="options" v-on:close="options = false" name="note-options">
|
||||
<div class="ui basic padded segment">
|
||||
<div class="ui grid">
|
||||
<div class="sixteen wide column">
|
||||
<h3>Note Options</h3>
|
||||
</div>
|
||||
|
||||
<div class="eight wide column">
|
||||
<div class="ui dividing header">
|
||||
Note Options
|
||||
</div>
|
||||
<div class="ui labeled icon fluid basic button" v-on:click="onToggleArchived()">
|
||||
<i class="archive icon" :class="{'green':(archived == 1)}"></i>
|
||||
<span v-if="archived == 1">Un-Archive Note</span>
|
||||
<span v-if="archived != 1">Archive Note</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="eight wide column">
|
||||
<div class="ui labeled icon fluid basic button" v-on:click="onTogglePinned">
|
||||
<i class="pin icon" :class="{'green':(pinned == 1)}"></i>
|
||||
<span v-if="pinned == 1">Un-Pin Note</span>
|
||||
<span v-if="pinned != 1">Pin Note</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sixteen wide column">
|
||||
<h3>List Options</h3>
|
||||
</div>
|
||||
<div class="sixteen wide column">
|
||||
|
||||
<div class="eight wide column">
|
||||
<div class="ui dividing header">
|
||||
List Options
|
||||
</div>
|
||||
<div class="ui labeled icon fluid basic button" v-on:click="sortList">
|
||||
<i class="sort amount up icon"></i>
|
||||
Sort List
|
||||
Sort List (Complete to bottom)
|
||||
</div>
|
||||
<div class="ui labeled icon fluid basic button" v-on:click="uncheckAllListItems">
|
||||
<i class="list ul icon"></i>
|
||||
Uncheck All
|
||||
</div>
|
||||
</div>
|
||||
<div class="eight wide column">
|
||||
<div class="ui labeled icon fluid basic button" v-on:click="deleteCompletedListItems">
|
||||
<i class="trash icon"></i>
|
||||
Delete Checked
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="eight wide column">
|
||||
<div class="ui labeled icon fluid basic button" v-on:click="uncheckAllListItems">
|
||||
<i class="list ul icon"></i>
|
||||
Uncheck All
|
||||
<div class="ui dividing header">
|
||||
Calculate Line
|
||||
</div>
|
||||
</div>
|
||||
<div class="sixteen wide column">
|
||||
<h3>Misc Options</h3>
|
||||
</div>
|
||||
<div class="eight wide column">
|
||||
<div class="ui labeled icon fluid basic button" v-on:click="calculateMath" data-tooltip="Calculates algebra before '='">
|
||||
<p>
|
||||
Calculates algebra before '='
|
||||
</p>
|
||||
<div class="ui labeled icon fluid basic button" v-on:click="calculateMath">
|
||||
<i class="calculator icon"></i>
|
||||
Simple Math
|
||||
</div>
|
||||
</div>
|
||||
<div class="eight wide column">
|
||||
<!-- data-tooltip="Files on note" -->
|
||||
<div v-on:click="openEditAttachment" class="ui labeled icon fluid basic button">
|
||||
<i class="folder icon"></i>
|
||||
Note Files
|
||||
{{ attachmentCount }}
|
||||
Calculate Simple Math
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="eight wide column">
|
||||
<!-- data-tooltip="Files on note" -->
|
||||
<div class="ui dividing header">
|
||||
Note Attachments & Links
|
||||
</div>
|
||||
<p>
|
||||
Attachment & Link Count {{ attachmentCount }}
|
||||
</p>
|
||||
<div v-on:click="openEditAttachment" class="ui labeled icon fluid basic button">
|
||||
<i class="folder icon"></i>
|
||||
View all Attachments & Links
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<color-picker
|
||||
@changeColor="onChangeColor"
|
||||
@close="colors = false; $router.go(-1)"
|
||||
:style-object="styleObject"
|
||||
/>
|
||||
|
||||
<div class="sixteen wide column" v-if="rawTextId > 0">
|
||||
<h3>Share Note</h3>
|
||||
<div class="ui dividing header">
|
||||
Share Note
|
||||
</div>
|
||||
<share-note-component
|
||||
:note-id="noteid"
|
||||
:raw-text-id="rawTextId"
|
||||
@@ -296,7 +318,7 @@
|
||||
</side-slide-menu>
|
||||
|
||||
<!-- create table option -->
|
||||
<side-slide-menu v-if="table" v-on:close="table = false; fetchNoteTags()" name="table" :style-object="styleObject">
|
||||
<side-slide-menu v-if="table" v-on:close="table = false;" name="table" :style-object="styleObject">
|
||||
<div class="ui basic segment">
|
||||
<h2>Insert Table</h2>
|
||||
<div class="table-tic-table">
|
||||
@@ -521,77 +543,15 @@
|
||||
|
||||
}, totalTime + 40)
|
||||
},
|
||||
removeTag(tagId){
|
||||
|
||||
this.allTags = []
|
||||
let entryId = 0
|
||||
|
||||
//Find fucking note tag for removal
|
||||
this.noteTags.forEach(noteTag => {
|
||||
if(noteTag['tagId'] == tagId){
|
||||
entryId = noteTag['entryId']
|
||||
}
|
||||
})
|
||||
|
||||
let postData = {
|
||||
'tagId':entryId,
|
||||
'noteId':this.noteid
|
||||
}
|
||||
|
||||
axios.post('/api/tag/removefromnote', postData)
|
||||
.then(response => {
|
||||
this.fetchNoteTags()
|
||||
})
|
||||
.catch(error => { this.$bus.$emit('notification', 'Failed to Remove Tag') })
|
||||
},
|
||||
addTag(tagText){
|
||||
|
||||
this.allTags = []
|
||||
|
||||
let postData = {
|
||||
'tagText':tagText,
|
||||
'noteId':this.noteid
|
||||
}
|
||||
|
||||
axios.post('/api/tag/addtonote', postData)
|
||||
.then(response => {
|
||||
this.fetchNoteTags()
|
||||
})
|
||||
.catch(error => { this.$bus.$emit('notification', 'Failed to Add Tag') })
|
||||
},
|
||||
fetchNoteTags(){
|
||||
axios.post('/api/tag/get', {'noteId': this.noteid})
|
||||
axios.post('/api/tag/fornote', {'noteId': this.noteid})
|
||||
.then(({data}) => {
|
||||
this.allTags = data.allTags
|
||||
this.noteTags = data.noteTagIds
|
||||
|
||||
//Stick used tags at top.
|
||||
if(this.noteTags.length > 0){
|
||||
|
||||
let frontTags = []
|
||||
|
||||
for (var i = this.allTags.length - 1; i >= 0; i--) {
|
||||
this.noteTags.forEach(noteTag => {
|
||||
if(this.allTags[i]['id'] == noteTag['tagId']){
|
||||
frontTags.push(this.allTags[i])
|
||||
this.allTags.splice(i,1)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
this.allTags.unshift(...frontTags)
|
||||
}
|
||||
//Setup note tags from string
|
||||
this.allTags = data.tags ? data.tags.split(',') : []
|
||||
|
||||
})
|
||||
},
|
||||
isTagOnNote(id){
|
||||
for (let i = 0; i < this.noteTags.length; i++) {
|
||||
const current = this.noteTags[i]
|
||||
if(current && current['tagId'] == id){
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
},
|
||||
initSquire(){
|
||||
|
||||
//Set up squire and load note text
|
||||
@@ -604,10 +564,6 @@
|
||||
|
||||
}
|
||||
|
||||
//Load tags on mobile
|
||||
this.fetchNoteTags()
|
||||
|
||||
|
||||
//Set up websockets after squire is set up
|
||||
setTimeout(() => {
|
||||
this.setupWebSockets()
|
||||
@@ -783,6 +739,9 @@
|
||||
this.lastNoteHash = this.hashString( response.data.text )
|
||||
// this.diffNoteText = response.data.text
|
||||
|
||||
//Setup note tags
|
||||
this.allTags = response.data.tags ? response.data.tags.split(','):[]
|
||||
|
||||
//Set up note colors
|
||||
if(response.data.color){
|
||||
this.styleObject = JSON.parse(response.data.color)
|
||||
|
Reference in New Issue
Block a user