Commit Graph

1999 Commits

Author SHA1 Message Date
Pavel Djundik
c33326e25e Update client/components/MessageTypes/whois.vue 2019-02-12 12:49:06 +02:00
Pavel Djundik
89355e50c3 Put unreads and highlights in aria-label/title in the channel list 2019-02-12 12:49:06 +02:00
Pavel Djundik
759e69ed07 Handle default preview state after loading 2019-02-12 12:49:06 +02:00
Pavel Djundik
42717e3dec Enable preserveWhitespace: false, add spaces where needed, fix whitespace when copying text 2019-02-12 12:49:06 +02:00
Pavel Djundik
5f0f745d10 Only send /join for current channel if there are no arguments 2019-02-12 12:49:06 +02:00
Pavel Djundik
7ba14fe4e3 Explicitly place * on actions in DOM 2019-02-12 12:49:06 +02:00
Pavel Djundik
99cda335ab Fix next/prev buttons in media viewer 2019-02-12 12:49:06 +02:00
Pavel Djundik
00b84d31f5 Fix whitespace in previews 2019-02-12 12:49:06 +02:00
Pavel Djundik
6d1d2e006a Remove extra .text span as its no longer needed 2019-02-12 12:49:06 +02:00
Pavel Djundik
4d400b6ace Hide scroll down button entirely with css to fix some issues 2019-02-12 12:49:06 +02:00
Pavel Djundik
e5b3c518e2 Do not show toggle arrow if link data is still loading 2019-02-12 12:49:06 +02:00
Pavel Djundik
05303e4cf1 Fix link expand buttons not showing if auto-expand option is off 2019-02-12 12:49:05 +02:00
Pavel Djundik
7d7005c8af Fix keepScrollPosition on condensed messages 2019-02-12 12:49:05 +02:00
Pavel Djundik
893d59e7c4 Skip scroll event which is called after setting scrollTop 2019-02-12 12:49:05 +02:00
Pavel Djundik
4a0f319e91 Ignore server unread sync for active channel 2019-02-12 12:49:05 +02:00
Pavel Djundik
3c4a9efe7e Fix lodash not being tree shaked properly 2019-02-12 12:49:05 +02:00
Pavel Djundik
def494533b Use native date constructor to calculate timeout until midnight 2019-02-12 12:49:05 +02:00
Pavel Djundik
5ba0e33fb9 Skip network status updates for quit networks 2019-02-12 12:49:05 +02:00
Pavel Djundik
f1994352bd Fix scroll button on iOS 2019-02-12 12:49:05 +02:00
Richard Lewis
caf728a2a7 Instrument tests with nyc instead of istanbul-instrumenter-loader. 2019-02-12 12:49:05 +02:00
Pavel Djundik
446ad6a5f4 Allow Vue devtools in production 2019-02-12 12:49:05 +02:00
Pavel Djundik
7b3f7d1c59 Fix clicking red banner not hiding the error 2019-02-12 12:49:05 +02:00
Pavel Djundik
b3e86dbab4 Fix unread markers not rendering with hidden status messages
Co-Authored-By: Richard Lewis <richrd@users.noreply.github.com>
2019-02-12 12:49:05 +02:00
Pavel Djundik
395be41728 Move message time formatting to Vue as computed 2019-02-12 12:49:05 +02:00
Richard Lewis
74edfcaa04 Limit input history to a 100 entries. 2019-02-12 12:49:05 +02:00
Pavel Djundik
d1185da9eb Fade buttons when disabled 2019-02-12 12:49:05 +02:00
Richard Lewis
cd76512619 Disable upload button instead of removing it from dom. 2019-02-12 12:49:05 +02:00
Pavel Djundik
dd686b563d Remove tests, fix lint, update packages 2019-02-12 12:49:05 +02:00
Richard Lewis
cc895e67ee Move date formatting to DateMarker and stop listening to daychange when no longer necessary. 2019-02-12 12:49:05 +02:00
Richard Lewis
7394e6b9f1 Update date markers vith vue instead of jQuery. 2019-02-12 12:49:05 +02:00
Pavel Djundik
7b15c53ed4 Rename some vue variables 2019-02-12 12:49:05 +02:00
Pavel Djundik
f526aa8b8b Do not navigate history when autocompleting 2019-02-12 12:49:05 +02:00
Pavel Djundik
4c103b467b Implement input history per channel 2019-02-12 12:49:05 +02:00
Pavel Djundik
b6e07a43f5 Make a consistent single funciton for updating notified/favicon/title 2019-02-12 12:49:05 +02:00
Pavel Djundik
4f3dbc4b8f Fix up how span elements are generated in message parser 2019-02-12 12:49:05 +02:00
Pavel Djundik
c3a1c77447 Rebase image uploading to Vue 2019-02-12 12:49:05 +02:00
Pavel Djundik
5c69fe104d Keep scroll to bottom and check 'more' button previews when toggling sidebars 2019-02-12 12:49:05 +02:00
Pavel Djundik
f45f9a83ee Remove unnecessary resize handler 2019-02-12 12:49:05 +02:00
Richard Lewis
32776f0642 Improve more button implementation and fix lint. 2019-02-12 12:49:04 +02:00
Richard Lewis
8dff4a9478 Only show more button on link previews when needed. 2019-02-12 12:49:04 +02:00
Pavel Djundik
26dc37033c Make connection-error a vue state 2019-02-12 12:49:04 +02:00
Pavel Djundik
e2c65fd0de Fix titles on emojis 2019-02-12 12:49:04 +02:00
Pavel Djundik
5d4400ef90 Revert "Remove draggable for now"
This reverts commit f4c0a68fde99471bd546902ec2b9301ff6cec73a.
2019-02-12 12:49:04 +02:00
Pavel Djundik
a8cad55fda Fix input to behave better on Android 2019-02-12 12:48:45 +02:00
Pavel Djundik
140c14959c Fix user search not updating instantly on Android 2019-02-12 12:48:45 +02:00
Pavel Djundik
7c8441a93b Clear user lists on all channels when disconnected from network 2019-02-12 12:48:45 +02:00
Pavel Djundik
839b07fdc2 Do not disable input when disconnected 2019-02-12 12:48:45 +02:00
Pavel Djundik
1d4ab8fff1 Fix autocompletion menu not closing on send 2019-02-12 12:48:45 +02:00
Pavel Djundik
6877199515 Update eslint-plugin-vue 2019-02-12 12:48:45 +02:00
Pavel Djundik
bd57c6d620 Fix history not loading on channel switch 2019-02-12 12:48:45 +02:00
Pavel Djundik
fea6fff13a Keep scroll position on preview toggle 2019-02-12 12:48:45 +02:00
Pavel Djundik
e91f2aa024 Fix unread markers in condensed messages 2019-02-12 12:48:45 +02:00
Pavel Djundik
2c5549a567 Find channel in joinchannel correctly 2019-02-12 12:48:45 +02:00
Pavel Djundik
a21e0e34cd Fix unread marker not showing after condensed messages 2019-02-12 12:48:45 +02:00
Pavel Djundik
853f67ab40 Synchornize channel state to the client 2019-02-12 12:48:44 +02:00
Pavel Djundik
f2cbd1efed Pass PREFIX and CHANTYPES to parser 2019-02-12 12:48:44 +02:00
Pavel Djundik
cebfa6ac84 A little cleanup 2019-02-12 12:48:44 +02:00
Pavel Djundik
104692007f Use attr() instead of data() 2019-02-12 12:48:44 +02:00
Pavel Djundik
ae56191b9f Fix scroll-down button position in non channels 2019-02-12 12:48:44 +02:00
Pavel Djundik
d55eb28aea Make special channel behaviour the same
Fixes scrolling and overflowing
2019-02-12 12:48:44 +02:00
Pavel Djundik
5452d26c17 Don't bother trying to count unreads 2019-02-12 12:48:44 +02:00
Pavel Djundik
a10ac4e7da Make a single function to initialize channel variables 2019-02-12 12:48:44 +02:00
Pavel Djundik
ad0f638487 Add jump-to-bottom arrow when scrolled up 2019-02-12 12:48:44 +02:00
Pavel Djundik
bc69ef5f0b Actually change message output based on statusMessage setting 2019-02-12 12:48:44 +02:00
Pavel Djundik
c168e15db8 Don't use trimEnd 2019-02-12 12:48:44 +02:00
Pavel Djundik
c70b4d4c80 Fix unread marker being off by one on the server 2019-02-12 12:48:44 +02:00
Pavel Djundik
0e7880a049 Fix autocompleting multiple times not working 2019-02-12 12:48:44 +02:00
Pavel Djundik
1bfaef1985 Keep pendingMessage on reconnect 2019-02-12 12:48:44 +02:00
Pavel Djundik
987f48ae13 Fix MOTD trimming 2019-02-12 12:48:44 +02:00
Pavel Djundik
0ba6200bb7 Keep scrolledToBottom on reconnect 2019-02-12 12:48:44 +02:00
Pavel Djundik
2303a02839 Reduce throttle delay 2019-02-12 12:48:44 +02:00
Pavel Djundik
d00c70f804 Fix some input issues on mobile 2019-02-12 12:48:44 +02:00
Pavel Djundik
86ddce974d Update lobby name correctly when editing network 2019-02-12 12:48:44 +02:00
Pavel Djundik
c42fc55c6f Fix reconnection state 2019-02-12 12:48:44 +02:00
Pavel Djundik
8580592a91 Cleaner MOTD text
Co-Authored-By: Jérémie Astori <astorije@users.noreply.github.com>
2019-02-12 12:48:44 +02:00
Pavel Djundik
04d86a3550 Fix channel sort not working 2019-02-12 12:48:44 +02:00
Pavel Djundik
a899b1b46d Throttle scroll event instead of debouncing 2019-02-12 12:48:44 +02:00
Pavel Djundik
36b6fdcc88 Reference scrolledToBottom variable instead of recalculating on message received 2019-02-12 12:48:44 +02:00
Pavel Djundik
efdf11dcae Reset scrolledToBottom when channel changes 2019-02-12 12:48:44 +02:00
Pavel Djundik
7e5e031ea8 Reset canDisplay on previews on destroy 2019-02-12 12:48:44 +02:00
Pavel Djundik
4b5252d285 Some scroll fixes 2019-02-12 12:48:44 +02:00
Richard Lewis
f4b4cfdee2 Make event listneres passive. 2019-02-12 12:48:44 +02:00
Richard Lewis
c9f5e06ee4 Keep scroll to bottom when resizing window. 2019-02-12 12:48:44 +02:00
Pavel Djundik
a15b10ca45 Revert slideout.js changes 2019-02-12 12:48:44 +02:00
Pavel Djundik
5d8a581201 Fix input not resizing back after sending a message 2019-02-12 12:48:44 +02:00
Pavel Djundik
8133805dec Allow shift+enter to insert new lines 2019-02-12 12:48:43 +02:00
Pavel Djundik
a0f42af0d8 Fix missed else-if 2019-02-12 12:48:43 +02:00
Pavel Djundik
bb0450cb31 Move history logic to MessageList, fix previews not keeping scroll 2019-02-12 12:48:43 +02:00
Pavel Djundik
9926157683 Resize input when typing 2019-02-12 12:48:43 +02:00
Pavel Djundik
8e130f0259 Fix incorrectly trimming channel 2019-02-12 12:48:43 +02:00
Pavel Djundik
9249464445 Fix condensed line being clickable 2019-02-12 12:48:43 +02:00
Pavel Djundik
797731262a Fix menu swiping 2019-02-12 12:48:43 +02:00
Pavel Djundik
d9206c1087 Check if element exists before trying to change message 2019-02-12 12:48:43 +02:00
Pavel Djundik
77947b46c8 Import ParsedMessage in back msg 2019-02-12 12:48:43 +02:00
Pavel Djundik
b88a186d05 Fix history not loading after trimming 2019-02-12 12:48:43 +02:00
Pavel Djundik
6a82114b62 Cleanup msg event 2019-02-12 12:48:43 +02:00
Pavel Djundik
3d43b96d5a Make network lobby a separate component 2019-02-12 12:48:43 +02:00
Pavel Djundik
8931570c02 Port join-channel completely to Vue 2019-02-12 12:48:43 +02:00
Pavel Djundik
80a12d98b4 Update topic in channel state 2019-02-12 12:48:43 +02:00
Pavel Djundik
e92f5d573b Remove extra invalid class on links in chat 2019-02-12 12:48:43 +02:00
Pavel Djundik
a8c777c797 Remove render.js 2019-02-12 12:48:43 +02:00
Pavel Djundik
825e3beba6 Show previews in actions 2019-02-12 12:48:43 +02:00
Pavel Djundik
499beb0257 Keep scroll position when scrolling up 2019-02-12 12:48:43 +02:00
Pavel Djundik
dbe95fcc13 Don't render preview until image is loaded 2019-02-12 12:48:43 +02:00
Pavel Djundik
b982623aaa Deduplicate and optimize 'keep to bottom' 2019-02-12 12:48:43 +02:00
Pavel Djundik
a5625ba203 Remove scroll code from more event 2019-02-12 12:48:43 +02:00
Pavel Djundik
a138237155 Remove expensive and unnecessary button check on channel switch 2019-02-12 12:48:43 +02:00
Pavel Djundik
ae692b1f2f Fix parsed message in actions 2019-02-12 12:48:43 +02:00
Pavel Djundik
e3ff385ae0 Remove HTML version of parse() 2019-02-12 12:48:43 +02:00
Pavel Djundik
d83dcc35e2 Port 'more' button in previews to Vue 2019-02-12 12:48:43 +02:00
Pavel Djundik
1cd28a5ccf Fix sending msg:preview:toggle to server 2019-02-12 12:48:43 +02:00
Pavel Djundik
2bb8287519 Render preview toggle in Vue 2019-02-12 12:48:43 +02:00
Pavel Djundik
ebfc6fa724 Create elements instead of using raw HTML 2019-02-12 12:48:43 +02:00
Pavel Djundik
ebda927bb1 Render toggle button after links 2019-02-12 12:48:43 +02:00
Pavel Djundik
5792bff49d Display previews as they come in; fix image viewer 2019-02-12 12:48:43 +02:00
Pavel Djundik
c6262a36e6 Fix tab completion not updating model 2019-02-12 12:48:43 +02:00
Pavel Djundik
c369f0fdb7 Some fixes with unread marker 2019-02-12 12:48:43 +02:00
Pavel Djundik
c84eee22f2 Fix duplicate messages on channel join 2019-02-12 12:48:43 +02:00
Pavel Djundik
771739cf94 Port ignore list to Vue 2019-02-12 12:48:42 +02:00
Pavel Djundik
739d44b561 Trim channel when switching away from it 2019-02-12 12:48:42 +02:00
Pavel Djundik
b963fe3cf0 Use vue's conditional classes 2019-02-12 12:48:42 +02:00
Pavel Djundik
d97356e65a Only bind mouseover on username if necessary 2019-02-12 12:48:42 +02:00
Pavel Djundik
48187a0260 Delete userlist.js 2019-02-12 12:48:42 +02:00
Richard Lewis
c431ac6306 Add hover selection to user list. 2019-02-12 12:48:42 +02:00
Richard Lewis
060097c118 Implement keyboard navigation in user list. 2019-02-12 12:48:42 +02:00
Pavel Djundik
30bdfe9d3f Hide 'show more history' button if there are no more messages 2019-02-12 12:48:42 +02:00
Pavel Djundik
0654a4373f Minor fix for previews 2019-02-12 12:48:42 +02:00
Pavel Djundik
2ab3518c52 Fix history not loading on channel switch 2019-02-12 12:48:42 +02:00
Pavel Djundik
207ab28b92 Some fixes with IntersectionObserver 2019-02-12 12:48:42 +02:00
Pavel Djundik
595915fefd Render link previews in Vue 2019-02-12 12:48:42 +02:00
Pavel Djundik
5f5b5fef3d Enable .js linter 2019-02-12 12:48:42 +02:00
Pavel Djundik
db803a8548 Port channel list to Vue 2019-02-12 12:48:42 +02:00
Pavel Djundik
96569e71a3 Some fixes 2019-02-12 12:48:42 +02:00
Pavel Djundik
121dd35c3b Port ban lists to Vue 2019-02-12 12:48:42 +02:00
Pavel Djundik
ee0413de4b Remove invalid v-elseif 2019-02-12 12:48:42 +02:00
Pavel Djundik
2d2c836a34 Remove user_name template 2019-02-12 12:48:42 +02:00
Pavel Djundik
aa1446c19d Some fixes for unread marker 2019-02-12 12:48:42 +02:00
Pavel Djundik
f9967a92c7 Remove console.log 2019-02-12 12:48:42 +02:00
Pavel Djundik
a54a726e93 Refactor client side commands
Co-Authored-By: Max Leiter <hello@maxleiter.com>
2019-02-12 12:48:42 +02:00
Pavel Djundik
0a774758b9 Fix double input submit 2019-02-12 12:48:42 +02:00
Pavel Djundik
084e01cf46 Implement message trimming 2019-02-12 12:48:42 +02:00
Pavel Djundik
f9d255b678 Passthrough input ref 2019-02-12 12:48:42 +02:00
Pavel Djundik
2e3b95b9ed Fix input keybinds 2019-02-12 12:48:42 +02:00
Pavel Djundik
dbe6df1ab6 Fix clipboard "fixes" 2019-02-12 12:48:42 +02:00
Pavel Djundik
1831e2e63e Fix inline channel links 2019-02-12 12:48:42 +02:00
Pavel Djundik
f0390dae63 Scroll to bottom 2019-02-12 12:48:42 +02:00
Pavel Djundik
eff6dcb514 Fix context menu opening wrong thing 2019-02-12 12:48:42 +02:00
Pavel Djundik
aea779cfdf Remove some unnecessary code 2019-02-12 12:48:42 +02:00
Pavel Djundik
8e64670b4e Keep condensed open when new messages arrive 2019-02-12 12:48:42 +02:00
Pavel Djundik
9ab5b9d791 Implement condensed messages in Vue 2019-02-12 12:48:42 +02:00
Pavel Djundik
6116edaa06 Remove msg_action.tpl 2019-02-12 12:48:41 +02:00
Pavel Djundik
0730825185 Convert message actions to Vue 2019-02-12 12:48:41 +02:00
Pavel Djundik
dee76adc0c Implement network collapsing in Vue 2019-02-12 12:48:41 +02:00
Pavel Djundik
e0e48925b5 Remove input history 2019-02-12 12:48:41 +02:00
Pavel Djundik
1e09ccdb90 Implement user search in vue 2019-02-12 12:48:41 +02:00
Pavel Djundik
c20af6329b Use input model 2019-02-12 12:48:41 +02:00
Pavel Djundik
a229138ca6 Add connected state 2019-02-12 12:48:41 +02:00
Pavel Djundik
3300276c27 Delete some files and undo server change 2019-02-12 12:48:41 +02:00
Pavel Djundik
7b209e5d31 Missed a setting 2019-02-12 12:48:41 +02:00
Pavel Djundik
e28e13bd10 Make class settings work (colored nicks, etc) 2019-02-12 12:48:41 +02:00
Pavel Djundik
9290264fa5 Make user list and message list components 2019-02-12 12:48:41 +02:00
Pavel Djundik
ebb63f2742 Fix sending messages 2019-02-12 12:48:41 +02:00
Pavel Djundik
09fa3e5c86 Fix autocompletion 2019-02-12 12:48:41 +02:00
Pavel Djundik
0e930c9356 Make history loading work 2019-02-12 12:48:41 +02:00
Pavel Djundik
25840dfef4 Single chat container (with buffered input), user list in vue 2019-02-12 12:48:41 +02:00
Pavel Djundik
1d2a11729f Render chat/messages in Vue (mostly broken) 2019-02-12 12:48:41 +02:00
Pavel Djundik
0b269423aa Remove remaining DOM references to badge/highlight 2019-02-12 12:48:41 +02:00
Pavel Djundik
631fd6138c Hide collapse button if there are no channels 2019-02-12 12:48:41 +02:00
Pavel Djundik
d4a23ffc98 Fix loading disappearing too soon 2019-02-12 12:48:41 +02:00
Pavel Djundik
7e332b817d Channel list rendering with Vue
Co-Authored-By: Tim Miller-Williams <timmw@users.noreply.github.com>
2019-02-12 12:48:41 +02:00
Pavel Djundik
77dc3086a0 Fix copying text in Firefox
Fixes #3035
2019-02-12 10:52:07 +02:00
Pavel Djundik
d33021773c Fix up textarea growing to avoid rounding issues in Chrome 2019-02-05 23:24:30 +02:00
Pavel Djundik
9003768d56 Fix up link insertion after uploads to be saner 2019-01-30 20:00:59 +02:00
Pavel Djundik
d260ee05da Fix line-height to match height in input 2019-01-26 10:34:12 +02:00
Jérémie Astori
69788a6b9b
Make sure the changelog page is selectable, e.g. for copy-pasting commands 2019-01-19 01:37:26 -05:00
Jérémie Astori
2b10cf203b
Fix casing of "Upload file" tooltip 2019-01-18 00:53:28 -05:00
Pavel Djundik
17115fa74d Fix highlight styles not applying to notices and actions 2019-01-16 13:29:45 +02:00
Pavel Djundik
eb648195de Fix .active styles incorrectly applying to hovered users in userlist
Fixes #2969
2019-01-15 12:56:26 +02:00
Pavel Djundik
cb59681cd9 Serve requests from cache when server responds with non 2xx response 2019-01-11 21:26:01 +02:00
Pavel Djundik
e033010841 Rename manifest.json to thelounge.webmanifest
This makes express serve it with correct content-type of application/manifest+json

