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
62 lines
1.4 KiB
JavaScript
62 lines
1.4 KiB
JavaScript
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) |