-
+
{
store.commit('addMessage', msg)
})
diff --git a/src/modules/instance.js b/src/modules/instance.js
index c31d02b9..24c52f9c 100644
--- a/src/modules/instance.js
+++ b/src/modules/instance.js
@@ -37,6 +37,7 @@ const defaultState = {
emoji: [],
customEmoji: [],
restrictedNicknames: [],
+ postFormats: [],
// Feature-set, apparently, not everything here is reported...
mediaProxyAvailable: false,
diff --git a/src/modules/statuses.js b/src/modules/statuses.js
index 96a3549d..6b512fa3 100644
--- a/src/modules/statuses.js
+++ b/src/modules/statuses.js
@@ -1,4 +1,4 @@
-import { remove, slice, each, find, maxBy, minBy, merge, last, isArray } from 'lodash'
+import { remove, slice, each, find, maxBy, minBy, merge, first, last, isArray } from 'lodash'
import apiService from '../services/api/api.service.js'
// import parse from '../services/status_parser/status_parser.js'
@@ -19,7 +19,7 @@ const emptyTl = (userId = 0) => ({
flushMarker: 0
})
-export const defaultState = {
+export const defaultState = () => ({
allStatuses: [],
allStatusesObject: {},
maxId: 0,
@@ -30,7 +30,8 @@ export const defaultState = {
data: [],
idStore: {},
loading: false,
- error: false
+ error: false,
+ fetcherId: null
},
favorites: new Set(),
error: false,
@@ -45,7 +46,7 @@ export const defaultState = {
tag: emptyTl(),
dms: emptyTl()
}
-}
+})
export const prepareStatus = (status) => {
// Set deleted flag
@@ -312,18 +313,39 @@ const addNewNotifications = (state, { dispatch, notifications, older, visibleNot
})
}
+const removeStatus = (state, { timeline, userId }) => {
+ const timelineObject = state.timelines[timeline]
+ if (userId) {
+ remove(timelineObject.statuses, { user: { id: userId } })
+ remove(timelineObject.visibleStatuses, { user: { id: userId } })
+ timelineObject.minVisibleId = timelineObject.visibleStatuses.length > 0 ? last(timelineObject.visibleStatuses).id : 0
+ timelineObject.maxId = timelineObject.statuses.length > 0 ? first(timelineObject.statuses).id : 0
+ }
+}
+
export const mutations = {
addNewStatuses,
addNewNotifications,
+ removeStatus,
showNewStatuses (state, { timeline }) {
const oldTimeline = (state.timelines[timeline])
oldTimeline.newStatusCount = 0
oldTimeline.visibleStatuses = slice(oldTimeline.statuses, 0, 50)
oldTimeline.minVisibleId = last(oldTimeline.visibleStatuses).id
+ oldTimeline.minId = oldTimeline.minVisibleId
oldTimeline.visibleStatusesObject = {}
each(oldTimeline.visibleStatuses, (status) => { oldTimeline.visibleStatusesObject[status.id] = status })
},
+ setNotificationFetcher (state, { fetcherId }) {
+ state.notifications.fetcherId = fetcherId
+ },
+ resetStatuses (state) {
+ const emptyState = defaultState()
+ Object.entries(emptyState).forEach(([key, value]) => {
+ state[key] = value
+ })
+ },
clearTimeline (state, { timeline }) {
state.timelines[timeline] = emptyTl(state.timelines[timeline].userId)
},
@@ -374,7 +396,7 @@ export const mutations = {
}
const statuses = {
- state: defaultState,
+ state: defaultState(),
actions: {
addNewStatuses ({ rootState, commit }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false, userId }) {
commit('addNewStatuses', { statuses, showImmediately, timeline, noIdUpdate, user: rootState.users.currentUser, userId })
@@ -394,6 +416,12 @@ const statuses = {
setNotificationsSilence ({ rootState, commit }, { value }) {
commit('setNotificationsSilence', { value })
},
+ stopFetchingNotifications ({ rootState, commit }) {
+ if (rootState.statuses.notifications.fetcherId) {
+ window.clearInterval(rootState.statuses.notifications.fetcherId)
+ }
+ commit('setNotificationFetcher', { fetcherId: null })
+ },
deleteStatus ({ rootState, commit }, status) {
commit('setDeleted', { status })
apiService.deleteStatus({ id: status.id, credentials: rootState.users.currentUser.credentials })
diff --git a/src/modules/users.js b/src/modules/users.js
index 093af497..26884750 100644
--- a/src/modules/users.js
+++ b/src/modules/users.js
@@ -292,9 +292,12 @@ const users = {
logout (store) {
store.commit('clearCurrentUser')
+ store.dispatch('disconnectFromChat')
store.commit('setToken', false)
store.dispatch('stopFetching', 'friends')
store.commit('setBackendInteractor', backendInteractorService())
+ store.dispatch('stopFetchingNotifications')
+ store.commit('resetStatuses')
},
loginUser (store, accessToken) {
return new Promise((resolve, reject) => {
@@ -319,6 +322,9 @@ const users = {
if (user.token) {
store.dispatch('setWsToken', user.token)
+
+ // Initialize the chat socket.
+ store.dispatch('initializeSocket')
}
// Start getting fresh posts.
diff --git a/static/font/LICENSE.txt b/static/font/LICENSE.txt
old mode 100644
new mode 100755
diff --git a/static/font/README.txt b/static/font/README.txt
old mode 100644
new mode 100755
diff --git a/static/font/config.json b/static/font/config.json
old mode 100644
new mode 100755
index f16b8029..d72b622c
--- a/static/font/config.json
+++ b/static/font/config.json
@@ -233,6 +233,12 @@
"css": "play-circled",
"code": 61764,
"src": "fontawesome"
+ },
+ {
+ "uid": "d35a1d35efeb784d1dc9ac18b9b6c2b6",
+ "css": "pencil",
+ "code": 59416,
+ "src": "fontawesome"
}
]
}
\ No newline at end of file
diff --git a/static/font/css/animation.css b/static/font/css/animation.css
old mode 100644
new mode 100755
diff --git a/static/font/css/fontello-codes.css b/static/font/css/fontello-codes.css
old mode 100644
new mode 100755
index cdc21ef3..49175c8f
--- a/static/font/css/fontello-codes.css
+++ b/static/font/css/fontello-codes.css
@@ -23,6 +23,7 @@
.icon-plus:before { content: '\e815'; } /* '' */
.icon-adjust:before { content: '\e816'; } /* '' */
.icon-edit:before { content: '\e817'; } /* '' */
+.icon-pencil:before { content: '\e818'; } /* '' */
.icon-spin3:before { content: '\e832'; } /* '' */
.icon-spin4:before { content: '\e834'; } /* '' */
.icon-link-ext:before { content: '\f08e'; } /* '' */
diff --git a/static/font/css/fontello-embedded.css b/static/font/css/fontello-embedded.css
old mode 100644
new mode 100755
index b24597b2..c43ad321
--- a/static/font/css/fontello-embedded.css
+++ b/static/font/css/fontello-embedded.css
@@ -1,15 +1,15 @@
@font-face {
font-family: 'fontello';
- src: url('../font/fontello.eot?50735214');
- src: url('../font/fontello.eot?50735214#iefix') format('embedded-opentype'),
- url('../font/fontello.svg?50735214#fontello') format('svg');
+ src: url('../font/fontello.eot?21048049');
+ src: url('../font/fontello.eot?21048049#iefix') format('embedded-opentype'),
+ url('../font/fontello.svg?21048049#fontello') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'fontello';
- src: url('data:application/octet-stream;base64,d09GRgABAAAAAClMAA8AAAAAQ5gAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABWAAAADsAAABUIIslek9TLzIAAAGUAAAAQwAAAFY+L1N8Y21hcAAAAdgAAAFBAAAD3uX0Fz1jdnQgAAADHAAAABMAAAAgBv/+9GZwZ20AAAMwAAAFkAAAC3CKkZBZZ2FzcAAACMAAAAAIAAAACAAAABBnbHlmAAAIyAAAHEcAACwG8jHHY2hlYWQAACUQAAAAMgAAADYUVjqAaGhlYQAAJUQAAAAgAAAAJAfJBAJobXR4AAAlZAAAAFcAAACcjPL/4mxvY2EAACW8AAAAUAAAAFDNptZdbWF4cAAAJgwAAAAgAAAAIAF8DaZuYW1lAAAmLAAAAXcAAALNzJ0fIXBvc3QAACekAAABKgAAAa9AF33rcHJlcAAAKNAAAAB6AAAAhuVBK7x4nGNgZGBg4GIwYLBjYHJx8wlh4MtJLMljkGJgYYAAkDwymzEnMz2RgQPGA8qxgGkOIGaDiAIAJjsFSAB4nGNgZJ7LOIGBlYGBqYppDwMDQw+EZnzAYMjIBBRlYGVmwAoC0lxTGBxeMHwyYY78X8gQxZzOMA8ozAiSAwD4wAwzAHic5dI5bgJBEEbhx2K84Q0veN9NRGQRExFaPgXngXORO3BIMlKF3RwA/DdVoc0FPKNvmEWaaVEP2AIa0pcm1FvUdFYOjfVZX7976/tNvnR9z7HuHFrX3m2QpmmW5qlKy9zJwzzK41wtBqsVGOvnk7+eb9hq+sbHev/8ZS/P61pBUytvsc0Ou1rfPm0OOORIqzuhwylnnHNBl0uuuOaGW+703gceeeKZF155o6eXtTau5X9s7XKofcdVr0zPlQIs6F/HQinGQqnGQqnJgqaDBc0JC5oYFjQ7LJTKLGieWCirs6AZY0HTxoLmjgUVgAW1gAVVgQX1gQWVggU1gwXVgwV1hAUVpbad2sIGTpWRJk69kaZO5ZFmTg2S5k41kiqnLklLp0LJHadWyUOnaskjp37JY6eSyZVT0ywGjt4P/eiN9AAAAHicY2BAAxIQyJz+PwmEARMOA/cAeJytVml300YUHXlJnIQsJQstamHExGmwRiZswYAJQbJjIF2crZWgixQ76b7xid/gX/Nk2nPoN35a7xsvJJC053Cak6N3583VzNtlElqS2AvrkZSbL8XU1iaN7DwJ6YZNy1F8KDt7IWWKyd8FURCtltq3HYdERCJQta6wRBD7HlmaZHzoUUbLtqRXTcotPekuW+NBvVXffho6yrE7oaRmM3RoPbIlVRhVokimPVLSpmWo+itJK7y/wsxXzVDCiE4iabwZxtBI3htntMpoNbbjKIpsstwoUiSa4UEUeZTVEufkigkMygfNkPLKpxHlw/yIrNijnFawS7bT/L4vead3OT+xX29RtuRAH8iO7ODsdCVfhFtbYdy0k+0oVBF213dCbNnsVP9mj/KaRgO3KzK90IxgqXyFECs/ocz+IVktnE/5kkejWrKRE0HrZU7sSz6B1uOIKXHNGFnQ3dEJEdT9kjMM9pg+Hvzx3imWCxMCeBzLekclnAgTKWFzNEnaMHJgJWWLKqn1rpg45XVaxFvCfu3a0ZfOaONQd2I8Ww8dWzlRyfFoUqeZTJ3aSc2jKQ2ilHQmeMyvAyg/oklebWM1iZVH0zhmxoREIgIt3EtTQSw7saQpBM2jGb25G6a5di1apMkD9dyj9/TmVri501PaDvSzRn9Wp2I62AvT6WnkL/Fp2uUiRen66Rl+TOJB1gIykS02w5SDB2/9DtLL15YchdcG2O7t8yuofdZE8KQB+xvQHk/VKQlMhZhViFZAYq1rWZbJ1awWqcjUd0OaVr6s0wSKchwXx76Mcf1fMzOWmBK+34nTsyMuPXPtSwjTHHybdT2a16nFcgFxZnlOp1mW7+s0x/IDneZZntfpCEtbp6MsP9RpgeVHOh1jeUELmnTfwZCLMOQCDpAwhKUDQ1hegiEsFQxhuQhDWBZhCMslGMLyYxjCchmGsLysZdXUU0nj2plYBmxCYGKOHrnMReVqKrlUQrtoVGpDnhJulVQUz6p/ZaBePPKGObAWSJfIml8xzpWPRuX41hUtbxo7V8Cx6m8fjvY58VLWi4U/Bf/V1lQlvWLNw5Or8BuGnmwnqjapeHRNl89VPbr+X1RUWAv0G0iFWCjKsmxwZyKEjzqdhmqglUPMbMw8tOt1y5qfw/03MUIWUP34NxQaC9yDTllJWe3grNXX27LcO4NyOBMsSTE38/pW+CIjs9J+kVnKno98HnAFjEpl2GoDrRW82ScxD5neJM8EcVtRNkja2M4EiQ0c84B5850EJmHqqg3kTuGGDfgFYW7BeSdconqjLIfuRezzKKT8W6fiRPaoaIzAs9kbYa/vQspvcQwkNPmlfgxUFaGpGDUV0DRSbqgGX8bZum1Cxg70Iyp2w7Ks4sPHFveVkm0ZhHykiNWjo5/WXqJOqtx+ZhSX752+BcEgNTF/e990cZDKu1rJMkdtA1O3GpVT15pD41WH6uZR9b3j7BM5a5puuiceel/TqtvBxVwssPZtDtJSJhfU9WGFDaLLxaVQ6mU0Se+4BxgWGNDvUIqN/6v62HyeK1WF0XEk307Ut9HnYAz8D9h/R/UD0Pdj6HINLs/3mhOfbvThbJmuohfrp+g3MGutuVm6BtzQdAPiIUetjrjKDXynBnF6pLkc6SHgY90V4gHAJoDF4BPdtYzmUwCj+Yw5PsDnzGHQZA6DLeYw2GbOGsAOcxjsMofBHnMYfMGcdYAvmcMgZA6DiDkMnjAnAHjKHAZfMYfB18xh8A1z7gN8yxwGMXMYJMxhsK/p1jDMLV7QXaC2QVWgA1NPWNzD4lBTZcj+jheG/b1BzP7BIKb+qOn2kPoTLwz1Z4OY+otBTP1V050h9TdeGOrvBjH1D4OY+ky/GMtlBr+MfJcKB5RdbD7n74n3D9vFQLkAAQAB//8AD3icxXoLkFzVmd75zzn32bfft+/tefX0dE93z4vRqKcfQhKj1nMEDGgkBjEjhDwISRiNpAEWGxYQIUZLQcwiwhJCrWuxlWBqExuHlRybxDFsecHeyEkVjteC8iZVWdvlEnZCXAmbTSmole/c7hmNeMTJVqUyj9v33PO45/zn/7//+//TjBi79N/5X/DfZ/0s0+jKdcQMyThNCuKMLxKqD7ndriu19HDBjZKeW0WGuhQrG6ikLrVyL9XVxUO17/G/iE7FRmIvvYTLVEx9xi6Xo9GXXore76mbr341+vGG0VHVgEnM6TVxSlSZyeJskDXYtsbmKt5rMY5ZTTJLtxZN0g19kRnCWEQHLmc0EpguF2yeScln8YhPXbM+P57PlQtXpxO21jNcqBQjPEO1+tJnytXzfbliqVqp+eMZWkflWn287Al9mFBl5FUVLq1Vevysm3F5ujP9+242wb3u9Las9+EP/QxlvfedWv5krhZ+38t+y0qfdKMnoy6d9JPxC3bGvpDoj3g8kU3ITmfp5skzXjbr4UK9AwO9GdrlXUAPL3JhBF3sC3GGH7U3P4IcJlkv62l0JqK2FJraHLa8Nz2uLzR/mCD7ZMqNULA7xWqlniypayHYGc0Tp6Jnx5yU8z8vOJ5DYz+M9FL6kVDWOU7pLP3Gib7VfM8Jxcg4ccJI2NIk/62ok9IGmr7fHMAbl+dhYTdKjf7uDjcStkxD1wQ5V06o0O97iZjQ3GGqryJohFH3k63Z5XOfMjv+0D/99eG7/tPXBn/84ybm6dufPM/Bl3M/+Unu5V8vLtLp1pS7P2XC+FFzviTH+GOsj21mmxobciR1pdaYgkH6UYt0aehywYSeG8SNeaV1cgaqw2Y1QmFqU8PrK6T7vNRAMtAdVy9BVVbRKI3H87lRaiuFUpNUn7pbso9ipbaOqn2tu3pf2eulDKXi0Ct+1jYvvqfpHNZFC9hv8wwWd9ryIgu00dLmJB00TzvZ0BkTT5qvqye2ydMy6LAQ8RKGQ1xIcmiH12Wfc5xzdrdL5/Qj2s/C9rlw+Jzd5Z0zFrSwjWYaN0XztAdZQCCXzorz/DXsXyebYFvYLeyWxkylizN5kw6T2rWZE5/eNFiCUekkJ5kmtUWIEOZERxnp+FtgusDfAhPi2ApRMSWpqeuTox39bo+hdQ4X6qNUr9R1w6NK0cjpKdcr12Be47AsN6VziCifC3Z/VOFHfYLGy34d1ZCSZ3hJiDPp+S42KUJ51NaLpXoGuEK14bE1lHv05n10OBbadiDmxbaMhWJn1/1qXbdmG1usjunHy6HQ7g//Ybncq9kiEuoPkZWavfaP5IWQV5r59w8P3v/nWzfelq/uz4bu3pE/fM3mtRtPPEN3Qu0PbA3FYqGxLbHPSbqrueeuslXSbWOo/4Eb4kOJx16wa5auuzppzYs3PtpF6Y59yWT/VfOHr7NP3HWgsaF/fy0Jfbt06dI9sBEXmNXHZhp2L8whAkjik9e/2jc92/CU1EgCnYgJTmIeWBbm13Y1eoBZ/O7LtULQDCMSs0yQmJr7tp93kwlN6ximyijprjdB5Co1gxxH+YTMcEgLuPvYs28/iz/KjKx13zjw0PSzn23w9UeefunpI+tp6xspevLOZ/nzZ1/Qn2r+Yc9Q6o2tE4ef+UdPH1srNx16/oaHDryRatvMa2KPSGANh9nWxqaDc1MbJZPrbE6sMtAVk5hRSzmgJUwuKohaxIxpEUsS0Bh+aO+tN+28dvvwUC6bTBiah0kXcxGCDhQAqNh8w/M9F3tbUivALgNpgQilYgnIgGugEfXAyhQow8bqxSU16UUBvwBppStQmrLfHswITIyv2/XALr77vt3UbRqftUPJAV2LTocN44aOTsuQsYdNJ9bl79Bj+jZPauaAHTUPGSbZ2mfNiF9otTVvSHdapog/DEuLdvs7tKix3ZXSajW26eC6mZnPz8w8oOpjmVRXWY/oqWnS1ofNqe6YbdxpOes1vZHRIrpTjnZ3RckxgrYdndmrDMdwp1c0Da3TtM3d7aadMUBpsAeMiQV+lpXg94BbLqACAKtzjevaUaYJrsEKpWBCsqPKQnXi86ogZmCbyiIFm/LyHYWhQsnQuoBbXpQgIrixarwSSC/lB49K+ZxuxF3PHy9nOLlAxVzxGsqrC3BrHOL3fPLoILCBTPP05n37Np82baJWsVChWv83dQ780EPNH4W6vQsRD/7L6w7RqlCVJ7SIxcW+zfTE5n22GbJ0CBfK0HwAHSU3aSQSar5tu9FTXuQckPAUHKOFB0t+733xLT7GXNbR8MIEc5iEFBj0TPERP6F8HhA8V6IWBfGtNhiLrzX3w+M294dCt+GTBmgg1O3sDdHzzTtCIfqjUMbeGwo138Xj0N5QN951qXnpIfGauJOtZr2NbvXuwPzYLHSe2BSxoUG2mlYrj+bnSgA3qvkKkAwlwWINRdzqvldXt9BVFDK8/fSDQ1u2y930m+l9I9uczulmcWA+m9FHaCpd6Wx+cyTtOGmPflrOrq/VmolN8sDj19FvVFVs1+9t3/an+9Cx09k2Mq862tn0gSG6sbOSRsdOk0vV8fOxSLmZmHp8v2zQ++lR1VHJTwKLXpOrAjuOgjusYjc3dvW4AJ0o1hQJO5bkrDsFgiSV51bs6SiDVxSkCwVPQH1FojQtAHltVln8VDw2OlzMd/ix3nhvMpkwA9YRUS4uQ5Tqq9Z9KvS1FAo+r1aKV4p+HGgOn1mPt/wgHZzYM4E/vv7D90/voR7KfPgYbMrRxXGYiL2zUvjwsf4aVQrieKHC01dN8E27N8m1zQsXFs7MUc8pOM89qqHJXzbtxMU9gQryl9UHCyn8DdbcWvEGtoN9BuD0d9hJ9mX2z9ibjY5nGtwyn3h0Pis1+cAagO70GCCWyTZA11kq4XDTSpnzSbJiJDVLzsfDHPbJlTedj5KwIT8QzJABbXRnmeuGXSD4xP9dT9elmeURyJ2aaxS/8bWX//GLX3r+uaefevzEIw9//neOLRw6sO/W3TM3Xl+tVov4rY574CB+FT4VVttDrqe4KiCyCPwMyuCtQbnUrodV1wibAH6rYyO8cWwKfaT/UtlItcoC7Y12ex/t/fb4ql6NX2+Pr8p+u7yyfz3e4tNLG37OjW5XoIALfeItX+dFmjcFj+iVqHvxrctVIu5FJgNKjOtPrmj2zoqaT7tuv0KZ+i+/9heXp/HLFX2at1NGVTR/hiv/+5NR1McmcX/xi5f70neoJ6ho/lz1+defPNQvLne+82KiUKkU+PuBjipc+wG/T1wPXPMbrhXgGluCte4Eh7+02hSybi1BG1CNHwagdYduA4INNN9tQ9uLNt3dvN22b0MNDSqcUw1UwyUM/QF/YelddOW7fD94F/cCyqpQtN4GUP508x0abI2qUBSvydi32fxPmu823wlubfpy8PpgGuo98Djf4je0sFqjK8MB3w2wuqC8+/LS2qsSX9sLOMa477bX9qJayYuhe/fiHYN4m63qMQG7vSiBNd0j3hR7mAMeu4m913AY6DtNDnSBIG+7/tUIzHjYIEyCtIMBjN2BToQoRcWE5iwzTWc7WIo+y3Q9rF/b1bL8kSu68IXf1qcffQY/rQ+Hq9b3LneVwIdVH21rwn+bcv5yH13nM+13cH1qbm6u4fTmEgNePJ9MWDB8rQK3XK/klB2WC33FeGWU5yI8FdNcEChXBVXKv0/IOgwP5HqCvJRrwE25GUEXrb4xSqwdsJpP8XP/oLOy68iuSid/eajnAqjMhZ6h7tGx/gQ/cZeWHclqh79AXm5sbM4c67OswbX0T/6YBrvXr8nl1qzvbr7zxz1DIEDrhnrS5Zl9T9ww82zMDvkZnkuF7NizMzc+Pr+rssRh+GPAYgNYPNQogbRgo7D0o1gkwgeiwLPQLCgvTeWThVoypiN4SPYBUCLka23HASeCuBxEpOwZKYQIZ6gHUyZ6O+tdfC+Iu+PP/ZvneQK3Xz+yboZPX3Oq+bqH5ynahMj6yKHnnjt0JMPEpYvgtXOYj0Pfpb/h91//qjU9u3E9+y77DnsN7uF59gTTlXrBWWCWuPsp+zHY1RzbCTWbYOMsyzqYjeVwepFeoOfpKfoiPUifo4N0B2D9r9h/hErqCCRvohtoAP1NptMH9Jf0I/oh/Sm9TmtoHM9IPWeTUCEb79/cfvsT8MAqZv2uigxw9/9+DgabxJoJ7yK2rev/nyDm5oKdaFQRAhmCG0eZoQtDxZqm0E3YCQmTFoBcx4CVILcz+GBiVpMc9HeqJcbGWknwsZo4yLihcWMBY2itMbTWGNrlMTStNYa2G2vXruv6W755bm5jR8AU36Vz9C/o23QL7WY/YG+xf86+yf6EfYP9Lvs8ZKRDjkAo/Nt4nTtM5YyiTCpsI0XJyxNURbRT84sq0NlAerHqGpWiXh2VCidVtsQdIjen54xaqZgHuxwf5aCgeAyo1jO4AXyrGEjP4aao4idD/ZeLxgTl1aAlT4VQsJ9xr1IqBw10XzXGC0oYFqOWiqqcIURTiNdzumcg9vKUm0dAVq/4Jd0oq6H8uo/OhmdgBuiqGxnu1j0jCMKMUlH3xtU4vZhQXe8VCEt1NV4VrcCNS6O8qiI4cONxzLuckb3CK2NUdK7nggQJ0KpWxSi4qNUXa365huViWa6eyteUM8RzI2dERBFTUOWSmheIRwXr8GoYCRP26hkO6dTqHlBhghBbVkdVxi+QRhktcpgNwklPXeterThBqXotr+aoBFyuQiACIApXVUMcqv6ihJWlIK9R7FqUirWikntNT0UohYAgiAYQyfqu7tEr933/3nu/f/7Pj+kP/itKclMQlyKeSoLmclMX2DIpbU2XZAIQhZD40UkHedSkjpZkOqR1S8ERY+Fl3LDQBPESOtpcamEh3EhSmoj5iGsWp6SlS67pNtwJlF/oFkYD+9QEwkRJESMUlTGBUaVJpvrAwAK0P6EJx8HrudPRJXRNS2oiJMMhvEiXprTkzrJU4aagtI05aFLNU8WhxG3DSEjDUv6LR1DmEYQRPGoKDC00knDdGEFzDC5MYRmermumGZMuxsHgIiIkAm4zbnP8kMZR4sIRiAeVqGCIIbyHm65AoMnVujVICX8k08ISmIAI84gSh0SNjjlATlIapmY4EgUEw1owEUfyBLpzFYRy24SodN3QLMe+63emyaEw+qcUbChBaw5sHj+kZm5jhzhEjUaYiAxFiVs2icR9b/7qzfuCS/M/kMlVmswUWgjNMARiEiOQK3Hd0XTIFS5OBA9wz00lVsLKsdeGMA3bkJquOUo1sDTHglA0LEHEuYiY6rmwsK1Cp4i0MaSGZdnSMAyyNNMwISShZAl1sIWIqGpNIpywzSgXCswiEIDU8YtJXLVDql2XetTGHBDHRSw3xEnv5PCyUkdUK0QMMpamZkoKpcOag1VLx4zICNkhFzG7BpFjLxLCltJSuUs7EDCPmQmlv5iHbUSCrYS8Y1pUYTEPYdEoynTEimiWSr1C1BA6zETjUegIqZSmQBQpuQlBRrhtayq3GbI0pRrYA6xZwiAgAp2wPHRU+45LM5y6Wa1ZJROVHUDU3BYItTRIFyGXaqP0SY2jdZtxK2I5XMaMIL/1VXFS9AORfZZr9IIW87imuAkoK/HFZX7c5eUC2urqpRxgoqQYCBirodJSYK/09jce2rllyy6afXCWXsz2Nb/n7lpDE9l9P3r4VRoo/b1d18zO0l9n92Wb36vPuKiA77j01+Ag/03MIT7tgx890HC6sN/cCnjRZItU9jDIDkp5VLlgFS5iQhDrXvgtRwORzDEId1HlCxcvt8A2q4SFnFVNEUxa/poSvIXiU4UV8aGK10rJSkk9MPSU34roBHkqf6a4VrEOuCwjJLONI4YdXGCqhvEgHKnlGHeajklfd1NWLvHhy4mclXLpFStXzO05bNq2iQs57xBB7YAgl+BydR778P18Pp5AKJTPi0TcddtxCYSRABfLs8FGEURYBmK/W8NqmFCnOCLIvQg2lR8v5MeDhajTmFK+fSRTr+ZbRzZBjkoltHxFDkUi653PegsgfucDbng+4y/gRhVeV0/fC5jhe+2n6vjlfJbxgBt+JuCqLhtuDCwJVir7pxmpQG9WaccUY4m4E0I7I65pqeFCPKcOkZY9Opw7vXLTU9N85glOSy7gg3/5SJXP73rqpad20djn2ghy35tBTh7L/QXeq0Mjrga32k5GI9WYWBeDoRhMVtRh1uRGWMq2Fs8ZYwZA1pBHmSLQ7CAmKpmQ8yYKukb6Z5hCghnoipqvxhU/CqlIpd3eoP+DDum/1Ysaq1d2kYyO/tY+KsbxGNuy+Zr1q0cHi5kuLwlJ6K6lJFsvge6nlOPVFX9Jto/pqq20AnYPFaUgs2G0MxXXBHzAEz7lq2SU2geS9JvGzY0qpSzrTSuB//59m5tjKo9Jb+czljC6TDvsNMeCPBK9Xaho/Wa6fqr55Cm+OH5qPDYSuzn25sabN/bW6NmlIZqvH24NsGkf4DmpdwNdK4X2GNsMjGDSya80n/wKjVZOVaLRm2MjgY7dI34N2y+xafZqI9LvgQnwqU0V5TXb6aciCyBSHMU+AejkgjrrnNVhLwg/W1k4LawthZ/5j7WWKku393IndbQw+NFWeiu5xz+W3cNu+IMDxCa3rl41MD047SYcm5WoZKqDPEX2dMP1eknRI5WDh7n5hq7S8BOkcvUgRaUi5VJBRl+d72AHFHOKkKJ2Gwgsb7ysOtYreEzvP3bP0c1bMQM5k9Sq4zfdcseOpytrLe78Tci15VqesDZu2bOXxoPK3XdMb99aXWfy0P9o19qNLXtuO/SFe45tCsYQc42JhWN/1wQdSuy/aeeq1RNrrraSoiwsL/ZzM6Sv31YcaMpWVTbz8TrV+wumyQNoUuc4+8WvsFe9bCO7tqEcMKPJ1URbWpJPXj4Xo2NCSZpB0lGhwqXFthehQ3ONMLG+rJtkvdQrl4S4GhJQdNn3FF3MkDrrqCkyq4QXCFn3WvWQ1GqUSgGnr6lGRfqvt+yc2bL7yOE7D+/Y1NenFyKdsfG4sHmeCsVn9t3a1NJRRSb7eX9x+60P3f+7x29XjRfQOKsVTD2SEHM9mau3ptxMdsem3Ted2TnYFaO4iOp7/mzutmeKheb7MambQWn7rf25dMfOFW1TfZEEWz6fOB/o8gZ2vJEcAOjH4cTqoyAlffC9su3M+hmYKUjK8pkFJCSDswqVydnLdN3RIbkRBIj64v+u7YpzjbmGvbarUK0VxtXRBl2JCx7cnP4RUAjcQzIenIwvp59KxUptvE95jGU8eFJ5vOb9y0hgm/2mfc7rDu1vPqfFZAN878j+kBehnqhLN51ehoCg3bL9n4YrpJ+q5CB30FHXG1ok6NjtecvnayoPkWYDrNxYlQA5ZUG6rKVREm0+4QywWnc7xoMTwHilWMICe7EWFQKW69QyrGQ7YbIkCX7WjTY/SCcT081zodDVKq82tNOO6mbq5L7NF99T0+f+5n2I0h2s56qYapaxr8bsh6ZDwqbqxfNY3PxGnlYfrJV7w2UP/2E7v15vVAZIaiZrsScNjlwLMlqKr8+vOEZRLn9KpbCL4wElSbVTO9XWTEWqda4efAWjXc6vLM+5sQ//S5BcFfEgr/qppYUVOViKLWdtyaWIysVGgrTsko2/Jt7jZ1kHW8Ouagyp75UI7EPrELNFBK+YP2Crf+24VOeZy2cayk4zHCRKGTF+8RxhYYQjcg7OL1WEPaqoY6Bq5yuFD8/216ij9+xUtrili3dvGuj9zLez6drgv6tUnVwmzJ1MPBPO6X8wn8ivp9FhUUPzf9vc2tLJ73R5T9bTnd3U2e1vedh7Y2S659l8yUog9LATZrc4uCni7+ofXtvOv8HfnMf6fHYN299wKgrciiEV7bS9jQ8HQEvH0YqKY+tEWMAeM0oKd6+oViyILZOguUac2Lq1/bmerkSM+eTrAbiBQyr/AARDnK10coKPBtQIzkDhWsDYEDgHeY4JvkER6coEZcGZPrj3+/fR9LVj0XDnzVvT2WIOZf7A9+jRx3/5RGno2B909QszglACcaIMu4YbM6KzB+jxX1Lsl4/zx248MTVx72B3dXy0f31KaDeeeOHEjc2f3f7SvLy9aEoH9BoOOqpFPLO7OzlUfnYGVfMvrbTFPNj4xsaEOmXsJeWP1cEf4Fwc1VTMpnyrASEZKh8McqucpsrTSn2qWs2Pe/n+vKl1D7eOUpbPR/JLhyZLJyNVkO1PstIzLYU9Haju6VbhTMR7+goz3ajU+EzQ5ExLp88ohT7j0oaPGioF6zovqmxY8esiVqQUW0KxwcwWVRp2MUjPqzAn7yev8RWwFFwjwlvfzYEqVyujWgCuyycDKv2a9aHFk2QjVkX4TsLNrZnYvbt+3M1azZ+HQtQT6k7z4/T0nsz5274sEzFpO2APoti7Zk9jLJPQT0a8EGXU0UHGdqMn/+r6VizAHxN7sAeHWk4jC8UDIWFHEQEy0lgrBwfqo6BQBEFQ4ZObCLRRnkIRGgFC00gSy/Z2pd1kLGLpLE95Q2kqiMtHk8sZ6G7rawiVYk73U/yGIHxYmWF2o/0RL0g9fz3jr0wxn7nzOf7MXWozVF78DGvHE0GumXWyYiO/TAwoSPGrnDenKWIdaUNnDjkBOViZGKxVSoWinoq7vsL3K/JJ04lE8+14f8JKmFdkJCr2kH06lHKbf+iGIBwR6MDx4Pw3zW5mNzauv45Mo7dLJXSBaavjmIecZIZpLDJTmIs6QgPR/jaH5PLuFUavqQh7atVIqn9Dsdo6jKhXVB4sQy19zi9JsuxpruGlPMMLsoSqRhGbUlA/wYGQuEyI8XJG6j5WqzQOnU56PdDrHnePG/tKoOFfiXr8uV6LOizL8rRs/3XbC7vLQ1uTqHS71nYXE3ZER/AfS0U7htKuibjfMR2V5PjScEN9pyoYj0aaXwpGo4OBHxjLdySGcr353tREaZgSkWh6qa6RX52wc27aS+c8J9GZzibCqRHPlU5Eb7S/O3VPwHdiiA8L8HxXs79s+OOD3DDBdnhPKuyAeotJSZqK1BS4XqU7IiTJ4AapEw/N4NoCBjI0tmCRYZizNqlDJQn9D7MlRj/y6Z1Uw2MrehqwgvJvaY6GaD+j2hu70dc0rgPHz8bjjNWr5dVXDQ+U+nO9ma6OuBt3kwmsLloPI/YK/NuyhSThvOL5OC0/UP/jZb+QyrdDb235jp70Iu2T0S/KMH356eBwVxXx95/Dsjnxlm2eMm26v/XJX27OoKb5Rmufeui803yAnmg6rcPVCG3E/9edV44fVwmG4No+A3xNPiCS0O0RtoPd37hvpMBtI9sbEYKXk1yaYpKRAZQzbGMxQswO2yx8lIXCPBziR+EvWThkh+d14sB3k4t5ZkppzjDTlLOWSgHCOG+4/rrtW7ds3FAbX71qcKA/193lpxIx2wLsmGRGA5dXnKAM17VxBY7u5S+MBt+gWc5OKLPwg9P5VIuqViY0X0Ww5SCK8uEnUvTk3CP8wW89oJ+gP3sz+H7Dm46+YNpvBd+NgLAWcNM8ONRzsnh1M715l3QSmeLavlBoZObAzEgodO3Y8Z4hOvjIq4/yh7/54LUf79satPlGzwj9XveNmzNrNtXW5Dq5ncOPXRvqYf8LtsR5zQB4nGNgZGBgAOJwz8lJ8fw2Xxm4mV8ARRhupPzOhNH/v/5PYqlgTgdyORiYQKIAbaENsgAAeJxjYGRgYI78X8jAwFL2/+v/zywVDEARFKAOAKM/BtJ4nGN+wcDALAjECxCYRR9Ig8QX/P/PHAkVB/FX///Hov//PwgznWJgAGGwOBAzNQHpyP9/IWr/fwWbCeKD5YH0S6BZIHYkFL9A4mPoB7qhjIEBAImjLjUAAAAAAABKAM4BEgFsAfICpAMGA8gESgSABOoFZAa2BuwHIAdWCCoIcgx2DLQNOA2ADbwOsg+IEBgQthEUEXoR6hJ8EugTPhOoE+oUkBVYFgMAAQAAACcB+AALAAAAAAACACwAPABzAAAAqgtwAAAAAHicdZDLTsJAFIb/kYsKiRpN3DorAzGWS+ICEhISDGx0QwxbU0ppS0qHTAcSXsN38GF8CZ/Fn3YwBmKb6XznmzNnTgfANb4hkD9PHDkLnDHK+QSn6Fku0D9bLpJfLJdQxZvlMv275QoeEFiu4gYfrCCK54wW+LQscCUuLZ/gQtxZLtA/Wi6Se5ZLuBWvlsv0nuUKJiK1XMW9+Bqo1VZHQWhkbVCX7WarI6dbqaiixI2luzah0qnsy7lKjB/HyvHUcs9jP1jHrt6H+3ni6zRSiWw5zb0a+YmvXePPdtXTTdA2Zi7nWi3l0GbIlVYL3zNOaMyq22j8PQ8DKKywhUbEqwphIFGjrXNuo4kWOqQpMyQz86wICVzENC7W3BFmKynjPsecUULrMyMmO/D4XR75MSng/phV9NHqYTwh7c6IMi/Zl8PuDrNGpCTLdDM7++09xYantWkNd+261FlXEsODGpL3sVtb0Hj0TnYrhraLBt9//u8H7HiEVQB4nG1Px3aDMBBkbIohdnrv3bnolPyQEGujWEhEJQ5/H7BfbpnD1nmzs9Eo2qKI/sccI4wRI0GKDBPkKLCDKWbYxR72cYBDHOEYJzjFGc5xgUtc4Ro3uMUd7vGARzzhGS94xRxvUSq4FqTS0CrDq9h5boshMGpa32WW/JrIZ9QRM4tF6ohbUY+FWabKLE3weWXWmpmWdMq956LOWil8sJR8y4pMYeWy9pt9rmixrbLQbnJcklKxMmKVLJUpKSltcHXe65D20ui4VcGlvPoMzsdUSZ+4Vur3TfyYKKlXjH789K9gXPm4IR0mDZdq6GbCNP3Ab5+ZDnLMfQVuqUostaqbDcc3XgZ6T+AdE9IKRdXM16EpHeu99quilNqIoLh1eXBk2aAVRb+YGHVpAAB4nGPw3sFwIihiIyNjX+QGxp0cDBwMyQUbGVidNjEwMmiBGJu5mBg5ICw+BjCLzWkX0wGgNCeQze60i8EBwmZmcNmowtgRGLHBoSNiI3OKy0Y1EG8XRwMDI4tDR3JIBEhJJBBs5mFi5NHawfi/dQNL70YmBhcADHYj9AAA') format('woff'),
- url('data:application/octet-stream;base64,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') format('truetype');
+ src: url('data:application/octet-stream;base64,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') format('woff'),
+ url('data:application/octet-stream;base64,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') format('truetype');
}
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
@@ -17,7 +17,7 @@
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'fontello';
- src: url('../font/fontello.svg?50735214#fontello') format('svg');
+ src: url('../font/fontello.svg?21048049#fontello') format('svg');
}
}
*/
@@ -76,6 +76,7 @@
.icon-plus:before { content: '\e815'; } /* '' */
.icon-adjust:before { content: '\e816'; } /* '' */
.icon-edit:before { content: '\e817'; } /* '' */
+.icon-pencil:before { content: '\e818'; } /* '' */
.icon-spin3:before { content: '\e832'; } /* '' */
.icon-spin4:before { content: '\e834'; } /* '' */
.icon-link-ext:before { content: '\f08e'; } /* '' */
diff --git a/static/font/css/fontello-ie7-codes.css b/static/font/css/fontello-ie7-codes.css
old mode 100644
new mode 100755
index 638813cd..56e11447
--- a/static/font/css/fontello-ie7-codes.css
+++ b/static/font/css/fontello-ie7-codes.css
@@ -23,6 +23,7 @@
.icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-adjust { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-edit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
+.icon-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-spin3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-spin4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-link-ext { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
diff --git a/static/font/css/fontello-ie7.css b/static/font/css/fontello-ie7.css
old mode 100644
new mode 100755
index decbcc43..edced9cb
--- a/static/font/css/fontello-ie7.css
+++ b/static/font/css/fontello-ie7.css
@@ -34,6 +34,7 @@
.icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-adjust { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-edit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
+.icon-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-spin3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-spin4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-link-ext { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
diff --git a/static/font/css/fontello.css b/static/font/css/fontello.css
old mode 100644
new mode 100755
index 63630d13..64a7a938
--- a/static/font/css/fontello.css
+++ b/static/font/css/fontello.css
@@ -1,11 +1,11 @@
@font-face {
font-family: 'fontello';
- src: url('../font/fontello.eot?94672585');
- src: url('../font/fontello.eot?94672585#iefix') format('embedded-opentype'),
- url('../font/fontello.woff2?94672585') format('woff2'),
- url('../font/fontello.woff?94672585') format('woff'),
- url('../font/fontello.ttf?94672585') format('truetype'),
- url('../font/fontello.svg?94672585#fontello') format('svg');
+ src: url('../font/fontello.eot?40679575');
+ src: url('../font/fontello.eot?40679575#iefix') format('embedded-opentype'),
+ url('../font/fontello.woff2?40679575') format('woff2'),
+ url('../font/fontello.woff?40679575') format('woff'),
+ url('../font/fontello.ttf?40679575') format('truetype'),
+ url('../font/fontello.svg?40679575#fontello') format('svg');
font-weight: normal;
font-style: normal;
}
@@ -15,7 +15,7 @@
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'fontello';
- src: url('../font/fontello.svg?94672585#fontello') format('svg');
+ src: url('../font/fontello.svg?40679575#fontello') format('svg');
}
}
*/
@@ -79,6 +79,7 @@
.icon-plus:before { content: '\e815'; } /* '' */
.icon-adjust:before { content: '\e816'; } /* '' */
.icon-edit:before { content: '\e817'; } /* '' */
+.icon-pencil:before { content: '\e818'; } /* '' */
.icon-spin3:before { content: '\e832'; } /* '' */
.icon-spin4:before { content: '\e834'; } /* '' */
.icon-link-ext:before { content: '\f08e'; } /* '' */
diff --git a/static/font/demo.html b/static/font/demo.html
old mode 100644
new mode 100755
index 9015b359..2c89a505
--- a/static/font/demo.html
+++ b/static/font/demo.html
@@ -229,11 +229,11 @@ body {
}
@font-face {
font-family: 'fontello';
- src: url('./font/fontello.eot?28736547');
- src: url('./font/fontello.eot?28736547#iefix') format('embedded-opentype'),
- url('./font/fontello.woff?28736547') format('woff'),
- url('./font/fontello.ttf?28736547') format('truetype'),
- url('./font/fontello.svg?28736547#fontello') format('svg');
+ src: url('./font/fontello.eot?50378338');
+ src: url('./font/fontello.eot?50378338#iefix') format('embedded-opentype'),
+ url('./font/fontello.woff?50378338') format('woff'),
+ url('./font/fontello.ttf?50378338') format('truetype'),
+ url('./font/fontello.svg?50378338#fontello') format('svg');
font-weight: normal;
font-style: normal;
}
@@ -334,24 +334,25 @@ body {
icon-edit0xe817
+
icon-pencil0xe818
icon-spin30xe832
icon-spin40xe834
icon-link-ext0xf08e
-
icon-link-ext-alt0xf08f
+
icon-link-ext-alt0xf08f
icon-menu0xf0c9
icon-mail-alt0xf0e0
icon-comment-empty0xf0e5
-
icon-plus-squared0xf0fe
+
icon-plus-squared0xf0fe
icon-reply0xf112
icon-lock-open-alt0xf13e
icon-play-circled0xf144
-
icon-thumbs-up-alt0xf164
+
icon-thumbs-up-alt0xf164
icon-binoculars0xf1e5
icon-user-plus0xf234
diff --git a/static/font/font/fontello.eot b/static/font/font/fontello.eot
old mode 100644
new mode 100755
index 30867c92..a72671b0
Binary files a/static/font/font/fontello.eot and b/static/font/font/fontello.eot differ
diff --git a/static/font/font/fontello.svg b/static/font/font/fontello.svg
old mode 100644
new mode 100755
index b5a6725a..91aba5ef
--- a/static/font/font/fontello.svg
+++ b/static/font/font/fontello.svg
@@ -54,6 +54,8 @@
+
+
diff --git a/static/font/font/fontello.ttf b/static/font/font/fontello.ttf
old mode 100644
new mode 100755
index 87c3d0d9..9d36bc11
Binary files a/static/font/font/fontello.ttf and b/static/font/font/fontello.ttf differ
diff --git a/static/font/font/fontello.woff b/static/font/font/fontello.woff
old mode 100644
new mode 100755
index 3a87b4b6..35eea15d
Binary files a/static/font/font/fontello.woff and b/static/font/font/fontello.woff differ
diff --git a/static/font/font/fontello.woff2 b/static/font/font/fontello.woff2
old mode 100644
new mode 100755
index 009e5e85..c88c4b24
Binary files a/static/font/font/fontello.woff2 and b/static/font/font/fontello.woff2 differ
diff --git a/test/unit/specs/boot/routes.spec.js b/test/unit/specs/boot/routes.spec.js
index 383ba90f..a415aeaf 100644
--- a/test/unit/specs/boot/routes.spec.js
+++ b/test/unit/specs/boot/routes.spec.js
@@ -24,7 +24,7 @@ describe('routes', () => {
const matchedComponents = router.getMatchedComponents()
- expect(matchedComponents[0].components.hasOwnProperty('UserCardContent')).to.eql(true)
+ expect(matchedComponents[0].components.hasOwnProperty('UserCard')).to.eql(true)
})
it('user\'s profile at /users', () => {
@@ -32,6 +32,6 @@ describe('routes', () => {
const matchedComponents = router.getMatchedComponents()
- expect(matchedComponents[0].components.hasOwnProperty('UserCardContent')).to.eql(true)
+ expect(matchedComponents[0].components.hasOwnProperty('UserCard')).to.eql(true)
})
})
diff --git a/test/unit/specs/modules/statuses.spec.js b/test/unit/specs/modules/statuses.spec.js
index 01d2ce06..0bbcb25a 100644
--- a/test/unit/specs/modules/statuses.spec.js
+++ b/test/unit/specs/modules/statuses.spec.js
@@ -1,4 +1,3 @@
-import { cloneDeep } from 'lodash'
import { defaultState, mutations, prepareStatus } from '../../../../src/modules/statuses.js'
// eslint-disable-next-line camelcase
@@ -15,244 +14,264 @@ const makeMockStatus = ({id, text, type = 'status'}) => {
}
}
-describe('Statuses.prepareStatus', () => {
- it('sets deleted flag to false', () => {
- const aStatus = makeMockStatus({id: '1', text: 'Hello oniichan'})
- expect(prepareStatus(aStatus).deleted).to.eq(false)
- })
-})
-
-describe('The Statuses module', () => {
- it('adds the status to allStatuses and to the given timeline', () => {
- const state = cloneDeep(defaultState)
- const status = makeMockStatus({id: '1'})
-
- mutations.addNewStatuses(state, { statuses: [status], timeline: 'public' })
-
- expect(state.allStatuses).to.eql([status])
- expect(state.timelines.public.statuses).to.eql([status])
- expect(state.timelines.public.visibleStatuses).to.eql([])
- expect(state.timelines.public.newStatusCount).to.equal(1)
+describe('Statuses module', () => {
+ describe('prepareStatus', () => {
+ it('sets deleted flag to false', () => {
+ const aStatus = makeMockStatus({id: '1', text: 'Hello oniichan'})
+ expect(prepareStatus(aStatus).deleted).to.eq(false)
+ })
})
- it('counts the status as new if it has not been seen on this timeline', () => {
- const state = cloneDeep(defaultState)
- const status = makeMockStatus({id: '1'})
+ describe('addNewStatuses', () => {
+ it('adds the status to allStatuses and to the given timeline', () => {
+ const state = defaultState()
+ const status = makeMockStatus({id: '1'})
- mutations.addNewStatuses(state, { statuses: [status], timeline: 'public' })
- mutations.addNewStatuses(state, { statuses: [status], timeline: 'friends' })
+ mutations.addNewStatuses(state, { statuses: [status], timeline: 'public' })
- expect(state.allStatuses).to.eql([status])
- expect(state.timelines.public.statuses).to.eql([status])
- expect(state.timelines.public.visibleStatuses).to.eql([])
- expect(state.timelines.public.newStatusCount).to.equal(1)
+ expect(state.allStatuses).to.eql([status])
+ expect(state.timelines.public.statuses).to.eql([status])
+ expect(state.timelines.public.visibleStatuses).to.eql([])
+ expect(state.timelines.public.newStatusCount).to.equal(1)
+ })
- expect(state.allStatuses).to.eql([status])
- expect(state.timelines.friends.statuses).to.eql([status])
- expect(state.timelines.friends.visibleStatuses).to.eql([])
- expect(state.timelines.friends.newStatusCount).to.equal(1)
+ it('counts the status as new if it has not been seen on this timeline', () => {
+ const state = defaultState()
+ const status = makeMockStatus({id: '1'})
+
+ mutations.addNewStatuses(state, { statuses: [status], timeline: 'public' })
+ mutations.addNewStatuses(state, { statuses: [status], timeline: 'friends' })
+
+ expect(state.allStatuses).to.eql([status])
+ expect(state.timelines.public.statuses).to.eql([status])
+ expect(state.timelines.public.visibleStatuses).to.eql([])
+ expect(state.timelines.public.newStatusCount).to.equal(1)
+
+ expect(state.allStatuses).to.eql([status])
+ expect(state.timelines.friends.statuses).to.eql([status])
+ expect(state.timelines.friends.visibleStatuses).to.eql([])
+ expect(state.timelines.friends.newStatusCount).to.equal(1)
+ })
+
+ it('add the statuses to allStatuses if no timeline is given', () => {
+ const state = defaultState()
+ const status = makeMockStatus({id: '1'})
+
+ mutations.addNewStatuses(state, { statuses: [status] })
+
+ expect(state.allStatuses).to.eql([status])
+ expect(state.timelines.public.statuses).to.eql([])
+ expect(state.timelines.public.visibleStatuses).to.eql([])
+ expect(state.timelines.public.newStatusCount).to.equal(0)
+ })
+
+ it('adds the status to allStatuses and to the given timeline, directly visible', () => {
+ const state = defaultState()
+ const status = makeMockStatus({id: '1'})
+
+ mutations.addNewStatuses(state, { statuses: [status], showImmediately: true, timeline: 'public' })
+
+ expect(state.allStatuses).to.eql([status])
+ expect(state.timelines.public.statuses).to.eql([status])
+ expect(state.timelines.public.visibleStatuses).to.eql([status])
+ expect(state.timelines.public.newStatusCount).to.equal(0)
+ })
+
+ it('removes statuses by tag on deletion', () => {
+ const state = defaultState()
+ const status = makeMockStatus({id: '1'})
+ const otherStatus = makeMockStatus({id: '3'})
+ status.uri = 'xxx'
+ const deletion = makeMockStatus({id: '2', type: 'deletion'})
+ deletion.text = 'Dolus deleted notice {{tag:gs.smuglo.li,2016-11-18:noticeId=1038007:objectType=note}}.'
+ deletion.uri = 'xxx'
+
+ mutations.addNewStatuses(state, { statuses: [status, otherStatus], showImmediately: true, timeline: 'public' })
+ mutations.addNewStatuses(state, { statuses: [deletion], showImmediately: true, timeline: 'public' })
+
+ expect(state.allStatuses).to.eql([otherStatus])
+ expect(state.timelines.public.statuses).to.eql([otherStatus])
+ expect(state.timelines.public.visibleStatuses).to.eql([otherStatus])
+ expect(state.timelines.public.maxId).to.eql('3')
+ })
+
+ it('does not update the maxId when the noIdUpdate flag is set', () => {
+ const state = defaultState()
+ const status = makeMockStatus({id: '1'})
+ const secondStatus = makeMockStatus({id: '2'})
+
+ mutations.addNewStatuses(state, { statuses: [status], showImmediately: true, timeline: 'public' })
+ expect(state.timelines.public.maxId).to.eql('1')
+
+ mutations.addNewStatuses(state, { statuses: [secondStatus], showImmediately: true, timeline: 'public', noIdUpdate: true })
+ expect(state.timelines.public.statuses).to.eql([secondStatus, status])
+ expect(state.timelines.public.visibleStatuses).to.eql([secondStatus, status])
+ expect(state.timelines.public.maxId).to.eql('1')
+ })
+
+ it('keeps a descending by id order in timeline.visibleStatuses and timeline.statuses', () => {
+ const state = defaultState()
+ const nonVisibleStatus = makeMockStatus({id: '1'})
+ const status = makeMockStatus({id: '3'})
+ const statusTwo = makeMockStatus({id: '2'})
+ const statusThree = makeMockStatus({id: '4'})
+
+ mutations.addNewStatuses(state, { statuses: [nonVisibleStatus], showImmediately: false, timeline: 'public' })
+
+ mutations.addNewStatuses(state, { statuses: [status], showImmediately: true, timeline: 'public' })
+ mutations.addNewStatuses(state, { statuses: [statusTwo], showImmediately: true, timeline: 'public' })
+
+ expect(state.timelines.public.minVisibleId).to.equal('2')
+
+ mutations.addNewStatuses(state, { statuses: [statusThree], showImmediately: true, timeline: 'public' })
+
+ expect(state.timelines.public.statuses).to.eql([statusThree, status, statusTwo, nonVisibleStatus])
+ expect(state.timelines.public.visibleStatuses).to.eql([statusThree, status, statusTwo])
+ })
+
+ it('splits retweets from their status and links them', () => {
+ const state = defaultState()
+ const status = makeMockStatus({id: '1'})
+ const retweet = makeMockStatus({id: '2', type: 'retweet'})
+ const modStatus = makeMockStatus({id: '1', text: 'something else'})
+
+ retweet.retweeted_status = status
+
+ // It adds both statuses, but only the retweet to visible.
+ mutations.addNewStatuses(state, { statuses: [retweet], timeline: 'public', showImmediately: true })
+ expect(state.timelines.public.visibleStatuses).to.have.length(1)
+ expect(state.timelines.public.statuses).to.have.length(1)
+ expect(state.allStatuses).to.have.length(2)
+ expect(state.allStatuses[0].id).to.equal('1')
+ expect(state.allStatuses[1].id).to.equal('2')
+
+ // It refers to the modified status.
+ mutations.addNewStatuses(state, { statuses: [modStatus], timeline: 'public' })
+ expect(state.allStatuses).to.have.length(2)
+ expect(state.allStatuses[0].id).to.equal('1')
+ expect(state.allStatuses[0].text).to.equal(modStatus.text)
+ expect(state.allStatuses[1].id).to.equal('2')
+ expect(retweet.retweeted_status.text).to.eql(modStatus.text)
+ })
+
+ it('replaces existing statuses with the same id', () => {
+ const state = defaultState()
+ const status = makeMockStatus({id: '1'})
+ const modStatus = makeMockStatus({id: '1', text: 'something else'})
+
+ // Add original status
+ mutations.addNewStatuses(state, { statuses: [status], showImmediately: true, timeline: 'public' })
+ expect(state.timelines.public.visibleStatuses).to.have.length(1)
+ expect(state.allStatuses).to.have.length(1)
+
+ // Add new version of status
+ mutations.addNewStatuses(state, { statuses: [modStatus], showImmediately: true, timeline: 'public' })
+ expect(state.timelines.public.visibleStatuses).to.have.length(1)
+ expect(state.allStatuses).to.have.length(1)
+ expect(state.allStatuses[0].text).to.eql(modStatus.text)
+ })
+
+ it('replaces existing statuses with the same id, coming from a retweet', () => {
+ const state = defaultState()
+ const status = makeMockStatus({id: '1'})
+ const modStatus = makeMockStatus({id: '1', text: 'something else'})
+ const retweet = makeMockStatus({id: '2', type: 'retweet'})
+ retweet.retweeted_status = modStatus
+
+ // Add original status
+ mutations.addNewStatuses(state, { statuses: [status], showImmediately: true, timeline: 'public' })
+ expect(state.timelines.public.visibleStatuses).to.have.length(1)
+ expect(state.allStatuses).to.have.length(1)
+
+ // Add new version of status
+ mutations.addNewStatuses(state, { statuses: [retweet], showImmediately: false, timeline: 'public' })
+ expect(state.timelines.public.visibleStatuses).to.have.length(1)
+ // Don't add the retweet itself if the tweet is visible
+ expect(state.timelines.public.statuses).to.have.length(1)
+ expect(state.allStatuses).to.have.length(2)
+ expect(state.allStatuses[0].text).to.eql(modStatus.text)
+ })
+
+ it('handles favorite actions', () => {
+ const state = defaultState()
+ const status = makeMockStatus({id: '1'})
+
+ const favorite = {
+ id: '2',
+ type: 'favorite',
+ in_reply_to_status_id: '1', // The API uses strings here...
+ uri: 'tag:shitposter.club,2016-08-21:fave:3895:note:773501:2016-08-21T16:52:15+00:00',
+ text: 'a favorited something by b',
+ user: { id: '99' }
+ }
+
+ mutations.addNewStatuses(state, { statuses: [status], showImmediately: true, timeline: 'public' })
+ mutations.addNewStatuses(state, { statuses: [favorite], showImmediately: true, timeline: 'public' })
+
+ expect(state.timelines.public.visibleStatuses.length).to.eql(1)
+ expect(state.timelines.public.visibleStatuses[0].fave_num).to.eql(1)
+ expect(state.timelines.public.maxId).to.eq(favorite.id)
+
+ // Adding it again does nothing
+ mutations.addNewStatuses(state, { statuses: [favorite], showImmediately: true, timeline: 'public' })
+
+ expect(state.timelines.public.visibleStatuses.length).to.eql(1)
+ expect(state.timelines.public.visibleStatuses[0].fave_num).to.eql(1)
+ expect(state.timelines.public.maxId).to.eq(favorite.id)
+
+ // If something is favorited by the current user, it also sets the 'favorited' property but does not increment counter to avoid over-counting. Counter is incremented (updated, really) via response to the favorite request.
+ const user = {
+ id: '1'
+ }
+
+ const ownFavorite = {
+ id: '3',
+ type: 'favorite',
+ in_reply_to_status_id: '1', // The API uses strings here...
+ uri: 'tag:shitposter.club,2016-08-21:fave:3895:note:773501:2016-08-21T16:52:15+00:00',
+ text: 'a favorited something by b',
+ user
+ }
+
+ mutations.addNewStatuses(state, { statuses: [ownFavorite], showImmediately: true, timeline: 'public', user })
+
+ expect(state.timelines.public.visibleStatuses.length).to.eql(1)
+ expect(state.timelines.public.visibleStatuses[0].fave_num).to.eql(1)
+ expect(state.timelines.public.visibleStatuses[0].favorited).to.eql(true)
+ })
})
- it('add the statuses to allStatuses if no timeline is given', () => {
- const state = cloneDeep(defaultState)
- const status = makeMockStatus({id: '1'})
+ describe('showNewStatuses', () => {
+ it('resets the minId to the min of the visible statuses when adding new to visible statuses', () => {
+ const state = defaultState()
+ const status = makeMockStatus({ id: '10' })
+ mutations.addNewStatuses(state, { statuses: [status], showImmediately: true, timeline: 'public' })
+ const newStatus = makeMockStatus({ id: '20' })
+ mutations.addNewStatuses(state, { statuses: [newStatus], showImmediately: false, timeline: 'public' })
+ state.timelines.public.minId = '5'
+ mutations.showNewStatuses(state, { timeline: 'public' })
- mutations.addNewStatuses(state, { statuses: [status] })
-
- expect(state.allStatuses).to.eql([status])
- expect(state.timelines.public.statuses).to.eql([])
- expect(state.timelines.public.visibleStatuses).to.eql([])
- expect(state.timelines.public.newStatusCount).to.equal(0)
+ expect(state.timelines.public.visibleStatuses.length).to.eql(2)
+ expect(state.timelines.public.minVisibleId).to.eql('10')
+ expect(state.timelines.public.minId).to.eql('10')
+ })
})
- it('adds the status to allStatuses and to the given timeline, directly visible', () => {
- const state = cloneDeep(defaultState)
- const status = makeMockStatus({id: '1'})
+ describe('clearTimeline', () => {
+ it('keeps userId when clearing user timeline', () => {
+ const state = defaultState()
+ state.timelines.user.userId = 123
- mutations.addNewStatuses(state, { statuses: [status], showImmediately: true, timeline: 'public' })
+ mutations.clearTimeline(state, { timeline: 'user' })
- expect(state.allStatuses).to.eql([status])
- expect(state.timelines.public.statuses).to.eql([status])
- expect(state.timelines.public.visibleStatuses).to.eql([status])
- expect(state.timelines.public.newStatusCount).to.equal(0)
- })
-
- it('removes statuses by tag on deletion', () => {
- const state = cloneDeep(defaultState)
- const status = makeMockStatus({id: '1'})
- const otherStatus = makeMockStatus({id: '3'})
- status.uri = 'xxx'
- const deletion = makeMockStatus({id: '2', type: 'deletion'})
- deletion.text = 'Dolus deleted notice {{tag:gs.smuglo.li,2016-11-18:noticeId=1038007:objectType=note}}.'
- deletion.uri = 'xxx'
-
- mutations.addNewStatuses(state, { statuses: [status, otherStatus], showImmediately: true, timeline: 'public' })
- mutations.addNewStatuses(state, { statuses: [deletion], showImmediately: true, timeline: 'public' })
-
- expect(state.allStatuses).to.eql([otherStatus])
- expect(state.timelines.public.statuses).to.eql([otherStatus])
- expect(state.timelines.public.visibleStatuses).to.eql([otherStatus])
- expect(state.timelines.public.maxId).to.eql('3')
- })
-
- it('does not update the maxId when the noIdUpdate flag is set', () => {
- const state = cloneDeep(defaultState)
- const status = makeMockStatus({id: '1'})
- const secondStatus = makeMockStatus({id: '2'})
-
- mutations.addNewStatuses(state, { statuses: [status], showImmediately: true, timeline: 'public' })
- expect(state.timelines.public.maxId).to.eql('1')
-
- mutations.addNewStatuses(state, { statuses: [secondStatus], showImmediately: true, timeline: 'public', noIdUpdate: true })
- expect(state.timelines.public.statuses).to.eql([secondStatus, status])
- expect(state.timelines.public.visibleStatuses).to.eql([secondStatus, status])
- expect(state.timelines.public.maxId).to.eql('1')
- })
-
- it('keeps a descending by id order in timeline.visibleStatuses and timeline.statuses', () => {
- const state = cloneDeep(defaultState)
- const nonVisibleStatus = makeMockStatus({id: '1'})
- const status = makeMockStatus({id: '3'})
- const statusTwo = makeMockStatus({id: '2'})
- const statusThree = makeMockStatus({id: '4'})
-
- mutations.addNewStatuses(state, { statuses: [nonVisibleStatus], showImmediately: false, timeline: 'public' })
-
- mutations.addNewStatuses(state, { statuses: [status], showImmediately: true, timeline: 'public' })
- mutations.addNewStatuses(state, { statuses: [statusTwo], showImmediately: true, timeline: 'public' })
-
- expect(state.timelines.public.minVisibleId).to.equal('2')
-
- mutations.addNewStatuses(state, { statuses: [statusThree], showImmediately: true, timeline: 'public' })
-
- expect(state.timelines.public.statuses).to.eql([statusThree, status, statusTwo, nonVisibleStatus])
- expect(state.timelines.public.visibleStatuses).to.eql([statusThree, status, statusTwo])
- })
-
- it('splits retweets from their status and links them', () => {
- const state = cloneDeep(defaultState)
- const status = makeMockStatus({id: '1'})
- const retweet = makeMockStatus({id: '2', type: 'retweet'})
- const modStatus = makeMockStatus({id: '1', text: 'something else'})
-
- retweet.retweeted_status = status
-
- // It adds both statuses, but only the retweet to visible.
- mutations.addNewStatuses(state, { statuses: [retweet], timeline: 'public', showImmediately: true })
- expect(state.timelines.public.visibleStatuses).to.have.length(1)
- expect(state.timelines.public.statuses).to.have.length(1)
- expect(state.allStatuses).to.have.length(2)
- expect(state.allStatuses[0].id).to.equal('1')
- expect(state.allStatuses[1].id).to.equal('2')
-
- // It refers to the modified status.
- mutations.addNewStatuses(state, { statuses: [modStatus], timeline: 'public' })
- expect(state.allStatuses).to.have.length(2)
- expect(state.allStatuses[0].id).to.equal('1')
- expect(state.allStatuses[0].text).to.equal(modStatus.text)
- expect(state.allStatuses[1].id).to.equal('2')
- expect(retweet.retweeted_status.text).to.eql(modStatus.text)
- })
-
- it('replaces existing statuses with the same id', () => {
- const state = cloneDeep(defaultState)
- const status = makeMockStatus({id: '1'})
- const modStatus = makeMockStatus({id: '1', text: 'something else'})
-
- // Add original status
- mutations.addNewStatuses(state, { statuses: [status], showImmediately: true, timeline: 'public' })
- expect(state.timelines.public.visibleStatuses).to.have.length(1)
- expect(state.allStatuses).to.have.length(1)
-
- // Add new version of status
- mutations.addNewStatuses(state, { statuses: [modStatus], showImmediately: true, timeline: 'public' })
- expect(state.timelines.public.visibleStatuses).to.have.length(1)
- expect(state.allStatuses).to.have.length(1)
- expect(state.allStatuses[0].text).to.eql(modStatus.text)
- })
-
- it('replaces existing statuses with the same id, coming from a retweet', () => {
- const state = cloneDeep(defaultState)
- const status = makeMockStatus({id: '1'})
- const modStatus = makeMockStatus({id: '1', text: 'something else'})
- const retweet = makeMockStatus({id: '2', type: 'retweet'})
- retweet.retweeted_status = modStatus
-
- // Add original status
- mutations.addNewStatuses(state, { statuses: [status], showImmediately: true, timeline: 'public' })
- expect(state.timelines.public.visibleStatuses).to.have.length(1)
- expect(state.allStatuses).to.have.length(1)
-
- // Add new version of status
- mutations.addNewStatuses(state, { statuses: [retweet], showImmediately: false, timeline: 'public' })
- expect(state.timelines.public.visibleStatuses).to.have.length(1)
- // Don't add the retweet itself if the tweet is visible
- expect(state.timelines.public.statuses).to.have.length(1)
- expect(state.allStatuses).to.have.length(2)
- expect(state.allStatuses[0].text).to.eql(modStatus.text)
- })
-
- it('handles favorite actions', () => {
- const state = cloneDeep(defaultState)
- const status = makeMockStatus({id: '1'})
-
- const favorite = {
- id: '2',
- type: 'favorite',
- in_reply_to_status_id: '1', // The API uses strings here...
- uri: 'tag:shitposter.club,2016-08-21:fave:3895:note:773501:2016-08-21T16:52:15+00:00',
- text: 'a favorited something by b',
- user: { id: '99' }
- }
-
- mutations.addNewStatuses(state, { statuses: [status], showImmediately: true, timeline: 'public' })
- mutations.addNewStatuses(state, { statuses: [favorite], showImmediately: true, timeline: 'public' })
-
- expect(state.timelines.public.visibleStatuses.length).to.eql(1)
- expect(state.timelines.public.visibleStatuses[0].fave_num).to.eql(1)
- expect(state.timelines.public.maxId).to.eq(favorite.id)
-
- // Adding it again does nothing
- mutations.addNewStatuses(state, { statuses: [favorite], showImmediately: true, timeline: 'public' })
-
- expect(state.timelines.public.visibleStatuses.length).to.eql(1)
- expect(state.timelines.public.visibleStatuses[0].fave_num).to.eql(1)
- expect(state.timelines.public.maxId).to.eq(favorite.id)
-
- // If something is favorited by the current user, it also sets the 'favorited' property but does not increment counter to avoid over-counting. Counter is incremented (updated, really) via response to the favorite request.
- const user = {
- id: '1'
- }
-
- const ownFavorite = {
- id: '3',
- type: 'favorite',
- in_reply_to_status_id: '1', // The API uses strings here...
- uri: 'tag:shitposter.club,2016-08-21:fave:3895:note:773501:2016-08-21T16:52:15+00:00',
- text: 'a favorited something by b',
- user
- }
-
- mutations.addNewStatuses(state, { statuses: [ownFavorite], showImmediately: true, timeline: 'public', user })
-
- expect(state.timelines.public.visibleStatuses.length).to.eql(1)
- expect(state.timelines.public.visibleStatuses[0].fave_num).to.eql(1)
- expect(state.timelines.public.visibleStatuses[0].favorited).to.eql(true)
- })
-
- it('keeps userId when clearing user timeline', () => {
- const state = cloneDeep(defaultState)
- state.timelines.user.userId = 123
-
- mutations.clearTimeline(state, { timeline: 'user' })
-
- expect(state.timelines.user.userId).to.eql(123)
+ expect(state.timelines.user.userId).to.eql(123)
+ })
})
describe('notifications', () => {
it('removes a notification when the notice gets removed', () => {
const user = { id: '1' }
- const state = cloneDeep(defaultState)
+ const state = defaultState()
const status = makeMockStatus({id: '1'})
const otherStatus = makeMockStatus({id: '3'})
const mentionedStatus = makeMockStatus({id: '2'})