Compare commits

...

2309 Commits

Author SHA1 Message Date
Julian Lam
15ac9cb5c4 updated shrinkwrap file 2015-08-27 16:55:47 -04:00
Julian Lam
78d126a34e Merge remote-tracking branch 'origin/master' into v0.8.x 2015-08-27 16:52:34 -04:00
psychobunny
00eea65a70 up'd persona, welcome to 0.8.0 2015-08-27 16:51:21 -04:00
Julian Lam
85a609cae3 Merge branch 'master' into v0.8.x 2015-08-27 16:49:49 -04:00
barisusakli
e171b544e9 fix 404 title on api calls 2015-08-27 16:43:14 -04:00
psychobunny
dbc9c07b55 403 browser title 2015-08-27 16:34:01 -04:00
psychobunny
0eca875f6e add site title to 404, on cold load anyways 2015-08-27 16:30:43 -04:00
Julian Lam
141999a97c Merge remote-tracking branch 'origin/master' into v0.8.x 2015-08-27 16:20:25 -04:00
psychobunny
4b91d7ec3d req.route is not defined if you go to some bogus url 2015-08-27 16:18:55 -04:00
psychobunny
54ec105986 random attempt to fix bad dep check 2015-08-27 16:09:35 -04:00
Julian Lam
f11446e0bc added shrinkwrap file 2015-08-27 16:08:33 -04:00
psychobunny
8dbc7fdd9c up'd person 2015-08-27 15:56:49 -04:00
Julian Lam
dd7d2615dd latest translations 2015-08-27 15:57:00 -04:00
Julian Lam
3fcfa340ee updated plugin and theme dependency versions 2015-08-27 15:45:55 -04:00
barisusakli
6810b529c9 prevent infinite loop on topic scroll to bottom 2015-08-27 15:32:33 -04:00
psychobunny
822b45e193 Merge branch 'v0.8.x' 2015-08-27 15:29:26 -04:00
psychobunny
4b5f67eb4d use [[pages:home]] instead 2015-08-27 15:28:46 -04:00
psychobunny
5dae60faff closes #3502 2015-08-27 15:26:53 -04:00
psychobunny
61cc0ee597 /categories: og:title and <title> should be the same 2015-08-27 15:07:26 -04:00
psychobunny
53c8d54d57 upping themes 2015-08-27 14:59:22 -04:00
psychobunny
82d39753b7 hint 2015-08-27 14:53:53 -04:00
psychobunny
b10a7d4410 notifications/icon component 2015-08-27 14:52:39 -04:00
psychobunny
80218961aa Merge branch 'master' into v0.8.x 2015-08-27 14:28:12 -04:00
psychobunny
8cc91ea6e7 fix crash in middleware.renderHeader 2015-08-27 14:27:45 -04:00
psychobunny
b66a58dd52 user/status: don't touch the other classes
fixes that 2px thing @julianlam
2015-08-27 14:07:24 -04:00
psychobunny
b7c8d4e5af 0.8.0 2015-08-27 14:00:15 -04:00
psychobunny
541080777f Merge branch 'persona-2.1' into v0.8.x 2015-08-27 13:59:44 -04:00
psychobunny
25a419e458 Merge branch 'master' into v0.8.x 2015-08-27 13:59:12 -04:00
psychobunny
12015c1728 persona 2.1.4 2015-08-27 13:19:04 -04:00
psychobunny
d923fa3997 up'd persona 2015-08-27 12:46:06 -04:00
psychobunny
b5c7a34aa5 persona 2.1.1 2015-08-27 12:34:44 -04:00
psychobunny
54d996ca6a fixed user/logout component + vanilla 3.1.2 2015-08-27 12:24:58 -04:00
psychobunny
b19120f822 user/logout componen 2015-08-27 12:20:45 -04:00
psychobunny
e9a42cdecb fixed notifications on deskto 2015-08-27 11:48:08 -04:00
psychobunny
1947a4aea6 vanilla 3.1.0 2015-08-26 17:58:35 -04:00
psychobunny
71f144eb49 nbb 0.7.4 2015-08-26 17:53:23 -04:00
psychobunny
a44f467ebc Notifications.loadNotifications() 2015-08-26 17:52:36 -04:00
psychobunny
2301362f59 component="header/usercontrol"; also fixes user status bug 2015-08-26 17:12:34 -04:00
psychobunny
a663f95669 chats.loadChats() 2015-08-26 16:32:32 -04:00
psychobunny
63be875daa header/userpicture, header/profilelink, header/username components 2015-08-26 16:28:10 -04:00
psychobunny
2e33ae2742 Merge branch 'master' into persona-2.1 2015-08-26 16:25:57 -04:00
psychobunny
6e714a5344 Revert "header/userpicture, header/profilelink, header/username components"
This reverts commit d1effa65d0.
2015-08-26 16:25:05 -04:00
psychobunny
d1effa65d0 header/userpicture, header/profilelink, header/username components 2015-08-26 16:19:08 -04:00
psychobunny
306964b4ea chat/dropdown and chat/list component 2015-08-26 15:58:53 -04:00
barisusakli
0bf8b279de fix typo 2015-08-26 15:58:51 -04:00
barisusakli
5c19bf31c9 removed breaking change 2015-08-26 15:58:27 -04:00
barisusakli
eaefd9d24c remove meta/title.js and meta.title.build #3481 2015-08-26 15:55:00 -04:00
psychobunny
098c56a106 global:header.navigation 2015-08-26 15:38:09 -04:00
psychobunny
4aec30788c closes #3499 2015-08-26 15:08:48 -04:00
psychobunny
d75f5574e0 #3499 2015-08-26 15:06:16 -04:00
psychobunny
a217b42cb1 bonus two for #3481 - chats/username route 2015-08-26 14:09:22 -04:00
psychobunny
22fc257e36 bonus for #3481 - groups/group route 2015-08-26 14:06:53 -04:00
psychobunny
89b8622cfa other routes done, closes #3481 2015-08-26 13:56:28 -04:00
psychobunny
671f96f589 duplicate route removed: /users redirected to /users/online 2015-08-26 13:51:50 -04:00
psychobunny
0e0d8474a4 page titles for user pages #3481 2015-08-26 13:48:27 -04:00
psychobunny
51f05e3d22 persona 2.0.27 2015-08-26 13:38:59 -04:00
psychobunny
d96ef5264d upping persona 2015-08-26 12:28:30 -04:00
psychobunny
47a7347b54 better mobile support for appearance/themes and appearance/skins 2015-08-26 12:01:06 -04:00
psychobunny
0cb722b9fa prevent floating button from getting hidden behind other components 2015-08-26 11:56:18 -04:00
Julian Lam
92f9553033 Resolved transifex language issue 2015-08-26 11:21:55 -04:00
Julian Lam
e003fb38a3 Close #3497 2015-08-26 10:57:20 -04:00
barisusakli
d644542143 clearer text 2015-08-26 01:03:02 -04:00
barisusakli
958bb24d4e #3492 2015-08-25 23:50:41 -04:00
Julian Lam
ea9f5cbc61 adding in another deprecated hook to the warning list 2015-08-25 17:52:52 -04:00
Julian Lam
a1d5132777 Deprecated filter:user.delete hook
Please use static:user.delete instead.
2015-08-25 17:48:29 -04:00
psychobunny
6c44db9a0c closes #3490 2015-08-25 17:05:48 -04:00
psychobunny
8372b291e4 closes #3482 2015-08-25 16:41:09 -04:00
psychobunny
6edb920d6d closes #3488 2015-08-25 16:36:41 -04:00
psychobunny
cd7f9c7523 fix for disableCustomUserSkins 2015-08-25 16:27:58 -04:00
psychobunny
9323a37bd1 disableCustomUserSkins setting 2015-08-25 16:27:56 -04:00
barisusakli
5ef58d0434 up theme versions 2015-08-25 14:58:20 -04:00
barisusakli
3a3539aefb up composer version 2015-08-25 13:31:33 -04:00
barisusakli
cf36f7bc79 closes #3468 2015-08-25 13:29:44 -04:00
Julian Lam
edba11f388 If a plugin version is defined in package.json, suggest that as the latest version 2015-08-25 12:22:25 -04:00
Julian Lam
1772041b6e fixed invocation of clickdn in snackbar 2015-08-25 11:21:33 -04:00
psychobunny
7210ffdde9 only need to translate bootbox's footer 2015-08-24 17:43:42 -04:00
psychobunny
29859335a8 do md style dropdowns only on mobile @julianlam 2015-08-24 17:36:10 -04:00
psychobunny
3e1ddb1e2c for old people like @barisusakli 2015-08-24 17:30:44 -04:00
psychobunny
3145e75fc0 closes #3485 2015-08-24 17:16:29 -04:00
barisusakli
07d12e85ae closes https://github.com/NodeBB/nodebb-theme-persona/issues/124 2015-08-24 17:04:23 -04:00
barisusakli
c1ef884fce update password dep 2015-08-24 16:26:45 -04:00
barisusakli
6e23b3f258 update theme versions 2015-08-24 16:05:11 -04:00
barisusakli
5b3601994c Merge branch 'master' of https://github.com/NodeBB/NodeBB 2015-08-24 16:01:57 -04:00
barisusakli
def3e06ba3 closes #3483 2015-08-24 16:01:50 -04:00
psychobunny
19a3950928 don't blow up if no skin was selected 2015-08-24 16:01:35 -04:00
psychobunny
ae318c4286 fixed alignment on themes page 2015-08-24 15:29:38 -04:00
psychobunny
5a90de55d8 removed missing css file 2015-08-24 15:15:58 -04:00
Julian Lam
9289178a2e fixed incorrect label 2015-08-24 14:32:27 -04:00
Julian Lam
46af72336a updated ACP dropdown toggle so it's thicker 2015-08-24 13:52:13 -04:00
Julian Lam
a27c8f0321 Exposed package data for incompatible plugins to admin/plugins controller, #3480
ping @psychobunny
2015-08-24 13:41:25 -04:00
Julian Lam
902d11c6af Fix #3470 2015-08-24 11:34:09 -04:00
Julian Lam
7de782c78b Close #3476
Upgraded theme minimum versions, containing fixes for a "bug" where the container was a couple px too large due to a missing class.
2015-08-24 10:59:55 -04:00
Julian Lam
a682c98626 Merge pull request #3474 from FokkeZB/patch-5
Only use semver.satisfies on valid ranges
2015-08-24 09:58:02 -04:00
Fokke Zandbergen
36c27633b9 Only use semver.satisfies on valid ranges
So it doesn't alarm when you use a package straight from git e.g.
2015-08-24 15:22:08 +02:00
Barış Soner Uşaklı
1a6e576483 async 2015-08-23 22:16:48 -07:00
barisusakli
6ce6503970 mark register notif read when its rejected 2015-08-23 14:21:43 -04:00
barisusakli
db90d19b45 fix password confirm 2015-08-22 16:08:37 -04:00
barisusakli
2781939c50 Merge remote-tracking branch 'origin/master'
Conflicts:
	package.json
2015-08-22 15:17:37 -04:00
barisusakli
fc29028920 up persona 2015-08-22 15:16:34 -04:00
psychobunny
48cb671916 fixes #3465
temporary until stopforumspam supports ipv6
2015-08-22 12:50:55 -04:00
psychobunny
d1aaa9ca07 mobile fixes for homepage, languages, sounds 2015-08-22 12:39:52 -04:00
psychobunny
53ce7d48fa fixed padding issue on mobile acp 2015-08-22 12:36:42 -04:00
psychobunny
cd83dcf2e0 better styling for snackbar on mobile 2015-08-22 12:33:14 -04:00
psychobunny
7fa4057051 overrideTimeago only needs to be called once 2015-08-22 12:21:51 -04:00
psychobunny
0caa095ea4 closes #3457 2015-08-22 12:20:17 -04:00
psychobunny
12518e095f upping theme versions 2015-08-22 12:04:00 -04:00
psychobunny
36110db90c closes #3464 2015-08-22 12:03:34 -04:00
psychobunny
0cb8f2b80c closes #3463 2015-08-21 22:28:05 -04:00
psychobunny
6b054a6d14 new acp mobile menu, completed 2015-08-21 18:50:22 -04:00
psychobunny
cc299f89e2 mobile menu for ACP first pass 2015-08-21 18:40:59 -04:00
psychobunny
82429c10db slideout 2015-08-21 18:29:37 -04:00
psychobunny
1f9dbd3cf2 hamburger button 2015-08-21 18:26:44 -04:00
psychobunny
cb071f3772 md-like positioning for dropdown menu 2015-08-21 18:15:43 -04:00
psychobunny
acdfb87117 compact header on mobile 2015-08-21 18:15:32 -04:00
psychobunny
ea3fa0ff1d md snackbar for acp 2015-08-21 17:46:14 -04:00
psychobunny
a313bc69e2 fix alignment on checkboxes that are first in a form 2015-08-21 17:16:35 -04:00
Barış Soner Uşaklı
113a2aa398 composer 1.0.11 2015-08-21 14:16:29 -04:00
Barış Soner Uşaklı
76c0e33bcb filter links and children 2015-08-21 14:15:41 -04:00
Julian Lam
0e8482ebfe removing hash from url 2015-08-21 12:32:21 -04:00
Julian Lam
dbf8f5f70c Fix internal link to User Registration Settings from Registration Queue 2015-08-21 12:27:31 -04:00
psychobunny
28bd915a7b fixed settings pages 2015-08-21 12:22:48 -04:00
psychobunny
11e082989d fix route to admin/manage/registration page 2015-08-21 12:13:42 -04:00
Julian Lam
141174ac94 Fix ACP active state issue
Apparently, all this time, there was a bug that caused active
states to not properly be shown in subfolder installations. This
commit fixes that regression. ping @psychobunny
2015-08-21 10:53:47 -04:00
psychobunny
7420351eb7 Merge remote-tracking branch 'origin/master' 2015-08-21 10:36:08 -04:00
psychobunny
eb49898a9c mobile tweaks for settings pages 2015-08-21 10:35:55 -04:00
Julian Lam
5f9990299f Pass a notification path when a user follows another
When a user followed another, a notification is created, but with
no path, so on plugins like pushbullet, it would default to trying
to build a topic url, but the required values were null, leading to
a broken url.
2015-08-21 10:32:14 -04:00
psychobunny
fdb3046224 tablet mode fix 2015-08-21 10:24:16 -04:00
psychobunny
2317779a2b really basic mobile support, until we get a slideout menu in 2015-08-21 10:22:54 -04:00
psychobunny
cdc351bc02 fixed acp search 2015-08-21 10:11:19 -04:00
psychobunny
e4c9b379b2 customise - checkboxes 2015-08-21 10:01:13 -04:00
psychobunny
d9040f18e6 use branding for checkbox 2015-08-21 09:59:07 -04:00
psychobunny
c97631b060 settings checkboxes - webcrawler, tags, advanced 2015-08-21 09:53:33 -04:00
psychobunny
4bca984b67 settings/pagination checkbox 2015-08-20 23:42:02 -04:00
psychobunny
0fcdfe318a settings/post checkboxes 2015-08-20 23:41:31 -04:00
psychobunny
520351c3cc fixed race condition onload for settings (surprised nobody qq'd about this before) 2015-08-20 23:39:33 -04:00
psychobunny
fc858b7cbc settings/guest checkboxes 2015-08-20 23:38:23 -04:00
psychobunny
656476620e fix new checkboxes on ajaxify 2015-08-20 23:36:59 -04:00
psychobunny
bf7896a264 settings/group checkboxes 2015-08-20 23:31:09 -04:00
psychobunny
4d78f8a68d settings/user checkbox 2015-08-20 23:28:27 -04:00
psychobunny
980d44975a settings/email checkboxes 2015-08-20 23:24:39 -04:00
psychobunny
c38bf4bc6f settings/reputation checkboxes 2015-08-20 23:23:15 -04:00
psychobunny
5ede82e246 setting/general checkboxes 2015-08-20 23:22:19 -04:00
psychobunny
6dbd7cad84 done with this stupid checkbox experiment 2015-08-20 23:16:54 -04:00
psychobunny
f234f653f8 fix bug where menu items weren't clickable 2015-08-20 19:58:37 -04:00
psychobunny
0b683ff8dd search bar placement tweak 2015-08-20 19:55:18 -04:00
psychobunny
d091729de3 search bar and restart menu completed 2015-08-20 19:39:44 -04:00
psychobunny
98a10bba89 header dropdown menu 2015-08-20 19:12:34 -04:00
psychobunny
6b37ec74cc styled flags 2015-08-20 16:34:22 -04:00
psychobunny
cd38f2da9c moved registration queue to its own page; styled 2015-08-20 16:31:23 -04:00
psychobunny
d72ffb3078 added authentication section to settings/user 2015-08-20 16:25:37 -04:00
psychobunny
21e4a00f0e fix pill flicker on manage/users 2015-08-20 16:19:49 -04:00
psychobunny
52d05da725 manage/tags buttons 2015-08-20 16:17:07 -04:00
psychobunny
e7fe088720 navigation save button 2015-08-20 16:14:39 -04:00
psychobunny
2dd612bb19 styled general/homepage 2015-08-20 16:11:56 -04:00
psychobunny
52871fe746 custom css save button 2015-08-20 16:08:39 -04:00
psychobunny
3353fc8b0e Merge branch 'master' into acp-paper
Conflicts:
	package.json
2015-08-20 16:05:08 -04:00
psychobunny
1ce464c7c0 themes page, done 2015-08-20 16:04:33 -04:00
psychobunny
fd46b31d6e fixed selection of skins 2015-08-20 16:00:25 -04:00
barisusakli
67bf130e6a up widget essentials 2015-08-20 15:59:21 -04:00
barisusakli
7fbab5402a closes #3381 2015-08-20 15:56:47 -04:00
psychobunny
181bb9a6a7 theme selection buttons 2015-08-20 15:49:44 -04:00
psychobunny
88c466bf3f fixed theme selection 2015-08-20 15:38:45 -04:00
psychobunny
b62cf2ad14 fix selection of skins 2015-08-20 15:37:16 -04:00
psychobunny
867c09bab6 revert theme: default theme is now persona 2015-08-20 15:35:29 -04:00
psychobunny
1e2fb5cd4c undo button for skins and themes 2015-08-20 15:35:09 -04:00
psychobunny
9af6a122ff general/sonuds 2015-08-20 15:27:38 -04:00
psychobunny
86d1494467 general/languages 2015-08-20 15:24:48 -04:00
psychobunny
9dcaafdb1b widgets save button 2015-08-20 15:21:35 -04:00
psychobunny
dfa4f47289 save / create buttons for categories/category 2015-08-20 15:19:43 -04:00
psychobunny
f3c70473c3 save button on settings page 2015-08-20 15:12:17 -04:00
psychobunny
96a19f47b7 Merge branch 'master' into acp-paper 2015-08-20 14:59:01 -04:00
psychobunny
969522c2d2 manage/categories 2015-08-20 14:58:58 -04:00
psychobunny
48d61b8048 Merge branch 'master' into acp-paper 2015-08-20 14:47:53 -04:00
psychobunny
ccce0994bf updated themes 2015-08-20 14:47:51 -04:00
barisusakli
4e3e603ee7 closes #3456 2015-08-20 14:43:34 -04:00
psychobunny
a2fd970792 fix skin screenshots 2015-08-20 14:34:17 -04:00
psychobunny
e4fa7c136a updated theme versions 2015-08-20 14:31:09 -04:00
barisusakli
49afe544e1 recursive #3227 2015-08-20 14:23:29 -04:00
psychobunny
d5b88e9c35 fixed markup on /group page 2015-08-20 14:20:13 -04:00
psychobunny
26858436b6 fix for acp subpage nav 2015-08-20 14:13:21 -04:00
psychobunny
e04495b012 underped tags page 2015-08-20 14:06:41 -04:00
psychobunny
cbb2453c08 minor styling to tags page 2015-08-20 14:00:56 -04:00
psychobunny
646cdf9c57 manage/category 2015-08-20 13:55:59 -04:00
psychobunny
bd494207eb got rid of that fancy edit for cat name/desc + improved layout for settings 2015-08-20 13:40:22 -04:00
psychobunny
ffd38b8cc3 some UX tweaks to manage/category 2015-08-20 13:31:27 -04:00
psychobunny
28e2297e63 fixed categories layout 2015-08-20 13:24:54 -04:00
psychobunny
c6282e289a main header title + better logic 2015-08-20 13:21:12 -04:00
psychobunny
744a7d4210 extend/widgets 2015-08-20 12:41:16 -04:00
psychobunny
d1f45b6d79 extend/plugin 2015-08-20 12:35:38 -04:00
psychobunny
ec335b55cd fixed active state for install plugins submenu 2015-08-20 12:24:24 -04:00
psychobunny
4fd99e8aae removed activateMobile 2015-08-20 12:22:20 -04:00
psychobunny
cd5bb427cc appearance/customise 2015-08-20 12:20:58 -04:00
psychobunny
c35ef74c5c header tweaks 2015-08-20 12:12:55 -04:00
psychobunny
12539a158d settings - advanced, header, sockets 2015-08-20 12:10:50 -04:00
psychobunny
0eb3d05db8 settings/web-crawler 2015-08-20 12:09:08 -04:00
psychobunny
46bb289950 settings - notifications, pagination, tags 2015-08-20 12:05:44 -04:00
psychobunny
623dbaa608 settings/post 2015-08-20 12:01:33 -04:00
psychobunny
fe98624609 settings/group and settings/guest 2015-08-20 11:54:46 -04:00
psychobunny
4fdf3d19a0 settings/user 2015-08-20 11:50:48 -04:00
psychobunny
d53ae8769f settings/email 2015-08-20 11:43:40 -04:00
psychobunny
dc6950d094 settings/reputation 2015-08-20 11:41:25 -04:00
psychobunny
3c43e58d85 Merge branch 'master' into acp-paper 2015-08-20 11:39:20 -04:00
psychobunny
30970d618c dynamic title for settings pages 2015-08-20 11:39:14 -04:00
Julian Lam
e382dcab13 Reduce verbosity of plugin incompatibility errors
Instead of showing a 4-5 line warning for each potentially incompatible
plugin, we'll show the warning and then a list of plugins.
2015-08-20 11:01:59 -04:00
Julian Lam
23bb45b480 fixing plugin version checker to use satisfies again 2015-08-20 10:29:58 -04:00
Julian Lam
3464141b0f updating soundpack version min 2015-08-20 10:29:38 -04:00
Julian Lam
3c5df8a8ec removing the -dev flag from this branch 2015-08-20 10:10:28 -04:00
barisusakli
274844a07f check _resolved 2015-08-19 18:28:31 -04:00
psychobunny
2da3b34798 Merge branch 'master' into acp-paper 2015-08-19 18:20:33 -04:00
Barış Soner Uşaklı
f4da333b42 Merge pull request #3351 from yariplus/catsfixes
Fixing some issues with acp category page
2015-08-19 17:51:31 -04:00
Barış Soner Uşaklı
79e7ca50c1 Merge pull request #3160 from Alpacatty/master
General-Purpose Dockerfile
2015-08-19 17:40:24 -04:00
barisusakli
5d68a61b46 latest persona 2015-08-19 17:32:42 -04:00
barisusakli
fee08cd665 closes https://github.com/NodeBB/NodeBB/pull/3250 2015-08-19 17:14:22 -04:00
Barış Soner Uşaklı
5e9a123e70 Merge pull request #3360 from jsdream/renderHeaderHook
Add 'filter:middleware.renderHeader' hook
2015-08-19 16:58:24 -04:00
Barış Soner Uşaklı
a2bf7d4230 Merge pull request #2895 from EvSpirit/master
#2893 increment --debug-brk port value when forking js-minifier child pr...
2015-08-19 16:46:47 -04:00
Barış Soner Uşaklı
eb0fb07f05 Merge pull request #3339 from mani95lisa/patch-4
allow use github module
2015-08-19 16:15:23 -04:00
barisusakli
7db41275a3 closes #3227 2015-08-19 15:53:37 -04:00
psychobunny
ba58c83b97 acp active states for main menu 2015-08-19 15:52:31 -04:00
jsdream
103055b262 Add error check in 'filter:middleware.renderHeader' hook callback 2015-08-19 22:50:04 +03:00
psychobunny
656589f71f acp skins first pass 2015-08-19 15:43:19 -04:00
psychobunny
9389c0773e acp themes redesign first pass 2015-08-19 15:31:15 -04:00
psychobunny
30cd8d2af9 cleaned up the widgets page 👍 2015-08-19 15:09:16 -04:00
psychobunny
f0bed5a1ef new menu completed 2015-08-19 14:58:48 -04:00
Julian Lam
6f23e4bab1 changing the default base theme to persona, from vanilla 2015-08-19 14:57:49 -04:00
Julian Lam
ac46356cad Revert "changed base templates path to Persona, from Vanilla."
This reverts commit fe7f5402a8.
2015-08-19 14:54:39 -04:00
psychobunny
cc05a0a049 header menu first pass 2015-08-19 14:46:40 -04:00
barisusakli
91aa1d55dc t.js 0.2.10 2015-08-19 14:28:48 -04:00
barisusakli
2bb6631078 update t.js ver 2015-08-19 14:28:04 -04:00
barisusakli
85ae56e41d closes #3452 2015-08-19 14:17:21 -04:00
yariplus
67e450a05b Fix issues with acp category page
strange name for background size variable
invalid class selectors
hijacking of background style
2015-08-19 13:47:15 -04:00
barisusakli
878690e5f7 removed extra param 2015-08-19 13:37:48 -04:00
psychobunny
d464cb2f0d settings - automated table of contents 2015-08-19 13:27:30 -04:00
psychobunny
acb1e8a495 added a tweaked mdl.css that works with BS 2015-08-19 12:48:33 -04:00
barisusakli
aec4ee5392 crash fix 2015-08-19 12:47:57 -04:00
psychobunny
51db2012c8 removed nanoscroller 2015-08-19 12:38:54 -04:00
psychobunny
60826b1c94 temporarily disabling header 2015-08-19 12:37:48 -04:00
psychobunny
e434942a28 first pass on settings design 2015-08-19 12:36:42 -04:00
psychobunny
fed87dded6 sayonara, acp menu 2015-08-19 12:02:38 -04:00
psychobunny
685b3ce004 added bootswatch paper 3.3.5 2015-08-19 11:55:51 -04:00
barisusakli
d07fca6907 update theme versions 2015-08-19 01:21:12 -04:00
barisusakli
7a8cdfc095 added core field 2015-08-19 01:16:30 -04:00
barisusakli
537d539512 fix custom homepage 2015-08-18 18:43:14 -04:00
barisusakli
5ababdbdf0 prevent crash if data.enter is not string 2015-08-18 17:05:34 -04:00
Julian Lam
c45e182bab Fix ./nodebb upgrade process to not use programmatic npm
- Closes #3451
- Apparently, programmatically invoking npm is like opening Pandora's
box. No thanks.
2015-08-18 16:46:51 -04:00
barisusakli
830d27caef dont ignore error 2015-08-18 15:17:07 -04:00
barisusakli
7bd98a2516 closes #3427 2015-08-18 15:01:36 -04:00
barisusakli
5b87af4389 closes #3447
recursively get all children
calculate topic/post count from children
new sorted set `cid:<id>:children`
fix search query params
2015-08-18 14:17:25 -04:00
psychobunny
a990e9c3bf closes #3449 2015-08-18 11:27:22 -04:00
psychobunny
4b0f50f57e closes #3448 2015-08-18 11:02:31 -04:00
Julian Lam
3b3c383d93 adding a fallback for en_GB and en_US 2015-08-17 17:20:41 -04:00
Julian Lam
9d2c54e26a Add missing timeago locale files 2015-08-17 17:09:47 -04:00
Julian Lam
5007c3a32c latest translations 2015-08-17 17:07:39 -04:00
psychobunny
0f41654fde latest rewards-essentials 2015-08-17 16:53:43 -04:00
barisusakli
fe5f1b8c1d moved recent popular 2015-08-17 16:38:12 -04:00
psychobunny
3d962822c6 #3322 properly, @barisusakli so no need to copy pasta everywhere timeago is used 2015-08-17 16:26:35 -04:00
psychobunny
370a7ae2fb instant update for skin preview -- themes 2015-08-17 16:15:36 -04:00
psychobunny
5b1571ad1e don't need to refresh to preview updated skin #3069 2015-08-17 16:11:26 -04:00
psychobunny
9f97e8fa0c #3069 2015-08-17 15:57:04 -04:00
psychobunny
0150e0e063 closes #3069 2015-08-17 15:55:09 -04:00
psychobunny
a9035f166b fix endsWith error 2015-08-17 15:28:04 -04:00
psychobunny
c919a2817a tjs 0.2.28 2015-08-17 15:18:07 -04:00
psychobunny
275769a801 closes #3435 2015-08-17 14:54:00 -04:00
barisusakli
f4dd0c14ae update title for new posts as well 2015-08-17 13:19:20 -04:00
psychobunny
6db33f5641 unused vars 2015-08-17 12:52:03 -04:00
Julian Lam
3d9415b65e Fixes #3442 2015-08-17 12:38:31 -04:00
Julian Lam
64ab43b7fc fixed language name for Greek 2015-08-17 12:38:31 -04:00
psychobunny
f9b104192b fixing deprecated global translator call 2015-08-17 12:29:36 -04:00
psychobunny
5299e1fdc6 closes #3322 2015-08-17 12:28:16 -04:00
psychobunny
2da3761c59 closes #3446 2015-08-17 12:23:31 -04:00
psychobunny
fb34df627b upping themes #3429 2015-08-17 12:19:02 -04:00
psychobunny
b3639f3c71 closes #3429 2015-08-17 12:16:12 -04:00
psychobunny
4a4644665d upping theme versions #3445 2015-08-17 11:48:58 -04:00
psychobunny
842815e5e9 closes #3445 2015-08-17 11:47:23 -04:00
Julian Lam
08fb30378a Closes #3302
- Fixes issue where the served path for the favicon was incorrect (included relative path when one was not needed)
- Also fixes issue where favicons were just plain not served for subfolder installations
- Fixed unsemantic HTML in ACP/General regarding Site Logo and Favicon fieldsets
2015-08-17 11:45:30 -04:00
barisusakli
c70267bd23 fix indent 2015-08-14 15:15:46 -04:00
barisusakli
90b4c06c77 Merge remote-tracking branch 'origin/master' 2015-08-14 15:14:30 -04:00
barisusakli
5e3e1f8781 #3430 2015-08-14 15:14:20 -04:00
Julian Lam
c3304b5cd8 Update dependency minimum versions, and removed ^ for stability purposes 2015-08-14 10:33:53 -04:00
barisusakli
8333a5dcd9 fix filter 2015-08-13 16:03:15 -04:00
barisusakli
6e630b3cfd closes #3434, thanks to @psychobunny 2015-08-13 15:30:31 -04:00
Julian Lam
dfd840b001 Fix defaultPlugins logic to parse the incoming value 2015-08-13 14:23:09 -04:00
barisusakli
d986fc7cb6 fix indent 2015-08-13 12:49:15 -04:00
barisusakli
aab7651959 add default plugins 2015-08-13 12:47:59 -04:00
barisusakli
46bcd66297 filter system plugins from list 2015-08-13 12:33:24 -04:00
barisusakli
aeb15ed7ee moved getMonthlyPageViews to analytics 2015-08-13 12:20:53 -04:00
Barış Soner Uşaklı
235a981dd1 added mongodb memory usage 2015-08-12 16:14:48 -04:00
Barış Soner Uşaklı
fd87bedc90 fix indent 2015-08-12 14:54:49 -04:00
Barış Soner Uşaklı
0d789261a9 filter falsy check valid 2015-08-12 14:49:26 -04:00
Julian Lam
937875b0be updated mentions minver 2015-08-12 11:00:09 -04:00
Julian Lam
7160e157de added missing language.json file for Kinyarwanda 2015-08-12 10:17:38 -04:00
Ziggy
08af92c2c0 added Kinyarwanda, Murakoze cyane!! 2015-08-12 10:09:27 -04:00
Julian Lam
bd960ea6ac latest translations 2015-08-12 09:57:41 -04:00
Julian Lam
1b812068ca Fix bug where translator would split on all colons, and not just the first 2015-08-11 17:09:24 -04:00
barisusakli
f8f3e3faa7 closes https://github.com/NodeBB/nodebb-theme-persona/issues/79 2015-08-11 13:19:25 -04:00
barisusakli
9e1d5c8113 closes #3424 2015-08-10 17:57:51 -04:00
barisusakli
5a15ee7713 #3424 2015-08-10 17:18:32 -04:00
Julian Lam
a0d01a05ed Update behaviour so a theme reset sets Persona, not vanilla 2015-08-09 20:17:28 -04:00
barisusakli
3c63336063 another waterfall 2015-08-07 17:56:03 -04:00
barisusakli
8f98d03239 waterfall for topics 2015-08-07 17:25:35 -04:00
barisusakli
0534da0ed1 closes #3389 2015-08-07 16:44:20 -04:00
barisusakli
61dac1a01e closes #3390 2015-08-07 12:27:35 -04:00
barisusakli
1b9c443076 toggle browsing if all users are gone 2015-08-07 00:58:44 -04:00
barisusakli
fba6f3ba81 https://github.com/psychobunny/templates.js/issues/33 2015-08-06 16:38:20 -04:00
barisusakli
e341b80d93 use set to get groups 2015-08-06 16:25:36 -04:00
Julian Lam
e60194292f Fix a myriad of problems with the ACP/Plugins page
- Fixed #3350
- Fixed issue where the normalised API return would have the wrong id for all plugins
- Fixed issue where uninstalling a locally installed plugin via ACP would cause NodeBB to crash
- Simplified ACP/Plugins client-side code to simply refresh the page after installing or uninstalling a plugin.
2015-08-06 12:41:16 -04:00
Julian Lam
f53fb19468 Fix #3384
Resolved issue where if a bundled plugin was uninstalled, NodeBB would no longer start as the dep check could not be completed.
2015-08-04 17:00:12 -04:00
barisusakli
9604779be1 fix unreplied 2015-08-04 15:51:35 -04:00
barisusakli
f6be4efe8b when a post is moved update recent topics order 2015-08-04 14:26:03 -04:00
Julian Lam
b75dfa9f6e upped theme minvers 2015-08-04 14:10:18 -04:00
Julian Lam
56b399c900 Add new mixin, and added mixins to stylesheet.css 2015-08-04 10:34:25 -04:00
Julian Lam
ccb5094d54 Increased contacts limit to 200, from 20
So that if you have more than 20 friends (or followed > 20 people), you will see all of them (up to 200, anyway...) in the "Contacts" portion of the `/chats` route.
2015-08-04 10:14:56 -04:00
barisusakli
8ec08337aa closes #3383 2015-08-03 19:57:01 -04:00
barisusakli
808d64e0d9 delete topic bookmarks on topic purge 2015-08-02 14:42:01 -04:00
barisusakli
7c0b798036 fix indents 2015-08-01 18:45:03 -04:00
Barış Soner Uşaklı
be8aac9950 Merge pull request #3372 from jsdream/newHook2
Add 'filter:recent.build' hook
2015-08-01 17:58:35 -04:00
barisusakli
8178e210e4 Fix indents 2015-08-01 17:38:11 -04:00
Barış Soner Uşaklı
e34b30eeca Merge pull request #3369 from pejuaxel/master
Add missing localizations
2015-08-01 17:24:32 -04:00
Barış Soner Uşaklı
2968dbb9ac Merge pull request #3346 from bdharrington7/bookmark2
Saves user bookmarks on server if available
2015-08-01 17:08:40 -04:00
barisusakli
0dfe2e0e90 only display readable categories in /unread dropdown 2015-07-31 20:03:51 -04:00
jsdream
1da5b2ca34 Add 'filter:recent.build' hook 2015-07-31 16:51:55 +03:00
bdharrington7
bd26961fa6 Makes bookmark click scroll to last read instead of past it 2015-07-30 23:29:14 -07:00
bdharrington7
25203ee67e changes bookmark storage to sortedset, gets uid from socket rather than being passed from client 2015-07-30 23:13:34 -07:00
barisusakli
d5128d0513 closes #3370 2015-07-30 15:23:48 -04:00
barisusakli
e592499d48 correctly hide/show user in browsing users 2015-07-30 15:14:10 -04:00
Barış Soner Uşaklı
924692404d Merge pull request #3371 from mikicaivosevic/patch-1
Update index.js, fix outgoing XSS
2015-07-30 14:38:39 -04:00
Mikica Ivosevic
e24bd2c0e3 Update index.js, fix outgoing XSS
Fix XSS on /outgoing route
2015-07-30 18:53:20 +02:00
Axel
fc0871a79d Merge branch 'master' of https://github.com/NodeBB/NodeBB 2015-07-30 09:33:33 +02:00
Axel
91e81065dc Localize "Group Name:" 2015-07-29 21:40:41 +02:00
Axel
79d7721971 Add category and subcategories localization 2015-07-29 21:33:36 +02:00
Julian Lam
cead53ec86 Fix list behaviour in chat page 2015-07-29 15:22:00 -04:00
Julian Lam
53a1e6106e Fix bug where an empty chat message would appear in the chat modal 2015-07-29 14:31:33 -04:00
Julian Lam
98b74f848e Fix newSet detection on chat messages 2015-07-29 13:16:52 -04:00
Julian Lam
8b5195fa82 updating theme minvers again 2015-07-29 12:59:38 -04:00
Julian Lam
2593f1b4d9 Fix bug where new chat messages would not append
... due to incorrect class and id assignment of the chat modal. Regression was caused by an earlier commit that moved the
typing span elsewhere.
2015-07-29 12:58:06 -04:00
Julian Lam
81dc2b9615 updated theme minvers 2015-07-29 12:43:25 -04:00
Julian Lam
60a6775c72 Changed behaviour of the Chat Typing Notification
Instead of being placed at the bottom of the modal/list,
it will now be displayed at the top of the modal, and not
shown in the chats page at all (as it is already present
in the contact list)
2015-07-29 12:41:09 -04:00
barisusakli
47cc1083df fix mark all read 2015-07-28 15:03:20 -04:00
barisusakli
05411651b3 server side check so you can't leave admin group 2015-07-28 13:26:58 -04:00
Julian Lam
4f57227505 Merge branch 'master' into v0.8.x 2015-07-28 12:17:13 -04:00
Julian Lam
eac92b00c6 better error checking with socket broadcast method 2015-07-28 12:16:57 -04:00
Julian Lam
7e640806b5 updated dev branch version 2015-07-28 10:40:54 -04:00
Julian Lam
03b6b1e15c Fixed crash on launch if no hooks listen to filter:router.page
A previous commit added a new hook, although it executed async.each on a var without a null check, so if no hooks were registered, it was null, and not an empty array, causing async to crash.
2015-07-28 10:36:51 -04:00
Julian Lam
6348eb2bab fixed #3359 2015-07-28 10:24:46 -04:00
Julian Lam
fcebfd8f39 latest fallbacks 2015-07-28 09:37:29 -04:00
Julian Lam
2f6b9eb80a updated theme minvers 2015-07-28 09:35:19 -04:00
Julian Lam
8b59efef38 Merge pull request #3366 from pejuaxel/master
Add missing localization
2015-07-28 09:34:05 -04:00
Axel
85d7b04846 Add missing localization 2015-07-28 14:49:31 +02:00
Julian Lam
db4ac34138 latest fallbacks 2015-07-28 07:51:03 -04:00
Julian Lam
4f4e33eb15 Merge branch 'pichalite-master' 2015-07-28 07:49:50 -04:00
Julian Lam
eb5be2f671 fixed some whitespace issues and made the admin check return early, in its own block 2015-07-28 07:49:28 -04:00
Julian Lam
5ba7234bd7 Merge pull request #3362 from pejuaxel/master
Missing localization
2015-07-28 07:49:10 -04:00
Julian Lam
d10fd6248e Merge branch 'master' of https://github.com/pichalite/NodeBB into pichalite-master 2015-07-28 07:45:34 -04:00
Julian Lam
afc32c1f6e latest translations and fallbacks 2015-07-28 07:44:21 -04:00
Julian Lam
487166ba48 translations for @HuiStudio, #3365 2015-07-28 07:40:43 -04:00
Julian Lam
5a50a098d8 added a new middleware and plugin hook
- Middleware added: requireUser, redirects to login if there is no user session.
- Hook added: filter:router.page
2015-07-28 07:39:11 -04:00
bdharrington7
c0ec6faed3 Clarifies code by calling native db method instead of Topics method 2015-07-27 19:59:19 -07:00
barisusakli
5d94b00883 parse category description closes #3209 2015-07-27 15:31:55 -04:00
Julian Lam
fa351ffa07 fixed wrong documentation in comments... 2015-07-27 13:30:28 -04:00
Axel
9c2d7a2468 new language keys 2015-07-26 23:40:44 +02:00
Julian Lam
474ff3ed35 fixed #3359 2015-07-24 14:25:23 -04:00
barisusakli
5d56e4f835 Merge remote-tracking branch 'origin/master' into v0.8.x 2015-07-24 14:03:20 -04:00
barisusakli
26a9530686 fix sorting on users/map 2015-07-24 13:58:46 -04:00
pichalite
d2bbca1de1 don't display leave/join buttons for admin group 2015-07-24 08:58:00 -07:00
jsdream
29fcbf6750 Add 'filter:middleware.renderHeader' hook 2015-07-24 18:18:22 +03:00
Julian Lam
87111ee6be fixed #3007 2015-07-24 10:22:21 -04:00
Julian Lam
ee9390ee34 fixed #2949 2015-07-23 16:28:31 -04:00
Julian Lam
df055ce7ea if buildHeader middleware is called, isAPI is now set to false 2015-07-23 12:58:21 -04:00
Julian Lam
0bc175dd4c fixed #3355
fixed issue where disabled categories showed up in the category dropdown in /unread
2015-07-23 12:47:58 -04:00
pichalite
a5226c9423 don't display "Leave Group" button for admins in "administrators" system group on groups details page 2015-07-22 17:10:17 -07:00
Julian Lam
791e0893ab added new hook "filter:digest.subscribers" to allow plugins to override digest subscriptions 2015-07-22 15:07:12 -04:00
Julian Lam
12601dd3aa added new hook "filter:digest.subscribers" to allow plugins to override digest subscriptions 2015-07-22 15:06:30 -04:00
barisusakli
766e233b87 closes #3353 2015-07-22 14:51:20 -04:00
barisusakli
954c25823e closes #3352 2015-07-22 14:17:34 -04:00
Julian Lam
fe7f5402a8 changed base templates path to Persona, from Vanilla.
This breaks all themes relying on templates from Vanilla!! See: https://community.nodebb.org/topic/6098/on-changing-the-default-theme-to-persona
2015-07-22 11:30:14 -04:00
Julian Lam
c38cab3b74 latest russian translations 2015-07-22 10:23:15 -04:00
Mani Wang
92968dfd8d avoid outdated error
when use github address as module
2015-07-22 19:49:15 +08:00
barisusakli
2b93c01340 closes #3347 2015-07-21 20:22:56 -04:00
bdharrington7
54180acf9b saves updated bookmark in callback 2015-07-22 06:55:48 +08:00
Julian Lam
93007bc34f fixed regression of pagination caused by changes to ajaxification logic 2015-07-21 15:21:50 -04:00
Julian Lam
fdddc19d0d updated theme minvers 2015-07-21 15:16:10 -04:00
Julian Lam
03a4b5f641 updating development version 2015-07-21 14:57:04 -04:00
Julian Lam
d62c3b9340 switching default theme on installation to Persona, from Lavender 2015-07-21 14:55:52 -04:00
Julian Lam
05cac46c5b Revert "updated dev version on master branch"
This reverts commit 1a56267791.
2015-07-21 14:41:03 -04:00
bdharrington7
2a82b5db91 Merge branch 'master' into bookmark2 2015-07-22 00:27:02 +08:00
bdharrington7
4d99f60b3d uses server-side bookmark if available 2015-07-21 23:46:05 +08:00
Julian Lam
1a56267791 updated dev version on master branch 2015-07-21 11:37:58 -04:00
Julian Lam
d426839da9 latest translations 2015-07-21 11:29:11 -04:00
Julian Lam
7e6703c18e more line ending conversion #3343 2015-07-21 11:23:16 -04:00
Julian Lam
c781e55ea9 line endings? #3343 2015-07-21 11:20:37 -04:00
Julian Lam
d095e5925c #3343 2015-07-21 11:17:31 -04:00
bdharrington7
45df5a3d0b stores the user's bookmark on the server 2015-07-21 21:20:13 +08:00
psychobunny
0bc4799c3c remove setTimeout hax in settingsv1 :squirrel: 2015-07-20 17:16:30 -04:00
psychobunny
fdc66eb607 fixes checkboxes for settingsv2 (deja vu) 2015-07-20 17:13:25 -04:00
psychobunny
a3c41e7fdb action:posts.loading 2015-07-20 17:12:41 -04:00
psychobunny
8e4340544a action:posts.edited 2015-07-20 17:12:34 -04:00
barisusakli
435fe5c54f closes #3342 2015-07-20 15:53:08 -04:00
Barış Soner Uşaklı
a20d1f8220 Updated emails :) 2015-07-20 15:29:16 -04:00
Julian Lam
866b0ddaa6 Merge pull request #3283 from APXEOLOG/filter-extension
filter:auth.init strategy extension with custom urls
2015-07-20 15:25:54 -04:00
Barış Soner Uşaklı
bdc3cc49f8 Merge pull request #3308 from acardinale/master
Uniform action:post.* hook
2015-07-20 15:21:39 -04:00
Julian Lam
957766c1d7 fixed #3272 2015-07-20 14:51:38 -04:00
Julian Lam
0c6b2b122e fixed #3268 2015-07-20 14:28:33 -04:00
Julian Lam
fdefff3516 fixes #3338 2015-07-20 12:51:53 -04:00
barisusakli
e171ba59ac if no tags are passed in assume 0 tags 2015-07-20 12:34:21 -04:00
barisusakli
fba6e1dfe2 added min/max tags setting to defaults.json 2015-07-20 12:30:42 -04:00
barisusakli
1413fc1b1a closes #3340 2015-07-20 12:27:41 -04:00
barisusakli
399c89eeed pass in req,res to action:user.loggedOut 2015-07-20 12:22:14 -04:00
Julian Lam
1c973b7bf3 fixed #3324 2015-07-20 11:41:30 -04:00
Julian Lam
22251cb0bd fixed #3341, introduced new navigation data property, "targetBlank", deprecated "target", which was never exposed anyway, and updated default values 2015-07-20 11:29:38 -04:00
Julian Lam
33434ed13d fixed package.json conflict 2015-07-20 11:29:22 -04:00
Mani Wang
c13589735d allow use github module
avoid `outdated` error when use github address as module.
2015-07-20 16:57:35 +08:00
barisusakli
83ad4ab042 waterfall 2015-07-18 14:21:51 -04:00
barisusakli
414c2a8bd9 added action:user.loggedOut 2015-07-18 14:06:51 -04:00
barisusakli
6ee0671e6a added too many tags check to post edit 2015-07-18 14:03:27 -04:00
Barış Soner Uşaklı
6bd131815f Merge pull request #3256 from yariplus/mintags
Add minimum tags per topic setting.
2015-07-18 14:02:06 -04:00
barisusakli
945a94f0ed delete cache on current process first 2015-07-18 13:59:40 -04:00
yariplus
bd863e1ccb Fix derp. 2015-07-18 02:34:47 -04:00
yariplus
546efbbd1b Add translations for min and max tag errors. 2015-07-18 02:21:34 -04:00
yariplus
e112190bee Fix maximumTagsPerTopic 2015-07-17 21:46:29 -04:00
Julian Lam
a10dfc87cf upped mentions minver 2015-07-17 19:48:33 -04:00
barisusakli
f4ea534327 closes #3312 2015-07-17 19:03:32 -04:00
Julian Lam
8dedea884d added 'no parent category' option to #2820 2015-07-17 18:27:45 -04:00
Julian Lam
5340537631 closed #2820 2015-07-17 18:19:57 -04:00
barisusakli
9e63aaebb8 added new hook action:middleware.pageView 2015-07-17 15:57:49 -04:00
Julian Lam
7063f172a7 upped composer minver, closes #3325 2015-07-17 13:15:51 -04:00
Julian Lam
87e5c733a4 added dedicated client-side action hook for when the client-side finishes loading 2015-07-17 13:13:30 -04:00
Julian Lam
4b9eab6dc0 fixes #3329 2015-07-17 10:53:00 -04:00
Julian Lam
b2a69758ee added back multi-line support for translator 2015-07-17 10:28:30 -04:00
Julian Lam
eaa35c8057 making translator regex stricter, so it doesn't match language strings that won't ever exist 2015-07-17 10:21:40 -04:00
barisusakli
65ab5733ef added categories navigation item, ability to change logo url 2015-07-16 16:21:05 -04:00
Julian Lam
b46da4461c upped markdown minver 2015-07-16 15:56:43 -04:00
barisusakli
0be2a79210 pass the data used to create the category to filter:category.create 2015-07-16 15:56:26 -04:00
barisusakli
e023d01616 closes #3327 2015-07-16 14:07:39 -04:00
Julian Lam
7f77269596 theme minvers 2015-07-16 13:50:24 -04:00
Julian Lam
3a8c1f88fb upped composer minver 2015-07-16 13:36:25 -04:00
Julian Lam
2c62bafdc7 fixed ajaxify for pagination blocks 2015-07-16 13:26:16 -04:00
Julian Lam
305c54a727 fixed bug where an extra space was added to new replies 2015-07-16 13:20:26 -04:00
Julian Lam
d061411747 added composer and emoji to default enabled plugins 2015-07-16 12:10:40 -04:00
Julian Lam
7fc08bbda8 latest translations :) 2015-07-16 11:06:15 -04:00
Julian Lam
516103fe5d latest fallbacks 2015-07-15 17:03:03 -04:00
Julian Lam
e5875ba53d adjusted persona and vanilla minvers 2015-07-15 17:02:09 -04:00
Julian Lam
e25d2fa6e6 closed #2811 2015-07-15 16:58:25 -04:00
Julian Lam
d712dcdce1 fixed issue where ajaxify couldn't handle urls with "#" href if the currently address already had a hash value present. 2015-07-15 15:12:00 -04:00
Julian Lam
b83492daa2 Merge pull request #3048 from FokkeZB/image-scheme
Replace schemeless URLs for emails
2015-07-15 14:49:23 -04:00
Julian Lam
d329bf45e6 Merge pull request #3318 from atomoc/patch-12
Update sitemap.js
2015-07-15 14:43:03 -04:00
Julian Lam
69c4b4183a latest fallbacks 2015-07-15 14:11:05 -04:00
Julian Lam
cbe810341c changed some wording in user.json to use past participle tense 2015-07-15 14:04:32 -04:00
Julian Lam
ad38c55b12 fixes #3314 2015-07-15 12:08:43 -04:00
Julian Lam
e2c4f668a1 fixed danish language error 2015-07-15 11:04:20 -04:00
barisusakli
a9da867255 fix infinite redirect loop on /chats @julianlam 2015-07-15 01:09:16 -04:00
barisusakli
ee7e36ae44 removed rooms from return 2015-07-14 17:14:35 -04:00
barisusakli
dc7839b511 small fix 2015-07-14 17:12:59 -04:00
barisusakli
daf1a388eb closes #3039 2015-07-14 17:03:33 -04:00
Сергей Савельев
8209d97f05 Update sitemap.js 2015-07-14 14:33:40 +03:00
Сергей Савельев
9552d9c5a3 Update sitemap.js 2015-07-14 14:33:25 +03:00
Сергей Савельев
efbab27827 Update sitemap.js
Why not? :)
2015-07-14 14:29:41 +03:00
Julian Lam
2cb70ceccc added auto-ajaxify on reconnect 😎 2015-07-13 16:00:04 -04:00
Julian Lam
f9a29186c4 updated ajaxify 5xx handling code to work even if nginx is used as a proxy (as it serves back 502, not 500) 2015-07-13 16:00:04 -04:00
barisusakli
81eeab42ed category filter on /unread 2015-07-13 14:47:15 -04:00
Julian Lam
3256faeb28 added Serbian and Danish to NodeBB, Хвала/mange tak! 2015-07-13 11:01:50 -04:00
Julian Lam
43b72d1552 updated italian translations 2015-07-13 10:52:30 -04:00
barisusakli
1b7df6e4b2 closes #3315 2015-07-12 12:42:53 -04:00
Julian Lam
835750f36f fixed checkbox behaviour in widgets page... @psychobunny, did I do this right? 2015-07-11 21:52:18 -04:00
Julian Lam
aab726bac4 fixes #3313 2015-07-11 20:32:04 -04:00
barisusakli
072d287183 closes #3311 2015-07-10 16:43:31 -04:00
Julian Lam
534b13e089 fixed bug where ephemeral groups and the registered-users group wouldn't show in in ACP/category details page for privileges. 2015-07-10 15:38:42 -04:00
Julian Lam
1229470bba seems the categories.search socket method is not used... 2015-07-10 15:17:16 -04:00
Julian Lam
140b8be161 updated ACP checkbox module so that it hides the checkbox via js instead of blanket CSS hiding 2015-07-10 15:13:42 -04:00
psychobunny
a4ace48469 closes #3310 2015-07-10 14:28:10 -04:00
psychobunny
541fd474b3 fixes checkboxes for both settingsv1 and settingsv2 2015-07-10 14:07:57 -04:00
psychobunny
f56c2ea88a padding fix 2015-07-09 17:14:56 -04:00
Barış Soner Uşaklı
4fc4a0ff3e dont escape group.name, use displayName in tpls instead 2015-07-09 16:00:43 -04:00
Barış Soner Uşaklı
d225951027 fix group name 2015-07-09 15:25:46 -04:00
Barış Soner Uşaklı
2b2dceb28b removed category stats from acp 2015-07-09 14:47:15 -04:00
Barış Soner Uşaklı
a12ecbc230 admin/manage/groups pagination 2015-07-09 14:01:20 -04:00
Julian Lam
1602b378e3 updated some minvers 2015-07-09 13:32:22 -04:00
Julian Lam
b4e39374bb firing 'change' event for all checkboxes after settingsv2 load 2015-07-09 13:31:14 -04:00
Andrea Cardinale
92c1d6712b Uniform action:post.* hook 2015-07-09 13:17:49 +02:00
Andrea Cardinale
423c6cc0ec Merge remote-tracking branch 'upstream/master' 2015-07-09 11:26:31 +02:00
Julian Lam
42367a653c more .reset() calls 2015-07-08 18:52:10 -04:00
psychobunny
780838c579 fixes "other" category for presence graph 2015-07-08 18:47:05 -04:00
Julian Lam
704aeea3f1 hopefully fixing bug where @psychobunny's terminal turns yellow after upgrading 2015-07-08 18:47:31 -04:00
psychobunny
ec8c5ff1fc dashboard: format numbers 2015-07-08 18:34:06 -04:00
psychobunny
7fbca487f5 make group description and group name the same size 2015-07-08 17:59:16 -04:00
psychobunny
6b6bae7cc5 font awesome checkboxes for acp 2015-07-08 17:43:24 -04:00
Julian Lam
020de2722f fixed regression introduced by earlier fix for #3307 2015-07-08 17:27:45 -04:00
psychobunny
b73a26f7a6 fixes reload button and probably a bunch of other things in ACP 2015-07-08 17:12:06 -04:00
psychobunny
6cf0697621 fixed indenting to match style 2015-07-08 17:08:37 -04:00
psychobunny
396013c8fd added a faint separator to the categories listing 2015-07-08 17:08:35 -04:00
Julian Lam
74f2f7caef fixes #3307 2015-07-08 17:04:25 -04:00
Julian Lam
02a63c0a45 moved portions of the ACP/Plugins page to a pair of partials, and split up the list so the plugins list isn't parsed twice. 2015-07-08 17:04:25 -04:00
psychobunny
b69ea4564a fix user presence graph
if nobody's using your forum at all, this thing stopped working
altogether
2015-07-08 17:02:33 -04:00
psychobunny
c01f06214e don't re-render graph if data is stale 2015-07-08 16:54:39 -04:00
psychobunny
26f22345cd allow realtime updates of the traffic graph in ACP 2015-07-08 16:46:33 -04:00
psychobunny
c6713177d3 realtime mode toggle for dashboard 2015-07-08 16:35:59 -04:00
psychobunny
c1a6bd8b8f don't enforce dependency check when running in dev mode 2015-07-08 16:03:16 -04:00
barisusakli
21ad15b13a closes #3306 2015-07-08 12:20:07 -04:00
barisusakli
b8028ccdbf dont allow deletion of administrators and registered-users 2015-07-08 12:01:06 -04:00
Barış Soner Uşaklı
d00e08a8e6 Merge pull request #3299 from NicolasSiver/category-update
Filter: Category update
2015-07-07 17:32:52 -04:00
barisusakli
2b493964d0 closes #3296 2015-07-07 17:23:41 -04:00
Nicolas Siver
9d0a0538a6 use tabs 2015-07-07 20:10:44 +03:00
Barış Soner Uşaklı
7397d98647 fix create time sort 2015-07-07 12:08:30 -04:00
Barış Soner Uşaklı
d0b1ebb8ea possible sort fix 2015-07-07 12:01:47 -04:00
Barış Soner Uşaklı
9a03671ad2 removed async.apply 2015-07-07 11:58:15 -04:00
Barış Soner Uşaklı
503d83998b fix indent 2015-07-07 11:39:56 -04:00
Barış Soner Uşaklı
b50ad39120 Merge pull request #3284 from APXEOLOG/pr-1
User.uploadFromUrl fix
2015-07-06 17:50:14 -04:00
barisusakli
f08554e788 closes #2701 2015-07-06 17:39:46 -04:00
Julian Lam
c6643082e2 closes #3303 2015-07-06 16:11:20 -04:00
Julian Lam
1069f9c936 some prep work to allow for checking of dependency versions. Also updated upgrade.check behaviour to send back error if schema is out of date, instead of no error and "false". 2015-07-06 15:44:52 -04:00
Julian Lam
da1c347fc2 closes #3297 2015-07-06 15:06:10 -04:00
barisusakli
ffd22f50ff closes #1999 2015-07-06 14:33:52 -04:00
Julian Lam
2d70733fa5 updated dependencies to use latest UglifyJS2, instead of my year-old fork 2015-07-06 13:19:14 -04:00
barisusakli
1d4efaee68 fix indices if postsPerPage is an odd number 2015-07-06 13:01:40 -04:00
Julian Lam
4de5fde18d fixed link to maintenance mode in ACP/Dash 2015-07-06 12:45:48 -04:00
Julian Lam
5c44775c1f latest translations, wow. 2015-07-06 12:45:48 -04:00
barisusakli
52f7e13a5c closes #3289 2015-07-06 12:39:05 -04:00
Julian Lam
e355c8cb1b removed socket calls for composer out of core and into plugin, closes #3293 2015-07-06 12:34:58 -04:00
barisusakli
417a573f67 closes #3260 2015-07-06 12:14:33 -04:00
Julian Lam
ceb4de653d fixed #3295 2015-07-06 10:41:13 -04:00
Julian Lam
6ff635ada3 Merge pull request #3301 from FokkeZB/patch-1
Allow Winston's log level to be set via nconf
2015-07-06 10:24:04 -04:00
Fokke Zandbergen
4b1c9ce9a2 Allow Winston's log level to be set via nconf
Defaults to `info` for `production` and `verbose` otherwise, like it used to.
2015-07-06 11:58:17 +02:00
Nicolas Siver
1e2f4ae5e9 filter slug for category update 2015-07-05 08:31:21 +03:00
Nicolas Siver
773d886135 ignore for JetBrains IDEs 2015-07-04 10:11:11 +03:00
barisusakli
619251143d reset inf scroll on search 2015-07-03 18:19:02 -04:00
barisusakli
5c35b2d96f fix composer redirect on relative path install 2015-07-03 17:21:19 -04:00
Julian Lam
19294c91c3 upping theme minimum versions 2015-07-03 17:08:17 -04:00
Julian Lam
48af82659e removing the composer from core, out to its own plugin: nodebb-plugin-composer-default, closes #3288 2015-07-03 16:43:36 -04:00
barisusakli
491d376fb4 closes #2605 2015-07-03 16:42:55 -04:00
Andrea Cardinale
b33a482226 Restore favourites.js 2015-07-03 14:14:21 +02:00
Andrea Cardinale
3e21f26d0d Restore favourites.js 2015-07-03 14:10:40 +02:00
Andrea Cardinale
3b1582915e Restore favourites.js 2015-07-03 14:00:22 +02:00
Andrea Cardinale
da800a9016 Merge remote-tracking branch 'upstream/master'
Conflicts:
	src/favourites.js
2015-07-03 13:55:32 +02:00
APXEOLOG
1ae0077810 Change error message to localized one 2015-07-02 18:29:46 +03:00
APXEOLOG
1d7b2b5776 Branch for Pull Request 2015-07-02 14:18:50 +03:00
APXEOLOG
10bbbb8942 filter:auth.init strategy extension with custom urls 2015-07-02 13:14:50 +03:00
APXEOLOG
93b6b6ba5f Fixed two bugs:
1. filename cannot contain ':' (at least on windows), nodebb crashes with such filename
2. lwip cannot define image type without file extension

Also added image extension check to prevent security issues
2015-07-02 13:03:43 +03:00
Julian Lam
f2bebb12c6 turns out "detached" isn't even an option, so I've removed it altogether
Conflicts:
	nodebb
2015-06-30 22:23:27 -04:00
barisusakli
f2c45e98da escape users group data 2015-06-30 15:25:25 -04:00
barisusakli
c5b9c9254a #3275 2015-06-30 13:38:11 -04:00
psychobunny
65e2c4cd20 missing error 2015-06-29 16:58:34 -04:00
psychobunny
bf3b5ee318 closes #3264 2015-06-29 15:32:35 -04:00
psychobunny
a285e0734d closes #3274 2015-06-29 15:16:36 -04:00
barisusakli
d135f37b4f check register queue against stopforumspam 2015-06-29 13:20:25 -04:00
barisusakli
5ee1951245 closes #3271 2015-06-28 21:54:21 -04:00
barisusakli
54226a86b4 fix group name link 2015-06-28 14:04:11 -04:00
barisusakli
57c2418157 closes #1306 2015-06-27 21:26:19 -04:00
barisusakli
de228fa67d display 404 page if registration is disabled 2015-06-26 12:18:14 -04:00
Barış Soner Uşaklı
0ba0f70581 Merge pull request #3269 from rbeer/acp_menu.plugins-icon
use icon for plugin entries
2015-06-26 11:41:58 -04:00
Raphael Beer
74a7bdf589 use icon for plugin entries 2015-06-26 11:47:42 +02:00
barisusakli
ea818e2af8 closes #3259 2015-06-25 15:15:33 -04:00
barisusakli
718f61e3bd closes #3263 2015-06-24 17:15:58 -04:00
barisusakli
a31178ebd8 closes #3258 2015-06-23 17:05:40 -04:00
barisusakli
2b0b2ea858 fix search by ip 2015-06-23 15:43:33 -04:00
Barış Soner Uşaklı
981a7558f7 use group name, hidden groups are not in groupslug:groupname 2015-06-23 14:08:04 -04:00
Barış Soner Uşaklı
6fc073d33e if key is fasly not a member 2015-06-23 13:35:58 -04:00
yariplus
13e12ba3a5 Add minimum tags per topic setting. 2015-06-23 10:23:56 -04:00
psychobunny
5ff9a7f9a9 allow multiline support for translator
see: https://github.com/psychobunny/templates.js/issues/36
2015-06-22 16:19:31 -04:00
psychobunny
3a21329c5e allow admins to remove themselves as admin
but only if they are not the last admin left
2015-06-22 16:03:32 -04:00
psychobunny
98cde1a9d6 missing lang key for error: cant-remove-last-admin 2015-06-22 16:02:57 -04:00
barisusakli
b89b4d066a max chars 2015-06-22 15:50:22 -04:00
psychobunny
fbeb6bc0ce closes #3254
@barisusakli :trollface:
2015-06-22 15:31:22 -04:00
barisusakli
38b838d462 closes #2754
moved group edit from modal to its own page
added hidden/private to group edit in acp, they were only in the client
groups page
moved add users above member list
2015-06-22 13:10:18 -04:00
barisusakli
1d72a8f0ee fix composer redirect on home page 2015-06-21 16:28:52 -04:00
barisusakli
f974af2247 fix for #3246 2015-06-21 02:14:37 -04:00
barisusakli
2deeda553a closes #3246 2015-06-21 01:58:11 -04:00
barisusakli
8160188ef5 use correct names 2015-06-20 01:26:50 -04:00
barisusakli
c81d6f8b57 refactor groups.invite request member ship 2015-06-20 01:25:40 -04:00
barisusakli
dc351fa320 removed hack for https://github.com/psychobunny/templates.js/issues/33 2015-06-19 20:13:52 -04:00
barisusakli
6fd772756c on user delete leaveAllGroups and remove from pending invited sets as well 2015-06-19 17:37:19 -04:00
psychobunny
19b50c8888 missing lang key for already-flagged 2015-06-19 17:32:04 -04:00
psychobunny
a5365e968d post*.flag 2015-06-19 17:30:41 -04:00
psychobunny
b5b9a190e4 console.log 2015-06-19 17:23:13 -04:00
psychobunny
28e9874ba9 allow moderators/admins with 0 rep to still be able to flag a post 2015-06-19 17:22:14 -04:00
psychobunny
b655e18cee action:posts.flag 2015-06-19 17:10:29 -04:00
barisusakli
ba4e8c8955 small refactor to group show/hide 2015-06-19 15:59:38 -04:00
barisusakli
dff1a04585 more category hooks 2015-06-19 15:39:37 -04:00
Barış Soner Uşaklı
abfd58a1a9 Merge pull request #3219 from rbeer/topic.del-payload
send topicData on action:topic.delete
2015-06-19 15:30:46 -04:00
barisusakli
5445e32522 2 new hooks 2015-06-19 15:11:22 -04:00
barisusakli
9d562a8708 closes #3245 2015-06-19 14:33:56 -04:00
barisusakli
5f5b11f692 closes #3242 2015-06-19 00:31:47 -04:00
barisusakli
0ef2ccc130 closes #3240 2015-06-17 14:57:10 -04:00
barisusakli
ed173e0a32 closes #3217 2015-06-17 14:13:29 -04:00
barisusakli
cea385e572 closes #3223 2015-06-15 16:55:29 -04:00
barisusakli
536c443c1e closes #3231 2015-06-15 16:03:38 -04:00
barisusakli
8e74d8f4fa removed parallel 2015-06-15 14:54:28 -04:00
Julian Lam
29c9b2e69f requiring markdown v3 now 2015-06-11 15:50:19 -04:00
barisusakli
f6d025bc3f only call updatevisibility if hidden is passed in 2015-06-11 14:54:01 -04:00
psychobunny
93fe660892 woops 2015-06-10 19:20:20 -04:00
psychobunny
15a8ebaeff only load rjs modules that are required on startup 2015-06-10 19:19:39 -04:00
psychobunny
9583c5bf93 markdown 2.1.10 2015-06-10 19:02:58 -04:00
barisusakli
1bbce82c23 duh #3192 2015-06-10 15:58:07 -04:00
barisusakli
8ff7ba82c2 closes #3192 2015-06-10 15:56:47 -04:00
psychobunny
40408eb7a1 tjs 0.2.6 2015-06-10 15:49:03 -04:00
barisusakli
6d0d74a6e9 moved topic search end to topics.js 2015-06-10 14:16:35 -04:00
barisusakli
2880a77a9f closes #3130 2015-06-09 17:47:10 -04:00
psychobunny
a6cfdc7508 square buttons on acp 2015-06-09 16:05:45 -04:00
psychobunny
74de675b93 view sitemap button 2015-06-09 15:59:26 -04:00
psychobunny
071922d3ba linking the two tag administration pages together 2015-06-09 15:56:14 -04:00
psychobunny
7689b60773 added maintenance mode link; moved info about reloading into tooltips 2015-06-09 15:47:18 -04:00
psychobunny
0ea35beea6 system control panel 2015-06-09 15:39:22 -04:00
psychobunny
ff234bccfe redirectToLogin() 2015-06-09 15:35:19 -04:00
psychobunny
deda4a4ed6 fixes for 503's in maintenance mode 2015-06-09 15:31:45 -04:00
psychobunny
e3ee3de95d lint 2015-06-09 15:31:43 -04:00
barisusakli
387a5e36b2 search fix, moved topic search to topic.js 2015-06-09 15:10:37 -04:00
Julian Lam
1fef40eb6f updated readme, as oer #3178 2015-06-09 13:30:22 -04:00
Julian Lam
18897c70b4 fixed #3222 2015-06-09 12:49:40 -04:00
psychobunny
0ad1c8afbf forgot to add pagination to default minified file 2015-06-08 18:08:57 -04:00
psychobunny
b0907b8c3c minify some modules that are required on cold load 2015-06-08 18:05:21 -04:00
psychobunny
28e1ae46c7 woops, committed some testing code by accident 2015-06-08 17:56:33 -04:00
psychobunny
7564881298 don't minify files in /client
adds an extra call to the client/route.js file on cold load but cuts a
ton of extra weight in nodebb.min.js
2015-06-08 17:53:55 -04:00
psychobunny
97d1ab2e35 console.log 2015-06-08 17:11:29 -04:00
psychobunny
febc359e53 moved sortable to acp only 2015-06-08 17:10:52 -04:00
psychobunny
f8b3282295 closes #3141 2015-06-08 16:58:53 -04:00
psychobunny
ef6c30ad99 removed some unused variables 2015-06-08 16:35:11 -04:00
psychobunny
548d39fac5 lint 2015-06-08 15:53:07 -04:00
psychobunny
ac2811be75 instance.restart 2015-06-08 15:52:39 -04:00
psychobunny
6c607bca1e closes #3212 2015-06-08 15:50:33 -04:00
psychobunny
6ae64ca884 fixed skin revert message 2015-06-08 15:41:24 -04:00
psychobunny
78ea462620 fix crash when redis server isn't running 2015-06-08 15:34:39 -04:00
barisusakli
ed72bacb1f closes #3220
added back base_url
2015-06-08 13:55:14 -04:00
Raphael Beer
d8c329cadd send topicData on action:topic.delete 2015-06-06 13:29:23 +02:00
barisusakli
3a36ae5c13 wait for loadScript & widgets.render to emit action:ajaxify.end 2015-06-05 22:07:05 -04:00
Julian Lam
96526a37a3 fixed #3218 2015-06-05 13:33:58 -04:00
Julian Lam
5549280696 updated package.json to use SPDX compatible license definition 2015-06-05 13:20:42 -04:00
barisusakli
7fc416f18a test fix 2015-06-04 17:14:22 -04:00
barisusakli
4a0482c421 closes #3208 2015-06-04 16:44:18 -04:00
Julian Lam
17ff083cc6 passing in available composer data into the composer.loaded client-side hook 2015-06-04 14:47:40 -04:00
Julian Lam
b08c7368c6 fixing some formatting 2015-06-04 14:40:20 -04:00
Julian Lam
6fedcca4ee changed a bunch of whitespace back into tabs, and fixed issue where categories without a parentCid were not showing up at all in the ACP 2015-06-04 14:24:38 -04:00
barisusakli
e892cf2e51 faster getUserGroups 2015-06-04 14:16:07 -04:00
Julian Lam
170126680b #3213 2015-06-04 13:42:10 -04:00
Julian Lam
f1c422d190 Merge branch 'extract-gravatar' 2015-06-04 12:33:04 -04:00
Julian Lam
e523ef7c17 added plugin hooks so that imagemagick can still be called, as a plugin, for image manipulation tasks, falling back to using lwip 2015-06-04 12:32:39 -04:00
Julian Lam
88dd8b1d4d using new reset command in plugin incompatibility warning 2015-06-04 12:28:54 -04:00
Julian Lam
54277e62fc fixed #3213 2015-06-04 12:23:30 -04:00
Julian Lam
704104c3bf fixed #3213 2015-06-04 12:23:14 -04:00
Julian Lam
cf35f69826 Merge branch 'lwip' of https://github.com/alpa-cat/NodeBB into extract-gravatar 2015-06-04 09:58:00 -04:00
Julian Lam
37c9c05319 added ACP styling for panel-danger panels 2015-06-03 20:06:47 -04:00
Julian Lam
478850ac05 rewrote a bit of the code so that templates.js is called asynchronously, and moved indentation levels to CSS instead of inlined styling. 2015-06-03 18:10:58 -04:00
Julian Lam
394497c9d5 Merge branch 'categories-parent-acp' of https://github.com/NicolasSiver/NodeBB into NicolasSiver-categories-parent-acp 2015-06-03 16:43:28 -04:00
Julian Lam
493c8752c3 upped theme minvers 2015-06-03 16:41:14 -04:00
Julian Lam
f0064ac11f updated to latest translations 2015-06-03 16:09:10 -04:00
Julian Lam
d5c6e2e73a Merge pull request #3156 from pentode/master
add feature to define mongo client connect options via config.json
2015-06-03 15:54:58 -04:00
psychobunny
f1f028b89c Merge pull request #3161 from yariplus/patch-1
Fix specificity on ACP widget panel heading.
2015-06-02 18:32:19 -04:00
psychobunny
0aceafb344 Merge pull request #3163 from yariplus/patch-2
Call Plugins.addLanguages on reload. Fixes #3153
2015-06-02 18:31:21 -04:00
psychobunny
9704af3b6d some plugins may not have a library, no need to warn unless unable to parse 2015-06-02 17:35:41 -04:00
psychobunny
e74f3da89e fixed sounds on windows 2015-06-02 17:31:17 -04:00
barisusakli
0feb11f205 test 2015-06-02 17:12:46 -04:00
barisusakli
64ec397101 update membercount sorted set on join/leave 2015-06-02 17:11:54 -04:00
psychobunny
18bfa44586 fixed menu items not being highlighted when active in acp 2015-06-02 17:09:49 -04:00
psychobunny
a60cb28562 guests 2015-06-02 17:04:52 -04:00
psychobunny
452b4c6d56 closes #3207 2015-06-02 16:54:19 -04:00
psychobunny
2dfb9837a7 log 2015-06-02 16:42:33 -04:00
Barış Soner Uşaklı
b45fa811b4 renamed .list to .getGroupsFromSet 2015-06-02 16:33:56 -04:00
Barış Soner Uşaklı
4e06b7790f removed unused require 2015-06-02 16:23:48 -04:00
Barış Soner Uşaklı
507fb225a2 removed console.log 2015-06-02 16:21:25 -04:00
Barış Soner Uşaklı
4420e7a9fc closes #3188, closes #3170 2015-06-02 16:20:28 -04:00
psychobunny
05c5196965 closes #3194 2015-06-02 15:56:26 -04:00
Nicolas Siver
a17c65ee9f move item template to file 2015-06-02 22:20:09 +03:00
Barış Soner Uşaklı
64359f4655 set memberCount with groupData 2015-06-02 14:01:28 -04:00
barisusakli
a94e676043 set system to true/false 2015-06-01 15:38:23 -04:00
Barış Soner Uşaklı
b717da0229 Merge pull request #3110 from pitaj/master
Fixed translator backwards compatibility issue
2015-06-01 14:04:24 -04:00
barisusakli
045d9df81f closes #3203 2015-06-01 13:21:34 -04:00
Nicolas Siver
1bfb41bccb sorting tree 2015-05-31 10:49:03 +03:00
Nicolas Siver
3197a9e47c register vendor script 2015-05-31 10:48:13 +03:00
Nicolas Siver
a77641c3ca add new vendor script for sorting 2015-05-31 10:47:31 +03:00
Alpacatty
37ad81a2b0 Swap out ImageMagick for lwip 2015-05-30 20:04:42 +02:00
Nicolas Siver
46ce3aae9f tree view 2015-05-30 18:44:31 +03:00
psychobunny
a355fbfc81 closes #2769 2015-05-29 16:47:12 -04:00
psychobunny
d51407834d closes #3166 2015-05-29 16:19:17 -04:00
barisusakli
fc19405170 added missing callback 2015-05-29 00:40:59 -04:00
barisusakli
fc99864c06 crash fix 2015-05-29 00:02:18 -04:00
psychobunny
b96018b0f5 closes #3187 2015-05-28 16:12:44 -04:00
Barış Soner Uşaklı
a14e22d534 no need for map 2015-05-28 15:52:00 -04:00
Barış Soner Uşaklı
ee17367cc1 removed unused requires, firehook on sucess 2015-05-28 15:27:55 -04:00
Barış Soner Uşaklı
0c32aa0c78 fix test expand option removed 2015-05-28 15:16:29 -04:00
Barış Soner Uşaklı
8610c44e78 escape group data 2015-05-28 15:14:40 -04:00
Barış Soner Uşaklı
8eab5ac402 groups.get changes 2015-05-28 14:51:01 -04:00
Barış Soner Uşaklı
8726e2ccb6 ghfw :rage2: 2015-05-28 13:33:45 -04:00
Barış Soner Uşaklı
1e7da1fc82 removed console.log use getUsersData 2015-05-28 13:33:23 -04:00
Barış Soner Uşaklı
0563bb5923 allow member.isOwner to work on an array 2015-05-28 13:27:09 -04:00
Barış Soner Uşaklı
2129a2fc5f not used 2015-05-28 13:25:13 -04:00
Julian Lam
af8732fcb9 latest translations and fallbacks 2015-05-28 11:46:24 -04:00
Julian Lam
eddabe5a37 upped mentions minver 2015-05-28 11:41:52 -04:00
Julian Lam
f168566928 fixed incorrect use of username in unsub cta in emails 2015-05-27 21:36:13 -04:00
Julian Lam
463c893c3d fixed regression introduced by #2080, closed #3189 2015-05-27 19:08:59 -04:00
Julian Lam
f9053c077d updated groups ACP styling and template to use a table, like categories
Conflicts:
	src/views/admin/manage/groups.tpl
2015-05-27 18:42:18 -04:00
Julian Lam
06f7172c65 closes #3188 2015-05-27 18:04:39 -04:00
psychobunny
e905787301 latest tjs 2015-05-27 16:59:56 -04:00
Barış Soner Uşaklı
0b93738537 dont display hidden/system groups on /groups 2015-05-26 16:09:01 -04:00
Barış Soner Uşaklı
9a236486a9 meh 2015-05-26 16:00:14 -04:00
Barış Soner Uşaklı
82350dc967 fix test 2015-05-26 15:48:27 -04:00
Barış Soner Uşaklı
03bc317065 Merge branch 'master' of https://github.com/NodeBB/NodeBB
Conflicts:
	src/views/admin/manage/groups.tpl
2015-05-26 15:39:57 -04:00
Barış Soner Uşaklı
8117b4459a groups.list added start stop 2015-05-26 15:37:33 -04:00
Julian Lam
b45335c6ba updated groups ACP styling and template to use a table, like categories 2015-05-26 15:24:24 -04:00
Barış Soner Uşaklı
a065a73637 fix missing comma 2015-05-26 15:10:31 -04:00
Barış Soner Uşaklı
7bed4c40d6 closes #3179 2015-05-26 15:05:55 -04:00
Julian Lam
aca5d24a7d split groups.js into more subsidiary files 2015-05-26 14:45:17 -04:00
Barış Soner Uşaklı
8300aeec35 parseInt member count, use getMemberCount in install js 2015-05-26 13:55:40 -04:00
Barış Soner Uşaklı
50d9a3f0a7 dont call groups.get just to read 2 values 2015-05-26 13:44:52 -04:00
Barış Soner Uşaklı
3f1726636f groups create/delete/update 2015-05-26 13:17:49 -04:00
Julian Lam
8a225ad719 starting groups organization 2015-05-26 12:37:44 -04:00
Julian Lam
8f7416d1cb updated acp category privilege settings so that not all groups are shown in privilege table, closes #3036 2015-05-26 12:37:44 -04:00
Julian Lam
cc2a92d73f allowing array of privileges to be passed into setPrivilege in category admin socket listener 2015-05-26 12:37:44 -04:00
Julian Lam
cbb0542984 changed behaviour of privilege table so that groups without explicit privileges are not shown in the privilege table 2015-05-26 12:37:44 -04:00
Julian Lam
4a0bc1fb03 finished up executable rewrite, and prettified reset script output 2015-05-25 21:08:05 -04:00
Julian Lam
e6061810f9 updating nodebb executable so that it is a node script instead of bash script 2015-05-25 16:06:49 -04:00
Julian Lam
fc2efb0c83 added one more line to stdout when nodebb status is invoked, or nodebb web installer finishes 2015-05-25 14:48:01 -04:00
barisusakli
a0a8d328d0 closes #3182 2015-05-25 14:05:52 -04:00
barisusakli
d8e52d7ebf closes https://github.com/NodeBB/nodebb-theme-persona/issues/87 2015-05-25 13:28:04 -04:00
Julian Lam
b2f2561e74 adding a bit of logging when launching NodeBB from the web installer 2015-05-24 10:43:37 -04:00
Julian Lam
349de1694d fixed log line in web installer 2015-05-24 10:43:37 -04:00
barisusakli
714c7356f9 closes #3176 2015-05-23 22:11:24 -04:00
Julian Lam
9ed88b7bb9 updated readme a bit 2015-05-23 22:08:28 -04:00
barisusakli
4b4be3d4cc fix minSchemaDate 2015-05-23 19:30:35 -04:00
Julian Lam
3b891ed7d8 closes #3173 2015-05-23 19:14:37 -04:00
Julian Lam
3055ee96a1 latest translations and fallbacks 2015-05-23 19:12:13 -04:00
Julian Lam
434f1d924e bumped the package's version number for dev purposes 2015-05-23 19:01:09 -04:00
Julian Lam
45589fbeca fixed bug where the selected language in the ACP was arabic, if no language was set at all" 2015-05-23 18:50:41 -04:00
Julian Lam
f6ba4c446a updated minimum versions for nodebb plugins to be the latest they are today 2015-05-23 18:42:47 -04:00
barisusakli
5ce617ca5a fix case in search 2015-05-23 16:16:05 -04:00
barisusakli
63489457fe group search change 2015-05-22 17:07:25 -04:00
psychobunny
1c4d78eb2d return back data in cb similar to topics.post call 2015-05-22 14:37:46 -04:00
psychobunny
f698d28dfb one last fix for #3169 2015-05-22 13:57:42 -04:00
psychobunny
7b81c5db9f #3169 2015-05-22 13:49:57 -04:00
psychobunny
79fd5a4d8e closes #3169 2015-05-22 13:45:41 -04:00
barisusakli
62a2e9fdd0 Merge remote-tracking branch 'origin/master'
Conflicts:
	src/messaging.js
2015-05-22 00:42:46 -04:00
barisusakli
990b02d0db fix crash @julianlam 2015-05-22 00:42:24 -04:00
barisusakli
95e9d7c798 filter messages 2015-05-22 00:39:48 -04:00
Julian Lam
62f1a788e0 prematurely removing null objects before they get parsed as messages 2015-05-21 23:01:10 -04:00
Barış Soner Uşaklı
5931255398 Merge pull request #3165 from kpanayotova/upstream
Bugfix: use sorted set to get user followers in sendTopicNotificationToFollowers
2015-05-21 19:32:52 -04:00
Kalina Panayotova
118de65f5e Bugfix: use sorted set to get user followers in sendTopicNotificationToFollowers 2015-05-21 16:24:33 -07:00
Barış Soner Uşaklı
9165da3b26 Update README.md 2015-05-21 17:19:21 -04:00
psychobunny
63a2a20fd3 remove the old history.pushState hack for mobile composer 2015-05-21 16:33:18 -04:00
psychobunny
55bed3464e if mobile, go to /compose route #3090 2015-05-21 16:25:57 -04:00
psychobunny
117bb407b0 /compose route 2015-05-21 16:24:40 -04:00
barisusakli
39c3afec62 removed updateUserCount 2015-05-21 14:52:39 -04:00
Timothy Fike
09ee1ae77e Call Plugins.addLanguages on reload. Fixes #3153
Ensures routes are set correctly for custom languages.
2015-05-21 14:37:23 -04:00
barisusakli
8acb0ca304 incr on user create 2015-05-21 14:23:06 -04:00
Julian Lam
d90f3649a6 minor tweak to retrieval of category listing in ACP so that hidden categories (those with order of -1) are not retrieved 2015-05-21 14:07:45 -04:00
Julian Lam
7125d902d0 prettifying things 2015-05-21 13:48:03 -04:00
Julian Lam
f6181e6481 fixes #3148 2015-05-21 13:36:27 -04:00
Julian Lam
d052db85e0 fixed bug where isMemberOfGroupList would return null if there were no groups to check, instead of false 2015-05-21 12:26:47 -04:00
Julian Lam
aae3ac6b98 updated title parsing methods to call a new hook: filter:parse.title 2015-05-21 12:07:46 -04:00
Julian Lam
830e1a7a3d fixed issue where privileges were not correctly determined if you were granted moderator access to a category as a group (vs as a single user) 2015-05-21 11:39:39 -04:00
Julian Lam
cd2ed20f3d Merge pull request #3162 from frissdiegurke/patch-1
fixed error-report within translator.js
2015-05-21 10:19:26 -04:00
Julian Lam
58b0b6011f removed console.log from upgrade script (@barisusakli :rage2:) 2015-05-21 10:07:00 -04:00
Ole R.
22e227a6cd fixed error-report within translator.js
reported by [rex-huang](https://community.nodebb.org/user/rex-huang), see https://community.nodebb.org/topic/4520/error-handling-is-wrong-in-translator-js
2015-05-21 15:38:19 +02:00
Timothy Fike
8414e31730 Fix specificity on panel heading.
Needs to be specific so I can put an accordion inside. 😎
2015-05-20 21:41:36 -04:00
A Catty Alpaca
550140ada7 General-Purpose Dockerfile 2015-05-21 01:10:56 +02:00
Julian Lam
927971b392 added hooks for following/follower retrieval 2015-05-20 17:40:08 -04:00
barisusakli
3341fc5644 fix method name 2015-05-20 16:39:33 -04:00
barisusakli
4f37d268b6 removed sort by username 2015-05-20 16:36:26 -04:00
barisusakli
55e20b28ec upgrade script 2015-05-20 16:08:22 -04:00
barisusakli
5f23f04423 Merge remote-tracking branch 'origin/master' into user-search 2015-05-20 15:16:54 -04:00
Julian Lam
972ae42d91 pruned upgrade scripts in preparation for 0.7.0, ping @barisusakli 2015-05-20 11:44:10 -04:00
Julian Lam
671db1681e allowing usage of "false" in silent and daemon environment variables 2015-05-20 09:57:04 -04:00
barisusakli
fd817e865e added pagecount 2015-05-19 23:24:33 -04:00
barisusakli
fbdae8fe1d return time and matchcount on page switch 2015-05-19 23:13:53 -04:00
barisusakli
addd6ecde7 check error fix ip 2015-05-19 23:07:01 -04:00
barisusakli
aa577f4adc part 1
no upgrade script yet
2015-05-19 23:04:28 -04:00
Julian Lam
93df7f14d8 latest translations and fallbacks 2015-05-19 17:45:23 -04:00
Julian Lam
05049946d4 updated error strings 2015-05-19 17:00:07 -04:00
psychobunny
9cdc2e5a2d closes #3147 properly 2015-05-19 15:46:23 -04:00
psychobunny
93170ca106 closes #3147 2015-05-19 15:31:51 -04:00
psychobunny
60f9fc17ae #2928 2015-05-19 14:57:05 -04:00
psychobunny
1550f82652 closes #2928 2015-05-19 14:56:39 -04:00
pentode
297b5906ed add feature to define mongo client connect options via config.json 2015-05-19 14:55:06 -04:00
psychobunny
56e5f505a0 no need to yell! :p 2015-05-19 13:27:02 -04:00
Julian Lam
8aac4bdfa1 fixed issue where Groups.getUserGroups called getGroupsData on all groups, resulting in a very unscalable method if called on forum with thousands of groups 2015-05-19 00:06:37 -04:00
Julian Lam
8bc5330e89 some minor cleanup in the async tree... 2015-05-18 16:01:40 -04:00
Julian Lam
9daa2701cd Merge branch 'hook_favourite_unfavourite' of https://github.com/acardinale/NodeBB into acardinale-hook_favourite_unfavourite 2015-05-18 15:57:09 -04:00
Julian Lam
ec91efdd2d latest translations and fallbacks 2015-05-18 15:56:37 -04:00
Julian Lam
de71910f4c documentation is actually at docs portal, not wiki 2015-05-18 15:25:45 -04:00
barisusakli
48b5d90a9e closes #3150 2015-05-17 15:53:42 -04:00
barisusakli
20983c43f4 fix user privileges 2015-05-15 15:20:10 -04:00
psychobunny
e6beeb62cf {config.relative_path} instead of {relative_path} 2015-05-15 15:00:48 -04:00
barisusakli
5c4e988232 fix user.csv data 2015-05-15 14:46:42 -04:00
Julian Lam
220b42706f adding a check so that websocket method in notif pushing isn't called if the socket server isn't initialised 2015-05-15 14:14:20 -04:00
Julian Lam
fc1b0c8d24 allowing topic, post, and user creation to specify a timestamp for insertion into the past 2015-05-15 09:47:39 -04:00
barisusakli
30a9b66b31 fix room enter 2015-05-15 00:02:59 -04:00
barisusakli
d9af2242a7 store id as int 2015-05-14 22:04:53 -04:00
barisusakli
10de7a92e4 dont let joining other uid rooms 2015-05-14 13:53:02 -04:00
barisusakli
36853f4ad8 filter priv/registered-users/guests in groups.list 2015-05-13 18:32:27 -04:00
psychobunny
9c2a98486a fixed tag topic count color in ACP 2015-05-13 18:31:26 -04:00
barisusakli
68ceaadad1 removed static 404/403/500 routes 2015-05-13 17:22:48 -04:00
psychobunny
4124370efe tjs 0.2.3 2015-05-13 15:50:39 -04:00
Barış Soner Uşaklı
2706477bcc Merge pull request #3133 from akhoury/patch-1
guard against NULL mids/messages
2015-05-13 14:24:48 -04:00
Aziz Khoury
35c426ee1c guard against NULL mids/messages
I've seen them few times during import testing. In case the conversation does not exists.
2015-05-13 13:02:00 -04:00
Andrea Cardinale
da56681f73 Revert "Extra class in Topic list"
This reverts commit 5f0531e66a.
2015-05-12 23:56:27 +02:00
Andrea Cardinale
7c5ba9b7b1 Revert "Add hooks: action:post.favourite and action:post.unfavourite"
This reverts commit 1d22a2d46b.
2015-05-12 23:52:48 +02:00
Andrea Cardinale
1d22a2d46b Add hooks: action:post.favourite and action:post.unfavourite 2015-05-12 23:41:15 +02:00
Andrea Cardinale
5f0531e66a Extra class in Topic list 2015-05-12 23:12:42 +02:00
barisusakli
93fd938913 removed setTimeout 2015-05-12 16:32:30 -04:00
psychobunny
a88ad903af action:ajaxify.dataLoaded 2015-05-12 14:19:45 -04:00
barisusakli
224e3dc263 fix settings page 2015-05-12 10:53:52 -04:00
barisusakli
484ad33549 convert key, value index to sparse/unique 2015-05-11 18:07:45 -04:00
barisusakli
29aa858a11 fix admin/advanced/database values 2015-05-11 17:44:43 -04:00
psychobunny
e070a9777e #3125 2015-05-11 16:53:12 -04:00
barisusakli
ba9a68c59c async.waterfall 2015-05-11 16:13:09 -04:00
barisusakli
d3b52136bd fix suggested topics search 2015-05-11 16:01:22 -04:00
barisusakli
f55e8bc548 actually rename :dull: 2015-05-11 15:51:41 -04:00
barisusakli
dce9a19882 resolve method name collision, getPostsFromSet -> getPostSummariesFromSet 2015-05-11 15:43:57 -04:00
barisusakli
d11bfab275 async posts/topics.js 2015-05-11 15:38:14 -04:00
barisusakli
2b90568157 removed getLatestTids, renamed getPostsByTid removed unused tid param 2015-05-11 15:31:31 -04:00
barisusakli
b292aeea72 closes #3120
also dont allow loading posts of a topic if its deleted via
topics.loadMore
2015-05-11 15:12:23 -04:00
barisusakli
be1865da2d closes #3127 2015-05-11 14:33:41 -04:00
psychobunny
0f199af84d moved widget code out of controller; cleaned up code into a folder 2015-05-11 14:20:10 -04:00
psychobunny
394d55de99 closes #3125 2015-05-11 13:59:07 -04:00
psychobunny
2ed0f25d45 fixed widgets page rendering, along with tjs 0.2.2 2015-05-11 13:53:16 -04:00
psychobunny
551c81a977 grunt: watch for tjs changes as well 2015-05-11 13:52:52 -04:00
psychobunny
8f6d8001d6 0.2.1* 2015-05-11 12:40:40 -04:00
psychobunny
43755b2ce3 tjs 0.2.0 2015-05-11 12:39:21 -04:00
Julian Lam
e75ec97049 closes #3121 -- if for any reason postData.content is not a string, make sure it is a string before it hits plugins. 2015-05-11 12:20:58 -04:00
barisusakli
e79a386280 don't try to minify non-js files 2015-05-11 02:38:57 -04:00
psychobunny
9ca7243124 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2015-05-09 01:55:47 -04:00
psychobunny
f2a91ef655 updating widget containers for latest tjs 2015-05-09 01:55:41 -04:00
barisusakli
9518c006b5 fix userlang 2015-05-08 18:42:49 -04:00
Julian Lam
ca1ada9dc5 Merge pull request #3122 from pichalite/master
completes fix for #3119
2015-05-08 17:19:56 -04:00
barisusakli
74d6104072 correct upgrade date 2015-05-08 16:14:48 -04:00
barisusakli
c6a05930aa fix \uff0e in emails 2015-05-08 16:14:32 -04:00
barisusakli
7b550b13b9 display both redis/mongo info if available 2015-05-08 15:36:06 -04:00
barisusakli
0083d4ff1c return user settings in api 2015-05-08 14:53:08 -04:00
pichalite
732f6d7d80 Update plugins.tpl 2015-05-08 11:18:43 -07:00
barisusakli
27bf1c1b2e fix privilege upgrade script 2015-05-08 13:35:54 -04:00
barisusakli
ffac8eb41d closes #3118 2015-05-07 23:24:33 -04:00
barisusakli
9d273d3a32 fixed date log 2015-05-07 22:40:32 -04:00
Barış Soner Uşaklı
b08774763a added tpl to ajaxify.content-loaded 2015-05-07 15:27:01 -04:00
Barış Soner Uşaklı
c74d32a172 fix off by 1 error on user/topics posts #3120 2015-05-07 14:44:01 -04:00
Barış Soner Uşaklı
eaa89a4da7 added checks to skip empty/non-existing hashes 2015-05-07 14:23:03 -04:00
Barış Soner Uşaklı
dfffbace42 fix test callback 2015-05-07 14:15:28 -04:00
Barış Soner Uşaklı
c56b30ff60 convert uid mappings to sorted sets
email:uid, username:uid, userslug:uid, fullname:uid all converted to
sorted sets
prevents hitting mongodb document size limit
2015-05-07 13:43:06 -04:00
Julian Lam
073afe4db0 updated ./nodebb dev to match new loader.js behaviour 2015-05-06 21:43:41 -04:00
Julian Lam
0ff09d8093 changed the behaviour of --no-daemon so that it does not also pipe output to stdout, use new flag --no-silent for that. --no-daemon just does as it advertises, and doesn't daemonize the loader process before spawning app.js instances. 2015-05-06 21:41:04 -04:00
Julian Lam
ba36230262 closed #3119 2015-05-06 21:17:10 -04:00
psychobunny
d1231cf4a8 closes #3116 2015-05-06 18:30:09 -04:00
psychobunny
72177f6d16 #3114, #2830 2015-05-06 16:50:04 -04:00
psychobunny
8abca6b03f closes #3114, #2830 2015-05-06 16:44:22 -04:00
Julian Lam
cd7a3f64f4 removed extra console logging 2015-05-06 14:58:13 -04:00
psychobunny
c1dd0dd669 fixing nodebb startup on windows 2015-05-06 14:44:13 -04:00
psychobunny
954212fc9f emit templates:compiled event if skipped 2015-05-06 14:32:19 -04:00
Julian Lam
c7fbaf1a53 updated notif page code to work with new mobile-only dropdown for marking notifications read 2015-05-05 12:10:16 -04:00
Julian Lam
e18f6c95fa added link to 'install plugins' page in acp installed plugins menu dropdown
also fixed annoying white background when a menu item other than the one active is focused upon
2015-05-05 11:47:59 -04:00
barisusakli
b561c49de5 moved filter:users.search before pagination 2015-05-04 18:12:14 -04:00
barisusakli
73d65dd123 filter:users.search filter:users.build hooks 2015-05-04 18:01:45 -04:00
barisusakli
b48fdfadad set group member count to 1 on group creation 2015-05-04 16:40:57 -04:00
barisusakli
2fc8b153c1 img-responsive on about me images 2015-05-04 14:02:52 -04:00
barisusakli
4f8a1174a1 default about me length 2015-05-04 13:54:29 -04:00
barisusakli
1ee6255450 closes #3104 2015-05-04 13:32:49 -04:00
barisusakli
a924c456b9 closes #3113 2015-05-04 13:16:31 -04:00
Peter Jaszkowiak
ad7b561dd4 Fixed translator backwards compatibility issue
Also removed the _clearMenus global object because populating the global namespace is bad, bad, bad
2015-05-03 23:36:23 -06:00
barisusakli
7312540b72 closes #3109 2015-05-03 23:58:22 -04:00
Peter Jaszkowiak
a93a1d720d Merge pull request #7 from NodeBB/master
update
2015-05-02 18:02:57 -06:00
barisusakli
122aacdc57 check err item 2015-05-02 15:52:48 -04:00
Julian Lam
7f80a4a439 latest translations 2015-05-01 20:08:24 -04:00
barisusakli
b94d4f7fe5 Merge remote-tracking branch 'origin/master'
Conflicts:
	public/language/en_GB/error.json
2015-04-29 14:30:03 -04:00
barisusakli
9749658d35 added about me field 2015-04-29 14:29:18 -04:00
Julian Lam
1c94866ab3 addressed some issues brought up re: singular vs plural 2015-04-28 17:57:29 -04:00
barisusakli
3063da83ef argument fix for static/action hooks 2015-04-28 15:09:17 -04:00
barisusakli
163b70fba9 fix acp logout 2015-04-28 12:59:00 -04:00
Julian Lam
a462b10f94 nevermind... (@barisusakli 🧌) 2015-04-27 23:05:14 -04:00
Julian Lam
379bdd12e0 fixed improper parsing of url in loader, and updated mongo init to not send anything in cb except err. Also updated webserver init so that it doesn't expect stuff from static:app.preload 2015-04-27 22:51:44 -04:00
Julian Lam
f6ddff3e5f updated loader to kickstart the web installer if no config is found 2015-04-27 22:41:44 -04:00
barisusakli
c98e630f24 warn missing url 2015-04-27 21:42:08 -04:00
Barış Soner Uşaklı
3b93182ec1 Merge pull request #3091 from Icehunter/master
use replicaset if configured
2015-04-27 20:53:48 -04:00
barisusakli
2286d1137b remove tab 2015-04-27 20:32:37 -04:00
barisusakli
d946a2fcbd closes #3098
wait for templates to compile even if using clustering
fix emitter.all
upgrade.check error first
removed plugins.ready, using callback on plugins.init
removed webserver.init, using webserver.listen
2015-04-27 20:26:02 -04:00
barisusakli
51212c2bfa closes #3096 2015-04-27 16:02:13 -04:00
psychobunny
2fbe7a8190 webserver: only start listening _after_ everything is compiled 2015-04-27 14:46:05 -04:00
Ryan Wilson
6f66209428 use tabs per barisusakli 2015-04-27 11:08:58 -07:00
psychobunny
8bb73192cf closes #3073 2015-04-27 13:50:02 -04:00
psychobunny
533193fa79 send in data to action:taskbar.pushed as well 2015-04-27 12:44:35 -04:00
psychobunny
1556365712 call taskbar.push regardless of whether it's a new chat or not
there's logic in taskbar.push to not create the element anyways
2015-04-27 12:41:16 -04:00
psychobunny
c13e14d2c8 pass in element to filter:taskbar.push; taskbar.push cleanup 2015-04-27 12:25:05 -04:00
barisusakli
b9172358dd #3093 2015-04-26 12:56:18 -04:00
Julian Lam
84cbdc1358 changed the password confirmation form field in the web installer so that it doesn't clobber some env vars, and allowed admin username and email to be set via env var 2015-04-25 22:34:54 -04:00
Julian Lam
5a6c46a0a0 updating group creation method to send back group data in the return callback, and to include the ownerUid if one was passed in 2015-04-25 15:00:09 -04:00
barisusakli
0d7e72be51 removed dupe code 2015-04-25 12:59:56 -04:00
Ryan Wilson
c354929569 handled port as int with toString()
Signed-off-by: Ryan Wilson <syndicated.life@gmail.com>
2015-04-25 08:16:27 -07:00
Ryan Wilson
ec6c618751 use replicaset if configured
Signed-off-by: Ryan Wilson <syndicated.life@gmail.com>
2015-04-25 08:05:33 -07:00
barisusakli
17dfb4df94 posts_list.tpl changes 2015-04-24 22:51:52 -04:00
Julian Lam
275a9ef476 Reverted the last update to web installer, and updated it so environment variables always take precedence over form input, and form is hidden if database value is passed in 2015-04-24 15:13:52 -04:00
Julian Lam
5487da9030 updated web installer to auto-select the database if passed in via env var 2015-04-24 14:50:31 -04:00
Julian Lam
67eef3653b updated the web install form to populate the database fields if a value is passed in 2015-04-24 14:40:14 -04:00
barisusakli
dc16a665ae page checks #3089 2015-04-24 10:59:00 -04:00
barisusakli
47a2377229 closes #3089 2015-04-24 10:39:24 -04:00
barisusakli
03b0d282f1 search fix prevent crash if search term is invalid regex 2015-04-23 17:58:28 -04:00
barisusakli
e5928f330e closes #3085 2015-04-23 17:18:11 -04:00
barisusakli
d6949815ad #3085 2015-04-23 17:03:31 -04:00
Barış Soner Uşaklı
a5c52958e7 made handleSearch public 2015-04-23 16:06:27 -04:00
Barış Soner Uşaklı
e88d88e56c added return false 2015-04-23 15:43:50 -04:00
Barış Soner Uşaklı
8544531a79 removed event 2015-04-23 15:05:27 -04:00
Barış Soner Uşaklı
21b634e03f closes #3081 2015-04-23 14:37:27 -04:00
Barış Soner Uşaklı
f44e850fa0 revert last change, breaks ajaxify 2015-04-23 13:50:48 -04:00
Barış Soner Uşaklı
5d5346c4f9 allow overriding template name 2015-04-23 13:43:27 -04:00
Julian Lam
a54dccdf3b closed #3068 2015-04-23 11:27:44 -04:00
Julian Lam
15265bf36e Merge pull request #3071 from yariplus/settingsobject2
Enhance settings object plugin
2015-04-23 11:18:46 -04:00
Julian Lam
c004efee3f closed #3084 2015-04-23 11:15:37 -04:00
psychobunny
a9015cee03 Merge remote-tracking branch 'origin/master' into web-install 2015-04-22 18:21:22 -04:00
psychobunny
fac747cab7 call loader.js instead 2015-04-22 17:59:08 -04:00
psychobunny
24a11314dc installer - finally got it all working ;) 2015-04-22 17:51:35 -04:00
psychobunny
255e3bdd20 default is 4567 instead of 8080 2015-04-22 15:52:12 -04:00
psychobunny
e8ea1e12a1 launch nodebb after install 2015-04-22 15:51:14 -04:00
psychobunny
ddd5c49461 installer ux fixes 2015-04-22 15:29:29 -04:00
psychobunny
9b53cdfcc0 skip to the launch screen if config is set but installer is still active 2015-04-22 15:17:08 -04:00
psychobunny
7488fa0416 cleanup; fixes 2015-04-22 15:13:59 -04:00
psychobunny
5db3166136 log 2015-04-22 14:54:55 -04:00
psychobunny
d72d1a1641 save values from form 2015-04-22 14:54:35 -04:00
psychobunny
45e216edef installer: database error messages 2015-04-22 14:49:31 -04:00
psychobunny
8556ddd9a0 installation spinner; started launch page 2015-04-22 14:39:37 -04:00
psychobunny
e9a92bd1bf removed some compile scripts that we don't need 2015-04-22 14:08:15 -04:00
psychobunny
6533941207 remove hardcoded port variable 2015-04-22 14:07:24 -04:00
psychobunny
b617c1faa9 use from-file to optimize grunt dev with web installer 2015-04-22 14:06:59 -04:00
psychobunny
c8000d36db hint 2015-04-22 13:58:43 -04:00
psychobunny
f981e6d466 fixed confirm password validation 2015-04-22 13:57:18 -04:00
barisusakli
d99e028a1e only call sortedSetCard if using pagination 2015-04-22 13:57:14 -04:00
psychobunny
220dec5711 installer: validate before sending form 2015-04-22 13:54:51 -04:00
barisusakli
dd61bdb9c6 closes #3038 2015-04-22 13:47:41 -04:00
psychobunny
ee78281f35 console.log 2015-04-22 13:22:07 -04:00
barisusakli
6dfb229c66 closes #2842 2015-04-22 12:13:14 -04:00
psychobunny
176bf28d2f web installer works, woohoo! 2015-04-22 11:36:19 -04:00
psychobunny
948ad5fb44 Merge remote-tracking branch 'origin/master' into web-install 2015-04-22 11:23:10 -04:00
psychobunny
859e7593e1 basic installer function 2015-04-22 11:22:55 -04:00
barisusakli
a2497b050e crash fix 2015-04-22 11:10:46 -04:00
Julian Lam
8f5c393b12 only exposing password at setup end if one is autogenerated 2015-04-22 10:58:58 -04:00
barisusakli
7632997a99 closes #3045 2015-04-22 10:41:49 -04:00
Julian Lam
d7444e5edf removed from required values for env setup 2015-04-22 10:30:42 -04:00
Julian Lam
b604c9d5e1 updated install script to accept environment variables
updated upgrade script to execute callback when present
updated install script to not fire upgrades unless necessary
updated install script to write directly to console, and not through winston
if a password is not provided, one is auto-generated
2015-04-22 10:28:03 -04:00
psychobunny
3d9519bdec installer: actually installing nodebb 2015-04-21 20:42:06 -04:00
psychobunny
e2215b9912 don't blindly ignore error in install.js 2015-04-21 20:27:40 -04:00
psychobunny
89c863caa7 embarassing console.log's are allowed at 8pm on monday 2015-04-21 20:05:35 -04:00
psychobunny
213ee2d063 installer: fixed validation 2015-04-21 20:04:38 -04:00
psychobunny
2646b38dd2 woops, added too many namespaces 2015-04-21 20:02:38 -04:00
psychobunny
a93e52aade fixed cold load database switcher for installer 2015-04-21 19:54:33 -04:00
psychobunny
20a1ab185c small refactor to install/web.js 2015-04-21 19:50:58 -04:00
psychobunny
a386974585 installer: database switcher 2015-04-21 19:31:25 -04:00
psychobunny
bf13b6160f load database questions 2015-04-21 19:10:47 -04:00
psychobunny
a11652ead1 cleanup installer.less 2015-04-21 18:48:58 -04:00
psychobunny
8a7aaf8f76 installer: validate email 2015-04-21 18:38:54 -04:00
psychobunny
ab2272b6b5 installer: confirm password 2015-04-21 18:32:24 -04:00
psychobunny
fe40d0f9e8 installer: password validation 2015-04-21 18:21:50 -04:00
psychobunny
9fba76dc43 fixed header links for installer 2015-04-21 18:01:07 -04:00
psychobunny
22d2ba5d6b mobile optimization for installer 2015-04-21 18:00:01 -04:00
psychobunny
50b9a7096e minor ux 2015-04-21 17:50:42 -04:00
psychobunny
25e2e72366 got username validation working 2015-04-21 17:14:27 -04:00
psychobunny
1f2bd9390d compiling JS as well now 2015-04-21 17:02:36 -04:00
barisusakli
828980f3e6 closes #3008 2015-04-21 16:48:41 -04:00
psychobunny
55c969ab23 Merge remote-tracking branch 'origin/master' into web-install 2015-04-21 16:44:53 -04:00
barisusakli
3ffd3a5d3c closes #2970, closes #3078 2015-04-21 16:26:29 -04:00
psychobunny
14b16cb527 log 2015-04-21 16:21:51 -04:00
psychobunny
005c95277b using less for web installer 2015-04-21 16:21:04 -04:00
psychobunny
2ffdec5386 styled active clas 2015-04-21 15:43:55 -04:00
Julian Lam
2f2e2d60a0 updated translations 2015-04-21 15:37:36 -04:00
psychobunny
ee94d72c59 themed installer, started form 2015-04-21 15:24:50 -04:00
psychobunny
60d655e32b installer - got the basics in 2015-04-21 14:52:57 -04:00
Julian Lam
610d687a96 moved favicon into default link tags, and fixed bug that caused link tags to not show up 2015-04-21 14:32:36 -04:00
psychobunny
2dc20e690f web install init 2015-04-21 14:32:21 -04:00
Julian Lam
a72501f3b4 closed #3076 2015-04-21 12:30:06 -04:00
Julian Lam
c26f274392 moved meta and link tag parsing out to a new module, meta/tags 2015-04-21 12:30:06 -04:00
Julian Lam
cc4e626f5f updated middleware.renderHeader so that navbar config is retrieved in parallel like everything else, instead of retrieved first. (ping @psychobunny) 2015-04-21 12:30:06 -04:00
barisusakli
625a0dcbfa closes #3074 2015-04-20 23:26:02 -04:00
barisusakli
0c91391c75 display posts cache capacity/post count 2015-04-20 18:23:09 -04:00
barisusakli
1f06f90a50 closes #3051
updated lru to latest
created new files posts/cache.js posts/parse.js posts/edit.js
2015-04-20 17:56:48 -04:00
Julian Lam
eb0e2fe75d latest translations 2015-04-20 17:47:02 -04:00
Julian Lam
9e994f3baf finally closed #2887 -- added implicit privilege markers to client-side privileges table 2015-04-20 16:58:44 -04:00
Julian Lam
5a0ea28633 better fix for #3040 2015-04-20 16:05:14 -04:00
Julian Lam
bbccc38efd Revert "made pagination.loadPage also a silent ajaxify, so in-topic searching works with it"
This reverts commit 7e3e7edfd4.
2015-04-20 16:05:14 -04:00
barisusakli
72f80dd330 closes #3052 2015-04-20 15:49:13 -04:00
Julian Lam
7e3e7edfd4 made pagination.loadPage also a silent ajaxify, so in-topic searching works with it 2015-04-20 15:47:22 -04:00
barisusakli
759bdd55f0 closes #3065 2015-04-20 15:41:08 -04:00
barisusakli
dd92b06f16 #3064 2015-04-20 14:00:48 -04:00
Julian Lam
e309a188c3 fixed issue in ajaxify.go where search module was not properly required 2015-04-20 13:08:50 -04:00
Julian Lam
51f38e664c latest translations and fallbacks 2015-04-20 12:09:00 -04:00
Julian Lam
d780b82b01 added Bulgarian to NodeBB, благодаря! 2015-04-20 12:08:47 -04:00
yariplus
9d3a9f4493 Enhance settings object plugin
Use an array to declare the object properties so that the order is always the same.
Add a data-new attribute for individual properties. (You can still use a whole object in the data-new attribute of a parent array.)
Add data-prepend and data-append attributes to properties for inserting html before or after that property. (This may also be useful for the array plugin.)
2015-04-20 10:40:11 -04:00
Julian Lam
821c9f12d6 updated scrollToPost behaviour to no longer ajaxify loudly. Also updated call to checkPagePresence to fire before the topicDOM events begin, so if an in-topic search is conducted on a different topic from the current topic, the topicDOM behaviour continues. closes #3040 2015-04-19 23:34:15 -04:00
barisusakli
37a7ac5196 closes #3063 2015-04-19 18:45:16 -04:00
barisusakli
50feb7a766 default to zero if post_count topic_count is falsy 2015-04-19 15:24:11 -04:00
barisusakli
c45fe28266 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2015-04-19 15:18:58 -04:00
barisusakli
c24dce4dd6 closes #3062 2015-04-19 15:18:55 -04:00
Julian Lam
65b2523b0f closed #3050 2015-04-18 22:32:20 -04:00
barisusakli
b7b44e13b1 added privileges.topics.filterUids
if a topic is deleted and user doesn't have permissions/admin/mod dont
send notifs
2015-04-18 16:34:32 -04:00
Julian Lam
8ee40ece71 removed checks that would send the user to 404 if the slug didn't match, restored old behaviour of redirecting to the correct slug. #3047 2015-04-18 14:47:40 -04:00
barisusakli
da5909349b closes #3053 2015-04-18 13:11:52 -04:00
barisusakli
e8afe329a9 pagination 2015-04-17 23:07:18 -04:00
barisusakli
0d6772c30b warning/errors on invalid ports config 2015-04-17 17:52:11 -04:00
psychobunny
5d04cd0bef ability to add class to taskbar; new action hook; send touid in chat 2015-04-17 15:25:32 -04:00
Julian Lam
5a0c657587 re: #3043, if no address is entered, "http://" won't get automatically saved in 2015-04-17 15:17:30 -04:00
Julian Lam
5d495483ad using url module to normalise passed-in url prior to saving in db, closes #3043 2015-04-17 15:16:00 -04:00
psychobunny
23c4ecfe60 filter:taskbar.push
not really a filter, but does the job as long as its synchronous
2015-04-17 14:38:54 -04:00
Julian Lam
a5832624d7 added optional parameter to define timestamp when sending a chat message, for use in write API 2015-04-17 14:38:01 -04:00
Julian Lam
5587233e78 fixed quoting and highlighted-text auto-quote for composer when composer is minimized, closes #2870 2015-04-17 14:12:49 -04:00
psychobunny
1d94b6a96f closes #3000 2015-04-17 13:44:47 -04:00
psychobunny
c188fa2a1f closes #3049 2015-04-17 13:22:04 -04:00
Julian Lam
ee7d356781 Merge pull request #2825 from yariplus/settingsobject
Add object setting plugin
2015-04-17 12:54:30 -04:00
Barış Soner Uşaklı
a481d2c3fe closes #3041 2015-04-17 12:43:56 -04:00
Barış Soner Uşaklı
f71c82f653 closes #3046 2015-04-17 12:32:08 -04:00
Fokke Zandbergen
1eee970ebb Allow NodeBB version to be set via config to package.json version can be incremented when needed. 2015-04-17 12:20:08 -04:00
Julian Lam
848babcdfa Merge pull request #2778 from ahwayakchih/support-more-config-defaults-for-setup
This adds more setup defaults from config.
2015-04-17 11:14:30 -04:00
Fokke Zandbergen
86317a4b79 Replace schemeless URLs for emails 2015-04-17 14:35:45 +02:00
barisusakli
d146547b53 if topic doesnt have teaser use main post in rss feed 2015-04-16 22:42:00 -04:00
Julian Lam
0e9a096c25 moved some socket notifications to notifyUser instead of in websocket layer (again, @barisusakli) 2015-04-16 20:48:38 -04:00
Julian Lam
d40ca1e3c8 moved a number of sanity checks to also be in canMessage, so they are all consolidated into one exported method. (@barisusakli) 2015-04-16 20:32:16 -04:00
Julian Lam
078d76a11b removed sanitisation of chat message body, as messages are "parsed as a post" now. 2015-04-16 20:22:27 -04:00
barisusakli
4e793995a0 dont add http:// to website if its empty 2015-04-16 19:32:29 -04:00
Barış Soner Uşaklı
c9b5948034 closes #2927 2015-04-16 14:31:58 -04:00
Julian Lam
4fffe4da94 moved plugin route reloading outside of plugin initialisation, so plugins can add a hook listener before core routes have been added 2015-04-16 14:28:04 -04:00
Barış Soner Uşaklı
617808d574 teaser is just reply, dont include mainPid 2015-04-16 13:34:23 -04:00
Barış Soner Uşaklı
e7dd881092 teaser fixes
if a post is deleted/restored update the teaser to the latest undeleted
pid, if all posts are deleted it will be set to null
2015-04-16 13:23:21 -04:00
Barış Soner Uşaklı
edb856ba90 fixed typo 2015-04-16 12:59:02 -04:00
Barış Soner Uşaklı
6e80dff188 closes #2968 2015-04-16 12:58:03 -04:00
psychobunny
f7734d9b91 missing lang string 2015-04-16 12:25:51 -04:00
Julian Lam
0e0b92f794 update group pages to use components 2015-04-15 16:53:54 -04:00
Barış Soner Uşaklı
7bc2eeff4a duh 2015-04-15 14:58:37 -04:00
Julian Lam
1c36fbd57b fixed #3034 2015-04-15 14:45:52 -04:00
Julian Lam
2000947cd6 fixed #3030 2015-04-15 13:42:45 -04:00
Barış Soner Uşaklı
1e443551a5 added userslug 2015-04-15 12:36:37 -04:00
Barış Soner Uşaklı
b32d58e306 Merge pull request #3035 from FokkeZB/patch-3
Fix link in email notifications
2015-04-15 12:35:24 -04:00
Barış Soner Uşaklı
ba1afdf879 dont crash if callback isnt supplied fixes #3033 2015-04-15 11:51:38 -04:00
Barış Soner Uşaklı
68835844b0 crash fix #3031 2015-04-15 11:27:26 -04:00
Fokke Zandbergen
49e996caaf Fix link in email notifications 2015-04-15 13:19:00 +02:00
Fokke Zandbergen
a17cbbb8ad Fix link in email notifications 2015-04-15 13:18:50 +02:00
Fokke Zandbergen
3a090ef308 Fix link in email notifications 2015-04-15 13:18:06 +02:00
Julian Lam
27049a2180 updated theme minimum versions 2015-04-14 20:44:47 -04:00
Julian Lam
b58e50fb1e updated bootstrap js version in core 2015-04-14 20:44:47 -04:00
barisusakli
500c9f061c removed return 2015-04-14 15:54:48 -04:00
barisusakli
8c7ded3062 closes #3026 2015-04-14 15:31:17 -04:00
barisusakli
d5dd48ecc8 closes #3013 2015-04-14 14:27:42 -04:00
barisusakli
f7a3aef322 escape on the way out, fixes birthday/age calculation 2015-04-14 14:16:06 -04:00
barisusakli
eaa442db8c update deleted propery before calling hook 2015-04-14 13:06:01 -04:00
Julian Lam
e147328d53 updated backgroundDraggable jquery plugin with fork that allows for percentages: ad2c5a87d1 2015-04-14 12:52:49 -04:00
Julian Lam
6a509a51db fixes #2992 2015-04-14 12:23:28 -04:00
barisusakli
1cc80cbc84 closes #3014 2015-04-14 11:01:16 -04:00
Julian Lam
a055ff3547 latest translations 2015-04-14 10:21:15 -04:00
Julian Lam
32d3be0cbd closes #3014, closes #3009 2015-04-13 20:02:56 -04:00
barisusakli
fa9fde43fb closes #2971 2015-04-13 17:29:48 -04:00
Julian Lam
ceba856006 fixing categories with null parentCids, again 2015-04-13 16:12:29 -04:00
barisusakli
7fa014e5ad closes #3016 2015-04-13 16:10:56 -04:00
Julian Lam
80250b6f6c adding default of parentCid 0 if parentCid not set 2015-04-13 16:02:22 -04:00
barisusakli
5501c0c759 closes #3005 2015-04-13 15:01:38 -04:00
barisusakli
663ad38727 closes #3004 2015-04-13 13:17:24 -04:00
barisusakli
dd175ada67 closes #3003 2015-04-13 13:07:20 -04:00
barisusakli
1910fdb977 fix xss on guest handles, make sure guest handlers arent longer than max username length 2015-04-13 13:04:47 -04:00
barisusakli
cf825d02b7 escape title 2015-04-13 12:45:39 -04:00
psychobunny
c92ef6cf34 closes #3012 2015-04-13 10:57:34 -04:00
psychobunny
bbef94ed25 made the security vulnerability section a bit more obvious 2015-04-13 10:41:35 -04:00
psychobunny
3ec99b8021 #3011 2015-04-13 10:35:27 -04:00
barisusakli
3de083208d closes #3002 2015-04-12 22:12:27 -04:00
psychobunny
1201425db2 hint 2015-04-12 20:48:09 -04:00
psychobunny
e78fc98146 cross-browser support for composer resize animation 2015-04-12 20:48:08 -04:00
psychobunny
5db4714ba8 add success message to watch / ignore category methods 2015-04-12 20:48:07 -04:00
psychobunny
4d414d0b63 .category-box and .post-preview now components 2015-04-12 20:48:07 -04:00
barisusakli
1b2da78fd8 missing lines 2015-04-11 16:50:55 -04:00
barisusakli
1ce3d7284b closes #2995 2015-04-11 16:48:09 -04:00
barisusakli
427dda654a temp fix for #2994 2015-04-11 16:13:19 -04:00
barisusakli
039dab829a downgrade autocomplete to 0.1.2 2015-04-11 15:50:44 -04:00
barisusakli
a14249dee6 removed tags 2015-04-10 16:45:37 -04:00
barisusakli
729fb1d696 advanced search change 2015-04-10 16:13:45 -04:00
barisusakli
3d0b50a9b7 closes #2975 2015-04-10 15:40:23 -04:00
barisusakli
45bf5de1e5 closes #2982
update url with new slug on topic title edit
2015-04-10 15:01:36 -04:00
psychobunny
5c59aa7737 closes #2986 2015-04-10 14:23:40 -04:00
psychobunny
799cc9397a closes #2973
also fixes some UX issues and enforces password length check on both
client and server
2015-04-10 13:37:54 -04:00
barisusakli
cc6f37ac4e added category bgColor/color to getPostSummary 2015-04-10 13:29:09 -04:00
psychobunny
13b4e446bf closes #2984 2015-04-10 12:40:05 -04:00
psychobunny
59909894fc closes #2981 2015-04-10 12:35:49 -04:00
psychobunny
f601bdee5e Merge branch 'master' of https://github.com/NodeBB/NodeBB 2015-04-10 12:00:23 -04:00
psychobunny
97419bbdd9 closes #2980 2015-04-10 12:00:18 -04:00
barisusakli
8069cbda69 closes #2979
if all is selected search in all categories
2015-04-09 18:15:31 -04:00
barisusakli
0b76ed90aa no group title 2015-04-09 17:59:26 -04:00
barisusakli
b2fad172e5 closes #2966 2015-04-09 17:37:28 -04:00
Barış Soner Uşaklı
9c7c87fd3b closes #2972 2015-04-09 15:37:20 -04:00
Barış Soner Uşaklı
df3e007120 closes #2969 2015-04-09 14:53:59 -04:00
barisusakli
835d4db481 dont add category/topic slug if user doesnt have read permission
or category is disabled etc.
2015-04-08 21:16:11 -04:00
Julian Lam
0c851d864e latest fallbacks 2015-04-08 21:05:56 -04:00
psychobunny
56d1b521c5 closes #2967
@barisusakli  there was a return; if user is offline, don't see any
reason why it should be so I removed it, just FYI
2015-04-08 18:11:17 -04:00
psychobunny
43bd798f2b #2967 2015-04-08 18:03:19 -04:00
psychobunny
885b36bb50 closes #2965 2015-04-08 17:28:19 -04:00
Barış Soner Uşaklı
0ed46c3bae closes #2963, closes #2957 2015-04-08 11:54:38 -04:00
Barış Soner Uşaklı
5fda8422c5 fix focus 2015-04-08 11:37:02 -04:00
Barış Soner Uşaklı
436a9a61b8 fix language file 2015-04-08 11:32:36 -04:00
Julian Lam
3c6d154a27 translation strings for #2960 2015-04-08 10:43:59 -04:00
Julian Lam
3c0c806780 updated latest translations 2015-04-07 21:58:38 -04:00
barisusakli
b815601649 https://github.com/NodeBB/nodebb-theme-persona/issues/59 2015-04-07 21:57:19 -04:00
barisusakli
e33a905f55 missing change 2015-04-07 20:46:20 -04:00
barisusakli
499a068bb7 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2015-04-07 20:46:14 -04:00
barisusakli
0d515803e4 fix post edit 2015-04-07 20:46:11 -04:00
psychobunny
01542647d4 no need to add img-responsive to all images anymore 2015-04-07 18:06:42 -04:00
barisusakli
9d026919ac closes #2953 2015-04-07 17:23:49 -04:00
Barış Soner Uşaklı
e0996d67ca more rel_path upload fixes 2015-04-07 15:44:30 -04:00
Barış Soner Uşaklı
3f92984be2 fix image url in relative_path install in post 2015-04-07 15:37:20 -04:00
Barış Soner Uşaklı
7baa0e97fc waterfall getPostsByPids 2015-04-07 14:15:35 -04:00
Barış Soner Uşaklı
dadbda98b7 closes https://github.com/NodeBB/nodebb-theme-persona/issues/52 2015-04-07 13:45:46 -04:00
Barış Soner Uşaklı
641c8991f9 closes #2944
if going to users page wait for updateOnlineUsers to complete
2015-04-07 12:52:48 -04:00
Barış Soner Uşaklı
7abbbbfccf closes #2946 2015-04-07 12:19:32 -04:00
Julian Lam
cb9a300811 closed #2945 2015-04-07 12:01:25 -04:00
Barış Soner Uşaklı
c7c420e869 closes #2947 2015-04-07 11:44:45 -04:00
Barış Soner Uşaklı
ed57a41d17 #2943 2015-04-06 16:17:29 -04:00
Barış Soner Uşaklı
aa1f56b316 update deps 2015-04-06 15:15:32 -04:00
psychobunny
b1560388a6 hint 2015-04-06 14:36:15 -04:00
Barış Soner Uşaklı
4af8a5ec02 closes #2940 2015-04-06 14:31:19 -04:00
Julian Lam
1bf6c1fd46 latest translations and fallbacks 2015-04-04 14:23:50 -04:00
Julian Lam
40834cc010 updated checkAccountPermissions to call requireUser, and added new hook for plugins to handle auth login 2015-04-03 21:16:27 -04:00
barisusakli
1ade973e56 added missing radix :rage3: 2015-04-03 21:15:15 -04:00
barisusakli
188a480590 use post-count component 2015-04-03 18:22:18 -04:00
barisusakli
5f2271e4e0 closes #2903 2015-04-03 15:07:36 -04:00
barisusakli
f81e3ad358 categoryTools componets 2015-04-03 13:57:20 -04:00
psychobunny
e443d14519 fixes acp/categories/x menu selection
@julianlam
2015-04-03 11:17:58 -04:00
psychobunny
70bf518a02 define all required data at top of fn 2015-04-03 00:58:41 -04:00
barisusakli
e7fa000fe0 removed strict li selector 2015-04-02 23:01:47 -04:00
barisusakli
b00ee4828f removed hardcoded icons for post delete restore 2015-04-02 22:54:09 -04:00
barisusakli
9dac6303bb removed thread state fix bottom bar class 2015-04-02 22:34:23 -04:00
barisusakli
9e3b2148ba components 2015-04-02 22:06:22 -04:00
Julian Lam
04f536854c added some tests, fixed user reset tests 2015-04-02 20:27:43 -04:00
Julian Lam
66422acea2 fixed #2934 2015-04-02 19:18:48 -04:00
barisusakli
3efb1345e0 use topic/header closes #2933 2015-04-02 17:33:33 -04:00
psychobunny
63653662e0 a should have the title, not img
part 1 of https://github.com/NodeBB/nodebb-theme-persona/issues/38
2015-04-02 16:14:28 -04:00
psychobunny
30df61e7a5 infinite scrolling on category view, checkboxes weren't showing up 2015-04-02 15:56:32 -04:00
barisusakli
e15f7902dd closes #2930 2015-04-02 14:09:24 -04:00
Barış Soner Uşaklı
0994f810d9 Merge pull request #2931 from cismous/master
fixed post chat bug
2015-04-02 13:35:00 -04:00
CisMous
e5efec1361 fixed post chat bug 2015-04-02 17:11:55 +08:00
barisusakli
f96f6d9e2e shorter 2015-04-02 01:27:11 -04:00
barisusakli
1745689317 require composer when its needed 2015-04-01 23:28:21 -04:00
barisusakli
e862f7186f recent doesnt need composer anymore 2015-04-01 23:01:55 -04:00
barisusakli
b3f66faa37 default is private 2015-04-01 22:20:20 -04:00
barisusakli
0d839bdb2c parantheses 2015-04-01 22:18:42 -04:00
psychobunny
7563e9aba1 added localStorage for preview toggled state 2015-04-01 17:36:21 -04:00
psychobunny
e1ff3deaf0 move preview toggle function into composer/preview.js 2015-04-01 17:36:19 -04:00
Julian Lam
56fc958939 closes #2891 2015-04-01 17:26:27 -04:00
psychobunny
43502e041a don't send 5 million error messages during daily digest 2015-04-01 17:03:28 -04:00
Barış Soner Uşaklı
c294c3b342 fix inf scroll and timeago on users page 2015-04-01 16:41:23 -04:00
psychobunny
6c5c8ceeee closes #2859 2015-04-01 16:32:57 -04:00
psychobunny
bc4e5371d7 Merge pull request #2907 from MegaGM/fixcategory.images
fix: category images (helpers.generateCategoryBackground)
2015-04-01 15:42:46 -04:00
Barış Soner Uşaklı
c81424714d Merge pull request #2924 from cismous/master
remove code
2015-04-01 15:38:07 -04:00
Julian Lam
db1b70cccb updated italian language 2015-04-01 15:34:26 -04:00
Barış Soner Uşaklı
5641e54192 added route to /users 2015-04-01 15:23:04 -04:00
psychobunny
232d1aae31 helpers.getBookmarkFromIndex 2015-04-01 15:22:02 -04:00
CisMous
bb94c9c36b remove unused code 2015-04-02 03:17:06 +08:00
CisMous
5bb2f2bb62 fix type error 2015-04-02 03:16:33 +08:00
CisMous
458d9ab8a2 remove comma 2015-04-02 03:16:16 +08:00
psychobunny
ca3e0b59b0 filter out illegitimate rewards 2015-04-01 14:54:09 -04:00
psychobunny
27ad7e41c9 process.env is an object 2015-04-01 14:49:11 -04:00
Barış Soner Uşaklı
925b12ca22 startsWith 2015-04-01 14:47:38 -04:00
psychobunny
80b308b9a6 [[user:more]] 2015-04-01 12:56:40 -04:00
psychobunny
f734d47bef closes https://github.com/NodeBB/nodebb-theme-vanilla/issues/21 and https://github.com/NodeBB/nodebb-theme-persona/issues/31 2015-04-01 12:54:19 -04:00
Barış Soner Uşaklı
ca332d23c0 wait for createIndex errors 2015-04-01 12:28:10 -04:00
Julian Lam
f8fb5a1d9f Merge pull request #2837 from atomoc/master
Add parameters for create categories
2015-04-01 11:57:46 -04:00
psychobunny
4a9498e105 closes #2916 2015-04-01 11:49:46 -04:00
Barış Soner Uşaklı
7161972cc3 up vanilla lavender versions 2015-04-01 11:40:20 -04:00
Сергей Савельев
ce743be779 Delete errors 2015-04-01 18:25:27 +03:00
Сергей Савельев
6b3b44e2fc Delete errors 2015-04-01 18:22:55 +03:00
Сергей Савельев
18c5354ec7 Merge branch 'master' of https://github.com/atomoc/NodeBB 2015-04-01 15:11:19 +03:00
Сергей Савельев
621ae9c91a Add admin hooks for get categories 2015-04-01 15:11:15 +03:00
Сергей Савельев
63db2a539e Merge pull request #4 from NodeBB/master
123
2015-04-01 15:10:18 +03:00
barisusakli
2fd4bcde3f added req.uid user id for logged in users, 0 for guests 2015-04-01 00:23:57 -04:00
barisusakli
878e548296 renamed end to stop globally
fixed getting favourites for admins
2015-03-31 23:40:58 -04:00
barisusakli
27bab3330a pass data to getCategoryTopics, renamed end to stop 2015-03-31 22:59:34 -04:00
barisusakli
7a3b4c08e0 closes #2922 2015-03-31 21:14:36 -04:00
Peter Jaszkowiak
5f2b341aa2 Merge pull request #6 from NodeBB/master
merge latest
2015-03-31 14:20:09 -06:00
Сергей Савельев
f7a3428bf8 Merge pull request #3 from NodeBB/master
123
2015-03-31 23:07:21 +03:00
Julian Lam
326c531d7f v2.1.0 of markdown, for safety 2015-03-31 15:33:24 -04:00
Julian Lam
4ee4707f71 requiring v1.0.0 of widget essentials 2015-03-31 15:31:10 -04:00
Julian Lam
47a7ab15be refactored translator system to be a require.js module, and not a global 2015-03-31 15:11:59 -04:00
Barış Soner Uşaklı
b65f456d70 closes #2880 2015-03-31 14:19:17 -04:00
Julian Lam
16c6578bdb updated components to be a require.js module, not a global (:rage2:) 2015-03-31 14:10:20 -04:00
Barış Soner Uşaklı
f380f4214a closes https://github.com/NodeBB/nodebb-theme-persona/issues/27 2015-03-31 12:22:43 -04:00
Barış Soner Uşaklı
c4569d533d added filter:categories.build 2015-03-31 11:14:12 -04:00
barisusakli
e775246bf9 moved collapse to theme 2015-03-30 18:36:25 -04:00
barisusakli
e6d36af942 only close nav if body has slide-in 2015-03-30 18:24:23 -04:00
Julian Lam
2871cf3fb2 updated forum to require v2.0.0 of the markdown plugin 2015-03-30 17:02:54 -04:00
barisusakli
486f5f9df6 close navigation on click for slide-in as well 2015-03-30 14:14:21 -04:00
barisusakli
b2087f94e2 closes #2904 2015-03-30 13:31:08 -04:00
Сергей Савельев
a70f1b09e4 m 2015-03-30 12:11:01 +03:00
barisusakli
8026b3c7d8 closes #2911 2015-03-28 15:26:23 -04:00
Julian Lam
c706638b5d updating groups access control so:
1. Guests can no longer receive the moderate bit
  2. If you attempt to grant the moderate privilege to a public group, a confirmation modal appears
  3. A lock icon is present next to all private groups
2015-03-28 11:23:51 -04:00
Julian Lam
89442c91c6 fixed bug where privilege state was not correctly calculated for MongoDB installs, and fixed columnCount not being present when a the privilege list is refreshed 2015-03-28 10:19:43 -04:00
barisusakli
d27ec057c5 closes #2910 2015-03-27 21:49:53 -04:00
Julian Lam
d249a46fae fixed around event handling for composer submit button, and upped vanilla minver 2015-03-27 21:36:10 -04:00
Julian Lam
8e17f34de4 lol. 2015-03-27 20:51:38 -04:00
Julian Lam
9369158ba0 latest dutch translations 2015-03-27 20:37:42 -04:00
barisusakli
fccfc5307b fix commas 2015-03-27 16:27:28 -04:00
barisusakli
65bdeba385 helpers.js fix maybe 2015-03-27 14:21:27 -04:00
barisusakli
a3a0ba9bc3 fix post count tmp fix for js error from helpers.js 2015-03-27 14:21:04 -04:00
barisusakli
8d6d1c32e7 allow plugins to update additional fields with filter:user.updateProfile 2015-03-27 14:01:59 -04:00
Julian Lam
f0f31e077f added exposeUid middleware to core 2015-03-27 13:30:18 -04:00
barisusakli
474b074c8f fix wrong post count on new post 2015-03-27 13:19:12 -04:00
Barış Soner Uşaklı
a78eebe8be Merge pull request #2909 from cismous/master
remove unneeded argument
2015-03-27 12:50:30 -04:00
cismous
68cf6833b7 remove unneeded argument 2015-03-27 23:59:39 +08:00
Julian Lam
76793729d8 Merge pull request #2908 from MegaGM/fixadmin.remove.category.image
fix:removing category images via ACP
2015-03-27 09:01:57 -04:00
Julian Lam
316d0fe1d7 latest fallbacks 2015-03-27 09:01:25 -04:00
Julian Lam
2d5f687373 latest translations 2015-03-27 08:58:55 -04:00
Mega
30ad24caa6 Hide "Remove" buttun as well 2015-03-27 15:58:13 +03:00
Mega
3947710a3d fix:removing category images via ACP 2015-03-27 15:43:37 +03:00
Mega
8b48a1e3af fix: category images (helpers.generateCategoryBackground) 2015-03-27 14:51:36 +03:00
barisusakli
ed8d60b76b move registered-users/guests to top remove admins from priv settings 2015-03-26 18:33:05 -04:00
psychobunny
7c7b43d295 semicolon 2015-03-26 17:36:15 -04:00
psychobunny
789418f987 stripTags and escape template helpers
use it like so {function.stripTags, title}
see vanilla or persona topics_list.tpl for more info
2015-03-26 17:27:50 -04:00
Barış Soner Uşaklı
41db2dcd14 removed idle added recent tags presence info 2015-03-26 16:32:28 -04:00
Julian Lam
0d044c34c1 removed old code that was adding unneeded html to the template 2015-03-26 13:14:20 -04:00
Julian Lam
f4803c21ac added missing partial 2015-03-26 13:12:21 -04:00
Barış Soner Uşaklı
5ce72f4920 dont add guests to users:repuration zset 2015-03-26 13:03:23 -04:00
Barış Soner Uşaklı
e0b4a35a25 dont add guests to users:postcount zset 2015-03-26 13:00:26 -04:00
Barış Soner Uşaklı
c9b98306e0 dont require everything in folder
dont want rooms.js to be public
2015-03-26 12:42:25 -04:00
Barış Soner Uşaklı
30104b898c dont allow vote spam 2015-03-26 12:22:39 -04:00
barisusakli
e528f52cfb closes #2757 2015-03-25 23:06:56 -04:00
barisusakli
77e956861a #2486
various fixes for socket.io cluster
display user presence correctly
2015-03-25 22:33:19 -04:00
Julian Lam
1a58ea6520 closed #2695 2015-03-25 20:04:45 -04:00
Julian Lam
d95f5a9ae0 added help block to category purge button, updated iconSelect library to use templates in a better way, hooked up iconSelect for category mgmt, #2463 2015-03-25 19:29:24 -04:00
Julian Lam
202789fa8d added back category creation, #2463 2015-03-25 18:08:15 -04:00
Julian Lam
e340b9fffe fixed save/delete/purge in category ACP, #2463 2015-03-25 17:51:46 -04:00
Julian Lam
7cdfe143ab fixed bug where cid was hardcoded, and switched format back to storing group names, not slugs, #2887 2015-03-25 17:41:54 -04:00
Julian Lam
4f2c7382c5 passing in the column count so a message can be displayed to users when no users have privs in a category, #2887 2015-03-25 17:34:16 -04:00
Julian Lam
60b19a9d62 Merge remote-tracking branch 'origin/master' into categories_revamp 2015-03-25 17:23:17 -04:00
Julian Lam
9dece4a1db added some missing files from previous commits, fixed setParent mechanic which broke after I refactored, #2463 2015-03-25 17:21:38 -04:00
Barış Soner Uşaklı
4a18a041c9 #2894 no need to remove if there are no new posts 2015-03-25 16:20:27 -04:00
Julian Lam
25cb1f9284 Merge remote-tracking branch 'origin/master' into categories_revamp 2015-03-25 16:10:27 -04:00
Julian Lam
d3af278123 removed old code that was no longer necessary, updated privilege table to show all groups (similar to previous behaviour), fixes #2887 2015-03-25 16:09:38 -04:00
Barış Soner Uşaklı
36942125e6 closes #2894
also mark user online if they post a reply
2015-03-25 15:51:11 -04:00
Julian Lam
9b84a887d3 a huge frickin' number of changes for #2887. This is part of #2463 2015-03-25 15:43:57 -04:00
EvSpirit
8a6c189d80 #2893 increment --debug-brk port value when forking js-minifier child process 2015-03-25 20:40:42 +03:00
EvSpirit
3bd2f53056 #2893 increment --debug-brk port value when forking js-minifier child process 2015-03-25 20:18:15 +03:00
Julian Lam
815ea88fa5 readded some missing classes, fixed some styling on category.tpl, fixed image uploading code 2015-03-25 11:58:21 -04:00
Julian Lam
765f15096b removed wrapping .row around tables in acp/manage/categories 2015-03-25 11:35:38 -04:00
Julian Lam
a1621145d5 Merge branch 'master' into categories_revamp
Conflicts:
	public/less/admin/admin.less
	public/src/admin/manage/categories.js
	src/controllers/admin.js
	src/views/admin/manage/categories.tpl
	src/views/config.json
2015-03-25 11:16:37 -04:00
Barış Soner Uşaklı
f928b87997 use component, add user.watch title 2015-03-24 15:46:15 -04:00
Barış Soner Uşaklı
08ec35820d Merge pull request #2890 from EvSpirit/master
#2886 Check subcategories when showing category recent topics
2015-03-24 15:16:50 -04:00
EvSpirit
2ea840e65d #2886 Check subcategories when showing category recent topics 2015-03-24 21:58:35 +03:00
EvSpirit
0fcd4dee58 #2886 Check subcategories when showing category recent topics 2015-03-24 21:39:28 +03:00
psychobunny
11710987a4 fixed navigator pagination 2015-03-24 14:20:01 -04:00
Julian Lam
fcbc02d48a better local function name in install.js 2015-03-24 13:47:47 -04:00
Barış Soner Uşaklı
203d4d052a fixed my logic fail 2015-03-24 13:21:54 -04:00
Barış Soner Uşaklı
c7b5cd48ba closes #2773 2015-03-24 13:10:18 -04:00
psychobunny
d39c2924e4 found a rogue topic class selector 2015-03-24 12:56:01 -04:00
Barış Soner Uşaklı
29fd89407c closes #2872
show the last posts content and user in topic feeds
2015-03-24 12:55:27 -04:00
psychobunny
705111a1d9 chat/icon component 2015-03-24 12:21:19 -04:00
Barış Soner Uşaklı
f6d0ad9b0f Merge remote-tracking branch 'origin/master' into mongodb-3.0-driver-2.0 2015-03-24 12:16:31 -04:00
Julian Lam
4dbb1c08b6 added default host port and db settings for mongo, if not set in config file 2015-03-24 11:08:06 -04:00
Barış Soner Uşaklı
fc28cbf887 filter cids with a single .filter thanks @julianlam 2015-03-24 10:59:21 -04:00
Julian Lam
06d547a6cb fixed bug in privilege settings where categories near the end of a list were not having their permissions read properly if earlier categories were disabled, #2887 2015-03-24 10:52:36 -04:00
barisusakli
b268927cf9 removedu if from filter:parse,post, parse strip teaser content 2015-03-23 19:32:32 -04:00
psychobunny
7c9e76132d topic/follow component fix 2015-03-23 14:42:45 -04:00
barisusakli
9754dc8be0 open user link in new tab 2015-03-21 15:32:11 -04:00
psychobunny
4ec43f662c don't actually need to restart nodebb to apply skins 2015-03-21 13:10:57 -04:00
barisusakli
6b950d0596 fix endsWith if check 2015-03-20 19:42:59 -04:00
barisusakli
810d3be512 closes #2593 2015-03-20 19:36:18 -04:00
barisusakli
4c31535c4b closes #2799 2015-03-20 18:47:08 -04:00
barisusakli
6c0e07c384 Merge remote-tracking branch 'origin/master' into mongodb-3.0-driver-2.0 2015-03-20 17:52:04 -04:00
barisusakli
38726243fe closes #2879 2015-03-20 16:13:34 -04:00
barisusakli
04ed79e587 fix profile image upload on subfolder install 2015-03-20 14:48:19 -04:00
barisusakli
c8e0eab34e escape data on room enter 2015-03-20 13:46:05 -04:00
barisusakli
7dde229517 added filter:teasers.get 2015-03-20 12:21:27 -04:00
barisusakli
ea91518f30 slugs lowercase duh 2015-03-19 23:03:36 -04:00
Barış Soner Uşaklı
9e7af15bbc Merge pull request #2876 from cismous/master
remove comma
2015-03-19 23:01:41 -04:00
barisusakli
9d62709f7c doggy.gif 2015-03-19 22:59:12 -04:00
barisusakli
a51b7257c7 fix group name in tests 2015-03-19 22:46:40 -04:00
barisusakli
8b5643fe90 system and hidden groups cant be renamed 2015-03-19 22:42:16 -04:00
barisusakli
e5bea19f56 renamed groupname 2015-03-19 22:35:24 -04:00
barisusakli
649ef93768 its called foo :dull 2015-03-19 22:21:08 -04:00
barisusakli
e4431f62b2 fix group update text 2015-03-19 22:07:36 -04:00
barisusakli
358f6f61f7 closes #2803, closes #2883
options.unescape was not used correctly
fix groups.update so it  doesnt overwrite data if some fields are not
passed in
2015-03-19 21:43:53 -04:00
psychobunny
d2dae2d62f standardize showSelect amongst category and topic_list routes 2015-03-19 16:15:39 -04:00
Barış Soner Uşaklı
0ebad0fe10 Merge pull request #2843 from FokkeZB/patch-1
Skip setTimeout if it doesn't exist (Node 0.10.x with SSL)
2015-03-19 15:56:14 -04:00
Barış Soner Uşaklı
9edfcb0053 dont save user obj in db 2015-03-19 15:55:56 -04:00
psychobunny
6acfec9d25 add teaser content to category view 2015-03-19 15:50:28 -04:00
Julian Lam
eee2aa8051 making sure to pass in userData to notifications.create on user follow 2015-03-19 15:46:33 -04:00
Barış Soner Uşaklı
027f9e5a83 dont need start time anymore 2015-03-19 15:27:27 -04:00
Barış Soner Uşaklı
8b429a2e05 removed path 2015-03-19 15:26:51 -04:00
Barış Soner Uşaklı
cc92d09498 generateNotificationPaths 2015-03-19 15:24:46 -04:00
psychobunny
8c0dfa1217 data/category partial 2015-03-19 15:11:02 -04:00
psychobunny
8fbb085718 Merge remote-tracking branch 'origin/master'
Conflicts:
	public/src/client/topic/postTools.js
2015-03-19 15:06:14 -04:00
psychobunny
f2c220988b fix for posting in multiple threads bug 2015-03-19 15:05:11 -04:00
Barış Soner Uşaklı
b1478ad5da dont add events multiple timest to #content 2015-03-19 15:05:00 -04:00
Julian Lam
82f7ca5e0f added a path to follow notification 2015-03-19 14:56:27 -04:00
psychobunny
bc056f0724 can remove this line as well 2015-03-19 14:22:00 -04:00
psychobunny
5d7ce0011a no need for setTimeout in ajaxify 2015-03-19 14:21:23 -04:00
psychobunny
85e3cb9f0d Merge remote-tracking branch 'origin/persona' 2015-03-19 14:10:28 -04:00
psychobunny
87ffc2cff9 topic/pinned and topic/locked components 2015-03-19 14:05:41 -04:00
psychobunny
4ca6364dd4 removed .category-item selectors 2015-03-19 13:58:29 -04:00
psychobunny
10eb617c6d category and category/topic components; removed #topic-container selectors 2015-03-19 13:56:12 -04:00
Barış Soner Uşaklı
d05ef6ddbc closes #2822 2015-03-19 13:28:15 -04:00
Julian Lam
5a4fa18e98 fixed digests so they aren't prematurely exiting, and will send again :shipit: 2015-03-19 13:20:56 -04:00
psychobunny
aeb7548a9d because this works 2015-03-19 12:58:09 -04:00
Barış Soner Uşaklı
6417a55918 up dbsearch version 2015-03-19 12:47:28 -04:00
Barış Soner Uşaklı
877b2d51fc Merge remote-tracking branch 'origin/search-cid-uid' 2015-03-19 12:33:02 -04:00
Barış Soner Uşaklı
0cc900bdcf closes #2878 2015-03-19 12:32:05 -04:00
Julian Lam
8e38840768 also passing in uid in topic delete and restore hooks 2015-03-19 11:34:51 -04:00
Barış Soner Uşaklı
0bbebbe4b1 Merge remote-tracking branch 'origin/master' into search-cid-uid 2015-03-19 10:59:39 -04:00
barisusakli
a1b6019efe disable/enable reply buttons on lock/unlock 2015-03-18 20:43:57 -04:00
barisusakli
783bcb9bd6 some component fixes closes #2881 2015-03-18 20:20:32 -04:00
barisusakli
5bc2e7dac2 closes #2309 2015-03-18 17:50:53 -04:00
psychobunny
41f5afa887 fix for post-bar reply button 2015-03-18 17:48:14 -04:00
psychobunny
721ee09b19 removed deprecation notice 2015-03-18 17:41:55 -04:00
Julian Lam
5951079926 latest translations 2015-03-18 16:18:17 -04:00
barisusakli
254fcff01f forgot db require 2015-03-18 15:18:07 -04:00
barisusakli
6c58bd9520 closes #2871 2015-03-18 15:16:37 -04:00
psychobunny
e9d9e14eb4 components - fixed a bug with bottom post bar now showing up 2015-03-18 14:55:16 -04:00
psychobunny
98c54c3ccb closes https://github.com/NodeBB/NodeBB/issues/2856 2015-03-18 14:40:16 -04:00
psychobunny
3ed3612047 file upload with spaces / general file upload fix wrt ajaxiy 2015-03-18 13:54:43 -04:00
barisusakli
909fe660a9 decodeURIComponent for uploaded file/image 2015-03-17 20:19:24 -04:00
psychobunny
60a70e4e62 moved 37fe438c63 into core 2015-03-17 16:23:18 -04:00
psychobunny
075611ca4b Merge remote-tracking branch 'origin/master' into persona 2015-03-17 16:16:56 -04:00
psychobunny
adbbbb3602 decided to go ahead and deprecate this for 0.7x instead of post-0.7x 2015-03-17 16:15:12 -04:00
psychobunny
2e33f1d400 navbar/title component 2015-03-17 16:12:06 -04:00
Barış Soner Uşaklı
37fe438c63 reset fix for t.js bug :rage3: 2015-03-17 15:53:05 -04:00
psychobunny
5e39d8df33 thread tools components 2015-03-17 15:48:08 -04:00
cismous
3bd42c8b7a remove comma 2015-03-18 03:39:42 +08:00
psychobunny
fffed29913 post/favourite-count component 2015-03-17 15:35:32 -04:00
psychobunny
c2a5169625 post/votes component, user/reputation component 2015-03-17 15:33:07 -04:00
Julian Lam
f8aba4f4ef Merge branch 'master' into search-cid-uid 2015-03-17 15:13:43 -04:00
psychobunny
e06e1dccb6 topic/browsing/list and topic/browsing/count components 2015-03-17 15:08:52 -04:00
psychobunny
b9dd994a56 user/postcount component 2015-03-17 14:57:10 -04:00
psychobunny
10b9919a49 removed some possibly antiquated privs code 2015-03-17 14:47:37 -04:00
psychobunny
f8af900415 post button components 2015-03-17 14:45:06 -04:00
psychobunny
1d53365707 post/reply component 2015-03-17 14:37:53 -04:00
psychobunny
a740e8e98f post/header component 2015-03-17 14:31:32 -04:00
psychobunny
61db112942 topic/follow component 2015-03-17 14:26:12 -04:00
psychobunny
ec079afab1 post/content component 2015-03-17 14:16:41 -04:00
psychobunny
855e43ea12 deprecation notices 2015-03-17 14:16:24 -04:00
psychobunny
0c4ffafca3 topic buttons are now components 2015-03-17 14:09:08 -04:00
psychobunny
15b54d6e43 removed more .post-row selectors 2015-03-17 13:59:52 -04:00
psychobunny
51745568df removed the rest of the .post-row selectors in favour for components system 2015-03-17 13:59:25 -04:00
psychobunny
901cb92941 if no args, get all components of that type 2015-03-17 13:52:32 -04:00
psychobunny
567d171d2f jshint 2015-03-17 13:46:24 -04:00
psychobunny
e3899f9535 Merge remote-tracking branch 'origin/master' into persona 2015-03-17 13:43:23 -04:00
psychobunny
6439147586 updated core to point #post_container and .post-row to its respective components 2015-03-17 13:38:18 -04:00
psychobunny
8fcdae7f17 get a post component by any of its attributes 2015-03-17 13:37:23 -04:00
Barış Soner Uşaklı
e45e204ba5 fix author field on topic feed #2872 2015-03-17 13:21:27 -04:00
psychobunny
1df20465ed fixes to components; added post component 2015-03-17 13:15:49 -04:00
Barış Soner Uşaklı
839dd72a05 been a while since we stopped using hashes 2015-03-17 13:15:36 -04:00
Barış Soner Uşaklı
56ed6d2112 shorter bcrypt 2015-03-17 13:09:19 -04:00
psychobunny
5727658976 wrapper for grabbing components without modifiers 2015-03-17 12:56:14 -04:00
psychobunny
eba0f32913 post/anchor component 2015-03-17 12:54:10 -04:00
psychobunny
d347e88361 post/header component 2015-03-17 12:51:02 -04:00
psychobunny
54cbbe2844 components system 2015-03-17 12:47:40 -04:00
psychobunny
f5b701553c moved post-row's wall of data-text into partial 2015-03-17 12:30:50 -04:00
psychobunny
8727c7be17 moved all template variables to core 2015-03-17 12:25:02 -04:00
Julian Lam
406126536a missing semicolon 2015-03-17 12:02:33 -04:00
Julian Lam
9fc97ce92d fixing handleACPRedirect on subfolder installs 2015-03-17 12:01:55 -04:00
Julian Lam
521c454dde updated emailer to pass through "fromUid" if available 2015-03-17 11:29:19 -04:00
psychobunny
e08f34e79d function.generateTopicClass 2015-03-17 11:29:04 -04:00
psychobunny
dcfb8010b7 Merge remote-tracking branch 'origin/master' into persona 2015-03-17 11:17:29 -04:00
psychobunny
b81646477f remove hardcoded topic_row_size
I can't believe this is still here haha
2015-03-17 11:17:00 -04:00
Julian Lam
b83aa108f2 requiring more recent vanilla and lavender dependencies, #2875 2015-03-17 10:47:02 -04:00
Julian Lam
0f59046392 added requirejs config partial, #2875 2015-03-17 10:44:40 -04:00
psychobunny
412c5360a6 allow timeago to be cast on other elements as well, ex. small 2015-03-16 17:22:44 -04:00
psychobunny
82ac542f55 helpers.generateCategoryBackground 2015-03-16 16:39:33 -04:00
psychobunny
a3f167bfd2 default category should be col-xs-12 2015-03-16 13:49:47 -04:00
Сергей Савельев
89ea3b4cfe Merge branch 'NodeBB-master' 2015-03-16 16:47:56 +03:00
Сергей Савельев
e529d18414 save 2015-03-16 16:47:45 +03:00
barisusakli
518aec6e76 modified indices, removed key 2 collections now 2015-03-15 03:18:24 -04:00
barisusakli
ec7caea368 fix search on mongo 2015-03-15 01:45:24 -04:00
barisusakli
78c65aee05 even more search changes 2015-03-15 01:12:13 -04:00
barisusakli
2b7744f905 fire action:topic.move after topic cid is changed 2015-03-15 00:24:08 -04:00
barisusakli
31da62ab2d removed console.log 2015-03-15 00:13:26 -04:00
barisusakli
e2196af8ab part 2 of search changes 2015-03-15 00:12:52 -04:00
barisusakli
c7128bcc98 part 1 of search change 2015-03-14 23:00:24 -04:00
barisusakli
fd5f00459b fix admin events pagination 2015-03-14 21:10:36 -04:00
barisusakli
868b2ff2b6 if no term is passed get count 2015-03-14 20:46:28 -04:00
barisusakli
ec8fc8b97b dont do anything if id is falsy
added callback
2015-03-14 16:30:06 -04:00
barisusakli
203e69aa42 derp 2015-03-14 01:05:03 -04:00
barisusakli
a73f34df4a no need for ajaxify.end listener 2015-03-13 23:44:11 -04:00
barisusakli
c448c8cc8c closes #2864 2015-03-13 23:32:50 -04:00
barisusakli
32369f6191 disabled textcomplete css for now 2015-03-13 18:04:07 -04:00
barisusakli
f8f4a6e844 removed footer class 2015-03-13 17:59:37 -04:00
Barış Soner Uşaklı
abf27954d3 use topic.getMainPids 2015-03-13 16:33:00 -04:00
Barış Soner Uşaklı
64918dfcb4 up mentions ver 2015-03-13 15:31:14 -04:00
Barış Soner Uşaklı
d3dca842cb also #2858 2015-03-13 15:06:23 -04:00
Barış Soner Uşaklı
bab8e6a104 closes #2858 2015-03-13 15:04:24 -04:00
Barış Soner Uşaklı
eda98a35ea closes #2862 2015-03-13 15:01:52 -04:00
Barış Soner Uşaklı
e4199179f7 Merge remote-tracking branch 'origin/master' into mongodb-3.0-driver-2.0 2015-03-13 13:14:43 -04:00
Barış Soner Uşaklı
89333ab339 closes #2824 doggy.gif 2015-03-13 12:43:41 -04:00
Peter Jaszkowiak
77df837906 Merge pull request #5 from NodeBB/master
update
2015-03-12 21:44:16 -06:00
psychobunny
f7f048f06a when toggling composer preview, autofocus on composer 2015-03-12 22:53:09 -04:00
barisusakli
58169aa6d9 no need for return 2015-03-12 19:28:53 -04:00
barisusakli
6e25724cfb removed unused requires 2015-03-12 19:27:53 -04:00
barisusakli
e6c0794061 create tooltips for users on widgets 2015-03-12 17:46:49 -04:00
barisusakli
d3b2742da0 closes #2746 closes #2747 2015-03-12 16:50:46 -04:00
barisusakli
2f688136d1 closes #2852 2015-03-12 16:30:08 -04:00
barisusakli
b37bcc6dfe closes #2853 2015-03-12 16:26:33 -04:00
barisusakli
279bb62a3f cache parsed post content
clear cache on plugin install/uninstall/activate/deactivate
2015-03-12 15:01:55 -04:00
psychobunny
dfe48fffb1 composer fixes when resizing window horizontally 2015-03-12 14:49:18 -04:00
barisusakli
e9f82b7eee updated isLatin check doggy.gif 2015-03-12 13:39:04 -04:00
barisusakli
67b7ecf4df Merge branch 'master' of https://github.com/NodeBB/NodeBB 2015-03-12 13:26:32 -04:00
barisusakli
dd06e8d7d8 return early if falsy 2015-03-12 13:26:29 -04:00
psychobunny
2f05ec7de0 closes #2839 and #2840 2015-03-12 12:30:11 -04:00
barisusakli
4cb58d976b fix indices, main post always 0 2015-03-12 11:03:10 -04:00
barisusakli
fd1b7bbd3a fix redirection 2015-03-12 10:57:23 -04:00
psychobunny
ec897be3e7 jshint 2015-03-12 01:34:18 -04:00
barisusakli
2878bf6cfe removed commented out code 2015-03-11 23:37:25 -04:00
barisusakli
c63d5f4b7a test 2015-03-11 22:47:15 -04:00
barisusakli
f89741636c return false to prevent default 2015-03-11 21:56:33 -04:00
barisusakli
ca31ac882c added return true/false 2015-03-11 19:47:19 -04:00
Julian Lam
5269c2eb9e latest language translations 2015-03-11 18:34:26 -04:00
barisusakli
076931d5b5 fix search tooltip 2015-03-11 18:21:40 -04:00
barisusakli
a626005570 closes #2851 2015-03-11 18:04:27 -04:00
psychobunny
8d313d2f16 return composing state to normal after discard/posting 2015-03-11 16:37:34 -04:00
psychobunny
7b604c0895 this prevents autosize from causing the screen from jumping up and down as you type, on android at least
@jackmoore this might not the best solution but its working well so far.
let me know if you'd like a PR :)
2015-03-11 16:37:33 -04:00
psychobunny
6d4b658579 using unminified version of autosize 2015-03-11 16:37:31 -04:00
psychobunny
9262c8b9f6 after selecting a category in composer, auto-select the next field 2015-03-11 16:37:29 -04:00
psychobunny
83f89e9537 made action bar button less restrictive 2015-03-11 16:37:28 -04:00
psychobunny
31368ac974 on mobile, resize composer textarea as you type so it doesn't constrain the editable view 2015-03-11 16:37:25 -04:00
psychobunny
5e3a990f2d added vendor/autosize 2015-03-11 16:37:23 -04:00
psychobunny
7227dfd704 add composing mobile classes if composing on mobile 2015-03-11 16:37:22 -04:00
psychobunny
7282bbafb2 removing composer-mobile.tpl
was totally a bad idea.
2015-03-11 16:37:20 -04:00
Barış Soner Uşaklı
8234e4cc07 new hook action:topic.reply
only fires on normal replies
2015-03-11 15:57:17 -04:00
Barış Soner Uşaklı
9d0b4f5841 app.showEmailConfirmWarning :dull: 2015-03-11 13:34:57 -04:00
Barış Soner Uşaklı
940c33c426 fix js error removed dupe code 2015-03-11 13:32:28 -04:00
Barış Soner Uşaklı
abd3979fb3 closes #2465 2015-03-11 13:25:56 -04:00
psychobunny
eb733fdb6f toggle preview button on composer 2015-03-11 12:54:44 -04:00
Barış Soner Uşaklı
8484c7c51a closes #2850 2015-03-11 12:07:48 -04:00
Julian Lam
40763d2ae7 #2849 again 2015-03-11 11:24:52 -04:00
psychobunny
f1f199019d Merge pull request #2845 from cnvo/master
Update FontAwesome 4.3.0
2015-03-11 11:13:29 -04:00
Julian Lam
57a64870fd actually fixing #2849 2015-03-11 10:44:34 -04:00
Julian Lam
8e2483b2e6 fixed #2849 2015-03-11 10:32:53 -04:00
barisusakli
9f4f858ff9 group member search
only look in uids that are member of the group, added custom findUids
function to user.search
2015-03-10 15:50:41 -04:00
barisusakli
201c4b35da pagination data
if query is empty get all uids
2015-03-10 15:04:22 -04:00
Julian Lam
e8167a80a0 if bgColor and color are not sent in the category creation call, automatic colours are supplied 2015-03-10 14:55:25 -04:00
barisusakli
d342e01ef1 search group members 2015-03-10 14:09:28 -04:00
psychobunny
daf9999a29 prevent composer from going too low 2015-03-10 13:53:54 -04:00
Julian Lam
2a80140e70 fixed issue where socket.io would no longer reconnect perpetually, new behaviour waits 10x the reconnect delay, and then starts over. Also upped the reconnection delay default to 1.5s. 2015-03-10 11:52:32 -04:00
Trevor
8d2f89a5e2 Update FontAwesome 4.3.0
Fixed incorrect variables path.
2015-03-10 09:50:32 -04:00
Trevor
6454e89bac Update FontAwesome 4.3.0 2015-03-10 09:40:36 -04:00
Fokke Zandbergen
f0836f4107 Skip setTimeout if it doesn't exist (<= 0.10.36) 2015-03-10 10:36:34 +01:00
barisusakli
724df69561 fix redirects 2015-03-09 21:00:07 -04:00
barisusakli
25a2e9b812 we just need the group members :trollface: 2015-03-09 19:29:56 -04:00
Julian Lam
5d7b46935d fixing issue where grunt wouldn't read js from file properly if nodebb wasn't run in production mode at least once 2015-03-09 19:14:58 -04:00
psychobunny
6059165a54 if composer:resizePercentage hasn't been set, default to half the page 2015-03-09 18:52:53 -04:00
psychobunny
0913dbbade added a border effect on max'd composer 2015-03-09 18:39:41 -04:00
psychobunny
3b5b87c14e Merge branch 'master' of https://github.com/NodeBB/NodeBB 2015-03-09 18:34:51 -04:00
psychobunny
49a173bdf0 last bit of fixes to composer 2015-03-09 18:33:42 -04:00
barisusakli
ddd4680ea7 added helpers.redirect 2015-03-09 18:22:44 -04:00
psychobunny
bc9d7f2922 fix so that mouse is always on the handle 2015-03-09 18:19:58 -04:00
psychobunny
5b56157403 composer refactor part 1
removed lots of hardcoded values; used translate 3d instead of height
for smoother dragging; various optimizations; snap to top functionality
2015-03-09 18:05:18 -04:00
Julian Lam
f0ad2020df updated sorting logic (syntax error) 2015-03-09 17:18:34 -04:00
psychobunny
09e0d660cd tags:enter_tags_here better messaging 2015-03-09 16:56:40 -04:00
Julian Lam
28f569ea20 Merge pull request #2838 from MegaGM/update.plugin.version
Update nodebb-plugin-mentions version
2015-03-09 16:50:13 -04:00
psychobunny
bd99124fb9 refactored write preview code 2015-03-09 16:49:53 -04:00
Mega
c0e6c306d0 Update nodebb-plugin-mentions version 2015-03-09 23:48:53 +03:00
Сергей Савельев
3831cd0e71 Adding the ability to use a different url 2015-03-09 23:19:51 +03:00
psychobunny
da758c429a remove hardcoded z-index; give composer a "maximized" class if maximized 2015-03-09 16:19:20 -04:00
Julian Lam
bbbb362125 not referencing parent scope when inside BEGIN in widgets tpl 2015-03-09 16:15:06 -04:00
Barış Soner Uşaklı
d2e8d4d86e slice doesnt deep clone derp 2015-03-09 16:08:48 -04:00
Barış Soner Uşaklı
98a277af9e Merge remote-tracking branch 'origin/master' 2015-03-09 16:01:14 -04:00
Barış Soner Uşaklı
706527fa80 fix group titles
clone groups for each user
2015-03-09 16:01:04 -04:00
psychobunny
b56e862838 removed hardcoded fa-chevron icons from client js 2015-03-09 16:00:46 -04:00
psychobunny
7890c59dc5 Merge remote-tracking branch 'origin/master' into composer-redesign 2015-03-09 15:53:35 -04:00
psychobunny
4f2ac340b2 latest tjs 2015-03-09 15:52:13 -04:00
Barış Soner Uşaklı
53e0615df7 removed path use external 2015-03-09 15:33:20 -04:00
Barış Soner Uşaklı
4d45a81fdb closes #2383 2015-03-09 15:30:52 -04:00
psychobunny
1ec1c5a366 fixes composer maximizing 2015-03-09 15:05:48 -04:00
Barış Soner Uşaklı
33723f8b1b closes #2835 2015-03-09 13:54:35 -04:00
Barış Soner Uşaklı
cda38d6ed6 closes #2515 2015-03-09 13:16:23 -04:00
psychobunny
fcc8093fa6 #1642 show discard prompt 2015-03-09 12:44:15 -04:00
psychobunny
e47c375e69 closes #1642 2015-03-09 12:30:24 -04:00
Julian Lam
4360069859 fixing buttons on mobile composer, and updating format so tags button only appears on mobile 2015-03-09 12:17:33 -04:00
Julian Lam
e71ef216f2 hiding the right sidebar in ACP dash temporarily 2015-03-09 10:50:03 -04:00
Сергей Савельев
6d03f5c9e8 Revert line order 2015-03-09 17:04:30 +03:00
Сергей Савельев
8a5b5936b7 Revert line bgColor 2015-03-09 16:56:57 +03:00
Сергей Савельев
cc384cc4d6 Update file for create categories 2015-03-09 16:45:22 +03:00
Сергей Савельев
82fdc8646e Merge branch 'master' of https://github.com/atomoc/NodeBB 2015-03-09 16:43:16 +03:00
Сергей Савельев
3910f8bf28 Add parameters for create categories 2015-03-09 16:43:02 +03:00
Сергей Савельев
87d74abfc9 Add parameters for create categories 2015-03-09 16:19:02 +03:00
Peter Jaszkowiak
52c295b28b Merge pull request #4 from NodeBB/master
Pull latest
2015-03-08 23:43:29 -06:00
barisusakli
e5dc408ef5 change current page after ajaxify:start event 2015-03-07 21:59:21 -05:00
barisusakli
a5bf991cf0 ignored public/uploads again 2015-03-07 20:27:46 -05:00
barisusakli
d00f8a3d27 added uploads/system 2015-03-07 20:27:23 -05:00
barisusakli
dc94fe2b6c move admin upload routes to api namespace
move usrrs/csv to api namespace
2015-03-07 20:19:00 -05:00
barisusakli
f87f797bed dont keep window.location.search on regular ajaxify 2015-03-07 13:52:06 -05:00
Barış Soner Uşaklı
5b821b2f24 Merge pull request #2831 from MegaGM/fix.acp.navigation.delete.btn
Click on "Delete" btn in ACP > General > Navigation causes redirect.
2015-03-07 11:47:27 -05:00
Mega
42eadc72a4 Click on "Delete" btn in ACP > General > Navigation causes redirect. 2015-03-07 13:17:07 +03:00
barisusakli
3dd337bd34 closes #2829 2015-03-07 00:59:03 -05:00
barisusakli
289474edf7 closes #2827 2015-03-07 00:25:55 -05:00
barisusakli
63a6702285 removed whitespace 2015-03-06 19:48:12 -05:00
barisusakli
23a6b33f64 not used 2015-03-06 19:45:27 -05:00
barisusakli
3809b331bc acp shenans 2015-03-06 19:38:10 -05:00
barisusakli
c15a289d2a fix check 2015-03-06 19:05:51 -05:00
barisusakli
2a8437f08f removed templates config and mapping 🐑 2015-03-06 19:02:18 -05:00
barisusakli
5821a0758f return template name as well 2015-03-06 17:41:38 -05:00
Barış Soner Uşaklı
00be1e07e3 fix test 2015-03-06 15:21:00 -05:00
Barış Soner Uşaklı
ea9fccbf2a fix -inf +inf
added test for -inf +inf
2015-03-06 15:12:55 -05:00
Barış Soner Uşaklı
07572b188b fix crash 2015-03-06 14:54:02 -05:00
Julian Lam
f14c5f7e1c added new hook 'action:meta.override404' so plugins can override the regular handling of pages that are not found 2015-03-06 13:40:39 -05:00
Barış Soner Uşaklı
9915e31bc5 closes #2826 2015-03-06 13:05:22 -05:00
Barış Soner Uşaklı
f7d7cc2610 closes #2808 2015-03-06 13:00:56 -05:00
Barış Soner Uşaklı
607535b37e closes #2823 2015-03-06 12:29:05 -05:00
Julian Lam
daaf61bc68 fixed issue where accessing a category's access control caused a client-side error 2015-03-06 12:02:25 -05:00
yariplus
1102f40873 Add object setting plugin
Allows objects to be added to a plugin's settings using a tag with a JSON-like syntax in data-attributes.
A complex object can be created by using an array or another object as a parent, the object will be added to the parent array or the parent object's declared property instead of as it's own data-key.
2015-03-06 10:20:35 -05:00
barisusakli
558e708576 remove console.log 2015-03-05 17:32:40 -05:00
Barış Soner Uşaklı
e5343b7efc dont display cluster warning if not running as cluster 2015-03-05 16:21:52 -05:00
Julian Lam
68cb1350f2 added instructions to grabbing theme versions 2015-03-05 15:41:35 -05:00
Barış Soner Uşaklı
eed00fadde Merge remote-tracking branch 'origin/master' into mongodb-3.0-driver-2.0 2015-03-05 11:33:36 -05:00
Julian Lam
b777c448cf closed #2803 2015-03-04 16:03:58 -05:00
Barış Soner Uşaklı
6bd3c54a03 fix findAndModify
temp fix for connect-mongo
create admin after categories
2015-03-03 16:16:32 -05:00
psychobunny
3c9431b2fc socket.io/plugin updated instructions to use require.main.require instead 2015-03-03 15:50:21 -05:00
psychobunny
f082270f25 got rid of hideIfPrivate 2015-03-03 15:47:23 -05:00
psychobunny
9bf55c96d2 closes #2818 2015-03-03 15:46:57 -05:00
Barış Soner Uşaklı
e421a2c7cd pass session 2015-03-03 15:12:40 -05:00
Barış Soner Uşaklı
d9e0a495b0 updated install.js to install mongodb native 2 2015-03-03 14:31:09 -05:00
psychobunny
80945eff7e closes #2819 2015-03-03 14:19:18 -05:00
psychobunny
a22300746c latest tjs 2015-03-03 14:03:40 -05:00
Barış Soner Uşaklı
a19b25a3b3 closes #2816 2015-03-03 12:40:27 -05:00
Julian Lam
d7cd936b54 added preserveCase option to slugify 2015-03-03 12:34:45 -05:00
psychobunny
9f2b849861 latest tjs 2015-03-03 12:13:03 -05:00
Barış Soner Uşaklı
fa05971326 derp beforeEach 2015-03-02 16:35:12 -05:00
Barış Soner Uşaklı
0fdaaadae5 changed to before all 2015-03-02 16:28:03 -05:00
Barış Soner Uşaklı
e8644dac26 group.hidden is already bool 2015-03-02 16:10:08 -05:00
Barış Soner Uşaklı
8cb18b1e48 possible fix to group category 2015-03-02 16:06:40 -05:00
Barış Soner Uşaklı
c851b5a9b1 made getBaseUser public 2015-03-02 14:12:53 -05:00
psychobunny
89ecda5163 for plugin admin pages
need to find a better solution tho
2015-03-02 14:09:44 -05:00
Barış Soner Uşaklı
ac1e0513fc moved setupPageRoute to helpers 2015-03-02 14:01:18 -05:00
psychobunny
8c79e11dae properly fixes #2782 2015-03-01 16:10:54 -05:00
barisusakli
c40258a82c removed 2x calls to getRecentTopicReplies 2015-02-27 23:18:04 -05:00
psychobunny
fa607132be closes #2782 2015-02-27 18:07:29 -05:00
barisusakli
bd17bff7d4 prevent double follow/unfollow 2015-02-27 17:57:09 -05:00
psychobunny
5b67cd841e fire filter:config.get even if anonymous 2015-02-27 15:30:43 -05:00
Barış Soner Uşaklı
cd1d287a46 fix new posts appearing out of order 2015-02-27 15:18:52 -05:00
psychobunny
0fadaf037a filter:homepage.get for populating available routes on ACP 2015-02-27 15:09:09 -05:00
psychobunny
657fa8de73 oops action:homepage.get:* 2015-02-27 15:04:44 -05:00
psychobunny
44e8323efa action:navigation.get:* 2015-02-27 15:00:52 -05:00
psychobunny
c97c1ab4b9 filter:config.get 2015-02-27 15:00:49 -05:00
Barış Soner Uşaklı
8b21f1c8ab dont reload settings page on every save
only show an alert if reload is required
renamed settings.language to settings.userLang to match the config
2015-02-27 13:24:53 -05:00
Julian Lam
73a0908228 fixed hungarian language key being incorrect :rage2: 2015-02-27 12:59:02 -05:00
Barış Soner Uşaklı
5140e5db8d closes #2759 2015-02-27 12:53:08 -05:00
Julian Lam
27282a2877 if no order is specified during a category creation, NodeBB won't crash 2015-02-27 12:31:23 -05:00
Barış Soner Uşaklı
4c67fffabc dont parse sig if its falsy 2015-02-27 11:58:40 -05:00
Julian Lam
3ef54c3c01 added new hook to allow plugins to override the local login strategy with their own, closes #2806 2015-02-27 10:56:18 -05:00
barisusakli
01b012d89d #1642 2015-02-26 18:44:13 -05:00
barisusakli
2c2586b578 closes #2271 2015-02-26 15:14:27 -05:00
barisusakli
83663cf46b removed unused require 2015-02-26 14:14:58 -05:00
psychobunny
b07574d838 unnecessary return 2015-02-26 14:11:13 -05:00
psychobunny
3cc3e2f306 moved homepage configuration to its own acp page 2015-02-26 14:10:41 -05:00
psychobunny
332d4346ba fixed disable toggle for nav 2015-02-26 12:53:48 -05:00
psychobunny
a59b932020 displayUsersLink deprecated 2015-02-26 12:35:36 -05:00
psychobunny
cfd66e5dd4 fixes #2795 2015-02-26 12:29:59 -05:00
barisusakli
f7f453f8cd closes #2794 2015-02-26 12:22:52 -05:00
psychobunny
046bcef800 fixes #2782 2015-02-26 11:53:10 -05:00
ahwayakchih
7ed41a1f60 Set separator for loading environment variables to nconf, as discussed on https://github.com/NodeBB/NodeBB/pull/2778#issuecomment-76209393 2015-02-26 17:39:23 +01:00
Julian Lam
e0c7ef1451 fixed #2781 2015-02-26 11:09:14 -05:00
Julian Lam
6a32a0f399 closes #2775 2015-02-26 11:03:15 -05:00
Julian Lam
a3bc5d2037 fixing bug where the nav dropdown didn't close when a chat was opened 2015-02-26 10:08:48 -05:00
Julian Lam
5173fd7138 #2796 2015-02-26 09:34:43 -05:00
Julian Lam
72e9a6caa8 tweaks to ACP plugins page 2015-02-26 09:26:38 -05:00
Julian Lam
a2c6f58782 fixed issue where an updated alert didn't contain changes to the clickfn, closes #2798 2015-02-26 09:14:28 -05:00
Julian Lam
339619fc9d #2799 2015-02-26 09:06:33 -05:00
Julian Lam
4a264cac52 latest fallbacks 2015-02-26 08:43:42 -05:00
Julian Lam
01166b08c3 latest translations 2015-02-26 08:41:38 -05:00
Julian Lam
00f3084b8e closes #2792, closes #2791, closes #2788, closes #2787, closes #2786, closes #2785, closes #2784, closes #2783
Squashed commit of the following:

commit ca5064a4effa3904ce936b521b169bba8d24f1a1
Author: Julian Lam <julian@designcreateplay.com>
Date:   Thu Feb 26 08:19:32 2015 -0500

    Revert "added ajaxify popstate cache, so back/forward will just put back the already loaded page"

    This reverts commit 77d154bb8b.

commit ae07fc56c156074de8048bb627f5d9be849c8ad1
Author: Julian Lam <julian@designcreateplay.com>
Date:   Thu Feb 26 08:19:24 2015 -0500

    Revert "on click, topics are marked read from the unread page. Also fixed an issue where isPopState kept getting set to true, causing issues"

    This reverts commit d8c9ec0d40.

    Conflicts:
    	public/src/client/unread.js

commit 96ee3631d7e4e1fc2c1b7632d86684fecd1e430f
Author: Julian Lam <julian@designcreateplay.com>
Date:   Thu Feb 26 08:18:25 2015 -0500

    Revert "actually fixed isPopState error"

    This reverts commit e6701c5a1f.
2015-02-26 08:19:57 -05:00
psychobunny
0c8e0ca46f linted /meta 2015-02-25 19:28:43 -05:00
psychobunny
b0628c2df8 missing semi-colons in database/ 2015-02-25 19:27:13 -05:00
psychobunny
32ce785e5a somebody was trying to save trees by reducing whitespace
burn the trees
2015-02-25 19:16:24 -05:00
psychobunny
26245133f3 linted client-side core modules 2015-02-25 19:15:02 -05:00
psychobunny
241f5b0224 linted client side modules 2015-02-25 19:13:03 -05:00
psychobunny
cb1e2c9fef linting client side modules 2015-02-25 19:09:39 -05:00
psychobunny
c3541dbc95 linting acp 2015-02-25 19:05:29 -05:00
psychobunny
f6d90782a8 hinting 2015-02-25 19:03:32 -05:00
psychobunny
c1b45bc0ea #2779 when duplicating categories, rename category:name to indicate it is duplicate
otherwise :rage1: when somebody deletes the wrong category
2015-02-25 18:54:11 -05:00
psychobunny
5020e864fc #2779 also copy icon 2015-02-25 18:52:26 -05:00
psychobunny
59d176fa7b closes #2779 2015-02-25 18:29:23 -05:00
barisusakli
a0c3ddc555 fix navigator 2015-02-25 18:00:03 -05:00
psychobunny
5a8babdde5 up'd vanilla's version 2015-02-25 17:52:45 -05:00
psychobunny
d545492b67 navigation: moved target to properties 2015-02-25 17:51:50 -05:00
psychobunny
b1f835b053 Merge remote-tracking branch 'origin/master' into sortable-menu 2015-02-25 17:44:02 -05:00
psychobunny
b788e134d1 added compatibility for deprecated filter:header.build
remove after 0.7.x
2015-02-25 17:43:31 -05:00
psychobunny
bc7729fbb3 console.logs 2015-02-25 17:27:05 -05:00
psychobunny
2b57ef3d4b fixed a bug with draggable 2015-02-25 17:26:44 -05:00
psychobunny
1b250b8f57 linting 2015-02-25 17:23:02 -05:00
psychobunny
2ff59278c9 navigation cleanup 2015-02-25 17:22:41 -05:00
psychobunny
aa58302a27 type check before escape/unescape 2015-02-25 17:22:25 -05:00
psychobunny
e90f3bf7c8 fix typo in install data 2015-02-25 17:22:12 -05:00
psychobunny
1774cf0b15 allow language strings in menu items 2015-02-25 17:12:17 -05:00
psychobunny
be06162f0d translator.unescape 2015-02-25 16:59:38 -05:00
psychobunny
33e4a2f1ec translator.escape 2015-02-25 16:55:38 -05:00
psychobunny
6c0efa09c0 bugfix 2015-02-25 16:52:50 -05:00
psychobunny
d806cd134f sortable menus, done 2015-02-25 16:47:19 -05:00
ahwayakchih
4c2f628baa Added support for using mongo:password and redis:password from config, when no password is entered at setup. This allows for having "default" password and overrides from config. Added using mongo:username and port from config when running setup. 2015-02-25 22:27:19 +01:00
psychobunny
809ed255d1 drag & drop routes 2015-02-25 16:19:14 -05:00
Julian Lam
f00589c8ba removing 'see all chats' from chats list, as it is in menu.tpl now 2015-02-25 16:07:03 -05:00
Julian Lam
37d426dddb npnp, I totally meant to remove a method that's still in use... 2015-02-25 15:56:52 -05:00
Julian Lam
ec075ca608 suppressing alertSuccess when clicking into topics from unread page 2015-02-25 15:50:20 -05:00
Barış Soner Uşaklı
73505e9bd0 closes #2247 2015-02-25 15:37:33 -05:00
psychobunny
afc690d67b upon saving, copy over route properties from defaults 2015-02-25 15:29:26 -05:00
psychobunny
a9f175a2bb ability to sort navigation 2015-02-25 15:18:57 -05:00
psychobunny
a2e3179ea4 nav - enable / disable 2015-02-25 15:16:51 -05:00
psychobunny
1ae0a8a1bf typo 2015-02-25 15:01:45 -05:00
psychobunny
c3701bcea7 loading and saving navigation 2015-02-25 15:01:28 -05:00
psychobunny
fbc0a11c87 nav - basic ACP setup 2015-02-25 14:50:45 -05:00
Julian Lam
e6701c5a1f actually fixed isPopState error 2015-02-25 14:33:46 -05:00
Julian Lam
d8c9ec0d40 on click, topics are marked read from the unread page. Also fixed an issue where isPopState kept getting set to true, causing issues 2015-02-25 14:33:46 -05:00
Julian Lam
77d154bb8b added ajaxify popstate cache, so back/forward will just put back the already loaded page 2015-02-25 14:33:46 -05:00
Barış Soner Uşaklı
094cd6df32 closes #2777 2015-02-25 14:17:38 -05:00
psychobunny
8256d2b997 bugfix 2015-02-25 14:15:50 -05:00
psychobunny
307204fc38 nav - added enabled/disabled 2015-02-25 14:12:16 -05:00
Julian Lam
55262b399a tweaks and refactoring for #2774 2015-02-25 14:10:00 -05:00
psychobunny
6c77adfd3c tjs 0.1.21 * 2015-02-25 14:05:16 -05:00
psychobunny
431a7f3300 tjs 0.1.20 2015-02-25 14:02:33 -05:00
psychobunny
40008a9e85 Merge remote-tracking branch 'origin/master' into sortable-menu 2015-02-25 13:56:57 -05:00
psychobunny
6cea047518 loading navigation, complete 2015-02-25 13:55:26 -05:00
psychobunny
3be5242aa1 navigation - upgrade script 2015-02-25 13:50:41 -05:00
psychobunny
9a24110a37 jsonlint 2015-02-25 13:50:35 -05:00
psychobunny
f1adddb775 navigation - basic save function 2015-02-25 13:45:49 -05:00
Julian Lam
3202a52a61 refactored notif dropdown, #2771 2015-02-25 13:43:25 -05:00
psychobunny
80116c3e30 fixed potential bug in rewards 2015-02-25 13:42:14 -05:00
psychobunny
ba9bba1dd8 navigation backbone 2015-02-25 13:27:25 -05:00
psychobunny
58411a4764 deprecated filter:header.build, the equivalent hook (same output data) will be filter:navigation.available 2015-02-25 13:26:42 -05:00
psychobunny
7a4fc8e48b save default menu on installation 2015-02-25 13:26:09 -05:00
psychobunny
d754a6390e navigation install data 2015-02-25 13:25:56 -05:00
psychobunny
738c27bf04 started dynamic sortable menu 2015-02-25 13:10:38 -05:00
psychobunny
ecad9d54ed tjs 0.1.19 for undefined key cleanups 2015-02-25 13:08:55 -05:00
psychobunny
6dacaf6bb5 helpers.displayMenuItem 2015-02-25 12:48:26 -05:00
Barış Soner Uşaklı
0c903672d0 uid not used #1973 2015-02-25 12:46:00 -05:00
Barış Soner Uşaklı
e2b535dfaf closes #1973 2015-02-25 12:44:04 -05:00
psychobunny
61cbb70691 update tjs to 0.1.18 for conditional helper functionality 2015-02-25 12:39:32 -05:00
Julian Lam
29873f1c5c removed unused .getAll method, and sorting notifications client-side so that unread notifs don't all appear at the top, #2772 2015-02-25 12:26:55 -05:00
Julian Lam
ade12116a1 closed #2766 2015-02-25 10:51:35 -05:00
Julian Lam
ba7c873f07 closed #2765 2015-02-25 09:57:32 -05:00
Julian Lam
948cd22e9c triggering full-screen composer on short viewports as well as narrow, #2763 2015-02-25 09:49:08 -05:00
Peter Jaszkowiak
34bbe241ce Merge pull request #3 from NodeBB/master
Merge in latest
2015-02-24 21:59:19 -07:00
barisusakli
9084ee2d7e cleanup popular.js 2015-02-24 22:24:22 -05:00
Julian Lam
89bf036262 fixing crash when utils.slugify is called with a null value 2015-02-24 21:11:25 -05:00
psychobunny
cf6b32bce6 logic error 2015-02-24 18:24:00 -05:00
psychobunny
6c5395dd05 added --verbose flag for grunt dev 2015-02-24 18:22:38 -05:00
psychobunny
8d121e7724 cleanup 2015-02-24 18:16:51 -05:00
psychobunny
d003515fd1 grunt - added restart message 2015-02-24 18:05:00 -05:00
psychobunny
aa12ab9478 think its fairly safe to say this isn't experimental anymore
worked every single time I reloaded today, and that'd be about a hundred
thousand times so far
2015-02-24 17:57:18 -05:00
psychobunny
6771c3c74c added deprecation notice to ./nodebb watch 2015-02-24 17:53:31 -05:00
psychobunny
d03a70cc25 if multiple file extensions change before nodebb finishes compiling, then add to incomplete list and compile 2015-02-24 17:14:28 -05:00
psychobunny
7fe8180cf4 Merge remote-tracking branch 'origin/master' into grunt-dev 2015-02-24 16:41:07 -05:00
psychobunny
68930aaa5d limit watch paths to three levels deep in nodebb-*, should be enough hopefully
minimatch sucks, unless I'm using it wrong. negating = find everything
then remove as necessary => long load times before watch is activated
2015-02-24 16:36:13 -05:00
psychobunny
8862fcba33 removing grunt deps we don't need 2015-02-24 15:50:23 -05:00
psychobunny
982400354a added watch paths to plugins/themes 2015-02-24 15:50:01 -05:00
psychobunny
f8663bbfd0 added tpl flag to --from-file 2015-02-24 15:46:37 -05:00
psychobunny
b9875b42e9 yay grunt watch finally works! 2015-02-24 15:34:05 -05:00
psychobunny
e5c842d923 ability to send in extensions (comma delimited) to --from-file 2015-02-24 15:33:37 -05:00
Julian Lam
98158fb6f9 @barisusakli works perfectly 2015-02-24 15:22:25 -05:00
barisusakli
acc3c6a0a5 closes #2762 2015-02-24 15:05:55 -05:00
Julian Lam
912de27c9d fixed indentation issues 2015-02-24 14:43:19 -05:00
Barış Soner Uşaklı
c94c1430b7 api/post/pid route 2015-02-24 13:02:58 -05:00
psychobunny
eb6754c5eb nice, I figured out how to speed up grunt watch 2015-02-24 12:56:49 -05:00
psychobunny
01c15b8884 Merge remote-tracking branch 'origin/master' into grunt-dev 2015-02-24 12:23:52 -05:00
psychobunny
242f66934c another attempt 2015-02-24 12:23:35 -05:00
Barış Soner Uşaklı
52aa7d27e8 #2761 2015-02-24 11:58:09 -05:00
Barış Soner Uşaklı
9de0c0cdd4 closes #2761 2015-02-24 11:55:16 -05:00
psychobunny
ab2315f3de #2751 2015-02-24 11:45:58 -05:00
psychobunny
fdc8b67449 require pkg when needed 2015-02-23 17:25:36 -05:00
psychobunny
f408c76a98 requiring plugins in meta when needed 2015-02-23 17:24:20 -05:00
Julian Lam
3e3fff9fe8 hooking up accept/reject invite, #2758 2015-02-23 16:46:48 -05:00
Julian Lam
03e39f7b9b isInvited mechanic for #2758 2015-02-23 16:31:23 -05:00
psychobunny
13fa1f6b9a require socket.io only when you need it, shaves off another 0.5s on load 2015-02-23 16:24:43 -05:00
psychobunny
61b8fd2402 woops, left in some debug statements 2015-02-23 16:13:04 -05:00
psychobunny
dee5d18439 require npm module only as needed - shaves off a full second of loading time yay 2015-02-23 16:08:29 -05:00
Barış Soner Uşaklı
66d6c49ed4 closes #2749 2015-02-23 15:55:45 -05:00
Julian Lam
8262c38ac8 upgrading privilege sets to be system groups, so they're not in the way 2015-02-23 15:43:32 -05:00
Julian Lam
4984f2f449 Merge branch 'master' of github.com:nodebb/NodeBB 2015-02-23 15:25:37 -05:00
Barış Soner Uşaklı
14888a96cb Merge remote-tracking branch 'origin/master'
Conflicts:
	src/upgrade.js
2015-02-23 15:04:46 -05:00
Barış Soner Uşaklı
55884220b4 #2749 upgrade plugins:active to zset 2015-02-23 14:57:22 -05:00
psychobunny
ee377b160e #2751 fixes syntax error on acp/ajaxify 2015-02-23 14:55:59 -05:00
Julian Lam
d3ff6a9f47 hidden groups are invisible to non-members, #2758 2015-02-23 14:54:48 -05:00
psychobunny
44c6375d91 it's on line 24 now 2015-02-23 14:11:51 -05:00
psychobunny
f63ecac8ee upgrade script for nodebb-rewards-essentials 2015-02-23 14:11:50 -05:00
Barış Soner Uşaklı
89f2520eba #2560 fix user link pic 2015-02-23 14:07:51 -05:00
Barış Soner Uşaklı
e6e755dd46 #2560 2015-02-23 14:05:43 -05:00
Barış Soner Uşaklı
1d5e15eab4 closes #2560 2015-02-23 13:39:29 -05:00
Julian Lam
8b81f3d835 server-side support for hidden option in group admin, #2758 2015-02-23 13:05:33 -05:00
Barış Soner Uşaklı
53db052cca timeago widgets 2015-02-23 12:55:44 -05:00
Julian Lam
218ecce6c1 accessing search route with no term auto-expands the form now, part 1 of 2, #2757 2015-02-23 09:12:13 -05:00
barisusakli
56d18666d6 closes #2752 2015-02-22 14:47:07 -05:00
Julian Lam
dfabbb5fa2 latest translations 2015-02-21 23:13:53 -05:00
psychobunny
cb7c318377 closes #2751 2015-02-20 19:31:33 -05:00
psychobunny
f5eaa08340 fixed complications with deleted id's 2015-02-20 19:29:57 -05:00
psychobunny
def57d2926 don't rely on client side to increment id (duh) 2015-02-20 17:37:34 -05:00
psychobunny
7a8d84c011 ability to add a claimability limit to rewards 2015-02-20 17:33:29 -05:00
psychobunny
bb35950a5a rewards acp - ability to set amount of times a user can claim reward 2015-02-20 17:19:39 -05:00
Barış Soner Uşaklı
61b1251a73 removed sort methods 2015-02-20 16:34:31 -05:00
psychobunny
5a6457ec7c adding rewards-essentials to core 2015-02-20 16:09:20 -05:00
psychobunny
fe83adcbae prevent rewards from clobbering each other on save 2015-02-20 15:21:09 -05:00
psychobunny
fbbd405b00 even:alert socket call -> app.alert 2015-02-20 15:07:43 -05:00
psychobunny
b26bf9f22d rewards: bug fixes and cleanup, pretty much done part 1 ;) 2015-02-20 14:45:07 -05:00
psychobunny
2ba1363e12 results.owner* 2015-02-20 14:23:57 -05:00
psychobunny
aa38d6dda2 rewards bug fixes 2015-02-20 14:21:40 -05:00
psychobunny
7e9095b21b added "owner" to action:post.upvote/downvote/unvote 2015-02-20 14:21:33 -05:00
Barış Soner Uşaklı
f9581e435d getGroupsData method and filter:groups.get 2015-02-20 14:20:49 -05:00
psychobunny
949fcbbf11 rewards: big feature sprint 2015-02-20 13:40:19 -05:00
Barış Soner Uşaklı
fc23dea1d2 up versions 2015-02-20 12:36:57 -05:00
psychobunny
54c5034ce0 moved rewards/conditions/conditoinals out of core into rewards-essentials 2015-02-20 12:31:38 -05:00
psychobunny
a7c3d193cc include nodebb-rewards namespace 2015-02-20 12:17:58 -05:00
psychobunny
7fa61f03e2 saving conditions 2015-02-20 12:16:13 -05:00
psychobunny
332110b8e2 bugfix 2015-02-20 12:16:04 -05:00
psychobunny
5fcbffe652 fixed delegate syntax 2015-02-20 00:29:15 -05:00
psychobunny
1998f102d6 using tjs to load new lines instead of cloning 2015-02-20 00:26:19 -05:00
psychobunny
8373f7359e don't error out if reward not filled 2015-02-19 23:53:50 -05:00
psychobunny
09086f7d30 deleting rewards 2015-02-19 23:49:36 -05:00
psychobunny
c844400ab9 cleanup and fix for adding new rewards 2015-02-19 23:40:23 -05:00
psychobunny
5f54de3b37 successfully got loading and saving of rewards working 2015-02-19 23:39:39 -05:00
psychobunny
e5115c0cf2 differentiate between rid and id 2015-02-19 23:15:37 -05:00
psychobunny
67b693cd3a pass in expected format of active rewards 2015-02-19 23:02:52 -05:00
psychobunny
cd26f5d06d passing in values for saving rewards 2015-02-19 22:44:23 -05:00
psychobunny
91c02d4e29 ditching rewardID in favour of verbose id's 2015-02-19 22:19:04 -05:00
psychobunny
46e0fad2d8 rewards: code organization, getting ready to code saving/loading of active rewards 2015-02-19 22:06:52 -05:00
psychobunny
2cc6f0c507 fixed disable logic 2015-02-19 21:56:50 -05:00
psychobunny
4acf8cafee rewards: adding new rows 2015-02-19 21:51:32 -05:00
Julian Lam
88aa427669 updated upgrade script so that it does not rely on Groups.list, as the method has changed between v0.5.0 and v0.6.0.
Also added setImmediate call so eachLimit doesn't explode
2015-02-19 19:34:13 -05:00
psychobunny
029ae11ed5 rewards - cleanup 2015-02-19 19:10:01 -05:00
psychobunny
3ca11c1947 rewards: disable / delete 2015-02-19 18:51:42 -05:00
psychobunny
4145046e02 rewards: got everything loading 2015-02-19 18:46:36 -05:00
psychobunny
b1c37775c5 more styling 2015-02-19 18:22:21 -05:00
barisusakli
756d03fa62 closes #2745
generate paths on retrieval instead of notification creation
also fix follow notification path
2015-02-19 18:14:38 -05:00
psychobunny
7457b22427 added more api fields to rewards 2015-02-19 17:48:01 -05:00
psychobunny
9291ec64f9 styling 2015-02-19 17:47:47 -05:00
Julian Lam
82543bdeee fixed #2744 2015-02-19 17:31:05 -05:00
psychobunny
d9bd7a400d minor styling 2015-02-19 17:29:44 -05:00
psychobunny
4f53bd59be rewards - got custom inputs loading 2015-02-19 17:24:58 -05:00
Julian Lam
58094d2b3b removed console logs, and requiring markdown 1.0.0 plugin 2015-02-19 17:07:01 -05:00
psychobunny
94c1c2d547 fixed loading mock data 2015-02-19 16:57:32 -05:00
Julian Lam
ceb18fe73d added new hook and method for plugins to introduce their own formatting options, #2743 2015-02-19 16:51:15 -05:00
Barış Soner Uşaklı
767816e669 #2738 2015-02-19 16:46:00 -05:00
Barış Soner Uşaklı
c1ce0a9e1d closes #2738 2015-02-19 16:37:56 -05:00
Barış Soner Uşaklı
c3a51033a8 removed utils.getQueryParams() use utils.params() 2015-02-19 16:11:23 -05:00
psychobunny
2bebac964e loading mock data 2015-02-19 16:09:58 -05:00
Barış Soner Uşaklı
743cd20441 closes #2267 2015-02-19 15:56:12 -05:00
Julian Lam
4ba6d44858 Merge pull request #2739 from yariplus/mobifix
Fix #2684 ACP navbar on mobile.
2015-02-19 15:53:38 -05:00
yariplus
6c44de27ed Fix spaces and less variables. 2015-02-19 15:29:43 -05:00
Julian Lam
4dad7de33f fallbacks for #2601 2015-02-19 15:06:53 -05:00
Julian Lam
711dff1dd0 added language strings for #2601 2015-02-19 15:05:41 -05:00
psychobunny
0e7c3be9d3 made some progress with mock api + acp 2015-02-19 15:04:13 -05:00
psychobunny
bdcf090aaa init rewards system 2015-02-19 14:20:13 -05:00
Barış Soner Uşaklı
da305210e2 closes #2618 2015-02-19 13:24:06 -05:00
Barış Soner Uşaklı
97c0b130ca closes #2691 2015-02-19 12:23:44 -05:00
Julian Lam
350acde379 ability to mark a notification read/unread from dropdown list, made styling less bootstrap-locked, using FA icon in theme instead of hardcoded in template 2015-02-19 12:06:15 -05:00
Barış Soner Uşaklı
8eb45fc80a dont remove self from browsing 2015-02-19 12:04:53 -05:00
Barış Soner Uşaklı
d09fcbaef0 closes #2741 2015-02-19 11:17:29 -05:00
yariplus
145f7b3809 Fix #2684 ACP navbar on mobile. 2015-02-19 06:35:45 -05:00
Julian Lam
268981f6db latest translations 2015-02-18 23:00:44 -05:00
Barış Soner Uşaklı
957a0840b1 Merge pull request #2736 from pitaj/master
Fix ACP sidebar affix issue
2015-02-18 21:55:51 -05:00
barisusakli
364ed641dd truncateUserList on search 2015-02-18 21:27:09 -05:00
barisusakli
aa94dafac1 closes #725 2015-02-18 21:09:33 -05:00
psychobunny
eb88d2fbd8 testing docgen again 2015-02-18 16:19:23 -05:00
psychobunny
1337924afb test commit - testing docgen 2015-02-18 16:04:46 -05:00
Julian Lam
6a69fcd4cd fixes #2665 2015-02-18 15:41:44 -05:00
Julian Lam
502e806f88 fixed #2732 -- group creation now using language keys, and no longer succeeds if a group by the name of 'guest' is created. 2015-02-18 15:34:01 -05:00
Peter Jaszkowiak
1ce0073cb6 Fixed events sidebar positioning 2015-02-18 13:30:06 -07:00
Peter Jaszkowiak
a2f4cda715 Fixed sidebar positioning 2015-02-18 13:26:13 -07:00
Barış Soner Uşaklı
dca143fd87 Merge pull request #2706 from acardinale/master
Add hooks "filter:topic.build" and "filter:category.build"
2015-02-18 10:48:05 -05:00
acardinale
6607dfc4c9 Update categories.js 2015-02-18 15:27:14 +01:00
acardinale
8975a0962e Update topics.js 2015-02-18 15:26:05 +01:00
barisusakli
d577371a51 fix test 2015-02-18 07:41:35 -05:00
barisusakli
0dca86f255 fix tests 2015-02-18 07:36:49 -05:00
barisusakli
60efeb8561 fix nid 2015-02-18 07:28:53 -05:00
barisusakli
31a44a9982 dont use fa icon 2015-02-18 00:04:55 -05:00
Barış Soner Uşaklı
25b25319f1 Merge pull request #2727 from yariplus/fixselects
Fix select and select multiple loading/saving on widget ACP.
2015-02-17 23:09:51 -05:00
barisusakli
3bcd8aefb0 deleteObjectFields method
cleaned up user reset
2015-02-17 22:22:06 -05:00
psychobunny
540facaaab try #2 (I give up, grunt-watch seems so unpredictable... on windows anyways) 2015-02-17 19:18:55 -05:00
barisusakli
75657605ad fix typo in search 2015-02-17 18:57:24 -05:00
barisusakli
fbcc7c4bc3 closes #2634 2015-02-17 18:52:54 -05:00
barisusakli
c305cd8220 removed commented out code 2015-02-17 18:14:29 -05:00
barisusakli
0096d74cfa user password reset test 2015-02-17 18:11:30 -05:00
barisusakli
150d33eb92 upgrade script to rename widgets:home.tpl to widgets:categories.tpl 2015-02-17 17:55:20 -05:00
Julian Lam
df7c48c474 restoring latest plugin version in plugins ACP 2015-02-17 16:09:25 -05:00
Julian Lam
7bb9ea4b33 querying via qs now 2015-02-17 16:01:57 -05:00
psychobunny
02c310ea03 Merge remote-tracking branch 'origin/master' into grunt-dev 2015-02-17 15:26:22 -05:00
Barış Soner Uşaklı
276cd51836 closes #2467 2015-02-17 15:14:06 -05:00
psychobunny
0611b7e1ea closes #2733 2015-02-17 15:12:43 -05:00
Barış Soner Uşaklı
8f6b577bad Update package.json 2015-02-17 14:50:08 -05:00
Barış Soner Uşaklı
bd553eb05d closes #2002 2015-02-17 13:25:22 -05:00
Barış Soner Uşaklı
fe1f4f84ec Merge pull request #2682 from MegaGM/action.posts.loaded
Change argument in action:posts.loaded
2015-02-17 12:26:19 -05:00
Mega
16c5c18165 Update arguments in action:posts.loaded 2015-02-16 10:43:56 +03:00
Peter Jaszkowiak
25e9dca74e Merge pull request #2 from NodeBB/master
Update to latest
2015-02-15 21:15:59 -08:00
yariplus
c3f0f52757 Fix select and select multiple loading/saving on widget ACP. 2015-02-15 01:53:18 -05:00
Barış Soner Uşaklı
12619ba733 Merge pull request #2698 from MegaGM/acp.panel.width
[ACP] Remove unnecessary panel width restriction
2015-02-13 23:50:02 -05:00
barisusakli
e3ba6716d1 closes #2723 2015-02-13 20:28:37 -05:00
barisusakli
16be6d3382 increase group search results to 20 items 2015-02-13 18:34:03 -05:00
barisusakli
d152254bcb removed availableTemplates assign 2015-02-13 18:26:25 -05:00
barisusakli
b2fc4d5dc4 #2002 2015-02-13 18:16:36 -05:00
barisusakli
c450992882 closes #2722 2015-02-13 15:13:16 -05:00
Julian Lam
1029b6c2f3 some prep for #2499 2015-02-12 16:15:35 -05:00
Barış Soner Uşaklı
d09a53197e closes #2570 2015-02-12 15:03:46 -05:00
Barış Soner Uşaklı
09b26bc950 if code isnt validated return error 2015-02-12 14:37:01 -05:00
Barış Soner Uşaklı
8cbb9aa310 #2585 2015-02-12 13:42:45 -05:00
Barış Soner Uşaklı
0d84486187 closes #2585 2015-02-12 13:38:19 -05:00
Barış Soner Uşaklı
429d7cbfa2 added filter:category.get 2015-02-12 13:23:21 -05:00
psychobunny
f4c587c530 move hardcoded initial welcome text into welcome.md 2015-02-12 13:10:18 -05:00
Barış Soner Uşaklı
0421b6ef06 closes #2639 2015-02-12 13:04:49 -05:00
Barış Soner Uşaklı
cdd5847b39 closes #2664 2015-02-12 12:23:13 -05:00
Barış Soner Uşaklı
5cebcfba7a update validator ver 2015-02-12 11:49:26 -05:00
barisusakli
cf986ad903 Merge remote-tracking branch 'origin/master'
Conflicts:
	src/socket.io/user.js
2015-02-11 21:55:16 -05:00
barisusakli
f99c3a310d use uid instead of socket.uid 2015-02-11 21:54:20 -05:00
Barış Soner Uşaklı
a62a3647a0 use uid, socket.uid is always 0 here 2015-02-11 21:53:53 -05:00
barisusakli
5dfafff421 call callback on password update 2015-02-11 21:26:26 -05:00
barisusakli
06b2a6ff68 closes #2717 2015-02-11 21:09:43 -05:00
Peter Jaszkowiak
013627860d Merge pull request #1 from NodeBB/master
Update
2015-02-11 16:55:36 -08:00
psychobunny
e60ef6c9d1 Merge pull request #2716 from pitaj/master
Translate ACP pages
2015-02-11 18:10:48 -05:00
Peter Jaszkowiak
2b9d1ee3dd Translate ACP pages
I fixed it
2015-02-11 16:05:05 -07:00
psychobunny
d016a9f3b0 Merge pull request #2715 from pitaj/master
Make ACP sidebar fixed
2015-02-11 17:57:20 -05:00
Peter Jaszkowiak
a583f9d77a Fixed sidebar overlay issue on window width
Had the wrong `min-width`
2015-02-11 14:56:57 -07:00
Barış Soner Uşaklı
3f31098144 closes #2619 2015-02-11 16:16:32 -05:00
Barış Soner Uşaklı
3293436867 closes #2640 2015-02-11 14:44:56 -05:00
Barış Soner Uşaklı
7d963e52cf closes #2686 2015-02-11 13:44:54 -05:00
Barış Soner Uşaklı
d20628a8d4 closes #2539 2015-02-11 12:55:02 -05:00
Julian Lam
8a581ed1dd fixes #2711 :rage2: 2015-02-11 12:30:48 -05:00
Julian Lam
0c5c0bf08a making userRow selector less specific, in group details.js 2015-02-11 12:23:19 -05:00
Barış Soner Uşaklı
f3d1e96c24 filter deleted topics on popular 2015-02-11 12:12:37 -05:00
Barış Soner Uşaklı
749ce5f8e5 dont crash if callback isnt supplied to list methods 2015-02-11 12:01:55 -05:00
Julian Lam
081462983a refactored the groups update method a bit, and now if a group has pending members and it becomes a public group, those users become members 2015-02-11 11:35:14 -05:00
Peter Jaszkowiak
8241243f6b Make ACP sidebar fixed
If you want to implement some kind of replacement for the CSS calc I
used, go ahead and do it yourself. I'm hoping webmasters can either deal
with a tad bit of overlap or have a modern browser.
2015-02-10 21:34:19 -07:00
barisusakli
1142f7700f closes #2714 2015-02-10 23:34:06 -05:00
barisusakli
104393f5f7 closes #2712 2015-02-10 21:54:35 -05:00
barisusakli
a5029d148c open user links in new tab 2015-02-10 20:20:57 -05:00
psychobunny
fd62b537b7 Merge pull request #2713 from yariplus/widgetsingleclick
Make widget headers clickable anywhere.
2015-02-10 19:53:45 -05:00
Timothy Fike
a0e98d5957 Make widget headers clickable anywhere. 2015-02-10 19:47:06 -05:00
Barış Soner Uşaklı
2c86ca59e6 fire filter:serch.build if query is empty 2015-02-10 15:23:11 -05:00
Barış Soner Uşaklı
6a55cdfbaf fix relative_path image url for sub installs 2015-02-10 14:47:01 -05:00
Barış Soner Uşaklı
57d6bb3b4c filter:search.build hook 2015-02-10 14:30:01 -05:00
Barış Soner Uşaklı
b40b87dd36 dont add relative_path to uploads it is added on the way out 2015-02-10 13:45:29 -05:00
Barış Soner Uşaklı
34c1d69ed3 added filter:tags.search 2015-02-10 13:12:08 -05:00
Julian Lam
47964e8ff4 latest fallbacks 2015-02-10 11:24:44 -05:00
Julian Lam
0d9d9bf110 added two new language strings 2015-02-10 11:24:11 -05:00
Julian Lam
9bfb7585ee bundling emoji-extended with all installs, @frissdiegurke 2015-02-10 11:21:14 -05:00
Julian Lam
f16c37eeaf #2692 2015-02-10 11:17:25 -05:00
Julian Lam
57d45518bd added a preventDefault when href="#" or data-ajaxify="false", so page doesn't send user back to top (which is kind of annoying), but not sure if this may introduce side-effects. @barisusakli @psychobunny 2015-02-10 11:16:24 -05:00
Julian Lam
15e6c51541 latest translations 2015-02-10 10:53:19 -05:00
barisusakli
b6125b1674 toString pid 2015-02-09 18:00:02 -05:00
barisusakli
5e7bf7a272 default search in posts 2015-02-09 17:50:19 -05:00
barisusakli
6cd615ee45 dont add post/topic query params if searching for users/tags 2015-02-09 17:45:35 -05:00
Barış Soner Uşaklı
c98720ee4c show results as WIP 2015-02-09 17:02:47 -05:00
Barış Soner Uşaklı
be92f07ab9 save/clear search preferences 2015-02-09 15:32:43 -05:00
Julian Lam
9b45109349 updating development version 2015-02-09 14:49:43 -05:00
Julian Lam
b1340b74c6 updating vanilla minver 2015-02-09 13:41:21 -05:00
Julian Lam
c351261165 added daily cleaning of reset tokens #2708 2015-02-08 22:02:13 -05:00
Julian Lam
1843d0364e closed #2708 2015-02-08 21:06:45 -05:00
barisusakli
7f6518e4a6 private plugin link fix 2015-02-08 13:38:42 -05:00
acardinale
612acc41ba Add hook "filter:category.build"
Same behavior as "filter:register.build"
2015-02-08 12:05:26 +01:00
acardinale
a63c679935 Add hook "filter:topic.build"
Same behavior as "filter:register.build"
2015-02-08 11:58:01 +01:00
barisusakli
10928ed11b escape post content 2015-02-07 23:51:25 -05:00
barisusakli
b41119a374 show seconds like search page 2015-02-07 23:32:42 -05:00
barisusakli
138a13f1b2 dont crash if searchQuery is falsy 2015-02-07 23:10:54 -05:00
barisusakli
4d63a7c020 closes ##2705 2015-02-07 23:00:58 -05:00
barisusakli
5cc728994b dont need hidePostedBy 2015-02-07 20:55:57 -05:00
barisusakli
d96e4ec22a fix category filter and pagination, strip marquee 2015-02-07 20:30:03 -05:00
barisusakli
4d34241072 missing semicolon 2015-02-07 20:02:21 -05:00
barisusakli
eff1256dfb search sort, search in posts, titles, posts& titles 2015-02-07 20:00:07 -05:00
Julian Lam
957415463f Merge branch '0.7.0'
Conflicts:
	package.json
	src/search.js
2015-02-07 17:07:48 -05:00
barisusakli
8bbd7d971b fix index to post if sorting is by votes and pagination is used 2015-02-07 00:52:53 -05:00
barisusakli
9062a8f02b pass on mainPid 2015-02-07 00:19:22 -05:00
barisusakli
c859586269 calculate topic post indices instead of querying db 2015-02-07 00:12:47 -05:00
Julian Lam
ff5eeb3a85 fixed #2704 2015-02-06 20:42:20 -05:00
barisusakli
38dd3d4281 search newer/older than and better pagination 2015-02-06 19:47:27 -05:00
barisusakli
722b629572 closes #2703 2015-02-06 14:16:33 -05:00
Barış Soner Uşaklı
6680c2d475 Merge pull request #2621 from TheBronx/master
new filter hooks on favourite actions #2620
2015-02-06 12:39:15 -05:00
barisusakli
ba6af71150 fix profile update 2015-02-05 23:37:11 -05:00
barisusakli
652e247d1b fix username change event log 2015-02-05 23:21:31 -05:00
barisusakli
92c869e886 try to get ip from x-forwarded-for first 2015-02-05 23:18:53 -05:00
barisusakli
d65546a34d search form fix 2015-02-05 21:08:52 -05:00
barisusakli
9487f3a028 qs module changes categories param 2015-02-05 20:51:25 -05:00
barisusakli
d3aa353d73 dont crash if html is not string 2015-02-05 20:38:43 -05:00
barisusakli
9bca777320 closes #2700 allowGroupCreation setting 2015-02-05 19:38:51 -05:00
barisusakli
149120a186 fix notif url in topic notification email 2015-02-05 18:22:19 -05:00
barisusakli
832430ed37 dont crash if post.user or post.category doesn't exist 2015-02-05 18:07:17 -05:00
barisusakli
5c0bcd7e5d proper qs, pagination on search results 2015-02-05 18:02:30 -05:00
barisusakli
161b934827 reply count filter atleast/atmost 2015-02-05 17:21:01 -05:00
Julian Lam
a12bb9a32c latest translations 2015-02-05 17:11:33 -05:00
barisusakli
def600e927 search in categories and children 2015-02-05 14:55:40 -05:00
Mega
a0926d5505 [ACP] Remove unnecessary panel width restriction 2015-02-05 22:28:21 +03:00
Julian Lam
f7ccdc3668 Merge branch 'master' of github.com:NodeBB/NodeBB 2015-02-05 13:09:34 -05:00
Julian Lam
fdaccc804c handling cases where no callback is passed to emailer.send 2015-02-05 13:09:32 -05:00
Barış Soner Uşaklı
ff5f3b264a Merge pull request #2547 from Alpacatty/patch-1
fix generated widgets areas glitching on small screens
2015-02-05 11:36:47 -05:00
barisusakli
845b97687a removed strict li selector 2015-02-04 19:05:43 -05:00
barisusakli
57ebcb8b8a closes #2694 2015-02-04 18:16:10 -05:00
barisusakli
39a75ea2d7 fix recent replies 2015-02-04 15:49:08 -05:00
barisusakli
385760bdda #2690 2015-02-04 12:09:54 -05:00
barisusakli
2911de0af9 really fix tests 2015-02-04 00:50:10 -05:00
barisusakli
cba9ad3d60 fix tests, and groups.join duh 2015-02-04 00:46:51 -05:00
barisusakli
16537bc636 prevent double callback 2015-02-04 00:37:08 -05:00
barisusakli
311fd00ecd dont allow guests to join groups 2015-02-04 00:33:15 -05:00
barisusakli
b7602c6e80 removed winston.err 2015-02-03 21:04:31 -05:00
barisusakli
1fe1085863 update validator and winston 2015-02-03 21:02:36 -05:00
barisusakli
b5b5894301 t.js version 2015-02-03 21:00:46 -05:00
barisusakli
fd773807e9 #2685 fix copy paste fail 😦 2015-02-03 19:55:14 -05:00
barisusakli
25ccc573c0 closes #2687 2015-02-03 18:13:34 -05:00
barisusakli
255f50343c closes #2685 2015-02-03 16:13:09 -05:00
barisusakli
28c57b6635 removed unused requires 2015-02-02 15:56:34 -05:00
Barış Soner Uşaklı
a0d70b48db Merge pull request #2675 from MegaGM/actionposts.edited
Added data argument to action:posts.edited hook
2015-02-02 15:15:04 -05:00
barisusakli
cc2ab12f29 removed bans from downvotes and flags
cleanup thread tools emits
2015-02-01 21:38:14 -05:00
Julian Lam
1b00d0f739 fixed #2670 2015-02-01 20:29:57 -05:00
Julian Lam
b3278cf8e8 fixed #2681 2015-02-01 20:21:31 -05:00
barisusakli
6a837632fa fix first post loading when pagination is enabled 2015-02-01 20:10:55 -05:00
Julian Lam
cfcfc8e0b1 Revert "fixed #2681"
This reverts commit a46aaf2c87.
2015-02-01 20:03:48 -05:00
Julian Lam
a46aaf2c87 fixed #2681 2015-02-01 20:01:41 -05:00
Julian Lam
5c2a70254f latest translations and fallbacks 2015-02-01 19:37:19 -05:00
Julian Lam
d284e89d6c added too-many-messages language key 2015-02-01 19:36:22 -05:00
Julian Lam
59da48dee5 added too-many-messages language key 2015-02-01 19:35:41 -05:00
Mega
df0e924714 Change argument in action:posts.loaded 2015-02-02 03:27:25 +03:00
barisusakli
0bfa8d337a removed console.logs 2015-02-01 19:13:27 -05:00
barisusakli
2c8e8a1f1c closes #2550, closes #2518 2015-02-01 19:12:03 -05:00
Mega
2f19f4106a Added data argument to action:posts.edited hook 2015-02-02 02:36:17 +03:00
Julian Lam
904daf7776 Merge branch 'master' into 0.7.0 2015-02-01 17:24:56 -05:00
Julian Lam
79083004e4 added missing file 2015-02-01 17:22:40 -05:00
Julian Lam
c652d1b80e removed console log from upgrade script 2015-02-01 17:22:08 -05:00
barisusakli
feeeb83a43 Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-31 15:47:40 -05:00
barisusakli
4d9e7fce22 notifyOnlineUsers helper 2015-01-31 15:42:10 -05:00
barisusakli
f988959989 Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-31 13:37:57 -05:00
barisusakli
7363c71180 sitemap style 2015-01-31 13:37:34 -05:00
Barış Soner Uşaklı
63fd3f259f Merge pull request #2676 from MegaGM/Fix-User.setUserField/s
Uploading avatar causes crash on 0.6.1-dev
2015-01-31 13:16:25 -05:00
barisusakli
dc0229fc73 closes #2677 2015-01-31 13:10:43 -05:00
Mega
2e1d1ac665 Uploading avatar causes crash on 0.6.1-dev 2015-01-31 18:06:54 +03:00
Mega
c16689503d Added as argument post id in action:posts.edited 2015-01-31 15:34:40 +03:00
barisusakli
15b5c56612 Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-31 00:00:24 -05:00
barisusakli
2c033bf286 set memberCount to 0 on creation 2015-01-31 00:00:02 -05:00
barisusakli
b3a968e006 merge 2015-01-30 22:41:18 -05:00
barisusakli
dc2a2aa98e store group member count in group hash
yet another upgrade script
2015-01-30 22:38:42 -05:00
Julian Lam
607e88b3c3 fixed browser title in user groups page 2015-01-30 16:29:33 -05:00
Julian Lam
ecfa8f7a7d passing memberCount and createTime into getUserGroups 2015-01-30 16:29:33 -05:00
Julian Lam
e4e9020e1f added groups page to user profile 2015-01-30 16:29:33 -05:00
Julian Lam
b62337b0b9 fixed browser title in user groups page 2015-01-30 16:27:29 -05:00
Julian Lam
da0b2c84e6 passing memberCount and createTime into getUserGroups 2015-01-30 16:24:57 -05:00
barisusakli
c8f87e5d36 removed console.log 2015-01-30 16:16:49 -05:00
Julian Lam
4a7ec3ccc6 added groups page to user profile 2015-01-30 15:48:21 -05:00
psychobunny
4f5918390a if user search is blank, return all users 2015-01-30 14:19:15 -05:00
psychobunny
7639bff0fe updated package.json 2015-01-30 13:06:17 -05:00
psychobunny
f5ef3cf866 Gruntfile.js 2015-01-30 13:06:04 -05:00
barisusakli
2512598917 Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-30 12:33:31 -05:00
barisusakli
60e052e788 closes #2674 2015-01-30 12:28:29 -05:00
barisusakli
3bb9c9531f catch errors from static hook 2015-01-30 12:25:07 -05:00
psychobunny
66b6e12aa3 added grunt deps 2015-01-30 12:21:00 -05:00
Julian Lam
77a9c7c195 Merge branch 'master' into 0.7.0 2015-01-29 19:51:29 -05:00
Julian Lam
939e623547 collapsing a bunch of whitespace using async.apply, and also fixed #2672 as well 2015-01-29 19:49:32 -05:00
barisusakli
39cac43b96 if key isn't found dont error
Conflicts:
	src/database/redis/main.js
2015-01-29 19:40:51 -05:00
barisusakli
f3f3ca8e50 if key isn't found dont error 2015-01-29 19:25:01 -05:00
Julian Lam
a7a4edfd37 administrators group no longer shows up in group searches 2015-01-29 19:18:18 -05:00
Julian Lam
f793536131 latest translations and fallbacks 2015-01-29 17:45:42 -05:00
barisusakli
d1a1cada19 fix typo 2015-01-29 17:12:12 -05:00
barisusakli
530bdbbd1a dont rename if key doesn't exist 2015-01-29 17:10:49 -05:00
barisusakli
b54f2de504 pass uid to getUsers and getUsersFromSets 2015-01-29 17:02:20 -05:00
Julian Lam
f753cfb1c9 search on grop sort change too 2015-01-29 16:45:51 -05:00
Julian Lam
b052ed3504 searching on keyup instead of enter key 2015-01-29 16:42:00 -05:00
Julian Lam
6ebc048f1f searching on keyup instead of enter key 2015-01-29 16:41:48 -05:00
psychobunny
6a2c35c263 latest t.js 2015-01-29 15:45:31 -05:00
Barış Soner Uşaklı
eb5746b2b4 Merge pull request #2589 from Schamper/bat-script
Simple bat file for Windows. Not all options are supported, but it's a start
2015-01-29 14:19:48 -05:00
Barış Soner Uşaklı
af4a272264 Merge pull request #2636 from Schamper/fix-editorconfig
Fix editorconfig syntax
2015-01-29 14:19:29 -05:00
barisusakli
4413c70d3c Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-29 13:42:05 -05:00
barisusakli
57453f33ab new group members route
getMembers can take start end
ability to specify how many group members to return
2015-01-29 13:37:45 -05:00
barisusakli
e16cfa396b Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-29 12:53:01 -05:00
barisusakli
a1c8902b4e hook fixes
new hook, action:user.online,
fix action:user.set hooks so they pass in uid
check err before firing hooks
2015-01-29 12:52:30 -05:00
Julian Lam
8bc2d97352 stringify helper for t.js 2015-01-29 10:08:53 -05:00
barisusakli
aaa1fae558 closes #2597 2015-01-29 01:06:48 -05:00
barisusakli
4d6a6f64b0 slug is lowercase 2015-01-28 23:43:08 -05:00
barisusakli
f9fecf4bc1 faster sort users 2015-01-28 19:19:55 -05:00
barisusakli
60fecdbdf8 Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-28 19:08:19 -05:00
barisusakli
0fab6c243c increase rate limit timeframe from 1 second to 10 seconds 2015-01-28 19:07:44 -05:00
barisusakli
c87c99eadd dont check admin emits against flooding 2015-01-28 17:08:41 -05:00
barisusakli
ed714cdf77 user search paginator 2015-01-28 15:08:33 -05:00
barisusakli
98ff75b9c3 closes #2581 2015-01-28 13:46:11 -05:00
Julian Lam
aabfeba38d Merge branch 'master' into 0.7.0
Conflicts:
	src/user.js
2015-01-28 13:39:21 -05:00
Julian Lam
63eeee4394 fixed issue where hitting enter while searching for groups would cause the page to reload. 2015-01-28 13:38:08 -05:00
barisusakli
9db7f0f9a0 doing on master as well 2015-01-28 10:30:18 -05:00
psychobunny
5a3c056759 removing li specific selector 2015-01-27 23:50:10 -05:00
psychobunny
370a60c14f potential bug @barisusakli I think you changed this, just pinging you in case 2015-01-27 23:50:01 -05:00
psychobunny
d47cd270df some random favourite typo 2015-01-27 23:37:47 -05:00
barisusakli
0dc0c39f48 removed li selector 2015-01-27 19:58:17 -05:00
barisusakli
ab69477b24 moved filter:user,get to central function 2015-01-27 17:37:21 -05:00
psychobunny
c06132e779 Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-27 17:13:43 -05:00
psychobunny
f253b11d71 passed in wrong object 2015-01-27 17:09:45 -05:00
psychobunny
0828caab32 renamed to filter:userlist.get 2015-01-27 16:51:48 -05:00
psychobunny
943e268ffc add filter:users.get 2015-01-27 16:39:33 -05:00
barisusakli
ddee93beab Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-27 16:20:20 -05:00
barisusakli
27518716a0 make getUsers public for plugins 2015-01-27 16:04:02 -05:00
Julian Lam
a3cadff1d3 updated settings module (v2) to fix multiple selects and checkboxes using name instead of id, which isn't always guaranteed to be set. 2015-01-27 14:47:39 -05:00
Julian Lam
d096a639d6 fixed #2657 -- there's a slight chance this might break other ACP pages, but my limited testing tells me it is ok so far 2015-01-27 13:14:07 -05:00
Julian Lam
891731ca52 enabled saving of sendPostNotification setting 2015-01-27 11:42:03 -05:00
Julian Lam
08e39d150e fixed #2655 2015-01-27 11:19:36 -05:00
Julian Lam
06238f6894 partial fix to #2655 2015-01-27 11:12:19 -05:00
barisusakli
c33b369858 closes #2658 2015-01-27 10:36:35 -05:00
psychobunny
72e14e6db6 closes #2653 2015-01-27 04:39:00 -05:00
Julian Lam
d102ff0704 fixed #2656 2015-01-26 21:35:30 -05:00
barisusakli
20a2262e43 Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-26 18:24:24 -05:00
barisusakli
bf9b633d50 fix Group.exists if an array is passed in 2015-01-26 16:48:39 -05:00
psychobunny
c9f0e61b57 Update CONTRIBUTING.md 2015-01-26 15:47:28 -05:00
psychobunny
d3d321f1b7 CLA mention in contributing.md 2015-01-26 15:46:34 -05:00
Julian Lam
57a3d53dee updating mentions minver 2015-01-25 21:04:11 -05:00
barisusakli
26defd7dca Groups.getGroupNameByGroupSlug 2015-01-25 20:53:57 -05:00
barisusakli
e31bf9131f added topics.follow and toggleFollow 2015-01-25 16:47:51 -05:00
Julian Lam
5a1c2b9ddf booleanifying sendPostNotification user setting when requested, and now only sending the post notification if the user has flipped that option on in user settings... kind of an important thing to forget... 2015-01-25 09:41:51 -05:00
barisusakli
288d507eb6 pass the loaded pids to action:posts.loaded 2015-01-24 18:48:34 -05:00
barisusakli
835ad3ea53 fix post.getUpvoters to work with an array 2015-01-24 13:16:07 -05:00
Julian Lam
bc9ede7b6c changed emailer.send so that it processes a callback, if provided. Also added new option to receive emails every time a topic you subscribe to is posted to. 2015-01-23 21:28:18 -05:00
barisusakli
90b1b13914 Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-23 18:21:24 -05:00
barisusakli
4b3aa26abd closes #2633 2015-01-23 18:19:30 -05:00
barisusakli
19814a619d Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-23 15:13:24 -05:00
barisusakli
caec718092 callback for getUidsInRoom 2015-01-23 15:12:57 -05:00
psychobunny
3fb7eb766b closes #2646 2015-01-23 15:06:53 -05:00
Julian Lam
ca92372676 fixed #2644 2015-01-23 07:27:49 -05:00
barisusakli
535f30aa9e Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-22 16:40:31 -05:00
Julian Lam
70f6c396fc updated widget container to use h3 in panel header 2015-01-22 16:38:24 -05:00
barisusakli
bd8a77a22b dont crash if callback isnt passed in 2015-01-22 16:23:38 -05:00
barisusakli
2c45dc6450 redis helpers 2015-01-22 16:21:36 -05:00
Julian Lam
0bf98b5494 simplified isOwner check because there's no need to check admin status as admins automatically become owners now 2015-01-22 16:08:55 -05:00
Julian Lam
070215b05e simplified isOwner check because there's no need to check admin status as admins automatically become owners now 2015-01-22 16:08:20 -05:00
Julian Lam
4c927060d9 Merge branch 'master' into 0.7.0 2015-01-22 16:02:41 -05:00
Julian Lam
0c2d2a28ba admins can bypass the request step of a group and just join it, and they also become owners when they join a group 2015-01-22 16:01:17 -05:00
Julian Lam
a526577927 only attempt to remove address bar if current position is at the top of screen 2015-01-22 15:08:23 -05:00
Julian Lam
72f28b7b38 closed #2641 2015-01-22 14:20:33 -05:00
barisusakli
d895ca6827 missing semicolon 2015-01-22 14:20:33 -05:00
barisusakli
77216acbcc user.delete test 2015-01-22 14:20:33 -05:00
barisusakli
5fb8817b3c closes #2643 2015-01-22 14:20:33 -05:00
Julian Lam
d2217b8137 closed #2641 2015-01-22 14:20:10 -05:00
barisusakli
740c52fc4f missing semicolon 2015-01-22 14:19:23 -05:00
barisusakli
4603484558 user.delete test 2015-01-22 14:18:19 -05:00
barisusakli
22c541d95f closes #2643 2015-01-22 14:13:39 -05:00
barisusakli
d40646ac42 Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-22 12:19:46 -05:00
barisusakli
f3719df997 getGroups method to get a range 2015-01-21 23:16:31 -05:00
Julian Lam
c8c7081f5d Merge branch 'master' into 0.7.0 2015-01-21 23:11:20 -05:00
Julian Lam
63f449d0ad Merge remote-tracking branch 'origin/0.7.0' into 0.7.0 2015-01-21 23:11:14 -05:00
Julian Lam
3ade5da00f groups sorting by creation date 2015-01-21 23:10:59 -05:00
barisusakli
c6ae6fae54 fix typo in test 2015-01-21 22:55:13 -05:00
barisusakli
afe29d3133 Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-21 22:54:15 -05:00
barisusakli
25f6b816ed send iso and unix timestamp 2015-01-21 22:53:33 -05:00
barisusakli
274523266f Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-21 22:51:18 -05:00
barisusakli
c379753341 upgrade scripts
upgrade groups to sorted set(groups:createtime) upgrade
upgrade groups:<name>:members to sorted set
new database methods
tests
2015-01-21 22:48:27 -05:00
Julian Lam
0d8dcbf734 Merge branch 'master' into 0.7.0 2015-01-21 17:41:51 -05:00
Julian Lam
4a3255d4fd search sorting 2015-01-21 17:41:43 -05:00
Julian Lam
be30dcc2d0 Merge branch 'master' into 0.7.0
Conflicts:
	public/src/client/groups/list.js
2015-01-21 17:16:06 -05:00
Julian Lam
af1fa11606 rejigged search so it grabs the values on method execution, instead of being passed in 2015-01-21 17:15:28 -05:00
Julian Lam
2a6de59277 if group search is executed with empty string, return all groups 2015-01-21 16:55:20 -05:00
barisusakli
5fe69e0386 input selector 2015-01-21 16:50:36 -05:00
Julian Lam
fd8a885145 fixed tests by removing the broken one, heh heh heh 2015-01-21 16:33:18 -05:00
Julian Lam
78a5843ae4 fixed tests by removing the broken one, heh heh heh 2015-01-21 16:33:09 -05:00
Julian Lam
4072172c8e companion commit to nodebb/nodebb-theme-vanilla@0d17032 2015-01-21 16:15:37 -05:00
Julian Lam
2917304f6c companion commit to nodebb/nodebb-theme-vanilla@0d17032 2015-01-21 16:14:31 -05:00
barisusakli
c20a848c7f removed console.logs 2015-01-21 16:05:43 -05:00
Julian Lam
69ee2c1d07 Merge branch 'master' into 0.7.0 2015-01-21 15:58:56 -05:00
Julian Lam
ba1260923f companion to nodebb/nodebb-theme-vanilla@ad953f2 2015-01-21 15:58:43 -05:00
Julian Lam
d4779c8c0a Merge branch 'master' into 0.7.0 2015-01-21 15:46:58 -05:00
Julian Lam
6502dd2561 group searching 2015-01-21 15:43:05 -05:00
Julian Lam
fa27461abc upgrading administrator groups as well 2015-01-21 14:41:42 -05:00
barisusakli
dd38ee96fa return cover:url in user groups 2015-01-21 13:46:40 -05:00
Julian Lam
093e499bf8 defining module name in iconSelect module 2015-01-20 20:55:46 -05:00
Julian Lam
56200b0fdf defining module name in iconSelect module 2015-01-20 20:55:22 -05:00
barisusakli
f8a03c4fca Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-20 20:13:01 -05:00
Julian Lam
22a619d9c7 fixed #2631 2015-01-20 19:30:11 -05:00
barisusakli
ea3d7d610a Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-20 19:24:30 -05:00
barisusakli
7efc0619cc dont crash if data.username is undefined, dont set username to empty value 2015-01-20 18:13:48 -05:00
barisusakli
f1a3815ddc action:user.updateProfile 2015-01-20 17:42:05 -05:00
barisusakli
aab2bc0b39 keep track of the last 20 events 2015-01-20 17:04:10 -05:00
Julian Lam
c4bc51b834 fixing installation script that broke with recent updates to groups 2015-01-20 09:41:41 -05:00
Schamper
22e7b2d3b2 Fix editorconfig syntax 2015-01-20 12:29:09 +01:00
barisusakli
21522e59c4 added slug to user group return #2635 2015-01-20 01:30:42 -05:00
barisusakli
96c27d29f4 dont crash if callback isn't supplied 2015-01-19 20:49:24 -05:00
barisusakli
2f955c3af4 getUpvoters works with array 2015-01-19 17:06:43 -05:00
barisusakli
cb5ee2a141 closes #2632 2015-01-19 16:38:49 -05:00
Julian Lam
99dc37bd9c removed relativeTime util method, utils.js better be a C now. 2015-01-19 15:43:22 -05:00
Julian Lam
d2938ea509 closed #2626 2015-01-19 15:26:50 -05:00
Julian Lam
81c929fa77 added a new test for group renaming, #2629 2015-01-19 15:14:56 -05:00
barisusakli
d96a1f0365 closes #2630 2015-01-19 15:12:09 -05:00
Julian Lam
5160ab1ed1 closed #2625 2015-01-19 15:09:36 -05:00
Julian Lam
c0622743d2 closes #2629 2015-01-19 15:03:33 -05:00
barisusakli
4c62590bc8 closes #2628 2015-01-19 14:13:29 -05:00
barisusakli
a926a11e70 fix redirection when saving groups 2015-01-19 12:59:54 -05:00
barisusakli
ad21e73491 send values to plugins when updating groups 2015-01-19 12:59:53 -05:00
Julian Lam
eb5b8ccec3 better check for group exist, groups with different cases can no longer be created, #2588 2015-01-19 10:46:14 -05:00
Julian Lam
1e57c5d001 linting 2015-01-19 10:39:44 -05:00
Julian Lam
e5a33539d2 updated globals for jslint 2015-01-19 10:26:57 -05:00
barisusakli
9f8b274e24 filter:group.get 2015-01-18 17:35:58 -05:00
barisusakli
94fa212eab added filter:groups.get 2015-01-18 17:35:11 -05:00
Julian Lam
c026a64e8e adding concept of group slugs, #2588. ping @barisusakli for downstream plugin changes 2015-01-18 17:19:26 -05:00
barisusakli
6f140384e0 send groupData on action:group.create 2015-01-18 17:07:26 -05:00
Julian Lam
4317b3c872 fixing more exposed XSS outlets in groups frontend 2015-01-18 17:03:08 -05:00
Julian Lam
491e0060d4 more files that should be loaded for maintenanceMode to work 2015-01-18 16:52:50 -05:00
Julian Lam
fe45fc967d updating maintenance mode middleware so js doesn't crash until login client-side js is ready 2015-01-18 16:21:50 -05:00
barisusakli
f5b448c300 closes #2623 2015-01-18 14:32:47 -05:00
barisusakli
e46cda835a closes #2624 2015-01-18 14:31:37 -05:00
TheBronx
0bd48ef023 fix error in previous commit
fix error in previous commit
2015-01-18 19:15:59 +01:00
TheBronx
e3cf528b57 pass also user id on fireHook
pass also user id on fireHook as suggested by @barisusakli
2015-01-18 19:09:26 +01:00
TheBronx
6ccb35576c new filter hooks on favourite actions #2620
before a favourite action is made, fire a filter hook so plugins can
modify or cancel that action before it takes place.
2015-01-18 13:38:42 +01:00
barisusakli
03ae7db561 on user delete remove from ip sorted set, fix search by ip 2015-01-17 16:22:04 -05:00
barisusakli
0741f00e4f Merge remote-tracking branch 'origin/master' into 0.7.0 2015-01-17 15:57:09 -05:00
barisusakli
f67053df52 figure out pathname, dont crash if callback isnt supplied 2015-01-17 15:06:12 -05:00
barisusakli
b333653464 prevent js crash if responseJSON is undefined 2015-01-16 23:52:51 -05:00
Julian Lam
04be40158c if you attempt to join a group when you're already in a group, you can't anymore. 2015-01-16 20:14:39 -05:00
Julian Lam
8ba05c08fe category privilege rescinding 2015-01-16 17:03:19 -05:00
Julian Lam
577a646adc this should appease @barisusakli 2015-01-16 17:03:19 -05:00
barisusakli
236fe91e95 fix typo 2015-01-16 13:00:50 -05:00
barisusakli
6fe8d25166 add uid to filter:topic.get 2015-01-16 12:58:31 -05:00
barisusakli
3eb922393f closes #2616 2015-01-15 21:05:04 -05:00
barisusakli
61f069a071 final test fixes
copy pasta is bad
2015-01-15 15:47:01 -05:00
barisusakli
d94668216d misc test fixes 2015-01-15 15:42:55 -05:00
barisusakli
4554ef2195 more test fixes 2015-01-15 15:33:22 -05:00
barisusakli
15d2f54cd0 fix list tests 2015-01-15 15:06:02 -05:00
barisusakli
46fd1843ba fix key tests 2015-01-15 15:02:50 -05:00
barisusakli
162a7b9e0c cleanup hash tests before hooks 2015-01-15 14:58:29 -05:00
barisusakli
584daf12a0 cleaned up key tests 2015-01-15 14:36:03 -05:00
barisusakli
74099d1d8c proper set tests with before hooks 2015-01-15 14:27:45 -05:00
Julian Lam
8d23265324 sending in groupObj data into group.delete hook 2015-01-15 14:09:25 -05:00
barisusakli
6b5b0b9eec proper list tests, added before hooks 2015-01-15 14:02:55 -05:00
Julian Lam
5bc078d9df latest spanish translations 2015-01-15 13:56:53 -05:00
Julian Lam
d4d99cba7c fixes #2615 2015-01-15 13:53:17 -05:00
Julian Lam
36cfbbbc58 Merge branch 'master' of github.com:nodebb/NodeBB 2015-01-15 13:52:37 -05:00
barisusakli
c324d71727 closes #2610 2015-01-15 13:33:49 -05:00
Julian Lam
fa87d883dc allowing "hidden" to be passed directly to Groups.create 2015-01-15 13:22:10 -05:00
barisusakli
429c4022f0 closes #2561 2015-01-15 12:47:44 -05:00
barisusakli
3e666adfea action:plugin.install and uninstall 2015-01-15 12:34:15 -05:00
Julian Lam
d813bda883 update, create, destroy hooks, #2609 2015-01-15 11:19:47 -05:00
Julian Lam
5c6dfb7462 missed one, @EisFrei 2015-01-15 10:58:31 -05:00
Julian Lam
cfdd4ec164 Revert "missed one, ping @EisFrei"
This reverts commit 2ed6b78cc5.
2015-01-15 10:55:10 -05:00
Julian Lam
2ed6b78cc5 missed one, ping @EisFrei 2015-01-15 10:54:55 -05:00
Julian Lam
666cef4029 updated hooks action:groups.join, action:groups.leave, and action:groups.requestMembership to match other action hooks in group namespace (that's "group", not "groups"), ping @EisFrei 2015-01-15 10:53:21 -05:00
Julian Lam
36a49cd994 guests can no longer attempt to join a group, #2588 2015-01-15 10:44:27 -05:00
barisusakli
cd99324286 closes #2413, closes #2599 2015-01-14 16:02:29 -05:00
barisusakli
8f5bf1a7ed closes #2587 2015-01-14 15:29:57 -05:00
Julian Lam
188c667580 closed #2612 2015-01-14 14:48:32 -05:00
barisusakli
d9a7547e63 next(err) 2015-01-14 11:49:04 -05:00
barisusakli
468d2be668 added error checks and missing returns to widgets closes #2611 2015-01-14 11:47:05 -05:00
Julian Lam
86a6979606 added comments to explain the voting logic 2015-01-14 11:18:45 -05:00
Julian Lam
87b9a60610 fixed group renaming, ping @schamper 2015-01-14 10:04:50 -05:00
Julian Lam
7289d50e6c whoops, fixing travis and groups 2015-01-14 09:46:13 -05:00
Julian Lam
fc75e3258d closed #2608 2015-01-14 09:44:43 -05:00
Julian Lam
d02f7e0e42 #2609 2015-01-14 09:42:09 -05:00
Julian Lam
6ac04e9da7 closed #2609 2015-01-14 09:33:02 -05:00
Julian Lam
aeafbe6170 better widget representation on smaller screens 2015-01-14 09:29:52 -05:00
barisusakli
e414008c59 closes #2584 2015-01-13 17:30:44 -05:00
barisusakli
fd2edcaf6f closes #2594 2015-01-13 17:15:14 -05:00
Julian Lam
a8c818c6cd added new hook, filter:controllers.topic.get 2015-01-13 15:47:38 -05:00
barisusakli
f2bfb4c0d1 removed following count hide 2015-01-13 15:13:34 -05:00
barisusakli
a9bf9745b6 removed unused yourid 2015-01-13 15:10:50 -05:00
barisusakli
1adc3b4ea7 removed console.log 2015-01-13 14:57:41 -05:00
barisusakli
82c4488505 remove console.log fix typos 2015-01-13 14:56:43 -05:00
barisusakli
6ccdf187ea closes #2595 2015-01-13 14:54:13 -05:00
barisusakli
f6525a13c8 data will be always inside socket.io/ modules 2015-01-13 12:26:41 -05:00
barisusakli
2a66aad078 ability to add extra fields to user data, new hook filter:user.addFields 2015-01-13 12:02:14 -05:00
Julian Lam
1c497f842a fixes travis, #2588 2015-01-13 11:27:48 -05:00
Julian Lam
50ac813388 Merge branch 'private-groups', closed #2588 2015-01-13 11:03:54 -05:00
Julian Lam
b3b3300bd6 fixing bug with checkboxes, #2588 2015-01-13 00:25:44 -05:00
barisusakli
c2fab07236 replaces fs.exists with try catch 2015-01-12 23:24:19 -05:00
barisusakli
be8385e8dc fix else if style 2015-01-12 23:11:32 -05:00
barisusakli
5f12679426 #2604 2015-01-12 23:10:36 -05:00
Julian Lam
de58f4ff6b hiding group admin and cover photo controls from non-owners, #2588 2015-01-12 22:47:58 -05:00
Julian Lam
710df626b5 removed join/view buttons from group list, made cover clickable, #2588 2015-01-12 21:21:02 -05:00
Julian Lam
698f598a30 default cover photo for groups, #2588 2015-01-12 21:14:00 -05:00
Julian Lam
203a15204e bugfixes to cover photo, #2588 2015-01-12 20:40:34 -05:00
Julian Lam
675968f0f3 cover photo for groups, #2588 2015-01-12 20:34:15 -05:00
barisusakli
5a940778ee closes #2603 2015-01-12 20:15:00 -05:00
barisusakli
7a7aeb131e use tpl_url 2015-01-12 19:04:14 -05:00
barisusakli
02dbce57fb relative path fix missing ; 2015-01-12 18:52:41 -05:00
barisusakli
1f674f10e2 added before to hash test 2015-01-12 18:35:28 -05:00
barisusakli
05894d14c6 closes #2151 2015-01-12 18:28:47 -05:00
barisusakli
200f74f1c7 closes #2592 2015-01-12 18:16:34 -05:00
barisusakli
bbfec7d443 fix post index parse 2015-01-12 17:54:07 -05:00
barisusakli
456b844e61 closes #2596 2015-01-12 17:33:11 -05:00
barisusakli
08c1dad3ee topics.isFollowing works with multiple tids now 2015-01-12 16:57:18 -05:00
barisusakli
f417e07b9d user search changes 2015-01-12 15:57:45 -05:00
Julian Lam
697d2636f9 Merge branch 'master' into private-groups 2015-01-12 13:24:11 -05:00
Julian Lam
8be9854062 latest translations 2015-01-12 13:24:01 -05:00
Julian Lam
612b8f01b6 Merge remote-tracking branch 'origin/master' into private-groups 2015-01-12 13:01:33 -05:00
Julian Lam
635393a274 group creation and deletion from outside ACP, #2588 2015-01-12 13:00:23 -05:00
barisusakli
ad12886d19 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2015-01-12 11:07:41 -05:00
barisusakli
2974f1ba8a closes #2602 2015-01-12 11:07:38 -05:00
Julian Lam
765975e667 ACP groups delete calls generic groups socket listener now, #2588 2015-01-11 18:17:49 -05:00
Julian Lam
08e883de44 added widget areas to the bottom of the group details page, #2588 2015-01-11 18:04:35 -05:00
Julian Lam
240056d169 added icon container styles back to ACP, proper hooking-up of iconSelect module in group settings panel, #2588 2015-01-11 17:44:51 -05:00
Julian Lam
69ed8ac45d icon selection interface -- moved iconSelect module out of admin space, #2588 2015-01-11 17:24:15 -05:00
Julian Lam
19f0f6b7e0 fixed issue where trying to go to the user profile would cause a cold load instead of ajaxify 2015-01-11 16:55:25 -05:00
barisusakli
0305ad989c match uploader return 2015-01-10 19:48:00 -05:00
barisusakli
f74383bba4 changed userPhoto to files[] 2015-01-10 18:59:24 -05:00
barisusakli
23f450adbd delete topic post sorted sets on topic purge 2015-01-10 17:47:31 -05:00
barisusakli
5414c268a0 sort numerically 2015-01-10 17:41:03 -05:00
barisusakli
9f35a2b251 flat threadtools.purge 2015-01-10 17:12:32 -05:00
barisusakli
1caddb6182 uploads controller 2015-01-10 16:40:54 -05:00
barisusakli
a70b73df81 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2015-01-10 15:03:32 -05:00
barisusakli
4ab288acae delete fullname:uid mapping on user delete 2015-01-10 15:03:29 -05:00
psychobunny
5d43aa3212 ability to redirect the user from anywhere
just send

```
callback({
status: 302,
path: '/user/psychobunny'
});
```
2015-01-10 14:50:28 -05:00
psychobunny
a7d73d4106 fixes adding new routes to user/xxx/route 2015-01-09 14:33:42 -05:00
Julian Lam
311d02dbe1 removed console log 2015-01-09 13:53:19 -05:00
Julian Lam
b4731ad47b added colorpicker to frontend, badge colour changes for groups, #2588 2015-01-09 13:53:11 -05:00
Julian Lam
7be0830751 properly showing private state in group details, #2588 2015-01-09 10:45:50 -05:00
Julian Lam
84c19921b9 newly created groups automatically assign the creator as the owner, some tweaks to isPrivate parsing, added groups link to header, #2588 2015-01-09 10:33:54 -05:00
Julian Lam
65537d997f if a group is deleted, flush the owner and pending sets, too 2015-01-09 09:43:45 -05:00
barisusakli
a8de1c1465 properly fix #2586 2015-01-08 18:24:05 -05:00
barisusakli
d7c27b35ab closes #2586 2015-01-08 17:47:20 -05:00
Schamper
eb1fe77510 That's not how you do comments silly 2015-01-08 23:29:12 +01:00
Schamper
9b40c44fd8 Simple bat file for Windows. Not all options are supported, but it's a good start. 2015-01-08 23:25:28 +01:00
Julian Lam
96c37c25b0 join, leave, accept, reject: handlers + UI, #2588 2015-01-08 17:23:40 -05:00
Julian Lam
b0182f702f Merge remote-tracking branch 'origin/private-groups' into private-groups 2015-01-08 17:07:26 -05:00
Julian Lam
3a3d45155e show pending members in frontend UI, #2588 2015-01-08 17:06:33 -05:00
psychobunny
3712fe1fb5 latest t.js 2015-01-08 16:57:15 -05:00
Julian Lam
71b41239ac attempting to join a private group causes the join to be pending, #2588 2015-01-08 16:50:31 -05:00
barisusakli
db1cc6b8d2 search by fullname 2015-01-08 15:49:00 -05:00
Julian Lam
a5d7fee623 Merge remote-tracking branch 'origin/master' into private-groups 2015-01-08 15:41:19 -05:00
Julian Lam
bb0b6d9db4 using 'invisible' class instead of 'hidden', #2588 2015-01-08 15:41:07 -05:00
Julian Lam
d747ce5760 granting and rescinding ownership, #2588 2015-01-08 15:40:41 -05:00
Julian Lam
a907fa2187 added concept of group ownership, #2588 2015-01-08 15:40:38 -05:00
Julian Lam
9fa3675424 added methods and socket listeners for group joining and leaving, #2588 2015-01-08 15:40:34 -05:00
Julian Lam
501935d359 updated helper loading so it loads all helpers in helpers local var, #2588 2015-01-08 15:40:23 -05:00
barisusakli
a77a761433 closes #1917 2015-01-08 13:47:21 -05:00
psychobunny
52cf224e5a translator.getTranslations & bug fix 2015-01-07 18:31:32 -05:00
psychobunny
5ee0ed401f fixed ajaxify's redirecting to external URLs.. well fixed redirecting in general 2015-01-07 17:45:09 -05:00
psychobunny
1a13f2a54a no need to crash nodebb on missing template directory warning 2015-01-07 17:45:08 -05:00
barisusakli
ce9c17f8e5 ability to search posts by user 2015-01-07 17:27:13 -05:00
Julian Lam
b685194dae updated helper loading so it loads all helpers in helpers local var 2015-01-07 16:38:52 -05:00
Julian Lam
1868a02bd7 Merge branch 'master' into private-groups 2015-01-07 16:23:07 -05:00
Julian Lam
aa62c52580 closed #2583 2015-01-07 16:21:20 -05:00
Julian Lam
a2af8105ec closed #2583 2015-01-07 16:18:38 -05:00
barisusakli
60f1b9679a search filters 2015-01-07 16:10:11 -05:00
Julian Lam
917f76feab group join/leave controls in groups list page (+ helper!) 2015-01-07 14:58:31 -05:00
Julian Lam
f3fa2f10ed added ACP option to enable private groups 2015-01-07 14:42:14 -05:00
barisusakli
c1ac92ac19 popular topics will use topic creation time 2015-01-07 13:35:53 -05:00
Julian Lam
2d4383c7b0 updating bootstrap in ACP to v3.3.1 2015-01-07 13:00:34 -05:00
Julian Lam
fc7a882877 fixed #2582 2015-01-07 10:09:09 -05:00
psychobunny
b34420c2d7 Update CONTRIBUTING.md 2015-01-07 02:46:10 -05:00
barisusakli
f060a36853 fix indent 2015-01-06 23:34:29 -05:00
barisusakli
b51127bd9c closes #2578 2015-01-06 23:29:48 -05:00
Julian Lam
f5b758245f added indonesian to NodeBB, Terima kasih! 2015-01-06 18:09:37 -05:00
Julian Lam
779fd0405e latest translations! 2015-01-06 18:04:42 -05:00
Julian Lam
3c1ee1f59f fixing incorrect language code for Italian 2015-01-06 16:33:49 -05:00
Julian Lam
9b8cc9fe6c partial revert of 659d0f68cb, #2417 2015-01-06 16:23:30 -05:00
Julian Lam
835886998b having composer/resize call findBootstrapEnvironment only on the first resize method call, and not right when library is required, #2417 2015-01-06 16:09:35 -05:00
Julian Lam
428a431164 Revert "wrapping findBootstrapEnvironment so that it doesn't run before the DOM is ready #2417"
This reverts commit e42365f7c1.
2015-01-06 16:05:06 -05:00
Julian Lam
e42365f7c1 wrapping findBootstrapEnvironment so that it doesn't run before the DOM is ready #2417 2015-01-06 12:06:33 -05:00
Julian Lam
659d0f68cb possibly fixing issue where mobile composer textarea is not properly sized when initially opened. Sort of related to #2417 2015-01-06 11:15:44 -05:00
psychobunny
4bbd3b47c0 Merge pull request #2580 from TheBronx/master
update bootstrap js to v3.3.1 fixes #2579
2015-01-05 17:18:13 -05:00
TheBronx
e26f8c3290 update bootstrap js to v3.3.1 fixes #2579
update bootstrap.min.js to v3.3.1 fixes #2579
2015-01-05 13:43:44 +01:00
Baris Usakli
a36391864a fix recent replies crash, closes #2575 2015-01-04 11:42:39 -05:00
Julian Lam
e4caa83158 Merge pull request #2573 from unreadableusername/master
footer.tpl loggedIn variable support
2015-01-04 11:39:23 -05:00
Baris Usakli
8522af504a closed #2571 2015-01-04 11:37:20 -05:00
psychobunny
64468a6f16 more linting 2015-01-03 20:10:08 -05:00
psychobunny
357de92624 tests/database linting 2015-01-03 20:08:49 -05:00
psychobunny
f3a113d318 jslinting on holiday ftw 2015-01-03 20:07:09 -05:00
Julian Lam
112a1e8c85 happy new year! 2015-01-03 17:53:25 -05:00
psychobunny
3da6466045 I thought I was on holiday (fixes infinite loop on language calls) 2015-01-03 03:38:01 -05:00
Oleksandr Pidlisnyi
f9887de478 footer.tpl loggedIn variable support 2015-01-02 17:29:03 +02:00
Julian Lam
02e0d4635b icon mgmt for #2463 2015-01-01 16:24:47 -05:00
Julian Lam
dfe8e8de70 image uploading for categories, #2463 2015-01-01 15:35:22 -05:00
Julian Lam
ad723e2943 Merge branch 'master' into categories_revamp
Conflicts:
	src/views/admin/partials/menu.tpl
2015-01-01 14:59:03 -05:00
barisusakli
7b49effc14 minor tweaks 2015-01-01 13:05:58 -05:00
Julian Lam
1ddb90720c Merge branch 'guest-handles' 2014-12-31 21:30:17 -05:00
Julian Lam
23b9b21cdd better handling of guest handles in frontend, #2569 2014-12-31 21:27:41 -05:00
Julian Lam
9befa6aca7 proper handling of post editing, integration with ACP toggle, #2569 2014-12-31 20:48:32 -05:00
barisusakli
ff770e3656 search test 2014-12-31 17:20:28 -05:00
barisusakli
6d31fee3f5 closes #2564
change user.search to accept params
can search substr with startsWith:false
no infinite scroll on admin user search page
2014-12-31 17:13:19 -05:00
barisusakli
fbd875b397 fix sortedSetIncrBy return 2014-12-31 16:38:57 -05:00
barisusakli
faf4163a6e more test fixes 2014-12-31 16:28:24 -05:00
Julian Lam
325815a78d showing guest handles in frontend UI #2569 2014-12-31 16:27:35 -05:00
barisusakli
861a3ca8a8 more test fixes 2014-12-31 16:14:34 -05:00
barisusakli
0a534b20e3 sortedSetCount fix for +inf/-inf 2014-12-31 16:09:33 -05:00
barisusakli
03ee524121 fix tests and mongo method 2014-12-31 15:59:57 -05:00
barisusakli
b443aec450 rest of the sorted set tests 2014-12-31 15:52:52 -05:00
barisusakli
1f0902bbe8 fix range tests 2014-12-31 14:44:52 -05:00
barisusakli
00541b2bc8 sortedSetRange tests 2014-12-31 14:41:58 -05:00
barisusakli
0ff37f9e0e sorted set tests 2014-12-31 14:27:16 -05:00
barisusakli
bfaf50908d closes #2565 2014-12-31 14:16:27 -05:00
barisusakli
1511a0c3fe closes #2568 2014-12-31 13:51:47 -05:00
Julian Lam
b97c9e4467 shorter language string for composer guest handle placeholder, #2569 2014-12-31 12:44:26 -05:00
Julian Lam
7dc309fc16 template in composer #2569 2014-12-31 12:36:25 -05:00
Julian Lam
fcbb48bb77 acp setting for allowGuestHandles #2569 2014-12-31 12:16:20 -05:00
Julian Lam
cb4fb62d4a moved ACP menu into a partial 2014-12-31 12:13:11 -05:00
barisusakli
38e7ecbb41 setRemove doesnt return result 2014-12-30 22:06:48 -05:00
barisusakli
ee820341d5 fix incrObjectFieldBy test 2014-12-30 18:52:23 -05:00
barisusakli
74a3977d42 decrObjectField, incrObjectFieldBy tests 2014-12-30 18:50:10 -05:00
barisusakli
e6244c547a fix isObjectField test 2014-12-30 18:46:46 -05:00
barisusakli
9af3007f3d fix copy paste fails 2014-12-30 18:44:44 -05:00
barisusakli
4d5ed784a1 more hash tests
getObjectValues
isObjectField
deleteObjectField
incrObjectField
2014-12-30 18:41:13 -05:00
barisusakli
13cd2e41bb fix assert 2014-12-30 18:29:11 -05:00
barisusakli
ebbb1bac26 more hash tests
getObjectField
getObjectFields
getObjectsFields
getObjectKeys
2014-12-30 18:25:32 -05:00
barisusakli
81b32fc095 missing comma 2014-12-30 18:08:16 -05:00
barisusakli
a6c75eea88 hash tests 2014-12-30 18:07:06 -05:00
Julian Lam
1186bff890 category edit page, #2463 2014-12-30 13:04:31 -05:00
Julian Lam
84e90cd73d category enable/disabled #2463 2014-12-30 12:25:39 -05:00
Julian Lam
a091757aa0 adding dedicated category edit page for ACP #2463 2014-12-29 21:38:21 -05:00
Julian Lam
6b95b28db7 drag/drop re-ordering fixed in ACP, #2463 2014-12-29 21:21:17 -05:00
Julian Lam
9e63b5f9a0 moved ACP menu into a partial 2014-12-29 21:21:17 -05:00
Julian Lam
c98331de82 revamping categories management page in ACP, #2463 2014-12-29 21:21:17 -05:00
barisusakli
1e6f5d822d setRemove tests 2014-12-29 18:28:59 -05:00
barisusakli
adae2bd13e fix copy paste fail 2014-12-29 18:23:17 -05:00
barisusakli
818182bc00 setCount setsCount tests 2014-12-29 18:20:11 -05:00
barisusakli
4590fe6155 isMemberOfSets test 2014-12-29 18:14:41 -05:00
barisusakli
a529c3b179 fix typo 2014-12-29 18:10:09 -05:00
barisusakli
7f933bc747 more set tests 2014-12-29 18:07:12 -05:00
barisusakli
3efc49dd72 set tests 2014-12-29 17:55:30 -05:00
barisusakli
def5d23744 missing done 2014-12-29 17:34:56 -05:00
barisusakli
633cef6dd7 listTrim fix 2014-12-29 17:32:31 -05:00
barisusakli
c62e7ed641 list test fix 2014-12-29 17:27:42 -05:00
barisusakli
9750a36dee fix get range 2014-12-29 16:25:23 -05:00
barisusakli
3e8c29e5f9 list tests 2014-12-29 16:20:35 -05:00
barisusakli
8aa75b7af4 publish reload requests, fix missing nconf 2014-12-29 15:41:55 -05:00
barisusakli
cc487a7fc8 publish restart requests 2014-12-29 15:31:15 -05:00
barisusakli
4364b50ecf closes #2562 2014-12-29 15:11:52 -05:00
barisusakli
d2e69884b5 closes #2556 2014-12-29 13:59:02 -05:00
barisusakli
c4c8964f82 closes #2543 2014-12-28 23:01:34 -05:00
Julian Lam
9d5daa0bf4 Update README.md 2014-12-28 22:53:17 -05:00
barisusakli
747f212f1a closes #2552, disable prompt colors 2014-12-28 22:32:02 -05:00
barisusakli
9170ee831a reset search on tags page if input is empty 2014-12-28 22:22:43 -05:00
barisusakli
fc79b3a932 fix isInstalled, publish plugin install and upgrade requests 2014-12-26 20:18:05 -05:00
barisusakli
48acb0082e isActive 2014-12-26 19:17:37 -05:00
barisusakli
68f985c6da refactor map css/less 2014-12-26 19:02:50 -05:00
barisusakli
fdbd9a816f moved comments above method 2014-12-26 18:55:06 -05:00
barisusakli
d0b8337075 broke plugins.js into files 2014-12-26 18:54:20 -05:00
barisusakli
d1540322c9 closes #2555 2014-12-26 15:44:00 -05:00
barisusakli
8eb58bf5fe check err 2014-12-25 18:21:06 -05:00
barisusakli
b7f55e8453 fix tests 2014-12-25 15:57:37 -05:00
barisusakli
8007bb0644 dont ignore error 2014-12-25 15:50:55 -05:00
barisusakli
e0edb71a8a use socket.io default and ["polling", "websocket"] 2014-12-25 14:13:54 -05:00
barisusakli
1cbf5ddfe9 only send back err on redis.deleteAll 2014-12-25 03:14:04 -05:00
barisusakli
7cf3719c80 fix rename and increment 2014-12-25 03:08:49 -05:00
barisusakli
410d9fa4fa fix more tests 2014-12-25 03:00:05 -05:00
barisusakli
b6639403fe fix set test 2014-12-25 02:50:44 -05:00
barisusakli
f4d1fbc4e3 fix mock require 2014-12-25 02:45:56 -05:00
barisusakli
102819426c require key tests 2014-12-25 02:43:11 -05:00
barisusakli
bf54859a27 key tests 2014-12-25 01:53:28 -05:00
barisusakli
872318442f install latest mongo in travis, travis only has 2.4.10 2014-12-25 01:00:57 -05:00
barisusakli
13daf8d167 mongo port 2014-12-25 00:45:30 -05:00
barisusakli
fd373ed8e7 added mongodb to travis.yml 2014-12-25 00:41:33 -05:00
barisusakli
37235557bb fix callback in redis.setRemove 2014-12-24 15:52:37 -05:00
barisusakli
00fb3ab909 only send back error for sortedSetsRemove 2014-12-24 01:54:04 -05:00
Julian Lam
61b6037991 0.6.1-dev 2014-12-24 00:47:04 -05:00
A Catty Alpaca
f0ed816edb fix generated widgets areas glitching on small screens
because columns should always be in rows
2014-12-23 23:49:15 +01:00
1218 changed files with 54528 additions and 18921 deletions

View File

@@ -1,6 +1,6 @@
root = true
[*.js, *.css, *.tpl, *.json]
[{*.js, *.css, *.tpl, *.json}]
indent_style = tab
end_of_line = lf
charset = utf-8

13
.gitattributes vendored Normal file
View File

@@ -0,0 +1,13 @@
# These files are text and should be normalized (convert crlf => lf)
*.json text
*.css text
*.less text
*.tpl text
*.html text
*.js text
*.md text
# Images should be treated as binary
# (binary is a macro for -text -diff)
*.png binary
*.jpg binary

13
.gitignore vendored
View File

@@ -8,7 +8,6 @@ public/css/*.css
*.sublime-project
*.sublime-workspace
.project
.idea
*.swp
Vagrantfile
.vagrant
@@ -31,4 +30,14 @@ pidfile
/public/stylesheet.css
/public/admin.css
/public/nodebb.min.js
/public/nodebb.min.js.map
/public/nodebb.min.js.map
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio
*.iml
## Directory-based project format:
.idea/
## File-based project format:
*.ipr
*.iws

View File

@@ -1,8 +1,14 @@
services:
- redis-server
before_install:
- "sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10"
- "echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list"
- "sudo apt-get update"
- "sudo apt-get install mongodb-org-server"
- npm i --production
- node app --setup="{\"url\":\"http://127.0.0.1:4567/\",\"secret\":\"abcdef\",\"database\":\"redis\",\"redis:host\":\"127.0.0.1\",\"redis:port\":6379,\"redis:password\":\"\",\"redis:database\":0,\"admin:username\":\"admin\",\"admin:email\":\"test@example.org\",\"admin:password\":\"abcdef\",\"admin:password:confirm\":\"abcdef\"}" --ci="{\"host\":\"127.0.0.1\",\"port\":6379,\"database\":0}"
- node app --setup="{\"url\":\"http://127.0.0.1:4567/\",\"secret\":\"abcdef\",\"database\":\"mongo\",\"mongo:host\":\"127.0.0.1\",\"mongo:port\":27017,\"mongo:username\":\"\",\"mongo:password\":\"\",\"mongo:database\":0,\"redis:host\":\"127.0.0.1\",\"redis:port\":6379,\"redis:password\":\"\",\"redis:database\":0,\"admin:username\":\"admin\",\"admin:email\":\"test@example.org\",\"admin:password\":\"abcdef\",\"admin:password:confirm\":\"abcdef\"}" --ci="{\"host\":\"127.0.0.1\",\"port\":27017,\"database\":0}"
before_script:
- "until nc -z localhost 27017; do echo Waiting for MongoDB; sleep 1; done"
language: node_js
node_js:
- "0.11"

View File

@@ -7,7 +7,9 @@ source_file = public/language/en_GB/category.json
source_lang = en_GB
trans.ar = public/language/ar/category.json
trans.bn = public/language/bn/category.json
trans.bg = public/language/bg/category.json
trans.cs = public/language/cs/category.json
trans.da = public/language/da/category.json
trans.de = public/language/de/category.json
trans.el = public/language/el/category.json
trans.en_US = public/language/en_US/category.json
@@ -19,6 +21,7 @@ trans.fi = public/language/fi/category.json
trans.fr = public/language/fr/category.json
trans.he = public/language/he/category.json
trans.hu = public/language/hu/category.json
trans.id = public/language/id/category.json
trans.it = public/language/it/category.json
trans.ja = public/language/ja/category.json
trans.ko = public/language/ko/category.json
@@ -30,8 +33,10 @@ trans.pl = public/language/pl/category.json
trans.pt_BR = public/language/pt_BR/category.json
trans.ru = public/language/ru/category.json
trans.ro = public/language/ro/category.json
trans.rw = public/language/rw/category.json
trans.sc = public/language/sc/category.json
trans.sk = public/language/sk/category.json
trans.sr = public/language/sr/category.json
trans.sv = public/language/sv/category.json
trans.th = public/language/th/category.json
trans.tr = public/language/tr/category.json
@@ -46,7 +51,9 @@ source_file = public/language/en_GB/login.json
source_lang = en_GB
trans.ar = public/language/ar/login.json
trans.bn = public/language/bn/login.json
trans.bg = public/language/bg/login.json
trans.cs = public/language/cs/login.json
trans.da = public/language/da/login.json
trans.de = public/language/de/login.json
trans.el = public/language/el/login.json
trans.en_US = public/language/en_US/login.json
@@ -58,6 +65,7 @@ trans.fi = public/language/fi/login.json
trans.fr = public/language/fr/login.json
trans.he = public/language/he/login.json
trans.hu = public/language/hu/login.json
trans.id = public/language/id/login.json
trans.it = public/language/it/login.json
trans.ja = public/language/ja/login.json
trans.ko = public/language/ko/login.json
@@ -69,8 +77,10 @@ trans.pl = public/language/pl/login.json
trans.pt_BR = public/language/pt_BR/login.json
trans.ru = public/language/ru/login.json
trans.ro = public/language/ro/login.json
trans.rw = public/language/rw/login.json
trans.sc = public/language/sc/login.json
trans.sk = public/language/sk/login.json
trans.sr = public/language/sr/login.json
trans.sv = public/language/sv/login.json
trans.th = public/language/th/login.json
trans.tr = public/language/tr/login.json
@@ -80,11 +90,14 @@ trans.zh_TW = public/language/zh_TW/login.json
type = KEYVALUEJSON
[nodebb.recent]
file_filter = public/language/<lang>/recent.json
source_file = public/language/en_GB/recent.json
source_lang = en_GB
trans.ar = public/language/ar/recent.json
trans.bn = public/language/bn/recent.json
trans.bg = public/language/bg/recent.json
trans.cs = public/language/cs/recent.json
trans.da = public/language/da/recent.json
trans.de = public/language/de/recent.json
trans.el = public/language/el/recent.json
trans.en_US = public/language/en_US/recent.json
@@ -96,6 +109,7 @@ trans.fi = public/language/fi/recent.json
trans.fr = public/language/fr/recent.json
trans.he = public/language/he/recent.json
trans.hu = public/language/hu/recent.json
trans.id = public/language/id/recent.json
trans.it = public/language/it/recent.json
trans.ja = public/language/ja/recent.json
trans.ko = public/language/ko/recent.json
@@ -107,8 +121,10 @@ trans.pl = public/language/pl/recent.json
trans.pt_BR = public/language/pt_BR/recent.json
trans.ru = public/language/ru/recent.json
trans.ro = public/language/ro/recent.json
trans.rw = public/language/rw/recent.json
trans.sc = public/language/sc/recent.json
trans.sk = public/language/sk/recent.json
trans.sr = public/language/sr/recent.json
trans.sv = public/language/sv/recent.json
trans.th = public/language/th/recent.json
trans.tr = public/language/tr/recent.json
@@ -118,11 +134,14 @@ trans.zh_TW = public/language/zh_TW/recent.json
type = KEYVALUEJSON
[nodebb.unread]
file_filter = public/language/<lang>/unread.json
source_file = public/language/en_GB/unread.json
source_lang = en_GB
trans.ar = public/language/ar/unread.json
trans.bn = public/language/bn/unread.json
trans.bg = public/language/bg/unread.json
trans.cs = public/language/cs/unread.json
trans.da = public/language/da/unread.json
trans.de = public/language/de/unread.json
trans.el = public/language/el/unread.json
trans.en_US = public/language/en_US/unread.json
@@ -134,6 +153,7 @@ trans.fi = public/language/fi/unread.json
trans.fr = public/language/fr/unread.json
trans.he = public/language/he/unread.json
trans.hu = public/language/hu/unread.json
trans.id = public/language/id/unread.json
trans.it = public/language/it/unread.json
trans.ja = public/language/ja/unread.json
trans.ko = public/language/ko/unread.json
@@ -145,8 +165,10 @@ trans.pl = public/language/pl/unread.json
trans.pt_BR = public/language/pt_BR/unread.json
trans.ru = public/language/ru/unread.json
trans.ro = public/language/ro/unread.json
trans.rw = public/language/rw/unread.json
trans.sc = public/language/sc/unread.json
trans.sk = public/language/sk/unread.json
trans.sr = public/language/sr/unread.json
trans.sv = public/language/sv/unread.json
trans.th = public/language/th/unread.json
trans.tr = public/language/tr/unread.json
@@ -156,11 +178,14 @@ trans.zh_TW = public/language/zh_TW/unread.json
type = KEYVALUEJSON
[nodebb.modules]
file_filter = public/language/<lang>/modules.json
source_file = public/language/en_GB/modules.json
source_lang = en_GB
trans.ar = public/language/ar/modules.json
trans.bn = public/language/bn/modules.json
trans.bg = public/language/bg/modules.json
trans.cs = public/language/cs/modules.json
trans.da = public/language/da/modules.json
trans.de = public/language/de/modules.json
trans.el = public/language/el/modules.json
trans.en_US = public/language/en_US/modules.json
@@ -172,6 +197,7 @@ trans.fi = public/language/fi/modules.json
trans.fr = public/language/fr/modules.json
trans.he = public/language/he/modules.json
trans.hu = public/language/hu/modules.json
trans.id = public/language/id/modules.json
trans.it = public/language/it/modules.json
trans.ja = public/language/ja/modules.json
trans.ko = public/language/ko/modules.json
@@ -183,8 +209,10 @@ trans.pl = public/language/pl/modules.json
trans.pt_BR = public/language/pt_BR/modules.json
trans.ru = public/language/ru/modules.json
trans.ro = public/language/ro/modules.json
trans.rw = public/language/rw/modules.json
trans.sc = public/language/sc/modules.json
trans.sk = public/language/sk/modules.json
trans.sr = public/language/sr/modules.json
trans.sv = public/language/sv/modules.json
trans.th = public/language/th/modules.json
trans.tr = public/language/tr/modules.json
@@ -194,11 +222,14 @@ trans.zh_TW = public/language/zh_TW/modules.json
type = KEYVALUEJSON
[nodebb.register]
file_filter = public/language/<lang>/register.json
source_file = public/language/en_GB/register.json
source_lang = en_GB
trans.ar = public/language/ar/register.json
trans.bn = public/language/bn/register.json
trans.bg = public/language/bg/register.json
trans.cs = public/language/cs/register.json
trans.da = public/language/da/register.json
trans.de = public/language/de/register.json
trans.el = public/language/el/register.json
trans.en_US = public/language/en_US/register.json
@@ -210,6 +241,7 @@ trans.fi = public/language/fi/register.json
trans.fr = public/language/fr/register.json
trans.he = public/language/he/register.json
trans.hu = public/language/hu/register.json
trans.id = public/language/id/register.json
trans.it = public/language/it/register.json
trans.ja = public/language/ja/register.json
trans.ko = public/language/ko/register.json
@@ -221,8 +253,10 @@ trans.pl = public/language/pl/register.json
trans.pt_BR = public/language/pt_BR/register.json
trans.ru = public/language/ru/register.json
trans.ro = public/language/ro/register.json
trans.rw = public/language/rw/register.json
trans.sc = public/language/sc/register.json
trans.sk = public/language/sk/register.json
trans.sr = public/language/sr/register.json
trans.sv = public/language/sv/register.json
trans.th = public/language/th/register.json
trans.tr = public/language/tr/register.json
@@ -232,11 +266,14 @@ trans.zh_TW = public/language/zh_TW/register.json
type = KEYVALUEJSON
[nodebb.user]
file_filter = public/language/<lang>/user.json
source_file = public/language/en_GB/user.json
source_lang = en_GB
trans.ar = public/language/ar/user.json
trans.bn = public/language/bn/user.json
trans.bg = public/language/bg/user.json
trans.cs = public/language/cs/user.json
trans.da = public/language/da/user.json
trans.de = public/language/de/user.json
trans.el = public/language/el/user.json
trans.en_US = public/language/en_US/user.json
@@ -248,6 +285,7 @@ trans.fi = public/language/fi/user.json
trans.fr = public/language/fr/user.json
trans.he = public/language/he/user.json
trans.hu = public/language/hu/user.json
trans.id = public/language/id/user.json
trans.it = public/language/it/user.json
trans.ja = public/language/ja/user.json
trans.ko = public/language/ko/user.json
@@ -259,8 +297,10 @@ trans.pl = public/language/pl/user.json
trans.pt_BR = public/language/pt_BR/user.json
trans.ru = public/language/ru/user.json
trans.ro = public/language/ro/user.json
trans.rw = public/language/rw/user.json
trans.sc = public/language/sc/user.json
trans.sk = public/language/sk/user.json
trans.sr = public/language/sr/user.json
trans.sv = public/language/sv/user.json
trans.th = public/language/th/user.json
trans.tr = public/language/tr/user.json
@@ -270,11 +310,14 @@ trans.zh_TW = public/language/zh_TW/user.json
type = KEYVALUEJSON
[nodebb.global]
file_filter = public/language/<lang>/global.json
source_file = public/language/en_GB/global.json
source_lang = en_GB
trans.ar = public/language/ar/global.json
trans.bn = public/language/bn/global.json
trans.bg = public/language/bg/global.json
trans.cs = public/language/cs/global.json
trans.da = public/language/da/global.json
trans.de = public/language/de/global.json
trans.el = public/language/el/global.json
trans.en_US = public/language/en_US/global.json
@@ -286,6 +329,7 @@ trans.fi = public/language/fi/global.json
trans.fr = public/language/fr/global.json
trans.he = public/language/he/global.json
trans.hu = public/language/hu/global.json
trans.id = public/language/id/global.json
trans.it = public/language/it/global.json
trans.ja = public/language/ja/global.json
trans.ko = public/language/ko/global.json
@@ -297,8 +341,10 @@ trans.pl = public/language/pl/global.json
trans.pt_BR = public/language/pt_BR/global.json
trans.ru = public/language/ru/global.json
trans.ro = public/language/ro/global.json
trans.rw = public/language/rw/global.json
trans.sc = public/language/sc/global.json
trans.sk = public/language/sk/global.json
trans.sr = public/language/sr/global.json
trans.sv = public/language/sv/global.json
trans.th = public/language/th/global.json
trans.tr = public/language/tr/global.json
@@ -308,11 +354,14 @@ trans.zh_TW = public/language/zh_TW/global.json
type = KEYVALUEJSON
[nodebb.notifications]
file_filter = public/language/<lang>/notifications.json
source_file = public/language/en_GB/notifications.json
source_lang = en_GB
trans.ar = public/language/ar/notifications.json
trans.bn = public/language/bn/notifications.json
trans.bg = public/language/bg/notifications.json
trans.cs = public/language/cs/notifications.json
trans.da = public/language/da/notifications.json
trans.de = public/language/de/notifications.json
trans.el = public/language/el/notifications.json
trans.en_US = public/language/en_US/notifications.json
@@ -324,6 +373,7 @@ trans.fi = public/language/fi/notifications.json
trans.fr = public/language/fr/notifications.json
trans.he = public/language/he/notifications.json
trans.hu = public/language/hu/notifications.json
trans.id = public/language/id/notifications.json
trans.it = public/language/it/notifications.json
trans.ja = public/language/ja/notifications.json
trans.ko = public/language/ko/notifications.json
@@ -335,8 +385,10 @@ trans.pl = public/language/pl/notifications.json
trans.pt_BR = public/language/pt_BR/notifications.json
trans.ru = public/language/ru/notifications.json
trans.ro = public/language/ro/notifications.json
trans.rw = public/language/rw/notifications.json
trans.sc = public/language/sc/notifications.json
trans.sk = public/language/sk/notifications.json
trans.sr = public/language/sr/notifications.json
trans.sv = public/language/sv/notifications.json
trans.th = public/language/th/notifications.json
trans.tr = public/language/tr/notifications.json
@@ -346,11 +398,14 @@ trans.zh_TW = public/language/zh_TW/notifications.json
type = KEYVALUEJSON
[nodebb.reset_password]
file_filter = public/language/<lang>/reset_password.json
source_file = public/language/en_GB/reset_password.json
source_lang = en_GB
trans.ar = public/language/ar/reset_password.json
trans.bn = public/language/bn/reset_password.json
trans.bg = public/language/bg/reset_password.json
trans.cs = public/language/cs/reset_password.json
trans.da = public/language/da/reset_password.json
trans.de = public/language/de/reset_password.json
trans.el = public/language/el/reset_password.json
trans.en_US = public/language/en_US/reset_password.json
@@ -362,6 +417,7 @@ trans.fi = public/language/fi/reset_password.json
trans.fr = public/language/fr/reset_password.json
trans.he = public/language/he/reset_password.json
trans.hu = public/language/hu/reset_password.json
trans.id = public/language/id/reset_password.json
trans.it = public/language/it/reset_password.json
trans.ja = public/language/ja/reset_password.json
trans.ko = public/language/ko/reset_password.json
@@ -373,8 +429,10 @@ trans.pl = public/language/pl/reset_password.json
trans.pt_BR = public/language/pt_BR/reset_password.json
trans.ru = public/language/ru/reset_password.json
trans.ro = public/language/ro/reset_password.json
trans.rw = public/language/rw/reset_password.json
trans.sc = public/language/sc/reset_password.json
trans.sk = public/language/sk/reset_password.json
trans.sr = public/language/sr/reset_password.json
trans.sv = public/language/sv/reset_password.json
trans.th = public/language/th/reset_password.json
trans.tr = public/language/tr/reset_password.json
@@ -384,11 +442,14 @@ trans.zh_TW = public/language/zh_TW/reset_password.json
type = KEYVALUEJSON
[nodebb.users]
file_filter = public/language/<lang>/users.json
source_file = public/language/en_GB/users.json
source_lang = en_GB
trans.ar = public/language/ar/users.json
trans.bn = public/language/bn/users.json
trans.bg = public/language/bg/users.json
trans.cs = public/language/cs/users.json
trans.da = public/language/da/users.json
trans.de = public/language/de/users.json
trans.el = public/language/el/users.json
trans.en_US = public/language/en_US/users.json
@@ -400,6 +461,7 @@ trans.fi = public/language/fi/users.json
trans.fr = public/language/fr/users.json
trans.he = public/language/he/users.json
trans.hu = public/language/hu/users.json
trans.id = public/language/id/users.json
trans.it = public/language/it/users.json
trans.ja = public/language/ja/users.json
trans.ko = public/language/ko/users.json
@@ -411,8 +473,10 @@ trans.pl = public/language/pl/users.json
trans.pt_BR = public/language/pt_BR/users.json
trans.ru = public/language/ru/users.json
trans.ro = public/language/ro/users.json
trans.rw = public/language/rw/users.json
trans.sc = public/language/sc/users.json
trans.sk = public/language/sk/users.json
trans.sr = public/language/sr/users.json
trans.sv = public/language/sv/users.json
trans.th = public/language/th/users.json
trans.tr = public/language/tr/users.json
@@ -421,12 +485,15 @@ trans.zh_CN = public/language/zh_CN/users.json
trans.zh_TW = public/language/zh_TW/users.json
type = KEYVALUEJSON
[nodebb.language]
[nodebb.language-1]
file_filter = public/language/<lang>/language.json
source_file = public/language/en_GB/language.json
source_lang = en_GB
trans.ar = public/language/ar/language.json
trans.bn = public/language/bn/language.json
trans.bg = public/language/bg/language.json
trans.cs = public/language/cs/language.json
trans.da = public/language/da/language.json
trans.de = public/language/de/language.json
trans.el = public/language/el/language.json
trans.en_US = public/language/en_US/language.json
@@ -438,6 +505,7 @@ trans.fi = public/language/fi/language.json
trans.fr = public/language/fr/language.json
trans.he = public/language/he/language.json
trans.hu = public/language/hu/language.json
trans.id = public/language/id/language.json
trans.it = public/language/it/language.json
trans.ja = public/language/ja/language.json
trans.ko = public/language/ko/language.json
@@ -449,8 +517,10 @@ trans.pl = public/language/pl/language.json
trans.pt_BR = public/language/pt_BR/language.json
trans.ru = public/language/ru/language.json
trans.ro = public/language/ro/language.json
trans.rw = public/language/rw/language.json
trans.sc = public/language/sc/language.json
trans.sk = public/language/sk/language.json
trans.sr = public/language/sr/language.json
trans.sv = public/language/sv/language.json
trans.th = public/language/th/language.json
trans.tr = public/language/tr/language.json
@@ -460,11 +530,14 @@ trans.zh_TW = public/language/zh_TW/language.json
type = KEYVALUEJSON
[nodebb.pages]
file_filter = public/language/<lang>/pages.json
source_file = public/language/en_GB/pages.json
source_lang = en_GB
trans.ar = public/language/ar/pages.json
trans.bn = public/language/bn/pages.json
trans.bg = public/language/bg/pages.json
trans.cs = public/language/cs/pages.json
trans.da = public/language/da/pages.json
trans.de = public/language/de/pages.json
trans.el = public/language/el/pages.json
trans.en_US = public/language/en_US/pages.json
@@ -476,6 +549,7 @@ trans.fi = public/language/fi/pages.json
trans.fr = public/language/fr/pages.json
trans.he = public/language/he/pages.json
trans.hu = public/language/hu/pages.json
trans.id = public/language/id/pages.json
trans.it = public/language/it/pages.json
trans.ja = public/language/ja/pages.json
trans.ko = public/language/ko/pages.json
@@ -487,8 +561,10 @@ trans.pl = public/language/pl/pages.json
trans.pt_BR = public/language/pt_BR/pages.json
trans.ru = public/language/ru/pages.json
trans.ro = public/language/ro/pages.json
trans.rw = public/language/rw/pages.json
trans.sc = public/language/sc/pages.json
trans.sk = public/language/sk/pages.json
trans.sr = public/language/sr/pages.json
trans.sv = public/language/sv/pages.json
trans.th = public/language/th/pages.json
trans.tr = public/language/tr/pages.json
@@ -498,11 +574,14 @@ trans.zh_TW = public/language/zh_TW/pages.json
type = KEYVALUEJSON
[nodebb.topic]
file_filter = public/language/<lang>/topic.json
source_file = public/language/en_GB/topic.json
source_lang = en_GB
trans.ar = public/language/ar/topic.json
trans.bn = public/language/bn/topic.json
trans.bg = public/language/bg/topic.json
trans.cs = public/language/cs/topic.json
trans.da = public/language/da/topic.json
trans.de = public/language/de/topic.json
trans.el = public/language/el/topic.json
trans.en_US = public/language/en_US/topic.json
@@ -514,6 +593,7 @@ trans.fi = public/language/fi/topic.json
trans.fr = public/language/fr/topic.json
trans.he = public/language/he/topic.json
trans.hu = public/language/hu/topic.json
trans.id = public/language/id/topic.json
trans.it = public/language/it/topic.json
trans.ja = public/language/ja/topic.json
trans.ko = public/language/ko/topic.json
@@ -525,8 +605,10 @@ trans.pl = public/language/pl/topic.json
trans.pt_BR = public/language/pt_BR/topic.json
trans.ru = public/language/ru/topic.json
trans.ro = public/language/ro/topic.json
trans.rw = public/language/rw/topic.json
trans.sc = public/language/sc/topic.json
trans.sk = public/language/sk/topic.json
trans.sr = public/language/sr/topic.json
trans.sv = public/language/sv/topic.json
trans.th = public/language/th/topic.json
trans.tr = public/language/tr/topic.json
@@ -536,11 +618,14 @@ trans.zh_TW = public/language/zh_TW/topic.json
type = KEYVALUEJSON
[nodebb.success]
file_filter = public/language/<lang>/success.json
source_file = public/language/en_GB/success.json
source_lang = en_GB
trans.ar = public/language/ar/success.json
trans.bn = public/language/bn/success.json
trans.bg = public/language/bg/success.json
trans.cs = public/language/cs/success.json
trans.da = public/language/da/success.json
trans.de = public/language/de/success.json
trans.el = public/language/el/success.json
trans.en_US = public/language/en_US/success.json
@@ -552,6 +637,7 @@ trans.fi = public/language/fi/success.json
trans.fr = public/language/fr/success.json
trans.he = public/language/he/success.json
trans.hu = public/language/hu/success.json
trans.id = public/language/id/success.json
trans.it = public/language/it/success.json
trans.ja = public/language/ja/success.json
trans.ko = public/language/ko/success.json
@@ -563,8 +649,10 @@ trans.pl = public/language/pl/success.json
trans.pt_BR = public/language/pt_BR/success.json
trans.ru = public/language/ru/success.json
trans.ro = public/language/ro/success.json
trans.rw = public/language/rw/success.json
trans.sc = public/language/sc/success.json
trans.sk = public/language/sk/success.json
trans.sr = public/language/sr/success.json
trans.sv = public/language/sv/success.json
trans.th = public/language/th/success.json
trans.tr = public/language/tr/success.json
@@ -574,11 +662,14 @@ trans.zh_TW = public/language/zh_TW/success.json
type = KEYVALUEJSON
[nodebb.error]
file_filter = public/language/<lang>/error.json
source_file = public/language/en_GB/error.json
source_lang = en_GB
trans.ar = public/language/ar/error.json
trans.bn = public/language/bn/error.json
trans.bg = public/language/bg/error.json
trans.cs = public/language/cs/error.json
trans.da = public/language/da/error.json
trans.de = public/language/de/error.json
trans.el = public/language/el/error.json
trans.en_US = public/language/en_US/error.json
@@ -590,6 +681,7 @@ trans.fi = public/language/fi/error.json
trans.fr = public/language/fr/error.json
trans.he = public/language/he/error.json
trans.hu = public/language/hu/error.json
trans.id = public/language/id/error.json
trans.it = public/language/it/error.json
trans.ja = public/language/ja/error.json
trans.ko = public/language/ko/error.json
@@ -601,8 +693,10 @@ trans.pl = public/language/pl/error.json
trans.pt_BR = public/language/pt_BR/error.json
trans.ru = public/language/ru/error.json
trans.ro = public/language/ro/error.json
trans.rw = public/language/rw/error.json
trans.sc = public/language/sc/error.json
trans.sk = public/language/sk/error.json
trans.sr = public/language/sr/error.json
trans.sv = public/language/sv/error.json
trans.th = public/language/th/error.json
trans.tr = public/language/tr/error.json
@@ -612,11 +706,14 @@ trans.zh_TW = public/language/zh_TW/error.json
type = KEYVALUEJSON
[nodebb.tags]
file_filter = public/language/<lang>/tags.json
source_file = public/language/en_GB/tags.json
source_lang = en_GB
trans.ar = public/language/ar/tags.json
trans.bn = public/language/bn/tags.json
trans.bg = public/language/bg/tags.json
trans.cs = public/language/cs/tags.json
trans.da = public/language/da/tags.json
trans.de = public/language/de/tags.json
trans.el = public/language/el/tags.json
trans.en_US = public/language/en_US/tags.json
@@ -628,6 +725,7 @@ trans.fi = public/language/fi/tags.json
trans.fr = public/language/fr/tags.json
trans.he = public/language/he/tags.json
trans.hu = public/language/hu/tags.json
trans.id = public/language/id/tags.json
trans.it = public/language/it/tags.json
trans.ja = public/language/ja/tags.json
trans.ko = public/language/ko/tags.json
@@ -639,8 +737,10 @@ trans.pl = public/language/pl/tags.json
trans.pt_BR = public/language/pt_BR/tags.json
trans.ru = public/language/ru/tags.json
trans.ro = public/language/ro/tags.json
trans.rw = public/language/rw/tags.json
trans.sc = public/language/sc/tags.json
trans.sk = public/language/sk/tags.json
trans.sr = public/language/sr/tags.json
trans.sv = public/language/sv/tags.json
trans.th = public/language/th/tags.json
trans.tr = public/language/tr/tags.json
@@ -650,11 +750,14 @@ trans.zh_TW = public/language/zh_TW/tags.json
type = KEYVALUEJSON
[nodebb.email]
file_filter = public/language/<lang>/email.json
source_file = public/language/en_GB/email.json
source_lang = en_GB
trans.ar = public/language/ar/email.json
trans.bn = public/language/bn/email.json
trans.bg = public/language/bg/email.json
trans.cs = public/language/cs/email.json
trans.da = public/language/da/email.json
trans.de = public/language/de/email.json
trans.el = public/language/el/email.json
trans.en_US = public/language/en_US/email.json
@@ -666,6 +769,7 @@ trans.fi = public/language/fi/email.json
trans.fr = public/language/fr/email.json
trans.he = public/language/he/email.json
trans.hu = public/language/hu/email.json
trans.id = public/language/id/email.json
trans.it = public/language/it/email.json
trans.ja = public/language/ja/email.json
trans.ko = public/language/ko/email.json
@@ -677,8 +781,10 @@ trans.pl = public/language/pl/email.json
trans.pt_BR = public/language/pt_BR/email.json
trans.ru = public/language/ru/email.json
trans.ro = public/language/ro/email.json
trans.rw = public/language/rw/email.json
trans.sc = public/language/sc/email.json
trans.sk = public/language/sk/email.json
trans.sr = public/language/sr/email.json
trans.sv = public/language/sv/email.json
trans.th = public/language/th/email.json
trans.tr = public/language/tr/email.json
@@ -688,11 +794,14 @@ trans.zh_TW = public/language/zh_TW/email.json
type = KEYVALUEJSON
[nodebb.search]
file_filter = public/language/<lang>/search.json
source_file = public/language/en_GB/search.json
source_lang = en_GB
trans.ar = public/language/ar/search.json
trans.bn = public/language/bn/search.json
trans.bg = public/language/bg/search.json
trans.cs = public/language/cs/search.json
trans.da = public/language/da/search.json
trans.de = public/language/de/search.json
trans.el = public/language/el/search.json
trans.en_US = public/language/en_US/search.json
@@ -704,6 +813,7 @@ trans.fi = public/language/fi/search.json
trans.fr = public/language/fr/search.json
trans.he = public/language/he/search.json
trans.hu = public/language/hu/search.json
trans.id = public/language/id/search.json
trans.it = public/language/it/search.json
trans.ja = public/language/ja/search.json
trans.ko = public/language/ko/search.json
@@ -715,8 +825,10 @@ trans.pl = public/language/pl/search.json
trans.pt_BR = public/language/pt_BR/search.json
trans.ru = public/language/ru/search.json
trans.ro = public/language/ro/search.json
trans.rw = public/language/rw/search.json
trans.sc = public/language/sc/search.json
trans.sk = public/language/sk/search.json
trans.sr = public/language/sr/search.json
trans.sv = public/language/sv/search.json
trans.th = public/language/th/search.json
trans.tr = public/language/tr/search.json
@@ -726,11 +838,14 @@ trans.zh_TW = public/language/zh_TW/search.json
type = KEYVALUEJSON
[nodebb.groups]
file_filter = public/language/<lang>/groups.json
source_file = public/language/en_GB/groups.json
source_lang = en_GB
trans.ar = public/language/ar/groups.json
trans.bn = public/language/bn/groups.json
trans.bg = public/language/bg/groups.json
trans.cs = public/language/cs/groups.json
trans.da = public/language/da/groups.json
trans.de = public/language/de/groups.json
trans.el = public/language/el/groups.json
trans.en_US = public/language/en_US/groups.json
@@ -742,6 +857,7 @@ trans.fi = public/language/fi/groups.json
trans.fr = public/language/fr/groups.json
trans.he = public/language/he/groups.json
trans.hu = public/language/hu/groups.json
trans.id = public/language/id/groups.json
trans.it = public/language/it/groups.json
trans.ja = public/language/ja/groups.json
trans.ko = public/language/ko/groups.json
@@ -753,8 +869,10 @@ trans.pl = public/language/pl/groups.json
trans.pt_BR = public/language/pt_BR/groups.json
trans.ru = public/language/ru/groups.json
trans.ro = public/language/ro/groups.json
trans.rw = public/language/rw/groups.json
trans.sc = public/language/sc/groups.json
trans.sk = public/language/sk/groups.json
trans.sr = public/language/sr/groups.json
trans.sv = public/language/sv/groups.json
trans.th = public/language/th/groups.json
trans.tr = public/language/tr/groups.json

View File

@@ -1,7 +1,23 @@
# Submitting a Pull Request to NodeBB?
First of all, thank you! Please consider this [style guide](https://docs.nodebb.org/en/latest/contributing/style-guide.html) when submitting your changes. Also, please join our [community](https://community.nodebb.org) to meet other NodeBB developers and designers :)
## Contributor License Agreement
Thank you for considering contributing to NodeBB. **Before we can accept any pull requests, please take a moment to read and sign our [license agreement](https://www.clahub.com/agreements/NodeBB/NodeBB)**. In summary, signing this document means that 1) you own the code that you are contributing and 2) you give permission to NodeBB Inc. to license the code to others. This agreement applies to any repository under the NodeBB organization.
If you are writing contributions as part of employment from another company / individual, then your employer will need to sign a separate agreement. Please [contact us](mailto:accounts@nodebb.org) so that we can send this additional agreement to your employer.
# Having problems installing NodeBB?
Chances are somebody has run into this problem before. After consulting our [documentation](https://docs.nodebb.org/en/latest/installing/os.html), please head over to our [community support forum](https://community.nodebb.org) for advice.
# Found a Security Vulnerability?
If you believe you have identified a security vulnerability with NodeBB, report it as soon as possible via email to **security@nodebb.org**.
A member of the NodeBB security team will respond to the issue.
Please do not post it to the public bug tracker.
# Issues & Bugs
@@ -9,11 +25,6 @@ Thanks for reporting an issue with NodeBB! Please follow these guidelines in ord
In general, if we can't reproduce it, we can't fix it!
> #### **Important**
> If you believe you have identified a security vulnerability with NodeBB, report it as soon as possible via email to **security@nodebb.org**.
> A member of the NodeBB security team will respond to the issue.
> Please do not post it to the public bug tracker.
## Try the latest version of NodeBB
There is a chance that the issue you are experiencing may have already been fixed.
@@ -39,8 +50,17 @@ $ git rev-parse HEAD
If you have downloaded the `.zip` or `.tar.gz` packages from GitHub (or elsewhere), please let us know.
## Provide theme versions if issue is related to the theme/display
``` bash
$ npm ls nodebb-theme-vanilla nodebb-theme-lavender
nodebb@0.7.0-dev /home/julian/Projects/nodebb/forum
├── nodebb-theme-lavender@0.2.13
└── nodebb-theme-vanilla@0.2.35
```
## Attempt to use `git bisect`
If you have installed NodeBB via GitHub clone, are familiar with utilising git, and are willing to help us narrow down the specific commit that causes a bug, consider running `git bisect`.
A full guide can be found here: [Debugging with Git/Binary Search](http://git-scm.com/book/en/Git-Tools-Debugging-with-Git#Binary-Search)
A full guide can be found here: [Debugging with Git/Binary Search](http://git-scm.com/book/en/Git-Tools-Debugging-with-Git#Binary-Search)

8
Dockerfile Normal file
View File

@@ -0,0 +1,8 @@
FROM node:0.10-onbuild
ENV NODE_ENV=production \
daemon=false \
silent=false
CMD node app --setup && npm start
EXPOSE 4567

78
Gruntfile.js Normal file
View File

@@ -0,0 +1,78 @@
"use strict";
var fork = require('child_process').fork,
env = process.env,
worker,
incomplete = [];
module.exports = function(grunt) {
function update(action, filepath, target) {
var args = [],
fromFile = '',
compiling = '',
time = Date.now();
if (!grunt.option('verbose')) {
args.push('--log-level=info');
}
if (target === 'lessUpdated') {
fromFile = ['js','tpl'];
compiling = 'less';
} else if (target === 'clientUpdated') {
fromFile = ['less','tpl'];
compiling = 'js';
} else if (target === 'templatesUpdated') {
fromFile = ['js','less'];
compiling = 'tpl';
} else if (target === 'serverUpdated') {
fromFile = ['less','js','tpl'];
}
fromFile = fromFile.filter(function(ext) {
return incomplete.indexOf(ext) === -1;
});
args.push('--from-file=' + fromFile.join(','));
incomplete.push(compiling);
worker.kill();
worker = fork('app.js', args, { env: env });
worker.on('message', function() {
if (incomplete.length) {
incomplete = [];
if (grunt.option('verbose')) {
grunt.log.writeln('NodeBB restarted in ' + (Date.now() - time) + ' ms');
}
}
});
}
grunt.initConfig({
watch: {
lessUpdated: {
files: ['public/**/*.less', 'node_modules/nodebb-*/*.less', 'node_modules/nodebb-*/*/*.less', 'node_modules/nodebb-*/*/*/*.less', 'node_modules/nodebb-*/*/*/*/*.less']
},
clientUpdated: {
files: ['public/src/**/*.js', 'node_modules/nodebb-*/*.js', 'node_modules/nodebb-*/*/*.js', 'node_modules/nodebb-*/*/*/*.js', 'node_modules/nodebb-*/*/*/*/*.js', 'node_modules/templates.js/lib/templates.js']
},
serverUpdated: {
files: ['*.js', 'install/*.js', 'src/**/*.js']
},
templatesUpdated: {
files: ['src/views/**/*.tpl', 'node_modules/nodebb-*/*.tpl', 'node_modules/nodebb-*/*/*.tpl', 'node_modules/nodebb-*/*/*/*.tpl', 'node_modules/nodebb-*/*/*/*/*.tpl', 'node_modules/nodebb-*/*/*/*/*/*.tpl']
}
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', ['watch']);
env.NODE_ENV = 'development';
worker = fork('app.js', [], { env: env });
grunt.event.on('watch', update);
};

137
README.md
View File

@@ -1,66 +1,75 @@
# <img alt="NodeBB" src="http://i.imgur.com/mYxPPtB.png" />
# <img alt="NodeBB" src="http://i.imgur.com/mYxPPtB.png" />
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/NodeBB/NodeBB?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Build Status](https://travis-ci.org/NodeBB/NodeBB.svg?branch=master)](https://travis-ci.org/NodeBB/NodeBB)
[![Dependency Status](https://david-dm.org/nodebb/nodebb.svg)](https://david-dm.org/nodebb/nodebb)
[![Code Climate](https://codeclimate.com/github/NodeBB/NodeBB/badges/gpa.svg)](https://codeclimate.com/github/NodeBB/NodeBB)
[![Documentation Status](https://readthedocs.org/projects/nodebb/badge/?version=latest)](https://readthedocs.org/projects/nodebb/?badge=latest)
**NodeBB Forum Software** is powered by Node.js and built on a Redis database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB is compatible down to IE8 and has many modern features out of the box such as social network integration and streaming discussions.
* [Get NodeBB](http://www.nodebb.org/ "NodeBB")
* [Demo & Meta Discussion](http://community.nodebb.org)
* [NodeBB Blog](http://blog.nodebb.org)
* [Documentation & Installation Instructions](http://docs.nodebb.org)
* [Join us on IRC](https://kiwiirc.com/client/irc.freenode.net/nodebb) - #nodebb on Freenode
* [Follow us on Twitter](http://www.twitter.com/NodeBB/ "NodeBB Twitter")
* [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook")
* [Get Plugins](http://community.nodebb.org/category/7/nodebb-plugins "NodeBB Plugins")
* [Get Themes](http://community.nodebb.org/category/10/nodebb-themes "NodeBB Themes")
* [Help translate NodeBB](https://www.transifex.com/projects/p/nodebb/)
## Screenshots
[<img src="http://i.imgur.com/FLOUuIqb.png" />](http://i.imgur.com/FLOUuIq.png)&nbsp;[<img src="http://i.imgur.com/Ud1LrfIb.png" />](http://i.imgur.com/Ud1LrfI.png)&nbsp;[<img src="http://i.imgur.com/ZC8W39ab.png" />](http://i.imgur.com/ZC8W39a.png)&nbsp;[<img src="http://i.imgur.com/o90kVPib.png" />](http://i.imgur.com/o90kVPi.png)&nbsp;[<img src="http://i.imgur.com/AaRRrU2b.png" />](http://i.imgur.com/AaRRrU2.png)&nbsp;[<img src="http://i.imgur.com/LmHtPhob.png" />](http://i.imgur.com/LmHtPho.png)&nbsp;[<img src="http://i.imgur.com/paiJPJkb.jpg" />](http://i.imgur.com/paiJPJk.jpg)&nbsp;[<img src="http://i.imgur.com/ZfavPHDb.png" />](http://i.imgur.com/ZfavPHD.png)&nbsp;[<img src="http://i.imgur.com/8OLssij.png" />](http://i.imgur.com/8OLssij.png)&nbsp;[<img src="http://i.imgur.com/JKOc0LZ.png"/>](http://i.imgur.com/JKOc0LZ.png)
Credit: [Convoe](http://www.convoe.com), [Kano](http://www.kano.me), [Manchester United Forum](http://manutdforums.com/).
## How can I follow along/contribute?
* Our feature roadmap is hosted on the project wiki's [Version History / Roadmap](https://github.com/NodeBB/NodeBB/wiki/Version-History-%26-Roadmap)
* If you are a developer, feel free to check out the source and submit pull requests. We also have a wide array of [plugins](http://community.nodebb.org/category/7/nodebb-plugins) which would be a great starting point for learning the codebase.
* If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extention of the base templates as well as styling via LESS or CSS. NodeBB's base theme utilizes [Bootstrap 3](http://getbootstrap.com/) but themes can choose to use a different framework altogether.
* If you know languages other than English you can help us translate NodeBB. We use [Transifex](https://www.transifex.com/projects/p/nodebb/) for internationalization.
* Please don't forget to **like**, **follow**, and **star our repo**! Join our growing [community](http://community.nodebb.org) to keep up to date with the latest NodeBB development.
## Requirements
NodeBB requires the following software to be installed:
* A version of Node.js at least 0.10 or greater
* Redis, version 2.6 or greater **or** MongoDB, version 2.6 or greater
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
## Installation
[Please refer to platform-specific installation documentation](http://docs.nodebb.org/en/latest/installing/os.html)
## Securing NodeBB
It is important to ensure that your NodeBB and database servers are secured. Bear these points in mind:
1. While some distributions set up Redis with a more restrictive configuration, Redis by default listens to all interfaces, which is especially dangerous when a server is open to the public. Some suggestions:
* Set `bind_address` to `127.0.0.1` so as to restrict access to the local machine only
* Use `requirepass` to secure Redis behind a password (preferably a long one)
* Familiarise yourself with [Redis Security](http://redis.io/topics/security)
2. Use `iptables` to secure your server from unintended open ports. In Ubuntu, `ufw` provides a friendlier interface to working with `iptables`.
* e.g. If your NodeBB is proxied, no ports should be open except 80 (and possibly 22, for SSH access)
## Upgrading NodeBB
Detailed upgrade instructions are listed in [Upgrading NodeBB](https://docs.nodebb.org/en/latest/upgrading/index.html)
## License
NodeBB is licensed under the **GNU General Public License v3 (GPL-3)** (http://www.gnu.org/copyleft/gpl.html)
[![Build Status](https://travis-ci.org/NodeBB/NodeBB.svg?branch=master)](https://travis-ci.org/NodeBB/NodeBB)
[![Dependency Status](https://david-dm.org/nodebb/nodebb.svg)](https://david-dm.org/nodebb/nodebb)
[![Code Climate](https://codeclimate.com/github/NodeBB/NodeBB/badges/gpa.svg)](https://codeclimate.com/github/NodeBB/NodeBB)
[![Documentation Status](https://readthedocs.org/projects/nodebb/badge/?version=latest)](https://readthedocs.org/projects/nodebb/?badge=latest)
**NodeBB Forum Software** is powered by Node.js and built on either a Redis or MongoDB database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB is compatible down to IE8 and has many modern features out of the box such as social network integration and streaming discussions.
Additional functionality is enabled through the use of third-party plugins.
* [Get NodeBB](http://www.nodebb.org/ "NodeBB")
* [Demo & Meta Discussion](http://community.nodebb.org)
* [Documentation & Installation Instructions](http://docs.nodebb.org)
* [Help translate NodeBB](https://www.transifex.com/projects/p/nodebb/)
* [NodeBB Blog](http://blog.nodebb.org)
* [Join us on IRC](https://kiwiirc.com/client/irc.freenode.net/nodebb) - #nodebb on Freenode
* [Follow us on Twitter](http://www.twitter.com/NodeBB/ "NodeBB Twitter")
* [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook")
## Screenshots
[![](http://i.imgur.com/VCoOFyqb.png)](http://i.imgur.com/VCoOFyq.png)
[![](http://i.imgur.com/FLOUuIqb.png)](http://i.imgur.com/FLOUuIq.png)
[![](http://i.imgur.com/Ud1LrfIb.png)](http://i.imgur.com/Ud1LrfI.png)
[![](http://i.imgur.com/h6yZ66sb.png)](http://i.imgur.com/h6yZ66s.png)
[![](http://i.imgur.com/o90kVPib.png)](http://i.imgur.com/o90kVPi.png)
[![](http://i.imgur.com/AaRRrU2b.png)](http://i.imgur.com/AaRRrU2.png)
[![](http://i.imgur.com/LmHtPhob.png)](http://i.imgur.com/LmHtPho.png)
[![](http://i.imgur.com/paiJPJkb.jpg)](http://i.imgur.com/paiJPJk.jpg)
[![](http://i.imgur.com/8OLssij.png)](http://i.imgur.com/8OLssij.png)
[![](http://i.imgur.com/JKOc0LZ.png)](http://i.imgur.com/JKOc0LZ.png)
## How can I follow along/contribute?
* Our feature roadmap is hosted on the project wiki's [Version History / Roadmap](https://github.com/NodeBB/NodeBB/wiki/Version-History-%26-Roadmap)
* If you are a developer, feel free to check out the source and submit pull requests. We also have a wide array of [plugins](http://community.nodebb.org/category/7/nodebb-plugins) which would be a great starting point for learning the codebase.
* If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extention of the base templates as well as styling via LESS or CSS. NodeBB's base theme utilizes [Bootstrap 3](http://getbootstrap.com/) but themes can choose to use a different framework altogether.
* If you know languages other than English you can help us translate NodeBB. We use [Transifex](https://www.transifex.com/projects/p/nodebb/) for internationalization.
* Please don't forget to **like**, **follow**, and **star our repo**! Join our growing [community](http://community.nodebb.org) to keep up to date with the latest NodeBB development.
## Requirements
NodeBB requires the following software to be installed:
* A version of Node.js at least 0.10 or greater
* Redis, version 2.8.9 or greater **or** MongoDB, version 2.6 or greater
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
## Installation
[Please refer to platform-specific installation documentation](http://docs.nodebb.org/en/latest/installing/os.html)
## Securing NodeBB
It is important to ensure that your NodeBB and database servers are secured. Bear these points in mind:
1. While some distributions set up Redis with a more restrictive configuration, Redis by default listens to all interfaces, which is especially dangerous when a server is open to the public. Some suggestions:
* Set `bind_address` to `127.0.0.1` so as to restrict access to the local machine only
* Use `requirepass` to secure Redis behind a password (preferably a long one)
* Familiarise yourself with [Redis Security](http://redis.io/topics/security)
2. Use `iptables` to secure your server from unintended open ports. In Ubuntu, `ufw` provides a friendlier interface to working with `iptables`.
* e.g. If your NodeBB is proxied, no ports should be open except 80 (and possibly 22, for SSH access)
## Upgrading NodeBB
Detailed upgrade instructions are listed in [Upgrading NodeBB](https://docs.nodebb.org/en/latest/upgrading/index.html)
## License
NodeBB is licensed under the **GNU General Public License v3 (GPL-3)** (http://www.gnu.org/copyleft/gpl.html).
Interested in a sublicense agreement for use of NodeBB in a non-free/restrictive environment? Contact us at sales@nodebb.org.

808
app.js
View File

@@ -1,391 +1,417 @@
/*
NodeBB - A better forum platform for the modern web
https://github.com/NodeBB/NodeBB/
Copyright (C) 2013-2014 NodeBB Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
"use strict";
/*global require, global, process*/
var nconf = require('nconf');
nconf.argv().env();
var fs = require('fs'),
os = require('os'),
url = require('url'),
async = require('async'),
semver = require('semver'),
winston = require('winston'),
path = require('path'),
pkg = require('./package.json'),
utils = require('./public/src/utils.js');
global.env = process.env.NODE_ENV || 'production';
winston.remove(winston.transports.Console);
winston.add(winston.transports.Console, {
colorize: true,
timestamp: function() {
var date = new Date();
return date.getDate() + '/' + (date.getMonth() + 1) + ' ' + date.toTimeString().substr(0,5) + ' [' + global.process.pid + ']';
},
level: global.env === 'production' ? 'info' : 'verbose'
});
// TODO: remove once https://github.com/flatiron/winston/issues/280 is fixed
winston.err = function (err) {
winston.error(err.stack);
};
if(os.platform() === 'linux') {
require('child_process').exec('/usr/bin/which convert', function(err, stdout, stderr) {
if(err || !stdout) {
winston.warn('Couldn\'t find convert. Did you install imagemagick?');
}
});
}
if (!process.send) {
// If run using `node app`, log GNU copyright info along with server info
winston.info('NodeBB v' + pkg.version + ' Copyright (C) 2013-2014 NodeBB Inc.');
winston.info('This program comes with ABSOLUTELY NO WARRANTY.');
winston.info('This is free software, and you are welcome to redistribute it under certain conditions.');
winston.info('');
}
// Alternate configuration file support
var configFile = path.join(__dirname, '/config.json'),
configExists;
if (nconf.get('config')) {
configFile = path.resolve(__dirname, nconf.get('config'));
}
configExists = fs.existsSync(configFile);
if (!nconf.get('setup') && !nconf.get('install') && !nconf.get('upgrade') && !nconf.get('reset') && configExists) {
start();
} else if (nconf.get('setup') || nconf.get('install') || !configExists) {
setup();
} else if (nconf.get('upgrade')) {
upgrade();
} else if (nconf.get('reset')) {
reset();
}
function loadConfig() {
nconf.file({
file: configFile
});
nconf.defaults({
base_dir: __dirname,
themes_path: path.join(__dirname, 'node_modules'),
views_dir: path.join(__dirname, 'public/templates')
});
if (!nconf.get('isCluster')) {
nconf.set('isPrimary', 'true');
nconf.set('isCluster', 'false');
}
// Ensure themes_path is a full filepath
nconf.set('themes_path', path.resolve(__dirname, nconf.get('themes_path')));
nconf.set('core_templates_path', path.join(__dirname, 'src/views'));
nconf.set('base_templates_path', path.join(nconf.get('themes_path'), 'nodebb-theme-vanilla/templates'));
}
function start() {
loadConfig();
// nconf defaults, if not set in config
if (!nconf.get('upload_path')) {
nconf.set('upload_path', '/public/uploads');
}
// Parse out the relative_url and other goodies from the configured URL
var urlObject = url.parse(nconf.get('url'));
var relativePath = urlObject.pathname !== '/' ? urlObject.pathname : '';
nconf.set('use_port', !!urlObject.port);
nconf.set('relative_path', relativePath);
nconf.set('port', urlObject.port || nconf.get('port') || nconf.get('PORT') || 4567);
nconf.set('upload_url', relativePath + '/uploads/');
if (nconf.get('isPrimary') === 'true') {
winston.info('Time: %s', (new Date()).toString());
winston.info('Initializing NodeBB v%s', pkg.version);
winston.verbose('* using configuration stored in: %s', configFile);
var host = nconf.get(nconf.get('database') + ':host'),
storeLocation = host ? 'at ' + host + (host.indexOf('/') === -1 ? ':' + nconf.get(nconf.get('database') + ':port') : '') : '';
winston.verbose('* using %s store %s', nconf.get('database'), storeLocation);
winston.verbose('* using themes stored in: %s', nconf.get('themes_path'));
}
var webserver = require('./src/webserver');
require('./src/database').init(function(err) {
if (err) {
winston.error(err.stack);
process.exit();
}
var meta = require('./src/meta');
meta.configs.init(function () {
var templates = require('templates.js'),
sockets = require('./src/socket.io'),
plugins = require('./src/plugins'),
upgrade = require('./src/upgrade');
templates.setGlobal('relative_path', nconf.get('relative_path'));
upgrade.check(function(schema_ok) {
if (schema_ok || nconf.get('check-schema') === false) {
webserver.init();
sockets.init(webserver.server);
if (nconf.get('isPrimary') === 'true' && !nconf.get('jobsDisabled')) {
require('./src/notifications').init();
require('./src/user').startJobs();
}
async.waterfall([
async.apply(meta.themes.setupPaths),
async.apply(plugins.ready),
async.apply(meta.templates.compile),
async.apply(webserver.listen)
], function(err) {
if (err) {
winston.error(err.stack);
process.exit();
}
if (process.send) {
process.send({
action: 'ready'
});
}
});
process.on('SIGTERM', shutdown);
process.on('SIGINT', shutdown);
process.on('SIGHUP', restart);
process.on('message', function(message) {
switch(message.action) {
case 'reload':
meta.reload();
break;
case 'js-propagate':
meta.js.cache = message.cache;
meta.js.map = message.map;
meta.js.hash = message.hash;
winston.verbose('[cluster] Client-side javascript and mapping propagated to worker %s', process.pid);
break;
case 'css-propagate':
meta.css.cache = message.cache;
meta.css.acpCache = message.acpCache;
meta.css.hash = message.hash;
winston.verbose('[cluster] Stylesheets propagated to worker %s', process.pid);
break;
}
});
process.on('uncaughtException', function(err) {
winston.error(err.stack);
console.log(err.stack);
meta.js.killMinifier();
shutdown(1);
});
} else {
winston.warn('Your NodeBB schema is out-of-date. Please run the following command to bring your dataset up to spec:');
winston.warn(' ./nodebb upgrade');
process.exit();
}
});
});
});
}
function setup() {
loadConfig();
if (nconf.get('setup')) {
winston.info('NodeBB Setup Triggered via Command Line');
} else {
winston.warn('Configuration not found, starting NodeBB setup');
}
var install = require('./src/install');
winston.info('Welcome to NodeBB!');
winston.info('This looks like a new installation, so you\'ll have to answer a few questions about your environment before we can proceed.');
winston.info('Press enter to accept the default setting (shown in brackets).');
install.setup(function (err) {
if (err) {
winston.error('There was a problem completing NodeBB setup: ', err.message);
} else {
winston.info('NodeBB Setup Completed. Run \'./nodebb start\' to manually start your NodeBB server.');
}
process.exit();
});
}
function upgrade() {
loadConfig();
require('./src/database').init(function(err) {
if (err) {
winston.error(err.stack);
process.exit();
}
require('./src/meta').configs.init(function () {
require('./src/upgrade').upgrade();
});
});
}
function reset() {
loadConfig();
require('./src/database').init(function(err) {
if (err) {
winston.error(err.message);
process.exit();
}
if (nconf.get('theme')) {
resetThemes();
} else if (nconf.get('plugin')) {
resetPlugin(nconf.get('plugin'));
} else if (nconf.get('plugins')) {
resetPlugins();
} else if (nconf.get('widgets')) {
resetWidgets();
} else if (nconf.get('settings')) {
resetSettings();
} else if (nconf.get('all')) {
require('async').series([resetWidgets, resetThemes, resetPlugins, resetSettings], function(err) {
if (!err) {
winston.info('[reset] Reset complete.');
} else {
winston.error('[reset] Errors were encountered while resetting your forum settings: %s', err.message);
}
process.exit();
});
} else {
winston.warn('[reset] Nothing reset.');
winston.info('Use ./nodebb reset {theme|plugins|widgets|settings|all}');
winston.info(' or');
winston.info('Use ./nodebb reset plugin="nodebb-plugin-pluginName"');
process.exit();
}
});
}
function resetSettings(callback) {
var meta = require('./src/meta');
meta.configs.set('allowLocalLogin', 1, function(err) {
winston.info('[reset] Settings reset to default');
if (typeof callback === 'function') {
callback(err);
} else {
process.exit();
}
});
}
function resetThemes(callback) {
var meta = require('./src/meta');
meta.themes.set({
type: 'local',
id: 'nodebb-theme-vanilla'
}, function(err) {
winston.info('[reset] Theme reset to Vanilla');
if (typeof callback === 'function') {
callback(err);
} else {
process.exit();
}
});
}
function resetPlugin(pluginId) {
var db = require('./src/database');
db.setRemove('plugins:active', pluginId, function(err, result) {
if (err || result !== 1) {
winston.error('[reset] Could not disable plugin: %s', pluginId);
if (err) {
winston.error('[reset] Encountered error: %s', err.message);
} else {
winston.info('[reset] Perhaps it has already been disabled?');
}
} else {
winston.info('[reset] Plugin `%s` disabled', pluginId);
}
process.exit();
});
}
function resetPlugins(callback) {
var db = require('./src/database');
db.delete('plugins:active', function(err) {
winston.info('[reset] All Plugins De-activated');
if (typeof callback === 'function') {
callback(err);
} else {
process.exit();
}
});
}
function resetWidgets(callback) {
require('./src/widgets').reset(function(err) {
winston.info('[reset] All Widgets moved to Draft Zone');
if (typeof callback === 'function') {
callback(err);
} else {
process.exit();
}
});
}
function shutdown(code) {
winston.info('[app] Shutdown (SIGTERM/SIGINT) Initialised.');
require('./src/database').close();
winston.info('[app] Database connection closed.');
require('./src/webserver').server.close();
winston.info('[app] Web server closed to connections.');
winston.info('[app] Shutdown complete.');
process.exit(code || 0);
}
function restart() {
if (process.send) {
winston.info('[app] Restarting...');
process.send({
action: 'restart'
});
} else {
winston.error('[app] Could not restart server. Shutting down.');
shutdown(1);
}
}
/*
NodeBB - A better forum platform for the modern web
https://github.com/NodeBB/NodeBB/
Copyright (C) 2013-2014 NodeBB Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
"use strict";
/*global require, global, process*/
var nconf = require('nconf');
nconf.argv().env('__');
var fs = require('fs'),
os = require('os'),
url = require('url'),
async = require('async'),
semver = require('semver'),
winston = require('winston'),
colors = require('colors'),
path = require('path'),
pkg = require('./package.json'),
utils = require('./public/src/utils.js');
global.env = process.env.NODE_ENV || 'production';
winston.remove(winston.transports.Console);
winston.add(winston.transports.Console, {
colorize: true,
timestamp: function() {
var date = new Date();
return date.getDate() + '/' + (date.getMonth() + 1) + ' ' + date.toTimeString().substr(0,5) + ' [' + global.process.pid + ']';
},
level: nconf.get('log-level') || (global.env === 'production' ? 'info' : 'verbose')
});
if(os.platform() === 'linux') {
require('child_process').exec('/usr/bin/which convert', function(err, stdout, stderr) {
if(err || !stdout) {
winston.warn('Couldn\'t find convert. Did you install imagemagick?');
}
});
}
// Alternate configuration file support
var configFile = path.join(__dirname, '/config.json'),
configExists;
if (nconf.get('config')) {
configFile = path.resolve(__dirname, nconf.get('config'));
}
configExists = fs.existsSync(configFile);
if (!nconf.get('setup') && !nconf.get('install') && !nconf.get('upgrade') && !nconf.get('reset') && configExists) {
start();
} else if (nconf.get('setup') || nconf.get('install')) {
setup();
} else if (!configExists) {
require('./install/web').install(nconf.get('port'));
} else if (nconf.get('upgrade')) {
upgrade();
} else if (nconf.get('reset')) {
reset();
}
function loadConfig() {
nconf.file({
file: configFile
});
nconf.defaults({
base_dir: __dirname,
themes_path: path.join(__dirname, 'node_modules'),
views_dir: path.join(__dirname, 'public/templates'),
version: pkg.version
});
if (!nconf.get('isCluster')) {
nconf.set('isPrimary', 'true');
nconf.set('isCluster', 'false');
}
// Ensure themes_path is a full filepath
nconf.set('themes_path', path.resolve(__dirname, nconf.get('themes_path')));
nconf.set('core_templates_path', path.join(__dirname, 'src/views'));
nconf.set('base_templates_path', path.join(nconf.get('themes_path'), 'nodebb-theme-persona/templates'));
if (!process.send) {
// If run using `node app`, log GNU copyright info along with server info
winston.info('NodeBB v' + nconf.get('version') + ' Copyright (C) 2013-2014 NodeBB Inc.');
winston.info('This program comes with ABSOLUTELY NO WARRANTY.');
winston.info('This is free software, and you are welcome to redistribute it under certain conditions.');
winston.info('');
}
}
function start() {
loadConfig();
var db = require('./src/database');
// nconf defaults, if not set in config
if (!nconf.get('upload_path')) {
nconf.set('upload_path', '/public/uploads');
}
// Parse out the relative_url and other goodies from the configured URL
var urlObject = url.parse(nconf.get('url'));
var relativePath = urlObject.pathname !== '/' ? urlObject.pathname : '';
nconf.set('base_url', urlObject.protocol + '//' + urlObject.host);
nconf.set('secure', urlObject.protocol === 'https');
nconf.set('use_port', !!urlObject.port);
nconf.set('relative_path', relativePath);
nconf.set('port', urlObject.port || nconf.get('port') || nconf.get('PORT') || 4567);
nconf.set('upload_url', '/uploads/');
if (nconf.get('isPrimary') === 'true') {
winston.info('Time: %s', (new Date()).toString());
winston.info('Initializing NodeBB v%s', nconf.get('version'));
winston.verbose('* using configuration stored in: %s', configFile);
var host = nconf.get(nconf.get('database') + ':host'),
storeLocation = host ? 'at ' + host + (host.indexOf('/') === -1 ? ':' + nconf.get(nconf.get('database') + ':port') : '') : '';
winston.verbose('* using %s store %s', nconf.get('database'), storeLocation);
winston.verbose('* using themes stored in: %s', nconf.get('themes_path'));
}
process.on('SIGTERM', shutdown);
process.on('SIGINT', shutdown);
process.on('SIGHUP', restart);
process.on('message', function(message) {
if (typeof message !== 'object') {
return;
}
var meta = require('./src/meta');
var emitter = require('./src/emitter');
switch (message.action) {
case 'reload':
meta.reload();
break;
case 'js-propagate':
meta.js.cache = message.cache;
meta.js.map = message.map;
meta.js.hash = message.hash;
emitter.emit('meta:js.compiled');
winston.verbose('[cluster] Client-side javascript and mapping propagated to worker %s', process.pid);
break;
case 'css-propagate':
meta.css.cache = message.cache;
meta.css.acpCache = message.acpCache;
meta.css.hash = message.hash;
emitter.emit('meta:css.compiled');
winston.verbose('[cluster] Stylesheets propagated to worker %s', process.pid);
break;
case 'templates:compiled':
emitter.emit('templates:compiled');
break;
}
});
process.on('uncaughtException', function(err) {
winston.error(err.stack);
console.log(err.stack);
require('./src/meta').js.killMinifier();
shutdown(1);
});
async.waterfall([
async.apply(db.init),
async.apply(db.checkCompatibility),
function(next) {
require('./src/meta').configs.init(next);
},
function(next) {
require('./src/meta').dependencies.check(next);
},
function(next) {
require('./src/upgrade').check(next);
},
function(next) {
var webserver = require('./src/webserver');
require('./src/socket.io').init(webserver.server);
if (nconf.get('isPrimary') === 'true' && !nconf.get('jobsDisabled')) {
require('./src/notifications').init();
require('./src/user').startJobs();
}
webserver.listen();
}
], function(err) {
if (err) {
switch(err.message) {
case 'schema-out-of-date':
winston.warn('Your NodeBB schema is out-of-date. Please run the following command to bring your dataset up to spec:');
winston.warn(' ./nodebb upgrade');
break;
case 'dependencies-out-of-date':
winston.warn('One or more of NodeBB\'s dependent packages are out-of-date. Please run the following command to update them:');
winston.warn(' ./nodebb upgrade');
break;
default:
if (err.stacktrace !== false) {
winston.error(err.stack);
} else {
winston.error(err.message);
}
break;
}
// Either way, bad stuff happened. Abort start.
process.exit();
}
});
}
function setup() {
loadConfig();
winston.info('NodeBB Setup Triggered via Command Line');
var install = require('./src/install');
process.stdout.write('\nWelcome to NodeBB!\n');
process.stdout.write('\nThis looks like a new installation, so you\'ll have to answer a few questions about your environment before we can proceed.\n');
process.stdout.write('Press enter to accept the default setting (shown in brackets).\n');
install.setup(function (err, data) {
var separator = ' ';
if (process.stdout.columns > 10) {
for(var x=0,cols=process.stdout.columns-10;x<cols;x++) {
separator += '=';
}
}
process.stdout.write('\n' + separator + '\n\n');
if (err) {
winston.error('There was a problem completing NodeBB setup: ', err.message);
} else {
if (data.hasOwnProperty('password')) {
process.stdout.write('An administrative user was automatically created for you:\n');
process.stdout.write(' Username: ' + data.username + '\n');
process.stdout.write(' Password: ' + data.password + '\n');
process.stdout.write('\n');
}
process.stdout.write('NodeBB Setup Completed. Run \'./nodebb start\' to manually start your NodeBB server.\n');
// If I am a child process, notify the parent of the returned data before exiting (useful for notifying
// hosts of auto-generated username/password during headless setups)
if (process.send) {
process.send(data);
}
}
process.exit();
});
}
function upgrade() {
loadConfig();
require('./src/database').init(function(err) {
if (err) {
winston.error(err.stack);
process.exit();
}
require('./src/meta').configs.init(function () {
require('./src/upgrade').upgrade();
});
});
}
function reset() {
loadConfig();
require('./src/database').init(function(err) {
if (err) {
winston.error(err.message);
process.exit();
}
if (nconf.get('t')) {
resetThemes();
} else if (nconf.get('p')) {
if (nconf.get('p') === true) {
resetPlugins();
} else {
resetPlugin(nconf.get('p'));
}
} else if (nconf.get('w')) {
resetWidgets();
} else if (nconf.get('s')) {
resetSettings();
} else if (nconf.get('a')) {
require('async').series([resetWidgets, resetThemes, resetPlugins, resetSettings], function(err) {
if (!err) {
winston.info('[reset] Reset complete.');
} else {
winston.error('[reset] Errors were encountered while resetting your forum settings: %s', err.message);
}
process.exit();
});
} else {
process.stdout.write('\nNodeBB Reset\n'.bold);
process.stdout.write('No arguments passed in, so nothing was reset.\n\n'.yellow);
process.stdout.write('Use ./nodebb reset ' + '{-t|-p|-w|-s|-a}\n'.red);
process.stdout.write(' -t\tthemes\n');
process.stdout.write(' -p\tplugins\n');
process.stdout.write(' -w\twidgets\n');
process.stdout.write(' -s\tsettings\n');
process.stdout.write(' -a\tall of the above\n');
process.stdout.write('\nPlugin reset flag (-p) can take a single argument\n');
process.stdout.write(' e.g. ./nodebb reset -p nodebb-plugin-mentions\n');
process.exit();
}
});
}
function resetSettings(callback) {
var meta = require('./src/meta');
meta.configs.set('allowLocalLogin', 1, function(err) {
winston.info('[reset] Settings reset to default');
if (typeof callback === 'function') {
callback(err);
} else {
process.exit();
}
});
}
function resetThemes(callback) {
var meta = require('./src/meta');
meta.themes.set({
type: 'local',
id: 'nodebb-theme-persona'
}, function(err) {
winston.info('[reset] Theme reset to Persona');
if (typeof callback === 'function') {
callback(err);
} else {
process.exit();
}
});
}
function resetPlugin(pluginId) {
var db = require('./src/database');
db.sortedSetRemove('plugins:active', pluginId, function(err) {
if (err) {
winston.error('[reset] Could not disable plugin: %s encountered error %s', pluginId, err.message);
} else {
winston.info('[reset] Plugin `%s` disabled', pluginId);
}
process.exit();
});
}
function resetPlugins(callback) {
var db = require('./src/database');
db.delete('plugins:active', function(err) {
winston.info('[reset] All Plugins De-activated');
if (typeof callback === 'function') {
callback(err);
} else {
process.exit();
}
});
}
function resetWidgets(callback) {
require('./src/widgets').reset(function(err) {
winston.info('[reset] All Widgets moved to Draft Zone');
if (typeof callback === 'function') {
callback(err);
} else {
process.exit();
}
});
}
function shutdown(code) {
winston.info('[app] Shutdown (SIGTERM/SIGINT) Initialised.');
require('./src/database').close();
winston.info('[app] Database connection closed.');
require('./src/webserver').server.close();
winston.info('[app] Web server closed to connections.');
winston.info('[app] Shutdown complete.');
process.exit(code || 0);
}
function restart() {
if (process.send) {
winston.info('[app] Restarting...');
process.send({
action: 'restart'
});
} else {
winston.error('[app] Could not restart server. Shutting down.');
shutdown(1);
}
}

View File

@@ -9,7 +9,7 @@ process.on('message', function(msg) {
if (msg.type === 'hash') {
hashPassword(msg.password, msg.rounds);
} else if (msg.type === 'compare') {
compare(msg.password, msg.hash);
bcrypt.compare(msg.password, msg.hash, done);
}
});
@@ -21,23 +21,14 @@ function hashPassword(password, rounds) {
function(salt, next) {
bcrypt.hash(password, salt, next);
}
], function(err, hash) {
if (err) {
process.send({err: err.message});
return process.disconnect();
}
process.send({result: hash});
process.disconnect();
});
], done);
}
function compare(password, hash) {
bcrypt.compare(password, hash, function(err, res) {
if (err) {
process.send({err: err.message});
return process.disconnect();
}
process.send({result: res});
process.disconnect();
});
function done(err, result) {
if (err) {
process.send({err: err.message});
return process.disconnect();
}
process.send({result: result});
process.disconnect();
}

View File

@@ -1,34 +1,34 @@
[
{
"name": "Announcements",
"description": "Announcements regarding our community",
"bgColor": "#fda34b",
"color": "#fff",
"icon" : "fa-bullhorn",
"order": 1
},
{
"name": "General Discussion",
"description": "A place to talk about whateeeever you want",
"bgColor": "#59b3d0",
"color": "#fff",
"icon" : "fa-comments-o",
"order": 2
},
{
"name": "Blogs",
"description": "Blog posts from individual members",
"bgColor": "#86ba4b",
"color": "#fff",
"icon" : "fa-newspaper-o",
"order": 4
},
{
"name": "Comments & Feedback",
"description": "Got a question? Ask away!",
"bgColor": "#e95c5a",
"color": "#fff",
"icon" : "fa-question",
"order": 3
}
[
{
"name": "Announcements",
"description": "Announcements regarding our community",
"bgColor": "#fda34b",
"color": "#fff",
"icon" : "fa-bullhorn",
"order": 1
},
{
"name": "General Discussion",
"description": "A place to talk about whatever you want",
"bgColor": "#59b3d0",
"color": "#fff",
"icon" : "fa-comments-o",
"order": 2
},
{
"name": "Blogs",
"description": "Blog posts from individual members",
"bgColor": "#86ba4b",
"color": "#fff",
"icon" : "fa-newspaper-o",
"order": 4
},
{
"name": "Comments & Feedback",
"description": "Got a question? Ask away!",
"bgColor": "#e95c5a",
"color": "#fff",
"icon" : "fa-question",
"order": 3
}
]

View File

@@ -1,94 +1,31 @@
[
{
"field": "title",
"value": "NodeBB"
},
{
"field": "showSiteTitle",
"value": "1"
},
{
"field": "postDelay",
"value": 10
},
{
"field": "initialPostDelay",
"value": 10
},
{
"field": "newbiePostDelay",
"value": 120
},
{
"field": "newbiePostDelayThreshold",
"value": 3
},
{
"field": "minimumPostLength",
"value": 8
},
{
"field": "allowGuestSearching",
"value": 0
},
{
"field": "allowTopicsThumbnail",
"value": 0
},
{
"field": "allowRegistration",
"value": 1
},
{
"field": "allowLocalLogin",
"value": 1
},
{
"field": "allowAccountDelete",
"value": 1
},
{
"field": "allowFileUploads",
"value": 0
},
{
"field": "maximumFileSize",
"value": 2048
},
{
"field": "minimumTitleLength",
"value": 3
},
{
"field": "maximumTitleLength",
"value": 255
},
{
"field": "minimumUsernameLength",
"value": 2
},
{
"field": "maximumUsernameLength",
"value": 16
},
{
"field": "minimumPasswordLength",
"value": 6
},
{
"field": "maximumSignatureLength",
"value": 255
},
{
"field": "maximumProfileImageSize",
"value": 256
},
{
"field": "profileImageDimension",
"value": 128
},
{
"field": "requireEmailConfirmation",
"value": 0
}
]
{
"title": "NodeBB",
"showSiteTitle": 1,
"postDelay": 10,
"initialPostDelay": 10,
"newbiePostDelay": 120,
"newbiePostDelayThreshold": 3,
"minimumPostLength": 8,
"maximumPostLength": 32767,
"minimumTagsPerTopic": 0,
"maximumTagsPerTopic": 5,
"allowGuestSearching": 0,
"allowTopicsThumbnail": 0,
"registrationType": "normal",
"allowLocalLogin": 1,
"allowAccountDelete": 1,
"allowFileUploads": 0,
"maximumFileSize": 2048,
"minimumTitleLength": 3,
"maximumTitleLength": 255,
"minimumUsernameLength": 2,
"maximumUsernameLength": 16,
"minimumPasswordLength": 6,
"maximumSignatureLength": 255,
"maximumAboutMeLength": 1000,
"maximumProfileImageSize": 256,
"profileImageDimension": 128,
"requireEmailConfirmation": 0,
"profile:allowProfileImageUploads": 1,
"teaserPost": "last"
}

10
install/data/footer.json Normal file
View File

@@ -0,0 +1,10 @@
[
{
"widget": "html",
"data" : {
"html": "<footer id=\"footer\" class=\"container footer\">\r\n\t<div class=\"copyright\">\r\n\t\tCopyright © 2014 <a target=\"_blank\" href=\"https://nodebb.org\">NodeBB Forums</a> | <a target=\"_blank\" href=\"//github.com/NodeBB/NodeBB/graphs/contributors\">Contributors</a>\r\n\t</div>\r\n</footer>",
"title":"",
"container":""
}
}
]

View File

@@ -0,0 +1,87 @@
[
{
"route": "/categories",
"title": "\\[\\[global:header.categories\\]\\]",
"enabled": true,
"iconClass": "fa-list",
"textClass": "visible-xs-inline",
"text": "\\[\\[global:header.categories\\]\\]"
},
{
"id": "unread-count",
"route": "/unread",
"title": "\\[\\[global:header.unread\\]\\]",
"enabled": true,
"iconClass": "fa-inbox",
"textClass": "visible-xs-inline",
"text": "\\[\\[global:header.unread\\]\\]",
"properties": {
"loggedIn": true
}
},
{
"route": "/recent",
"title": "\\[\\[global:header.recent\\]\\]",
"enabled": true,
"iconClass": "fa-clock-o",
"textClass": "visible-xs-inline",
"text": "\\[\\[global:header.recent\\]\\]"
},
{
"route": "/tags",
"title": "\\[\\[global:header.tags\\]\\]",
"enabled": true,
"iconClass": "fa-tags",
"textClass": "visible-xs-inline",
"text": "\\[\\[global:header.tags\\]\\]"
},
{
"route": "/popular",
"title": "\\[\\[global:header.popular\\]\\]",
"enabled": true,
"iconClass": "fa-fire",
"textClass": "visible-xs-inline",
"text": "\\[\\[global:header.popular\\]\\]"
},
{
"route": "/users",
"title": "\\[\\[global:header.users\\]\\]",
"enabled": true,
"iconClass": "fa-user",
"textClass": "visible-xs-inline",
"text": "\\[\\[global:header.users\\]\\]"
},
{
"route": "/groups",
"title": "\\[\\[global:header.groups\\]\\]",
"enabled": true,
"iconClass": "fa-group",
"textClass": "visible-xs-inline",
"text": "\\[\\[global:header.groups\\]\\]"
},
{
"route": "/admin",
"title": "\\[\\[global:header.admin\\]\\]",
"enabled": true,
"iconClass": "fa-cogs",
"textClass": "visible-xs-inline",
"text": "\\[\\[global:header.admin\\]\\]",
"properties": {
"targetBlank": false,
"adminOnly": true
}
},
{
"route": "/search",
"title": "\\[\\[global:header.search\\]\\]",
"enabled": true,
"iconClass": "fa-search",
"textClass": "visible-xs-inline",
"text": "\\[\\[global:header.search\\]\\]",
"properties": {
"installed": {
"search": true
}
}
}
]

10
install/data/welcome.md Normal file
View File

@@ -0,0 +1,10 @@
# Welcome to your brand new NodeBB forum!
This is what a topic and post looks like. As an administator, you can edit the post\'s title and content.
To customise your forum, go to the [Administrator Control Panel](../../admin). You can modify all aspects of your forum there, including installation of third-party plugins.
## Additional Resources
* [NodeBB Documentation](https://docs.nodebb.org)
* [Community Support Forum](https://community.nodebb.org)
* [Project repository](https://github.com/nodebb/nodebb)

148
install/web.js Normal file
View File

@@ -0,0 +1,148 @@
"use strict";
var winston = require('winston'),
express = require('express'),
bodyParser = require('body-parser'),
fs = require('fs'),
path = require('path'),
less = require('less'),
async = require('async'),
uglify = require('uglify-js'),
nconf = require('nconf'),
app = express(),
server;
var web = {},
scripts = [
'public/vendor/xregexp/xregexp.js',
'public/vendor/xregexp/unicode/unicode-base.js',
'public/src/utils.js',
'public/src/installer/install.js'
];
web.install = function(port) {
port = port || 4567;
winston.info('Launching web installer on port', port);
app.use(express.static('public', {}));
app.engine('tpl', require('templates.js').__express);
app.set('view engine', 'tpl');
app.set('views', path.join(__dirname, '../src/views'));
app.use(bodyParser.urlencoded({
extended: true
}));
async.parallel([compileLess, compileJS], function() {
setupRoutes();
launchExpress(port);
});
};
function launchExpress(port) {
server = app.listen(port, function() {
winston.info('Web installer listening on http://%s:%s', '0.0.0.0', port);
});
}
function setupRoutes() {
app.get('/', welcome);
app.post('/', install);
app.post('/launch', launch);
}
function welcome(req, res) {
var dbs = ['redis', 'mongo'],
databases = [];
dbs.forEach(function(el) {
databases.push({
name: el,
questions: require('../src/database/' + el).questions
});
});
res.render('install/index', {
databases: databases,
skipDatabaseSetup: !!nconf.get('database'),
error: res.locals.error ? true : false,
success: res.locals.success ? true : false,
values: req.body
});
}
function install(req, res) {
for (var i in req.body) {
if (req.body.hasOwnProperty(i) && !process.env.hasOwnProperty(i)) {
process.env[i.replace(':', '__')] = req.body[i];
}
}
var child = require('child_process').fork('app', ['--setup'], {
env: process.env
});
child.on('close', function(data) {
if (data === 0) {
res.locals.success = true;
} else {
res.locals.error = true;
}
welcome(req, res);
});
}
function launch(req, res) {
var pidFilePath = __dirname + '../pidfile';
res.json({});
server.close();
var child = require('child_process').spawn('node', ['loader.js'], {
detached: true,
stdio: ['ignore', 'ignore', 'ignore']
});
process.stdout.write('\nStarting NodeBB\n');
process.stdout.write(' "./nodebb stop" to stop the NodeBB server\n');
process.stdout.write(' "./nodebb log" to view server output\n');
process.stdout.write(' "./nodebb restart" to restart NodeBB\n');
child.unref();
process.exit(0);
}
function compileLess(callback) {
if ((nconf.get('from-file') || '').indexOf('less') !== -1) {
winston.info('LESS compilation skipped');
return callback(false);
}
fs.readFile(path.join(__dirname, '../public/less/install.less'), function(err, style) {
less.render(style.toString(), function(err, css) {
if(err) {
return winston.error('Unable to compile LESS: ', err);
}
fs.writeFile(path.join(__dirname, '../public/stylesheet.css'), css.css, callback);
});
});
}
function compileJS(callback) {
if ((nconf.get('from-file') || '').indexOf('js') !== -1) {
winston.info('Client-side JS compilation skipped');
return callback(false);
}
var scriptPath = path.join(__dirname, '..'),
result = uglify.minify(scripts.map(function(script) {
return path.join(scriptPath, script);
}));
fs.writeFile(path.join(__dirname, '../public/nodebb.min.js'), result.code, callback);
}
module.exports = web;

View File

@@ -9,11 +9,15 @@ var nconf = require('nconf'),
async = require('async'),
logrotate = require('logrotate-stream'),
pkg = require('./package.json'),
pkg = require('./package.json');
pidFilePath = __dirname + '/pidfile',
nconf.argv().env().file({
file: path.join(__dirname, '/config.json')
});
var pidFilePath = __dirname + '/pidfile',
output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true }),
silent = process.env.NODE_ENV !== 'development',
silent = nconf.get('silent') === 'false' ? false : nconf.get('silent') !== false,
numProcs,
workers = [],
@@ -82,7 +86,7 @@ Loader.addWorkerEvents = function(worker) {
if (message && typeof message === 'object' && message.action) {
switch (message.action) {
case 'ready':
if (Loader.js.cache) {
if (Loader.js.cache && !worker.isPrimary) {
worker.send({
action: 'js-propagate',
cache: Loader.js.cache,
@@ -91,7 +95,7 @@ Loader.addWorkerEvents = function(worker) {
});
}
if (Loader.css.cache) {
if (Loader.css.cache && !worker.isPrimary) {
worker.send({
action: 'css-propagate',
cache: Loader.css.cache,
@@ -99,6 +103,8 @@ Loader.addWorkerEvents = function(worker) {
hash: Loader.css.hash
});
}
break;
case 'restart':
console.log('[cluster] Restarting...');
@@ -132,6 +138,11 @@ Loader.addWorkerEvents = function(worker) {
hash: message.hash
}, worker.pid);
break;
case 'templates:compiled':
Loader.notifyWorkers({
action: 'templates:compiled',
}, worker.pid);
break;
}
}
});
@@ -181,7 +192,12 @@ function forkWorker(index, isPrimary) {
}
function getPorts() {
var urlObject = url.parse(nconf.get('url'));
var _url = nconf.get('url');
if (!_url) {
console.log('[cluster] url is undefined, please check your config.json');
process.exit();
}
var urlObject = url.parse(_url);
var port = nconf.get('port') || nconf.get('PORT') || urlObject.port || 4567;
if (!Array.isArray(port)) {
port = [port];
@@ -230,35 +246,38 @@ Loader.notifyWorkers = function(msg, worker_pid) {
});
};
nconf.argv().file({
file: path.join(__dirname, '/config.json')
});
fs.open(path.join(__dirname, 'config.json'), 'r', function(err) {
if (!err) {
if (nconf.get('daemon') !== 'false' && nconf.get('daemon') !== false) {
if (fs.existsSync(pidFilePath)) {
try {
var pid = fs.readFileSync(pidFilePath, { encoding: 'utf-8' });
process.kill(pid, 0);
process.exit();
} catch (e) {
fs.unlinkSync(pidFilePath);
}
}
if (nconf.get('daemon') !== false) {
if (fs.existsSync(pidFilePath)) {
try {
var pid = fs.readFileSync(pidFilePath, { encoding: 'utf-8' });
process.kill(pid, 0);
process.exit();
} catch (e) {
fs.unlinkSync(pidFilePath);
require('daemon')({
stdout: process.stdout,
stderr: process.stderr
});
fs.writeFile(__dirname + '/pidfile', process.pid);
}
async.series([
Loader.init,
Loader.displayStartupMessages,
Loader.start
], function(err) {
if (err) {
console.log('[loader] Error during startup: ' + err.message);
}
});
} else {
// No config detected, kickstart web installer
var child = require('child_process').fork('app');
}
require('daemon')({
stdout: process.stdout,
stderr: process.stderr
});
fs.writeFile(__dirname + '/pidfile', process.pid);
}
async.series([
Loader.init,
Loader.displayStartupMessages,
Loader.start
], function(err) {
if (err) {
console.log('[loader] Error during startup: ' + err.message);
}
});
});

View File

@@ -4,9 +4,9 @@ var uglifyjs = require('uglify-js'),
less = require('less'),
async = require('async'),
fs = require('fs'),
path = require('path'),
crypto = require('crypto'),
utils = require('./public/src/utils'),
Minifier = {
js: {}
};
@@ -14,7 +14,7 @@ var uglifyjs = require('uglify-js'),
/* Javascript */
Minifier.js.minify = function (scripts, minify, callback) {
scripts = scripts.filter(function(file) {
return fs.existsSync(file);
return fs.existsSync(file) && file.endsWith('.js');
});
if (minify) {
@@ -29,9 +29,10 @@ Minifier.js.minify = function (scripts, minify, callback) {
process.on('message', function(payload) {
switch(payload.action) {
case 'js':
Minifier.js.minify(payload.scripts, payload.minify, function(minified) {
Minifier.js.minify(payload.scripts, payload.minify, function(minified/*, sourceMap*/) {
process.send({
type: 'end',
// sourceMap: sourceMap,
minified: minified
});
});
@@ -40,8 +41,11 @@ process.on('message', function(payload) {
});
function minifyScripts(scripts, callback) {
// The portions of code involving the source map are commented out as they're broken in UglifyJS2
// Follow along here: https://github.com/mishoo/UglifyJS2/issues/700
try {
var minified = uglifyjs.minify(scripts, {
// outSourceMap: "nodebb.min.js.map",
compress: false
}),
hasher = crypto.createHash('md5'),
@@ -55,7 +59,7 @@ function minifyScripts(scripts, callback) {
payload: hash.slice(0, 8)
});
callback(minified.code);
callback(minified.code/*, minified.map*/);
} catch(err) {
process.send({
type: 'error',

294
nodebb
View File

@@ -1,136 +1,166 @@
#!/bin/bash
#!/usr/bin/env node
# $0 script path
# $1 action
# $2 subaction
var colors = require('colors'),
cproc = require('child_process'),
argv = require('minimist')(process.argv.slice(2)),
fs = require('fs'),
async = require('async'),
touch = require('touch');
node="$(which nodejs 2>/dev/null)";
if [ $? -gt 0 ];
then node="$(which node)";
fi
var getRunningPid = function(callback) {
fs.readFile(__dirname + '/pidfile', {
encoding: 'utf-8'
}, function(err, pid) {
if (err) {
return callback(err);
}
function pidExists() {
if [ -e "pidfile" ];
then
if ps -p $(cat pidfile) > /dev/null
then return 1;
else
rm ./pidfile;
return 0;
fi
else
return 0;
fi
try {
process.kill(parseInt(pid, 10), 0);
callback(null, parseInt(pid, 10));
} catch(e) {
callback(e);
}
});
};
switch(process.argv[2]) {
case 'status':
getRunningPid(function(err, pid) {
if (!err) {
process.stdout.write('\nNodeBB Running '.bold + '(pid '.cyan + pid.toString().cyan + ')\n'.cyan);
process.stdout.write('\t"' + './nodebb stop'.yellow + '" to stop the NodeBB server\n');
process.stdout.write('\t"' + './nodebb log'.yellow + '" to view server output\n');
process.stdout.write('\t"' + './nodebb restart'.yellow + '" to restart NodeBB\n\n');
} else {
process.stdout.write('\nNodeBB is not running\n'.bold);
process.stdout.write('\t"' + './nodebb start'.yellow + '" to launch the NodeBB server\n\n'.reset);
}
})
break;
case 'start':
process.stdout.write('\nStarting NodeBB\n'.bold);
process.stdout.write(' "' + './nodebb stop'.yellow + '" to stop the NodeBB server\n');
process.stdout.write(' "' + './nodebb log'.yellow + '" to view server output\n');
process.stdout.write(' "' + './nodebb restart'.yellow + '" to restart NodeBB\n\n'.reset);
// Spawn a new NodeBB process
cproc.fork(__dirname + '/loader.js', {
env: process.env
});
break;
case 'stop':
getRunningPid(function(err, pid) {
if (!err) {
process.kill(pid, 'SIGTERM');
process.stdout.write('Stopping NodeBB. Goodbye!\n')
} else {
process.stdout.write('NodeBB is already stopped.\n');
}
});
break;
case 'restart':
getRunningPid(function(err, pid) {
if (!err) {
process.kill(pid, 'SIGHUP');
} else {
process.stdout.write('NodeBB could not be restarted, as a running instance could not be found.');
}
});
break;
case 'reload':
getRunningPid(function(err, pid) {
if (!err) {
process.kill(pid, 'SIGUSR2');
} else {
process.stdout.write('NodeBB could not be reloaded, as a running instance could not be found.');
}
});
break;
case 'dev':
process.env.NODE_ENV = 'development';
cproc.fork(__dirname + '/loader.js', ['--no-daemon', '--no-silent'], {
env: process.env
});
break;
case 'log':
process.stdout.write('\nType '.red + 'Ctrl-C '.bold + 'to exit'.red);
process.stdout.write('\n\n'.reset);
cproc.spawn('tail', ['-F', './logs/output.log'], {
cwd: __dirname,
stdio: 'inherit'
});
break;
case 'setup':
cproc.fork('app.js', ['--setup'], {
cwd: __dirname,
silent: false
});
break;
case 'reset':
var args = process.argv.slice(0);
args.unshift('--reset');
cproc.fork('app.js', args, {
cwd: __dirname,
silent: false
});
break;
case 'upgrade':
async.series([
function(next) {
process.stdout.write('1. '.bold + 'Bringing base dependencies up to date... '.yellow);
require('child_process').execFile('/usr/bin/env', ['npm', 'i', '--production'], next);
},
function(next) {
process.stdout.write('OK\n'.green);
process.stdout.write('2. '.bold + 'Updating NodeBB data store schema.\n'.yellow);
var upgradeProc = cproc.fork('app.js', ['--upgrade'], {
cwd: __dirname,
silent: false
});
upgradeProc.on('close', next)
},
function(next) {
process.stdout.write('3. '.bold + 'Storing upgrade date in "package.json"... '.yellow);
touch(__dirname + '/package.json', {}, next);
}
], function(err) {
if (err) {
process.stdout.write('\nError'.red + ': ' + err.message + '\n');
} else {
var message = 'NodeBB Upgrade Complete!',
spaces = new Array(Math.floor(process.stdout.columns / 2) - (message.length / 2) + 1).join(' ');
process.stdout.write('OK\n'.green);
process.stdout.write('\n' + spaces + message.green.bold + '\n\n'.reset);
}
});
break;
default:
process.stdout.write('\nWelcome to NodeBB\n\n'.bold);
process.stdout.write('Usage: ./nodebb {start|stop|reload|restart|log|setup|reset|upgrade|dev}\n\n');
process.stdout.write('\t' + 'start'.yellow + '\tStart the NodeBB server\n');
process.stdout.write('\t' + 'stop'.yellow + '\tStops the NodeBB server\n');
process.stdout.write('\t' + 'reload'.yellow + '\tRestarts NodeBB\n');
process.stdout.write('\t' + 'restart'.yellow + '\tRestarts NodeBB\n');
process.stdout.write('\t' + 'log'.yellow + '\tOpens the logging interface (useful for debugging)\n');
process.stdout.write('\t' + 'setup'.yellow + '\tRuns the NodeBB setup script\n');
process.stdout.write('\t' + 'reset'.yellow + '\tDisables all plugins, restores the default theme.\n');
process.stdout.write('\t' + 'upgrade'.yellow + '\tRun NodeBB upgrade scripts, ensure packages are up-to-date\n');
process.stdout.write('\t' + 'dev'.yellow + '\tStart NodeBB in interactive development mode\n');
process.stdout.write('\t' + 'watch'.yellow + '\tStart NodeBB in development mode and watch for changes\n');
process.stdout.write('\n'.reset);
break;
}
case "$1" in
start)
echo "Starting NodeBB";
echo " \"./nodebb stop\" to stop the NodeBB server";
echo " \"./nodebb log\" to view server output";
# Start the loader daemon
"$node" loader "$@"
;;
stop)
pidExists;
if [ 0 -eq $? ];
then
echo "NodeBB is already stopped.";
else
echo "Stopping NodeBB. Goodbye!";
kill $(cat pidfile);
fi
;;
restart)
pidExists;
if [ 0 -eq $? ];
then
echo "NodeBB could not be restarted, as a running instance could not be found.";
else
echo "Restarting NodeBB.";
kill -1 $(cat pidfile);
fi
;;
reload)
pidExists;
if [ 0 -eq $? ];
then
echo "NodeBB could not be reloaded, as a running instance could not be found.";
else
echo "Reloading NodeBB.";
kill -12 $(cat pidfile);
fi
;;
status)
pidExists;
if [ 0 -eq $? ];
then
echo "NodeBB is not running";
echo " \"./nodebb start\" to launch the NodeBB server";
else
echo "NodeBB Running (pid $(cat pidfile))";
echo " \"./nodebb stop\" to stop the NodeBB server";
echo " \"./nodebb log\" to view server output";
echo " \"./nodebb restart\" to restart NodeBB";
fi
;;
log)
clear;
tail -F ./logs/output.log;
;;
upgrade)
npm install
# ls -d node_modules/nodebb* | xargs -n1 basename | xargs npm install
# ls -d node_modules/nodebb* | xargs -n1 basename | xargs npm update
npm i nodebb-theme-vanilla nodebb-theme-lavender nodebb-widget-essentials
"$node" app --upgrade
touch package.json
;;
setup)
"$node" app --setup "$@"
;;
reset)
"$node" app --reset --$2
;;
dev)
echo "Launching NodeBB in \"development\" mode."
echo "To run the production build of NodeBB, please use \"forever\"."
echo "More Information: https://docs.nodebb.org/en/latest/running/index.html"
NODE_ENV=development "$node" loader --no-daemon "$@"
;;
watch)
echo "Launching NodeBB in \"development\" mode."
echo "To run the production build of NodeBB, please use \"forever\"."
echo "More Information: https://docs.nodebb.org/en/latest/running/index.html"
NODE_ENV=development supervisor -q --ignore public/templates,public/nodebb.min.js,public/nodebb.min.js.map --extensions 'node|js|tpl|less' -- app "$@"
;;
*)
echo "Welcome to NodeBB"
echo $"Usage: $0 {start|stop|reload|restart|log|setup|reset|upgrade|dev|watch}"
echo ''
column -s ' ' -t <<< '
start Start the NodeBB server
stop Stops the NodeBB server
reload Restarts NodeBB
restart Restarts NodeBB
log Opens the logging interface (useful for debugging)
setup Runs the NodeBB setup script
reset Disables all plugins, restores the default theme.
upgrade Run NodeBB upgrade scripts, ensure packages are up-to-date
dev Start NodeBB in interactive development mode
watch Start NodeBB in development mode and watch for changes
'
exit 1
esac

122
nodebb.bat Normal file
View File

@@ -0,0 +1,122 @@
@echo off
rem %1 action
rem %2 subaction
setlocal enabledelayedexpansion
2>nul call :CASE_%1
if ERRORLEVEL 1 call :DEFAULT_CASE
exit /B
:CASE_start
echo Starting NodeBB
echo "nodebb.bat stop" to stop the NodeBB server
echo "nodebb.bat log" to view server output
rem Start the loader daemon
node loader %*
goto END_CASE
:CASE_stop
call :pidexists
if %_result%==0 (
echo NodeBB is already stopped.
) else (
echo Stopping NodeBB. Goodbye!
rem Doing this forcefully is probably not the best method
taskkill /PID !_pid! /f>nul
)
goto END_CASE
:CASE_restart
echo Unsupported
goto END_CASE
:CASE_reload
echo Unsupported
goto END_CASE
:CASE_status
call :pidexists
if %_result%==0 (
echo NodeBB is not running
echo "nodebb.bat start" to launch the NodeBB server
) else (
echo NodeBB Running ^(pid !_pid!^)
echo "nodebb.bat stop" to stop the NodeBB server
echo "nodebb.bat log" to view server output
echo "nodebb.bat restart" to restart NodeBB
)
goto END_CASE
:CASE_log
cls
type .\logs\output.log
goto END_CASE
:CASE_upgrade
call npm install
call npm i nodebb-theme-vanilla nodebb-theme-lavender nodebb-widget-essentials
node app --upgrade
copy /b package.json +,,>nul
goto END_CASE
:CASE_setup
node app --setup %*
goto END_CASE
:CASE_reset
node app --reset --%2
goto END_CASE
:CASE_dev
echo Launching NodeBB in "development" mode.
echo To run the production build of NodeBB, please use "forever".
echo More Information: https://docs.nodebb.org/en/latest/running/index.html
set NODE_ENV=development
node loader --no-daemon %*
goto END_CASE
:CASE_watch
echo Not supported
goto END_CASE
:DEFAULT_CASE
echo Welcome to NodeBB
echo Usage: nodebb.bat ^{start^|stop^|reload^|restart^|log^|setup^|reset^|upgrade^|dev^|watch^}
goto END_CASE
:END_CASE
endlocal
VER > NUL
goto :EOF
:pidexists
if exist %~dp0pidfile (
set /p _pid=<pidfile
for /f "usebackq" %%Z in (`tasklist /nh /fi "PID eq !_pid!"`) do (
if %%Z==INFO: (
del pidfile
set _result=0
) else (
set _result=1
)
)
) else (
set _result=0
)

3627
npm-shrinkwrap.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,8 @@
{
"name": "nodebb",
"license": "GPLv3 or later",
"license": "GPL-3.0",
"description": "NodeBB Forum",
"version": "0.6.0-dev",
"version": "0.8.0",
"homepage": "http://www.nodebb.org",
"repository": {
"type": "git",
@@ -10,64 +10,76 @@
},
"main": "app.js",
"scripts": {
"start": "./nodebb start",
"stop": "./nodebb stop",
"start": "node loader.js",
"test": "mocha ./tests -t 10000"
},
"dependencies": {
"async": "~0.9.0",
"bcryptjs": "~2.1.0",
"async": "~1.4.2",
"bcryptjs": "~2.2.1",
"body-parser": "^1.9.0",
"colors": "^1.1.0",
"compression": "^1.1.0",
"connect-ensure-login": "^0.1.1",
"connect-flash": "^0.1.1",
"connect-multiparty": "^1.2.4",
"connect-multiparty": "^2.0.0",
"cookie-parser": "^1.3.3",
"cron": "^1.0.5",
"csurf": "^1.6.1",
"daemon": "~1.1.0",
"express": "^4.9.5",
"express-session": "^1.8.2",
"gm": "1.17.0",
"gravatar": "^1.1.0",
"heapdump": "^0.3.0",
"less": "^2.0.0",
"logrotate-stream": "^0.2.3",
"lru-cache": "^2.6.1",
"lwip": "0.0.7",
"mime": "^1.3.4",
"minimist": "^1.1.1",
"mkdirp": "~0.5.0",
"mmmagic": "^0.3.13",
"morgan": "^1.3.2",
"nconf": "~0.7.1",
"nodebb-plugin-dbsearch": "^0.1.0",
"nodebb-plugin-markdown": "^0.8.0",
"nodebb-plugin-mentions": "^0.7.0",
"nodebb-plugin-soundpack-default": "~0.1.1",
"nodebb-plugin-spam-be-gone": "^0.4.0",
"nodebb-theme-lavender": "^0.2.0",
"nodebb-theme-vanilla": "^0.2.0",
"nodebb-widget-essentials": "~0.2.0",
"nodebb-plugin-composer-default": "1.0.13",
"nodebb-plugin-dbsearch": "0.2.16",
"nodebb-plugin-emoji-extended": "0.4.9",
"nodebb-plugin-markdown": "4.0.5",
"nodebb-plugin-mentions": "1.0.1",
"nodebb-plugin-soundpack-default": "0.1.4",
"nodebb-plugin-spam-be-gone": "0.4.1",
"nodebb-rewards-essentials": "0.0.5",
"nodebb-theme-lavender": "1.0.52",
"nodebb-theme-persona": "2.1.8",
"nodebb-theme-vanilla": "3.1.3",
"nodebb-widget-essentials": "1.0.6",
"npm": "^2.1.4",
"passport": "^0.2.1",
"passport": "^0.3.0",
"passport-local": "1.0.0",
"prompt": "^0.2.14",
"request": "^2.44.0",
"rimraf": "~2.2.6",
"rimraf": "~2.4.2",
"rss": "^1.0.0",
"semver": "^4.0.3",
"semver": "^5.0.1",
"serve-favicon": "^2.1.5",
"sitemap": "^0.7.4",
"sitemap": "^1.0.0",
"socket.io": "^1.2.1",
"socket.io-client": "^1.2.1",
"socket.io-redis": "^0.1.3",
"socketio-wildcard": "~0.1.1",
"string": "^3.0.0",
"templates.js": "0.1.9",
"uglify-js": "git+https://github.com/julianlam/UglifyJS2.git",
"underscore": "~1.7.0",
"validator": "~3.26.0",
"winston": "^0.8.1",
"templates.js": "0.2.10",
"touch": "1.0.0",
"uglify-js": "^2.4.23",
"underscore": "~1.8.3",
"underscore.deep": "^0.5.1",
"validator": "^4.0.5",
"winston": "^1.0.1",
"xregexp": "~2.0.0"
},
"devDependencies": {
"mocha": "~1.13.0"
"mocha": "~1.13.0",
"grunt": "~0.4.5",
"grunt-contrib-watch": "^0.6.1"
},
"bugs": {
"url": "https://github.com/NodeBB/NodeBB/issues"
@@ -78,17 +90,17 @@
"maintainers": [
{
"name": "Andrew Rodrigues",
"email": "andrew@designcreateplay.com",
"email": "andrew@nodebb.org",
"url": "https://github.com/psychobunny"
},
{
"name": "Julian Lam",
"email": "julian@designcreateplay.com",
"email": "julian@nodebb.org",
"url": "https://github.com/julianlam"
},
{
"name": "Barış Soner Uşaklı",
"email": "baris@designcreateplay.com",
"email": "baris@nodebb.org",
"url": "https://github.com/barisusakli"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@@ -1,8 +1,15 @@
{
"category": "فئة",
"subcategories": "فئة فرعية",
"new_topic_button": "موضوع جديد",
"guest-login-post": "يجب عليك تسجيل الدخول للرد",
"no_topics": "<strong>لا توجد مواضيع في هذه الفئة</strong>لم لا تحاول إنشاء موضوع؟<br />",
"browsing": "تصفح",
"no_replies": م يرد أحد",
"no_replies": ا توجد ردود.",
"no_new_posts": "لا يوجد مشاركات جديدة.",
"share_this_category": "انشر هذه الفئة",
"ignore": "تجاهل"
"watch": "متابعة",
"ignore": "تجاهل",
"watch.message": "أنت اﻷن متابع لتحديثات هذه الفئة",
"ignore.message": "أنت اﻷن تتجاهل تحديثات هذه الفئة"
}

View File

@@ -1,14 +1,21 @@
{
"password-reset-requested": "تم طلب إعادة تعيين كلمة السر - %1!",
"password-reset-requested": "تم طلب إعادة تعيين كلمة المرور - %1!",
"welcome-to": "مرحبًا بك في %1",
"invite": "دعوة من %1",
"greeting_no_name": "مرحبًا",
"greeting_with_name": "مرحبًا بك يا %1",
"welcome.text1": "شكرًا على تسجيلك في %1!",
"welcome.text2": "لتفعيل حسابك، نحتاج إلى التأكد من صحة عنوان البريد الإلكتروني الذي تسجلت به.",
"welcome.text2": "لتفعيل حسابك، نحتاج إلى التأكد من صحة عنوان البريد الإلكتروني الذي سجلت به.",
"welcome.text3": "تم قبول نتسجيلك ، يمكنك الدخول باتسخدام اسم المستخدم و كلمة المرور.",
"welcome.cta": "انقر هنا لتفعيل عنوان بريدك الإلكتروني",
"reset.text1": "لقد توصلنا بطلب إعادة تعيين كلمة السرالخاصة بك، ربما لكونك قد نسيتها, إن لم يكن الأمر كذلك، المرجو تجاهل هذه الرسالة.",
"reset.text2": "لمواصلة طلب إعاة تعيين كلمة السر، المرجو تتبع هذا الرابط.",
"invitation.text1": "%1 قام بدعوتك للانضمام لـ %2",
"invitation.ctr": "إضغط هنا لإنشاء حسابك",
"reset.text1": "لقد توصلنا بطلب إعادة تعيين كلمة المرور الخاصة بك، ربما لكونك قد نسيتها, إن لم يكن الأمر كذلك، المرجو تجاهل هذه الرسالة.",
"reset.text2": "لمواصلة طلب إعاة تعيين كلمة المرور، الرجاء تتبع هذا الرابط.",
"reset.cta": "انقر هنا لإعادة تعيين كلمة السر الخاصة بك.",
"reset.notify.subject": "تم تغيير كلمة المرور بنجاح",
"reset.notify.text1": "نحيطك علما أن كلمة مرورك قد تم تغييرها في %1",
"reset.notify.text2": "إن لم يكن لديك علم بهذا، المرجو إشعار مدبر النظام بأسرع مايمكن.",
"digest.notifications": "لديك تنبيهات غير مقروءة من طرف %1:",
"digest.latest_topics": "آخر المستجدات من %1",
"digest.cta": "انقر هنا لمشاهدة %1",
@@ -17,6 +24,8 @@
"notif.chat.subject": "هناك محادثة جديدة من %1",
"notif.chat.cta": "انقر هنا لمتابعة المحادثة",
"notif.chat.unsub.info": "تم إرسال هذا الإشعار بوجودة محادثة جديدة وفقا لخيارات تسجيلك.",
"notif.post.cta": "انقر هنا لقراءة الموضوع بأكمله",
"notif.post.unsub.info": "تم إشعارك بهذه المشاركة بناءً على الخيارات التي سبق وأن حددتها.",
"test.text1": "هذه رسالة تجريبية للتأكد من صحة إعدادت الرسائل الإلكترونية في منتدى NodeBB خاصتك.",
"unsub.cta": "انقر هنا لتغيير تلك الإعدادات",
"closing": "شكرًا لك!"

View File

@@ -1,8 +1,8 @@
{
"invalid-data": "بيانات غير صالحة",
"not-logged-in": "لم تقم بتسجيل الدخول",
"account-locked": "تم إقفال حسابكم مؤقتًا.",
"search-requires-login": "البحث في المنتدى يستلزم توفرك على حساب! المرجو تسجيل دخولك أو إنشاء حساب!",
"account-locked": "تم حظر حسابك مؤقتًا.",
"search-requires-login": "البحث في المنتدى يتطلب حساب - الرجاء تسجيل الدخول أو التسجيل",
"invalid-cid": "قائمة غير موجودة",
"invalid-tid": "موضوع غير متواجد",
"invalid-pid": "رد غير موجود",
@@ -18,10 +18,14 @@
"username-taken": "اسم المستخدم مأخوذ",
"email-taken": "البريد الالكتروني مأخوذ",
"email-not-confirmed": "عنوان بريدك الإلكتروني غير مفعل بعد. انقر هنا لتفعيله من فضلك.",
"email-not-confirmed-chat": "لا يمكنك الدردشة حتى تقوم بتأكيد بريدك الإلكتروني، الرجاء إضغط هنا لتأكيد بريدك اﻹلكتروني.",
"no-email-to-confirm": "هذا المنتدى يستلزم تفعيل بريدك الإلكتروني، انقر هنا من فضلك لإدخاله.",
"email-confirm-failed": "لم نستطع تفعيل بريدك الإلكتروني، المرجو المحاولة لاحقًا.",
"confirm-email-already-sent": "لقد تم ارسال بريد التأكيد، الرجاء اﻹنتظار 1% دقائق لإعادة اﻹرسال",
"username-too-short": "اسم المستخدم قصير.",
"username-too-long": "اسم المستخدم طويل",
"user-banned": "المستخدم محظور",
"user-too-new": "عذرًا، يجب الانتظار %1 ثواني قبل إضافة ردك الأول.",
"user-too-new": "عذرا, يجب أن تنتظر 1% ثواني قبل قيامك بأول مشاركة",
"no-category": "قائمة غير موجودة",
"no-topic": "موضوع غير موجود",
"no-post": "رد غير موجود",
@@ -32,36 +36,55 @@
"no-emailers-configured": "لا يمكن إرسال رسالة إلكترونية تجريبية لعدم وجود قوالب خاصة بالرسائل الإلكترونية،",
"category-disabled": "قائمة معطلة",
"topic-locked": "الموضوع مقفول",
"post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting",
"still-uploading": "الرجاء انتظار الرفع",
"content-too-short": "المرجو إدخال موضوع أطول من هذا. يجب أن تتوفر المواضيع على %1 حروف على الأقل.",
"title-too-short": "المرجو إدخال عنوان أطول من هذا. يجب أن تتوفر العناوين على %1 حروف على الأقل.",
"title-too-long": "المرجو إدخال عنوان أقصر من هذا. يجب ألا تتجاوز العناوين %1 حرفًا.",
"too-many-posts": "يمكنك إنشاء المواضيع بمعدل موضوع واحد كل %1 ثانية - المرجو الانتظار قليلا.",
"too-many-posts-newbie": "بصفتك مستخدمًا جديدًا، يمكنك إنشاء المواضيع بمعدل موضوع واحد كل %1 ثانية حتى تحصل على سمعة %2 - المرجو الانتظار قليلا.",
"file-too-big": "حجم الملفات الأقصى المسموح به هو %1 كب - المرجو رفع ملف أقل حجمًا",
"content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).",
"content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).",
"title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).",
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 character(s).",
"too-many-posts": "You can only post once every %1 second(s) - please wait before posting again",
"too-many-posts-newbie": "As a new user, you can only post once every %1 second(s) until you have earned %2 reputation - please wait before posting again",
"tag-too-short": "Please enter a longer tag. Tags should contain at least %1 character(s)",
"tag-too-long": "Please enter a shorter tag. Tags can't be longer than %1 character(s)",
"not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)",
"too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)",
"file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file",
"cant-vote-self-post": "لايمكنك التصويت لردك",
"already-favourited": "لقد سبق وأضفت هذا الرد إلى المفضلة",
"already-unfavourited": "لقد سبق وحذفت هذا الرد من المفضلة",
"cant-ban-other-admins": "لايمكن حظر مدبر نظام آخر.",
"invalid-image-type": "نوع الصورة ممنوع",
"cant-remove-last-admin": "You are the only administrator. Add another user as an administrator before removing yourself as admin",
"invalid-image-type": "Invalid image type. Allowed types are: %1",
"invalid-image-extension": "Invalid image extension",
"invalid-file-type": "Invalid file type. Allowed types are: %1",
"group-name-too-short": "اسم المجموعة قصير",
"group-already-exists": "المجموعة موجودة مسبقا",
"group-name-change-not-allowed": "لايسمح بتغيير أسماء المجموعات",
"group-already-member": "أنت بالفعل عضو في هذه المجموعة ",
"group-needs-owner": "هذه المجموعة تتطلب مالك واحد على اﻷقل",
"group-already-invited": "This user has already been invited",
"group-already-requested": "Your membership request has already been submitted",
"post-already-deleted": "سبق وتم حذف هذا الرد",
"post-already-restored": "سبق وتم إلغاء حذف هذا الرد",
"topic-already-deleted": "سبق وتم حذف هذا الموضوع",
"topic-already-restored": "سبق وتم إلغاء حذف هذا الرد",
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
"topic-thumbnails-are-disabled": "الصور المصغرة غير مفعلة.",
"invalid-file": "ملف غير مقبول",
"uploads-are-disabled": "رفع الملفات غير مفعل",
"upload-error": "مشكلة في الرفع: 1%",
"signature-too-long": "عذرا، توقيعك يجب ألا يتجاوز %1 حرفًا",
"signature-too-long": "عذرا، توقيعك يجب ألا يتجاوز %1 حرفًا.",
"about-me-too-long": "Sorry, your about me cannot be longer than %1 character(s).",
"cant-chat-with-yourself": "لايمكنك فتح محادثة مع نفسك",
"chat-restricted": "هذا المستخدم عطل المحادثات الواردة عليه. يجب أن يتبعك حتى تتمكن من فتح محادثة معه.",
"too-many-messages": "لقد أرسلت الكثير من الرسائل، الرجاء اﻹنتظار قليلاً",
"reputation-system-disabled": "نظام السمعة معطل",
"downvoting-disabled": "التصويتات السلبية معطلة",
"not-enough-reputation-to-downvote": "ليس لديك سمعة تكفي لإضافة صوت سلبي لهذا الموضوع",
"not-enough-reputation-to-flag": "ليس لديك سمعة تكفي للإشعار بموضوع مخل",
"already-flagged": "You have already flagged this post",
"reload-failed": "المنتدى واجه مشكلة أثناء إعادة التحميل: \"%1\". سيواصل المنتدى خدمة العملاء السابقين لكن يجب عليك إلغاء أي تغيير قمت به قبل إعادة التحميل.",
"registration-error": "حدث خطأ أثناء التسجيل"
"registration-error": "حدث خطأ أثناء التسجيل",
"parse-error": "حدث خطأ ما أثناء تحليل استجابة الخادم",
"wrong-login-type-email": "الرجاء استعمال بريدك اﻹلكتروني للدخول",
"wrong-login-type-username": "الرجاء استعمال اسم المستخدم الخاص بك للدخول"
}

View File

@@ -3,9 +3,10 @@
"search": "بحث",
"buttons.close": "أغلق",
"403.title": "غير مسموح بالدخول",
"403.message": "يبدو أنك قد تعثر على الصفحة التي لم يكن لديك الوصول إليها. ربما يجب عليك <a href='/login'> تسجيل الدخول </a> ",
"403.message": "يبدو أنك قد تعثرت على صفحة لا تمتلك الصلاحية للدخول إليها",
"403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
"404.title": "لم يتم العثور",
"404.message": "يبدو أنك قد تعثرت على صفحة غير موجودة. عودة إلى الصفحة الرئيسية.",
"404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
"500.title": "خطأ داخلي.",
"500.message": "عفوا! يبدو وكأنه شيء ذهب على نحو خاطئ!",
"register": "تسجيل",
@@ -21,11 +22,13 @@
"pagination.out_of": "%1 من %2",
"pagination.enter_index": "أدخل الرقم التسلسلي",
"header.admin": "مدبر نظام",
"header.categories": "الفئات",
"header.recent": "حديث",
"header.unread": "غير مقروء",
"header.tags": "وسم",
"header.popular": "الأكثر شهرة",
"header.users": "المستخدمين",
"header.groups": "المجموعات",
"header.chats": "المحادثات",
"header.notifications": "التنبيهات",
"header.search": "بحث",
@@ -48,6 +51,7 @@
"views": "المشاهدات",
"reputation": "السمعة",
"read_more": "اقرأ المزيد",
"more": "المزيد",
"posted_ago_by_guest": "كتب %1 من طرف زائر",
"posted_ago_by": "كتب %1 من طرف %2",
"posted_ago": "كتب %1",
@@ -73,5 +77,7 @@
"updated.title": "تم تحديث المنتدى",
"updated.message": "لقد تم تحديث المنتدى إلى آخر نسخة للتو. المرجو إعادة تحميل الصفحة.",
"privacy": "الخصوصية",
"follow": "متابعة",
"unfollow": "إلغاء المتابعة",
"delete_all": "حذف الكل"
}

View File

@@ -1,8 +1,50 @@
{
"groups": "المجموعات",
"view_group": "معاينة المجموعة",
"owner": "مالك المجموعة",
"new_group": "أنشئ مجموعة جديدة",
"no_groups_found": "لاوجدود لمجموعات يمكن معاينتها",
"pending.accept": "موافق",
"pending.reject": "رفض",
"pending.accept_all": "قبول الكل",
"pending.reject_all": "رفض الكل",
"pending.none": "لايوجد أعضاء ينتظرون التفعيل حالياً",
"invited.none": "لايوجد أعضاء مدعوون في حالياً",
"invited.uninvite": "إلغ الدعوة",
"invited.search": "ابحث عن أعضاء لدعوتهم للمجموعة",
"cover-instructions": "اسحب وأسقِط صورة، اسحبها للموضع المرغوب، وانقر على <strong>حفظ</strong>",
"cover-change": "تغيير",
"cover-save": "حفظ",
"cover-saving": "جاري الحفظ",
"details.title": "تفاصيل المجموعة",
"details.members": "لائحة الأعضاء",
"details.pending": "المستخدمون في الانتظار",
"details.invited": "اﻷعضار المدعوون",
"details.has_no_posts": "أعضاء هذه المجموعة لم يضيفوا أية مشاركة",
"details.latest_posts": "آخر المشاركات"
"details.latest_posts": "آخر المشاركات",
"details.private": "خاص",
"details.grant": "منح/سحب المِلكية",
"details.kick": "طرد",
"details.owner_options": "إدارة المجموعة",
"details.group_name": "اسم المجموعة",
"details.member_count": "عدد اﻷعضاء",
"details.creation_date": "تاريخ الإنشاء",
"details.description": "الوصف",
"details.badge_preview": "معاينة الوسام",
"details.change_icon": "تغيير الأيقونة",
"details.change_colour": "تغيير اللون",
"details.badge_text": "نص الوسام",
"details.userTitleEnabled": "إظهار الوسام",
"details.private_help": "في حالة تفعيل الخيار، الانضمام إلى المجموعة يستلزم قبول مالكها",
"details.hidden": "مخفي",
"details.hidden_help": "في حالة تفعيل الخيار، لن تظهر المجموعة للعموم والإنضمام إليها سيتلزم دعوة.",
"details.delete_group": "حذف المجموعة",
"event.updated": "تم تحديث بيانات المجموعة",
"event.deleted": "تم حذف المجموعة %1",
"membership.accept-invitation": "اقبل الدعوة",
"membership.invitation-pending": "الدعوة بانتظار القبول",
"membership.join-group": "انظم للمجموعة",
"membership.leave-group": "غادر المجموعة",
"membership.reject": "رفض",
"new-group.group_name": "اسم المجموعة"
}

View File

@@ -1,9 +1,11 @@
{
"username": "اسم المستخدم / عنوان البريد الإلكتروني",
"username-email": "اسم المستخدم / البريد الإلكتروني",
"username": "اسم المستخدم",
"email": "البريد الإلكتروني",
"remember_me": "تذكرني؟",
"forgot_password": "نسيت كلمة المرور؟",
"alternative_logins": "تسجيلات الدخول البديلة",
"failed_login_attempt": "فشلت محاولة تسجيل الدخول، يرجى المحاولة مرة أخرى.",
"login_successful": "قمت بتسجيل الدخول بنجاح!",
"dont_have_account": م تفتح حسابك بعد؟"
"dont_have_account": ا تملك حساب؟"
}

View File

@@ -15,7 +15,12 @@
"chat.seven_days": "7 أيام",
"chat.thirty_days": "30 يومًا",
"chat.three_months": "3 أشهر",
"composer.compose": "اكتب",
"composer.show_preview": "عرض المعاينة",
"composer.hide_preview": "إخفاء المعاينة",
"composer.user_said_in": "%1 كتب في %2",
"composer.user_said": "%1 كتب:",
"composer.discard": "هل أنت متأكد أنك تريد التخلي عن التغييرات؟"
"composer.discard": "هل أنت متأكد أنك تريد التخلي عن التغييرات؟",
"composer.submit_and_lock": "Submit and Lock",
"composer.toggle_dropdown": "Toggle Dropdown"
}

View File

@@ -1,7 +1,8 @@
{
"title": "تنبيهات",
"title": "التنبيهات",
"no_notifs": "ليس لديك أية تنبيهات جديدة",
"see_all": "معاينة كل التنبيهات",
"mark_all_read": "اجعل كل التنبيهات مقروءة",
"back_to_home": "عودة إلى %1",
"outgoing_link": "رابط خارجي",
"outgoing_link_message": "أنت تغادر %1 حاليا.",
@@ -19,9 +20,9 @@
"user_posted_topic": "<strong>%1</strong> أنشأ موضوعًا جديدًا: <strong>%2</strong>",
"user_mentioned_you_in": "<strong>%1</strong> ذكرَ اسمك في <strong>%2</strong>",
"user_started_following_you": "<strong>%1</strong> صار يتابعك.",
"new_register": "<strong>%1</strong> sent a registration request.",
"email-confirmed": "تم التحقق من عنوان البريد الإلكتروني",
"email-confirmed-message": "شكرًا على إثبات صحة عنوان بريدك الإلكتروني. صار حسابك مفعلًا بالكامل.",
"email-confirm-error": "حدث خطأ ما...",
"email-confirm-error-message": "حدث خطأ أثناء التحقق من عنوان بريدك الإلكتروني. ربما رمز التفعيل خاطئ أو انتهت صلاحيته.",
"email-confirm-sent": "تم إرسال بريد التفعيل."
}

View File

@@ -1,18 +1,21 @@
{
"home": "الصفحة الرئيسية",
"unread": "المواضيع غير المقروءة",
"unread": "المواضيع الغير مقروءة",
"popular": "المواضيع الأكثر شهرة",
"recent": "المواضيع الحديثة",
"users": "المستخدمون المسجلون",
"users": "اﻷعضاء المسجلون",
"notifications": "التنبيهات",
"tags": "المواضيع المرتبطة بالوسم %1",
"tags": "الكلمات الدلالية",
"tag": "Topics tagged under \"%1\"",
"user.edit": "تعديل \"%1\"",
"user.following": "المستخدمون الذين يتبعهم %1",
"user.followers": "المستخدمون الذين يتبعون %1",
"user.posts": "ردود %1",
"user.topics": "مواضيع %1",
"user.groups": "مجموعات %1",
"user.favourites": "مفضلات %1",
"user.settings": "خيارات المستخدم",
"user.watched": "المواضيع المتابعة من قبل %1 ",
"maintenance.text": "جاري صيانة %1. المرجو العودة لاحقًا.",
"maintenance.messageIntro": "بالإضافة إلى ذلك، قام مدبر النظام بترك هذه الرسالة:"
}

View File

@@ -5,5 +5,15 @@
"month": "شهر",
"year": "سنة",
"alltime": "دائمًا",
"no_recent_topics": "لاوجود لمشاركات جديدة"
"no_recent_topics": "لايوجد مواضيع جديدة",
"no_popular_topics": "There are no popular topics.",
"there-is-a-new-topic": "يوجد موضوع جديد",
"there-is-a-new-topic-and-a-new-post": "يوجد موضوع جديد و رد جديد",
"there-is-a-new-topic-and-new-posts": "يوجد موضوع جديد و %1 ردود جديدة ",
"there-are-new-topics": "يوجد %1 مواضيع جديدة",
"there-are-new-topics-and-a-new-post": "يوجد %1 مواضيع جديدة و رد جديد",
"there-are-new-topics-and-new-posts": "يوجد %1 مواضيع جديدة و %2 مشاركات جديدة",
"there-is-a-new-post": "يوجد مشاركة جديدة",
"there-are-new-posts": "يوجد %1 مشاركات جديدة",
"click-here-to-reload": "إضغط هنا لإعادة التحميل"
}

View File

@@ -1,18 +1,19 @@
{
"register": "تسجيل",
"help.email": "افتراضيا، سيتم إخفاء بريدك الإلكتروني من الجمهور.",
"help.email": "افتراضيا، سيتم إخفاء بريدك الإلكتروني من العامة.",
"help.username_restrictions": "اسم مستخدم فريدة من نوعها بين1% و2% حرفا. يمكن للآخرين ذكرك @ <'span id='your-username> اسم المستخدم </span>.",
"help.minimum_password_length": "كلمتك السر يجب أن تكون على الأقل متألفة من 1% أحرف",
"help.minimum_password_length": "كلمة المرور يجب أن تكون على الأقل بها 1% أحرف",
"email_address": "عنوان البريد الإلكتروني",
"email_address_placeholder": "ادخل عنوان البريد الإلكتروني",
"username": "اسم المستخدم",
"username_placeholder": "أدخل اسم المستخدم",
"password": "كلمة السر",
"password_placeholder": "أدخل كلمة السر",
"confirm_password": "تأكيد كلمة السر",
"confirm_password_placeholder": "تأكيد كلمة السر",
"password": "كلمة المرور",
"password_placeholder": "أدخل كلمة المرور",
"confirm_password": "تأكيد كلمة المرور",
"confirm_password_placeholder": "تأكيد كلمة المرور",
"register_now_button": "قم بالتسجيل الآن",
"alternative_registration": "طريقة تسجيل بديلة",
"terms_of_use": "قوانين الاستخدام",
"agree_to_terms_of_use": "أوافق على قوانين الاستخدام"
"terms_of_use": "شروط الاستخدام",
"agree_to_terms_of_use": "أوافق على شروط الاستخدام",
"registration-added-to-queue": "Your registration has been added to the approval queue. You will receive an email when it is accepted by an administrator."
}

View File

@@ -1,14 +1,17 @@
{
"reset_password": "إعادة تعيين كلمة السر",
"update_password": "تحديث كلمة السر",
"password_changed.title": "تم تغير كلمة السر",
"password_changed.message": "<p>تم تغير كلمة السر بنجاح. يرجى <a href='/login'>إعادة الدخول</a></p>",
"reset_password": "إعادة تعيين كلمة المرور",
"update_password": "تحديث كلمة المرور",
"password_changed.title": "تم تغير كلمة المرور",
"password_changed.message": "<p>تم تغير كلمة المرور بنجاح، الرجاء <a href='/login'>إعادة الدخول</a></p>",
"wrong_reset_code.title": "رمز إعادة التعيين غير صحيح",
"wrong_reset_code.message": "رمز إعادة التعين غير صحيح، يرجى المحاولة مرة أخرى أو <a href='/reset'>اطلب رمزا جديدا</a>",
"new_password": "كلمة السر الجديدة",
"repeat_password": "تأكيد كلمة السر",
"new_password": "كلمة المرور الجديدة",
"repeat_password": "تأكيد كلمة المرور",
"enter_email": "يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
"enter_email_address": "ادخل عنوان البريد الإلكتروني",
"password_reset_sent": "إعادة تعيين كلمة السر أرسلت",
"invalid_email": "بريد إلكتروني غير صالح أو غير موجود"
"invalid_email": "بريد إلكتروني غير صالح أو غير موجود",
"password_too_short": "كلمة المرور التي أدخلتها قصيرة، الرجاء اختر كلمة مرور مختلفة",
"passwords_do_not_match": "كلمتا السر التي أدخلتهما غير متطابقتان",
"password_expired": "لقد انتهت صلاحية كلمة المرور الخاصة بك، الرجاء اختيار كلمة مرور جديدة"
}

View File

@@ -1,4 +1,40 @@
{
"results_matching": "%1 نتيجة (نتائج) موافقة ل \"%2\", (%3 ثواني)",
"no-matches": "لم يتم إيجاد أية مشاركات"
"results_matching": "%1 نتيجة (نتائج) موافقة لـ \"%2\", (%3 ثواني)",
"no-matches": "لم يتم العثور على نتائج.",
"advanced-search": "بحث متقدم",
"in": "في",
"titles": "العناوين",
"titles-posts": "العناوين والمشاركات",
"posted-by": "مشاركة من طرف",
"in-categories": "في الفئات",
"search-child-categories": "بحث في الفئات الفرعية",
"reply-count": "عدد المشاركات",
"at-least": "على اﻷقل",
"at-most": "على اﻷكثر",
"post-time": "تاريخ المشاركة",
"newer-than": "أحدث من",
"older-than": "أقدم من",
"any-date": "أي وقت",
"yesterday": "أمس",
"one-week": "أسبوع",
"two-weeks": "أسبوعان",
"one-month": "شهر",
"three-months": "ثلاثة أشهر",
"six-months": "ستة أشهر",
"one-year": "عام",
"sort-by": "عرض حسب",
"last-reply-time": "تاريخ آخر رد",
"topic-title": "عنوان الموضوع",
"number-of-replies": "عدد الردود",
"number-of-views": "عدد المشاهدات",
"topic-start-date": "تاريخ بدأ الموضوع",
"username": "اسم المستخدم",
"category": "فئة",
"descending": "في ترتيب تنازلي",
"ascending": "في ترتيب تصاعدي",
"save-preferences": "حفظ التفضيلات",
"clear-preferences": "ازالة التفضيلات",
"search-preferences-saved": "تم حفظ تفضيلات البحث",
"search-preferences-cleared": "تم ازالة تفضيلات البحث",
"show-results-as": "عرض النتائج كـ"
}

View File

@@ -1,7 +1,7 @@
{
"no_tag_topics": "لاوجود لمواضيع تحمل هذا الوسم.",
"tags": "بطاقات",
"enter_tags_here": "أدخل البطاقات هنا. اضغط ENTER بعد كل بطاقة.",
"enter_tags_here_short": "أدخل البطاقات...",
"no_tags": "لاتوجد هناك بطاقات بعد."
"no_tag_topics": "لا يوجد مواضيع بهذه الكلمة الدلالية.",
"tags": "الكلمات الدلالية",
"enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "أدخل الكلمات الدلالية...",
"no_tags": "لا يوجد كلمات دلالية بعد."
}

View File

@@ -5,6 +5,7 @@
"no_topics_found": "لا توجد مواضيع !",
"no_posts_found": "لا توجد مشاركات!",
"post_is_deleted": "هذه المشاركة محذوفة!",
"topic_is_deleted": "هذا الموضوع محذوف",
"profile": "الملف الشخصي",
"posted_by": "كتب من طرف %1",
"posted_by_guest": "كتب من طرف زائر",
@@ -12,20 +13,21 @@
"notify_me": "تلق تنبيهات بالردود الجديدة في هذا الموضوع",
"quote": "اقتبس",
"reply": "رد",
"guest-login-reply": "يجب عليك تسجيل الدخول للرد",
"edit": "تعديل",
"delete": "حذف",
"purge": "تطهير",
"restore": "استعادة",
"move": "انقل",
"move": "نقل",
"fork": "فرع",
"link": "رابط",
"share": "نشر",
"tools": "أدوات",
"flag": "اشعار بمشاركة مخلة",
"flag": "تبليغ",
"locked": "مقفل",
"bookmark_instructions": "انقر هنا للإكمال أو أغلق للإلغاء.",
"bookmark_instructions": "إضغط هنا للعودة إلى آخر موضع أو غلق للإلغاء",
"flag_title": "إشعار بمشاركة مخلة.",
"flag_confirm": "هل تريد حقًّا أن تشعر بهذه المشاركة على أنها مخلة؟",
"flag_confirm": "هل تريد حقًّا التبليغ بهذه المشاركة؟",
"flag_success": "تم الإشعار بهذه المشاركة على أنها مخلة",
"deleted_message": "هذه المشاركة محذوفة. فقط من لهم صلاحية الإشراف على ا لمشاركات يمكنهم معاينتها.",
"following_topic.message": "ستستلم تنبيها عند كل مشاركة جديدة في هذا الموضوع.",
@@ -74,6 +76,7 @@
"fork_no_pids": "لم تختر أي مشاركة",
"fork_success": "تم إنشاء فرع للموضوع بنجاح! إضغط هنا لمعاينة الفرع.",
"composer.title_placeholder": "أدخل عنوان موضوعك هنا...",
"composer.handle_placeholder": "اﻹسم",
"composer.discard": "نبذ التغييرات",
"composer.submit": "حفظ",
"composer.replying_to": "الرد على %1",
@@ -92,5 +95,6 @@
"sort_by": "ترتيب حسب",
"oldest_to_newest": "من الأقدم إلى الأحدث",
"newest_to_oldest": "من الأحدث إلى الأقدم",
"most_votes": "الأكثر تصويتًا"
"most_votes": "الأكثر تصويتًا",
"most_posts": "اﻷكثر رداً"
}

View File

@@ -3,7 +3,8 @@
"no_unread_topics": "ليس هناك أي موضوع غير مقروء",
"load_more": "حمل المزيد",
"mark_as_read": "حدد غير مقروء",
"selected": "المختارة",
"selected": "المحددة",
"all": "الكل",
"all_categories": "كل الفئات",
"topics_marked_as_read.success": "تم تحديد المواضيع على أنها مقروءة!"
}

View File

@@ -1,11 +1,17 @@
{
"banned": "محظور",
"offline": "ليس موجود حالياً",
"offline": "غير متصل",
"username": "إسم المستخدم",
"joindate": "تاريخ الإنضمام",
"postcount": "عدد المشاركات",
"email": "البريد الإلكتروني",
"confirm_email": "تأكيد عنوان البريد الإلكتروني",
"ban_account": "Ban Account",
"ban_account_confirm": "هل تريد حقاً حظر هاذا العضو؟",
"unban_account": "Unban Account",
"delete_account": "حذف الحساب",
"delete_account_confirm": "هل أن متأكد أنك تريد حذف حسابك؟<br /><strong> هذه العملية غير قابلة للإلغاء ولن يكون بالإمكان استعادة بياناتك</strong><br /><br />أدخل اسم المستخدم الخاص بك لتأكيد عملية الحذف",
"delete_this_account_confirm": "Are you sure you want to delete this account? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
"fullname": "الاسم الكامل",
"website": "الموقع الإلكتروني",
"location": "الموقع",
@@ -13,23 +19,26 @@
"joined": "تاريخ التسجيل",
"lastonline": "تاريخ آخر دخول",
"profile": "الملف الشخصي",
"profile_views": "عدد مشاهدات الملف الشخصي",
"profile_views": "عدد المشاهدات",
"reputation": "السمعة",
"favourites": "المفضلات",
"favourites": "التفضيلات",
"watched": "متابع",
"followers": "المتابعون",
"following": "يتابع",
"aboutme": "معلومة عنك او السيرة الذاتية",
"signature": "توقيع",
"gravatar": "Gravatar",
"birthday": "عيد ميلاد",
"chat": "محادثة",
"follow": "تابع",
"unfollow": "إلغاء المتابعة",
"more": "المزيد",
"profile_update_success": "تم تحديث الملف الشخصي بنجاح",
"change_picture": "تغيير الصورة",
"edit": "تعديل",
"uploaded_picture": "الصورة المرفوعة",
"upload_new_picture": "رفع صورة جديدة",
"upload_new_picture_from_url": "رفع صورة جديدة بواسطة رابط",
"upload_new_picture_from_url": "رفع صورة جديدة من رابط",
"current_password": "كلمة السر الحالية",
"change_password": "تغيير كلمة السر",
"change_password_error": "كلمة سر غير صحيحة",
@@ -44,7 +53,6 @@
"upload_picture": "ارفع الصورة",
"upload_a_picture": "رفع صورة",
"image_spec": "لايمكنك رفع إلا الصور ذات الصيغ PNG أو JPG أو GIF.",
"max": "الحد الأقصى",
"settings": "خيارات",
"show_email": "أظهر بريدي الإلكتروني",
"show_fullname": "أظهر اسمي الكامل",
@@ -56,20 +64,25 @@
"digest_weekly": "أسبوعيًّا",
"digest_monthly": "شهريًّا",
"send_chat_notifications": "استلام رسالة إلكترونية عند ورود محادثة وأنا غير متصل.",
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
"settings-require-reload": "تغيير بعض اﻹعدادات يتطلب تحديث الصفحة. إضغط هنا لتحديث الصفحة",
"has_no_follower": "هذا المستخدم ليس لديه أي متابع :(",
"follows_no_one": "هذا المستخدم لا يتابع أحد :(",
"has_no_posts": "هذا المستخدم لم يكتب أي شيء بعد.",
"has_no_topics": "هذا المستخدم لم ينشئ أي موضوع بعد.",
"has_no_posts": "This user hasn't posted anything yet.",
"has_no_topics": "This user hasn't posted any topics yet.",
"has_no_watched_topics": "This user hasn't watched any topics yet.",
"email_hidden": "البريد الإلكتروني مخفي",
"hidden": "مخفي",
"paginate_description": "عرض المواضيع والردود موزعة على صفحات عوض صفحة واحدة.",
"paginate_description": "Paginate topics and posts instead of using infinite scroll",
"topics_per_page": "المواضيع في كل صفحة",
"posts_per_page": "الردود في كل صفحة",
"notification_sounds": "تشغيل ملف صوتي عند استلام التنبيهات.",
"notification_sounds": "تشغيل صوت عند تلقي تنبيه",
"browsing": "خيارات التصفح",
"open_links_in_new_tab": "فتح الروابط الخارجية في تبويب جديد؟",
"open_links_in_new_tab": "فتح الروابط الخارجية في نافدة جديدة",
"enable_topic_searching": "تفعيل خاصية البحث داخل المواضيع",
"topic_search_help": "في حالة تفعيلها، ستعوض خاصيةُ البحث داخل المواضيع خاصيةَ البحث الخاصة بالمتصفح، فتمكنك بالتالي بالبحث في الموضوع بأكمله دون الاقتصار على مايظهر في الشاشة فحسب.",
"follow_topics_you_reply_to": "متابعة المشاركات التي ترد عليها",
"follow_topics_you_create": "متابعة المشاركات التي تكتبها"
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen",
"follow_topics_you_reply_to": "متابعة المواضيع التي تقوم بالرد فيها",
"follow_topics_you_create": "متابعة المواضيع التي تنشئها",
"grouptitle": "حدد عنوان المجموعة الذي تريد عرضه",
"no-group-title": "لا يوجد عنوان للمجموعة"
}

View File

@@ -1,9 +1,21 @@
{
"latest_users": "أحدث المستخدمين",
"top_posters": "أكثر المشتركين",
"latest_users": "أحدث الأعضاء",
"top_posters": "اﻷكثر مشاركة",
"most_reputation": "أعلى سمعة",
"search": "بحث",
"enter_username": "أدخل اسم مستخدم للبحث",
"load_more": "حمل المزيد",
"users-found-search-took": "تم إيجاد %1 مستخدمـ(ين)! استغرق البحث %2 ميليثانية."
"users-found-search-took": "تم إيجاد %1 مستخدمـ(ين)! استغرق البحث %2 ثانية.",
"filter-by": "Filter By",
"online-only": "المتصلون فقط",
"picture-only": "صورة فقط",
"invite": "Invite",
"invitation-email-sent": "An invitation email has been sent to %1",
"user_list": "قائمة اﻷعضاء",
"recent_topics": "أحدث المواضيع",
"popular_topics": "Popular Topics",
"unread_topics": "المواضيع الغير مقروءة",
"categories": "الفئات",
"tags": "الكلمات الدلالية",
"map": "Map"
}

View File

@@ -0,0 +1,15 @@
{
"category": "Категория",
"subcategories": "Подкатегории",
"new_topic_button": "Нова тема",
"guest-login-post": "Влезте, за да можете да публикувате",
"no_topics": "<strong>Все още няма теми в тази категория.</strong><br />Защо не създадеш една?",
"browsing": "Разглежда",
"no_replies": "Все още никой не е отговорил",
"no_new_posts": "Няма нови публикации.",
"share_this_category": "Споделяне на тази категория",
"watch": "Следене",
"ignore": "Игнориране",
"watch.message": "Вече следите обновленията в тази категория",
"ignore.message": "Вече не следите обновленията в тази категория"
}

View File

@@ -0,0 +1,32 @@
{
"password-reset-requested": "Изпратена е заявка за подновяване на паролата %1!",
"welcome-to": "Добре дошли в %1",
"invite": "Покана от %1",
"greeting_no_name": "Здравейте",
"greeting_with_name": "Здравейте, %1",
"welcome.text1": "Благодарим Ви, че се регистрирахте с %1",
"welcome.text2": "За да активирате напълно Вашия акаунт, трябва да потвърдите е-пощата, с която сте се регистрирали.",
"welcome.text3": "Вашата заявка за регистрация беше приета от администратор. Вече можете да се впишете с Вашето потребителско име и парола.",
"welcome.cta": "Натиснете тук, за да потвърдите Вашата е-поща.",
"invitation.text1": "%1 Ви покани да се присъедините към %2",
"invitation.ctr": "Натиснете тук, за да си създадете акаунт.",
"reset.text1": "Получихме заявка за подновяване на Вашата парола, най-вероятно защото сте я забравили. Ако това не е така, моля не обръщайте внимание на това е-писмо.",
"reset.text2": "За да продължите с процедурата по подновяване на паролата, моля последвайте следната връзка:",
"reset.cta": "Натиснете тук, за да подновите паролата си",
"reset.notify.subject": "Паролата беше променена успешно",
"reset.notify.text1": "Известяваме Ви, че на %1, Вашата парола беше променена успешно.",
"reset.notify.text2": "Ако не сте поискали това, моля, свържете се незабавно с администратор.",
"digest.notifications": "Имате непрочетени известия от %1:",
"digest.latest_topics": "Последни теми от %1",
"digest.cta": "Натиснете тук, за да посетите %1",
"digest.unsub.info": "Това резюме беше изпратено до Вас поради настройките Ви за абонаментите.",
"digest.no_topics": "Не е имало дейност по темите в последните %1",
"notif.chat.subject": "Получено е ново чат съобщение от %1",
"notif.chat.cta": "Натиснете тук, за да продължите разговора",
"notif.chat.unsub.info": "Това известие за чата беше изпратено до Вас поради настройките Ви за абонаментите.",
"notif.post.cta": "Натиснете тук, за да прочетете цялата тема",
"notif.post.unsub.info": "Това известие за публикация беше изпратено до Вас поради настройките Ви за абонаментите.",
"test.text1": "Това е пробно е-писмо, за да потвърдим, че изпращачът на е-поща е правилно настроен за Вашия NodeBB.",
"unsub.cta": "Натиснете тук, за да промените тези настройки",
"closing": "Благодарим Ви!"
}

View File

@@ -0,0 +1,90 @@
{
"invalid-data": "Невалидни данни",
"not-logged-in": "Изглежда не сте влезли в системата.",
"account-locked": "Вашият акаунт беше заключен временно",
"search-requires-login": "Търсенето изисква акаунт моля, влезте или се регистрирайте.",
"invalid-cid": "Невалиден идентификатор на категория",
"invalid-tid": "Невалиден идентификатор на тема",
"invalid-pid": "Невалиден идентификатор на публикация",
"invalid-uid": "Невалиден идентификатор на потребител",
"invalid-username": "Невалидно потребителско име",
"invalid-email": "Невалидна е-поща",
"invalid-title": "Невалидно заглавие!",
"invalid-user-data": "Невалидни потребителски данни",
"invalid-password": "Невалидна парола",
"invalid-username-or-password": "Моля, посочете потребителско име и парола",
"invalid-search-term": "Невалиден текст за търсене",
"invalid-pagination-value": "Невалиден номер на страница",
"username-taken": "Потребителското име е заето",
"email-taken": "Е-пощата е заета",
"email-not-confirmed": "Вашата е-поща все още не е потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
"email-not-confirmed-chat": "Няма да можете да пишете в чата, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
"no-email-to-confirm": "Този форум изисква потвърдена е-поща. Моля, натиснете тук, за да въведете е-поща",
"email-confirm-failed": "Не успяхме да потвърдим е-пощата Ви. Моля, опитайте отново по-късно.",
"confirm-email-already-sent": "Е-писмото за потвърждение вече е изпратено. Моля, почакайте още %1 минута/и, преди да изпратите ново.",
"username-too-short": "Потребителското име е твърде кратко",
"username-too-long": "Потребителското име е твърде дълго",
"user-banned": "Потребителят е блокиран",
"user-too-new": "Съжаляваме, но трябва да изчакате поне %1 секунда/и, преди да направите първата си публикация",
"no-category": "Категорията не съществува",
"no-topic": "Темата не съществува",
"no-post": "Публикацията не съществува",
"no-group": "Групата не съществува",
"no-user": "Потребителят не съществува",
"no-teaser": "Резюмето не съществува",
"no-privileges": "Нямате достатъчно права за това действие.",
"no-emailers-configured": "Добавките за е-поща не са заредени, така че не може да бъде изпратено пробно е-писмо",
"category-disabled": "Категорията е изключена",
"topic-locked": "Темата е заключена",
"post-edit-duration-expired": "Можете да редактирате публикациите си до %1 секунда/и, след като ги пуснете",
"still-uploading": "Моля, изчакайте качването да приключи.",
"content-too-short": "Моля, въведете по-дълъг текст на публикацията. Публикациите трябва да съдържат поне %1 символ(а).",
"content-too-long": "Моля, въведете по-кратък текст на публикацията. Публикациите трябва да съдържат не повече от %1 символ(а).",
"title-too-short": "Моля, въведете по-дълго заглавие. Заглавията трябва да съдържат поне %1 символ(а).",
"title-too-long": "Моля, въведете по-кратко заглавие. Заглавията трябва да съдържат не повече от %1 символ(а).",
"too-many-posts": "Можете да публикувате веднъж на %1 секунда/и моля, изчакайте малко, преди да опитате да публикувате отново",
"too-many-posts-newbie": "Като нов потребител, Вие можете да публикувате веднъж на %1 секунда/и, докато не натрупате %2 репутация моля, изчакайте малко, преди да опитате да публикувате отново",
"tag-too-short": "Моля, въведете по-дълъг етикет. Етикетите трябва да съдържат поне %1 символ(а)",
"tag-too-long": "Моля, въведете по-кратък етикет. Етикетите трябва да съдържат не повече от %1 символ(а)",
"not-enough-tags": "Недостатъчно етикети. Темите трябва да имат поне %1 етикет(а)",
"too-many-tags": "Твърде много етикети. Темите не могат да имат повече от %1 етикет(а)",
"file-too-big": "Максималният разрешен размер на файл е %1 КБ моля, качете по-малък файл",
"cant-vote-self-post": "Не можете да гласувате за собствената си публикация",
"already-favourited": "Вече сте отбелязали тази публикация като любима",
"already-unfavourited": "Вече сте премахнали тази публикация от любимите си",
"cant-ban-other-admins": "Не можете да блокирате другите администратори!",
"cant-remove-last-admin": "Вие сте единственият администратор. Добавете друг потребител като администратор, преди да премахнете себе си като администратор",
"invalid-image-type": "Грешен тип на изображение. Позволените типове са: %1",
"invalid-image-extension": "Грешно разширение на изображението",
"invalid-file-type": "Грешен тип на файл. Позволените типове са: %1",
"group-name-too-short": "Името на групата е твърде кратко",
"group-already-exists": "Вече съществува такава група",
"group-name-change-not-allowed": "Промяната на името на групата не е разрешено",
"group-already-member": "Вече сте част от тази група",
"group-needs-owner": "Тази група се нуждае от поне един собственик",
"group-already-invited": "Този потребител вече е бил поканен",
"group-already-requested": "Вашата заявка за членство вече е била изпратена",
"post-already-deleted": "Тази публикация вече е изтрита",
"post-already-restored": "Тази публикация вече е възстановена",
"topic-already-deleted": "Тази тема вече е изтрита",
"topic-already-restored": "Тази тема вече е възстановена",
"cant-purge-main-post": "Не можете да изчистите първоначалната публикация. Моля, вместо това изтрийте темата.",
"topic-thumbnails-are-disabled": "Иконките на темите са изключени.",
"invalid-file": "Грешен файл",
"uploads-are-disabled": "Качването не е разрешено",
"signature-too-long": "Съжаляваме, но подписът Ви трябва да съдържа не повече от %1 символ(а).",
"about-me-too-long": "Съжаляваме, но информацията за Вас трябва да съдържа не повече от %1 символ(а).",
"cant-chat-with-yourself": "Не можете да пишете чат съобщение на себе си!",
"chat-restricted": "Този потребител е ограничил чат съобщенията до себе си. Той трябва първо да Ви последва, преди да можете да си пишете с него.",
"too-many-messages": "Изпратили сте твърде много съобщения. Моля, изчакайте малко.",
"reputation-system-disabled": "Системата за репутация е изключена.",
"downvoting-disabled": "Отрицателното гласуване е изключено",
"not-enough-reputation-to-downvote": "Нямате достатъчно репутация, за да гласувате отрицателно за тази публикация",
"not-enough-reputation-to-flag": "Нямате достатъчно репутация, за да докладвате тази публикация",
"already-flagged": "Вече сте докладвали тази публикация",
"reload-failed": "NodeBB срещна проблем при презареждането: „%1“. NodeBB ще продължи да поддържа съществуващите клиентски ресурси, но Вие трябва да отмените последните си действия преди презареждането.",
"registration-error": "Грешка при регистрацията",
"parse-error": "Нещо се обърка при прочитането на отговора на сървъра",
"wrong-login-type-email": "Моля, използвайте е-пощата си, за да влезете",
"wrong-login-type-username": "Моля, използвайте потребителското си име, за да влезете"
}

View File

@@ -0,0 +1,83 @@
{
"home": "Начало",
"search": "Търсене",
"buttons.close": "Затваряне",
"403.title": "Достъпът е отказан",
"403.message": "Изглежда сте посетили страница, до която нямате достъп.",
"403.login": "Може би трябва да <a href='%1/login'>опитате да влезете</a>?",
"404.title": "Не е открита",
"404.message": "Изглежда сте се опитали да посетите страница, която не съществува. Върнете се към <a href='%1/'>началната страница</a>.",
"500.title": "Вътрешна грешка.",
"500.message": "Опа! Изглежда нещо се обърка!",
"register": "Регистрация",
"login": "Вход",
"please_log_in": "Моля, влезте",
"logout": "Изход",
"posting_restriction_info": "Публикуването в момента е позволено само за регистрираните потребители. Натиснете тук, за да влезете.",
"welcome_back": "Добре дошли отново",
"you_have_successfully_logged_in": "Вие влязохте успешно",
"save_changes": "Запазване на промените",
"close": "Затваряне",
"pagination": "Страници",
"pagination.out_of": "%1 от %2",
"pagination.enter_index": "Въведете номер",
"header.admin": "Администратор",
"header.categories": "Категории",
"header.recent": "Скорошни",
"header.unread": "Непрочетени",
"header.tags": "Етикети",
"header.popular": "Популярни",
"header.users": "Потребители",
"header.groups": "Групи",
"header.chats": "Чатове",
"header.notifications": "Известия",
"header.search": "Търсене",
"header.profile": "Профил",
"notifications.loading": "Зареждане на известията",
"chats.loading": "Зареждане на чатовете",
"motd.welcome": "Добре дошли в NodeBB, системата за дискусии на бъдещето.",
"previouspage": "Предишна страница",
"nextpage": "Следваща страница",
"alert.success": "Готово",
"alert.error": "Грешка",
"alert.banned": "Блокиран",
"alert.banned.message": "Вие току-що бяхте блокиран. Сега ще излезете от системата.",
"alert.unfollow": "Вие вече не следвате %1!",
"alert.follow": "Вие следвате %1!",
"online": "На линия",
"users": "Потребители",
"topics": "Теми",
"posts": "Публ.",
"views": "Прегл.",
"reputation": "Репутация",
"read_more": "още",
"more": "Още",
"posted_ago_by_guest": "публикувано %1 от гост",
"posted_ago_by": "публикувано %1 от %2",
"posted_ago": "публикувано %1",
"posted_in_ago_by_guest": "публикувано в %1 %2 от гост",
"posted_in_ago_by": "публикувано в %1 %2 от %3",
"posted_in_ago": "публикувано в %1 %2",
"replied_ago": "отговори %1",
"user_posted_ago": "%1 публикува %2",
"guest_posted_ago": "гост публикува %1",
"last_edited_by_ago": "последно редактирано от %1 %2",
"norecentposts": "Няма скорошни публикации",
"norecenttopics": "Няма скорошни теми",
"recentposts": "Скорошни публикации",
"recentips": "Наскоро ползвани IP адреси",
"away": "Отсъстващ",
"dnd": "Отпочиващ",
"invisible": "Невидим",
"offline": "Извън линия",
"email": "Е-поща",
"language": "Език",
"guest": "Гост",
"guests": "Гости",
"updated.title": "Форумът е актуализиран",
"updated.message": "Този форум току-що беше актуализиран до най-новата версия. Натиснете тук, за да опресните страницата.",
"privacy": "Поверителност",
"follow": "Следване",
"unfollow": "Прекратяване на следването",
"delete_all": "Изтриване на всичко"
}

View File

@@ -0,0 +1,50 @@
{
"groups": "Групи",
"view_group": "Преглед на групата",
"owner": "Собственик на групата",
"new_group": "Създаване на нова група",
"no_groups_found": "Няма групи",
"pending.accept": "Приемане",
"pending.reject": "Отхвърляне",
"pending.accept_all": "Приемане на всички",
"pending.reject_all": "Отхвърляне на всички",
"pending.none": "В момента няма чакащи членове",
"invited.none": "В момента няма поканени членове",
"invited.uninvite": "Отмяна на поканата",
"invited.search": "Потърсете потребител, когото да поканите в тази група",
"cover-instructions": "Плъзнете снимка, наместете я в предпочитаната позиция и натистнете <strong>Запазване</strong>",
"cover-change": "Промяна",
"cover-save": "Запазване",
"cover-saving": "Запазване",
"details.title": "Подробности за групата",
"details.members": "Списък на членовете",
"details.pending": "Кандидатстващи членове",
"details.invited": "Поканени членове",
"details.has_no_posts": "Членовете на тази група не са публикували нищо.",
"details.latest_posts": "Скорошни публикации",
"details.private": "Частна",
"details.grant": "Даване/отнемане на собственост",
"details.kick": "Изгонване",
"details.owner_options": "Администрация на групата",
"details.group_name": "Име на групата",
"details.member_count": "Брой на членовете",
"details.creation_date": "Дата на създаване",
"details.description": "Описание",
"details.badge_preview": "Преглед на емблемата",
"details.change_icon": "Промяна на иконката",
"details.change_colour": "Промяна на цвета",
"details.badge_text": "Текст на емблемата",
"details.userTitleEnabled": "Показване на емблемата",
"details.private_help": "Ако е включено, присъединяването към група изисква одобрението на собственика ѝ",
"details.hidden": "Скрита",
"details.hidden_help": "Ако е включено, тази група няма да бъде извеждана в списъка от групи и потребителите ще трябва да бъдат поканени лично",
"details.delete_group": "Изтриване на групата",
"event.updated": "Подробностите за групата бяха обновени",
"event.deleted": "Групата „%1“ беше изтрита",
"membership.accept-invitation": "Приемане на поканата",
"membership.invitation-pending": "Чакаща покана",
"membership.join-group": "Присъединяване към групата",
"membership.leave-group": "Напускане на групата",
"membership.reject": "Отхвърляне",
"new-group.group_name": "Име на групата:"
}

View File

@@ -0,0 +1,5 @@
{
"name": "Български",
"code": "bg",
"dir": "ltr"
}

View File

@@ -0,0 +1,11 @@
{
"username-email": "Потребителско име / е-поща",
"username": "Потребителско име",
"email": "Е-поща",
"remember_me": "Запомнете ме?",
"forgot_password": "Забравена парола?",
"alternative_logins": "Други начини за влизане",
"failed_login_attempt": "Неуспешно влизане. Моля, опитайте отново.",
"login_successful": "Вие влязохте успешно!",
"dont_have_account": "Нямате акаунт?"
}

View File

@@ -0,0 +1,26 @@
{
"chat.chatting_with": "Чат с <span id=\"chat-with-name\"></span>",
"chat.placeholder": "Въведете чат съобщението тук и натиснете Ентер за изпращане",
"chat.send": "Изпращане",
"chat.no_active": "Нямате текущи чатове.",
"chat.user_typing": "%1 пише...",
"chat.user_has_messaged_you": "%1 Ви написа съобщение.",
"chat.see_all": "Вижте всички чатове",
"chat.no-messages": "Моля, изберете получател, за да видите историята на чат съобщенията",
"chat.recent-chats": "Скорошни чатове",
"chat.contacts": "Контакти",
"chat.message-history": "История на съобщенията",
"chat.pop-out": "Отделяне на чата в прозорец",
"chat.maximize": "Уголемяване",
"chat.seven_days": "7 дни",
"chat.thirty_days": "30 дни",
"chat.three_months": "3 месеца",
"composer.compose": "Писане",
"composer.show_preview": "Показване на прегледа",
"composer.hide_preview": "Скриване на прегледа",
"composer.user_said_in": "%1 каза в %2:",
"composer.user_said": "%1 каза:",
"composer.discard": "Сигурни ли сте, че искате да отхвърлите тази публикация?",
"composer.submit_and_lock": "Публикуване и заключване",
"composer.toggle_dropdown": "Превключване на падащото меню"
}

View File

@@ -0,0 +1,28 @@
{
"title": "Известия",
"no_notifs": "Нямате нови известия",
"see_all": "Вижте всички известия",
"mark_all_read": "Отбелязване на всички известия като прочетени",
"back_to_home": "Назад към %1",
"outgoing_link": "Външна връзка",
"outgoing_link_message": "Вие напускате %1.",
"continue_to": "Продължаване към %1",
"return_to": "Връщане към %1",
"new_notification": "Ново известие",
"you_have_unread_notifications": "Имате непрочетени известия",
"new_message_from": "Ново съобщение от <strong>%1</strong>",
"upvoted_your_post_in": "<strong>%1</strong> гласува положително за Ваша публикация в <strong>%2</strong>.",
"moved_your_post": "<strong>%1</strong> премести Ваша публикация.",
"moved_your_topic": "<strong>%1</strong> премести Ваша тема.",
"favourited_your_post_in": "<strong>%1</strong> отбеляза Ваша публикация в <strong>%2</strong> като любима.",
"user_flagged_post_in": "<strong>%1</strong> докладва Ваша публикация в <strong>%2</strong>",
"user_posted_to": "<strong>%1</strong> публикува отговор на: <strong>%2</strong>",
"user_posted_topic": "<strong>%1</strong> публикува нова тема: <strong>%2</strong>",
"user_mentioned_you_in": "<strong>%1</strong> Ви спомена в <strong>%2</strong>",
"user_started_following_you": "<strong>%1</strong> започна да Ви следва.",
"new_register": "<strong>%1</strong> изпрати заявка за регистрация.",
"email-confirmed": "Е-пощата беше потвърдена",
"email-confirmed-message": "Благодарим Ви, че потвърдихте е-пощата си. Акаунтът Ви е вече напълно активиран.",
"email-confirm-error-message": "Възникна проблем при потвърждаването на е-пощата Ви. Може кодът да е грешен или давността му да е изтекла.",
"email-confirm-sent": "Изпратено е е-писмо за потвърждение."
}

View File

@@ -0,0 +1,21 @@
{
"home": "Начало",
"unread": "Непрочетени теми",
"popular": "Популярни теми",
"recent": "Скорошни теми",
"users": "Регистрирани потребители",
"notifications": "Известия",
"tags": "Етикети",
"tag": "Теми, отбелязани като „%1“",
"user.edit": "Редактиране на „%1“",
"user.following": "Хора, които %1 следва",
"user.followers": "Хора, които следват %1",
"user.posts": "Публикации от %1",
"user.topics": "Теми, създадени от %1",
"user.groups": "Групите на %1",
"user.favourites": "Любимите публикации на %1",
"user.settings": "Настройки на потребителя",
"user.watched": "Теми, следени от %1",
"maintenance.text": "%1 в момента е в профилактика. Моля, върнете се по-късно.",
"maintenance.messageIntro": "В допълнение, администраторът е оставил това съобщение:"
}

View File

@@ -0,0 +1,19 @@
{
"title": "Скорошни",
"day": "Ден",
"week": "Седмица",
"month": "Месец",
"year": "Година",
"alltime": "Цялото време",
"no_recent_topics": "Няма скорошни теми.",
"no_popular_topics": "Няма популярни теми.",
"there-is-a-new-topic": "Има нова тема.",
"there-is-a-new-topic-and-a-new-post": "Има нова тема и нова публикация.",
"there-is-a-new-topic-and-new-posts": "Има нова тема и %1 нови публикации.",
"there-are-new-topics": "Има %1 нови теми.",
"there-are-new-topics-and-a-new-post": "Има %1 нови теми и нова публикация.",
"there-are-new-topics-and-new-posts": "Има %1 нови теми и %2 нови публикации.",
"there-is-a-new-post": "Има нова публикация",
"there-are-new-posts": "Има %1 нови публикации.",
"click-here-to-reload": "Натиснете тук, за да презаредите."
}

View File

@@ -0,0 +1,19 @@
{
"register": "Регистрация",
"help.email": "По подразбиране, Вашата е-поща ще бъде скрита за останалите.",
"help.username_restrictions": "Уникално потребителско име с дължина между %1 и %2 символа. Другите ще могат да Ви споменават чрез @<span id='yourUsername'>потребител</span>.",
"help.minimum_password_length": "Дължината на паролата Ви трябва да е поне %1 символа.",
"email_address": "Е-поща",
"email_address_placeholder": "Въведете адрес на е-поща",
"username": "Потребителско име",
"username_placeholder": "Въведете потребителско име",
"password": "Парола",
"password_placeholder": "Въведете парола",
"confirm_password": "Потвърдете паролата",
"confirm_password_placeholder": "Потвърдете паролата",
"register_now_button": "Регистриране",
"alternative_registration": "Друг начин за регистриране",
"terms_of_use": "Условия за ползване",
"agree_to_terms_of_use": "Съгласен съм с условията за ползване",
"registration-added-to-queue": "Вашата регистрация беше добавена в опашката за одобрение. Ще получите е-писмо, когато тя бъде одобрена от администратор."
}

View File

@@ -0,0 +1,17 @@
{
"reset_password": "Подновяване на паролата",
"update_password": "Обновяване на паролата",
"password_changed.title": "Паролата беше променена",
"password_changed.message": "<p>Паролата беше подновена. Моля, <a href=\"/login\">влезте отново</a>.",
"wrong_reset_code.title": "Грешен код за подновяване",
"wrong_reset_code.message": "Полученият код за подновяване беше грешен. Моля, опитайте отново или <a href=\"/reset\">поискайте нов код за подновяване</a>.",
"new_password": "Нова парола",
"repeat_password": "Потвърдете паролата",
"enter_email": "Моля, въведете Вашата <strong>е-поща</strong> и ние ще Ви изпратим е-писмо с инструкции за това как да достъпите акаунта си.",
"enter_email_address": "Въведете адрес на е-поща",
"password_reset_sent": "Информацията за подновяване на паролата беше изпратена",
"invalid_email": "Грешна е-поща / е-пощата не съществува!",
"password_too_short": "Паролата е твърде кратка. Моля, изберете друга парола.",
"passwords_do_not_match": "Двете пароли, които въведохте, са различни.",
"password_expired": "Паролата Ви е с изтекла давност. Моля, изберете нова парола"
}

View File

@@ -0,0 +1,40 @@
{
"results_matching": "%1 резултат(а), отговарящи на „%2“, (%3 секунди)",
"no-matches": "Няма съвпадения",
"advanced-search": "Разширено търсене",
"in": "В",
"titles": "Заглавия",
"titles-posts": "Заглавия и публикации",
"posted-by": "Публикувано от",
"in-categories": "В категории",
"search-child-categories": "Претърсване на подкатегориите",
"reply-count": "Брой на отговорите",
"at-least": "Поне",
"at-most": "Най-много",
"post-time": "Време на публикуване",
"newer-than": "По-нови от",
"older-than": "По-стари от",
"any-date": "Която и да е дата",
"yesterday": "Вчера",
"one-week": "Една седмица",
"two-weeks": "Две седмици",
"one-month": "Един месец",
"three-months": "Три месеца",
"six-months": "Шест месеца",
"one-year": "Една година",
"sort-by": "Подреждане по",
"last-reply-time": "Време на последния отговор",
"topic-title": "Заглавие на темата",
"number-of-replies": "Брой на отговорите",
"number-of-views": "Брой на преглежданията",
"topic-start-date": "Начална дата на темата",
"username": "Потребителско име",
"category": "Категория",
"descending": "В низходящ ред",
"ascending": "Във възходящ ред",
"save-preferences": "Запазване на предпочитанията",
"clear-preferences": "Изчистване на предпочитанията",
"search-preferences-saved": "Предпочитанията за търсене бяха запазени",
"search-preferences-cleared": "Предпочитанията за търсене бяха изчистени",
"show-results-as": "Показване на резултатите като"
}

View File

@@ -0,0 +1,6 @@
{
"success": "Готово",
"topic-post": "Вие публикувахте успешно.",
"authentication-successful": "Успешно удостоверяване",
"settings-saved": "Настройките са записани!"
}

View File

@@ -0,0 +1,7 @@
{
"no_tag_topics": "Няма теми с този етикет.",
"tags": "Етикети",
"enter_tags_here": "Въведете етикетите тук, всеки може да е с дължина между %1 и %2 символа.",
"enter_tags_here_short": "Въведете етикети...",
"no_tags": "Все още няма етикети."
}

View File

@@ -0,0 +1,100 @@
{
"topic": "Тема",
"topic_id": "Идентификатора на темата",
"topic_id_placeholder": "Въведете идентификатор на темата",
"no_topics_found": "Няма открити теми!",
"no_posts_found": "Няма открити публикации!",
"post_is_deleted": "Тази публикация е изтрита!",
"topic_is_deleted": "Тази тема е изтрита!",
"profile": "Профил",
"posted_by": "Публикувано от %1",
"posted_by_guest": "Публикувано от гост",
"chat": "Чат",
"notify_me": "Получавайте известия за новите отговори в тази тема",
"quote": "Цитат",
"reply": "Отговор",
"guest-login-reply": "Влезте, за да отговорите",
"edit": "Редактиране",
"delete": "Изтриване",
"purge": "Изчистване",
"restore": "Възстановяване",
"move": "Преместване",
"fork": "Разделяне",
"link": "Връзка",
"share": "Споделяне",
"tools": "Инструменти",
"flag": "Докладване",
"locked": "Заключена",
"bookmark_instructions": "Натиснете, за да се върнете на последната си позиция или затворете, за да отхвърлите.",
"flag_title": "Докладване на тази публикация до модератор",
"flag_confirm": "Сигурни ли сте, че искате да докладвате тази публикация?",
"flag_success": "Тази публикация е била докладвана до модератор.",
"deleted_message": "Тази тема е била изтрита. Само потребители с права за управление на темите могат да я видят.",
"following_topic.message": "Вече ще получавате известия когато някой публикува коментар в тази тема.",
"not_following_topic.message": "Вече няма да получавате известия за тази тема.",
"login_to_subscribe": "Моля, регистрирайте се или влезте, за да се абонирате за тази тема.",
"markAsUnreadForAll.success": "Темата е отбелязана като непрочетена за всички.",
"watch": "Наблюдаване",
"unwatch": "Спиране на наблюдаването",
"watch.title": "Получавайте известия за новите отговори в тази тема",
"unwatch.title": "Спрете да наблюдавате тази тема",
"share_this_post": "Споделете тази публикация",
"thread_tools.title": "Инструменти за темата",
"thread_tools.markAsUnreadForAll": "Отбелязване като непрочетена",
"thread_tools.pin": "Закачане на темата",
"thread_tools.unpin": "Откачане на темата",
"thread_tools.lock": "Заключване на темата",
"thread_tools.unlock": "Отключване на темата",
"thread_tools.move": "Преместване на темата",
"thread_tools.move_all": "Преместване на всички",
"thread_tools.fork": "Разделяне на темата",
"thread_tools.delete": "Изтриване на темата",
"thread_tools.delete_confirm": "Сигурни ли сте, че искате да изтриете тази тема?",
"thread_tools.restore": "Възстановяване на темата",
"thread_tools.restore_confirm": "Сигурни ли сте, че искате да възстановите тази тема?",
"thread_tools.purge": "Изчистване на темата",
"thread_tools.purge_confirm": "Сигурни ли сте, че искате да изчистите тази тема?",
"topic_move_success": "Темата беше преместена успешно в %1",
"post_delete_confirm": "Сигурни ли сте, че искате да изтриете тази публикация?",
"post_restore_confirm": "Сигурни ли сте, че искате да възстановите тази публикация?",
"post_purge_confirm": "Сигурни ли сте, че искате да изчистите тази публикация?",
"load_categories": "Зареждане на категориите",
"disabled_categories_note": "Изключените категории са засивени",
"confirm_move": "Преместване",
"confirm_fork": "Разделяне",
"favourite": "Любима",
"favourites": "Любими",
"favourites.has_no_favourites": "Нямате любими, отбележете няколко публикации, за да ги видите тук!",
"loading_more_posts": "Зареждане на още публикации",
"move_topic": "Преместване на темата",
"move_topics": "Преместване на темите",
"move_post": "Преместване на публикацията",
"post_moved": "Публикацията беше преместена!",
"fork_topic": "Разделяне на темата",
"topic_will_be_moved_to": "Тази тема ще бъде преместена в категорията",
"fork_topic_instruction": "Натиснете публикациите, които искате да отделите",
"fork_no_pids": "Няма избрани публикации!",
"fork_success": "Темата е разделена успешно! Натиснете тук, за да преминете към отделената тема.",
"composer.title_placeholder": "Въведете заглавието на темата си тук...",
"composer.handle_placeholder": "Име",
"composer.discard": "Отхвърляне",
"composer.submit": "Публикуване",
"composer.replying_to": "Отговор на %1",
"composer.new_topic": "Нова тема",
"composer.uploading": "качване...",
"composer.thumb_url_label": "Поставете адреса на иконка за темата",
"composer.thumb_title": "Добавете иконка към тази тема",
"composer.thumb_url_placeholder": "http://example.com/thumb.png",
"composer.thumb_file_label": "Или качете файл",
"composer.thumb_remove": "Изчистване на полетата",
"composer.drag_and_drop_images": "Плъзнете снимките тук",
"more_users_and_guests": "Още %1 потребител(и) и %2 гост(и)",
"more_users": "Още %1 потребител(и)",
"more_guests": "Още %1 гост(и)",
"users_and_others": "%1 и %2 други",
"sort_by": "Подреждане по",
"oldest_to_newest": "Първо най-старите",
"newest_to_oldest": "Първо най-новите",
"most_votes": "Най-много гласове",
"most_posts": "Най-много публикации"
}

View File

@@ -0,0 +1,10 @@
{
"title": "Непрочетени",
"no_unread_topics": "Няма непрочетени теми.",
"load_more": "Зареждане на още",
"mark_as_read": "Отбелязване като прочетени",
"selected": "Избраните",
"all": "Всички",
"all_categories": "Всички категории",
"topics_marked_as_read.success": "Темите бяха отбелязани като прочетени!"
}

View File

@@ -0,0 +1,88 @@
{
"banned": "Блокиран",
"offline": "Извън линия",
"username": "Потребителско име",
"joindate": "Дата на присъединяване",
"postcount": "Брой публикации",
"email": "Е-поща",
"confirm_email": "Потвърдете е-пощата",
"ban_account": "Блокиране на акаунта",
"ban_account_confirm": "Наистина ли искате да блокирате този потребител?",
"unban_account": "Отблокиране на акаунта",
"delete_account": "Изтриване на акаунта",
"delete_account_confirm": "Сигурни ли сте, че искате да изтриете акаунта си? <br /><strong>Това действие е необратимо и няма да можете да възстановите нищо от данните си</strong><br /><br />Въведете потребителското си име, за да потвърдите, че искате да унищожите този акаунт.",
"delete_this_account_confirm": "Сигурни ли сте, че искате да изтриете този акаунт? <br /><strong>Това действие е необратимо и няма да можете да възстановите нищо от данните</strong><br /><br />",
"fullname": "Цяло име",
"website": "Уеб сайт",
"location": "Местоположение",
"age": "Възраст",
"joined": "Присъединил се",
"lastonline": "Последно на линия",
"profile": "Профил",
"profile_views": "Преглеждания на профила",
"reputation": "Репутация",
"favourites": "Любими",
"watched": "Наблюдавани",
"followers": "Последователи",
"following": "Следва",
"aboutme": "За мен",
"signature": "Подпис",
"gravatar": "Граватар",
"birthday": "Рождена дата",
"chat": "Чат",
"follow": "Следване",
"unfollow": "Спиране на следването",
"more": "Още",
"profile_update_success": "Профилът беше обновен успешно!",
"change_picture": "Промяна на снимката",
"edit": "Редактиране",
"uploaded_picture": "Качена снимка",
"upload_new_picture": "Качване на нова снимка",
"upload_new_picture_from_url": "Качване на нова снимка от адрес",
"current_password": "Текуща парола",
"change_password": "Промяна на паролата",
"change_password_error": "Грешна парола!",
"change_password_error_wrong_current": "Текущата Ви парола е грешна!",
"change_password_error_length": "Паролата е твърде кратка!",
"change_password_error_match": "Паролите са различни!",
"change_password_error_privileges": "Нямате права да промените тази парола.",
"change_password_success": "Паролата ви е обновена!",
"confirm_password": "Потвърдете паролата",
"password": "Парола",
"username_taken_workaround": "Потребителското име, което искате, е заето и затова ние го променихме леко. Вие ще се наричате <strong>%1</strong>",
"upload_picture": "Качване на снимка",
"upload_a_picture": "Качване на снимка",
"image_spec": "Можете да качвате само PNG, JPG, или GIF файлове",
"settings": "Настройки",
"show_email": "Да се показва е-пощата ми",
"show_fullname": "Да се показва цялото ми име",
"restrict_chats": "Разрешаване на чат съобщенията само от потребители, които следвам",
"digest_label": "Абониране за резюмета",
"digest_description": "Абониране за новини по е-пощата относно този форум (нови известия и теми) според избрания график",
"digest_off": "Изключено",
"digest_daily": "Ежедневно",
"digest_weekly": "Ежеседмично",
"digest_monthly": "Ежемесечно",
"send_chat_notifications": "Изпращане на е-писмо, ако получа ново чат съобщения, а не съм на линия",
"send_post_notifications": "Изпращане на е-писмо, когато се появи отговор в темите, за които съм абониран/а.",
"settings-require-reload": "Някои промени в настройките изискват презареждане. Натиснете тук, за да презаредите страницата.",
"has_no_follower": "Този потребител няма последователи :(",
"follows_no_one": "Този потребител не следва никого :(",
"has_no_posts": "Този потребител не е публикувал нищо досега.",
"has_no_topics": "Този потребител не е създавал теми досега.",
"has_no_watched_topics": "Този потребител не е следил нито една тема досега.",
"email_hidden": "Е-пощата е скрита",
"hidden": "скрито",
"paginate_description": "Разделяне на темите и публикациите на страници, вместо да се превърта безкрайно",
"topics_per_page": "Теми на страница",
"posts_per_page": "Публикации на страница",
"notification_sounds": "Изпълняване на звук, когато получите известие",
"browsing": "Настройки за страниците",
"open_links_in_new_tab": "Отваряне на външните връзки в нов подпрозорец",
"enable_topic_searching": "Включване на търсенето в темите",
"topic_search_help": "Ако е включено, търсенето в темата ще замени стандартното поведение на браузъра при търсене в страницата и ще Ви позволи да претърсвате цялата тема, а не само това, което се вижда на екрана",
"follow_topics_you_reply_to": "Следване на темите, на които отговаряте",
"follow_topics_you_create": "Следване на темите, които създавате",
"grouptitle": "Изберете заглавието на групата, което искате да се показва",
"no-group-title": "Няма заглавие на група"
}

View File

@@ -0,0 +1,21 @@
{
"latest_users": "Последни потребители",
"top_posters": "С най-много публикации",
"most_reputation": "С най-много репутация",
"search": "Търсене",
"enter_username": "Въведете потребителско име, което да потърсите",
"load_more": "Зареждане на още",
"users-found-search-took": "Намерени са %1 потребител(и)! Търсенето отне %2 секунди.",
"filter-by": "Филтриране",
"online-only": "Само тези на линия",
"picture-only": "Само със снимка",
"invite": "Канене",
"invitation-email-sent": "Беше изпратено е-писмо за потвърждение до %1",
"user_list": "Списък от потребители",
"recent_topics": "Скорошни теми",
"popular_topics": "Популярни теми",
"unread_topics": "Непрочетени теми",
"categories": "Категории",
"tags": "Етикети",
"map": "Карта"
}

View File

@@ -1,8 +1,15 @@
{
"category": "Category",
"subcategories": "Subcategories",
"new_topic_button": "নতুন টপিক",
"guest-login-post": "Log in to post",
"no_topics": "<strong>এই বিভাগে কোন টপিক নেই! </strong><br /> আপনি চাইলে একটি পোষ্ট করতে পারেন।",
"browsing": "browsing",
"browsing": "ব্রাউজিং",
"no_replies": "কোন রিপ্লাই নেই",
"no_new_posts": "No new posts.",
"share_this_category": "এই বিভাগটি অন্যের সাথে ভাগাভাগি করুন",
"ignore": "উপেক্ষা করুন"
"watch": "Watch",
"ignore": "উপেক্ষা করুন",
"watch.message": "You are now watching updates from this category",
"ignore.message": "You are now ignoring updates from this category"
}

View File

@@ -1,23 +1,32 @@
{
"password-reset-requested": "Password Reset Requested - %1!",
"welcome-to": "Welcome to %1",
"greeting_no_name": "Hello",
"greeting_with_name": "Hello %1",
"password-reset-requested": "পাসওয়ার্ড রিসেটের জন্য অনুরোধ করা হয়েছে - %1!",
"welcome-to": "%1 এ স্বাগতম",
"invite": "Invitation from %1",
"greeting_no_name": "স্বাগতম",
"greeting_with_name": "স্বাগতম %1",
"welcome.text1": "%1 এ নিবন্ধন করার জন্য আপনাকে ধন্যবাদ!",
"welcome.text2": "আপনার একাউন্ট এ্যাক্টিভেট করার জন্য, আপনি যে ইমেইল এড্রেস ব্যাবহার করে নিবন্ধন করেছেন তা যাচাই করতে হবে",
"welcome.text3": "An administrator has accepted your registration application. You can login with your username/password now.",
"welcome.cta": "আপনার ইমেইল এড্রেস নিশ্চিত করার জন্য এখানে ক্লিক করুন",
"invitation.text1": "%1 has invited you to join %2",
"invitation.ctr": "Click here to create your account.",
"reset.text1": "আমরা আপনার পাসওয়ার্ড রিসেট করার অনুরোধ পেয়েছি, সম্ভবত আপনি আপনার পাসওয়ার্ড ভুলে গিয়েছেন বলেই। তবে যদি তা না হয়ে থাকে, তাহলে এই মেইলকে উপেক্ষা করতে পারেন।",
"reset.text2": "পাসওয়ার্ড রিসেট করতে নিচের লিংকে ক্লিক করুন",
"reset.cta": "পাসওয়ার্ড রিসেট করতে এখানে ক্লিক করুন",
"digest.notifications": "You have unread notifications from %1:",
"digest.latest_topics": "Latest topics from %1",
"digest.cta": "Click here to visit %1",
"digest.unsub.info": "This digest was sent to you due to your subscription settings.",
"digest.no_topics": "There have been no active topics in the past %1",
"notif.chat.subject": "New chat message received from %1",
"notif.chat.cta": "Click here to continue the conversation",
"notif.chat.unsub.info": "This chat notification was sent to you due to your subscription settings.",
"test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.",
"unsub.cta": "Click here to alter those settings",
"closing": "Thanks!"
"reset.notify.subject": "Password successfully changed",
"reset.notify.text1": "We are notifying you that on %1, your password was changed successfully.",
"reset.notify.text2": "If you did not authorise this, please notify an administrator immediately.",
"digest.notifications": "%1 থেকে আনরিড নোটিফিকেশন আছে।",
"digest.latest_topics": "%1 এর সর্বশেষ টপিকসমূহ",
"digest.cta": "%1 ভিজিট করতে এখানে ক্লিক করুন",
"digest.unsub.info": "আপনার সাবস্ক্রীপশন সেটিংসের কারনে আপনাকে এই ডাইজেষ্টটি পাঠানো হয়েছে।",
"digest.no_topics": "%1 এ কোন সক্রিয় টপিক নেই।",
"notif.chat.subject": "%1 এর থেকে নতুন মেসেজ এসেছে।",
"notif.chat.cta": "কথপোকথন চালিয়ে যেতে এখানে ক্লিক করুন",
"notif.chat.unsub.info": "আপনার সাবস্ক্রীপশন সেটিংসের কারনে আপনার এই নোটিফিকেশন পাঠানো হয়েছে",
"notif.post.cta": "Click here to read the full topic",
"notif.post.unsub.info": "This post notification was sent to you due to your subscription settings.",
"test.text1": "আপনি সঠিকভাবে নোডবিবির জন্য মেইলার সেটাপ করেছেন কিনা নিশ্চিত করার জন্য এই টেষ্ট ইমেইল পাঠানো হয়েছে",
"unsub.cta": "সেটিংসগুলো পরিবর্তন করতে এখানে ক্লিক করুন",
"closing": "ধন্যবাদ!"
}

View File

@@ -2,7 +2,7 @@
"invalid-data": "ভুল তথ্য",
"not-logged-in": "আপনি লগিন করেননি",
"account-locked": "আপনার অ্যাকাউন্ট সাময়িকভাবে লক করা হয়েছে",
"search-requires-login": "অনুসন্ধান করার জন্য একটি অ্যাকাউন্ট প্রয়োজন! অনুগ্রহপূর্বক প্রবেশ করুন অথবা নিবন্ধন করুন!",
"search-requires-login": "Searching requires an account - please login or register.",
"invalid-cid": "ভুল বিভাগ নাম্বার",
"invalid-tid": "ভুল টপিক নাম্বার",
"invalid-pid": "ভুল পোস্ট নাম্বার",
@@ -18,10 +18,14 @@
"username-taken": "ইউজারনেম আগেই ব্যবহৃত",
"email-taken": "ইমেইল আগেই ব্যবহৃত",
"email-not-confirmed": "আপনার ইমেইল এড্রেস নিশ্চিত করা হয় নি, নিশ্চিত করতে এখানে ক্লিক করুন।",
"email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
"no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
"email-confirm-failed": "We could not confirm your email, please try again later.",
"confirm-email-already-sent": "Confirmation email already sent, please wait %1 minute(s) to send another one.",
"username-too-short": "খুব ছোট ইউজারনেম",
"username-too-long": "ইউজারনেম বড় হয়ে গিয়েছে",
"user-banned": "ব্যবহারকারী নিষিদ্ধ",
"user-too-new": "দুঃখিত! প্রথম পোষ্ট করার জন্য আপনাকে %1 সেকেন্ড অপেক্ষা করতে হবে।",
"user-too-new": "Sorry, you are required to wait %1 second(s) before making your first post",
"no-category": "বিভাগটি খুজে পাওয়া যায় নি",
"no-topic": "এই টপিক নেই",
"no-post": "এই পোষ্ট নেই",
@@ -32,36 +36,55 @@
"no-emailers-configured": "কোন ইমেল প্লাগইন লোড করা নেই, কাজেই টেস্ট মেইল পাঠানো সম্ভব হচ্ছে না",
"category-disabled": "বিভাগটি নিষ্ক্রিয়",
"topic-locked": "টপিক বন্ধ",
"post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting",
"still-uploading": "আপলোড সম্পূর্ণ জন্য অনুগ্রহ করে অপেক্ষা করুন",
"content-too-short": "অনুগ্রহকরে অপেক্ষকৃত বড় পোষ্ট করুন। একটি পোষ্টে নূন্যতম %1 অক্ষর থাকতে হবে।",
"title-too-short": "অনুগ্রহপূর্বক বড় শিরোনাম ব্যাবহার করুন। শিরোনামের জন্য নূন্যতম %1 অক্ষর ব্যাবহার করতে হবে।",
"title-too-long": "অনুগ্রহ করে সংক্ষিপ্ত শিরোনাম লিখুন। শিরোনাম %1 অক্ষরের বেশি হতে পারবে না।",
"too-many-posts": "আপনি প্রতি %1 সেকেন্ডে একবার পোষ্ট করতে পারবেন। পরবর্তী পোষ্ট করার জন্য অপেক্ষা করুন। ",
"too-many-posts-newbie": "নতুন সদস্য হিসাবে %2 সন্মানণা পাওয়া পর্যন্ত আপনি প্রতি %1 সেকেন্ডে একবার পোষ্ট করতে পারবেন। পরবর্তী পোষ্ট করার জন্য অপেক্ষা করুন। ",
"file-too-big": "সর্বোচ্চ গৃহীত ফাইলসাইজ হচ্ছে %1 kb - অনুগ্রহপূর্বক ছোট ফাইল আপলোড করুন",
"content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).",
"content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).",
"title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).",
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 character(s).",
"too-many-posts": "You can only post once every %1 second(s) - please wait before posting again",
"too-many-posts-newbie": "As a new user, you can only post once every %1 second(s) until you have earned %2 reputation - please wait before posting again",
"tag-too-short": "Please enter a longer tag. Tags should contain at least %1 character(s)",
"tag-too-long": "Please enter a shorter tag. Tags can't be longer than %1 character(s)",
"not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)",
"too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)",
"file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file",
"cant-vote-self-post": "আপনি নিজের পোস্টে ভোট দিতে পারবেন না।",
"already-favourited": "আপনি ইতিমধ্যে এই পোষ্টটি পছন্দের তালিকায় যোগ করেছেন",
"already-unfavourited": "আপনি ইতিমধ্যে এই পোষ্টটি আপনার পছন্দের তালিকা থেকে সরিয়ে ফেলেছেন",
"cant-ban-other-admins": "আপনি অন্য এ্যাডমিনদের নিষিদ্ধ করতে পারেন না!",
"invalid-image-type": "ভুল ছবির টাইপ",
"cant-remove-last-admin": "You are the only administrator. Add another user as an administrator before removing yourself as admin",
"invalid-image-type": "Invalid image type. Allowed types are: %1",
"invalid-image-extension": "Invalid image extension",
"invalid-file-type": "Invalid file type. Allowed types are: %1",
"group-name-too-short": "গ্রুপের নাম খুব ছোট",
"group-already-exists": "গ্রুপ ইতিমধ্যেই বিদ্যমান",
"group-name-change-not-allowed": "গ্রুপের নাম পরিবর্তনের অনুমতি নেই",
"group-already-member": "You are already part of this group",
"group-needs-owner": "This group requires at least one owner",
"group-already-invited": "This user has already been invited",
"group-already-requested": "Your membership request has already been submitted",
"post-already-deleted": "এই পোস্টটি ইতিমধ্যে ডিলিট করা হয়ে গিয়েছে",
"post-already-restored": "এই পোষ্টটি ইতিমধ্যে পুনরোদ্ধার করা হয়েছে",
"topic-already-deleted": "এই টপিকটি ইতিমধ্যে ডিলিট করা হয়েছে",
"topic-already-restored": "এই টপিকটি ইতিমধ্যে পুনরোদ্ধার করা হয়েছে",
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
"topic-thumbnails-are-disabled": "টপিক থাম্বনেল নিষ্ক্রিয় করা। ",
"invalid-file": "ভুল ফাইল",
"uploads-are-disabled": "আপলোড নিষ্ক্রিয় করা",
"upload-error": "আপলোড ত্রুটিঃ %1",
"signature-too-long": "দুঃখিত, আপনার সাক্ষর %1 অক্ষরের বেশী হতে পারবে না। ",
"signature-too-long": "Sorry, your signature cannot be longer than %1 character(s).",
"about-me-too-long": "Sorry, your about me cannot be longer than %1 character(s).",
"cant-chat-with-yourself": "আপনি নিজের সাথে চ্যাট করতে পারবেন না!",
"chat-restricted": "এই সদস্য তার বার্তালাপ সংরক্ষিত রেখেছেন। এই সদস্য আপনাকে ফলো করার পরই কেবলমাত্র আপনি তার সাথে চ্যাট করতে পারবেন",
"too-many-messages": "You have sent too many messages, please wait awhile.",
"reputation-system-disabled": "সম্মাননা ব্যাবস্থা নিস্ক্রীয় রাখা হয়েছে",
"downvoting-disabled": "ঋণাত্মক ভোট নিস্ক্রীয় রাখা হয়েছে।",
"not-enough-reputation-to-downvote": "আপনার এই পোস্ট downvote করার জন্য পর্যাপ্ত সম্মাননা নেই",
"not-enough-reputation-to-flag": "এই পোষ্টকে ফ্লাগ করার জন্য আপনার পর্যাপ্ত সম্মাননা নেই",
"reload-failed": "NodeBB encountered a problem while reloading: \"%1\". NodeBB will continue to serve the existing client-side assets, although you should undo what you did just prior to reloading.",
"registration-error": "নিবন্ধন এরর!"
"already-flagged": "You have already flagged this post",
"reload-failed": "\"%1\" রিলোড করতে সমস্যা হয়েছে। রিলোডের পূর্বে যা করা হয়েছিল সেটি আনডু করা সমীচীন। ",
"registration-error": "নিবন্ধন এরর!",
"parse-error": "Something went wrong while parsing server response",
"wrong-login-type-email": "Please use your email to login",
"wrong-login-type-username": "Please use your username to login"
}

View File

@@ -3,9 +3,10 @@
"search": "অনুসন্ধান",
"buttons.close": "বন্ধ",
"403.title": "প্রবেশাধিকার প্রত্যাখ্যাত",
"403.message": "আপনি এমন একটি পাতায় যাওয়ার চেষ্টা করছেন যেখানে আপনার প্রবেশাধিকার নেই। আপনি কি <a href='/login'>প্রবেশ করে</a> আবার চেষ্টা করবেন?",
"403.message": "You seem to have stumbled upon a page that you do not have access to.",
"403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
"404.title": "পাওয়া যায়নি",
"404.message": "আপনি এমন একটি পাতায় যাওয়ার চেষ্টা করছেন যার অস্তিত্ব নেই। <a href='/'>নীড়পাতায়</a> ফিরে যান। ",
"404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
"500.title": "অভ্যন্তরীণ ত্রুটি।",
"500.message": "ওহো! কিছু ভুল হয়েছে মনে হচ্ছে!",
"register": "নিবন্ধন",
@@ -21,11 +22,13 @@
"pagination.out_of": "%2 এর মাঝে %1",
"pagination.enter_index": "সূচক লিখুন",
"header.admin": "অ্যাডমিন",
"header.categories": "Categories",
"header.recent": "সাম্প্রতিক",
"header.unread": "অপঠিত",
"header.tags": "ট্যাগ",
"header.popular": "জনপ্রিয়",
"header.users": "ব্যবহারকারীগণ",
"header.groups": "Groups",
"header.chats": "কথোপকথন",
"header.notifications": "বিজ্ঞপ্তি",
"header.search": "অনুসন্ধান",
@@ -48,6 +51,7 @@
"views": "দেখেছেন",
"reputation": "সন্মাননা",
"read_more": "আরো পড়ুন",
"more": "More",
"posted_ago_by_guest": "অতিথি পোস্ট করেছেন %1",
"posted_ago_by": " %1 %2 দ্বারা পোস্টকৃত",
"posted_ago": "পোস্ট করেছেন %1",
@@ -73,5 +77,7 @@
"updated.title": "ফোরাম আপডেট করা হয়েছে",
"updated.message": "এই ফোরামে এইমাত্র সর্বশেষ সংস্করণে আপডেট করা হয়েছে। পৃষ্ঠাটি রিফ্রেশ করতে এখানে ক্লিক করুন।",
"privacy": "নিরাপত্তা",
"follow": "Follow",
"unfollow": "Unfollow",
"delete_all": "সব মুছে ফেলুন"
}

View File

@@ -1,8 +1,50 @@
{
"groups": "Groups",
"view_group": "View Group",
"details.title": "Group Details",
"details.members": "Member List",
"details.has_no_posts": "This group's members have not made any posts.",
"details.latest_posts": "Latest Posts"
"groups": "গ্রুপসমূহ",
"view_group": "গ্রুপ দেখুন",
"owner": "Group Owner",
"new_group": "Create New Group",
"no_groups_found": "There are no groups to see",
"pending.accept": "Accept",
"pending.reject": "Reject",
"pending.accept_all": "Accept All",
"pending.reject_all": "Reject All",
"pending.none": "There are no pending members at this time",
"invited.none": "There are no invited members at this time",
"invited.uninvite": "Rescind Invitation",
"invited.search": "Search for a user to invite to this group",
"cover-instructions": "Drag and Drop a photo, drag to position, and hit <strong>Save</strong>",
"cover-change": "Change",
"cover-save": "Save",
"cover-saving": "Saving",
"details.title": "গ্রুপের বিস্তারিত",
"details.members": "সদস্য তালিকা",
"details.pending": "Pending Members",
"details.invited": "Invited Members",
"details.has_no_posts": "এই গ্রুপের সদস্যরা এখনো কোন পোষ্ট করেন নি",
"details.latest_posts": "সর্বশেষ পোষ্টসমূহ",
"details.private": "Private",
"details.grant": "Grant/Rescind Ownership",
"details.kick": "Kick",
"details.owner_options": "Group Administration",
"details.group_name": "Group Name",
"details.member_count": "Member Count",
"details.creation_date": "Creation Date",
"details.description": "Description",
"details.badge_preview": "Badge Preview",
"details.change_icon": "Change Icon",
"details.change_colour": "Change Colour",
"details.badge_text": "Badge Text",
"details.userTitleEnabled": "Show Badge",
"details.private_help": "If enabled, joining of groups requires approval from a group owner",
"details.hidden": "Hidden",
"details.hidden_help": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually",
"details.delete_group": "Delete Group",
"event.updated": "Group details have been updated",
"event.deleted": "The group \"%1\" has been deleted",
"membership.accept-invitation": "Accept Invitation",
"membership.invitation-pending": "Invitation Pending",
"membership.join-group": "Join Group",
"membership.leave-group": "Leave Group",
"membership.reject": "Reject",
"new-group.group_name": "Group Name:"
}

View File

@@ -1,9 +1,11 @@
{
"username": "ইউজারনেম / ইমেইল",
"username-email": "Username / Email",
"username": "Username",
"email": "Email",
"remember_me": "মনে রাখুন",
"forgot_password": "পাসওয়ার্ড ভুলে গিয়েছেন?",
"alternative_logins": "বিকল্প প্রবেশ",
"failed_login_attempt": "ব্যর্থ প্রবেশের প্রচেষ্টা, আবার চেষ্টা করুন।",
"failed_login_attempt": "প্রবেশ সফল হয় নি, আবার চেষ্টা করুন।",
"login_successful": "আপনি সফলভাবে প্রবেশ করেছেন!",
"dont_have_account": "কোন একাউন্ট নেই?"
}

View File

@@ -1,21 +1,26 @@
{
"chat.chatting_with": "<span id=\"chat-with-name\"></span> এর সাথে কথোপকথন",
"chat.placeholder": "Type chat message here, press enter to send",
"chat.placeholder": "এখানে আপনার বার্তা লিখুন। পাঠানোর জন্য Enter চাপুন",
"chat.send": "প্রেরন করুন",
"chat.no_active": "আপনার কোন সচল কথোপকথন নেই",
"chat.user_typing": "%1 লিখছেন",
"chat.user_has_messaged_you": "%1 আপনাকে বার্তা পাঠিয়েছেন",
"chat.see_all": "সকল কথোপকথন দেখুন",
"chat.no-messages": "Please select a recipient to view chat message history",
"chat.recent-chats": "Recent Chats",
"chat.contacts": "Contacts",
"chat.message-history": "Message History",
"chat.pop-out": "Pop out chat",
"chat.maximize": "Maximize",
"chat.seven_days": "7 Days",
"chat.thirty_days": "30 Days",
"chat.three_months": "3 Months",
"chat.no-messages": "মেসেজ হিস্টোরী দেখতে প্রাপক নির্বাচন করুন",
"chat.recent-chats": "সাম্প্রতিক চ্যাটসমূহ",
"chat.contacts": "কন্টাক্টস",
"chat.message-history": "মেসেজ হিস্টোরী",
"chat.pop-out": "চ্যাট উইন্ডো আলাদা করুন",
"chat.maximize": "ম্যাক্সিমাইজ",
"chat.seven_days": " দিন",
"chat.thirty_days": "৩০ দিন",
"chat.three_months": "৩ মাস",
"composer.compose": "Compose",
"composer.show_preview": "Show Preview",
"composer.hide_preview": "Hide Preview",
"composer.user_said_in": "%1 বলেছেন %2:",
"composer.user_said": "%1 বলেছেনঃ",
"composer.discard": "আপনি কি নিশ্চিত যে আপনি এই পোস্ট বাতিল করতে ইচ্ছুক?"
"composer.discard": "আপনি কি নিশ্চিত যে আপনি এই পোস্ট বাতিল করতে ইচ্ছুক?",
"composer.submit_and_lock": "Submit and Lock",
"composer.toggle_dropdown": "Toggle Dropdown"
}

View File

@@ -2,26 +2,27 @@
"title": "বিজ্ঞপ্তিগুলো",
"no_notifs": "আপনার নতুন কোন বিজ্ঞপ্তি নেই",
"see_all": "সকল বিজ্ঞপ্তিগুলো দেখুন",
"mark_all_read": "Mark all notifications read",
"back_to_home": "ফিরুন %1",
"outgoing_link": "বহির্গামী লিঙ্ক",
"outgoing_link_message": "You are now leaving %1.",
"continue_to": "Continue to %1",
"return_to": "Return to %1",
"outgoing_link_message": "আপনি এখন %1 ত্যাগ করছেন",
"continue_to": "%1 তে আগান",
"return_to": "%1 এ ফেরত যান",
"new_notification": "নতুন বিজ্ঞপ্তি",
"you_have_unread_notifications": "আপনার অপঠিত বিজ্ঞপ্তি আছে।",
"new_message_from": "<strong>%1</strong> থেকে নতুন বার্তা",
"upvoted_your_post_in": "<strong>%1</strong> has upvoted your post in <strong>%2</strong>.",
"moved_your_post": "<strong>%1</strong> has moved your post.",
"moved_your_topic": "<strong>%1</strong> has moved your topic.",
"upvoted_your_post_in": "<strong>%1</strong> , <strong>%2</strong> এ আপানার পোষ্টকে আপভোট করেছেন। ",
"moved_your_post": "<strong>%1</strong> আপনার পোষ্ট সরিয়ে নিয়েছেন। ",
"moved_your_topic": "<strong>%1</strong> আপনার টপিক সরিয়ে নিয়েছেন। ",
"favourited_your_post_in": "<strong>%1</strong> has favourited your post in <strong>%2</strong>.",
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
"user_posted_to": "<strong>%1</strong> একটি উত্তর দিয়েছেন: <strong>%2</strong>",
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
"user_mentioned_you_in": "<strong>%1</strong>, <strong>%2</strong> এ আপনার নাম উল্লেখ করেছেন",
"user_started_following_you": "<strong>%1</strong> started following you.",
"user_started_following_you": "<strong>%1</strong> আপনাকে অনুসরন করা শুরু করেছেন।",
"new_register": "<strong>%1</strong> sent a registration request.",
"email-confirmed": "ইমেইল নিশ্চিত করা হয়েছে",
"email-confirmed-message": "আপনার ইমেইল যাচাই করার জন্য আপনাকে ধন্যবাদ। আপনার অ্যাকাউন্টটি এখন সম্পূর্ণরূপে সক্রিয়।",
"email-confirm-error": "একটি ত্রুটি ঘটেছে...",
"email-confirm-error-message": "আপনার ইমেল ঠিকানার বৈধতা যাচাইয়ে একটি সমস্যা হয়েছে। সম্ভবত কোডটি ভুল ছিল অথবা কোডের মেয়াদ শেষ হয়ে গিয়েছে।",
"email-confirm-sent": "নিশ্চিতকরণ ইমেইল পাঠানো হয়েছে।"
}

View File

@@ -5,14 +5,17 @@
"recent": "সাম্প্রতিক টপিক",
"users": "নিবন্ধিত সদস্যগণ",
"notifications": "বিজ্ঞপ্তি",
"tags": "Topics tagged under \"%1\"",
"tags": "Tags",
"tag": "Topics tagged under \"%1\"",
"user.edit": "সম্পাদনা \"%1\"",
"user.following": "%1 যাদের অনুসরণ করেন",
"user.followers": "যারা %1 কে অনুসরণ করেন",
"user.posts": "%1 এর পোস্ট সমুহ",
"user.topics": "%1 এর টপিক সমুহ",
"user.groups": "%1's Groups",
"user.favourites": "%1'র প্রিয় পোস্টগুলো",
"user.settings": "সদস্য সেটিংস",
"user.watched": "Topics watched by %1",
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
}

View File

@@ -5,5 +5,15 @@
"month": "মাস",
"year": "বছর",
"alltime": "সবসময় ",
"no_recent_topics": "কোন সাম্প্রতিক টপিক নেই। "
"no_recent_topics": "কোন সাম্প্রতিক টপিক নেই। ",
"no_popular_topics": "There are no popular topics.",
"there-is-a-new-topic": "There is a new topic.",
"there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
"there-is-a-new-topic-and-new-posts": "There is a new topic and %1 new posts.",
"there-are-new-topics": "There are %1 new topics.",
"there-are-new-topics-and-a-new-post": "There are %1 new topics and a new post.",
"there-are-new-topics-and-new-posts": "There are %1 new topics and %2 new posts.",
"there-is-a-new-post": "There is a new post.",
"there-are-new-posts": "There are %1 new posts.",
"click-here-to-reload": "Click here to reload."
}

View File

@@ -14,5 +14,6 @@
"register_now_button": "নিবন্ধন করুন",
"alternative_registration": "বিকল্প নিবন্ধন",
"terms_of_use": "নিয়মাবলী",
"agree_to_terms_of_use": "আমি নিয়মাবলী মেনে চলতে সম্মতি জানালাম"
"agree_to_terms_of_use": "আমি নিয়মাবলী মেনে চলতে সম্মতি জানালাম",
"registration-added-to-queue": "Your registration has been added to the approval queue. You will receive an email when it is accepted by an administrator."
}

View File

@@ -7,8 +7,11 @@
"wrong_reset_code.message": "প্রাপ্ত রিসেট কোডটি ভুল ছিল। আবার চেষ্টা করুন, অথবা <a href=\"/reset\">একটি নতুন রিসেট কোড</a> অনুরোধ করুন।",
"new_password": "নতুন পাসওয়ার্ড",
"repeat_password": "পাসওয়ার্ড নিশ্চিত করুন",
"enter_email": "Please enter your <strong>email address</strong> and we will send you an email with instructions on how to reset your account.",
"enter_email_address": "Enter Email Address",
"password_reset_sent": "Password Reset Sent",
"invalid_email": "Invalid Email / Email does not exist!"
"enter_email": "অনুগ্রহপূর্বক আপনার ইমেইল এড্রেস প্রদান করুন, আমরা আপনাকে আপনার পাসওয়ার্ড রিসেট সম্পর্কিত তথ্যাবলী ইমেইলে পাঠিয়ে দিবো। ",
"enter_email_address": "আপনার ইমেইল এড্রেস",
"password_reset_sent": "পাসওয়ার্ড রিসেট মেইল পাঠানো হয়েছে",
"invalid_email": "ভুল ইমেইল / ইমেইল ডেটাবেইজে নেই",
"password_too_short": "The password entered is too short, please pick a different password.",
"passwords_do_not_match": "The two passwords you've entered do not match.",
"password_expired": "Your password has expired, please choose a new password"
}

View File

@@ -1,4 +1,40 @@
{
"results_matching": "\"%2\" এর সাথে মিলিয়ে %1 ফলাফল পাওয়া গেছে, ( %3 seconds সময় লেগেছে )",
"no-matches": "কোন পোষ্ট খুঁজে পাওয়া যায় নি"
"no-matches": "No matches found",
"advanced-search": "Advanced Search",
"in": "In",
"titles": "Titles",
"titles-posts": "Titles and Posts",
"posted-by": "Posted by",
"in-categories": "In Categories",
"search-child-categories": "Search child categories",
"reply-count": "Reply Count",
"at-least": "At least",
"at-most": "At most",
"post-time": "Post time",
"newer-than": "Newer than",
"older-than": "Older than",
"any-date": "Any date",
"yesterday": "Yesterday",
"one-week": "One week",
"two-weeks": "Two weeks",
"one-month": "One month",
"three-months": "Three months",
"six-months": "Six months",
"one-year": "One year",
"sort-by": "Sort by",
"last-reply-time": "Last reply time",
"topic-title": "Topic title",
"number-of-replies": "Number of replies",
"number-of-views": "Number of views",
"topic-start-date": "Topic start date",
"username": "Username",
"category": "Category",
"descending": "In descending order",
"ascending": "In ascending order",
"save-preferences": "Save preferences",
"clear-preferences": "Clear preferences",
"search-preferences-saved": "Search preferences saved",
"search-preferences-cleared": "Search preferences cleared",
"show-results-as": "Show results as"
}

View File

@@ -1,6 +1,6 @@
{
"success": "সফল হয়েছে",
"topic-post": "আপনি সফলভাবে পোষ্ট করেছেন। ",
"authentication-successful": "Authentication Successful",
"authentication-successful": "অথেন্টিকেশন সফল হয়েছে",
"settings-saved": "সেটিংস সেভ করা হয়েছে। "
}

View File

@@ -1,7 +1,7 @@
{
"no_tag_topics": "There are no topics with this tag.",
"tags": "Tags",
"enter_tags_here": "Enter tags here. Press enter after each tag.",
"enter_tags_here_short": "Enter tags...",
"no_tags": "There are no tags yet."
"no_tag_topics": "এই ট্যাগ সম্বলিত কোন টপিক নেই",
"tags": "ট্যাগসমূহ",
"enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "ট্যাগ বসান",
"no_tags": "এখন পর্যন্ত কোন ট্যাগ নেই"
}

View File

@@ -5,6 +5,7 @@
"no_topics_found": "কোন টপিক পাওয়া যায়নি!",
"no_posts_found": "কোন পোস্ট পাওয়া যায়নি",
"post_is_deleted": "এই পোস্টটি মুছে ফেলা হয়েছে!",
"topic_is_deleted": "This topic is deleted!",
"profile": "প্রোফাইল ",
"posted_by": "পোস্ট করেছেন %1",
"posted_by_guest": "অতিথি পোস্ট ",
@@ -12,9 +13,10 @@
"notify_me": "এই টপিকে নতুন উত্তর আসলে জানুন",
"quote": "উদ্ধৃতি",
"reply": "উত্তর",
"guest-login-reply": "Log in to reply",
"edit": "সম্পাদণা",
"delete": "মুছে ফেলুন",
"purge": "Purge",
"purge": "পার্জ",
"restore": "পুনরূদ্ধার",
"move": "সরানো",
"fork": "শাখা",
@@ -35,62 +37,64 @@
"watch": "দেখা",
"unwatch": "অদেখা",
"watch.title": "এই টপিকে নতুন উত্তর এলে বিজ্ঞাপণের মাধ্যমে জানুন।",
"unwatch.title": "Stop watching this topic",
"share_this_post": "Share this Post",
"thread_tools.title": "Topic Tools",
"thread_tools.markAsUnreadForAll": "Mark Unread",
"thread_tools.pin": "Pin Topic",
"thread_tools.unpin": "Unpin Topic",
"thread_tools.lock": "Lock Topic",
"thread_tools.unlock": "Unlock Topic",
"thread_tools.move": "Move Topic",
"thread_tools.move_all": "Move All",
"thread_tools.fork": "Fork Topic",
"thread_tools.delete": "Delete Topic",
"thread_tools.delete_confirm": "Are you sure you want to delete this topic?",
"thread_tools.restore": "Restore Topic",
"thread_tools.restore_confirm": "Are you sure you want to restore this topic?",
"thread_tools.purge": "Purge Topic",
"thread_tools.purge_confirm": "Are you sure you want to purge this topic?",
"topic_move_success": "This topic has been successfully moved to %1",
"post_delete_confirm": "Are you sure you want to delete this post?",
"post_restore_confirm": "Are you sure you want to restore this post?",
"post_purge_confirm": "Are you sure you want to purge this post?",
"load_categories": "Loading Categories",
"disabled_categories_note": "Disabled Categories are greyed out",
"confirm_move": "Move",
"confirm_fork": "Fork",
"favourite": "Favourite",
"favourites": "Favourites",
"favourites.has_no_favourites": "You don't have any favourites, favourite some posts to see them here!",
"loading_more_posts": "Loading More Posts",
"move_topic": "Move Topic",
"move_topics": "Move Topics",
"move_post": "Move Post",
"post_moved": "Post moved!",
"fork_topic": "Fork Topic",
"topic_will_be_moved_to": "This topic will be moved to the category",
"fork_topic_instruction": "Click the posts you want to fork",
"fork_no_pids": "No posts selected!",
"fork_success": "Successfully forked topic! Click here to go to the forked topic.",
"composer.title_placeholder": "Enter your topic title here...",
"composer.discard": "Discard",
"composer.submit": "Submit",
"composer.replying_to": "Replying to %1",
"composer.new_topic": "New Topic",
"composer.uploading": "uploading...",
"composer.thumb_url_label": "Paste a topic thumbnail URL",
"composer.thumb_title": "Add a thumbnail to this topic",
"unwatch.title": "এই টপিক দেখা বন্ধ করুন",
"share_this_post": "এই পোষ্টটি শেয়ার করুন",
"thread_tools.title": "টপিক সম্পর্কিত টুলস",
"thread_tools.markAsUnreadForAll": "\"অপঠিত\" হিসেবে চিহ্নিত করুন",
"thread_tools.pin": "টপিক পিন করুন",
"thread_tools.unpin": "টপিক আনপিন করুন",
"thread_tools.lock": "টপিক বন্ধ করুন",
"thread_tools.unlock": "টপিক খুলে দিন",
"thread_tools.move": "টপিক সরান",
"thread_tools.move_all": "সমস্ত টপিক সরান",
"thread_tools.fork": "টপিক ফর্ক করুন",
"thread_tools.delete": "টপিক মুছে ফেলুন",
"thread_tools.delete_confirm": "আপনি নিশ্চিত যে আপনি এই টপিকটি মুছে ফেলতে চান?",
"thread_tools.restore": "টপিক পুনরূদ্ধার করুন",
"thread_tools.restore_confirm": "আপনি নিশ্চিত যে আপনি টপিকটি পুনরূদ্ধার করতে চান?",
"thread_tools.purge": "টপিক পার্জ করুন",
"thread_tools.purge_confirm": "আপনি নিশ্চিত যে আপনি টপিকটি পার্জ করতে চাচ্ছেন ? ",
"topic_move_success": "টপিকটি %1 এ সরিয়ে নেয়া হয়েছে",
"post_delete_confirm": "আপনি নিশ্চিত যে আপনি এই পোষ্টটি মুছে ফেলতে চান ?",
"post_restore_confirm": "আপনি নিশ্চিত যে আপনি এই পোষ্টটি পুনরূূদ্ধার করতে চান ? ",
"post_purge_confirm": "আপনি নিশ্চিত যে আপনি এই পোষ্টটি পার্জ করতে চান ? ",
"load_categories": "ক্যাটাগরী লোড করা হচ্ছে",
"disabled_categories_note": "নিস্ক্রীয় ক্যাটাগরীসমূহ ধূসর কালিতে লেখা রয়েছে। ",
"confirm_move": "সরান",
"confirm_fork": "ফর্ক",
"favourite": "পছন্দ",
"favourites": "পছন্দতালিকা",
"favourites.has_no_favourites": "আপনার যদি কোন পছন্দের পোষ্ট না থেকে থাকে তাহলে কিছু পোষ্ট ফেভারিট করা হলে সেগুলো এখানে দেখতে পাবেন।",
"loading_more_posts": "আরো পোষ্ট লোড করা হচ্ছে",
"move_topic": "টপিক সরান",
"move_topics": "টপিক সমূহ সরান",
"move_post": "পোষ্ট সরান",
"post_moved": "পোষ্ট সরানো হয়েছে",
"fork_topic": "টপিক ফর্ক করুন",
"topic_will_be_moved_to": "এই টপিকটি ক্যাটাগরীতে সরানো হবে",
"fork_topic_instruction": "যে পোষ্টটি ফর্ক করতে চান সেটি ক্লিক করুন",
"fork_no_pids": "কোন পোষ্ট সিলেক্ট করা হয় নি",
"fork_success": "টপিক ফর্ক করা হয়েছে। ফর্ক করা টপিকে যেতে এখানে ক্লিক করুন",
"composer.title_placeholder": "আপনার টপিকের শিরোনাম দিন",
"composer.handle_placeholder": "Name",
"composer.discard": "বাতিল",
"composer.submit": "সাবমিট",
"composer.replying_to": "%1 এর উত্তরে:",
"composer.new_topic": "নতুন টপিক",
"composer.uploading": "আপলোডিং",
"composer.thumb_url_label": "টপিকে থাম্বনেইল URL পেষ্ট করুন",
"composer.thumb_title": "এই টপিকে থাম্বনেইল যোগ করুন",
"composer.thumb_url_placeholder": "http://example.com/thumb.png",
"composer.thumb_file_label": "Or upload a file",
"composer.thumb_remove": "Clear fields",
"composer.drag_and_drop_images": "Drag and Drop Images Here",
"composer.thumb_file_label": "অথবা একটি ফাইল আপলোড করুন",
"composer.thumb_remove": "ফিল্ড ক্লিয়ার করুন",
"composer.drag_and_drop_images": "ছবি এখানে ড্র্যাগ করে এনে ছেড়ে দিন",
"more_users_and_guests": "%1 more user(s) and %2 guest(s)",
"more_users": "%1 more user(s)",
"more_guests": "%1 more guest(s)",
"users_and_others": "%1 and %2 others",
"sort_by": "Sort by",
"oldest_to_newest": "Oldest to Newest",
"newest_to_oldest": "Newest to Oldest",
"most_votes": "Most votes"
"sort_by": "সাজানোর ভিত্তি:",
"oldest_to_newest": "পুরাতন থেকে নতুন",
"newest_to_oldest": "নতুন থেকে পুরাতন",
"most_votes": "সর্বোচ্চ ভোট",
"most_posts": "Most posts"
}

View File

@@ -1,9 +1,10 @@
{
"title": "Unread",
"title": "অপঠিত",
"no_unread_topics": "কোন অপঠিত টপিক নেই",
"load_more": "আরো লোড করুন",
"mark_as_read": "Mark as Read",
"selected": "Selected",
"all": "All",
"topics_marked_as_read.success": "Topics marked as read!"
"mark_as_read": "পঠিত হিসেবে চিহ্নিত করুন",
"selected": "নির্বাচিত",
"all": "সবগুলো",
"all_categories": "All categories",
"topics_marked_as_read.success": "পঠিত হিসেবে চিহ্নিত টপিকসমূহ"
}

View File

@@ -2,10 +2,16 @@
"banned": "নিষিদ্ধ",
"offline": "অফলাইন",
"username": "সদস্যের নাম",
"joindate": "Join Date",
"postcount": "Post Count",
"email": "ইমেইল",
"confirm_email": "ইমেইল নিশ্চিত করুন",
"ban_account": "Ban Account",
"ban_account_confirm": "Do you really want to ban this user?",
"unban_account": "Unban Account",
"delete_account": "একাউন্ট মুছে ফেলুন",
"delete_account_confirm": "Are you sure you want to delete your account? <br /><strong>This action is irreversible and you will not be able to recover any of your data</strong><br /><br />Enter your username to confirm that you wish to destroy this account.",
"delete_account_confirm": "আপনি কি নিশ্চিত যে আপনি আপনার একাউন্ট মুছে ফেলতে চান ? <br /><strong>এই কাজটির ফলে আপনার কোন তথ্য পুনরূদ্ধার করা সম্ভব নয় </strong><br /><br /> নিশ্চিত করতে আপনার ইউজারনেম প্রবেশ করান। ",
"delete_this_account_confirm": "Are you sure you want to delete this account? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
"fullname": "পুর্ণ নাম",
"website": "ওয়েবসাইট",
"location": "স্থান",
@@ -16,14 +22,17 @@
"profile_views": "প্রোফাইল দেখেছেন",
"reputation": "সন্মাননা",
"favourites": "পছন্দের তালিকা",
"watched": "Watched",
"followers": "যাদের অনুসরণ করছেন",
"following": "যারা আপনাকে অনুসরণ করছে",
"aboutme": "About me",
"signature": "স্বাক্ষর",
"gravatar": "গ্রাভাতার",
"birthday": "জন্মদিন",
"chat": "বার্তালাপ",
"follow": "অনুসরন করুন",
"unfollow": "অনুসরন করা থেকে বিরত থাকুন",
"more": "More",
"profile_update_success": "প্রোফাইল আপডেট সফল হয়েছে",
"change_picture": "ছবি পরিবর্তন",
"edit": "সম্পাদনা",
@@ -40,36 +49,40 @@
"change_password_success": "আপনার পাসওয়ার্ড আপডেট করা হয়েছে",
"confirm_password": "পাসওয়ার্ড নিশ্চিত করুন",
"password": "পাসওয়ার্ড",
"username_taken_workaround": "The username you requested was already taken, so we have altered it slightly. You are now known as <strong>%1</strong>",
"username_taken_workaround": "আপনি যে ইউজারনেম চাচ্ছিলেন সেটি ইতিমধ্যে নেয়া হয়ে গেছে, কাজেই আমরা এটি কিঞ্চিং পরিবর্তন করেছি। আপনি এখন <strong>%1</strong> হিসেবে পরিচিত",
"upload_picture": "ছবি আপলোড করুন",
"upload_a_picture": "ছবি (একটি) আপলোড করুন",
"image_spec": "আপনি কেবলমাত্র PNG, JPG অথবা GIF ফাইল আপলোড করতে পারবেন",
"max": "সর্বোচ্চ",
"settings": "সেটিংস",
"show_email": "আমার ইমেইল দেখাও",
"show_fullname": "আমার সম্পূর্ণ নাম দেখাও",
"restrict_chats": "আমি যাদের ফলো করি কেবলমাত্র তাদের থেকে বার্তা গ্রহন করা হোক",
"digest_label": "Subscribe to Digest",
"digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule",
"digest_label": "ডাইজেষ্টে সাবস্ক্রাইব করুন",
"digest_description": "শিডিউল অনূযায়ী এই ফোরামের ইমেইল আপডেটের জন্য সাবস্ক্রাইব করুন (নতুন নোটিফিকেশন এবং টপিকসমূহ )",
"digest_off": "বন্ধ",
"digest_daily": "দৈনিক",
"digest_weekly": "সাপ্তাহিক",
"digest_monthly": "মাসিক",
"send_chat_notifications": "Send an email if a new chat message arrives and I am not online",
"has_no_follower": "This user doesn't have any followers :(",
"follows_no_one": "This user isn't following anyone :(",
"has_no_posts": "This user didn't post anything yet.",
"has_no_topics": "This user didn't post any topics yet.",
"email_hidden": "Email Hidden",
"hidden": "hidden",
"paginate_description": "Paginate topics and posts instead of using infinite scroll.",
"topics_per_page": "Topics per Page",
"posts_per_page": "Posts per Page",
"notification_sounds": "Play a sound when you receive a notification.",
"browsing": "Browsing Settings",
"open_links_in_new_tab": "Open outgoing links in new tab?",
"enable_topic_searching": "Enable In-Topic Searching",
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen.",
"follow_topics_you_reply_to": "Follow topics that you reply to.",
"follow_topics_you_create": "Follow topics you create."
"send_chat_notifications": "যদি আমি অনলাইনে না থাকি, সেক্ষেত্রে নতুন চ্যাট মেসেজ আসলে আমাকে ইমেইল করুন",
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
"settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "এই সদস্যের কোন ফলোয়ার নেই :(",
"follows_no_one": "এই সদস্য কাউকে ফলো করছেন না :(",
"has_no_posts": "This user hasn't posted anything yet.",
"has_no_topics": "This user hasn't posted any topics yet.",
"has_no_watched_topics": "This user hasn't watched any topics yet.",
"email_hidden": "ইমেইল গোপন রাখা হয়েছে",
"hidden": "গোপন করা হয়েছে",
"paginate_description": "Paginate topics and posts instead of using infinite scroll",
"topics_per_page": "প্রতি পেজে কতগুলো টপিক থাকবে",
"posts_per_page": "প্রতি পেইজে কতগুলো পোষ্ট থাকবে",
"notification_sounds": "Play a sound when you receive a notification",
"browsing": "Browsing সেটিংস",
"open_links_in_new_tab": "Open outgoing links in new tab",
"enable_topic_searching": "In-Topic সার্চ সক্রীয় করো",
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen",
"follow_topics_you_reply_to": "Follow topics that you reply to",
"follow_topics_you_create": "Follow topics you create",
"grouptitle": "Select the group title you would like to display",
"no-group-title": "No group title"
}

View File

@@ -5,5 +5,17 @@
"search": "খুঁজুন",
"enter_username": "ইউজারনেম এর ভিত্তিতে সার্চ করুন",
"load_more": "আরো লোড করুন",
"users-found-search-took": "%1 সদস্য(দের) খুঁজে পাওয়া গিয়েছে! সময় লেগেছে %2 ms."
"users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
"filter-by": "Filter By",
"online-only": "Online only",
"picture-only": "Picture only",
"invite": "Invite",
"invitation-email-sent": "An invitation email has been sent to %1",
"user_list": "User List",
"recent_topics": "Recent Topics",
"popular_topics": "Popular Topics",
"unread_topics": "Unread Topics",
"categories": "Categories",
"tags": "Tags",
"map": "Map"
}

View File

@@ -1,8 +1,15 @@
{
"category": "Category",
"subcategories": "Subcategories",
"new_topic_button": "Nové téma",
"guest-login-post": "Log in to post",
"no_topics": "<strong>V této kategorii zatím nejsou žádné příspěvky.</strong><br />Můžeš být první!",
"browsing": "prohlíží",
"no_replies": "Nikdo ještě neodpověděl",
"no_new_posts": "No new posts.",
"share_this_category": "Share this category",
"ignore": "Ignorovat"
"watch": "Watch",
"ignore": "Ignorovat",
"watch.message": "You are now watching updates from this category",
"ignore.message": "You are now ignoring updates from this category"
}

View File

@@ -1,14 +1,21 @@
{
"password-reset-requested": "Požadována obnova hesla - %1!",
"welcome-to": "Vítejte v %1",
"invite": "Invitation from %1",
"greeting_no_name": "Dobrý den",
"greeting_with_name": "Dobrý den %1",
"welcome.text1": "Děkujeme vám za registraci s %1!",
"welcome.text2": "Pro úplnou aktivaci vašeho účtu potřebujeme ověřit vaší emailovou adresu.",
"welcome.text3": "An administrator has accepted your registration application. You can login with your username/password now.",
"welcome.cta": "Klikněte zde pro potvrzení vaší emailové adresy",
"invitation.text1": "%1 has invited you to join %2",
"invitation.ctr": "Click here to create your account.",
"reset.text1": "Obdrželi jsme požadavek na obnovu hesla, pravděpodobně kvůli tomu, že jste ho zapomněli. Pokud to není tento případ, ignorujte, prosím, tento email.",
"reset.text2": "Přejete-li si pokračovat v obnově vašeho hesla, klikněte, prosím, na následující odkaz:",
"reset.cta": "Klikněte zde, chcete-li obnovit vaše heslo",
"reset.notify.subject": "Password successfully changed",
"reset.notify.text1": "We are notifying you that on %1, your password was changed successfully.",
"reset.notify.text2": "If you did not authorise this, please notify an administrator immediately.",
"digest.notifications": "Máte tu nepřečtená oznámení od %1:",
"digest.latest_topics": "Nejnovější témata od %1",
"digest.cta": "Kliknutím zde navštívíte %1",
@@ -17,6 +24,8 @@
"notif.chat.subject": "Nová zpráva z chatu od %1",
"notif.chat.cta": "Chcete-li pokračovat v konverzaci, klikněte zde.",
"notif.chat.unsub.info": "Toto oznámení z chatu vám bylo zasláno, protože jste si to nastavili ve vašich odběrech.",
"notif.post.cta": "Click here to read the full topic",
"notif.post.unsub.info": "This post notification was sent to you due to your subscription settings.",
"test.text1": "Tento testovací email slouží k ověření, že mailer je správně nastaven. NodeBB.",
"unsub.cta": "Chcete-li změnit tyto nastavení, klikněte zde.",
"closing": "Díky!"

View File

@@ -2,7 +2,7 @@
"invalid-data": "Neplatná data",
"not-logged-in": "Zdá se, že nejste přihlášen(a)",
"account-locked": "Váš účet byl dočasně uzamčen",
"search-requires-login": "Chcete-li vyhledávat, musíte mít účet. Přihlašte se nebo zaregistrujte, prosím.",
"search-requires-login": "Searching requires an account - please login or register.",
"invalid-cid": "Neplatné ID kategorie",
"invalid-tid": "Neplatné ID tématu",
"invalid-pid": "Neplatné ID příspěvku",
@@ -18,10 +18,14 @@
"username-taken": "Uživatelské jméno je již použito",
"email-taken": "Email je již použit",
"email-not-confirmed": "Vaše emailová adresa zatím nebyla potvrzena. Kliknutím zde svůj email potvrdíte.",
"email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
"no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
"email-confirm-failed": "We could not confirm your email, please try again later.",
"confirm-email-already-sent": "Confirmation email already sent, please wait %1 minute(s) to send another one.",
"username-too-short": "Uživatelské jméno je příliš krátké",
"username-too-long": "Uživatelské jméno je příliš dlouhé",
"user-banned": "Uživatel byl zakázán",
"user-too-new": "Pardon, ale je potřeba vyčkat %1 sekund, než-li budete moci vytvořit svůj první příspěvek.",
"user-too-new": "Sorry, you are required to wait %1 second(s) before making your first post",
"no-category": "Kategorie neexistuje",
"no-topic": "Téma neexistuje",
"no-post": "Příspěvek neexistuje",
@@ -32,36 +36,55 @@
"no-emailers-configured": "Protože není zaveden žádný emailový plugin, není možné odeslat testovací email.",
"category-disabled": "Kategorie zakázána",
"topic-locked": "Téma uzamčeno",
"post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting",
"still-uploading": "Vyčkejte, prosím, nežli se vše kompletně nahraje.",
"content-too-short": "Vložte, prosím, delší příspěvek. Příspěvky by měly obsahovat nejméně %1 znaků.",
"title-too-short": "Vložte, prosím, delší titulek. Titulky by měly obsahovat nejméně %1 znaků.",
"title-too-long": "Vložte, prosím, kratší titulek. Titulky by neměly být delší, než-li %1 znaků.",
"too-many-posts": "Své příspěvky můžete odesílat po %1 sekundách - vyčkejte, prosím, před dalším odesláním",
"too-many-posts-newbie": "Jako nový uživatel můžete své příspěvky odesílat po %1 sekundách, dokud nedosáhnete %2 reputace - vyčkejte, prosím, před dalším odesláním",
"file-too-big": "Maximální povolená velikost souboru je %1 kbs - nahrávejte, prosím, menší soubory",
"content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).",
"content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).",
"title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).",
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 character(s).",
"too-many-posts": "You can only post once every %1 second(s) - please wait before posting again",
"too-many-posts-newbie": "As a new user, you can only post once every %1 second(s) until you have earned %2 reputation - please wait before posting again",
"tag-too-short": "Please enter a longer tag. Tags should contain at least %1 character(s)",
"tag-too-long": "Please enter a shorter tag. Tags can't be longer than %1 character(s)",
"not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)",
"too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)",
"file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file",
"cant-vote-self-post": "Nemůžete hlasovat pro svůj vlastní příspěvek",
"already-favourited": "You have already favourited this post",
"already-unfavourited": "You have already unfavourited this post",
"cant-ban-other-admins": "Nemůžete zakazovat ostatní administrátory!",
"invalid-image-type": "Neplatný typ obrázku",
"cant-remove-last-admin": "You are the only administrator. Add another user as an administrator before removing yourself as admin",
"invalid-image-type": "Invalid image type. Allowed types are: %1",
"invalid-image-extension": "Invalid image extension",
"invalid-file-type": "Invalid file type. Allowed types are: %1",
"group-name-too-short": "Název skupiny je příliš krátký",
"group-already-exists": "Skupina už exstuje",
"group-name-change-not-allowed": "Změna názvu skupiny není povolena",
"group-already-member": "You are already part of this group",
"group-needs-owner": "This group requires at least one owner",
"group-already-invited": "This user has already been invited",
"group-already-requested": "Your membership request has already been submitted",
"post-already-deleted": "Tento příspěvek byl již vymazán",
"post-already-restored": "Tento příspěvek byl již obnoven",
"topic-already-deleted": "Toto téma bylo již vymazáno",
"topic-already-restored": "Toto téma bylo již obnoveno",
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
"invalid-file": "Neplatný soubor",
"uploads-are-disabled": "Nahrávání je zakázáno",
"upload-error": "Chyba při nahrávání : %1",
"signature-too-long": "Pardon, ale váš podpis nemůže být delší, než-li %1 znaků.",
"signature-too-long": "Sorry, your signature cannot be longer than %1 character(s).",
"about-me-too-long": "Sorry, your about me cannot be longer than %1 character(s).",
"cant-chat-with-yourself": "Nemůžete chatovat sami se sebou!",
"chat-restricted": "This user has restricted their chat messages. They must follow you before you can chat with them",
"too-many-messages": "You have sent too many messages, please wait awhile.",
"reputation-system-disabled": "Systém reputací je zakázán.",
"downvoting-disabled": "Downvoting is disabled",
"not-enough-reputation-to-downvote": "You do not have enough reputation to downvote this post",
"not-enough-reputation-to-flag": "You do not have enough reputation to flag this post",
"already-flagged": "You have already flagged this post",
"reload-failed": "NodeBB encountered a problem while reloading: \"%1\". NodeBB will continue to serve the existing client-side assets, although you should undo what you did just prior to reloading.",
"registration-error": "Chyba při registraci"
"registration-error": "Chyba při registraci",
"parse-error": "Something went wrong while parsing server response",
"wrong-login-type-email": "Please use your email to login",
"wrong-login-type-username": "Please use your username to login"
}

View File

@@ -3,9 +3,10 @@
"search": "Hledat",
"buttons.close": "Zavřít",
"403.title": "Přístup odepřen",
"403.message": "K této stránce nemáte přístup. Zkuste se <a href='/login'>přihlásit</a>?",
"403.message": "You seem to have stumbled upon a page that you do not have access to.",
"403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
"404.title": "Stránka nenalezena",
"404.message": "Tato stránka bohužel neexistuje. Vraťte se na <a href='/'>domovskou stránku</a>.",
"404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
"500.title": "Neznámá chyba",
"500.message": "Jejda, vypadá to, že se něco pokazilo.",
"register": "Registrovat",
@@ -21,11 +22,13 @@
"pagination.out_of": "%1 z %2",
"pagination.enter_index": "Enter index",
"header.admin": "Administrace",
"header.categories": "Categories",
"header.recent": "Aktuality",
"header.unread": "Nepřečtené",
"header.tags": "Tagy",
"header.popular": "Populární",
"header.users": "Uživatelé",
"header.groups": "Groups",
"header.chats": "Chats",
"header.notifications": "Oznámení",
"header.search": "Hledat",
@@ -48,6 +51,7 @@
"views": "Zobrazení",
"reputation": "Reputation",
"read_more": "read more",
"more": "More",
"posted_ago_by_guest": "posted %1 by Guest",
"posted_ago_by": "posted %1 by %2",
"posted_ago": "posted %1",
@@ -73,5 +77,7 @@
"updated.title": "Fórum zaktualizováno",
"updated.message": "Toto fórum bylo právě aktualizováno na poslední verzi. Klikněte zde a obnovte tuto stránku.",
"privacy": "Privacy",
"follow": "Follow",
"unfollow": "Unfollow",
"delete_all": "Vymazat vše"
}

View File

@@ -1,8 +1,50 @@
{
"groups": "Skupiny",
"view_group": "Prohlédnout skupinu",
"owner": "Group Owner",
"new_group": "Create New Group",
"no_groups_found": "There are no groups to see",
"pending.accept": "Accept",
"pending.reject": "Reject",
"pending.accept_all": "Accept All",
"pending.reject_all": "Reject All",
"pending.none": "There are no pending members at this time",
"invited.none": "There are no invited members at this time",
"invited.uninvite": "Rescind Invitation",
"invited.search": "Search for a user to invite to this group",
"cover-instructions": "Drag and Drop a photo, drag to position, and hit <strong>Save</strong>",
"cover-change": "Change",
"cover-save": "Save",
"cover-saving": "Saving",
"details.title": "podrobnosti skupiny",
"details.members": "Seznam členů",
"details.pending": "Pending Members",
"details.invited": "Invited Members",
"details.has_no_posts": "Členové této skupiny dosud neodeslali ani jeden příspěvek.",
"details.latest_posts": "Nejnovější příspěvky"
"details.latest_posts": "Nejnovější příspěvky",
"details.private": "Private",
"details.grant": "Grant/Rescind Ownership",
"details.kick": "Kick",
"details.owner_options": "Group Administration",
"details.group_name": "Group Name",
"details.member_count": "Member Count",
"details.creation_date": "Creation Date",
"details.description": "Description",
"details.badge_preview": "Badge Preview",
"details.change_icon": "Change Icon",
"details.change_colour": "Change Colour",
"details.badge_text": "Badge Text",
"details.userTitleEnabled": "Show Badge",
"details.private_help": "If enabled, joining of groups requires approval from a group owner",
"details.hidden": "Hidden",
"details.hidden_help": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually",
"details.delete_group": "Delete Group",
"event.updated": "Group details have been updated",
"event.deleted": "The group \"%1\" has been deleted",
"membership.accept-invitation": "Accept Invitation",
"membership.invitation-pending": "Invitation Pending",
"membership.join-group": "Join Group",
"membership.leave-group": "Leave Group",
"membership.reject": "Reject",
"new-group.group_name": "Group Name:"
}

View File

@@ -1,5 +1,7 @@
{
"username": "Uživatelské jméno / Email",
"username-email": "Username / Email",
"username": "Username",
"email": "Email",
"remember_me": "Zapamatovat si mě?",
"forgot_password": "Zapomněli jste heslo?",
"alternative_logins": "Další způsoby přihlášení",

View File

@@ -15,7 +15,12 @@
"chat.seven_days": "7 dní",
"chat.thirty_days": "30 dní",
"chat.three_months": "3 měsíce",
"composer.compose": "Compose",
"composer.show_preview": "Show Preview",
"composer.hide_preview": "Hide Preview",
"composer.user_said_in": "%1 said in %2:",
"composer.user_said": "%1 said:",
"composer.discard": "Are you sure you wish to discard this post?"
"composer.discard": "Are you sure you wish to discard this post?",
"composer.submit_and_lock": "Submit and Lock",
"composer.toggle_dropdown": "Toggle Dropdown"
}

View File

@@ -2,6 +2,7 @@
"title": "Upozornění",
"no_notifs": "You have no new notifications",
"see_all": "See all Notifications",
"mark_all_read": "Mark all notifications read",
"back_to_home": "Back to %1",
"outgoing_link": "Odkaz mimo fórum",
"outgoing_link_message": "You are now leaving %1.",
@@ -19,9 +20,9 @@
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
"user_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
"user_started_following_you": "<strong>%1</strong> started following you.",
"new_register": "<strong>%1</strong> sent a registration request.",
"email-confirmed": "Email Confirmed",
"email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.",
"email-confirm-error": "An error occurred...",
"email-confirm-error-message": "There was a problem validating your email address. Perhaps the code was invalid or has expired.",
"email-confirm-sent": "Confirmation email sent."
}

View File

@@ -5,14 +5,17 @@
"recent": "Recent Topics",
"users": "Registered Users",
"notifications": "Notifications",
"tags": "Topics tagged under \"%1\"",
"tags": "Tags",
"tag": "Topics tagged under \"%1\"",
"user.edit": "Editing \"%1\"",
"user.following": "People %1 Follows",
"user.followers": "People who Follow %1",
"user.posts": "Posts made by %1",
"user.topics": "Topics created by %1",
"user.groups": "%1's Groups",
"user.favourites": "%1's Favourite Posts",
"user.settings": "User Settings",
"user.watched": "Topics watched by %1",
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
}

View File

@@ -5,5 +5,15 @@
"month": "Měsíc",
"year": "Year",
"alltime": "All Time",
"no_recent_topics": "There are no recent topics."
"no_recent_topics": "There are no recent topics.",
"no_popular_topics": "There are no popular topics.",
"there-is-a-new-topic": "There is a new topic.",
"there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
"there-is-a-new-topic-and-new-posts": "There is a new topic and %1 new posts.",
"there-are-new-topics": "There are %1 new topics.",
"there-are-new-topics-and-a-new-post": "There are %1 new topics and a new post.",
"there-are-new-topics-and-new-posts": "There are %1 new topics and %2 new posts.",
"there-is-a-new-post": "There is a new post.",
"there-are-new-posts": "There are %1 new posts.",
"click-here-to-reload": "Click here to reload."
}

View File

@@ -14,5 +14,6 @@
"register_now_button": "Zaregistrovat se",
"alternative_registration": "Jiný způsob registrace",
"terms_of_use": "Podmínky",
"agree_to_terms_of_use": "Souhlasím s Podmínkami"
"agree_to_terms_of_use": "Souhlasím s Podmínkami",
"registration-added-to-queue": "Your registration has been added to the approval queue. You will receive an email when it is accepted by an administrator."
}

View File

@@ -10,5 +10,8 @@
"enter_email": "Zadejte svou <strong>emailovou adresu</strong> a my Vám pošleme informace, jak můžete obnovit své heslo.",
"enter_email_address": "Zadejte emailovou adresu",
"password_reset_sent": "Obnova hesla odeslána",
"invalid_email": "Špatný email / Email neexistuje!"
"invalid_email": "Špatný email / Email neexistuje!",
"password_too_short": "The password entered is too short, please pick a different password.",
"passwords_do_not_match": "The two passwords you've entered do not match.",
"password_expired": "Your password has expired, please choose a new password"
}

View File

@@ -1,4 +1,40 @@
{
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
"no-matches": "No posts found"
"no-matches": "No matches found",
"advanced-search": "Advanced Search",
"in": "In",
"titles": "Titles",
"titles-posts": "Titles and Posts",
"posted-by": "Posted by",
"in-categories": "In Categories",
"search-child-categories": "Search child categories",
"reply-count": "Reply Count",
"at-least": "At least",
"at-most": "At most",
"post-time": "Post time",
"newer-than": "Newer than",
"older-than": "Older than",
"any-date": "Any date",
"yesterday": "Yesterday",
"one-week": "One week",
"two-weeks": "Two weeks",
"one-month": "One month",
"three-months": "Three months",
"six-months": "Six months",
"one-year": "One year",
"sort-by": "Sort by",
"last-reply-time": "Last reply time",
"topic-title": "Topic title",
"number-of-replies": "Number of replies",
"number-of-views": "Number of views",
"topic-start-date": "Topic start date",
"username": "Username",
"category": "Category",
"descending": "In descending order",
"ascending": "In ascending order",
"save-preferences": "Save preferences",
"clear-preferences": "Clear preferences",
"search-preferences-saved": "Search preferences saved",
"search-preferences-cleared": "Search preferences cleared",
"show-results-as": "Show results as"
}

View File

@@ -1,7 +1,7 @@
{
"no_tag_topics": "Není zde žádné téma s tímto tagem.",
"tags": "Tagy",
"enter_tags_here": "Zde vložte tagy. Po každém vložení tagu zmáčkněte enter.",
"enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "Vložte tagy ...",
"no_tags": "Zatím tu není žádný tag."
}

View File

@@ -5,6 +5,7 @@
"no_topics_found": "Nebyla nalezena žádná témata!",
"no_posts_found": "Nebyly nalezeny žádné příspěvky!",
"post_is_deleted": "Tento příspěvek je vymazán!",
"topic_is_deleted": "This topic is deleted!",
"profile": "Profil",
"posted_by": "Posted by %1",
"posted_by_guest": "Posted by Guest",
@@ -12,6 +13,7 @@
"notify_me": "Sledovat toto téma",
"quote": "Citovat",
"reply": "Odpovědět",
"guest-login-reply": "Log in to reply",
"edit": "Upravit",
"delete": "Smazat",
"purge": "Purge",
@@ -74,6 +76,7 @@
"fork_no_pids": "Žádné příspěvky nebyly vybrány!",
"fork_success": "Successfully forked topic! Click here to go to the forked topic.",
"composer.title_placeholder": "Enter your topic title here...",
"composer.handle_placeholder": "Name",
"composer.discard": "Discard",
"composer.submit": "Submit",
"composer.replying_to": "Replying to %1",
@@ -92,5 +95,6 @@
"sort_by": "Sort by",
"oldest_to_newest": "Oldest to Newest",
"newest_to_oldest": "Newest to Oldest",
"most_votes": "Most votes"
"most_votes": "Most votes",
"most_posts": "Most posts"
}

View File

@@ -5,5 +5,6 @@
"mark_as_read": "Označit jako přeštené",
"selected": "Vybrané",
"all": "Vše",
"all_categories": "All categories",
"topics_marked_as_read.success": "Téma bylo označeno jako přečtené!"
}

View File

@@ -2,10 +2,16 @@
"banned": "Banned",
"offline": "Offline",
"username": "Uživatelské jméno",
"joindate": "Datum ragistrace",
"postcount": "Počet příspěvků",
"email": "Email",
"confirm_email": "Potvrdit email",
"ban_account": "Zablokovat účet",
"ban_account_confirm": "Opravdu chcete zablokovat tohoto uživatele?",
"unban_account": "Odblokovat účet",
"delete_account": "Vymazat účet",
"delete_account_confirm": "Are you sure you want to delete your account? <br /><strong>This action is irreversible and you will not be able to recover any of your data</strong><br /><br />Enter your username to confirm that you wish to destroy this account.",
"delete_account_confirm": "Opravdu chcete smazat váš účet? <br /><strong>Tato akce je nevratná a nebude možné obnovit žádné vaše data.</strong><br /><br /> Pro potvrzení smazání účtu napište vaše uživatelské jméno.",
"delete_this_account_confirm": "Are you sure you want to delete this account? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
"fullname": "Jméno a příjmení",
"website": "Webové stránky",
"location": "Poloha",
@@ -16,38 +22,40 @@
"profile_views": "Zobrazení profilu",
"reputation": "Reputace",
"favourites": "Oblíbené",
"watched": "Sledován",
"followers": "Sledují ho",
"following": "Sleduje",
"aboutme": "O mně",
"signature": "Podpis",
"gravatar": "Gravatar",
"birthday": "Datum narození",
"chat": "Chat",
"follow": "Follow",
"unfollow": "Unfollow",
"follow": "Sledovat",
"unfollow": "Nesledovat",
"more": "Více",
"profile_update_success": "Profil byl úspěšně aktualizován!",
"change_picture": "Změnit obrázek",
"edit": "Upravit",
"uploaded_picture": "Nahraný obrázek",
"upload_new_picture": "Nahrát nový obrázek",
"upload_new_picture_from_url": "Upload New Picture From URL",
"upload_new_picture_from_url": "Nahrát nový obrázek z URL",
"current_password": "Současné heslo",
"change_password": "Změnit heslo",
"change_password_error": "Neplatné heslo",
"change_password_error_wrong_current": "Your current password is not correct!",
"change_password_error_length": "Password too short!",
"change_password_error_match": "Passwords must match!",
"change_password_error_privileges": "You do not have the rights to change this password.",
"change_password_success": "Your password is updated!",
"change_password_error_wrong_current": "Současné heslo není správné!",
"change_password_error_length": "Heslo je příliš krátké!",
"change_password_error_match": "Hesla se neshodují!",
"change_password_error_privileges": "Nemáte práva změnit toto heslo.",
"change_password_success": "Heslo je aktualizované!",
"confirm_password": "Potvrzení hesla",
"password": "Heslo",
"username_taken_workaround": "The username you requested was already taken, so we have altered it slightly. You are now known as <strong>%1</strong>",
"upload_picture": "Nahrát obrázek",
"upload_a_picture": "Nahrát obrázek",
"image_spec": "You may only upload PNG, JPG, or GIF files",
"max": "max.",
"image_spec": "Nahrávat lze pouze soubory PNG, JPG a GIF",
"settings": "Nastavení",
"show_email": "Zobrazovat můj email v profilu",
"show_fullname": "Show My Full Name",
"show_fullname": "Zobrazovat celé jméno",
"restrict_chats": "Only allow chat messages from users I follow",
"digest_label": "Subscribe to Digest",
"digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule",
@@ -56,20 +64,25 @@
"digest_weekly": "Weekly",
"digest_monthly": "Monthly",
"send_chat_notifications": "Send an email if a new chat message arrives and I am not online",
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
"settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "Tohoto uživatele nikdo nesleduje :(",
"follows_no_one": "Tento uživatel nikoho nesleduje :(",
"has_no_posts": "This user didn't post anything yet.",
"has_no_topics": "This user didn't post any topics yet.",
"has_no_posts": "This user hasn't posted anything yet.",
"has_no_topics": "This user hasn't posted any topics yet.",
"has_no_watched_topics": "This user hasn't watched any topics yet.",
"email_hidden": "Skrytý email",
"hidden": "skrytý",
"paginate_description": "Paginate topics and posts instead of using infinite scroll.",
"paginate_description": "Paginate topics and posts instead of using infinite scroll",
"topics_per_page": "Topics per Page",
"posts_per_page": "Posts per Page",
"notification_sounds": "Play a sound when you receive a notification.",
"notification_sounds": "Play a sound when you receive a notification",
"browsing": "Browsing Settings",
"open_links_in_new_tab": "Open outgoing links in new tab?",
"open_links_in_new_tab": "Open outgoing links in new tab",
"enable_topic_searching": "Enable In-Topic Searching",
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen.",
"follow_topics_you_reply_to": "Follow topics that you reply to.",
"follow_topics_you_create": "Follow topics you create."
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen",
"follow_topics_you_reply_to": "Follow topics that you reply to",
"follow_topics_you_create": "Follow topics you create",
"grouptitle": "Select the group title you would like to display",
"no-group-title": "No group title"
}

View File

@@ -5,5 +5,17 @@
"search": "Vyhledávat",
"enter_username": "Zadej uživatelské jméno k hledání",
"load_more": "Načíst další",
"users-found-search-took": "Nazelezeno: %1 uživetel(ů)! Vyhledání trvalo %2 ms."
"users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
"filter-by": "Filter By",
"online-only": "Online only",
"picture-only": "Picture only",
"invite": "Invite",
"invitation-email-sent": "An invitation email has been sent to %1",
"user_list": "User List",
"recent_topics": "Recent Topics",
"popular_topics": "Popular Topics",
"unread_topics": "Unread Topics",
"categories": "Categories",
"tags": "Tags",
"map": "Map"
}

View File

@@ -0,0 +1,15 @@
{
"category": "Kategori",
"subcategories": "Underkategorier",
"new_topic_button": "Nyt emne",
"guest-login-post": "Log ind",
"no_topics": "<strong>Der er ikke nogen nye emner i denne kategori.</strong><br /> Hvorfor prøver du ikke at lave et?",
"browsing": "browse",
"no_replies": "Ingen har svaret",
"no_new_posts": "Ingen nye indlæg",
"share_this_category": "Del denne kategori",
"watch": "Overvåg",
"ignore": "Ignorer",
"watch.message": "Du overvåger nu opdateringer fra denne kategori",
"ignore.message": "Du ignorere nu opdateringer fra denne kategori"
}

Some files were not shown because too many files have changed in this diff Show More