Better formatting and tag stripping for note title display

cleaned up interface a bunch
allow for opening of two notes at once
Escape closes note
Added global helper class and time ago function
Time ago function displays on main page and in note
Removed tab button creating tabbed spaces in document
Simplified save text
This commit is contained in:
Max G
2019-07-20 23:07:22 +00:00
parent 61754fe290
commit e6c16f3d37
7 changed files with 204 additions and 61 deletions

62
client/src/Helpers.js Normal file
View File

@@ -0,0 +1,62 @@
import Vue from 'vue'
const helpers = {}
helpers.timeAgo = (time) => {
const time_formats = [
[ 60, 'seconds', 1 ],
[ 120, '1 minute ago', '1 minute from now' ],
[ 3600, 'minutes', 60 ],
[ 7200, '1 hour ago', '1 hour from now' ],
[ 86400, 'hours', 3600 ],
[ 172800, 'yesterday', 'tomorrow' ],
[ 604800, 'days', 86400 ],
[ 1209600, 'last week', 'next week' ],
[ 2419200, 'weeks', 604800 ],
[ 4838400, 'last month', 'next month' ],
[ 29030400, 'months', 2419200 ],
[ 58060800, 'last year', 'next year' ],
[ 2903040000, 'years', 29030400 ],
[ 5806080000, 'last century', 'next century' ],
[ 58060800000, 'centuries', 2903040000 ]
]
//How many seconds ago was input event time?
let seconds = Math.round((+new Date)/1000) - time
let token = 'ago'
let list_choice = 1
if (seconds == 0) {
return 'Just now'
}
if (seconds < 0) {
seconds = Math.abs(seconds)
token = 'from now'
list_choice = 2
}
let i = 0
let format = null
while (format = time_formats[i++]){
if (seconds < format[0]) {
if (typeof format[2] == 'string') {
return format[list_choice]
} else {
return Math.floor(seconds / format[2]) + ' ' + format[1] + ' ' + token
}
}
}
return time
}
const plugin = {
install () {
Vue.helpers = helpers
Vue.prototype.$helpers = helpers
}
}
Vue.use(plugin)