Refs:
- https://w3c.github.io/manifest/#media-type-registration
- https://webhint.io/docs/user-guide/hints/hint-manifest-file-extension/
2018-11-13 13:33:25 +02:00
Pavel Djundik
5b40a6fb58
Merge pull request #2858 from thelounge/xpaw/limit-nick
Hard limit nicks to 100 characters, add maxlength on connect inputs
2018-10-20 23:08:20 +03:00
Pavel Djundik
8d5d9617ae Hard limit nicks to 100 characters, add maxlength on connect inputs 2018-10-20 14:10:26 +03:00
Pavel Djundik
bb6a9657a0 Fix touch position being null when touching with multiple fingers 2018-10-15 14:54:33 +03:00
Pavel Djundik
1d7ceda9d4 Bring back aria-label to fix broken code
Fixes #2837
Reverts 78f0e544db
Reverts d087c726e0
2018-10-10 10:50:52 +03:00
Jérémie Astori
b6c2b201eb
Merge pull request #2830 from thelounge/xpaw/fix-2829
Remove aria-label on channels in channel list
2018-10-08 00:26:03 -04:00
Jérémie Astori
01e7b88037
Merge pull request #2826 from thelounge/renovate/irc-framework-4.x
Update dependency irc-framework to v4
2018-10-06 10:46:19 -04:00
Pavel Djundik
78f0e544db Remove aria-label on channels in channel list
Fixes #2829
2018-10-06 13:31:42 +03:00
Pavel Djundik
d087c726e0 Put unread and highlight counts in aria-label in the channel list 2018-10-05 12:05:09 +03:00
Pavel Djundik
f3b67b773b whois.special is now an array 2018-10-05 10:24:20 +03:00
Pavel Djundik
aceffed61f Remove underline from textcomplete dropdown 2018-10-01 17:12:37 +03:00
Pavel Djundik
ecc1fdd799
Fix extra padding in condensed messages on mobile
Fixes #2797
2018-09-24 10:25:20 +03:00
Pavel Djundik
c62665f47b Add hover underline on preview expand button 2018-09-21 11:05:56 +03:00
Jérémie Astori
ed06040b8e
Merge pull request #2618 from thelounge/xpaw/underline
Enable underlines on links
2018-09-20 00:42:06 -04:00
William Boman
658dc5a3a2 fix automatically closing sidebar on some mobile viewports
Co-authored-by: Pavel Djundik <github@xpaw.me>

Mobile viewports whose width is equal to the upper boundary
of the mobile viewport breakpoint would not automatically
close the sidebar when selecting an item in it.

Closes #2783.
2018-09-19 09:37:03 +02:00
Pavel Djundik
45235ba7aa Enable underlines on links 2018-09-19 09:58:46 +03:00
Richard Lewis
e97c9ff265 Fix fullscreen mode for videos. I was unable to reproduce the border radius issue. 2018-09-13 20:04:19 +03:00
Jérémie Astori
69fa473c91
Merge pull request #2755 from thelounge/mcinkay/2470-transparent-icon
Replace normal icon with the transparent version
2018-09-07 01:37:26 -04:00
Alistair McKinlay
35c328b557 Add 3 commands that were missing on client autocomplete 2018-09-06 09:00:39 +01:00
Alistair McKinlay
d0605d33b8 Replace normal icon with the transparent version 2018-09-05 15:19:07 +01:00
Pavel Djundik
dce3fb229f
Remove incorrect closing tag 2018-09-03 10:47:51 +03:00