Compare commits

...

1007 Commits

Author SHA1 Message Date
barisusakli
cce076fc83 closes #2323 2014-10-30 14:30:10 -04:00
Julian Lam
0a73fade08 updated version for 0.5.3 2014-10-27 17:36:26 -04:00
barisusakli
3d5e72bbc8 fix null parents 2014-10-27 02:58:20 -04:00
barisusakli
9909f8ba79 more err checks 2014-10-27 01:49:57 -04:00
barisusakli
18462c4190 derp 2014-10-27 00:59:52 -04:00
barisusakli
698d113857 error checks in middleware/admin 2014-10-27 00:54:26 -04:00
barisusakli
eaf89dc316 use parseSignature 2014-10-26 22:02:44 -04:00
barisusakli
a4d671f8b8 fix popular pill selection 2014-10-26 21:44:09 -04:00
barisusakli
238fb0bd4b removed logout log 2014-10-26 21:02:51 -04:00
barisusakli
c74370bfb1 removed recent/day week month
it starts with most recent 20 topics now and goes back instead of
showing empty if there are no new replies in the past 24 hours
2014-10-26 20:26:56 -04:00
barisusakli
c4a39c8163 use processSortedSet instead of getting all users 2014-10-26 20:10:57 -04:00
barisusakli
782896997d post count fix for post move 2014-10-26 19:13:48 -04:00
barisusakli
56947b999e added timestamps to winston logs 2014-10-26 18:46:50 -04:00
barisusakli
d2cc4b8516 possibly fixes 2301 2014-10-26 18:02:40 -04:00
barisusakli
35e2e1462b closes #2295 2014-10-26 17:04:55 -04:00
barisusakli
63cf8d674d listen disconnect event, display unknow socket method name on dev 2014-10-26 14:30:13 -04:00
barisusakli
dfae2ea0d7 fix new topics showing up in all categories on post 2014-10-26 14:26:21 -04:00
barisusakli
699b74603b only for logged in users 2014-10-25 19:22:13 -04:00
barisusakli
4c90c9a759 closes #2291 2014-10-25 19:19:47 -04:00
barisusakli
ca9cc6b32f show latest plugin version for uninstalled plugins as well 2014-10-24 17:47:27 -04:00
barisusakli
081efd22e2 prevent crash if category is not found 2014-10-24 15:35:10 -04:00
barisusakli
a7bb5893e8 fix dupe event listeners on category
only happens if you navigate from category to category
2014-10-24 15:05:37 -04:00
Julian Lam
0a81898810 grammar fix 2014-10-24 00:16:27 -04:00
Julian Lam
a9c528eb23 added instructions for responsible disclosure, and use of git bisect for regression testing, closed #2280 2014-10-24 00:12:18 -04:00
Julian Lam
9215930cfc fixed #2292 2014-10-24 00:01:08 -04:00
barisusakli
6e62c48f41 call package manager
get latest version from versions object
2014-10-23 22:38:28 -04:00
barisusakli
89613d2346 closes #2287 2014-10-23 22:26:52 -04:00
barisusakli
a8760cd2bc only ban once for low rep
also only check on downvotes
2014-10-23 18:05:40 -04:00
barisusakli
c753edab1d fix duplicate event listeners
they were duplicated if you navigated from topic to topic
2014-10-23 16:32:16 -04:00
Julian Lam
ffdc4b5d24 fixed places where site_title was being referenced in config, instead of the correct "title" 2014-10-23 15:47:25 -04:00
Julian Lam
8112ca73c8 reloading on plugin activation click instead of restart 2014-10-23 15:21:44 -04:00
barisusakli
f295083a08 fix upload error messages 2014-10-23 15:01:36 -04:00
barisusakli
802c8b15e2 fix upgrade script to include main post, and fix post indices 2014-10-22 19:33:47 -04:00
barisusakli
9a21e9646f only use multipart on upload routes,
delete temp files if there is an error in admin,
admin/mods should see topic reply
2014-10-22 18:26:01 -04:00
Julian Lam
67770e568f removed some console logging 2014-10-22 17:59:21 -04:00
Julian Lam
b95710b2c9 french typo 2014-10-22 17:50:26 -04:00
Julian Lam
a9a32bff50 latest french translations 2014-10-22 17:46:08 -04:00
barisusakli
c5224d099e parseInt show title 2014-10-22 17:22:47 -04:00
barisusakli
fd00dddd62 admin/mods always gets the reply privs 2014-10-22 16:12:29 -04:00
Julian Lam
aac923fb03 fised #2272 2014-10-22 13:47:05 -04:00
Julian Lam
62d85b0e26 updated installation data to only create four categories by default, and altered colour to be less stark (heh, what does that mean anyway...). Also added an intro post 2014-10-22 13:26:34 -04:00
Julian Lam
8468a84047 latest fallbacks 2014-10-22 12:30:15 -04:00
Julian Lam
07a54b9510 latest translations 2014-10-22 11:54:36 -04:00
Julian Lam
afa86c03c4 fixing language for nb -- closed #2288 2014-10-22 11:30:50 -04:00
barisusakli
ec9bf48477 admins/mods can always read topics 2014-10-21 18:09:32 -04:00
Julian Lam
a28b4bb8b9 fixed maintenance mode assets not being loaded properly 2014-10-21 15:58:30 -04:00
Julian Lam
1a90de7dd6 added new --from-file flag that will load js/css from the precompiled file instead of recompiling it on startup 2014-10-21 15:36:13 -04:00
barisusakli
ebfb953069 responsive images in group page 2014-10-21 15:24:50 -04:00
barisusakli
dcf2691a12 fix indent 2014-10-21 14:42:18 -04:00
Barış Soner Uşaklı
591a8b6b12 Merge pull request #2270 from stevelacy/master
Add user.updateProfile - hook user profile updates
2014-10-21 14:40:45 -04:00
barisusakli
1b80e6dbb2 fix email update on mongo 2014-10-21 14:17:30 -04:00
barisusakli
55a5d56989 fixed view count for guests 2014-10-21 13:59:40 -04:00
barisusakli
3e4b6c97a0 closes #2286 2014-10-21 13:48:50 -04:00
barisusakli
b5fe2c7b91 closes #2255
if user is banned log them out on header render
2014-10-20 16:36:00 -04:00
barisusakli
b23373c265 parseInt maintenance mode 2014-10-20 16:14:31 -04:00
barisusakli
f15631c3e1 topic notification nid doesn't need post id 2014-10-19 18:41:54 -04:00
barisusakli
6dd035a5af prevent crash if topic graph is clicked while not loaded 2014-10-19 18:37:11 -04:00
barisusakli
7de9b998b5 fix typo in ajaxify, closes #2279 2014-10-19 17:11:05 -04:00
barisusakli
3f28dbb1be update ACP every 10 seconds 2014-10-19 16:47:52 -04:00
barisusakli
224218f519 fix missing callback 2014-10-19 16:39:36 -04:00
barisusakli
e9ec225d5b removed isConnected check 2014-10-19 16:13:10 -04:00
barisusakli
4db31be7e3 #2200 actually fix dupe colors, show 10 topics 2014-10-19 15:59:33 -04:00
barisusakli
304f5b1c76 removed duped and empty bodyLong 2014-10-18 17:02:37 -04:00
barisusakli
6802bf7ce9 closes #2284 2014-10-18 16:45:39 -04:00
Steve Lacy
2d238e61ac correct object 2014-10-17 23:15:13 -07:00
Julian Lam
c2fb1eaabf updated master to report 0.5.3-dev 2014-10-18 00:29:20 -04:00
barisusakli
b209fb563e #2218 2014-10-17 23:29:28 -04:00
barisusakli
794d6eb9ab closes #2200 2014-10-17 23:14:17 -04:00
barisusakli
94ffe5d170 closes #2276 2014-10-17 23:04:50 -04:00
barisusakli
02f74ca032 fix browsing users removal 2014-10-17 20:49:16 -04:00
psychobunny
1eb1eb6844 #2278 2014-10-17 19:38:49 -04:00
psychobunny
ded8de905d closes #2278 2014-10-17 19:37:13 -04:00
barisusakli
d2334fbb4a dont search empty string, get 20 tags instead of 10 2014-10-17 19:12:18 -04:00
barisusakli
93d4a7c1f1 fix notifications to actually get recent 2014-10-17 18:51:58 -04:00
barisusakli
6cb5f9c098 emit stats to registered users only 2014-10-17 18:46:17 -04:00
barisusakli
c5e1f8e0aa user onlineUsers instead of calculating from rooms 2014-10-17 18:40:20 -04:00
barisusakli
7bf655541c cleanup and optimize notifications 2014-10-17 18:31:20 -04:00
barisusakli
cfd7edbf34 added nid 2014-10-17 17:23:47 -04:00
barisusakli
24de757549 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2014-10-17 17:20:48 -04:00
barisusakli
b5fb7691cd optimize getUnreadByField
only get the most recent 100 notifications
dont call UserNotifications.getNotifications which does alot more work,
call the db directly
2014-10-17 17:20:45 -04:00
Julian Lam
75aa3f1006 updating markdown minimum version to 0.7.x and up 2014-10-17 13:44:47 -04:00
psychobunny
8ef4ad6f14 Revert "reverting #2259 temporarily until we figure out why logs aren't showing up"
This reverts commit 59b3e6f78f.
2014-10-17 01:47:13 -04:00
psychobunny
59b3e6f78f reverting #2259 temporarily until we figure out why logs aren't showing up 2014-10-17 01:43:00 -04:00
barisusakli
3ba4d2aa2b get correct count only from one of the active users elements 2014-10-17 01:11:55 -04:00
barisusakli
fec84821b7 removed this wasn't the problem after all 2014-10-16 20:03:22 -04:00
barisusakli
762b2fff37 display user count in browsing 2014-10-16 18:04:04 -04:00
barisusakli
df590d01e6 set key as well
not sure if this fixes dupe keys
2014-10-16 02:02:16 -04:00
barisusakli
9e8be432b3 notification changes
-only send a notification when the person you follow creates a topic
-you still get a notification per post if you are following a topic
-changed notifications.push so that it sends the notifications over a
period of time, currently to 50 users per second
-optimized topics.notifyFollowers and
user.notifications.sendTopicNotification, they no longer query the
database for the topic and post data instead they get it as params
-you can no longer follow yourself :)
-changed mongo sortedSetRemove so that it doesn't use $in if there is
only a single value to remove
2014-10-15 21:55:31 -04:00
Steve Lacy
d01497dde3 Merge branch 'master' of https://github.com/stevelacy/NodeBB 2014-10-15 16:27:01 -07:00
Steve Lacy
3ff7719cd4 add hook: filter: user.updateProfile 2014-10-15 16:26:40 -07:00
barisusakli
eb546dfaab temp until package manager is in place 2014-10-15 16:26:50 -04:00
barisusakli
834c4f8ff0 log stack 2014-10-15 16:19:27 -04:00
barisusakli
80489c6564 log post purges 2014-10-15 15:57:37 -04:00
barisusakli
90224d2de3 removed unique for now 2014-10-15 15:25:51 -04:00
barisusakli
f2883c2c9f createIndex helper 2014-10-15 15:11:01 -04:00
barisusakli
1be6a253bf make _key value index unique 2014-10-15 15:07:30 -04:00
barisusakli
72a919e416 time based check 2014-10-15 14:49:11 -04:00
barisusakli
f318f2f815 move out update, should work even if post isnt in dom 2014-10-14 23:57:27 -04:00
barisusakli
b3e83d2f9a update post count on purge 2014-10-14 23:41:58 -04:00
barisusakli
8471fcbd79 fixed typo 2014-10-14 23:36:59 -04:00
barisusakli
4b1adba9ec removed || 1 2014-10-14 23:35:32 -04:00
barisusakli
ffbefda5f7 #2265 upgrade script 2014-10-14 23:35:11 -04:00
barisusakli
761f56aeb1 removed most of the db.sortedSetCards 2014-10-14 23:12:47 -04:00
barisusakli
09bd42b9f6 removed deleted 2014-10-14 22:52:41 -04:00
barisusakli
b1d48df6d8 dont modify counts on soft post delete 2014-10-14 22:51:48 -04:00
barisusakli
5de74914bd moved updateCounters to purge 2014-10-14 22:18:24 -04:00
barisusakli
b65c17c5bc parseInt score 2014-10-14 20:56:52 -04:00
barisusakli
29fcb6c366 fix images in manage/flags and fadeout 2014-10-14 17:03:14 -04:00
barisusakli
040d7b8424 limit unread to 100 tids 2014-10-14 14:27:45 -04:00
barisusakli
0eae679bcd crash fix if field is undefined 2014-10-14 13:52:47 -04:00
barisusakli
be287740f9 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2014-10-14 13:29:26 -04:00
barisusakli
62503c16c6 mark category read only if unread 2014-10-14 13:29:23 -04:00
Julian Lam
b5481ceed2 property fixed #2087 2014-10-14 11:48:31 -04:00
Julian Lam
08d4d6b5bf changed indentation for continueLogin method in authentication.js 2014-10-14 11:48:31 -04:00
barisusakli
f463030e76 closes #2264 2014-10-14 03:00:24 -04:00
barisusakli
835c58d27d mark read after infinite scroll
dont mark read if already read
2014-10-14 02:39:20 -04:00
barisusakli
6ff00a935f dont reverse infinite load admin/events 2014-10-13 23:36:08 -04:00
barisusakli
2b0957b8c7 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2014-10-13 22:25:40 -04:00
barisusakli
40fe40deac removed users:online set
using websockets.getConnectedClients directly
2014-10-13 22:25:34 -04:00
Julian Lam
62d0e08d6a stopped loader from crashing whenever NodeBB restarts 2014-10-13 19:46:42 -04:00
Barış Soner Uşaklı
129a438ebe Merge pull request #2256 from Spiritlebon/master
lint fix
2014-10-13 15:14:35 -04:00
barisusakli
fced152e41 read total from global object 2014-10-13 15:06:21 -04:00
barisusakli
be0d043b2b Merge branch 'master' of https://github.com/NodeBB/NodeBB 2014-10-13 14:20:11 -04:00
barisusakli
27833a3e91 min-width for user boxes in admin/manage 2014-10-13 14:20:08 -04:00
Julian Lam
97dba9ae39 fixed #2259 2014-10-13 13:03:17 -04:00
barisusakli
3c25204fdd removed clear log, doesnt work with logrotate-stream 2014-10-13 13:01:16 -04:00
barisusakli
e699c02b65 get less data 2014-10-12 23:46:58 -04:00
barisusakli
10ead05d4b another unused require 2014-10-12 18:04:16 -04:00
barisusakli
8cc1cc0f1b removed unused require 2014-10-12 18:02:28 -04:00
barisusakli
1eb95a71ae no need for $in 2014-10-12 17:40:59 -04:00
Spiritlebon
2b15de63c0 checked number before parseInt 2014-10-12 04:01:35 +02:00
Spiritlebon
35fc175ff6 Lint fix 2014-10-12 03:36:38 +02:00
psychobunny
2c95d8d82e fixed ajaxifying to advanced/logs 2014-10-11 16:30:07 -04:00
psychobunny
91e11e304f added link to forum homepage 2014-10-11 16:25:58 -04:00
barisusakli
feed33f6e2 closes #2100 2014-10-10 22:53:01 -04:00
barisusakli
035c32df66 dont need to pass value on upserts 2014-10-10 19:21:47 -04:00
psychobunny
b0ec0f52a4 cleanup 2014-10-10 16:56:44 -04:00
psychobunny
e6b8c0b32f fixed infinitescroll on flags & tags 2014-10-10 16:43:54 -04:00
psychobunny
7ee6f1d01c added cache buster to all scripts/css in acp 2014-10-10 16:41:03 -04:00
psychobunny
1226a2462a closes #2250 2014-10-10 16:40:05 -04:00
psychobunny
a24dde863b moved src/client/modules/admin/selectable to src/admin/modules/selectable #2250 2014-10-10 16:37:58 -04:00
psychobunny
4268d424a3 fixes require.js error in ACP 2014-10-10 16:34:30 -04:00
barisusakli
e052d8e5c1 log topic move 2014-10-10 15:44:02 -04:00
psychobunny
ffcb324d91 oh bootbox, I forgive you. (I lost hope in this actually being resolved upstream) 2014-10-10 03:17:50 -04:00
psychobunny
cad3f3017c moved iconSelect to admin/modules 2014-10-10 03:12:04 -04:00
barisusakli
e95c68e7d6 fix bookmark 2014-10-09 20:47:27 -04:00
barisusakli
29d90bc67d only use unique cids in isModerator 2014-10-09 19:53:10 -04:00
barisusakli
07a5aeaf15 closes #2251 2014-10-09 19:20:53 -04:00
psychobunny
e9c48f50f9 moved admin search into its own modules 2014-10-09 18:48:35 -04:00
psychobunny
dcd47f7ec5 removed admin/footer.js, moved code to admin.js instead 2014-10-09 18:42:42 -04:00
barisusakli
3819d11be2 #2110 2014-10-09 18:42:08 -04:00
psychobunny
4cbb7e9832 closes #2230
and I actually tested every single one. go me!
2014-10-09 18:26:59 -04:00
psychobunny
c787cd671b migrating tag editing #2230 2014-10-09 18:21:44 -04:00
psychobunny
2f150649ae migrating infinitescroll #2230 2014-10-09 18:19:50 -04:00
barisusakli
142ffc2920 fixed other post 2014-10-09 18:16:29 -04:00
psychobunny
b7bba928a4 migrating home page to new partials #2230 2014-10-09 18:13:24 -04:00
barisusakli
0d95089bfe send array of posts 2014-10-09 18:12:40 -04:00
barisusakli
4190b3c41c sort plugins alphabetically 2014-10-09 17:44:48 -04:00
barisusakli
97b9ba983c read both 2014-10-09 17:31:51 -04:00
psychobunny
00ff032060 migrating categories to new partial templating #2230 2014-10-09 17:25:54 -04:00
psychobunny
73220aaa3d didn't realize mousetrap was being used elsewhere in the code, added back to client again 2014-10-09 17:13:22 -04:00
psychobunny
2906ac9ecf removing the welcome to nodebb panel because...
Well we only originally put it there because we didn't have anything
useful to show on the homepage initially.  Now we have STATS
2014-10-09 17:08:43 -04:00
psychobunny
ce30379c25 fix panel layout on dashboard 2014-10-09 17:07:10 -04:00
barisusakli
4126fcfce4 i fail at this 2014-10-09 16:56:13 -04:00
barisusakli
1a04d8f07d removed duped banned, its in user:banned 2014-10-09 16:41:58 -04:00
barisusakli
5dbd4bcda9 fix status if it was never set before 2014-10-09 16:16:28 -04:00
barisusakli
5d79d2a75a closes #2191
added unique visitors analytics
only update it every hour
2014-10-09 15:06:20 -04:00
barisusakli
cb934acb5d #2111
need latest version from api
2014-10-09 13:50:25 -04:00
psychobunny
206b54c35d nitpicking en_GB 2014-10-09 03:21:58 -04:00
psychobunny
424efbeb06 Yo not enough rep mah homie. 2014-10-09 03:13:52 -04:00
psychobunny
124576f843 this is the canadian i8n, we have a duty to be extra polite. 2014-10-09 03:13:08 -04:00
psychobunny
5dcd610c1a grandma ma grammar
we should really run this stuff through a spellchecker before committing
2014-10-09 03:09:59 -04:00
psychobunny
3f876548ba linting
I also want to lint the rest of this file but I have no idea what will
explode and it's almost 1AM. Next time ;)
2014-10-09 00:44:16 -04:00
psychobunny
7a53205c76 linting and removed unnecessary comment 2014-10-09 00:42:30 -04:00
psychobunny
b17740f8d7 return error message if config is not ready 2014-10-09 00:38:43 -04:00
psychobunny
b42e57bfdd removing leveldb from our dbal
a) It isn't being maintained, especially not by me
b) I haven't seen anybody actually interested in this db software so
there's no real point in supporting it unless we have a few people who
are interested

If you ARE interested though - please contact me and we can figure
something out in future :)
2014-10-09 00:33:09 -04:00
psychobunny
daf967399f fixing my todos so that @barisusakli will sleep tonight. and linting. 2014-10-09 00:18:04 -04:00
psychobunny
d63f2ccd28 removed legacy version of ACP menu code 2014-10-09 00:11:28 -04:00
Julian Lam
c4a5af3b1b fixed issue where a missing config.json would end up suggesting 'undefined' as a base_url 2014-10-08 23:27:31 -04:00
barisusakli
e1c3bc9713 fix teasers 2014-10-08 19:28:36 -04:00
psychobunny
8abf2835a5 removed modules/admin and moved mousetrap + keybindings out of client #2245 2014-10-08 17:06:35 -04:00
psychobunny
339d2b0143 closes #2246 2014-10-08 16:53:22 -04:00
psychobunny
ffc07ff6d2 moved settings module deps into ACP #2245 2014-10-08 16:20:22 -04:00
psychobunny
d759a7d9dd moved semver out of client js files #2245 2014-10-08 16:15:43 -04:00
psychobunny
a2377d4682 removed unused asset 2014-10-08 16:11:56 -04:00
psychobunny
ed60deb3f5 fixed ACP from previous commit 2014-10-08 16:08:35 -04:00
psychobunny
0f759f9df4 ... not sure why that didn't all go through in one commit 2014-10-08 15:37:10 -04:00
psychobunny
b51c90dcb3 doing some reshuffling in public/src
public/src/admin and public/src/client; also some cleanup in
src/meta/js, no need to filter out admin files anymore
2014-10-08 15:36:47 -04:00
barisusakli
006322f386 much faster sitemap
no need to load all the data, when we only use slug and lastposttime
2014-10-08 15:26:18 -04:00
barisusakli
e1f67052d0 closes #2244 2014-10-08 15:06:40 -04:00
psychobunny
0d741f0031 commenting out the reconnection messages, it's annoying if you have 500 users online
not sure if we do need it though, so just leaving it there for now
2014-10-08 15:05:36 -04:00
psychobunny
f35a51e48d making the loading sequence less verbose
in particular, the js stuff all happened sequentially at the same time
so there was no need for multiple messages
2014-10-08 15:05:02 -04:00
psychobunny
6418948570 only need one "meta/css done" message 2014-10-08 14:52:52 -04:00
psychobunny
ae635a0083 minifier.css isn't used 2014-10-08 14:49:23 -04:00
psychobunny
2f53a3acc9 adding .gitignore public/uploads 2014-10-08 14:24:17 -04:00
psychobunny
3a069e028b refactored meta/js
yay I haz sourcemaps on windows now
2014-10-08 14:20:47 -04:00
barisusakli
61c73b7761 fix urls 2014-10-08 14:04:48 -04:00
barisusakli
4dcecbb310 gitignore and folders 2014-10-08 13:48:50 -04:00
barisusakli
1d1625f5c4 closes #2157 2014-10-08 13:46:36 -04:00
psychobunny
b1b25ada4d started removing ajaxify.loadTemplate #2230 2014-10-08 13:17:21 -04:00
psychobunny
2b5c3275f3 upping templates.js, please run npm install 2014-10-08 13:17:02 -04:00
psychobunny
396fecb94a removing an old comment 2014-10-08 12:32:17 -04:00
psychobunny
f149fb0191 linting, TIL that obj.$key is valid syntax 2014-10-08 12:22:39 -04:00
psychobunny
729ed6fbda all your semi-colons are belongs to me 2014-10-08 12:18:32 -04:00
psychobunny
f4b5090738 more linting 2014-10-08 12:11:06 -04:00
psychobunny
27496a08c4 fix emailer crash (line 35) 2014-10-08 12:08:35 -04:00
psychobunny
94ec07eb73 linting 2014-10-08 12:07:33 -04:00
psychobunny
fd95ac096d doing our US friends a favOUr 2014-10-08 03:03:43 -04:00
psychobunny
c2d21de9ac show my full name
wonder why we implemented this. lmao
2014-10-08 03:02:16 -04:00
psychobunny
61b8c7f673 moar typos 2014-10-08 03:01:34 -04:00
psychobunny
5376f07f6c @julianlam is an administator 2014-10-08 02:59:58 -04:00
psychobunny
85e0d1c03f more user-friendly error messages 2014-10-08 02:58:03 -04:00
psychobunny
01b8d1472e closes #2116 2014-10-08 02:40:27 -04:00
psychobunny
d632ba2242 fix post crash from 712bd3938f 2014-10-08 00:32:43 -04:00
psychobunny
4b295decf8 forgot to update meta.title.build in socket.io/meta.js 2014-10-08 00:28:16 -04:00
psychobunny
eb4baf62b5 closes #2235 2014-10-08 00:18:02 -04:00
psychobunny
298625225a use default 403 message for accounts 2014-10-08 00:06:43 -04:00
psychobunny
7bd49a96b2 #2235 2014-10-08 00:02:00 -04:00
psychobunny
3b511b59cb found a duplicate language string 2014-10-08 00:01:40 -04:00
psychobunny
1bdb80ce0a and so does 403 2014-10-07 23:55:56 -04:00
psychobunny
3c97829e85 404 now properly reads error messages 2014-10-07 23:55:13 -04:00
barisusakli
712bd3938f parse post in Topics.reply not in Posts.create
makes importer faster if md plugin is enabled
2014-10-07 20:36:48 -04:00
Julian Lam
e0fd24c087 adding contributing.md to root 2014-10-07 20:33:02 -04:00
Julian Lam
ea2fbcfcfc closed #2242 2014-10-07 19:49:29 -04:00
psychobunny
cf22fad6fd made the acp search a bit more cooler 2014-10-07 17:42:07 -04:00
psychobunny
8a978e46de #2241 2014-10-07 17:07:42 -04:00
psychobunny
7396c363d7 press / to highlight search input box 2014-10-07 17:01:57 -04:00
psychobunny
b2866abf5c another fix for express deprecations 2014-10-07 17:01:55 -04:00
barisusakli
f6f6ca7f76 closes #2132 2014-10-07 16:21:16 -04:00
psychobunny
c57dc25ea7 closes #2241 2014-10-07 15:46:15 -04:00
barisusakli
0912c7a2aa closes #2240 2014-10-07 13:55:40 -04:00
barisusakli
ad4fff649c closes #2234 2014-10-07 13:08:28 -04:00
barisusakli
26cfe4a3c3 fix ban upgrade closes #2239 2014-10-07 12:34:41 -04:00
Julian Lam
0772e8c41f fixed #2236 - using !gte instead of lte 2014-10-07 02:12:22 -04:00
Julian Lam
b481a28b6e sendFile instead of sendfile 2014-10-07 01:54:16 -04:00
barisusakli
394a01fdef closes #2188 2014-10-06 18:19:37 -04:00
psychobunny
c827485de5 more user-friendly message for installing/uninstalling plugins 2014-10-06 18:01:45 -04:00
psychobunny
d7c796fba5 closes #2228 2014-10-06 18:00:42 -04:00
psychobunny
53fdef1d17 fixing deprecation notice for morgan 2014-10-06 17:40:56 -04:00
psychobunny
345896e8eb remove intervals if navigating to a different page in ACP 2014-10-06 17:25:55 -04:00
barisusakli
85da5fb054 closes #2189 2014-10-06 16:48:32 -04:00
barisusakli
6ca06a8e54 closes #2233 2014-10-06 16:16:31 -04:00
barisusakli
348911fd2d closes #2195 2014-10-06 16:03:59 -04:00
barisusakli
bc1281a201 update deps
dbsearch, string, underscore, validator
2014-10-06 14:00:10 -04:00
barisusakli
e35dd60f8f closes #1940 2014-10-06 13:43:41 -04:00
barisusakli
ccf58ed40e closes #2213 2014-10-06 13:11:12 -04:00
barisusakli
258e14e20c closes #2225 2014-10-06 12:41:56 -04:00
psychobunny
2a2490541f some minor linting elsewhere 2014-10-04 18:56:33 -04:00
psychobunny
31b2faf2c5 oops, this one was my bad 2014-10-04 18:54:23 -04:00
psychobunny
84b9b86dd1 no better way to spend your saturday
inb4 linting bonanza
2014-10-04 18:52:39 -04:00
psychobunny
d70aab6a1e more linting 2014-10-04 18:51:18 -04:00
psychobunny
89e4a67e95 linting 2014-10-04 18:50:03 -04:00
psychobunny
1b2ccda40b closes #2231; see #2218 2014-10-04 18:47:56 -04:00
psychobunny
bf852d8329 closes #2078 2014-10-04 18:30:21 -04:00
psychobunny
c14b5e3d3a updating templates.js to 0.1.0 2014-10-04 18:25:50 -04:00
psychobunny
319defd1d2 moved meta:js.compiled event to after minfile is committed to disk, closes #2173 2014-10-04 16:19:45 -04:00
psychobunny
fa8613d09d moving meta:css.compiled further down, currently it gets emitted twice 2014-10-04 16:19:44 -04:00
psychobunny
872e28099f fixing previous commit properly 2014-10-04 16:19:43 -04:00
psychobunny
edf37f3e0c wow, logic fail
if you called the same event twice, it will reduce count anyways (so I
could have event.any(a,b,c) and call a three times and it would
complete.
2014-10-04 16:19:41 -04:00
barisusakli
27c214486b closes #2226 2014-10-04 16:13:37 -04:00
psychobunny
5681d51778 pressing enter in acp search will search for the first match 2014-10-04 16:04:50 -04:00
psychobunny
39de76fa5c rearranging manage/users routes 2014-10-04 15:52:20 -04:00
psychobunny
901ef3d382 fix false positives from showing up in search 2014-10-04 15:48:20 -04:00
psychobunny
39e59ee918 fixed link to plugins page on widgets 2014-10-04 15:40:57 -04:00
psychobunny
ced0087347 hide the plugins and authentication tabs if no plugins detected 2014-10-04 15:38:48 -04:00
psychobunny
307a04c162 closes #2227 2014-10-04 15:35:31 -04:00
psychobunny
ba4392cda0 selectable - shift clicking deselects items in a group 2014-10-04 01:45:46 -04:00
barisusakli
cf5ac4fb74 filter before getting topics 2014-10-03 21:37:43 -04:00
barisusakli
31a1f85a7e removed year from popular 2014-10-03 20:39:10 -04:00
Julian Lam
3accfaebc9 fixing dashboard ACP js to show a more informative message for people running master branch 2014-10-03 20:22:50 -04:00
Julian Lam
03f926c560 updating some deps #2218 2014-10-03 20:22:50 -04:00
barisusakli
bc016321ac closes #2226 2014-10-03 19:34:05 -04:00
psychobunny
ba9da2b256 fixed selectable init for search 2014-10-03 19:00:07 -04:00
psychobunny
a4f7ad3161 admin/manage/users styling 2014-10-03 18:57:33 -04:00
psychobunny
eb5630caa7 refactored selectable to use 'selected' instead of 'dropped'; fixed position relative bug 2014-10-03 18:43:20 -04:00
psychobunny
44b39bc69d forgot tpl in previous commit 2014-10-03 18:43:18 -04:00
psychobunny
04b7dfeb02 updated manage/users to use new drag and drop selector 2014-10-03 18:43:17 -04:00
psychobunny
a6481aefe3 cleanup 2014-10-03 18:43:16 -04:00
psychobunny
7a2ccf6031 hardcoded parentElement by accident
so that's why it doesn't work on other pages. derp
2014-10-03 18:43:15 -04:00
psychobunny
a474f111a3 cleanup 2014-10-03 18:43:14 -04:00
psychobunny
9c67d5742e added event callbacks for onSelected and onUnselected 2014-10-03 18:43:12 -04:00
Julian Lam
cea23454c6 fixed #2220 2014-10-03 18:42:51 -04:00
psychobunny
13c9da6bff selectable - click/shiftclick to select as well 2014-10-03 18:01:50 -04:00
psychobunny
a23b0baf25 closes #2221 2014-10-03 17:58:44 -04:00
psychobunny
bcdb87f488 fixed selectable 2014-10-03 17:56:07 -04:00
psychobunny
06db3c1c3d fixed tag selectability after search 2014-10-03 17:56:05 -04:00
psychobunny
16a4824017 fixed tag searching 2014-10-03 17:56:04 -04:00
psychobunny
e86697b36f closes #2223, ability to select multiple tags 2014-10-03 17:56:03 -04:00
Julian Lam
4b9e4a0109 closed #2224 2014-10-03 17:29:51 -04:00
psychobunny
1644c1f9e9 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2014-10-03 17:26:19 -04:00
psychobunny
e211628419 moved module less files out of components and into a separate folder 2014-10-03 17:26:15 -04:00
psychobunny
2db93c9219 created selectable module for selecting / grouping elements 2014-10-03 17:24:27 -04:00
psychobunny
2148e24969 added jquery drag and drop event libs 2014-10-03 16:55:00 -04:00
Julian Lam
60c45d8b9b fixed issue where non-admins would get maintenance mode header if maintenance mode was NOT enabled (logic errors, grrr..) 2014-10-03 16:39:27 -04:00
barisusakli
5db24fbe68 closes #2175 2014-10-03 16:31:53 -04:00
barisusakli
c37cfe4b3f closes #2209 2014-10-03 15:28:51 -04:00
Julian Lam
f5f84d9946 fixing upgrade text to use nodebb executable, removed exposure of option to run without upgrading 2014-10-03 15:28:02 -04:00
barisusakli
740c336480 typo 2014-10-03 15:16:04 -04:00
barisusakli
dba20160ce check length 2014-10-03 15:15:38 -04:00
Julian Lam
1b3b13716a 0.5.2-dev in ACP, just so people know it's not a released version 2014-10-03 15:13:12 -04:00
Julian Lam
19c69980ef Revert "bumping to 0.5.2 for dev purposes"
This reverts commit e6824fd727.
2014-10-03 15:12:58 -04:00
barisusakli
33780e6fdb closes #2133 2014-10-03 14:14:41 -04:00
barisusakli
73d358edc5 faster getTeasers
got rid of getPostIndices
2014-10-03 13:43:51 -04:00
barisusakli
43806e5921 replay ie host fix
https://github.com/NodeBB/NodeBB/pull/2216
2014-10-03 11:48:47 -04:00
barisusakli
0e3c5195db closes #2219 2014-10-03 11:34:12 -04:00
Julian Lam
b7ba6a0d8f fixed #2214 - each individual thread will create its own logrotate write handler, because if one is closed, everything crashes in a cascade effect because we're calling .write() after .end(), bleh. 2014-10-03 01:09:35 -04:00
Julian Lam
ee289c3226 latest translations and fallbacks 2014-10-02 23:51:51 -04:00
psychobunny
b4fb2d62a3 closes #2201 2014-10-02 20:47:59 -04:00
barisusakli
6a996bd718 closes #2210 2014-10-02 20:21:43 -04:00
barisusakli
8737c5a56d removed debug 2014-10-02 19:15:52 -04:00
barisusakli
eab180f305 crash fix 2014-10-02 19:03:03 -04:00
barisusakli
c72c876b04 check value 2014-10-02 18:57:21 -04:00
Julian Lam
4c70a0da4f removing postgres file from databases/ 2014-10-02 18:54:20 -04:00
barisusakli
c12b159bb5 temp debug 2014-10-02 18:51:08 -04:00
psychobunny
806b115782 don't attempt to update graphs if we're not connected 2014-10-02 18:33:08 -04:00
psychobunny
6a6f0a3b78 app.isConnected check 2014-10-02 18:32:36 -04:00
psychobunny
e20747c191 closes #2202 2014-10-02 18:30:51 -04:00
psychobunny
9c8395808c use page visibility api instead of window.onblur
this lib supports most major browsers
2014-10-02 18:29:47 -04:00
Julian Lam
24ac7ba316 better templating and styling for #2099 2014-10-02 18:26:43 -04:00
barisusakli
6f40a731f5 trigger posts loaded so masonry kicks in 2014-10-02 18:18:55 -04:00
barisusakli
2af077544b make sure postcount isnt NaN 2014-10-02 18:10:10 -04:00
barisusakli
32d0e0d7e5 dont update category post coint if topic post count is invalid 2014-10-02 18:06:19 -04:00
psychobunny
974a091f1b Merge branch 'master' of https://github.com/NodeBB/NodeBB 2014-10-02 17:55:33 -04:00
psychobunny
7243aebee0 fixed supervisor to ignore committed minified file 2014-10-02 17:55:30 -04:00
barisusakli
6aa53b8323 nextStart changes, fixed move topic notification text 2014-10-02 17:46:43 -04:00
Julian Lam
5ba88b7152 fixed #2208 2014-10-02 17:08:49 -04:00
psychobunny
e5681097f4 added error to minification step 2014-10-02 17:02:14 -04:00
psychobunny
bc4969be5b disable chart tooltips if mobile 2014-10-02 16:40:46 -04:00
psychobunny
9d53de5f70 oops 2014-10-02 16:00:17 -04:00
psychobunny
42d3656ecc fixing 2014-10-02 15:59:05 -04:00
Julian Lam
85048a5f75 closed #2203 2014-10-02 15:58:13 -04:00
Julian Lam
1eb9016a77 fixed #2207 2014-10-02 14:38:52 -04:00
barisusakli
043a73b4ae changed none to hidden 2014-10-02 14:30:54 -04:00
barisusakli
de98df842d priv fix 2014-10-02 13:55:01 -04:00
psychobunny
a67c501eb8 temporary solution for #2206 2014-10-02 13:38:42 -04:00
barisusakli
7b8656ef8b facebook share doesn't display & 2014-10-01 19:00:26 -04:00
barisusakli
b8df95da98 check message 2014-10-01 16:58:04 -04:00
Barış Soner Uşaklı
6165db3e00 Merge pull request #2198 from Schamper/fix/settings-message
Fix settings save message
2014-10-01 16:42:40 -04:00
Schamper
883422760d Fix settings save message 2014-10-01 22:30:22 +02:00
barisusakli
cf252a29a7 closes #2196 2014-10-01 15:32:54 -04:00
barisusakli
977cd98a79 dont crash if user doesn't have email 2014-10-01 00:29:51 -04:00
Julian Lam
e6824fd727 bumping to 0.5.2 for dev purposes 2014-10-01 00:01:57 -04:00
Julian Lam
f082849126 removing console.log 2014-09-30 23:59:28 -04:00
Julian Lam
43db2289c2 moving db selection into db.connect, where it should be 2014-09-30 23:57:03 -04:00
Julian Lam
35ac6600ba Revert "prematurely bumping next version up, for development purposes"
This reverts commit c792fc68d3.
2014-09-30 23:37:03 -04:00
psychobunny
f41b0fe3ce removing packages 2014-09-30 23:35:18 -04:00
barisusakli
5ff293109d fix getUnreadByField 2014-09-30 23:20:25 -04:00
Julian Lam
4f2603afd1 closed #2185 2014-09-30 21:48:39 -04:00
barisusakli
31db0d78b1 return empty array instead of undefined 2014-09-30 18:27:23 -04:00
psychobunny
7cde61f4d6 logger styling first pass 2014-09-30 17:06:57 -04:00
psychobunny
b31feac253 events page first pass 2014-09-30 17:05:04 -04:00
psychobunny
ab915b6ed7 first pass advanced/database 2014-09-30 17:02:53 -04:00
psychobunny
05ff80b2e0 widgets page first pass 2014-09-30 16:52:16 -04:00
psychobunny
52229113b6 plugins page first pass, separated list of plugins 2014-09-30 16:37:41 -04:00
barisusakli
3865fd3ab9 fixes crash is sets is empty 2014-09-30 16:10:26 -04:00
psychobunny
bfc9cae1b2 groups first pass 2014-09-30 15:37:53 -04:00
psychobunny
0aa08f8bd9 users page first pass 2014-09-30 15:31:33 -04:00
psychobunny
178aa473fc categories page first pass 2014-09-30 15:28:36 -04:00
psychobunny
3e7f0531b4 language page 2014-09-30 15:25:35 -04:00
psychobunny
199a13d730 closes #2186
I think I missed that lesson in grade 3
2014-09-30 01:03:31 -04:00
Julian Lam
c792fc68d3 prematurely bumping next version up, for development purposes 2014-09-29 20:00:39 -04:00
Julian Lam
6b786012d8 removed console.log 2014-09-29 19:50:57 -04:00
Julian Lam
c9228f1483 0.5.1 2014-09-29 19:41:23 -04:00
Julian Lam
343ff18014 closed #2179 2014-09-29 19:31:41 -04:00
barisusakli
2b115e75c6 fix login days value 2014-09-29 19:29:13 -04:00
barisusakli
62084a012e closes #2179 2014-09-29 19:28:25 -04:00
Julian Lam
30b2f55ebc closed #2149 2014-09-29 19:05:38 -04:00
psychobunny
2b5d0e89a5 up'ing templates.js 2014-09-29 19:05:38 -04:00
psychobunny
1e5c172f5e up'ing templates.js 2014-09-29 18:55:08 -04:00
barisusakli
a505896185 forgot db require 2014-09-29 18:36:14 -04:00
barisusakli
18cfdd9dde possible fix to travis 2014-09-29 18:32:09 -04:00
barisusakli
653865a214 moved up trace 2014-09-29 18:13:32 -04:00
barisusakli
e79e370e59 check undefined middleware 2014-09-29 18:09:47 -04:00
psychobunny
d0452fb93f random attempt to fix traviscl 2014-09-29 17:59:39 -04:00
Julian Lam
632fb3a618 closed #2184 2014-09-29 17:51:29 -04:00
psychobunny
b877a4e7b4 linting 2014-09-29 16:59:58 -04:00
psychobunny
f86e4256a1 semicolon 2014-09-29 16:58:23 -04:00
psychobunny
7b9815aa3b linting 2014-09-29 16:58:11 -04:00
barisusakli
29d99a0ecf closes #2177 2014-09-29 16:54:40 -04:00
barisusakli
9c996e4b99 on config save update meta.config on all workers
also dont make 20 socket.emit calls for each setting field, everything
will be send in 1 socket call.
2014-09-29 16:35:13 -04:00
psychobunny
219cd9661f improved menu sliding 2014-09-29 14:29:34 -04:00
psychobunny
4b5112e60a mobile swipe-in sidemenu for acp 2014-09-29 14:14:30 -04:00
psychobunny
95740ae8f9 stop. hammer time! 2014-09-29 13:56:25 -04:00
psychobunny
6867c10058 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2014-09-29 13:21:53 -04:00
psychobunny
b9ac2a3207 I can smell feature creep coming from around the corner
title tags for legend
2014-09-29 13:21:48 -04:00
barisusakli
2a1f9600e6 less event logs for notif pruning 2014-09-29 13:09:34 -04:00
psychobunny
8c9d362535 fixed responsive pie charts 2014-09-29 13:09:08 -04:00
psychobunny
456f087dea adding some padding between legend columns 2014-09-29 13:08:04 -04:00
psychobunny
6a8ccf1ad5 now getting topic names for topics presence chart; adjusted layout to make it more responsive 2014-09-29 12:59:34 -04:00
Julian Lam
dedf7a6715 closed #2087 2014-09-29 12:47:52 -04:00
barisusakli
d303dea6c7 closes #1986 2014-09-29 12:30:07 -04:00
psychobunny
8b0685754e push pie charts down if container is too compact 2014-09-29 12:25:09 -04:00
psychobunny
2388f8b815 hopefully baris stops bugging me about responsive dashboard 2014-09-29 12:16:49 -04:00
Julian Lam
625247611b closed #1959 2014-09-29 12:13:20 -04:00
psychobunny
318e4b5f6b moving the legend up a bit for pie charts 2014-09-29 12:01:15 -04:00
psychobunny
2f9193c419 closes #2174 2014-09-29 11:51:18 -04:00
psychobunny
8d149cb2ee moved admin related partials from vanilla into core 2014-09-29 11:27:04 -04:00
psychobunny
3b48668385 mobile optimizations for acp header 2014-09-29 10:24:36 -04:00
psychobunny
587f805763 don't download the acp search index on mobile 2014-09-29 10:18:37 -04:00
psychobunny
186790f2ba increased interval to 5s, should be okay 2014-09-29 04:28:51 -04:00
psychobunny
cb84b79bbc 'no users browsing' feature for presence chart 2014-09-29 04:26:49 -04:00
psychobunny
3634cebff7 added legend for topics presence chart 2014-09-29 04:07:36 -04:00
psychobunny
a46006ba64 cleanup 2014-09-29 03:43:55 -04:00
psychobunny
6fb596c1c6 click on pie chart to take you to topics page 2014-09-29 03:41:52 -04:00
psychobunny
51c3f0d77a topic presence graph, coolest one yet imo 2014-09-29 03:39:28 -04:00
psychobunny
4fafc6804a adding some predefined colors 2014-09-29 02:30:40 -04:00
psychobunny
c260d4e1c0 fix horizontal scrollbar 2014-09-29 02:20:18 -04:00
psychobunny
3104cfb26b no, I am not smarter than a 5th grader 2014-09-29 02:17:16 -04:00
psychobunny
c18f4998fd legends for the pie charts 2014-09-29 02:11:20 -04:00
psychobunny
b34ec8d732 user presence pie chart 2014-09-29 02:00:35 -04:00
psychobunny
f549ef8e26 responsive pie chart 2014-09-29 01:10:14 -04:00
psychobunny
af0cdeef14 removing the mystery #taskbar 2014-09-29 01:08:48 -04:00
Julian Lam
37c64e9a11 apparently, the "compress" option doesn't play nice with socket.io, so I'm disabling it 2014-09-29 01:08:26 -04:00
psychobunny
744c55e776 piecharts ftw, also started re-arranging the dashboard 2014-09-29 00:33:28 -04:00
Julian Lam
e012479ab5 adding socket.io client lib into the minfile 2014-09-29 00:26:43 -04:00
Julian Lam
a59934fd65 only the cluster_setup thread will commit css to file 2014-09-29 00:26:43 -04:00
Julian Lam
c2fd89e050 committing of compiled js and css to file on startup 2014-09-29 00:26:43 -04:00
barisusakli
e8dc9fed3c remove unnecessary index
the _key:1 score:-1 index already handles reverse sorting on score
2014-09-29 00:20:54 -04:00
psychobunny
81bc481efc removing page views from the dashboard stats 2014-09-28 23:52:19 -04:00
psychobunny
ca4047dc4a fixed tag modal styling 2014-09-28 21:22:48 -04:00
psychobunny
ad47874bd3 cleanup 2014-09-28 21:20:52 -04:00
psychobunny
ed35e4bcef switching /admin/index to /admin/dashboard 2014-09-28 21:20:34 -04:00
psychobunny
341959be82 ultimate acp route refactorizationing 2014-09-28 21:09:40 -04:00
psychobunny
6a9b131223 did some much needed spring cleaning of the admin less files 2014-09-28 20:39:10 -04:00
psychobunny
2cebeeb1ca don't need appearance header/footer tpls anymore 2014-09-28 20:25:43 -04:00
psychobunny
385632e173 moved over admin/appearance/widgets into extend namespace
cleaning up my own todo's in record time, @barisusakli will be proud
2014-09-28 20:22:04 -04:00
psychobunny
0ebe4381b2 legend for graphs
(duh, apparently I'm the only person who would have known what this
graph represents)
2014-09-28 20:02:15 -04:00
psychobunny
df2227259b realigning menu 2014-09-28 19:49:26 -04:00
psychobunny
d4b5ea4e1a responsive graphs 2014-09-28 15:08:27 -04:00
Julian Lam
668b17082d latest translations 2014-09-28 13:32:24 -04:00
barisusakli
4af54d48f6 closes #2169 2014-09-27 19:23:52 -04:00
psychobunny
2ec93ba911 some more styling to dashboard 2014-09-27 19:15:16 -04:00
psychobunny
0d01b0a734 styling active users modal to look like the other stats 2014-09-27 19:07:09 -04:00
barisusakli
cd99654477 closes #2046 2014-09-27 18:53:57 -04:00
psychobunny
dfcb8b9427 fixing graph labels 2014-09-27 18:52:50 -04:00
psychobunny
348f1cdbc7 no need for plugins/themes link anymore 2014-09-27 18:41:55 -04:00
psychobunny
d5dbc367fb rejigging dashboard layout 2014-09-27 18:41:53 -04:00
barisusakli
6f3fafba46 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2014-09-27 18:35:14 -04:00
barisusakli
212e15b2c2 fixin redis zrevrangebyscore to return value score 2014-09-27 18:35:11 -04:00
psychobunny
1d4710edce graphs - update hour labels when a new hour passes 2014-09-27 18:14:18 -04:00
barisusakli
e2e71da4e1 Merge remote-tracking branch 'origin/unread-refactor' 2014-09-27 18:10:45 -04:00
barisusakli
2bc7007953 removed sendUnread function 2014-09-27 18:09:25 -04:00
psychobunny
70831f5888 graph pm/am fix 2014-09-27 18:02:57 -04:00
barisusakli
c2d97d8ea7 Merge remote-tracking branch 'origin/master' into unread-refactor 2014-09-27 18:02:48 -04:00
psychobunny
d79b6b3803 forum traffic graph - unique visitors vs pageviews 2014-09-27 18:00:12 -04:00
barisusakli
6535a730fd upgrade script to delete tid:<tid>:read_by_uid 2014-09-27 17:57:56 -04:00
barisusakli
34106aa209 fix fields 2014-09-27 17:46:39 -04:00
barisusakli
5fc760c6c4 unread changes 2014-09-27 17:41:49 -04:00
psychobunny
2b329b8337 charts baby 2014-09-27 16:15:47 -04:00
psychobunny
144992426d converted pageviews tracking to sorted set, and using pre-built getStatsForSet function
thanks @barisusakli
2014-09-27 16:06:01 -04:00
barisusakli
80ca6bb0a2 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2014-09-27 15:48:18 -04:00
barisusakli
9d25772b53 added sortedSetIncrBy 2014-09-27 15:48:16 -04:00
psychobunny
0b99244dfc forgot to remove while moving 2014-09-27 15:00:17 -04:00
psychobunny
99d98a7016 forgot to import alerts css 2014-09-27 14:58:30 -04:00
psychobunny
077dcaf704 moved site logo and favicon uploading to its own panel 2014-09-27 14:56:34 -04:00
barisusakli
176023d712 read poolsize from config 2014-09-27 13:27:03 -04:00
psychobunny
1e016d1aff styling tags.tpl 2014-09-27 13:22:22 -04:00
psychobunny
34a2444f07 refactored admin/tags a bit, now inputs are hidden behind a modal so we can see moar tags 2014-09-27 12:34:46 -04:00
psychobunny
0fa04cf9a0 ux - tags 2014-09-27 02:35:11 -04:00
psychobunny
9ae1675701 no need for this code anymore 2014-09-27 02:32:25 -04:00
psychobunny
d6757c1085 acp - sounds panel, completified 2014-09-27 02:16:50 -04:00
psychobunny
4b1afa8a8c ACP'ing the header title 2014-09-27 02:11:45 -04:00
psychobunny
3a34f508f1 email.tpl formatting 2014-09-27 02:07:31 -04:00
barisusakli
c5f9a8a111 increase poolSize to 10 from default 5 2014-09-27 01:20:42 -04:00
barisusakli
c5c97c784a optimize getPostIndices
only use 1 set when its in a topic
2014-09-26 22:19:26 -04:00
barisusakli
998ed24589 check topic cid 2014-09-26 20:53:29 -04:00
psychobunny
00269853f3 revert button (which doesn't work thanks to #2162) 2014-09-26 20:16:55 -04:00
psychobunny
3635cd21aa adding back a settings header so I can put the save buttons on the right side 2014-09-26 20:14:26 -04:00
psychobunny
2b90180e01 themed skins/themes pages 2014-09-26 20:07:19 -04:00
psychobunny
104b1daf2d formatting 2014-09-26 19:58:49 -04:00
psychobunny
10a683f369 theming customize page 2014-09-26 19:53:46 -04:00
psychobunny
59dae5eac0 removing pills from appearance pages 2014-09-26 19:48:54 -04:00
psychobunny
070039f8b8 more formatting 2014-09-26 19:47:19 -04:00
psychobunny
e4d51fbca0 formatting 2014-09-26 19:44:48 -04:00
psychobunny
c3336e4713 prevent panels from going too ridiculously large 2014-09-26 19:43:37 -04:00
psychobunny
1952149b4c settings pages done! 2014-09-26 19:43:12 -04:00
psychobunny
a348eded57 removed settings/header.tpl 2014-09-26 19:21:52 -04:00
psychobunny
eecf7b9dd5 put settings in its own category 2014-09-26 19:21:51 -04:00
psychobunny
89592618e3 deprecated {plugins.icon} and {authentication.icon}; moved icons to menu category 2014-09-26 19:21:49 -04:00
psychobunny
6a389e1d1c this menu is now badass 2014-09-26 19:21:48 -04:00
Barış Soner Uşaklı
eb9b628a75 Merge pull request #2161 from EisFrei/master
require plugins for the hooks to work
2014-09-26 18:57:49 -04:00
Martin Freisen
a258f2b20b include plugins for the hooks to work 2014-09-27 00:54:51 +02:00
psychobunny
362b57a88e languages done 2014-09-26 18:37:52 -04:00
psychobunny
d201f0fd23 fixed padding 2014-09-26 18:37:50 -04:00
Julian Lam
f44213ea97 Merge pull request #2160 from EisFrei/master
added hooks `action:groups.join` and `action:groups.leave`
2014-09-26 18:30:15 -04:00
Martin Freisen
ab90d7b9d4 added hooks action:groups.join and action:groups.leave 2014-09-27 00:23:44 +02:00
psychobunny
1616b8d3dd acp breadcrumbs 2014-09-26 18:04:03 -04:00
psychobunny
4880e2328d fixing active state on menu 2014-09-26 17:34:43 -04:00
psychobunny
e13537facd fixes to main menu 2014-09-26 17:28:45 -04:00
psychobunny
e63a7c462c minor styling 2014-09-26 16:58:12 -04:00
psychobunny
06b4e84fc1 acp - nanoscroller ftw 2014-09-26 16:56:04 -04:00
psychobunny
bc574b0e2b removing unnecessary links on acp header 2014-09-26 16:16:19 -04:00
psychobunny
3cf833acb9 nodebb logo 2014-09-26 16:15:52 -04:00
psychobunny
e91b7a1677 fixing accordion 2014-09-26 15:52:20 -04:00
psychobunny
a832af231a adding some pizza pizzaz 2014-09-26 15:50:11 -04:00
psychobunny
c60cbce14a acp menu - theming completified 2014-09-26 15:46:11 -04:00
psychobunny
2f6a123d32 acp menu - accordion effect 2014-09-26 15:46:09 -04:00
psychobunny
660cd184f4 deleting NOTES.md
clearly nobody maintains this, last updated half a year ago lmao
2014-09-26 15:33:50 -04:00
psychobunny
a621d4212e acp main menu themed 2014-09-26 15:25:31 -04:00
psychobunny
15b3437dba acp search messaging 2014-09-26 14:36:10 -04:00
psychobunny
d902ac1efe accidentally deleted bootstrap.js lolol
who needs bootstrap anyways
2014-09-26 14:31:53 -04:00
psychobunny
3854c883a2 eh, github for windows failing hard 2014-09-26 14:17:40 -04:00
psychobunny
8b9d58a72f moved BS out of vendor into admin 2014-09-26 14:17:31 -04:00
psychobunny
d5316dbe7a started theming acp 2014-09-26 14:17:04 -04:00
psychobunny
74c69842d1 ensure acp search box shows up if you start typing 2014-09-26 13:21:49 -04:00
Julian Lam
958432ca4a closing julianlam/nodebb-plugin-sso-oauth#8 -- if a templates directory is defined without that directory being present, NodeBB will no longer crash 2014-09-26 13:19:23 -04:00
Julian Lam
6e8bd4d615 adding a client-side hook, closes #2159 2014-09-26 11:18:59 -04:00
Julian Lam
9240d38c4c updated widgets minver @psychobunny 2014-09-25 17:16:49 -04:00
Julian Lam
3554887f10 back to using redis.auth 2014-09-25 17:13:09 -04:00
barisusakli
ebfc6d9785 #2152 dont pass undefined into parser 2014-09-25 16:58:59 -04:00
barisusakli
5f55cc947c watch unwatch
update on toggle, moved isFollowing to api return and template
2014-09-25 16:46:00 -04:00
psychobunny
b27af65f18 closes #2153 2014-09-25 16:12:26 -04:00
psychobunny
606263ace4 #2153 prevent jquery from attempting to load images that don't exist 2014-09-25 16:10:50 -04:00
barisusakli
97e4f13a4d fix page count 2014-09-25 15:53:53 -04:00
barisusakli
1202322700 fix acp users page 2014-09-25 15:13:54 -04:00
psychobunny
f53d783d3d fixed users view 2014-09-25 14:59:44 -04:00
psychobunny
3be951367f removed prev editor 2014-09-25 14:55:08 -04:00
psychobunny
06fd0fa34b ace editor 2014-09-25 14:54:22 -04:00
psychobunny
c2c569695f settings - allowing hidden inputs to be saved 2014-09-25 14:54:20 -04:00
psychobunny
a17cd6aacc ace editor 2014-09-25 14:54:18 -04:00
barisusakli
0eb4b93882 moved hasPassword to edit route
its only used there no need to display it everywhere user info is
retrieved
2014-09-25 14:11:03 -04:00
psychobunny
d4f47f4157 fixes to appearance/widgets page 2014-09-25 13:39:07 -04:00
psychobunny
62312638ed fixing pills 2014-09-25 13:35:07 -04:00
psychobunny
b468404506 refactored admin/themes.js 2014-09-25 13:29:08 -04:00
psychobunny
f98e3aaf64 segregated the "theme" route (now "appearance") into their own separate routes 2014-09-25 13:12:51 -04:00
psychobunny
27bd23ca5c more branding stuff 2014-09-25 13:01:26 -04:00
psychobunny
cf35423a20 this panel is actually custom html not custom JS 2014-09-25 12:44:26 -04:00
psychobunny
6af1e4f6d0 removing "branding" until I can figure out how to do this properly
(tbh, even I don't know how it works anymore)
2014-09-25 12:41:16 -04:00
psychobunny
0340f699a0 redirect /categories to /active 2014-09-25 12:34:07 -04:00
psychobunny
0a4deeabf8 improving search more 2014-09-25 12:32:49 -04:00
psychobunny
4e7f22a674 cleanup 2014-09-25 12:32:48 -04:00
psychobunny
282dc64fa5 improving the acp search experience 2014-09-25 12:32:46 -04:00
psychobunny
27a2af89c8 better styling for ACP search 2014-09-25 12:32:45 -04:00
Julian Lam
5a36c33fac fixed #2142 -- passing in cached (pre-required) redis module into socket.io so it uses the same redis module... why? who bloody knows. 2014-09-25 11:56:33 -04:00
psychobunny
1a18bf22aa linting 2014-09-25 11:41:13 -04:00
psychobunny
5d1906cd0c linting 2014-09-25 11:40:52 -04:00
psychobunny
12af6a33b5 closes #2037 2014-09-25 11:39:17 -04:00
psychobunny
467d486e58 closes #2145 2014-09-25 11:29:53 -04:00
psychobunny
99a56acab8 #1999 sending ajaxify-data to client on cold loads
commented out until we figure out what we're doing with the renamed
properties (see issue)
2014-09-25 11:22:11 -04:00
Julian Lam
b0323e4d3b closed #2150 2014-09-25 10:57:37 -04:00
psychobunny
dfccf6675a closes #1906 - please use require('templates.js'); instead 2014-09-25 10:49:51 -04:00
psychobunny
d081ecf368 fixed chatModal centering 2014-09-25 10:35:50 -04:00
psychobunny
da0eff6a4e double click the chat header to maximize 2014-09-25 10:30:17 -04:00
psychobunny
c692f7e8fe closes #2148 2014-09-25 10:28:16 -04:00
Julian Lam
05b8b4b43a latest translations 2014-09-25 10:01:28 -04:00
psychobunny
fe444ccac7 Merge pull request #2090 from akhoury/patch-1
cloning widgets Elements is dropping all events handlers
2014-09-25 09:59:20 -04:00
psychobunny
366c7841fe fixed tag styling in acp 2014-09-24 22:48:10 -04:00
psychobunny
9a1fe2e2cc apparently this line is moot too, then 2014-09-24 21:52:01 -04:00
psychobunny
6f937c59fb gitignore check for config.json too strict 2014-09-24 21:48:42 -04:00
psychobunny
11fada047e fixing search menu 2014-09-24 21:48:41 -04:00
barisusakli
1fe5a8788f check err 2014-09-24 21:37:36 -04:00
Barış Soner Uşaklı
412263f430 Update defaults.json 2014-09-24 20:09:42 -04:00
psychobunny
af2b66f438 closes #2107 2014-09-24 18:43:02 -04:00
psychobunny
e336188ccc admin/header.tpl use admin.css instead of stylesheet.css 2014-09-24 18:36:59 -04:00
psychobunny
81ce7f93ad compile admin stylesheet separately 2014-09-24 18:36:58 -04:00
psychobunny
28efeef844 latest bs3 2014-09-24 18:36:57 -04:00
psychobunny
bb9a0d8cab moving acp styling to core - now unaffected by selected themes 2014-09-24 18:36:55 -04:00
barisusakli
c000e852b5 closes #1935 2014-09-24 17:13:17 -04:00
psychobunny
016a98e7b1 make sure search dropdown is open if active 2014-09-24 16:25:22 -04:00
psychobunny
7c896768ce case insensitive acp searching 2014-09-24 16:01:34 -04:00
psychobunny
13dd686521 only add divider if there are results 2014-09-24 16:00:23 -04:00
psychobunny
027e8eb54c acp searching, closes #2140 2014-09-24 15:55:45 -04:00
psychobunny
977bc014f9 index acp files 2014-09-24 15:55:44 -04:00
barisusakli
73faa79a69 fix edit page csrf, category slug optional 2014-09-24 15:53:39 -04:00
barisusakli
da64eb0873 closes #2117 2014-09-24 15:42:49 -04:00
psychobunny
5d344b3dac linting 2014-09-24 14:49:16 -04:00
psychobunny
9f40cd03e8 on /admin/settings, render general 2014-09-24 14:47:58 -04:00
psychobunny
117b8dece4 settings acp refactor for dedicated routes 2014-09-24 14:45:49 -04:00
psychobunny
9b17ec9f26 updating database mock for core templates 2014-09-24 13:54:10 -04:00
psychobunny
bd4ab2a24c moving database mock into tests folder 2014-09-24 13:54:09 -04:00
barisusakli
6abb0ff4c8 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2014-09-24 13:50:45 -04:00
barisusakli
1a26cb0938 #2139 2014-09-24 13:50:43 -04:00
psychobunny
64b43d58ea moved core templates into nodebb core (admin, status pages, emails) 2014-09-24 13:45:11 -04:00
barisusakli
4eabf41a21 dont allow invalid status to be set 2014-09-24 13:36:32 -04:00
barisusakli
bedadd8b5f #2137 2014-09-24 00:07:24 -04:00
barisusakli
23197af725 closes #2114 2014-09-23 23:05:46 -04:00
Julian Lam
da2725ec8a upped markdown minver 2014-09-23 23:01:20 -04:00
Julian Lam
bc116c16e9 Merge branch 'hashtalk' 2014-09-23 22:28:47 -04:00
Julian Lam
ecea917d11 closed #2097 -- NodeBB will prefer using Redis as session store if at all possible 2014-09-23 17:18:44 -04:00
Julian Lam
20819e3dfd Revert "use redis session storage instead of connect-mongo"
This reverts commit 056f89d6cf.
2014-09-23 17:18:43 -04:00
barisusakli
8abb247870 fix mention regression 2014-09-23 17:12:37 -04:00
Julian Lam
f41be4ae8b exposed redis' "connect" method, so socket.io can call it from outside database/redis.js, fixed NodeBB requiring Redis as a socket.io store. It will now go back to using in-memory store per process, if no redis config is found in the NodeBB configuration. re: #2097 2014-09-23 17:09:46 -04:00
barisusakli
b1f492dec3 fix redis bulk zadd 2014-09-23 17:07:22 -04:00
Julian Lam
e1211527b0 Merge branch '0.5.1' into hashtalk
Conflicts:
	src/controllers/topics.js
2014-09-23 16:16:45 -04:00
Julian Lam
d7a69e51c1 Merge branch '0.5.1' into hashtalk 2014-09-23 16:13:50 -04:00
Julian Lam
528ee3ad05 Merge remote-tracking branch 'origin/hashtalk' into hashtalk 2014-09-23 16:02:38 -04:00
barisusakli
64c51d5cba check nid before pusing and marking read 2014-09-23 16:02:23 -04:00
Julian Lam
50a7c42f15 Merge remote-tracking branch 'origin/hashtalk' into hashtalk 2014-09-23 16:02:22 -04:00
Julian Lam
05e147b440 Merge branch 'master' of github.com:chronize/NodeBB into chronize-master 2014-09-23 16:00:11 -04:00
Julian Lam
abdcb32ad2 Merge pull request #2119 from Fusselwurm/patch-1
default for missing post_index parameter when topic pagination is used
2014-09-23 15:47:48 -04:00
psychobunny
a0da73dabd don't pass back err if plugin.json is corrupted 2014-09-23 15:03:13 -04:00
psychobunny
180625ece3 forgot to return just posts array 2014-09-23 14:00:28 -04:00
psychobunny
77dfc7378b filter:post.getPostSummaryByPids 2014-09-23 13:58:16 -04:00
psychobunny
0eb4fd89ef don't blow up nodebb if plugin.json is broken 2014-09-23 13:58:14 -04:00
barisusakli
fb764472dd closes #2125 2014-09-23 13:48:19 -04:00
Julian Lam
901470ce05 always pipe child output to parent 2014-09-23 13:44:32 -04:00
barisusakli
0767998022 closes #2124 2014-09-23 13:34:53 -04:00
psychobunny
99bacf910c oops - #2126 2014-09-23 13:33:36 -04:00
psychobunny
7f2254c9da closes https://github.com/NodeBB/NodeBB/issues/2126 2014-09-23 13:08:53 -04:00
Julian Lam
b6f7014a9d fixed infinite scroller so that it takes the height of OP into account when detecting when to load more posts while scrolling up 2014-09-23 13:05:43 -04:00
Julian Lam
a6abde2a2b fixed upward infinite scrolling so that it is less jarring 2014-09-23 13:05:43 -04:00
barisusakli
48c3619028 lowered chat zindex 2014-09-22 22:17:50 -04:00
barisusakli
2d5dc44ce5 closes #2123 2014-09-22 21:54:28 -04:00
barisusakli
515e663f85 getObjectsFix
return empty array if keys is empty or not an array
2014-09-22 21:47:20 -04:00
barisusakli
39392672a2 moved static
removed pageRouter middleware into routes,
helper method to setup page routes
2014-09-22 21:39:02 -04:00
Julian Lam
9b9e79ef27 re: #2099 2014-09-22 20:31:57 -04:00
Julian Lam
bfdc32a9c3 typo 2014-09-22 19:03:59 -04:00
psychobunny
0db93504ce forgot comma 2014-09-22 16:09:27 -04:00
psychobunny
2b90add560 fix for topics without category data (?)
@barisusakli lemme know if this is legit, if not, see line 195 as well
2014-09-22 16:08:40 -04:00
barisusakli
8b64e65095 cleaned up admin routes 2014-09-22 15:43:41 -04:00
barisusakli
21f65cbb6a crash fix 2014-09-22 12:39:25 -04:00
barisusakli
c640e01969 show stack 2014-09-21 22:07:08 -04:00
barisusakli
8c600ae15d stop tag autocomplete ajaxify 2014-09-21 19:24:51 -04:00
barisusakli
ba90b5d113 widget render change 2014-09-21 18:56:36 -04:00
Julian Lam
7597c654a0 refactored plugin and auth init a bit, and fixed issue where successive reloads caused old login strategies to be inadvertently preserved 2014-09-21 14:29:27 -04:00
barisusakli
5f2a66295c check keys 2014-09-21 13:30:20 -04:00
barisusakli
0914004e12 crash fix 2014-09-21 11:29:09 -04:00
Moritz Schmidt
d1273516b5 default for missing post_index parameter
Avoid getting NaN if post_index param is not set (NaN is passed through to redis, redis complains, and the user ends up at /404)
2014-09-21 10:12:20 +02:00
barisusakli
7d9054c2cf derp 2014-09-20 23:57:33 -04:00
barisusakli
7d93926ef7 removed async.map 2014-09-20 23:04:49 -04:00
barisusakli
5323934cc2 calculate page count in controller 2014-09-20 19:09:45 -04:00
barisusakli
b7fd4c22d4 removed checkPostIndex middleware
1 less call to get topic post count
2014-09-20 18:51:32 -04:00
barisusakli
a19c306f49 guest fixes 2014-09-20 18:07:46 -04:00
barisusakli
e2707353e9 dont return unnecessary data 2014-09-20 16:05:57 -04:00
psychobunny
a52c69d2a1 only send noscript paginator data on cold loads 2014-09-20 15:04:14 -04:00
Julian Lam
f891f49339 removing console.logs 2014-09-19 22:58:01 -04:00
Julian Lam
dab3667773 re: #2108, auth re-routing 2014-09-19 22:53:57 -04:00
barisusakli
ac301eaabe changed default to 1 2014-09-19 20:14:20 -04:00
barisusakli
4de658e096 checks 2014-09-19 19:45:16 -04:00
barisusakli
3d4dad226e crash fix 2014-09-19 19:24:28 -04:00
barisusakli
59120df71c bulk fix 2014-09-19 18:59:11 -04:00
barisusakli
630977fb99 added parentCid 0 to new categories 2014-09-19 18:42:26 -04:00
barisusakli
89e56794e8 check cid 2014-09-19 18:40:51 -04:00
Julian Lam
d13fcd3529 closed #2109 2014-09-19 16:17:51 -04:00
barisusakli
f3f4711a60 wait for callback 2014-09-19 15:54:16 -04:00
Julian Lam
aee8b87385 composer tweaks, hiding navbar when mobile composer is open 2014-09-19 14:39:48 -04:00
barisusakli
327d1c1bec some cleanup and callbacks for post 2014-09-19 14:25:48 -04:00
Julian Lam
f0d3b5dd00 updated package.json to use 0.5.1-ready themes 2014-09-19 09:12:13 -04:00
Julian Lam
2bcd43531a updated package.json to use 0.5.1-ready themes 2014-09-19 09:11:55 -04:00
Julian Lam
4393907ff6 closed #2112 2014-09-19 08:27:43 -04:00
Julian Lam
bae634e124 closed #2112 2014-09-19 08:27:27 -04:00
barisusakli
1bad2f79ee show megabyte values 2014-09-18 22:24:14 -04:00
barisusakli
7652f2bf39 escape input tag 2014-09-18 21:49:13 -04:00
Julian Lam
c32fdabc43 minor refactor 2014-09-18 21:20:05 -04:00
barisusakli
803a2436de wait for increment to complete before expire 2014-09-18 18:12:16 -04:00
barisusakli
1844250967 check err 2014-09-18 17:59:09 -04:00
barisusakli
93b83060be fix expireAt using millis 2014-09-18 17:56:03 -04:00
psychobunny
251351e245 forgot to require plugins 2014-09-18 17:44:24 -04:00
psychobunny
efe11a63a3 woops, wrong property name 2014-09-18 17:40:15 -04:00
psychobunny
9e7f929029 updated filter:sockets.sendNewPostToUids and added type 2014-09-18 17:36:34 -04:00
barisusakli
55cbaf6a19 #2032 2014-09-18 17:22:24 -04:00
psychobunny
8f916ed066 filter:sockets.sendNewPostsToUids 2014-09-18 17:09:40 -04:00
psychobunny
6844c828ca added a hook I didn't end up needing, but here it is anyway filter:posts.modifyUserInfo 2014-09-18 17:05:30 -04:00
barisusakli
926acd16b2 closes #2032 2014-09-18 14:04:22 -04:00
barisusakli
f377868764 closes #2064 2014-09-18 12:01:39 -04:00
barisusakli
63a7766ac1 closes #2027 2014-09-17 19:39:59 -04:00
barisusakli
0f258859a7 closes #2067 2014-09-17 19:01:00 -04:00
Julian Lam
309ac6fec5 adding semver lib to scripts 2014-09-17 18:41:03 -04:00
Julian Lam
7a61e9d0f8 latest translations 2014-09-17 18:38:36 -04:00
psychobunny
16accf6cd0 fixing groups.leave 2014-09-17 18:32:38 -04:00
barisusakli
6f3cb55709 closes #2071 2014-09-17 18:31:31 -04:00
psychobunny
2c1bab2b9a filter:post.getPosts now passes in uid 2014-09-17 18:10:19 -04:00
psychobunny
45383ce21e posts.getPostsByTid and posts.getPostsByPids now require a uid passed in 2014-09-17 18:10:01 -04:00
barisusakli
c1f3b94d67 closes #2073 2014-09-17 17:16:03 -04:00
barisusakli
a0cc2ee6a9 duh 2014-09-17 16:57:10 -04:00
barisusakli
3abbeb8795 show recent posts of child categories 2014-09-17 16:55:34 -04:00
Julian Lam
2e16306dc2 updated modules translations 2014-09-17 16:31:27 -04:00
barisusakli
4066607388 closes #2052 2014-09-17 16:29:07 -04:00
Julian Lam
cd135dda13 renamed middleware to applyCSRF, re: #2082 2014-09-17 16:11:11 -04:00
Julian Lam
0b7a21b8d1 Merge branch 'hashtalk' of github.com:NodeBB/NodeBB into hashtalk 2014-09-17 16:07:43 -04:00
Julian Lam
8bac0bf361 Merge branch 'csrf-excision' into hashtalk 2014-09-17 16:07:36 -04:00
Julian Lam
a061079995 fixed all POST routes to use new csrf middleware 2014-09-17 16:07:26 -04:00
psychobunny
1caf4806e8 closes https://github.com/NodeBB/NodeBB/issues/2103 2014-09-17 14:58:16 -04:00
psychobunny
004758f5bd closes https://github.com/NodeBB/NodeBB/issues/2104 2014-09-17 14:53:01 -04:00
psychobunny
91293350b5 closes https://github.com/NodeBB/NodeBB/issues/2101 2014-09-17 14:47:35 -04:00
Julian Lam
4f6b3055ff Merge branch '0.5.1' into csrf-excision 2014-09-17 14:39:51 -04:00
psychobunny
d6e0be52ce companion to 48c123592e - prevent deleting your own account if you're admin 2014-09-17 12:59:34 -04:00
Julian Lam
aa116e6b4d latest translations and fallbacks 2014-09-17 09:27:17 -04:00
Julian Lam
e9b373438d latest translations and fallbacks
Conflicts:
	public/language/de/user.json
	public/language/nl/user.json
	public/language/pl/user.json
	public/language/sv/user.json
	public/language/vi/user.json
	public/language/zh_CN/user.json
2014-09-17 09:25:11 -04:00
Julian Lam
74c438dc71 latest translations and fallbacks 2014-09-17 09:21:22 -04:00
psychobunny
a6089ba4aa closes https://github.com/NodeBB/NodeBB/issues/2096 2014-09-17 00:41:19 -04:00
psychobunny
ca7f35dd5e trimming alert title/message 2014-09-17 00:28:19 -04:00
barisusakli
40fff367d1 faster topic move 2014-09-16 23:28:04 -04:00
barisusakli
4b80bbb9c4 optimized user.delete 2014-09-16 22:25:12 -04:00
barisusakli
6a64a3ab92 check err 2014-09-16 21:45:46 -04:00
barisusakli
b48d81310c #2095 2014-09-16 21:43:11 -04:00
barisusakli
aae7f2434d closes #2088 2014-09-16 16:10:02 -04:00
Julian Lam
b80b0e1e99 re: #2098, chat message emails are now opt-in 2014-09-16 13:54:03 -04:00
Julian Lam
b85ff61de6 refactored chat notification system to wait a bit before sending notif/email, closes #2098 2014-09-16 13:28:21 -04:00
barisusakli
451c5b40fd removed debug 2014-09-16 13:10:30 -04:00
barisusakli
97cb138cfc doesnt seem to be used 2014-09-16 12:58:57 -04:00
psychobunny
a224e531f8 added a confirmation dialog that asks you to type in your username before being able to delete account 2014-09-16 12:58:38 -04:00
psychobunny
ae88eee8e3 improving the warning message before deleting account 2014-09-16 12:58:37 -04:00
barisusakli
ca486a1b07 update unread count
only for logged in users
2014-09-16 12:45:22 -04:00
barisusakli
0a936e5dd1 unreadTids 2014-09-16 12:38:31 -04:00
psychobunny
48c123592e prevent administrators from being deleted - first remove them from admin group 2014-09-16 12:20:06 -04:00
Julian Lam
45a0d0196b Merge branch '0.5.1' into hashtalk 2014-09-16 11:32:37 -04:00
Julian Lam
101288c75c Merge branch 'master' into 0.5.1 2014-09-16 11:32:00 -04:00
psychobunny
e60d88afa6 cluster by default is now opt-in 2014-09-16 11:17:57 -04:00
psychobunny
101ac701ef removed hardcoded silent flag from cluster setup 2014-09-16 11:11:25 -04:00
psychobunny
32a35164d4 ability to set # of workers to run via config or command line (default = max cpus) 2014-09-16 11:08:38 -04:00
barisusakli
51eac70f67 fixed derp 2014-09-16 11:07:59 -04:00
barisusakli
32257c9b2f updateUnreadCount 2014-09-16 11:06:10 -04:00
psychobunny
22577917da closes https://github.com/NodeBB/NodeBB/issues/2093 2014-09-16 10:37:10 -04:00
psychobunny
ab1c231b84 re-enabling updateLastOnlineTime - calling that middleware for page loads only instead of every API call 2014-09-16 10:17:27 -04:00
psychobunny
ecd00bb679 refactored widgets api call to render all at once rather than one area at a time, closes https://github.com/NodeBB/NodeBB/issues/2062 2014-09-16 10:12:12 -04:00
psychobunny
0ecaa05c76 rearranging routers to prevent multiple hits on incrementPageViews
and potentially updateLastOnlineTime
2014-09-16 09:32:42 -04:00
psychobunny
76fb2c3378 daily + monthly pageview analytics middleware 2014-09-16 09:31:44 -04:00
psychobunny
e5978e09f4 switching back to bcryptjs 2014-09-16 09:31:06 -04:00
Aziz Khoury
31631ca538 cloning widgets Elements is dropping all events handlers
Adding true will clone the handlers.

You might want to do the same for L150 and L161 's clone() usage, but I'll let you decide on that :)
2014-09-15 20:30:39 -04:00
barisusakli
ce0fdc201a closes #2086 2014-09-15 17:51:08 -04:00
barisusakli
31eccb8e7f configurable post delay before first post 2014-09-15 17:01:20 -04:00
barisusakli
9a96458f79 closes #2053 2014-09-15 16:26:25 -04:00
barisusakli
da86c46b4c Merge remote-tracking branch 'origin/0.5.1' into hashtalk 2014-09-15 14:36:27 -04:00
barisusakli
7c3dc4877a closes #2089 2014-09-15 14:34:01 -04:00
Julian Lam
84d4035597 Child categories no longer show up on homepage, re: #2080 2014-09-15 10:50:58 -04:00
Julian Lam
6e21b7a830 disabled parents no longer show up as parents of a category, re: #2080 2014-09-15 10:47:38 -04:00
Julian Lam
9cba8d7ecb latest translations and fallbacks, closes #2085" 2014-09-15 08:35:10 -04:00
Julian Lam
d22fe4ad1e removing disabled categories from being listed as children, #2080 2014-09-14 21:25:21 -04:00
barisusakli
51cefb00d2 add support to set parentCid to 0 2014-09-14 19:59:44 -04:00
Julian Lam
cca365432b closes #2084 2014-09-14 19:35:10 -04:00
barisusakli
82e721e854 send new post/topic to users who can read it 2014-09-14 14:19:36 -04:00
barisusakli
655f5087d9 Merge remote-tracking branch 'origin/master' into hashtalk 2014-09-14 12:08:44 -04:00
barisusakli
e10fbfa0d2 Merge remote-tracking branch 'origin/0.5.1' into hashtalk 2014-09-14 12:08:23 -04:00
barisusakli
f1d5db6be0 pagination fix 2014-09-14 12:07:29 -04:00
barisusakli
ddb02978c8 cleanup 2014-09-14 12:07:28 -04:00
barisusakli
e56b18822b added topic titles to notifs
upvote, favourite and flag has topic titles now
2014-09-14 12:07:28 -04:00
barisusakli
b3d9db10f2 notification fixes
made post notifications unique per post so they dont overwrite other
types.
2014-09-14 12:07:27 -04:00
barisusakli
9466d7ced4 faster notif prune
no need to loop tru and check datetime since notifications is a sorted
set now
2014-09-14 12:07:27 -04:00
barisusakli
35a903f9c8 closes #2074
when new notifications are pushed to uids clear their old notifications.
2014-09-14 12:07:26 -04:00
barisusakli
5204dc1e23 removed total count 2014-09-14 12:07:26 -04:00
barisusakli
523f245cd8 removed derp 2014-09-14 12:07:25 -04:00
barisusakli
7a61645256 less db calls 2014-09-14 12:07:25 -04:00
barisusakli
dc441c2873 check err 2014-09-14 12:07:24 -04:00
barisusakli
4e6719e0aa added filterUids method to privileges
used to filter uids on a single category
2014-09-14 12:07:24 -04:00
barisusakli
493d0dea1e part 1 of notif refactor 2014-09-14 12:07:23 -04:00
Julian Lam
f231b500d7 Merge branch '0.5.1' into csrf-excision 2014-09-14 10:29:35 -04:00
Julian Lam
40e5ad075f started work on #2082 2014-09-14 10:21:32 -04:00
barisusakli
e34ef71acd fixed resetLockout 2014-09-12 19:07:06 -04:00
barisusakli
01f983e29c markAsRead improvement
takes in an array of tids instead of marking topics read 1 by 1
same for the category.markAsRead function
2014-09-10 21:44:19 -04:00
psychobunny
61871fae77 merging #2077 2014-09-10 16:14:01 -04:00
psychobunny
e738d592dc fixed potential NaN issue https://github.com/NodeBB/NodeBB/issues/2077 2014-09-10 16:10:53 -04:00
psychobunny
52b58b441e closes https://github.com/NodeBB/NodeBB/issues/2077 2014-09-10 16:04:33 -04:00
barisusakli
b7eddda8c8 one more fix 2014-09-09 18:32:09 -04:00
barisusakli
20eb4def1d possible fix to online guest count
using socket io rooms instead of syncing between workers.
2014-09-09 18:05:21 -04:00
barisusakli
e79c980421 delete anything older than 1 week 2014-09-08 18:09:35 -04:00
barisusakli
5222edb624 sortedSetsAdd
using mullti/bulk for redis/mongo
lets you add a score/value pair to multiple sorted sets at once
2014-09-08 16:13:48 -04:00
Baris Usakli
f16ced6bcc removed path from notif, its created on the fly when retrieveing the notifications 2014-09-08 01:22:47 -04:00
barisusakli
aed9a9f76f removed console.log 2014-09-07 21:41:39 -04:00
barisusakli
9b26b60082 fixed cron 2014-09-07 20:45:31 -04:00
barisusakli
61e1c51ef6 run notif prune every 30mins
disabled post edit log
2014-09-07 20:03:29 -04:00
barisusakli
a56ab7f15a closes #2061 2014-09-07 16:41:27 -04:00
barisusakli
242721c73f using websockets 2014-09-07 14:13:05 -04:00
barisusakli
6cd84ebe81 removed parseInt from sorts 2014-09-07 13:03:06 -04:00
barisusakli
3c8ca63608 fixed getCidsByPids 2014-09-07 12:36:50 -04:00
barisusakli
ec32a3d243 mising reuqire 2014-09-07 12:16:01 -04:00
psychobunny
0727c2a0bf forgot winston 2014-09-07 12:12:12 -04:00
barisusakli
2252ab7479 notifications.prune
run every hour
dont get more than 500 notifications
2014-09-07 03:17:51 -04:00
barisusakli
273db693e7 closes #2051 2014-09-06 23:57:51 -04:00
barisusakli
cc3786e22d closes #2055 2014-09-06 22:28:09 -04:00
barisusakli
b7ee875b12 user.isOnline fix
wont hit db on every user socket connect or user disconnect
2014-09-06 22:08:55 -04:00
barisusakli
fe58ea55d4 moved debugs 1 level up increased key limit to 100 2014-09-06 20:47:20 -04:00
barisusakli
57e204df8e removed most of the debug
dont get more than 6 usernames for upvote tooltips
generatePostPaths wont check null pids
2014-09-06 20:46:18 -04:00
barisusakli
0ad42873d5 nasty 2014-09-06 04:30:25 -04:00
barisusakli
4b20e78de2 hopefully final fix 2014-09-06 04:29:20 -04:00
barisusakli
3f4ede0778 parseInt 2014-09-06 04:11:44 -04:00
barisusakli
518d731562 one more time 2014-09-06 04:09:13 -04:00
barisusakli
f9c9f58561 post_index fix 2014-09-06 03:56:15 -04:00
barisusakli
34a4a2103f isNan check 2014-09-06 03:45:34 -04:00
barisusakli
edd73b5be2 again 2014-09-06 03:35:28 -04:00
barisusakli
5160a4f90f getTopicwithposts 2014-09-06 03:25:32 -04:00
barisusakli
ef329c95df fix 2014-09-06 03:21:00 -04:00
barisusakli
0b83657868 more trace 2014-09-06 03:19:13 -04:00
barisusakli
0d5605ab35 trace in addPostData 2014-09-06 03:09:41 -04:00
barisusakli
126b1c4f4c only get 20 chats 2014-09-06 02:59:40 -04:00
barisusakli
0cfa430444 crash fix 2014-09-06 02:46:43 -04:00
barisusakli
017f6bde2c 50 2014-09-06 02:45:38 -04:00
barisusakli
7405051924 50 2014-09-06 02:41:04 -04:00
barisusakli
5fd199ae8a check privs pids 2014-09-06 02:39:54 -04:00
barisusakli
51cafe075c only get 25 posts 2014-09-06 02:34:39 -04:00
psychobunny
099a04c1c8 disabling pushUnreadCount for now, perhaps this might be good on redis too? 2014-09-06 02:22:26 -04:00
psychobunny
07376c9a4c look for unread only for today 2014-09-06 02:22:25 -04:00
psychobunny
6aa47efc06 we don't trust user.isOnline, waiting on an optimization (disabling for now) 2014-09-06 02:22:25 -04:00
psychobunny
0de458141b separated the sockets.emit to socket.emit + broadcast so OP gets action right away. moved callback sooner. 2014-09-06 02:22:24 -04:00
psychobunny
61895633b3 disabling updateLastOnlineTime until we can move this key to redis 2014-09-06 02:22:24 -04:00
psychobunny
056f89d6cf use redis session storage instead of connect-mongo 2014-09-06 02:22:23 -04:00
psychobunny
071be4ae7f cache popular route for anons 2014-09-06 02:22:22 -04:00
psychobunny
15052143d3 that preloader, will blow up your datacenter. 2014-09-06 02:22:22 -04:00
psychobunny
6c7d7a45e8 their plugins, in package.json 2014-09-06 02:22:21 -04:00
psychobunny
4fd9b58a55 give mongo room to breathe 2014-09-06 02:22:20 -04:00
psychobunny
a4c625a4d6 use compiled bcrypt 2014-09-06 02:22:20 -04:00
barisusakli
bf67424fd6 if there are no uids return 2014-09-06 01:55:56 -04:00
barisusakli
e2697030ec removed reuqire 2014-09-06 01:10:46 -04:00
barisusakli
3f96532c3f disabled 2 calls 2014-09-06 01:07:03 -04:00
barisusakli
072db27a3c dont add more than 10 2014-09-06 01:05:20 -04:00
barisusakli
a48e95b910 check keys 2014-09-06 01:04:20 -04:00
barisusakli
779b2a8d73 optimize queries 2014-09-06 00:58:03 -04:00
barisusakli
421d091828 optimizing browsing users 2014-09-06 00:19:46 -04:00
barisusakli
0dc780148a removed global room
socket.io already puts everyone into a room named ''
2014-09-05 22:11:21 -04:00
barisusakli
8e86f4b787 crash fix 2014-09-05 20:35:24 -04:00
barisusakli
a6f8bcd7be dont show new posts on popular
doesnt makse sense
2014-09-05 19:10:21 -04:00
barisusakli
9fac18c4b6 derp 2014-09-05 17:39:24 -04:00
barisusakli
ff44819d6b add support to set parentCid to 0 2014-09-05 14:14:45 -04:00
Julian Lam
9ee4c90548 test route back to 404 2014-09-05 14:04:50 -04:00
barisusakli
bc00d7d159 check just in case 2014-09-05 13:51:02 -04:00
barisusakli
ba32a4dc4f crash fix 2014-09-05 13:45:36 -04:00
Julian Lam
7255ce3dbe primary worker support, and added notif pruning to primary worker jobs 2014-09-05 13:44:56 -04:00
Julian Lam
2efb816da3 restarted threads now grab a copy of the minified js and map from the loader 2014-09-05 13:23:30 -04:00
barisusakli
1075305444 crash fix 2014-09-05 03:00:53 -04:00
barisusakli
7361aec709 update every 3 seconds 2014-09-05 01:37:38 -04:00
barisusakli
877cf1e15c derp 2014-09-05 01:36:30 -04:00
barisusakli
95d1bd3058 crash fix 2014-09-05 01:30:08 -04:00
barisusakli
769d6ed57c removed console.log 2014-09-05 00:32:54 -04:00
barisusakli
2008bf28ff auto update user counts dont transmit all room data 2014-09-05 00:28:27 -04:00
barisusakli
190647a074 only update room text if its topic
will fix this in a better way
2014-09-04 23:26:55 -04:00
barisusakli
e28d778c0c fixed my derp 2014-09-04 22:41:02 -04:00
barisusakli
31fb0efbd9 crash fix 2014-09-04 22:32:50 -04:00
barisusakli
707a062661 one more fix 2014-09-04 22:11:21 -04:00
Julian Lam
fae169697e removing listener for templates compilation, in order to resolve race condition that was causing slow servers to not actually end up binding to the port as expected 2014-09-04 21:22:34 -04:00
barisusakli
94a3ecdbd1 cluster socket.io fixes
getUserRooms
getUidsInRoom
getAnonCountInRoom
2014-09-04 20:21:03 -04:00
Julian Lam
2d0877f80e better handling of port in use errors with cluster 2014-09-04 20:07:55 -04:00
barisusakli
9a908c1651 filter users who are already on dom 2014-09-04 17:49:35 -04:00
Julian Lam
fd0622a1a3 removed console.log 2014-09-04 17:49:13 -04:00
Julian Lam
fec3ae7e5e better integration with nodebb executable 2014-09-04 17:48:33 -04:00
barisusakli
0b2df849bd Merge remote-tracking branch 'origin/cluster' into cluster
Conflicts:
	loader.js
2014-09-04 17:43:44 -04:00
barisusakli
98f338b41c online count fixes for cluster 2014-09-04 17:41:00 -04:00
Julian Lam
e5a35ce378 js propagation for cluster module, so only 1 thread minifies the js 2014-09-04 17:39:53 -04:00
Julian Lam
08abbe19bc zero downtime and reload support with cluster module 2014-09-04 17:09:57 -04:00
Julian Lam
3918b29233 removed /test route 2014-09-04 16:39:24 -04:00
Julian Lam
8a996c4524 changing silent value based on environment variable 2014-09-04 15:13:16 -04:00
barisusakli
c62f251afc added index and fixed vote button in infinite scroll 2014-09-04 01:48:57 -04:00
barisusakli
e5795687bb fix settings on mongo 2014-09-04 01:34:31 -04:00
Julian Lam
0bc9437642 Merge branch 'cluster' of github.com:NodeBB/NodeBB into cluster 2014-09-04 00:56:55 -04:00
Julian Lam
956a431950 properly handling SIGHUP 2014-09-04 00:56:50 -04:00
barisusakli
45afe2e831 cast return to bool 2014-09-04 00:20:50 -04:00
Julian Lam
8baea1a251 crash timer 2014-09-04 00:01:08 -04:00
barisusakli
c8692f0562 Merge remote-tracking branch 'origin/0.5.1' into cluster 2014-09-03 23:43:52 -04:00
barisusakli
f81acd37db added indices on search key and id for mongo 2014-09-03 23:43:07 -04:00
Evan Lucas
3360752c5c Added action:post.downvote hook 2014-09-03 22:31:09 -04:00
barisusakli
84d0e64361 fix topic move 2014-09-03 20:19:51 -04:00
barisusakli
10b30e303b mongo posting fix 2014-09-03 19:38:48 -04:00
psychobunny
dc9754d77a Merge branch 'cluster' of https://github.com/NodeBB/NodeBB into cluster 2014-09-03 18:13:20 -04:00
psychobunny
baaac66d77 Merge remote-tracking branch 'origin/0.5.1' into cluster 2014-09-03 18:12:34 -04:00
barisusakli
705bdcdd69 Merge remote-tracking branch 'origin/0.5.1' into cluster 2014-09-03 18:12:34 -04:00
psychobunny
f609b1e45d calololback
(how the hell was this working?)
2014-09-03 18:08:47 -04:00
barisusakli
05a9e8b1d6 chat typing notif use room 2014-09-03 18:07:56 -04:00
barisusakli
20b951b9d9 added back num cpus 2014-09-03 17:23:47 -04:00
barisusakli
fdafb72c34 removed getUserSockets for chat
emit to users rooms directly
2014-09-03 17:22:29 -04:00
barisusakli
999da9183d Merge remote-tracking branch 'origin/0.5.1' into cluster 2014-09-03 16:14:15 -04:00
Julian Lam
de41896770 restart handling and crash detection 2014-09-03 15:24:47 -04:00
barisusakli
4736a68534 dont create term object on each call 2014-09-03 15:16:45 -04:00
psychobunny
9f0fff4434 closes #2039 2014-09-03 14:40:44 -04:00
barisusakli
c40355b816 removed debug 2014-09-03 14:07:12 -04:00
Julian Lam
b5da0e515b upping mentions minver for 0.5.1 2014-09-03 13:18:15 -04:00
Julian Lam
a5423aff16 getPidIndex callback if none specified 2014-09-03 12:55:31 -04:00
Julian Lam
baf72249b6 made uid parameter optional in getPidIndex 2014-09-03 12:54:26 -04:00
Julian Lam
063d270f1a introducing "sort" querystring parameter in topic route, so that sorting can be overridden via query string. 2014-09-03 12:50:06 -04:00
barisusakli
298f14ad27 removed cluster from app.js 2014-09-03 12:31:37 -04:00
barisusakli
0f46051fcf Merge remote-tracking branch 'origin/cluster-loader' into cluster 2014-09-03 12:28:51 -04:00
barisusakli
5362863588 debug 2014-09-03 12:28:24 -04:00
barisusakli
2073d994fc limit topicsperpage postsPerPage to 20 2014-09-03 12:00:25 -04:00
barisusakli
6926552e66 load 50 topics in sitemap instead of all 2014-09-03 11:30:07 -04:00
barisusakli
1b58fb3104 Merge remote-tracking branch 'origin/0.5.1' into cluster 2014-09-03 01:44:18 -04:00
Julian Lam
58a73b52b5 work-in-progress commit to get cluster module working with loader.js 2014-09-03 01:24:26 -04:00
barisusakli
94d050fd4f removed helpers.done 2014-09-03 01:13:28 -04:00
barisusakli
e00124007f testing 2 2014-09-03 01:06:17 -04:00
barisusakli
cbe3b5b6dc testing 2014-09-02 23:35:24 -04:00
Julian Lam
e6d0eede4f pruning empy notifications for daily emailer 2014-09-02 18:36:58 -04:00
barisusakli
4f48f1865f removed updateLastOnlineTime from every socket call 2014-09-02 17:36:59 -04:00
barisusakli
6b39e328f5 chat fix 2014-09-02 16:01:45 -04:00
barisusakli
e495db3065 dont make a copy of chat message 2014-09-02 15:50:02 -04:00
Julian Lam
c56a7bf475 Merge branch 'GAWMiners-feature/favourite-hook' into 0.5.1 2014-09-02 14:31:18 -04:00
Julian Lam
77475bb7a3 Merge branch 'feature/favourite-hook' of github.com:GAWMiners/NodeBB into GAWMiners-feature/favourite-hook 2014-09-02 14:30:08 -04:00
barisusakli
625766ba85 dont send typing notif on each keyup 2014-09-02 14:29:22 -04:00
Evan Lucas
440c78c949 match object.action nomenclature 2014-09-02 13:26:56 -05:00
Evan Lucas
fb45aa92fd Add upvote hook
adhere to similar project style
2014-09-02 13:20:00 -05:00
barisusakli
26c0b097cf removed realtime update of anon count 2014-09-02 13:49:48 -04:00
barisusakli
74282ffeea removed another unnecessary socket call 2014-09-02 13:23:36 -04:00
Julian Lam
a7736d1926 removed setTimeout when someone tries to log in with a non-existant username 2014-09-02 11:49:06 -04:00
barisusakli
171f02101d closes #2035, closes #2036 2014-09-02 05:04:39 -04:00
barisusakli
ff46d1211d removed populateONline users
not sure why this was called inside updateBrowsingUsers
2014-09-02 02:29:42 -04:00
barisusakli
6672f17fc2 part 1 of online user fix
don't call getOnlineUsers when a single person comes online
2014-09-02 02:26:56 -04:00
barisusakli
761d59f5ec each limit on pushUnreadCount 2014-09-02 01:34:26 -04:00
barisusakli
b8dfbdaff2 small optimization to online users 2014-09-01 23:33:32 -04:00
barisusakli
8b4c61241f query change 2014-09-01 20:45:24 -04:00
barisusakli
0c8c6632d9 create index on key value 2014-09-01 20:12:34 -04:00
barisusakli
487793e692 create index on score field 2014-09-01 19:44:43 -04:00
barisusakli
13bdd939e3 crash fix 2014-09-01 18:51:48 -04:00
barisusakli
619ca103c7 crash fix 2014-09-01 18:46:42 -04:00
barisusakli
1ed4c984bb Merge remote-tracking branch 'origin/master' into 0.5.1 2014-09-01 17:36:00 -04:00
barisusakli
ae6d5e72f4 closes #2015 2014-09-01 14:09:47 -04:00
barisusakli
a252bf409c Merge remote-tracking branch 'origin/master' into 0.5.1 2014-09-01 13:30:50 -04:00
Julian Lam
fa2bf7c908 added disabled class back when form is submitting... aka clickspam handling 2014-09-01 00:05:19 -04:00
Julian Lam
ff24339b38 added back error:no-user 2014-08-31 23:49:22 -04:00
Julian Lam
4edceb0f92 allowing /user to also work in addition to /users 2014-08-31 23:02:24 -04:00
Julian Lam
caa9c8c157 more stuff using new returnTo behaviour 2014-08-31 22:51:02 -04:00
Julian Lam
08c9cbdf70 changing admin API calls to return 404 if unauthenticated, and redirect user to login for regular URL. closes #1885 2014-08-31 22:43:00 -04:00
Julian Lam
7572c9a803 added connect-ensure-login and allowed npm to alphabetize the dependencies listing 2014-08-31 22:42:29 -04:00
Julian Lam
298d904d45 refactored login process to be a form submit instead of ajax-redirect, implemented error message parsing using req.flash 2014-08-31 22:41:13 -04:00
Julian Lam
9ea081deb3 sending 'bind' message to child proc instead of SIGCONT signal, which is not understood by Windows installs 2014-08-31 16:13:05 -04:00
barisusakli
14fcd36134 closes #2028 2014-08-30 15:39:20 -04:00
barisusakli
603cddc687 closes #1934 2014-08-30 15:19:18 -04:00
barisusakli
4f5c78d675 merge 2014-08-30 14:44:43 -04:00
barisusakli
e6b3da18f2 merge 2014-08-30 11:58:19 -04:00
barisusakli
6b286a8f07 fix, dont display duped topics on category view 2014-08-29 18:18:31 -04:00
barisusakli
6ac8d9d349 check uid 2014-08-29 17:55:44 -04:00
barisusakli
576081e25f delete user ignored cids on account delete 2014-08-29 16:40:06 -04:00
barisusakli
197226eea6 closes #1742 2014-08-29 15:57:20 -04:00
barisusakli
acef614147 removed 2 BS classes 2014-08-29 14:50:24 -04:00
barisusakli
14fb171072 Merge remote-tracking branch 'origin/master' into 0.5.1 2014-08-29 14:10:21 -04:00
Julian Lam
1f06e4f5a2 added secret key bindings for admins to reload and restart their NodeBBs :shipit: 2014-08-29 12:29:00 -04:00
Julian Lam
063a4e5628 finished up UX integration for in-topic searching, added mousetrap lib to capture ctrl-F only in topic view, closed #1800 2014-08-29 11:48:30 -04:00
Julian Lam
5d22806ded more topic searching work (working example, needs UX tie-in) 2014-08-29 11:18:02 -04:00
Julian Lam
cc930e4042 Merge branch '0.5.1' into topic_searching
Conflicts:
	src/socket.io/topics.js
2014-08-29 09:59:18 -04:00
Julian Lam
fa6daa37eb updated regex to match admin route with no trailing slash 2014-08-29 09:57:13 -04:00
barisusakli
43432e8bbb Merge remote-tracking branch 'origin/master' into 0.5.1 2014-08-28 15:34:58 -04:00
barisusakli
94c765fa25 closes #1996 2014-08-27 18:03:53 -04:00
barisusakli
ba4b98de0e email and username checks on profile update 2014-08-27 16:06:49 -04:00
barisusakli
ed294dd414 Merge remote-tracking branch 'origin/master' into 0.5.1 2014-08-27 15:58:13 -04:00
Julian Lam
cd10248226 basic topic searching via search bar working 2014-08-27 15:26:44 -04:00
Julian Lam
df5283cbae Merge remote-tracking branch 'origin/0.5.1' into topic_searching 2014-08-27 15:04:43 -04:00
barisusakli
347fc05376 getPidIndex socket call 2014-08-27 15:03:36 -04:00
Julian Lam
1d3aafc08f adding sourceRoot to minified mapping 2014-08-27 14:42:10 -04:00
barisusakli
d67cd489cd crash fix 2014-08-27 14:09:15 -04:00
Julian Lam
347d7de25b an ajaxify.go 302 will pass callback and quiet arguments along as well now 2014-08-27 14:04:31 -04:00
Julian Lam
5d32073f2c Merge branch '0.5.1' into topic_searching 2014-08-27 12:29:02 -04:00
barisusakli
fdf19f9025 closes #2022 2014-08-27 01:27:17 -04:00
barisusakli
8eecf59c47 closes #2020 2014-08-26 18:47:52 -04:00
barisusakli
69ce425ae5 closes #2021 2014-08-26 18:45:03 -04:00
barisusakli
42f87a1db7 closes #2017 2014-08-26 15:55:21 -04:00
Julian Lam
2d9ca83ae0 better error messaging when js fails to compile when reloading 2014-08-26 15:31:27 -04:00
Julian Lam
e497290dbc removed commented-out code 2014-08-26 14:51:22 -04:00
Julian Lam
fcbdc5e271 added recompilation of templates to NodeBB Reloading - #2010 2014-08-26 14:48:43 -04:00
barisusakli
eef200be10 closes #1284 2014-08-26 13:47:53 -04:00
Julian Lam
124a4ce89c Merge branch 'hotreload' into 0.5.1
Conflicts:
	public/src/forum/admin/index.js
	src/meta.js
2014-08-26 13:12:25 -04:00
Julian Lam
5f96823f66 allowed the "forum updated" message to show up for reloads as well 2014-08-26 11:41:31 -04:00
barisusakli
dc0cec0352 merge 2014-08-25 20:01:12 -04:00
barisusakli
c57b0a2199 closes #2013 2014-08-25 12:36:32 -04:00
Julian Lam
2bfa7d5b97 closed #2012 2014-08-25 11:57:35 -04:00
Julian Lam
ab77e6767e closed #2011 2014-08-25 11:57:35 -04:00
Julian Lam
0c4a788698 added callbacks to css and js reloading, issue #2010 2014-08-25 11:57:35 -04:00
Julian Lam
3e033043f3 on-demand reloading of client-side assets 2014-08-25 11:57:34 -04:00
Julian Lam
5886ccc419 framework for reloading 2014-08-25 11:57:34 -04:00
Julian Lam
ba91d7aba6 proof-of-concept for hot-swapping of routes 2014-08-25 11:57:34 -04:00
Julian Lam
c9e80b6f64 closed #2012 2014-08-25 11:56:48 -04:00
Julian Lam
4e55707652 closed #2011 2014-08-25 10:46:48 -04:00
Julian Lam
013dfd0ceb added callbacks to css and js reloading, issue #2010 2014-08-25 10:13:01 -04:00
Julian Lam
841c755bb7 on-demand reloading of client-side assets 2014-08-24 17:46:22 -04:00
Julian Lam
aca163d067 framework for reloading 2014-08-24 14:25:26 -04:00
Julian Lam
943874805d proof-of-concept for hot-swapping of routes 2014-08-24 12:30:49 -04:00
barisusakli
f11601d70f Merge remote-tracking branch 'origin/master' into 0.5.1 2014-08-23 22:36:26 -04:00
barisusakli
7019618863 closes #2003 2014-08-23 22:34:39 -04:00
barisusakli
62dd056faa tag search 2014-08-23 21:53:16 -04:00
barisusakli
ab0d31bef1 closes #2005 2014-08-22 19:21:20 -04:00
barisusakli
95c839579e closes #2007 2014-08-22 19:10:26 -04:00
barisusakli
5a42b6a7ea closes #2009 2014-08-22 18:05:50 -04:00
Julian Lam
69b9e57daf completing subcategory integration in backend, closed #1299 2014-08-21 09:52:21 -04:00
Julian Lam
b7c7dd98c3 ACP setting and API return for subcats 2014-08-21 00:11:39 -04:00
barisusakli
83de5ba5a4 added topic owner uid 2014-08-18 19:04:49 -04:00
barisusakli
06119510b7 merge 2014-08-18 16:20:12 -04:00
barisusakli
22fdf9f4ed getMainPost uses getMainPosts 2014-08-18 16:18:51 -04:00
barisusakli
b858b120da closes #1998 2014-08-18 16:03:25 -04:00
barisusakli
77a7c5caef eachLimit notifications.push 2014-08-17 22:12:43 -04:00
barisusakli
24ea74dc41 lol
O(log(n)) to O(1) and away
2014-08-17 22:10:16 -04:00
barisusakli
d411ed5c28 closes #1995 2014-08-17 19:26:24 -04:00
barisusakli
179e1e6143 Merge remote-tracking branch 'origin/master' into 0.5.1 2014-08-17 01:29:59 -04:00
barisusakli
05fdc945f3 closes #1993 2014-08-17 00:14:45 -04:00
barisusakli
5ae7c92d55 notifications refactor
added getMultiple which works with an array of nids
2014-08-16 23:25:30 -04:00
barisusakli
dd9a383f46 removed unused functions 2014-08-16 21:40:41 -04:00
barisusakli
ca90afd544 #1992
(drunk) not even done yet
2014-08-16 21:33:42 -04:00
barisusakli
3011491863 merge conflcit 2014-08-15 18:16:45 -04:00
barisusakli
b2f8a65bc8 removed slice 2014-08-15 18:12:43 -04:00
barisusakli
522fda2e58 closes #1936 2014-08-15 18:11:57 -04:00
barisusakli
d852f284da closes #1948 2014-08-15 15:45:01 -04:00
barisusakli
cd096f8832 sortedSetScores for tag counts 2014-08-15 11:48:01 -04:00
barisusakli
e10eaf0d50 added tag counts to api return 2014-08-14 21:12:12 -04:00
barisusakli
931d46fe7e merge 2014-08-14 18:01:22 -04:00
barisusakli
d91fa5747d closes #1964 2014-08-14 15:19:57 -04:00
barisusakli
60624eedec small tweak 2014-08-14 10:16:43 -04:00
barisusakli
5c91bc4335 optimized home 2014-08-14 09:59:40 -04:00
barisusakli
c58712e2a9 closes #1971 2014-08-14 08:34:38 -04:00
barisusakli
d0d1ebb28c Merge remote-tracking branch 'origin/master' into 0.5.1 2014-08-14 07:52:11 -04:00
barisusakli
c9c454825e closes #1369 2014-08-13 21:42:04 -04:00
barisusakli
d12a526e82 check against 0 first 2014-08-13 19:44:59 -04:00
barisusakli
e909e46786 closes #1989 2014-08-13 19:25:58 -04:00
barisusakli
3ab2e70e07 Merge remote-tracking branch 'origin/master' into 0.5.1 2014-08-13 18:46:07 -04:00
barisusakli
299d7bfee3 Merge remote-tracking branch 'origin/master' into 0.5.1 2014-08-13 18:33:34 -04:00
barisusakli
5c84a3adb5 closes #1974 2014-08-13 18:25:26 -04:00
barisusakli
f562caaa61 callback 2014-08-13 17:11:17 -04:00
barisusakli
37115ea3d6 Merge remote-tracking branch 'origin/master' into 0.5.1 2014-08-13 16:25:56 -04:00
barisusakli
464be4f7cc Merge remote-tracking branch 'origin/master' into 0.5.1 2014-08-13 15:33:42 -04:00
barisusakli
dae3ef49be show user names who upvoted a post on mouse over 2014-08-13 13:35:55 -04:00
barisusakli
005405b16c closes #1976 2014-08-12 21:41:23 -04:00
barisusakli
9511e4a633 Merge remote-tracking branch 'origin/master' into 0.5.1 2014-08-12 15:11:47 -04:00
barisusakli
5dd90880d4 Merge remote-tracking branch 'origin/master' into 0.5.1 2014-08-12 14:59:34 -04:00
barisusakli
b50a6d8f34 Merge remote-tracking branch 'origin/master' into 0.5.1 2014-08-12 14:06:12 -04:00
barisusakli
ac43ff3c3d closes #1970 2014-08-12 13:45:18 -04:00
barisusakli
ceaedf9e2f closes #1941 2014-08-12 13:02:07 -04:00
chronize
efe938b392 fix upgrade.js according to CodeClimate recommendation, remove BOM 2014-08-02 15:03:15 -04:00
chronize
a2f8f54061 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2014-08-02 14:54:57 -04:00
chronize
c456714440 revert package.json 2014-07-31 18:16:27 -04:00
chronize
6ed4e8ab48 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2014-07-31 16:51:04 -04:00
chronize
4e4187417e optimize ACP groups screen, jQuery caching 2014-07-31 16:25:48 -04:00
chronize
945b5cd09c Merge branch 'master' of https://github.com/NodeBB/NodeBB
Conflicts:
	src/groups.js
2014-07-31 15:21:39 -04:00
chronize
a49aee9d3d Merge master 2014-07-31 15:20:41 -04:00
Julian Lam
925cd99afb Merge branch 'master' into topic_searching 2014-07-30 17:14:57 -04:00
Julian Lam
8296dc5630 beginning topic searching + new hook 2014-07-24 17:30:37 -04:00
899 changed files with 25757 additions and 9203 deletions

10
.gitignore vendored
View File

@@ -3,7 +3,7 @@ node_modules/
sftp-config.json sftp-config.json
config.json config.json
public/src/nodebb.min.js public/src/nodebb.min.js
public/config.json !src/views/config.json
public/css/*.css public/css/*.css
*.sublime-project *.sublime-project
*.sublime-workspace *.sublime-workspace
@@ -26,3 +26,11 @@ pidfile
# templates # templates
/public/templates /public/templates
/public/sounds /public/sounds
/public/uploads
# compiled files
/public/stylesheet.css
/public/admin.css
/public/nodebb.min.js
/public/nodebb.min.js.map

41
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,41 @@
# Issues & Bugs
Thanks for reporting an issue with NodeBB! Please follow these guidelines in order to streamline the debugging process. The more guidelines you follow, the easier it will be for us to reproduce your problem.
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.
## Provide the NodeBB version number and git hash
You can find the NodeBB version number in the Admin Control Panel (ACP), as well as the first line output to the shell when running NodeBB
``` plaintext
info: NodeBB v0.5.2-dev Copyright (C) 2013-2014 NodeBB Inc.
info: This program comes with ABSOLUTELY NO WARRANTY.
info: This is free software, and you are welcome to redistribute it under certain conditions.
info:
info: Time: Tue Oct 07 2014 20:25:20 GMT-0400 (EDT)
```
If you are running NodeBB via git, it is also helpful to let the maintainers know what commit hash you are on. To find the commit hash, execute the following command:
``` bash
$ cd /path/to/my/nodebb
$ git rev-parse HEAD
```
If you have downloaded the `.zip` or `.tar.gz` packages from GitHub (or elsewhere), please let us know.
## 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)

View File

@@ -1,15 +0,0 @@
## 0.4x Refactor Notes
Please remove this file after 0.4x (or perhaps organize it so that we can see the history of breaking changes)
### Immediate Deprecation Notices
* `action:ajaxifying` is no longer triggered on body but on window instead, in line with other similar hooks.
* `filter:server.create_routes` and `filter:admin.create_routes` will have limited support (ajaxify works, but first-load will not). Please have a look at [this plugin](https://github.com/psychobunny/nodebb-plugin-kitchen-sink/blob/master/library.js#L16-L22) for an example on how to create routes in plugins from now on.
### Upcoming Deprecation Warnings
* `filter:footer.build` will be deprecated for 0.4x in favour of the widget system (WIP)
* templates.setGlobal (server-side only) deprecated in favour of using res.locals
* `plugins/fireHook` route will be deprecated for 0.4x
* synchronous hooks will be deprecated for 0.4x - we're reducing complexity by removing the `callbacked: true` property in `plugin.json` - just use callbacks.

96
app.js
View File

@@ -17,7 +17,6 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
"use strict"; "use strict";
/*global require, global, process*/ /*global require, global, process*/
@@ -29,6 +28,7 @@ var fs = require('fs'),
semver = require('semver'), semver = require('semver'),
winston = require('winston'), winston = require('winston'),
path = require('path'), path = require('path'),
cluster = require('cluster'),
pkg = require('./package.json'), pkg = require('./package.json'),
utils = require('./public/src/utils.js'); utils = require('./public/src/utils.js');
@@ -37,7 +37,8 @@ global.env = process.env.NODE_ENV || 'production';
winston.remove(winston.transports.Console); winston.remove(winston.transports.Console);
winston.add(winston.transports.Console, { winston.add(winston.transports.Console, {
colorize: true colorize: true,
timestamp: true
}); });
winston.add(winston.transports.File, { winston.add(winston.transports.File, {
@@ -58,11 +59,13 @@ if(os.platform() === 'linux') {
}); });
} }
// Log GNU copyright info along with server info if (!cluster.isWorker) {
winston.info('NodeBB v' + pkg.version + ' Copyright (C) 2013-2014 NodeBB Inc.'); // If run using `node app`, log GNU copyright info along with server info
winston.info('This program comes with ABSOLUTELY NO WARRANTY.'); winston.info('NodeBB v' + pkg.version + ' Copyright (C) 2013-2014 NodeBB Inc.');
winston.info('This is free software, and you are welcome to redistribute it under certain conditions.'); winston.info('This program comes with ABSOLUTELY NO WARRANTY.');
winston.info(''); winston.info('This is free software, and you are welcome to redistribute it under certain conditions.');
winston.info('');
}
// Alternate configuration file support // Alternate configuration file support
var configFile = path.join(__dirname, '/config.json'), var configFile = path.join(__dirname, '/config.json'),
@@ -73,7 +76,7 @@ if (nconf.get('config')) {
} }
configExists = fs.existsSync(configFile); configExists = fs.existsSync(configFile);
if (!nconf.get('help') && !nconf.get('setup') && !nconf.get('install') && !nconf.get('upgrade') && !nconf.get('reset') && configExists) { if (!nconf.get('setup') && !nconf.get('install') && !nconf.get('upgrade') && !nconf.get('reset') && configExists) {
start(); start();
} else if (nconf.get('setup') || nconf.get('install') || !configExists) { } else if (nconf.get('setup') || nconf.get('install') || !configExists) {
setup(); setup();
@@ -81,8 +84,6 @@ if (!nconf.get('help') && !nconf.get('setup') && !nconf.get('install') && !nconf
upgrade(); upgrade();
} else if (nconf.get('reset')) { } else if (nconf.get('reset')) {
reset(); reset();
} else {
displayHelp();
} }
function loadConfig() { function loadConfig() {
@@ -99,23 +100,25 @@ function loadConfig() {
// Ensure themes_path is a full filepath // Ensure themes_path is a full filepath
nconf.set('themes_path', path.resolve(__dirname, nconf.get('themes_path'))); 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')); nconf.set('base_templates_path', path.join(nconf.get('themes_path'), 'nodebb-theme-vanilla/templates'));
} }
function start() { function start() {
loadConfig(); loadConfig();
winston.info('Time: ' + new Date()); if (!cluster.isWorker || process.env.cluster_setup === 'true') {
winston.info('Initializing NodeBB v' + pkg.version); winston.info('Time: ' + new Date());
winston.info('* using configuration stored in: ' + configFile); winston.info('Initializing NodeBB v' + pkg.version);
var host = nconf.get(nconf.get('database') + ':host'), winston.info('* using configuration stored in: ' + configFile);
storeLocation = host ? 'at ' + host + (host.indexOf('/') === -1 ? ':' + nconf.get(nconf.get('database') + ':port') : '') : ''; }
winston.info('* using ' + nconf.get('database') +' store ' + storeLocation); if (cluster.isWorker && process.env.cluster_setup === 'true') {
winston.info('* using themes stored in: ' + nconf.get('themes_path')); var host = nconf.get(nconf.get('database') + ':host'),
storeLocation = host ? 'at ' + host + (host.indexOf('/') === -1 ? ':' + nconf.get(nconf.get('database') + ':port') : '') : '';
if (process.env.NODE_ENV === 'development') { winston.info('* using ' + nconf.get('database') +' store ' + storeLocation);
winston.info('Base Configuration OK.'); winston.info('* using themes stored in: ' + nconf.get('themes_path'));
} }
require('./src/database').init(function(err) { require('./src/database').init(function(err) {
@@ -136,19 +139,42 @@ function start() {
upgrade.check(function(schema_ok) { upgrade.check(function(schema_ok) {
if (schema_ok || nconf.get('check-schema') === false) { if (schema_ok || nconf.get('check-schema') === false) {
sockets.init(webserver.server); sockets.init(webserver.server);
plugins.init();
nconf.set('url', nconf.get('base_url') + (nconf.get('use_port') ? ':' + nconf.get('port') : '') + nconf.get('relative_path')); nconf.set('url', nconf.get('base_url') + (nconf.get('use_port') ? ':' + nconf.get('port') : '') + nconf.get('relative_path'));
plugins.ready(function() { plugins.ready(function() {
webserver.init(); webserver.init(function() {
webserver.listen(function() {
process.send({
action: 'ready'
});
});
});
}); });
process.on('SIGTERM', shutdown); process.on('SIGTERM', shutdown);
process.on('SIGINT', shutdown); process.on('SIGINT', shutdown);
process.on('SIGHUP', restart); 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;
winston.info('[cluster] Client-side javascript and mapping propagated to worker ' + cluster.worker.id);
break;
case 'css-propagate':
meta.css.cache = message.cache;
meta.css.acpCache = message.acpCache;
winston.info('[cluster] Stylesheets propagated to worker ' + cluster.worker.id);
break;
}
});
process.on('uncaughtException', function(err) { process.on('uncaughtException', function(err) {
winston.error(err.message); winston.error(err.stack);
console.log(err.stack); console.log(err.stack);
meta.js.killMinifier(); meta.js.killMinifier();
@@ -156,10 +182,12 @@ function start() {
}); });
} else { } else {
winston.warn('Your NodeBB schema is out-of-date. Please run the following command to bring your dataset up to spec:'); winston.warn('Your NodeBB schema is out-of-date. Please run the following command to bring your dataset up to spec:');
winston.warn(' node app --upgrade'); winston.warn(' ./nodebb upgrade');
winston.warn('To ignore this error (not recommended):'); if (cluster.isWorker) {
winston.warn(' node app --no-check-schema'); cluster.worker.kill();
process.exit(); } else {
process.exit();
}
} }
}); });
}); });
@@ -313,6 +341,8 @@ function shutdown(code) {
winston.info('[app] Shutdown (SIGTERM/SIGINT) Initialised.'); winston.info('[app] Shutdown (SIGTERM/SIGINT) Initialised.');
require('./src/database').close(); require('./src/database').close();
winston.info('[app] Database connection closed.'); winston.info('[app] Database connection closed.');
require('./src/webserver').server.close();
winston.info('[app] Web server closed to connections.');
winston.info('[app] Shutdown complete.'); winston.info('[app] Shutdown complete.');
process.exit(code || 0); process.exit(code || 0);
@@ -328,16 +358,4 @@ function restart() {
winston.error('[app] Could not restart server. Shutting down.'); winston.error('[app] Could not restart server. Shutting down.');
shutdown(1); shutdown(1);
} }
} }
function displayHelp() {
winston.info('Usage: node app [options] [arguments]');
winston.info(' [NODE_ENV=development | NODE_ENV=production] node app [--start] [arguments]');
winston.info('');
winston.info('Options:');
winston.info(' --help displays this usage information');
winston.info(' --setup configure your environment and setup NodeBB');
winston.info(' --upgrade upgrade NodeBB, first read: https://docs.nodebb.org/en/latest/upgrading/');
winston.info(' --reset soft resets NodeBB; disables all plugins and restores selected theme to Vanilla');
winston.info(' --start manually start NodeBB (default when no options are given)');
}

29
bcrypt.js Normal file
View File

@@ -0,0 +1,29 @@
'use strict';
var bcrypt = require('bcryptjs'),
async = require('async'),
action = process.argv[2];
switch(action) {
case 'compare':
bcrypt.compare(process.argv[3], process.argv[4], function(err, res) {
process.stdout.write(res ? 'true' : 'false');
});
break;
case 'hash':
async.waterfall([
async.apply(bcrypt.genSalt, parseInt(process.argv[3], 10)),
function(salt, next) {
bcrypt.hash(process.argv[4], salt, next);
}
], function(err, hash) {
if (!err) {
process.stdout.write(hash);
} else {
process.stderr.write(err.message);
}
});
break;
}

View File

@@ -2,7 +2,7 @@
{ {
"name": "Announcements", "name": "Announcements",
"description": "Announcements regarding our community", "description": "Announcements regarding our community",
"bgColor": "#0059B2", "bgColor": "#fda34b",
"color": "#fff", "color": "#fff",
"icon" : "fa-bullhorn", "icon" : "fa-bullhorn",
"order": 1 "order": 1
@@ -10,89 +10,25 @@
{ {
"name": "General Discussion", "name": "General Discussion",
"description": "A place to talk about whateeeever you want", "description": "A place to talk about whateeeever you want",
"bgColor": "#0059B2", "bgColor": "#59b3d0",
"color": "#fff", "color": "#fff",
"icon" : "fa-comment", "icon" : "fa-comments-o",
"order": 2 "order": 2
}, },
{
"name": "NodeBB Development",
"description": "NodeBB development news and announcements",
"bgColor": "#0059B2",
"color": "#fff",
"icon" : "fa-github",
"order": 3
},
{ {
"name": "Blogs", "name": "Blogs",
"description": "Blog posts from individual members", "description": "Blog posts from individual members",
"bgColor": "#0059B2", "bgColor": "#86ba4b",
"color": "#fff", "color": "#fff",
"icon" : "fa-pencil", "icon" : "fa-newspaper-o",
"order": 4 "order": 4
}, },
{ {
"name": "Feature Requests", "name": "Comments & Feedback",
"description": "Got a feature request you'd like to see? Give us a shout here.", "description": "Got a question? Ask away!",
"bgColor": "#ab1290", "bgColor": "#e95c5a",
"color": "#fff", "color": "#fff",
"icon" : "fa-lightbulb-o", "icon" : "fa-question",
"order": 5 "order": 3
},
{
"name": "Bug Reports",
"description": "Having trouble with NodeBB? Let us know...",
"bgColor": "#ab1290",
"color": "#fff",
"icon" : "fa-cogs",
"order": 6
},
{
"name": "NodeBB Plugins",
"description": "Enhance your NodeBB with plugins!",
"bgColor": "#ab1290",
"color": "#fff",
"icon" : "fa-plus-square",
"order": 7
},
{
"name": "NodeBB Link Exchange",
"description": "Link exchange",
"bgColor": "#ab1290",
"color": "#fff",
"icon" : "fa-exchange",
"order": 8
},
{
"name": "News",
"description": "News from around the world",
"bgColor": "#004C66",
"color": "#fff",
"icon" : "fa-globe",
"order": 9
},
{
"name": "Movies",
"description": "Discuss the latest movies here",
"bgColor": "#004C66",
"color": "#fff",
"icon" : "fa-film",
"order": 10
},
{
"name": "Games",
"description": "Discuss the latest games here",
"bgColor": "#004C66",
"color": "#fff",
"icon" : "fa-crosshairs",
"order": 11
},
{
"name": "Random",
"description": "Anything and (almost) everything welcome!",
"bgColor": "#004C66",
"color": "#fff",
"icon" : "fa-beer",
"order": 12
} }
] ]

View File

@@ -11,6 +11,10 @@
"field": "postDelay", "field": "postDelay",
"value": 10 "value": 10
}, },
{
"field": "initialPostDelay",
"value": 10
},
{ {
"field": "minimumPostLength", "field": "minimumPostLength",
"value": 8 "value": 8
@@ -31,6 +35,10 @@
"field": "allowLocalLogin", "field": "allowLocalLogin",
"value": 1 "value": 1
}, },
{
"field": "allowAccountDelete",
"value": 1
},
{ {
"field": "allowFileUploads", "field": "allowFileUploads",
"value": 0 "value": 0
@@ -68,11 +76,11 @@
"value": 256 "value": 256
}, },
{ {
"field": "chatMessagesToDisplay", "field": "profileImageDimension",
"value": 50 "value": 128
}, },
{ {
"field": "requireEmailConfirmation", "field": "requireEmailConfirmation",
"value": 0 "value": 0
} }
] ]

View File

@@ -12,7 +12,7 @@ function success(err, config, callback) {
return callback(new Error('aborted')); return callback(new Error('aborted'));
} }
var database = (config.redis || config.mongo || config.level) ? config.secondary_database : config.database; var database = (config.redis || config.mongo) ? config.secondary_database : config.database;
function dbQuestionsSuccess(err, databaseConfig) { function dbQuestionsSuccess(err, databaseConfig) {
if (!databaseConfig) { if (!databaseConfig) {
@@ -39,15 +39,11 @@ function success(err, config, callback) {
password: databaseConfig['mongo:password'], password: databaseConfig['mongo:password'],
database: databaseConfig['mongo:database'] database: databaseConfig['mongo:database']
}; };
} else if (database === 'level') {
config.level = {
database: databaseConfig['level:database']
};
} else { } else {
return callback(new Error('unknown database : ' + database)); return callback(new Error('unknown database : ' + database));
} }
var allQuestions = questions.redis.concat(questions.mongo.concat(questions.level)); var allQuestions = questions.redis.concat(questions.mongo);
for(var x=0;x<allQuestions.length;x++) { for(var x=0;x<allQuestions.length;x++) {
delete config[allQuestions[x].name]; delete config[allQuestions[x].name];
} }
@@ -67,12 +63,6 @@ function success(err, config, callback) {
} else { } else {
prompt.get(questions.mongo, dbQuestionsSuccess); prompt.get(questions.mongo, dbQuestionsSuccess);
} }
} else if(database === 'level') {
if (config['level:database']) {
dbQuestionsSuccess(null, config);
} else {
prompt.get(questions.level, dbQuestionsSuccess);
}
} else { } else {
return callback(new Error('unknown database : ' + database)); return callback(new Error('unknown database : ' + database));
} }

294
loader.js
View File

@@ -2,81 +2,234 @@
var nconf = require('nconf'), var nconf = require('nconf'),
fs = require('fs'), fs = require('fs'),
path = require('path'),
cluster = require('cluster'),
async = require('async'),
logrotate = require('logrotate-stream'),
pkg = require('./package.json'),
pidFilePath = __dirname + '/pidfile', pidFilePath = __dirname + '/pidfile',
output = fs.openSync(__dirname + '/logs/output.log', 'a'), output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true }),
start = function() { silent = process.env.NODE_ENV !== 'development' ? true : false,
var fork = require('child_process').fork, numProcs,
nbb_start = function() {
if (timesStarted > 3) {
console.log('\n[loader] Experienced three start attempts in 10 seconds, most likely an error on startup. Halting.');
return nbb_stop();
}
timesStarted++; Loader = {
if (startTimer) { timesStarted: 0,
clearTimeout(startTimer); shutdown_queue: [],
} js: {
startTimer = setTimeout(resetTimer, 1000*10); cache: undefined,
map: undefined
},
css: {
cache: undefined,
acpCache: undefined
}
};
nbb = fork('./app', process.argv.slice(2), { Loader.init = function(callback) {
env: process.env cluster.setupMaster({
}); exec: "app.js",
silent: silent
});
Loader.primaryWorker = 1;
nbb.on('message', function(message) { if (silent) {
if (message && typeof message === 'object' && message.action) { console.log = function(value) {
if (message.action === 'restart') { output.write(value + '\n');
nbb_restart(); };
}
process.on('SIGHUP', Loader.restart);
callback();
};
Loader.displayStartupMessages = function(callback) {
console.log('');
console.log('NodeBB v' + pkg.version + ' Copyright (C) 2013-2014 NodeBB Inc.');
console.log('This program comes with ABSOLUTELY NO WARRANTY.');
console.log('This is free software, and you are welcome to redistribute it under certain conditions.');
console.log('For the full license, please visit: http://www.gnu.org/copyleft/gpl.html');
console.log('');
callback();
};
Loader.addClusterEvents = function(callback) {
cluster.on('fork', function(worker) {
worker.on('message', function(message) {
if (message && typeof message === 'object' && message.action) {
var otherWorkers;
switch (message.action) {
case 'ready':
if (Loader.js.cache) {
worker.send({
action: 'js-propagate',
cache: Loader.js.cache,
map: Loader.js.map
});
} }
}
});
nbb.on('exit', function(code, signal) { if (Loader.css.cache) {
if (code) { worker.send({
nbb_start(); action: 'css-propagate',
} else { cache: Loader.css.cache,
nbb_stop(); acpCache: Loader.css.acpCache
} });
}); }
},
nbb_stop = function() { // Kill an instance in the shutdown queue
if (startTimer) { var workerToKill = Loader.shutdown_queue.pop();
clearTimeout(startTimer); if (workerToKill) {
cluster.workers[workerToKill].kill();
}
break;
case 'restart':
console.log('[cluster] Restarting...');
Loader.restart(function(err) {
console.log('[cluster] Restarting...');
});
break;
case 'reload':
console.log('[cluster] Reloading...');
Loader.reload();
break;
case 'js-propagate':
Loader.js.cache = message.cache;
Loader.js.map = message.map;
otherWorkers = Object.keys(cluster.workers).filter(function(worker_id) {
return parseInt(worker_id, 10) !== parseInt(worker.id, 10);
});
otherWorkers.forEach(function(worker_id) {
cluster.workers[worker_id].send({
action: 'js-propagate',
cache: message.cache,
map: message.map
});
});
break;
case 'css-propagate':
Loader.css.cache = message.cache;
Loader.css.acpCache = message.acpCache;
otherWorkers = Object.keys(cluster.workers).filter(function(worker_id) {
return parseInt(worker_id, 10) !== parseInt(worker.id, 10);
});
otherWorkers.forEach(function(worker_id) {
cluster.workers[worker_id].send({
action: 'css-propagate',
cache: message.cache,
acpCache: message.acpCache
});
});
break;
case 'listening':
if (message.primary) {
Loader.primaryWorker = parseInt(worker.id, 10);
}
break;
case 'user:connect':
case 'user:disconnect':
case 'config:update':
Loader.notifyWorkers(message);
break;
} }
}
});
});
nbb.kill(); cluster.on('listening', function(worker) {
if (fs.existsSync(pidFilePath)) { console.log('[cluster] Child Process (' + worker.process.pid + ') listening for connections.');
var pid = parseInt(fs.readFileSync(pidFilePath, { encoding: 'utf-8' }), 10); });
if (process.pid === pid) {
fs.unlinkSync(pidFilePath); cluster.on('exit', function(worker, code, signal) {
} if (code !== 0) {
if (Loader.timesStarted < numProcs*3) {
Loader.timesStarted++;
if (Loader.crashTimer) {
clearTimeout(Loader.crashTimer);
} }
}, Loader.crashTimer = setTimeout(function() {
nbb_restart = function() { Loader.timesStarted = 0;
nbb.removeAllListeners('exit').on('exit', function() {
nbb_start();
}); });
nbb.kill(); } else {
}, console.log(numProcs*3 + ' restarts in 10 seconds, most likely an error on startup. Halting.');
resetTimer = function() { process.exit();
clearTimeout(startTimer); }
timesStarted = 0; }
},
timesStarted = 0,
startTimer;
process.on('SIGINT', nbb_stop); console.log('[cluster] Child Process (' + worker.process.pid + ') has exited (code: ' + code + ')');
process.on('SIGTERM', nbb_stop); if (!worker.suicide) {
process.on('SIGHUP', nbb_restart); console.log('[cluster] Spinning up another process...');
nbb_start(); var wasPrimary = parseInt(worker.id, 10) === Loader.primaryWorker;
}, cluster.fork({
nbb; handle_jobs: wasPrimary
});
}
});
nconf.argv(); cluster.on('disconnect', function(worker) {
console.log('[cluster] Child Process (' + worker.process.pid + ') has disconnected');
});
callback();
}
Loader.start = function(callback) {
var output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true }),
worker;
console.log('Clustering enabled: Spinning up ' + numProcs + ' process(es).\n');
for(var x=0;x<numProcs;x++) {
// Only the first worker sets up templates/sounds/jobs/etc
worker = cluster.fork({
cluster_setup: x === 0,
handle_jobs: x === 0
});
// Logging
if (silent) {
worker.process.stdout.pipe(output);
}
}
if (callback) callback();
};
Loader.restart = function(callback) {
// Slate existing workers for termination -- welcome to death row.
Loader.shutdown_queue = Loader.shutdown_queue.concat(Object.keys(cluster.workers));
Loader.start();
};
Loader.reload = function() {
Object.keys(cluster.workers).forEach(function(worker_id) {
cluster.workers[worker_id].send({
action: 'reload'
});
});
};
Loader.notifyWorkers = function (msg) {
Object.keys(cluster.workers).forEach(function(id) {
cluster.workers[id].send(msg);
});
}
nconf.argv().file({
file: path.join(__dirname, '/config.json')
});
numProcs = nconf.get('cluster') || 1;
numProcs = (numProcs === true) ? require('os').cpus().length : numProcs;
// Start the daemon!
if (nconf.get('daemon') !== false) { if (nconf.get('daemon') !== false) {
// Check for a still-active NodeBB process
if (fs.existsSync(pidFilePath)) { if (fs.existsSync(pidFilePath)) {
try { try {
var pid = fs.readFileSync(pidFilePath, { encoding: 'utf-8' }); var pid = fs.readFileSync(pidFilePath, { encoding: 'utf-8' });
@@ -87,13 +240,18 @@ if (nconf.get('daemon') !== false) {
} }
} }
// Daemonize and record new pid require('daemon')();
require('daemon')({
stdout: output
});
fs.writeFile(__dirname + '/pidfile', process.pid);
start(); fs.writeFile(__dirname + '/pidfile', process.pid);
} else {
start();
} }
async.series([
Loader.init,
Loader.displayStartupMessages,
Loader.addClusterEvents,
Loader.start
], function(err) {
if (err) {
console.log('[loader] Error during startup: ' + err.message);
}
});

View File

@@ -8,23 +8,24 @@ var uglifyjs = require('uglify-js'),
crypto = require('crypto'), crypto = require('crypto'),
Minifier = { Minifier = {
js: {}, js: {}
css: {}
}; };
/* Javascript */ /* Javascript */
Minifier.js.minify = function (scripts, minify, callback) { Minifier.js.minify = function (scripts, relativePath, minify, callback) {
var options = {}; var options = {
compress: false,
sourceMapURL: '/nodebb.min.js.map',
outSourceMap: 'nodebb.min.js.map',
sourceRoot: relativePath
};
scripts = scripts.filter(function(file) { scripts = scripts.filter(function(file) {
return fs.existsSync(file); return fs.existsSync(file);
}); });
if (!minify) { if (!minify) {
options.sourceMapURL = '/nodebb.min.js.map';
options.outSourceMap = 'nodebb.min.js.map';
options.mangle = false; options.mangle = false;
options.compress = false;
options.prefix = 1; options.prefix = 1;
} }
@@ -56,17 +57,10 @@ Minifier.js.minify = function (scripts, minify, callback) {
process.on('message', function(payload) { process.on('message', function(payload) {
switch(payload.action) { switch(payload.action) {
case 'js': case 'js':
Minifier.js.minify(payload.scripts, payload.minify, function(data) { Minifier.js.minify(payload.scripts, payload.relativePath, payload.minify, function(data) {
process.stdout.write(data.js);
process.send({ process.send({
type: 'end', type: 'end',
payload: 'script' data: data
});
process.stderr.write(data.map);
process.send({
type: 'end',
payload: 'mapping'
}); });
}); });
break; break;

7
nodebb
View File

@@ -28,11 +28,6 @@ case "$1" in
echo " \"./nodebb stop\" to stop the NodeBB server"; echo " \"./nodebb stop\" to stop the NodeBB server";
echo " \"./nodebb log\" to view server output"; echo " \"./nodebb log\" to view server output";
if [ -f "./logs/output.log" ]; # Preserve the last output log
then
mv ./logs/output.log ./logs/output.1.log;
fi;
# Start the loader daemon # Start the loader daemon
"$node" loader -d "$@" "$node" loader -d "$@"
;; ;;
@@ -107,7 +102,7 @@ case "$1" in
echo "Launching NodeBB in \"development\" mode." echo "Launching NodeBB in \"development\" mode."
echo "To run the production build of NodeBB, please use \"forever\"." echo "To run the production build of NodeBB, please use \"forever\"."
echo "More Information: https://docs.nodebb.org/en/latest/running/index.html" echo "More Information: https://docs.nodebb.org/en/latest/running/index.html"
NODE_ENV=development supervisor -q --ignore public/templates --extensions 'node|js|tpl|less' -- app "$@" NODE_ENV=development supervisor -q --ignore public/templates,public/nodebb.min.js,public/nodebb.min.js.map --extensions 'node|js|tpl|less' -- app "$@"
;; ;;
*) *)

View File

@@ -2,7 +2,7 @@
"name": "nodebb", "name": "nodebb",
"license": "GPLv3 or later", "license": "GPLv3 or later",
"description": "NodeBB Forum", "description": "NodeBB Forum",
"version": "0.5.0", "version": "0.5.3",
"homepage": "http://www.nodebb.org", "homepage": "http://www.nodebb.org",
"repository": { "repository": {
"type": "git", "type": "git",
@@ -17,48 +17,51 @@
"dependencies": { "dependencies": {
"async": "~0.9.0", "async": "~0.9.0",
"bcryptjs": "~2.0.1", "bcryptjs": "~2.0.1",
"body-parser": "^1.9.0",
"compression": "^1.1.0",
"connect-ensure-login": "^0.1.1",
"connect-flash": "^0.1.1", "connect-flash": "^0.1.1",
"cron": "~1.0.4", "connect-multiparty": "^1.2.4",
"cookie-parser": "^1.3.3",
"cron": "^1.0.5",
"csurf": "^1.6.1",
"daemon": "~1.1.0", "daemon": "~1.1.0",
"express": "4.6.1", "express": "^4.9.5",
"cookie-parser": "^1.0.1", "express-session": "^1.8.2",
"body-parser": "^1.0.1",
"serve-favicon": "^2.0.1",
"express-session": "^1.0.2",
"csurf": "^1.1.0",
"compression": "^1.0.1",
"connect-multiparty": "^1.0.1",
"morgan": "^1.0.0",
"gm": "1.16.0", "gm": "1.16.0",
"gravatar": "1.0.6", "gravatar": "^1.1.0",
"less": "~1.7.3", "less": "^1.7.5",
"logrotate-stream": "^0.2.3",
"mkdirp": "~0.5.0", "mkdirp": "~0.5.0",
"morgan": "^1.3.2",
"nconf": "~0.6.7", "nconf": "~0.6.7",
"nodebb-plugin-dbsearch": "0.0.13", "nodebb-plugin-dbsearch": "0.0.15",
"nodebb-plugin-markdown": "~0.5.0", "nodebb-plugin-markdown": "^0.7.0",
"nodebb-plugin-mentions": "~0.5.0", "nodebb-plugin-mentions": "~0.6.0",
"nodebb-plugin-soundpack-default": "~0.1.1", "nodebb-plugin-soundpack-default": "~0.1.1",
"nodebb-theme-lavender": "~0.0.74", "nodebb-theme-lavender": "~0.1.0",
"nodebb-theme-vanilla": "~0.0.111", "nodebb-theme-vanilla": "~0.1.0",
"nodebb-widget-essentials": "~0.1.0", "nodebb-widget-essentials": "~0.1.1",
"npm": "^1.4.6", "npm": "^2.1.4",
"passport": "~0.2.0", "passport": "^0.2.1",
"passport-local": "1.0.0", "passport-local": "1.0.0",
"prompt": "~0.2.11", "prompt": "^0.2.14",
"request": "~2.38.0", "request": "^2.44.0",
"rimraf": "~2.2.6", "rimraf": "~2.2.6",
"rss": "~0.3.2", "rss": "^1.0.0",
"semver": "~2.3.1", "semver": "^4.0.3",
"sitemap": "~0.7.3", "serve-favicon": "^2.1.5",
"socket.io": "~0.9.16", "sitemap": "^0.7.4",
"socket.io": "^0.9.17",
"socket.io-client": "^0.9.17",
"socket.io-wildcard": "~0.1.1", "socket.io-wildcard": "~0.1.1",
"string": "~1.9.0", "string": "^2.1.0",
"templates.js": "0.1.2",
"uglify-js": "git+https://github.com/julianlam/UglifyJS2.git", "uglify-js": "git+https://github.com/julianlam/UglifyJS2.git",
"underscore": "~1.6.0", "underscore": "~1.7.0",
"validator": "~3.16.1", "validator": "~3.21.0",
"winston": "~0.7.2", "winston": "^0.8.0",
"xregexp": "~2.0.0", "xregexp": "~2.0.0"
"templates.js": "0.0.13"
}, },
"devDependencies": { "devDependencies": {
"mocha": "~1.13.0" "mocha": "~1.13.0"

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

BIN
public/images/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -3,5 +3,6 @@
"no_topics": "<strong>لا توجد مواضيع في هذه الفئة</strong>لماذا لا تحاول نشر موضوع؟<br />", "no_topics": "<strong>لا توجد مواضيع في هذه الفئة</strong>لماذا لا تحاول نشر موضوع؟<br />",
"browsing": "تصفح", "browsing": "تصفح",
"no_replies": "لم يرد أحد", "no_replies": "لم يرد أحد",
"share_this_category": "انشر هذه الفئة" "share_this_category": "انشر هذه الفئة",
"ignore": "Ignore"
} }

View File

@@ -9,12 +9,15 @@
"reset.text1": "We received a request to reset your password, possibly because you have forgotten it. If this is not the case, please ignore this email.", "reset.text1": "We received a request to reset your password, possibly because you have forgotten it. If this is not the case, please ignore this email.",
"reset.text2": "To continue with the password reset, please click on the following link:", "reset.text2": "To continue with the password reset, please click on the following link:",
"reset.cta": "Click here to reset your password", "reset.cta": "Click here to reset your password",
"digest.notifications": "You have some unread notifications from %1:", "digest.notifications": "You have unread notifications from %1:",
"digest.latest_topics": "Latest topics from %1", "digest.latest_topics": "Latest topics from %1",
"digest.cta": "Click here to visit %1", "digest.cta": "Click here to visit %1",
"digest.unsub.info": "This digest was sent to you due to your subscription settings.", "digest.unsub.info": "This digest was sent to you due to your subscription settings.",
"digest.unsub.cta": "Click here to alter those settings",
"digest.daily.no_topics": "There have been no active topics in the past day", "digest.daily.no_topics": "There have been no active topics in the past day",
"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.", "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!" "closing": "Thanks!"
} }

View File

@@ -12,45 +12,53 @@
"invalid-title": "Invalid title!", "invalid-title": "Invalid title!",
"invalid-user-data": "Invalid User Data", "invalid-user-data": "Invalid User Data",
"invalid-password": "كلمة السر غير مقبولة", "invalid-password": "كلمة السر غير مقبولة",
"invalid-username-or-password": "Please specify both a username and password",
"invalid-search-term": "Invalid search term",
"invalid-pagination-value": "Invalid pagination value", "invalid-pagination-value": "Invalid pagination value",
"username-taken": "اسم المستخدم ماخوذ", "username-taken": "اسم المستخدم ماخوذ",
"email-taken": "البريد الالكتروني ماخوذ", "email-taken": "البريد الالكتروني ماخوذ",
"email-not-confirmed": "Your email is not confirmed, please click here to confirm your email.", "email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
"username-too-short": "Username too short", "username-too-short": "Username too short",
"username-too-long": "Username too long",
"user-banned": "المستخدم محظور", "user-banned": "المستخدم محظور",
"no-category": "Category doesn't exist", "user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
"no-topic": "Topic doesn't exist", "no-category": "Category does not exist",
"no-post": "Post doesn't exist", "no-topic": "Topic does not exist",
"no-group": "Group doesn't exist", "no-post": "Post does not exist",
"no-user": "المستخدم لا يوجد", "no-group": "Group does not exist",
"no-teaser": "Teaser doesn't exist", "no-user": "User does not exist",
"no-privileges": "You don't have enough privileges for this action.", "no-teaser": "Teaser does not exist",
"no-privileges": "You do not have enough privileges for this action.",
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent", "no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
"category-disabled": "Category disabled", "category-disabled": "Category disabled",
"topic-locked": "الموضوع مقفول", "topic-locked": "الموضوع مقفول",
"still-uploading": "الرجاء انتظار الرفع", "still-uploading": "الرجاء انتظار الرفع",
"content-too-short": "Please enter a longer post. At least %1 characters.", "content-too-short": "Please enter a longer post. Posts should contain at least %1 characters.",
"title-too-short": "Please enter a longer title. At least %1 characters.", "title-too-short": "Please enter a longer title. Titles should contain at least %1 characters.",
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.", "title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
"too-many-posts": "You can only post every %1 seconds.", "too-many-posts": "You can only post once every %1 seconds - please wait before posting again",
"file-too-big": "Maximum allowed file size is %1 kbs", "file-too-big": "Maximum allowed file size is %1 kbs - please upload a smaller file",
"cant-vote-self-post": "You cannot vote for your own post", "cant-vote-self-post": "You cannot vote for your own post",
"already-favourited": "You already favourited this post", "already-favourited": "You have already favourited this post",
"already-unfavourited": "You already unfavourited this post", "already-unfavourited": "You have already unfavourited this post",
"cant-ban-other-admins": "You can't ban other admins!", "cant-ban-other-admins": "You can't ban other admins!",
"invalid-image-type": "نوع الصورة ممنوع", "invalid-image-type": "نوع الصورة ممنوع",
"group-name-too-short": "Group name too short", "group-name-too-short": "Group name too short",
"group-already-exists": "Group already exists", "group-already-exists": "Group already exists",
"group-name-change-not-allowed": "Group name change not allowed", "group-name-change-not-allowed": "Group name change not allowed",
"post-already-deleted": "Post already deleted", "post-already-deleted": "This post has already been deleted",
"post-already-restored": "Post already restored", "post-already-restored": "This post has already been restored",
"topic-already-deleted": "Topic already deleted", "topic-already-deleted": "This topic has already been deleted",
"topic-already-restored": "Topic already restored", "topic-already-restored": "This topic has already been restored",
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.", "topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
"invalid-file": "Invalid File", "invalid-file": "Invalid File",
"uploads-are-disabled": "Uploads are disabled", "uploads-are-disabled": "Uploads are disabled",
"upload-error": "مشكلة في الرفع: 1%", "upload-error": "مشكلة في الرفع: 1%",
"signature-too-long": "Signature can't be longer than %1 characters!", "signature-too-long": "Sorry, your signature cannot be longer than %1 characters.",
"cant-chat-with-yourself": "You can't chat with yourself!", "cant-chat-with-yourself": "You can't chat with yourself!",
"not-enough-reputation-to-downvote": "You do not have enough reputation to downvote this post" "reputation-system-disabled": "Reputation system is disabled.",
"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",
"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."
} }

View File

@@ -71,5 +71,6 @@
"guest": "Guest", "guest": "Guest",
"guests": "Guests", "guests": "Guests",
"updated.title": "Forum Updated", "updated.title": "Forum Updated",
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page." "updated.message": "This forum has just been updated to the latest version. Click here to refresh the page.",
"privacy": "Privacy"
} }

View File

@@ -1,4 +1,5 @@
{ {
"groups": "Groups",
"view_group": "View Group", "view_group": "View Group",
"details.title": "Group Details", "details.title": "Group Details",
"details.members": "Member List", "details.members": "Member List",

View File

@@ -12,6 +12,10 @@
"chat.message-history": "Message History", "chat.message-history": "Message History",
"chat.pop-out": "Pop out chat", "chat.pop-out": "Pop out chat",
"chat.maximize": "Maximize", "chat.maximize": "Maximize",
"chat.yesterday": "Yesterday",
"chat.seven_days": "7 Days",
"chat.thirty_days": "30 Days",
"chat.three_months": "3 Months",
"composer.user_said_in": "%1 said in %2:", "composer.user_said_in": "%1 said in %2:",
"composer.user_said": "%1 said:", "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?"

View File

@@ -10,11 +10,15 @@
"new_notification": "New Notification", "new_notification": "New Notification",
"you_have_unread_notifications": "You have unread notifications.", "you_have_unread_notifications": "You have unread notifications.",
"new_message_from": "New message from <strong>%1</strong>", "new_message_from": "New message from <strong>%1</strong>",
"upvoted_your_post": "<strong>%1</strong> has upvoted your post.", "upvoted_your_post_in": "<strong>%1</strong> has upvoted your post in <strong>%2</strong>.",
"favourited_your_post": "<strong>%1</strong> has favourited your post.", "moved_your_post": "<strong>%1</strong> has moved your post.",
"user_flagged_post": "<strong>%1</strong> flagged a post.", "moved_your_topic": "<strong>%1</strong> has moved your topic.",
"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> has posted a reply to: <strong>%2</strong>", "user_posted_to": "<strong>%1</strong> has posted a reply to: <strong>%2</strong>",
"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_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
"user_started_following_you": "<strong>%1</strong> started following you.",
"email-confirmed": "Email Confirmed", "email-confirmed": "Email Confirmed",
"email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.", "email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.",
"email-confirm-error": "An error occurred...", "email-confirm-error": "An error occurred...",

View File

@@ -12,5 +12,7 @@
"user.posts": "Posts made by %1", "user.posts": "Posts made by %1",
"user.topics": "Topics created by %1", "user.topics": "Topics created by %1",
"user.favourites": "%1's Favourite Posts", "user.favourites": "%1's Favourite Posts",
"user.settings": "User Settings" "user.settings": "User Settings",
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
} }

View File

@@ -4,5 +4,6 @@
"week": "أسبوع", "week": "أسبوع",
"month": "شهر", "month": "شهر",
"year": "Year", "year": "Year",
"alltime": "All Time",
"no_recent_topics": "There are no recent topics." "no_recent_topics": "There are no recent topics."
} }

View File

@@ -1,3 +1,4 @@
{ {
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)" "results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
"no-matches": "No posts found"
} }

View File

@@ -2,5 +2,6 @@
"no_tag_topics": "There are no topics with this tag.", "no_tag_topics": "There are no topics with this tag.",
"tags": "Tags", "tags": "Tags",
"enter_tags_here": "Enter tags here. Press enter after each tag.", "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_tags": "There are no tags yet."
} }

View File

@@ -18,7 +18,6 @@
"restore": "Restore", "restore": "Restore",
"move": "انقل", "move": "انقل",
"fork": "فرع", "fork": "فرع",
"banned": "محظور",
"link": "رابط", "link": "رابط",
"share": "شارك", "share": "شارك",
"tools": "أدوات", "tools": "أدوات",
@@ -28,15 +27,17 @@
"flag_title": "Flag this post for moderation", "flag_title": "Flag this post for moderation",
"flag_confirm": "Are you sure you want to flag this post?", "flag_confirm": "Are you sure you want to flag this post?",
"flag_success": "This post has been flagged for moderation.", "flag_success": "This post has been flagged for moderation.",
"deleted_message": "This thread has been deleted. Only users with thread management privileges can see it.", "deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.",
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.", "following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
"not_following_topic.message": "You will no longer receive notifications from this topic.", "not_following_topic.message": "You will no longer receive notifications from this topic.",
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.", "login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
"markAsUnreadForAll.success": "Topic marked as unread for all.", "markAsUnreadForAll.success": "Topic marked as unread for all.",
"watch": "Watch", "watch": "Watch",
"unwatch": "Unwatch",
"watch.title": "Be notified of new replies in this topic", "watch.title": "Be notified of new replies in this topic",
"unwatch.title": "Stop watching this topic",
"share_this_post": "Share this Post", "share_this_post": "Share this Post",
"thread_tools.title": "أدوات الموضوع", "thread_tools.title": "Topic Tools",
"thread_tools.markAsUnreadForAll": "علم غير مقروء", "thread_tools.markAsUnreadForAll": "علم غير مقروء",
"thread_tools.pin": "علق الموضوع", "thread_tools.pin": "علق الموضوع",
"thread_tools.unpin": "Unpin Topic", "thread_tools.unpin": "Unpin Topic",
@@ -46,11 +47,11 @@
"thread_tools.move_all": "Move All", "thread_tools.move_all": "Move All",
"thread_tools.fork": "تفرع الموضوع", "thread_tools.fork": "تفرع الموضوع",
"thread_tools.delete": "حذف الموضوع", "thread_tools.delete": "حذف الموضوع",
"thread_tools.delete_confirm": "Are you sure you want to delete this thread?", "thread_tools.delete_confirm": "Are you sure you want to delete this topic?",
"thread_tools.restore": "Restore Topic", "thread_tools.restore": "Restore Topic",
"thread_tools.restore_confirm": "Are you sure you want to restore this thread?", "thread_tools.restore_confirm": "Are you sure you want to restore this topic?",
"thread_tools.purge": "Purge Topic", "thread_tools.purge": "Purge Topic",
"thread_tools.purge_confirm": "Are you sure you want to purge this thread?", "thread_tools.purge_confirm": "Are you sure you want to purge this topic?",
"topic_move_success": "This topic has been successfully moved to %1", "topic_move_success": "This topic has been successfully moved to %1",
"post_delete_confirm": "Are you sure you want to delete this post?", "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_restore_confirm": "Are you sure you want to restore this post?",
@@ -71,7 +72,7 @@
"topic_will_be_moved_to": "هذا الموضوع سوف ينقل إلى فئة", "topic_will_be_moved_to": "هذا الموضوع سوف ينقل إلى فئة",
"fork_topic_instruction": "إضغط على الردود لتفريعهم", "fork_topic_instruction": "إضغط على الردود لتفريعهم",
"fork_no_pids": "لم تختار أي رد", "fork_no_pids": "لم تختار أي رد",
"fork_success": "تفريع الموضوع بنجاح!", "fork_success": "Successfully forked topic! Click here to go to the forked topic.",
"composer.title_placeholder": "Enter your topic title here...", "composer.title_placeholder": "Enter your topic title here...",
"composer.discard": "Discard", "composer.discard": "Discard",
"composer.submit": "Submit", "composer.submit": "Submit",

View File

@@ -4,6 +4,8 @@
"username": "إسم المستخدم", "username": "إسم المستخدم",
"email": "البريد الإلكتروني", "email": "البريد الإلكتروني",
"confirm_email": "Confirm Email", "confirm_email": "Confirm Email",
"delete_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.",
"fullname": "الاسم الكامل", "fullname": "الاسم الكامل",
"website": "الموقع الإلكتروني", "website": "الموقع الإلكتروني",
"location": "موقع", "location": "موقع",
@@ -27,6 +29,7 @@
"edit": "صحح", "edit": "صحح",
"uploaded_picture": "صورة تم تحميلها", "uploaded_picture": "صورة تم تحميلها",
"upload_new_picture": "تحميل صورة جديدة", "upload_new_picture": "تحميل صورة جديدة",
"upload_new_picture_from_url": "Upload New Picture From URL",
"current_password": "Current Password", "current_password": "Current Password",
"change_password": "تغيير كلمة السر", "change_password": "تغيير كلمة السر",
"change_password_error": "Invalid Password!", "change_password_error": "Invalid Password!",
@@ -44,12 +47,14 @@
"max": "max.", "max": "max.",
"settings": "Settings", "settings": "Settings",
"show_email": "أظهر بريدي الإلكتروني", "show_email": "أظهر بريدي الإلكتروني",
"show_fullname": "Show My Full Name",
"digest_label": "Subscribe to Digest", "digest_label": "Subscribe to Digest",
"digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule", "digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule",
"digest_off": "Off", "digest_off": "Off",
"digest_daily": "Daily", "digest_daily": "Daily",
"digest_weekly": "Weekly", "digest_weekly": "Weekly",
"digest_monthly": "Monthly", "digest_monthly": "Monthly",
"send_chat_notifications": "Send an email if a new chat message arrives and I am not online",
"has_no_follower": "هذا المستخدم ليس لديه أي أتباع :(", "has_no_follower": "هذا المستخدم ليس لديه أي أتباع :(",
"follows_no_one": "هذا المستخدم لا يتبع أحد :(", "follows_no_one": "هذا المستخدم لا يتبع أحد :(",
"has_no_posts": "This user didn't post anything yet.", "has_no_posts": "This user didn't post anything yet.",
@@ -61,5 +66,7 @@
"posts_per_page": "Posts 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", "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?",
"follow_topics_you_reply_to": "Follow topics that you reply to.",
"follow_topics_you_create": "Follow topics you create."
} }

View File

@@ -5,6 +5,5 @@
"search": "بحث", "search": "بحث",
"enter_username": "أدخل اسم مستخدم للبحث", "enter_username": "أدخل اسم مستخدم للبحث",
"load_more": "حمل المزيد", "load_more": "حمل المزيد",
"user-not-found": "User not found!",
"users-found-search-took": "%1 user(s) found! Search took %2 ms." "users-found-search-took": "%1 user(s) found! Search took %2 ms."
} }

View File

@@ -3,5 +3,6 @@
"no_topics": "<strong>V této kategorii zatím nejsou žádné příspěvky.</strong><br />Můžeš být první!", "no_topics": "<strong>V této kategorii zatím nejsou žádné příspěvky.</strong><br />Můžeš být první!",
"browsing": "prohlíží", "browsing": "prohlíží",
"no_replies": "Nikdo ještě neodpověděl", "no_replies": "Nikdo ještě neodpověděl",
"share_this_category": "Share this category" "share_this_category": "Share this category",
"ignore": "Ignore"
} }

View File

@@ -9,12 +9,15 @@
"reset.text1": "We received a request to reset your password, possibly because you have forgotten it. If this is not the case, please ignore this email.", "reset.text1": "We received a request to reset your password, possibly because you have forgotten it. If this is not the case, please ignore this email.",
"reset.text2": "To continue with the password reset, please click on the following link:", "reset.text2": "To continue with the password reset, please click on the following link:",
"reset.cta": "Click here to reset your password", "reset.cta": "Click here to reset your password",
"digest.notifications": "You have some unread notifications from %1:", "digest.notifications": "You have unread notifications from %1:",
"digest.latest_topics": "Latest topics from %1", "digest.latest_topics": "Latest topics from %1",
"digest.cta": "Click here to visit %1", "digest.cta": "Click here to visit %1",
"digest.unsub.info": "This digest was sent to you due to your subscription settings.", "digest.unsub.info": "This digest was sent to you due to your subscription settings.",
"digest.unsub.cta": "Click here to alter those settings",
"digest.daily.no_topics": "There have been no active topics in the past day", "digest.daily.no_topics": "There have been no active topics in the past day",
"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.", "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!" "closing": "Thanks!"
} }

View File

@@ -12,45 +12,53 @@
"invalid-title": "Invalid title!", "invalid-title": "Invalid title!",
"invalid-user-data": "Invalid User Data", "invalid-user-data": "Invalid User Data",
"invalid-password": "Invalid Password", "invalid-password": "Invalid Password",
"invalid-username-or-password": "Please specify both a username and password",
"invalid-search-term": "Invalid search term",
"invalid-pagination-value": "Invalid pagination value", "invalid-pagination-value": "Invalid pagination value",
"username-taken": "Username taken", "username-taken": "Username taken",
"email-taken": "Email taken", "email-taken": "Email taken",
"email-not-confirmed": "Your email is not confirmed, please click here to confirm your email.", "email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
"username-too-short": "Username too short", "username-too-short": "Username too short",
"username-too-long": "Username too long",
"user-banned": "User banned", "user-banned": "User banned",
"no-category": "Category doesn't exist", "user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
"no-topic": "Topic doesn't exist", "no-category": "Category does not exist",
"no-post": "Post doesn't exist", "no-topic": "Topic does not exist",
"no-group": "Group doesn't exist", "no-post": "Post does not exist",
"no-user": "User doesn't exist", "no-group": "Group does not exist",
"no-teaser": "Teaser doesn't exist", "no-user": "User does not exist",
"no-privileges": "You don't have enough privileges for this action.", "no-teaser": "Teaser does not exist",
"no-privileges": "You do not have enough privileges for this action.",
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent", "no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
"category-disabled": "Category disabled", "category-disabled": "Category disabled",
"topic-locked": "Topic Locked", "topic-locked": "Topic Locked",
"still-uploading": "Please wait for uploads to complete.", "still-uploading": "Please wait for uploads to complete.",
"content-too-short": "Please enter a longer post. At least %1 characters.", "content-too-short": "Please enter a longer post. Posts should contain at least %1 characters.",
"title-too-short": "Please enter a longer title. At least %1 characters.", "title-too-short": "Please enter a longer title. Titles should contain at least %1 characters.",
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.", "title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
"too-many-posts": "You can only post every %1 seconds.", "too-many-posts": "You can only post once every %1 seconds - please wait before posting again",
"file-too-big": "Maximum allowed file size is %1 kbs", "file-too-big": "Maximum allowed file size is %1 kbs - please upload a smaller file",
"cant-vote-self-post": "You cannot vote for your own post", "cant-vote-self-post": "You cannot vote for your own post",
"already-favourited": "You already favourited this post", "already-favourited": "You have already favourited this post",
"already-unfavourited": "You already unfavourited this post", "already-unfavourited": "You have already unfavourited this post",
"cant-ban-other-admins": "You can't ban other admins!", "cant-ban-other-admins": "You can't ban other admins!",
"invalid-image-type": "Invalid image type", "invalid-image-type": "Invalid image type",
"group-name-too-short": "Group name too short", "group-name-too-short": "Group name too short",
"group-already-exists": "Group already exists", "group-already-exists": "Group already exists",
"group-name-change-not-allowed": "Group name change not allowed", "group-name-change-not-allowed": "Group name change not allowed",
"post-already-deleted": "Post already deleted", "post-already-deleted": "This post has already been deleted",
"post-already-restored": "Post already restored", "post-already-restored": "This post has already been restored",
"topic-already-deleted": "Topic already deleted", "topic-already-deleted": "This topic has already been deleted",
"topic-already-restored": "Topic already restored", "topic-already-restored": "This topic has already been restored",
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.", "topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
"invalid-file": "Invalid File", "invalid-file": "Invalid File",
"uploads-are-disabled": "Uploads are disabled", "uploads-are-disabled": "Uploads are disabled",
"upload-error": "Upload Error : %1", "upload-error": "Upload Error : %1",
"signature-too-long": "Signature can't be longer than %1 characters!", "signature-too-long": "Sorry, your signature cannot be longer than %1 characters.",
"cant-chat-with-yourself": "You can't chat with yourself!", "cant-chat-with-yourself": "You can't chat with yourself!",
"not-enough-reputation-to-downvote": "You do not have enough reputation to downvote this post" "reputation-system-disabled": "Reputation system is disabled.",
"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",
"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."
} }

View File

@@ -71,5 +71,6 @@
"guest": "Guest", "guest": "Guest",
"guests": "Guests", "guests": "Guests",
"updated.title": "Forum Updated", "updated.title": "Forum Updated",
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page." "updated.message": "This forum has just been updated to the latest version. Click here to refresh the page.",
"privacy": "Privacy"
} }

View File

@@ -1,4 +1,5 @@
{ {
"groups": "Groups",
"view_group": "View Group", "view_group": "View Group",
"details.title": "Group Details", "details.title": "Group Details",
"details.members": "Member List", "details.members": "Member List",

View File

@@ -12,6 +12,10 @@
"chat.message-history": "Message History", "chat.message-history": "Message History",
"chat.pop-out": "Pop out chat", "chat.pop-out": "Pop out chat",
"chat.maximize": "Maximize", "chat.maximize": "Maximize",
"chat.yesterday": "Yesterday",
"chat.seven_days": "7 Days",
"chat.thirty_days": "30 Days",
"chat.three_months": "3 Months",
"composer.user_said_in": "%1 said in %2:", "composer.user_said_in": "%1 said in %2:",
"composer.user_said": "%1 said:", "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?"

View File

@@ -10,11 +10,15 @@
"new_notification": "New Notification", "new_notification": "New Notification",
"you_have_unread_notifications": "You have unread notifications.", "you_have_unread_notifications": "You have unread notifications.",
"new_message_from": "New message from <strong>%1</strong>", "new_message_from": "New message from <strong>%1</strong>",
"upvoted_your_post": "<strong>%1</strong> has upvoted your post.", "upvoted_your_post_in": "<strong>%1</strong> has upvoted your post in <strong>%2</strong>.",
"favourited_your_post": "<strong>%1</strong> has favourited your post.", "moved_your_post": "<strong>%1</strong> has moved your post.",
"user_flagged_post": "<strong>%1</strong> flagged a post.", "moved_your_topic": "<strong>%1</strong> has moved your topic.",
"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> has posted a reply to: <strong>%2</strong>", "user_posted_to": "<strong>%1</strong> has posted a reply to: <strong>%2</strong>",
"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_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
"user_started_following_you": "<strong>%1</strong> started following you.",
"email-confirmed": "Email Confirmed", "email-confirmed": "Email Confirmed",
"email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.", "email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.",
"email-confirm-error": "An error occurred...", "email-confirm-error": "An error occurred...",

View File

@@ -12,5 +12,7 @@
"user.posts": "Posts made by %1", "user.posts": "Posts made by %1",
"user.topics": "Topics created by %1", "user.topics": "Topics created by %1",
"user.favourites": "%1's Favourite Posts", "user.favourites": "%1's Favourite Posts",
"user.settings": "User Settings" "user.settings": "User Settings",
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
} }

View File

@@ -4,5 +4,6 @@
"week": "Týden", "week": "Týden",
"month": "Měsíc", "month": "Měsíc",
"year": "Year", "year": "Year",
"alltime": "All Time",
"no_recent_topics": "There are no recent topics." "no_recent_topics": "There are no recent topics."
} }

View File

@@ -1,3 +1,4 @@
{ {
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)" "results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
"no-matches": "No posts found"
} }

View File

@@ -2,5 +2,6 @@
"no_tag_topics": "There are no topics with this tag.", "no_tag_topics": "There are no topics with this tag.",
"tags": "Tags", "tags": "Tags",
"enter_tags_here": "Enter tags here. Press enter after each tag.", "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_tags": "There are no tags yet."
} }

View File

@@ -18,7 +18,6 @@
"restore": "Restore", "restore": "Restore",
"move": "Přesunout", "move": "Přesunout",
"fork": "Rozdělit", "fork": "Rozdělit",
"banned": "banned",
"link": "Odkaz", "link": "Odkaz",
"share": "Sdílet", "share": "Sdílet",
"tools": "Nástroje", "tools": "Nástroje",
@@ -28,15 +27,17 @@
"flag_title": "Flag this post for moderation", "flag_title": "Flag this post for moderation",
"flag_confirm": "Are you sure you want to flag this post?", "flag_confirm": "Are you sure you want to flag this post?",
"flag_success": "This post has been flagged for moderation.", "flag_success": "This post has been flagged for moderation.",
"deleted_message": "This thread has been deleted. Only users with thread management privileges can see it.", "deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.",
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.", "following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
"not_following_topic.message": "You will no longer receive notifications from this topic.", "not_following_topic.message": "You will no longer receive notifications from this topic.",
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.", "login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
"markAsUnreadForAll.success": "Topic marked as unread for all.", "markAsUnreadForAll.success": "Topic marked as unread for all.",
"watch": "Watch", "watch": "Watch",
"unwatch": "Unwatch",
"watch.title": "Be notified of new replies in this topic", "watch.title": "Be notified of new replies in this topic",
"unwatch.title": "Stop watching this topic",
"share_this_post": "Share this Post", "share_this_post": "Share this Post",
"thread_tools.title": "Nástroje", "thread_tools.title": "Topic Tools",
"thread_tools.markAsUnreadForAll": "Označit jako nepřečtené", "thread_tools.markAsUnreadForAll": "Označit jako nepřečtené",
"thread_tools.pin": "Pin Topic", "thread_tools.pin": "Pin Topic",
"thread_tools.unpin": "Unpin Topic", "thread_tools.unpin": "Unpin Topic",
@@ -46,11 +47,11 @@
"thread_tools.move_all": "Move All", "thread_tools.move_all": "Move All",
"thread_tools.fork": "Fork Topic", "thread_tools.fork": "Fork Topic",
"thread_tools.delete": "Delete Topic", "thread_tools.delete": "Delete Topic",
"thread_tools.delete_confirm": "Are you sure you want to delete this thread?", "thread_tools.delete_confirm": "Are you sure you want to delete this topic?",
"thread_tools.restore": "Restore Topic", "thread_tools.restore": "Restore Topic",
"thread_tools.restore_confirm": "Are you sure you want to restore this thread?", "thread_tools.restore_confirm": "Are you sure you want to restore this topic?",
"thread_tools.purge": "Purge Topic", "thread_tools.purge": "Purge Topic",
"thread_tools.purge_confirm": "Are you sure you want to purge this thread?", "thread_tools.purge_confirm": "Are you sure you want to purge this topic?",
"topic_move_success": "This topic has been successfully moved to %1", "topic_move_success": "This topic has been successfully moved to %1",
"post_delete_confirm": "Are you sure you want to delete this post?", "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_restore_confirm": "Are you sure you want to restore this post?",
@@ -71,7 +72,7 @@
"topic_will_be_moved_to": "Toto téma bude přesunuto do kategorie", "topic_will_be_moved_to": "Toto téma bude přesunuto do kategorie",
"fork_topic_instruction": "Vyber příspěvky, které chceš oddělit", "fork_topic_instruction": "Vyber příspěvky, které chceš oddělit",
"fork_no_pids": "Žádné příspěvky nebyly vybrány!", "fork_no_pids": "Žádné příspěvky nebyly vybrány!",
"fork_success": "Téma bylo úspěšně rozděleno!", "fork_success": "Successfully forked topic! Click here to go to the forked topic.",
"composer.title_placeholder": "Enter your topic title here...", "composer.title_placeholder": "Enter your topic title here...",
"composer.discard": "Discard", "composer.discard": "Discard",
"composer.submit": "Submit", "composer.submit": "Submit",

View File

@@ -4,6 +4,8 @@
"username": "Uživatelské jméno", "username": "Uživatelské jméno",
"email": "Email", "email": "Email",
"confirm_email": "Confirm Email", "confirm_email": "Confirm Email",
"delete_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.",
"fullname": "Jméno a příjmení", "fullname": "Jméno a příjmení",
"website": "Webové stránky", "website": "Webové stránky",
"location": "Poloha", "location": "Poloha",
@@ -27,6 +29,7 @@
"edit": "Upravit", "edit": "Upravit",
"uploaded_picture": "Nahraný obrázek", "uploaded_picture": "Nahraný obrázek",
"upload_new_picture": "Nahrát nový obrázek", "upload_new_picture": "Nahrát nový obrázek",
"upload_new_picture_from_url": "Upload New Picture From URL",
"current_password": "Current Password", "current_password": "Current Password",
"change_password": "Změnit heslo", "change_password": "Změnit heslo",
"change_password_error": "Invalid Password!", "change_password_error": "Invalid Password!",
@@ -44,12 +47,14 @@
"max": "max.", "max": "max.",
"settings": "Nastavení", "settings": "Nastavení",
"show_email": "Zobrazovat můj email v profilu", "show_email": "Zobrazovat můj email v profilu",
"show_fullname": "Show My Full Name",
"digest_label": "Subscribe to Digest", "digest_label": "Subscribe to Digest",
"digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule", "digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule",
"digest_off": "Off", "digest_off": "Off",
"digest_daily": "Daily", "digest_daily": "Daily",
"digest_weekly": "Weekly", "digest_weekly": "Weekly",
"digest_monthly": "Monthly", "digest_monthly": "Monthly",
"send_chat_notifications": "Send an email if a new chat message arrives and I am not online",
"has_no_follower": "Tohoto uživatele nikdo nesleduje :(", "has_no_follower": "Tohoto uživatele nikdo nesleduje :(",
"follows_no_one": "Tento uživatel nikoho nesleduje :(", "follows_no_one": "Tento uživatel nikoho nesleduje :(",
"has_no_posts": "This user didn't post anything yet.", "has_no_posts": "This user didn't post anything yet.",
@@ -61,5 +66,7 @@
"posts_per_page": "Posts 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", "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?",
"follow_topics_you_reply_to": "Follow topics that you reply to.",
"follow_topics_you_create": "Follow topics you create."
} }

View File

@@ -5,6 +5,5 @@
"search": "Vyhledávat", "search": "Vyhledávat",
"enter_username": "Zadej uživatelské jméno k hledání", "enter_username": "Zadej uživatelské jméno k hledání",
"load_more": "Načíst další", "load_more": "Načíst další",
"user-not-found": "User not found!",
"users-found-search-took": "%1 user(s) found! Search took %2 ms." "users-found-search-took": "%1 user(s) found! Search took %2 ms."
} }

View File

@@ -3,5 +3,6 @@
"no_topics": "<strong>Es gibt noch keine Themen in dieser Kategorie.</strong><br />Warum beginnst du nicht das erste?", "no_topics": "<strong>Es gibt noch keine Themen in dieser Kategorie.</strong><br />Warum beginnst du nicht das erste?",
"browsing": "Aktiv", "browsing": "Aktiv",
"no_replies": "Niemand hat geantwortet", "no_replies": "Niemand hat geantwortet",
"share_this_category": "Teile diese Kategorie" "share_this_category": "Teile diese Kategorie",
"ignore": "Ignorieren"
} }

View File

@@ -9,12 +9,15 @@
"reset.text1": "Wir haben eine Anfrage auf Zurücksetzung deines Passworts erhalten, wahrscheinlich, weil du es vergessen hast. Falls dies nicht der Fall ist, ignoriere bitte diese E-Mail.", "reset.text1": "Wir haben eine Anfrage auf Zurücksetzung deines Passworts erhalten, wahrscheinlich, weil du es vergessen hast. Falls dies nicht der Fall ist, ignoriere bitte diese E-Mail.",
"reset.text2": "Klicke bitte auf den folgenden Link, um mit der Zurücksetzung deines Passworts fortzufahren:", "reset.text2": "Klicke bitte auf den folgenden Link, um mit der Zurücksetzung deines Passworts fortzufahren:",
"reset.cta": "Klicke hier, um dein Passwort zurückzusetzen", "reset.cta": "Klicke hier, um dein Passwort zurückzusetzen",
"digest.notifications": "Du hast einige ungelesene Benachrichtigungen vom %1:", "digest.notifications": "You have unread notifications from %1:",
"digest.latest_topics": "Aktuellste Themen vom %1", "digest.latest_topics": "Aktuellste Themen vom %1",
"digest.cta": "Klicke hier, um %1 zu besuchen", "digest.cta": "Klicke hier, um %1 zu besuchen",
"digest.unsub.info": "Diese Zusammenfassung wurde dir aufgrund deiner Abonnement-Einstellungen gesendet.", "digest.unsub.info": "Diese Zusammenfassung wurde dir aufgrund deiner Abonnement-Einstellungen gesendet.",
"digest.unsub.cta": "Klicke hier, um diese Einstellungen zu ändern",
"digest.daily.no_topics": "Es gab heute keine aktiven Themen", "digest.daily.no_topics": "Es gab heute keine aktiven Themen",
"notif.chat.subject": "Neue Chatnachricht von %1 erhalten",
"notif.chat.cta": "Klicke hier, um die Unterhaltung fortzusetzen",
"notif.chat.unsub.info": "Diese Chat-Benachrichtigung wurde dir aufgrund deiner Abonnement-Einstellungen gesendet.",
"test.text1": "Dies ist eine Test-E-Mail, um zu überprüfen, ob der E-Mailer deines NodeBB korrekt eingestellt wurde.", "test.text1": "Dies ist eine Test-E-Mail, um zu überprüfen, ob der E-Mailer deines NodeBB korrekt eingestellt wurde.",
"unsub.cta": "Klicke hier, um diese Einstellungen zu ändern.",
"closing": "Danke!" "closing": "Danke!"
} }

View File

@@ -12,45 +12,53 @@
"invalid-title": "Ungültiger Titel", "invalid-title": "Ungültiger Titel",
"invalid-user-data": "Ungültige Benutzerdaten", "invalid-user-data": "Ungültige Benutzerdaten",
"invalid-password": "Ungültiges Passwort", "invalid-password": "Ungültiges Passwort",
"invalid-username-or-password": "Bitte gebe einen Benutzernamen und ein Passwort an",
"invalid-search-term": "Ungültige Suchanfrage",
"invalid-pagination-value": "Die Nummerierung ist ungültig", "invalid-pagination-value": "Die Nummerierung ist ungültig",
"username-taken": "Der Benutzername ist bereits vergeben", "username-taken": "Der Benutzername ist bereits vergeben",
"email-taken": "Die E-Mail-Adresse ist bereits vergeben", "email-taken": "Die E-Mail-Adresse ist bereits vergeben",
"email-not-confirmed": "Deine E-Mail wurde noch nicht bestätigt. Bitte klicke hier, um deine E-Mail zu bestätigen.", "email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
"username-too-short": "Benutzername ist zu kurz", "username-too-short": "Benutzername ist zu kurz",
"username-too-long": "Der Benutzername ist zu lang",
"user-banned": "Der Benutzer ist gesperrt", "user-banned": "Der Benutzer ist gesperrt",
"no-category": "Die Kategorie existiert nicht", "user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
"no-topic": "Das Thema existiert nicht", "no-category": "Category does not exist",
"no-post": "Der Beitrag existiert nicht", "no-topic": "Topic does not exist",
"no-group": "Die Gruppe existiert nicht", "no-post": "Post does not exist",
"no-user": "Der Benutzer existiert nicht", "no-group": "Group does not exist",
"no-teaser": "Kurztext existiert nicht", "no-user": "User does not exist",
"no-privileges": "Du verfügst nicht über ausreichende Berechtigungen, um die Aktion durchzuführen.", "no-teaser": "Teaser does not exist",
"no-privileges": "You do not have enough privileges for this action.",
"no-emailers-configured": "Es wurde keine E-Mail-Plugins geladen, weshalb eine Test-E-Mail nicht gesendet werden konnte.", "no-emailers-configured": "Es wurde keine E-Mail-Plugins geladen, weshalb eine Test-E-Mail nicht gesendet werden konnte.",
"category-disabled": "Kategorie ist deaktiviert", "category-disabled": "Kategorie ist deaktiviert",
"topic-locked": "Thema ist gesperrt", "topic-locked": "Thema ist gesperrt",
"still-uploading": "Bitte warte bis der Vorgang abgeschlossen ist.", "still-uploading": "Bitte warte bis der Vorgang abgeschlossen ist.",
"content-too-short": "Der Beitrag muss mindestens %1 Zeichen enthalten.", "content-too-short": "Please enter a longer post. Posts should contain at least %1 characters.",
"title-too-short": "Der Titel muss mindestens %1 Zeichen enthalten.", "title-too-short": "Please enter a longer title. Titles should contain at least %1 characters.",
"title-too-long": "Der Titel darf maximal %1 Zeichen enthalten.", "title-too-long": "Der Titel darf maximal %1 Zeichen enthalten.",
"too-many-posts": "Du kannst maximal alle %1 Sekunden einen Beitrag erstellen.", "too-many-posts": "You can only post once every %1 seconds - please wait before posting again",
"file-too-big": "Die maximale Dateigröße beträgt %1 kbs", "file-too-big": "Maximum allowed file size is %1 kbs - please upload a smaller file",
"cant-vote-self-post": "Du kannst deinen eigenen Beitrag nicht bewerten.", "cant-vote-self-post": "Du kannst deinen eigenen Beitrag nicht bewerten.",
"already-favourited": "Dieser Beitrag ist bereits in deinen Favoriten enthalten", "already-favourited": "You have already favourited this post",
"already-unfavourited": "Du hast diesen Beitrag bereits aus deinen Favoriten entfernt", "already-unfavourited": "You have already unfavourited this post",
"cant-ban-other-admins": "Du kannst andere Administratoren nicht sperren!", "cant-ban-other-admins": "Du kannst andere Administratoren nicht sperren!",
"invalid-image-type": "Ungültiger Bildtyp", "invalid-image-type": "Ungültiger Bildtyp",
"group-name-too-short": "Gruppenname zu kurz", "group-name-too-short": "Gruppenname zu kurz",
"group-already-exists": "Gruppe existiert bereits", "group-already-exists": "Gruppe existiert bereits",
"group-name-change-not-allowed": "Du kannst den Namen der Gruppe nicht ändern", "group-name-change-not-allowed": "Du kannst den Namen der Gruppe nicht ändern",
"post-already-deleted": "Beitrag wurde bereits gelöscht", "post-already-deleted": "This post has already been deleted",
"post-already-restored": "Der Beitrag wurde bereits wiederhergestellt", "post-already-restored": "This post has already been restored",
"topic-already-deleted": "Das Thema wurde bereits gelöscht", "topic-already-deleted": "This topic has already been deleted",
"topic-already-restored": "Das Thema wurde bereits wiederhergestellt", "topic-already-restored": "This topic has already been restored",
"topic-thumbnails-are-disabled": "Vorschaubilder für Themen sind deaktiviert", "topic-thumbnails-are-disabled": "Vorschaubilder für Themen sind deaktiviert",
"invalid-file": "Datei ungültig", "invalid-file": "Datei ungültig",
"uploads-are-disabled": "Uploads sind deaktiviert", "uploads-are-disabled": "Uploads sind deaktiviert",
"upload-error": "Upload-Fehler: %1", "upload-error": "Upload-Fehler: %1",
"signature-too-long": "Die Signatur darf maximal %1 Zeichen enthalten!", "signature-too-long": "Sorry, your signature cannot be longer than %1 characters.",
"cant-chat-with-yourself": "Du kannst nicht mit dir selber chatten!", "cant-chat-with-yourself": "Du kannst nicht mit dir selber chatten!",
"not-enough-reputation-to-downvote": "Deine Reputation ist zu niedrig, um diesen Beitrag negativ zu bewerten." "reputation-system-disabled": "Das Reputationssystem ist deaktiviert.",
"downvoting-disabled": "Downvotes sind deaktiviert.",
"not-enough-reputation-to-downvote": "Deine Reputation ist zu niedrig, um diesen Beitrag negativ zu bewerten.",
"not-enough-reputation-to-flag": "You do not have enough reputation to flag this post",
"reload-failed": "Es ist ein Problem während des Reloads von NodeBB aufgetreten: \"%1\". NodeBB wird weiterhin clientseitige Assets bereitstellen, allerdings solltest du das, was du vor dem Reload gemacht hast, rückgängig machen."
} }

View File

@@ -71,5 +71,6 @@
"guest": "Gast", "guest": "Gast",
"guests": "Gäste", "guests": "Gäste",
"updated.title": "Forum aktualisiert", "updated.title": "Forum aktualisiert",
"updated.message": "Dieses Forum wurde gerade auf die neueste Version aktualisiert. Klicke hier, um die Seite neuzuladen." "updated.message": "Dieses Forum wurde gerade auf die neueste Version aktualisiert. Klicke hier, um die Seite neuzuladen.",
"privacy": "Privacy"
} }

View File

@@ -1,4 +1,5 @@
{ {
"groups": "Groups",
"view_group": "Gruppe betrachten", "view_group": "Gruppe betrachten",
"details.title": "Gruppendetails", "details.title": "Gruppendetails",
"details.members": "Mitgliederliste", "details.members": "Mitgliederliste",

View File

@@ -12,6 +12,10 @@
"chat.message-history": "Nachrichtenverlauf", "chat.message-history": "Nachrichtenverlauf",
"chat.pop-out": "Chat als Pop-out anzeigen", "chat.pop-out": "Chat als Pop-out anzeigen",
"chat.maximize": "Maximieren", "chat.maximize": "Maximieren",
"chat.yesterday": "Gestern",
"chat.seven_days": "7 Tage",
"chat.thirty_days": "30 Tage",
"chat.three_months": "3 Monate",
"composer.user_said_in": "%1 sagte in %2:", "composer.user_said_in": "%1 sagte in %2:",
"composer.user_said": "%1 sagte:", "composer.user_said": "%1 sagte:",
"composer.discard": "Bist du sicher, dass du diesen Post verwerfen möchtest?" "composer.discard": "Bist du sicher, dass du diesen Post verwerfen möchtest?"

View File

@@ -10,11 +10,15 @@
"new_notification": "Neue Benachrichtigung", "new_notification": "Neue Benachrichtigung",
"you_have_unread_notifications": "Du hast ungelesene Benachrichtigungen.", "you_have_unread_notifications": "Du hast ungelesene Benachrichtigungen.",
"new_message_from": "Neue Nachricht von <strong>%1</strong>", "new_message_from": "Neue Nachricht von <strong>%1</strong>",
"upvoted_your_post": "<strong>%1</strong> hat deinen Beitrag positiv bewertet.", "upvoted_your_post_in": "<strong>%1</strong> hat deinen Beitrag in <strong>%2</strong> positiv bewertet.",
"favourited_your_post": "<strong>%1</strong> favorisiert deinen Beitrag.", "moved_your_post": "<strong>%1</strong> hat deinen Beitrag verschoben.",
"user_flagged_post": "<strong>%1</strong> hat einen Beitrag markiert.", "moved_your_topic": "<strong>%1</strong> hat dein Thema verschoben.",
"favourited_your_post_in": "<strong>%1</strong> hat deinen Beitrag in <strong>%2</strong> favorisiert.",
"user_flagged_post_in": "<strong>%1</strong> hat einen Beitrag in </strong>%2</strong> gemeldet",
"user_posted_to": "<strong>%1</strong> hat auf <strong>%2</strong> geantwortet.", "user_posted_to": "<strong>%1</strong> hat auf <strong>%2</strong> geantwortet.",
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
"user_mentioned_you_in": "<strong>%1</strong> erwähnte dich in <strong>%2</strong>", "user_mentioned_you_in": "<strong>%1</strong> erwähnte dich in <strong>%2</strong>",
"user_started_following_you": "<strong>%1</strong> folgt dir jetzt.",
"email-confirmed": "E-Mail bestätigt", "email-confirmed": "E-Mail bestätigt",
"email-confirmed-message": "Vielen Dank für Ihre E-Mail-Validierung. Ihr Konto ist nun vollständig aktiviert.", "email-confirmed-message": "Vielen Dank für Ihre E-Mail-Validierung. Ihr Konto ist nun vollständig aktiviert.",
"email-confirm-error": "Es ist ein Fehler aufgetreten ...", "email-confirm-error": "Es ist ein Fehler aufgetreten ...",

View File

@@ -5,12 +5,14 @@
"recent": "Neueste Themen", "recent": "Neueste Themen",
"users": "Registrierte User", "users": "Registrierte User",
"notifications": "Benachrichtigungen", "notifications": "Benachrichtigungen",
"tags": "Topics tagged under \"%1\"", "tags": "Themen markiert unter \"%1\"",
"user.edit": "Bearbeite \"%1\"", "user.edit": "Bearbeite \"%1\"",
"user.following": "Nutzer, die %1 folgt", "user.following": "Nutzer, die %1 folgt",
"user.followers": "Nutzer, die %1 folgen", "user.followers": "Nutzer, die %1 folgen",
"user.posts": "Beiträge von %1", "user.posts": "Beiträge von %1",
"user.topics": "Themen von %1", "user.topics": "Themen von %1",
"user.favourites": "Von %1 favorisierte Beiträge", "user.favourites": "Von %1 favorisierte Beiträge",
"user.settings": "Benutzer-Einstellungen" "user.settings": "Benutzer-Einstellungen",
"maintenance.text": "%1 befindet sich derzeit in der Wartung. Bitte komm später wieder.",
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
} }

View File

@@ -4,5 +4,6 @@
"week": "Woche", "week": "Woche",
"month": "Monat", "month": "Monat",
"year": "Jahr", "year": "Jahr",
"alltime": "Gesamter Zeitraum",
"no_recent_topics": "Es gibt keine aktuellen Themen." "no_recent_topics": "Es gibt keine aktuellen Themen."
} }

View File

@@ -1,3 +1,4 @@
{ {
"results_matching": "%1 Ergebniss(e) stimmen mit \"%2\" überein, (%3 Sekunden)" "results_matching": "%1 Ergebniss(e) stimmen mit \"%2\" überein, (%3 Sekunden)",
"no-matches": "Keine Beiträge gefunden"
} }

View File

@@ -2,5 +2,6 @@
"no_tag_topics": "Es gibt keine Themen mit diesem Tag.", "no_tag_topics": "Es gibt keine Themen mit diesem Tag.",
"tags": "Tags", "tags": "Tags",
"enter_tags_here": "Gib hier Tags ein und drück die Eingabetaste nach jedem Tag.", "enter_tags_here": "Gib hier Tags ein und drück die Eingabetaste nach jedem Tag.",
"enter_tags_here_short": "Gib Tags ein...",
"no_tags": "Es gibt bisher keine Tags." "no_tags": "Es gibt bisher keine Tags."
} }

View File

@@ -18,7 +18,6 @@
"restore": "Wiederherstellen", "restore": "Wiederherstellen",
"move": "verschieben", "move": "verschieben",
"fork": "Aufspalten", "fork": "Aufspalten",
"banned": "gesperrt",
"link": "Link", "link": "Link",
"share": "Teilen", "share": "Teilen",
"tools": "Tools", "tools": "Tools",
@@ -34,9 +33,11 @@
"login_to_subscribe": "Bitte registrieren oder einloggen um dieses Thema zu abonnieren", "login_to_subscribe": "Bitte registrieren oder einloggen um dieses Thema zu abonnieren",
"markAsUnreadForAll.success": "Thema für Alle als ungelesen markiert.", "markAsUnreadForAll.success": "Thema für Alle als ungelesen markiert.",
"watch": "Beobachten", "watch": "Beobachten",
"unwatch": "Nicht mehr beobachten",
"watch.title": "Bei neuen Antworten benachrichtigen", "watch.title": "Bei neuen Antworten benachrichtigen",
"unwatch.title": "Dieses Thema nicht mehr beobachten",
"share_this_post": "Diesen Beitrag teilen", "share_this_post": "Diesen Beitrag teilen",
"thread_tools.title": "Tools", "thread_tools.title": "Themen-Tools",
"thread_tools.markAsUnreadForAll": "Als ungelesen markieren", "thread_tools.markAsUnreadForAll": "Als ungelesen markieren",
"thread_tools.pin": "Thema anpinnen", "thread_tools.pin": "Thema anpinnen",
"thread_tools.unpin": "Thema nicht mehr anpinnen", "thread_tools.unpin": "Thema nicht mehr anpinnen",
@@ -46,11 +47,11 @@
"thread_tools.move_all": "Alle verschieben", "thread_tools.move_all": "Alle verschieben",
"thread_tools.fork": "Thema aufspalten", "thread_tools.fork": "Thema aufspalten",
"thread_tools.delete": "Thema löschen", "thread_tools.delete": "Thema löschen",
"thread_tools.delete_confirm": "Sind Sie sicher, dass Sie dieses Thema löschen möchten?", "thread_tools.delete_confirm": "Bist du sicher, dass du dieses Thema löschen möchtest?",
"thread_tools.restore": "Thema wiederherstellen", "thread_tools.restore": "Thema wiederherstellen",
"thread_tools.restore_confirm": "Sind Sie sicher, dass Sie dieses Thema wiederherstellen möchten?", "thread_tools.restore_confirm": "Bist du sicher, dass du dieses Thema wiederherstellen möchtest?",
"thread_tools.purge": "Thema bereinigen", "thread_tools.purge": "Thema bereinigen",
"thread_tools.purge_confirm": "Sind Sie sicher, dass Sie dieses Thema bereinigen möchten?", "thread_tools.purge_confirm": "Bist du sicher, dass du dieses Thema bereinigen möchtest?",
"topic_move_success": "Thema wurde erfolgreich zu %1 verschoben.", "topic_move_success": "Thema wurde erfolgreich zu %1 verschoben.",
"post_delete_confirm": "Sind Sie sicher, dass Sie diesen Beitrag löschen möchten?", "post_delete_confirm": "Sind Sie sicher, dass Sie diesen Beitrag löschen möchten?",
"post_restore_confirm": "Sind Sie sicher, dass Sie diesen Beitrag wiederherstellen möchten?", "post_restore_confirm": "Sind Sie sicher, dass Sie diesen Beitrag wiederherstellen möchten?",
@@ -71,7 +72,7 @@
"topic_will_be_moved_to": "Dieses Thema wird verschoben nach", "topic_will_be_moved_to": "Dieses Thema wird verschoben nach",
"fork_topic_instruction": "Klicke auf die Beiträge, die du aufspalten willst", "fork_topic_instruction": "Klicke auf die Beiträge, die du aufspalten willst",
"fork_no_pids": "Keine Beiträge ausgewählt!", "fork_no_pids": "Keine Beiträge ausgewählt!",
"fork_success": "Thema erfolgreich aufgespalten!", "fork_success": "Successfully forked topic! Click here to go to the forked topic.",
"composer.title_placeholder": "Hier den Titel des Themas eingeben...", "composer.title_placeholder": "Hier den Titel des Themas eingeben...",
"composer.discard": "Verwerfen", "composer.discard": "Verwerfen",
"composer.submit": "Absenden", "composer.submit": "Absenden",
@@ -87,7 +88,7 @@
"more_users_and_guests": "%1 weitere(r) Nutzer und %2 Gäste", "more_users_and_guests": "%1 weitere(r) Nutzer und %2 Gäste",
"more_users": "%1 weitere(r) Nutzer", "more_users": "%1 weitere(r) Nutzer",
"more_guests": "%1 weitere Gäste", "more_guests": "%1 weitere Gäste",
"users_and_others": "%1 and %2 others", "users_and_others": "%1 und %2 andere",
"sort_by": "Sortieren nach", "sort_by": "Sortieren nach",
"oldest_to_newest": "Älteste zuerst", "oldest_to_newest": "Älteste zuerst",
"newest_to_oldest": "Neuster zuerst", "newest_to_oldest": "Neuster zuerst",

View File

@@ -4,6 +4,8 @@
"username": "Nutzername", "username": "Nutzername",
"email": "E-Mail", "email": "E-Mail",
"confirm_email": "E-Mail bestätigen", "confirm_email": "E-Mail bestätigen",
"delete_account": "Konto löschen",
"delete_account_confirm": "Bist du sicher, dass du dein Konto löschen möchtest? <br /><strong>Diese Aktion kann nicht rückgängig gemacht werden und du kannst deine Daten nicht wiederherstellen</strong><br /><br />Gebe deinen Benutzernamen ein, um zu bestätigen, dass du dieses Konto löschen möchtest.",
"fullname": "Kompletter Name", "fullname": "Kompletter Name",
"website": "Homepage", "website": "Homepage",
"location": "Wohnort", "location": "Wohnort",
@@ -27,6 +29,7 @@
"edit": "Ändern", "edit": "Ändern",
"uploaded_picture": "Hochgeladene Bilder", "uploaded_picture": "Hochgeladene Bilder",
"upload_new_picture": "Neues Bild hochladen", "upload_new_picture": "Neues Bild hochladen",
"upload_new_picture_from_url": "Neues Bild von URL hochladen",
"current_password": "Aktuelles Passwort", "current_password": "Aktuelles Passwort",
"change_password": "Passwort ändern", "change_password": "Passwort ändern",
"change_password_error": "Ungültiges Passwort!", "change_password_error": "Ungültiges Passwort!",
@@ -44,12 +47,14 @@
"max": "max.", "max": "max.",
"settings": "Einstellungen", "settings": "Einstellungen",
"show_email": "Zeige meine E-Mail Adresse an.", "show_email": "Zeige meine E-Mail Adresse an.",
"show_fullname": "Show My Full Name",
"digest_label": "Auszug abonnieren", "digest_label": "Auszug abonnieren",
"digest_description": "Abonniere E-Mail-Benachrichtigungen für dieses Forum (neue Benachrichtigungen und Themen) nach einem festen Zeitplan.", "digest_description": "Abonniere E-Mail-Benachrichtigungen für dieses Forum (neue Benachrichtigungen und Themen) nach einem festen Zeitplan.",
"digest_off": "Aus", "digest_off": "Aus",
"digest_daily": "Täglich", "digest_daily": "Täglich",
"digest_weekly": "Wöchentlich", "digest_weekly": "Wöchentlich",
"digest_monthly": "Monatlich", "digest_monthly": "Monatlich",
"send_chat_notifications": "Sende eine E-Mail, wenn eine neue Chat-Nachricht eingeht und ich nicht online bin",
"has_no_follower": "Dieser User hat noch keine Follower.", "has_no_follower": "Dieser User hat noch keine Follower.",
"follows_no_one": "Dieser User folgt noch niemandem :(", "follows_no_one": "Dieser User folgt noch niemandem :(",
"has_no_posts": "Dieser Nutzer hat noch nichts gepostet.", "has_no_posts": "Dieser Nutzer hat noch nichts gepostet.",
@@ -61,5 +66,7 @@
"posts_per_page": "Beiträge pro Seite", "posts_per_page": "Beiträge pro Seite",
"notification_sounds": "Ton abspielen, wenn ich eine Benachrichtigung erhalte.", "notification_sounds": "Ton abspielen, wenn ich eine Benachrichtigung erhalte.",
"browsing": "Browser Einstellungen", "browsing": "Browser Einstellungen",
"open_links_in_new_tab": "Externe Links in neuem Tab öffnen?" "open_links_in_new_tab": "Externe Links in neuem Tab öffnen?",
"follow_topics_you_reply_to": "Folge Themen, auf die du antwortest.",
"follow_topics_you_create": "Folge Themen, die du erstellst."
} }

View File

@@ -5,6 +5,5 @@
"search": "Suchen", "search": "Suchen",
"enter_username": "Benutzer durchsuchen", "enter_username": "Benutzer durchsuchen",
"load_more": "mehr laden", "load_more": "mehr laden",
"user-not-found": "Benutzer nicht gefunden!",
"users-found-search-took": "%1 Benutzer gefunden! Die Suche dauerte %2 ms." "users-found-search-took": "%1 Benutzer gefunden! Die Suche dauerte %2 ms."
} }

View File

@@ -3,5 +3,6 @@
"no_topics": "<strong>Thar be no topics in 'tis category.</strong><br />Why don't ye give a go' postin' one?", "no_topics": "<strong>Thar be no topics in 'tis category.</strong><br />Why don't ye give a go' postin' one?",
"browsing": "browsin'", "browsing": "browsin'",
"no_replies": "No one has replied to ye message", "no_replies": "No one has replied to ye message",
"share_this_category": "Share this category" "share_this_category": "Share this category",
"ignore": "Ignore"
} }

View File

@@ -9,12 +9,15 @@
"reset.text1": "We received a request to reset your password, possibly because you have forgotten it. If this is not the case, please ignore this email.", "reset.text1": "We received a request to reset your password, possibly because you have forgotten it. If this is not the case, please ignore this email.",
"reset.text2": "To continue with the password reset, please click on the following link:", "reset.text2": "To continue with the password reset, please click on the following link:",
"reset.cta": "Click here to reset your password", "reset.cta": "Click here to reset your password",
"digest.notifications": "You have some unread notifications from %1:", "digest.notifications": "You have unread notifications from %1:",
"digest.latest_topics": "Latest topics from %1", "digest.latest_topics": "Latest topics from %1",
"digest.cta": "Click here to visit %1", "digest.cta": "Click here to visit %1",
"digest.unsub.info": "This digest was sent to you due to your subscription settings.", "digest.unsub.info": "This digest was sent to you due to your subscription settings.",
"digest.unsub.cta": "Click here to alter those settings",
"digest.daily.no_topics": "There have been no active topics in the past day", "digest.daily.no_topics": "There have been no active topics in the past day",
"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.", "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!" "closing": "Thanks!"
} }

View File

@@ -12,45 +12,53 @@
"invalid-title": "Invalid title!", "invalid-title": "Invalid title!",
"invalid-user-data": "Invalid User Data", "invalid-user-data": "Invalid User Data",
"invalid-password": "Invalid Password", "invalid-password": "Invalid Password",
"invalid-username-or-password": "Please specify both a username and password",
"invalid-search-term": "Invalid search term",
"invalid-pagination-value": "Invalid pagination value", "invalid-pagination-value": "Invalid pagination value",
"username-taken": "Username taken", "username-taken": "Username taken",
"email-taken": "Email taken", "email-taken": "Email taken",
"email-not-confirmed": "Your email is not confirmed, please click here to confirm your email.", "email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
"username-too-short": "Username too short", "username-too-short": "Username too short",
"username-too-long": "Username too long",
"user-banned": "User banned", "user-banned": "User banned",
"no-category": "Category doesn't exist", "user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
"no-topic": "Topic doesn't exist", "no-category": "Category does not exist",
"no-post": "Post doesn't exist", "no-topic": "Topic does not exist",
"no-group": "Group doesn't exist", "no-post": "Post does not exist",
"no-user": "User doesn't exist", "no-group": "Group does not exist",
"no-teaser": "Teaser doesn't exist", "no-user": "User does not exist",
"no-privileges": "You don't have enough privileges for this action.", "no-teaser": "Teaser does not exist",
"no-privileges": "You do not have enough privileges for this action.",
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent", "no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
"category-disabled": "Category disabled", "category-disabled": "Category disabled",
"topic-locked": "Topic Locked", "topic-locked": "Topic Locked",
"still-uploading": "Please wait for uploads to complete.", "still-uploading": "Please wait for uploads to complete.",
"content-too-short": "Please enter a longer post. At least %1 characters.", "content-too-short": "Please enter a longer post. Posts should contain at least %1 characters.",
"title-too-short": "Please enter a longer title. At least %1 characters.", "title-too-short": "Please enter a longer title. Titles should contain at least %1 characters.",
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.", "title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
"too-many-posts": "You can only post every %1 seconds.", "too-many-posts": "You can only post once every %1 seconds - please wait before posting again",
"file-too-big": "Maximum allowed file size is %1 kbs", "file-too-big": "Maximum allowed file size is %1 kbs - please upload a smaller file",
"cant-vote-self-post": "You cannot vote for your own post", "cant-vote-self-post": "You cannot vote for your own post",
"already-favourited": "You already favourited this post", "already-favourited": "You have already favourited this post",
"already-unfavourited": "You already unfavourited this post", "already-unfavourited": "You have already unfavourited this post",
"cant-ban-other-admins": "You can't ban other admins!", "cant-ban-other-admins": "You can't ban other admins!",
"invalid-image-type": "Invalid image type", "invalid-image-type": "Invalid image type",
"group-name-too-short": "Group name too short", "group-name-too-short": "Group name too short",
"group-already-exists": "Group already exists", "group-already-exists": "Group already exists",
"group-name-change-not-allowed": "Group name change not allowed", "group-name-change-not-allowed": "Group name change not allowed",
"post-already-deleted": "Post already deleted", "post-already-deleted": "This post has already been deleted",
"post-already-restored": "Post already restored", "post-already-restored": "This post has already been restored",
"topic-already-deleted": "Topic already deleted", "topic-already-deleted": "This topic has already been deleted",
"topic-already-restored": "Topic already restored", "topic-already-restored": "This topic has already been restored",
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.", "topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
"invalid-file": "Invalid File", "invalid-file": "Invalid File",
"uploads-are-disabled": "Uploads are disabled", "uploads-are-disabled": "Uploads are disabled",
"upload-error": "Upload Error : %1", "upload-error": "Upload Error : %1",
"signature-too-long": "Signature can't be longer than %1 characters!", "signature-too-long": "Sorry, your signature cannot be longer than %1 characters.",
"cant-chat-with-yourself": "You can't chat with yourself!", "cant-chat-with-yourself": "You can't chat with yourself!",
"not-enough-reputation-to-downvote": "You do not have enough reputation to downvote this post" "reputation-system-disabled": "Reputation system is disabled.",
"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",
"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."
} }

View File

@@ -71,5 +71,6 @@
"guest": "Guest", "guest": "Guest",
"guests": "Guests", "guests": "Guests",
"updated.title": "Forum Updated", "updated.title": "Forum Updated",
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page." "updated.message": "This forum has just been updated to the latest version. Click here to refresh the page.",
"privacy": "Privacy"
} }

View File

@@ -1,4 +1,5 @@
{ {
"groups": "Groups",
"view_group": "View Group", "view_group": "View Group",
"details.title": "Group Details", "details.title": "Group Details",
"details.members": "Member List", "details.members": "Member List",

View File

@@ -12,6 +12,10 @@
"chat.message-history": "Message History", "chat.message-history": "Message History",
"chat.pop-out": "Pop out chat", "chat.pop-out": "Pop out chat",
"chat.maximize": "Maximize", "chat.maximize": "Maximize",
"chat.yesterday": "Yesterday",
"chat.seven_days": "7 Days",
"chat.thirty_days": "30 Days",
"chat.three_months": "3 Months",
"composer.user_said_in": "%1 said in %2:", "composer.user_said_in": "%1 said in %2:",
"composer.user_said": "%1 said:", "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?"

View File

@@ -10,11 +10,15 @@
"new_notification": "New Notification", "new_notification": "New Notification",
"you_have_unread_notifications": "You have unread notifications.", "you_have_unread_notifications": "You have unread notifications.",
"new_message_from": "New message from <strong>%1</strong>", "new_message_from": "New message from <strong>%1</strong>",
"upvoted_your_post": "<strong>%1</strong> has upvoted your post.", "upvoted_your_post_in": "<strong>%1</strong> has upvoted your post in <strong>%2</strong>.",
"favourited_your_post": "<strong>%1</strong> has favourited your post.", "moved_your_post": "<strong>%1</strong> has moved your post.",
"user_flagged_post": "<strong>%1</strong> flagged a post.", "moved_your_topic": "<strong>%1</strong> has moved your topic.",
"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> has posted a reply to: <strong>%2</strong>", "user_posted_to": "<strong>%1</strong> has posted a reply to: <strong>%2</strong>",
"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_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
"user_started_following_you": "<strong>%1</strong> started following you.",
"email-confirmed": "Email Confirmed", "email-confirmed": "Email Confirmed",
"email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.", "email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.",
"email-confirm-error": "An error occurred...", "email-confirm-error": "An error occurred...",

View File

@@ -12,5 +12,7 @@
"user.posts": "Posts made by %1", "user.posts": "Posts made by %1",
"user.topics": "Topics created by %1", "user.topics": "Topics created by %1",
"user.favourites": "%1's Favourite Posts", "user.favourites": "%1's Favourite Posts",
"user.settings": "User Settings" "user.settings": "User Settings",
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
} }

View File

@@ -4,5 +4,6 @@
"week": "Week", "week": "Week",
"month": "Month", "month": "Month",
"year": "Year", "year": "Year",
"alltime": "All Time",
"no_recent_topics": "There be no recent topics." "no_recent_topics": "There be no recent topics."
} }

View File

@@ -1,3 +1,4 @@
{ {
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)" "results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
"no-matches": "No posts found"
} }

View File

@@ -2,5 +2,6 @@
"no_tag_topics": "There are no topics with this tag.", "no_tag_topics": "There are no topics with this tag.",
"tags": "Tags", "tags": "Tags",
"enter_tags_here": "Enter tags here. Press enter after each tag.", "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_tags": "There are no tags yet."
} }

View File

@@ -18,7 +18,6 @@
"restore": "Restore", "restore": "Restore",
"move": "Move", "move": "Move",
"fork": "Fork", "fork": "Fork",
"banned": "banned",
"link": "Link", "link": "Link",
"share": "Share", "share": "Share",
"tools": "Tools", "tools": "Tools",
@@ -28,15 +27,17 @@
"flag_title": "Flag this post for moderation", "flag_title": "Flag this post for moderation",
"flag_confirm": "Are you sure you want to flag this post?", "flag_confirm": "Are you sure you want to flag this post?",
"flag_success": "This post has been flagged for moderation.", "flag_success": "This post has been flagged for moderation.",
"deleted_message": "This thread has been deleted. Only users with thread management privileges can see it.", "deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.",
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.", "following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
"not_following_topic.message": "You will no longer receive notifications from this topic.", "not_following_topic.message": "You will no longer receive notifications from this topic.",
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.", "login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
"markAsUnreadForAll.success": "Topic marked as unread for all.", "markAsUnreadForAll.success": "Topic marked as unread for all.",
"watch": "Watch", "watch": "Watch",
"unwatch": "Unwatch",
"watch.title": "Be notified of new replies in this topic", "watch.title": "Be notified of new replies in this topic",
"unwatch.title": "Stop watching this topic",
"share_this_post": "Share this Post", "share_this_post": "Share this Post",
"thread_tools.title": "Thread Tools", "thread_tools.title": "Topic Tools",
"thread_tools.markAsUnreadForAll": "Mark Unread", "thread_tools.markAsUnreadForAll": "Mark Unread",
"thread_tools.pin": "Pin Topic", "thread_tools.pin": "Pin Topic",
"thread_tools.unpin": "Unpin Topic", "thread_tools.unpin": "Unpin Topic",
@@ -46,11 +47,11 @@
"thread_tools.move_all": "Move All", "thread_tools.move_all": "Move All",
"thread_tools.fork": "Fork Topic", "thread_tools.fork": "Fork Topic",
"thread_tools.delete": "Delete Topic", "thread_tools.delete": "Delete Topic",
"thread_tools.delete_confirm": "Are you sure you want to delete this thread?", "thread_tools.delete_confirm": "Are you sure you want to delete this topic?",
"thread_tools.restore": "Restore Topic", "thread_tools.restore": "Restore Topic",
"thread_tools.restore_confirm": "Are you sure you want to restore this thread?", "thread_tools.restore_confirm": "Are you sure you want to restore this topic?",
"thread_tools.purge": "Purge Topic", "thread_tools.purge": "Purge Topic",
"thread_tools.purge_confirm": "Are you sure you want to purge this thread?", "thread_tools.purge_confirm": "Are you sure you want to purge this topic?",
"topic_move_success": "This topic has been successfully moved to %1", "topic_move_success": "This topic has been successfully moved to %1",
"post_delete_confirm": "Are you sure you want to delete this post?", "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_restore_confirm": "Are you sure you want to restore this post?",
@@ -71,7 +72,7 @@
"topic_will_be_moved_to": "This topic will be moved to the category", "topic_will_be_moved_to": "This topic will be moved to the category",
"fork_topic_instruction": "Click the posts you want to fork", "fork_topic_instruction": "Click the posts you want to fork",
"fork_no_pids": "No posts selected!", "fork_no_pids": "No posts selected!",
"fork_success": "Succesfully forked topic!", "fork_success": "Successfully forked topic! Click here to go to the forked topic.",
"composer.title_placeholder": "Enter your topic title here...", "composer.title_placeholder": "Enter your topic title here...",
"composer.discard": "Discard", "composer.discard": "Discard",
"composer.submit": "Submit", "composer.submit": "Submit",

View File

@@ -4,6 +4,8 @@
"username": "User Name", "username": "User Name",
"email": "Email", "email": "Email",
"confirm_email": "Confirm Email", "confirm_email": "Confirm Email",
"delete_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.",
"fullname": "Full Name", "fullname": "Full Name",
"website": "Website", "website": "Website",
"location": "Location", "location": "Location",
@@ -27,6 +29,7 @@
"edit": "Edit", "edit": "Edit",
"uploaded_picture": "Uploaded Picture", "uploaded_picture": "Uploaded Picture",
"upload_new_picture": "Upload New Picture", "upload_new_picture": "Upload New Picture",
"upload_new_picture_from_url": "Upload New Picture From URL",
"current_password": "Current Password", "current_password": "Current Password",
"change_password": "Change Password", "change_password": "Change Password",
"change_password_error": "Invalid Password!", "change_password_error": "Invalid Password!",
@@ -44,12 +47,14 @@
"max": "max.", "max": "max.",
"settings": "Settings", "settings": "Settings",
"show_email": "Show My Email", "show_email": "Show My Email",
"show_fullname": "Show My Full Name",
"digest_label": "Subscribe to Digest", "digest_label": "Subscribe to Digest",
"digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule", "digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule",
"digest_off": "Off", "digest_off": "Off",
"digest_daily": "Daily", "digest_daily": "Daily",
"digest_weekly": "Weekly", "digest_weekly": "Weekly",
"digest_monthly": "Monthly", "digest_monthly": "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 :(", "has_no_follower": "This user doesn't have any followers :(",
"follows_no_one": "This user isn't following anyone :(", "follows_no_one": "This user isn't following anyone :(",
"has_no_posts": "This user didn't post anything yet.", "has_no_posts": "This user didn't post anything yet.",
@@ -61,5 +66,7 @@
"posts_per_page": "Posts 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", "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?",
"follow_topics_you_reply_to": "Follow topics that you reply to.",
"follow_topics_you_create": "Follow topics you create."
} }

View File

@@ -5,6 +5,5 @@
"search": "Search", "search": "Search",
"enter_username": "Gimme y'er handle", "enter_username": "Gimme y'er handle",
"load_more": "Load More", "load_more": "Load More",
"user-not-found": "User not found!",
"users-found-search-took": "%1 user(s) found! Search took %2 ms." "users-found-search-took": "%1 user(s) found! Search took %2 ms."
} }

View File

@@ -5,5 +5,6 @@
"browsing": "browsing", "browsing": "browsing",
"no_replies": "No one has replied", "no_replies": "No one has replied",
"share_this_category": "Share this category" "share_this_category": "Share this category",
"ignore": "Ignore"
} }

View File

@@ -13,14 +13,19 @@
"reset.text2": "To continue with the password reset, please click on the following link:", "reset.text2": "To continue with the password reset, please click on the following link:",
"reset.cta": "Click here to reset your password", "reset.cta": "Click here to reset your password",
"digest.notifications": "You have some unread notifications from %1:", "digest.notifications": "You have unread notifications from %1:",
"digest.latest_topics": "Latest topics from %1", "digest.latest_topics": "Latest topics from %1",
"digest.cta": "Click here to visit %1", "digest.cta": "Click here to visit %1",
"digest.unsub.info": "This digest was sent to you due to your subscription settings.", "digest.unsub.info": "This digest was sent to you due to your subscription settings.",
"digest.unsub.cta": "Click here to alter those settings",
"digest.daily.no_topics": "There have been no active topics in the past day", "digest.daily.no_topics": "There have been no active topics in the past day",
"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.", "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!" "closing": "Thanks!"
} }

View File

@@ -15,24 +15,28 @@
"invalid-title": "Invalid title", "invalid-title": "Invalid title",
"invalid-user-data": "Invalid User Data", "invalid-user-data": "Invalid User Data",
"invalid-password": "Invalid Password", "invalid-password": "Invalid Password",
"invalid-username-or-password": "Please specify both a username and password",
"invalid-search-term": "Invalid search term",
"invalid-pagination-value": "Invalid pagination value", "invalid-pagination-value": "Invalid pagination value",
"username-taken": "Username taken", "username-taken": "Username taken",
"email-taken": "Email taken", "email-taken": "Email taken",
"email-not-confirmed": "Your email is not confirmed, please click here to confirm your email.", "email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
"username-too-short": "Username too short", "username-too-short": "Username too short",
"username-too-long": "Username too long",
"user-banned": "User banned", "user-banned": "User banned",
"user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
"no-category": "Category doesn't exist", "no-category": "Category does not exist",
"no-topic": "Topic doesn't exist", "no-topic": "Topic does not exist",
"no-post": "Post doesn't exist", "no-post": "Post does not exist",
"no-group": "Group doesn't exist", "no-group": "Group does not exist",
"no-user": "User doesn't exist", "no-user": "User does not exist",
"no-teaser": "Teaser doesn't exist", "no-teaser": "Teaser does not exist",
"no-privileges": "You don't have enough privileges for this action.", "no-privileges": "You do not have enough privileges for this action.",
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent", "no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
"category-disabled": "Category disabled", "category-disabled": "Category disabled",
@@ -40,16 +44,16 @@
"topic-locked": "Topic Locked", "topic-locked": "Topic Locked",
"still-uploading": "Please wait for uploads to complete.", "still-uploading": "Please wait for uploads to complete.",
"content-too-short": "Please enter a longer post. At least %1 characters.", "content-too-short": "Please enter a longer post. Posts should contain at least %1 characters.",
"title-too-short": "Please enter a longer title. At least %1 characters.", "title-too-short": "Please enter a longer title. Titles should contain at least %1 characters.",
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.", "title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
"invalid-title": "Invalid title!", "invalid-title": "Invalid title!",
"too-many-posts": "You can only post every %1 seconds.", "too-many-posts": "You can only post once every %1 seconds - please wait before posting again",
"file-too-big": "Maximum allowed file size is %1 kbs", "file-too-big": "Maximum allowed file size is %1 kbs - please upload a smaller file",
"cant-vote-self-post": "You cannot vote for your own post", "cant-vote-self-post": "You cannot vote for your own post",
"already-favourited": "You already favourited this post", "already-favourited": "You have already favourited this post",
"already-unfavourited": "You already unfavourited this post", "already-unfavourited": "You have already unfavourited this post",
"cant-ban-other-admins": "You can't ban other admins!", "cant-ban-other-admins": "You can't ban other admins!",
@@ -59,21 +63,25 @@
"group-already-exists": "Group already exists", "group-already-exists": "Group already exists",
"group-name-change-not-allowed": "Group name change not allowed", "group-name-change-not-allowed": "Group name change not allowed",
"post-already-deleted": "Post already deleted", "post-already-deleted": "This post has already been deleted",
"post-already-restored": "Post already restored", "post-already-restored": "This post has already been restored",
"topic-already-deleted": "Topic already deleted",
"topic-already-restored": "Topic already restored",
"topic-already-deleted": "This topic has already been deleted",
"topic-already-restored": "This topic has already been restored",
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.", "topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
"invalid-file": "Invalid File", "invalid-file": "Invalid File",
"uploads-are-disabled": "Uploads are disabled", "uploads-are-disabled": "Uploads are disabled",
"upload-error": "Upload Error : %1", "upload-error": "Upload Error : %1",
"signature-too-long" : "Signature can't be longer than %1 characters!", "signature-too-long" : "Sorry, your signature cannot be longer than %1 characters.",
"cant-chat-with-yourself": "You can't chat with yourself!", "cant-chat-with-yourself": "You can't chat with yourself!",
"not-enough-reputation-to-downvote": "You do not have enough reputation to downvote this post" "reputation-system-disabled": "Reputation system is disabled.",
"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",
"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."
} }

View File

@@ -94,5 +94,7 @@
"guests": "Guests", "guests": "Guests",
"updated.title": "Forum Updated", "updated.title": "Forum Updated",
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page." "updated.message": "This forum has just been updated to the latest version. Click here to refresh the page.",
"privacy": "Privacy"
} }

View File

@@ -1,4 +1,5 @@
{ {
"groups": "Groups",
"view_group": "View Group", "view_group": "View Group",
"details.title": "Group Details", "details.title": "Group Details",

View File

@@ -12,6 +12,10 @@
"chat.message-history": "Message History", "chat.message-history": "Message History",
"chat.pop-out": "Pop out chat", "chat.pop-out": "Pop out chat",
"chat.maximize": "Maximize", "chat.maximize": "Maximize",
"chat.yesterday": "Yesterday",
"chat.seven_days": "7 Days",
"chat.thirty_days": "30 Days",
"chat.three_months": "3 Months",
"composer.user_said_in": "%1 said in %2:", "composer.user_said_in": "%1 said in %2:",
"composer.user_said": "%1 said:", "composer.user_said": "%1 said:",

View File

@@ -12,11 +12,15 @@
"you_have_unread_notifications": "You have unread notifications.", "you_have_unread_notifications": "You have unread notifications.",
"new_message_from": "New message from <strong>%1</strong>", "new_message_from": "New message from <strong>%1</strong>",
"upvoted_your_post": "<strong>%1</strong> has upvoted your post.", "upvoted_your_post_in": "<strong>%1</strong> has upvoted your post in <strong>%2</strong>.",
"favourited_your_post": "<strong>%1</strong> has favourited your post.", "moved_your_post": "<strong>%1</strong> has moved your post.",
"user_flagged_post": "<strong>%1</strong> flagged a post.", "moved_your_topic": "<strong>%1</strong> has moved your topic.",
"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> has posted a reply to: <strong>%2</strong>", "user_posted_to" : "<strong>%1</strong> has posted a reply to: <strong>%2</strong>",
"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_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
"user_started_following_you": "<strong>%1</strong> started following you.",
"email-confirmed": "Email Confirmed", "email-confirmed": "Email Confirmed",
"email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.", "email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.",

View File

@@ -12,5 +12,8 @@
"user.posts": "Posts made by %1", "user.posts": "Posts made by %1",
"user.topics": "Topics created by %1", "user.topics": "Topics created by %1",
"user.favourites": "%1's Favourite Posts", "user.favourites": "%1's Favourite Posts",
"user.settings": "User Settings" "user.settings": "User Settings",
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
} }

View File

@@ -4,5 +4,6 @@
"week": "Week", "week": "Week",
"month": "Month", "month": "Month",
"year": "Year", "year": "Year",
"alltime": "All Time",
"no_recent_topics": "There are no recent topics." "no_recent_topics": "There are no recent topics."
} }

View File

@@ -1,3 +1,4 @@
{ {
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)" "results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
"no-matches": "No posts found"
} }

View File

@@ -2,5 +2,6 @@
"no_tag_topics": "There are no topics with this tag.", "no_tag_topics": "There are no topics with this tag.",
"tags": "Tags", "tags": "Tags",
"enter_tags_here": "Enter tags here. Press enter after each tag.", "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_tags": "There are no tags yet."
} }

View File

@@ -21,7 +21,6 @@
"restore": "Restore", "restore": "Restore",
"move": "Move", "move": "Move",
"fork": "Fork", "fork": "Fork",
"banned": "banned",
"link": "Link", "link": "Link",
"share": "Share", "share": "Share",
"tools": "Tools", "tools": "Tools",
@@ -33,7 +32,7 @@
"flag_title": "Flag this post for moderation", "flag_title": "Flag this post for moderation",
"flag_confirm": "Are you sure you want to flag this post?", "flag_confirm": "Are you sure you want to flag this post?",
"flag_success": "This post has been flagged for moderation.", "flag_success": "This post has been flagged for moderation.",
"deleted_message": "This thread has been deleted. Only users with thread management privileges can see it.", "deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.",
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.", "following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
"not_following_topic.message": "You will no longer receive notifications from this topic.", "not_following_topic.message": "You will no longer receive notifications from this topic.",
@@ -43,10 +42,12 @@
"markAsUnreadForAll.success" : "Topic marked as unread for all.", "markAsUnreadForAll.success" : "Topic marked as unread for all.",
"watch": "Watch", "watch": "Watch",
"unwatch": "Unwatch",
"watch.title": "Be notified of new replies in this topic", "watch.title": "Be notified of new replies in this topic",
"unwatch.title": "Stop watching this topic",
"share_this_post": "Share this Post", "share_this_post": "Share this Post",
"thread_tools.title": "Thread Tools", "thread_tools.title": "Topic Tools",
"thread_tools.markAsUnreadForAll": "Mark Unread", "thread_tools.markAsUnreadForAll": "Mark Unread",
"thread_tools.pin": "Pin Topic", "thread_tools.pin": "Pin Topic",
"thread_tools.unpin": "Unpin Topic", "thread_tools.unpin": "Unpin Topic",
@@ -56,11 +57,11 @@
"thread_tools.move_all": "Move All", "thread_tools.move_all": "Move All",
"thread_tools.fork": "Fork Topic", "thread_tools.fork": "Fork Topic",
"thread_tools.delete": "Delete Topic", "thread_tools.delete": "Delete Topic",
"thread_tools.delete_confirm": "Are you sure you want to delete this thread?", "thread_tools.delete_confirm": "Are you sure you want to delete this topic?",
"thread_tools.restore": "Restore Topic", "thread_tools.restore": "Restore Topic",
"thread_tools.restore_confirm": "Are you sure you want to restore this thread?", "thread_tools.restore_confirm": "Are you sure you want to restore this topic?",
"thread_tools.purge": "Purge Topic", "thread_tools.purge": "Purge Topic",
"thread_tools.purge_confirm" : "Are you sure you want to purge this thread?", "thread_tools.purge_confirm" : "Are you sure you want to purge this topic?",
"topic_move_success": "This topic has been successfully moved to %1", "topic_move_success": "This topic has been successfully moved to %1",
@@ -86,7 +87,7 @@
"topic_will_be_moved_to": "This topic will be moved to the category", "topic_will_be_moved_to": "This topic will be moved to the category",
"fork_topic_instruction": "Click the posts you want to fork", "fork_topic_instruction": "Click the posts you want to fork",
"fork_no_pids": "No posts selected!", "fork_no_pids": "No posts selected!",
"fork_success": "Succesfully forked topic!", "fork_success": "Successfully forked topic! Click here to go to the forked topic.",
"composer.title_placeholder": "Enter your topic title here...", "composer.title_placeholder": "Enter your topic title here...",
"composer.discard": "Discard", "composer.discard": "Discard",

View File

@@ -5,6 +5,8 @@
"email": "Email", "email": "Email",
"confirm_email": "Confirm Email", "confirm_email": "Confirm Email",
"delete_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.",
"fullname": "Full Name", "fullname": "Full Name",
"website": "Website", "website": "Website",
@@ -30,6 +32,7 @@
"edit": "Edit", "edit": "Edit",
"uploaded_picture": "Uploaded Picture", "uploaded_picture": "Uploaded Picture",
"upload_new_picture": "Upload New Picture", "upload_new_picture": "Upload New Picture",
"upload_new_picture_from_url": "Upload New Picture From URL",
"current_password": "Current Password", "current_password": "Current Password",
"change_password": "Change Password", "change_password": "Change Password",
"change_password_error": "Invalid Password!", "change_password_error": "Invalid Password!",
@@ -49,12 +52,14 @@
"settings": "Settings", "settings": "Settings",
"show_email": "Show My Email", "show_email": "Show My Email",
"show_fullname": "Show My Full Name",
"digest_label": "Subscribe to Digest", "digest_label": "Subscribe to Digest",
"digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule", "digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule",
"digest_off": "Off", "digest_off": "Off",
"digest_daily": "Daily", "digest_daily": "Daily",
"digest_weekly": "Weekly", "digest_weekly": "Weekly",
"digest_monthly": "Monthly", "digest_monthly": "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 :(", "has_no_follower": "This user doesn't have any followers :(",
"follows_no_one": "This user isn't following anyone :(", "follows_no_one": "This user isn't following anyone :(",
@@ -71,5 +76,8 @@
"notification_sounds" : "Play a sound when you receive a notification.", "notification_sounds" : "Play a sound when you receive a notification.",
"browsing": "Browsing Settings", "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?",
"follow_topics_you_reply_to": "Follow topics that you reply to.",
"follow_topics_you_create": "Follow topics you create."
} }

View File

@@ -5,6 +5,5 @@
"search": "Search", "search": "Search",
"enter_username": "Enter a username to search", "enter_username": "Enter a username to search",
"load_more": "Load More", "load_more": "Load More",
"user-not-found": "User not found!",
"users-found-search-took": "%1 user(s) found! Search took %2 ms." "users-found-search-took": "%1 user(s) found! Search took %2 ms."
} }

View File

@@ -3,5 +3,6 @@
"no_topics": "<strong>There are no topics in this category.</strong><br />Why don't you try posting one?", "no_topics": "<strong>There are no topics in this category.</strong><br />Why don't you try posting one?",
"browsing": "browsing", "browsing": "browsing",
"no_replies": "No one has replied", "no_replies": "No one has replied",
"share_this_category": "Share this category" "share_this_category": "Share this category",
"ignore": "Ignore"
} }

View File

@@ -9,12 +9,15 @@
"reset.text1": "We received a request to reset your password, possibly because you have forgotten it. If this is not the case, please ignore this email.", "reset.text1": "We received a request to reset your password, possibly because you have forgotten it. If this is not the case, please ignore this email.",
"reset.text2": "To continue with the password reset, please click on the following link:", "reset.text2": "To continue with the password reset, please click on the following link:",
"reset.cta": "Click here to reset your password", "reset.cta": "Click here to reset your password",
"digest.notifications": "You have some unread notifications from %1:", "digest.notifications": "You have unread notifications from %1:",
"digest.latest_topics": "Latest topics from %1", "digest.latest_topics": "Latest topics from %1",
"digest.cta": "Click here to visit %1", "digest.cta": "Click here to visit %1",
"digest.unsub.info": "This digest was sent to you due to your subscription settings.", "digest.unsub.info": "This digest was sent to you due to your subscription settings.",
"digest.unsub.cta": "Click here to alter those settings",
"digest.daily.no_topics": "There have been no active topics in the past day", "digest.daily.no_topics": "There have been no active topics in the past day",
"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.", "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!" "closing": "Thanks!"
} }

View File

@@ -12,45 +12,53 @@
"invalid-title": "Invalid title!", "invalid-title": "Invalid title!",
"invalid-user-data": "Invalid User Data", "invalid-user-data": "Invalid User Data",
"invalid-password": "Invalid Password", "invalid-password": "Invalid Password",
"invalid-username-or-password": "Please specify both a username and password",
"invalid-search-term": "Invalid search term",
"invalid-pagination-value": "Invalid pagination value", "invalid-pagination-value": "Invalid pagination value",
"username-taken": "Username taken", "username-taken": "Username taken",
"email-taken": "Email taken", "email-taken": "Email taken",
"email-not-confirmed": "Your email is not confirmed, please click here to confirm your email.", "email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
"username-too-short": "Username too short", "username-too-short": "Username too short",
"username-too-long": "Username too long",
"user-banned": "User banned", "user-banned": "User banned",
"no-category": "Category doesn't exist", "user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
"no-topic": "Topic doesn't exist", "no-category": "Category does not exist",
"no-post": "Post doesn't exist", "no-topic": "Topic does not exist",
"no-group": "Group doesn't exist", "no-post": "Post does not exist",
"no-user": "User doesn't exist", "no-group": "Group does not exist",
"no-teaser": "Teaser doesn't exist", "no-user": "User does not exist",
"no-privileges": "You don't have enough privileges for this action.", "no-teaser": "Teaser does not exist",
"no-privileges": "You do not have enough privileges for this action.",
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent", "no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
"category-disabled": "Category disabled", "category-disabled": "Category disabled",
"topic-locked": "Topic Locked", "topic-locked": "Topic Locked",
"still-uploading": "Please wait for uploads to complete.", "still-uploading": "Please wait for uploads to complete.",
"content-too-short": "Please enter a longer post. At least %1 characters.", "content-too-short": "Please enter a longer post. Posts should contain at least %1 characters.",
"title-too-short": "Please enter a longer title. At least %1 characters.", "title-too-short": "Please enter a longer title. Titles should contain at least %1 characters.",
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.", "title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
"too-many-posts": "You can only post every %1 seconds.", "too-many-posts": "You can only post once every %1 seconds - please wait before posting again",
"file-too-big": "Maximum allowed file size is %1 kbs", "file-too-big": "Maximum allowed file size is %1 kbs - please upload a smaller file",
"cant-vote-self-post": "You cannot vote for your own post", "cant-vote-self-post": "You cannot vote for your own post",
"already-favourited": "You already favorited this post", "already-favourited": "You have already favourited this post",
"already-unfavourited": "You already unfavorited this post", "already-unfavourited": "You have already unfavourited this post",
"cant-ban-other-admins": "You can't ban other admins!", "cant-ban-other-admins": "You can't ban other admins!",
"invalid-image-type": "Invalid image type", "invalid-image-type": "Invalid image type",
"group-name-too-short": "Group name too short", "group-name-too-short": "Group name too short",
"group-already-exists": "Group already exists", "group-already-exists": "Group already exists",
"group-name-change-not-allowed": "Group name change not allowed", "group-name-change-not-allowed": "Group name change not allowed",
"post-already-deleted": "Post already deleted", "post-already-deleted": "This post has already been deleted",
"post-already-restored": "Post already restored", "post-already-restored": "This post has already been restored",
"topic-already-deleted": "Topic already deleted", "topic-already-deleted": "This topic has already been deleted",
"topic-already-restored": "Topic already restored", "topic-already-restored": "This topic has already been restored",
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.", "topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
"invalid-file": "Invalid File", "invalid-file": "Invalid File",
"uploads-are-disabled": "Uploads are disabled", "uploads-are-disabled": "Uploads are disabled",
"upload-error": "Upload Error : %1", "upload-error": "Upload Error : %1",
"signature-too-long": "Signature can't be longer than %1 characters!", "signature-too-long": "Sorry, your signature cannot be longer than %1 characters.",
"cant-chat-with-yourself": "You can't chat with yourself!", "cant-chat-with-yourself": "You can't chat with yourself!",
"not-enough-reputation-to-downvote": "You do not have enough reputation to downvote this post" "reputation-system-disabled": "Reputation system is disabled.",
"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",
"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."
} }

View File

@@ -71,5 +71,6 @@
"guest": "Guest", "guest": "Guest",
"guests": "Guests", "guests": "Guests",
"updated.title": "Forum Updated", "updated.title": "Forum Updated",
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page." "updated.message": "This forum has just been updated to the latest version. Click here to refresh the page.",
"privacy": "Privacy"
} }

View File

@@ -1,4 +1,5 @@
{ {
"groups": "Groups",
"view_group": "View Group", "view_group": "View Group",
"details.title": "Group Details", "details.title": "Group Details",
"details.members": "Member List", "details.members": "Member List",

View File

@@ -12,6 +12,10 @@
"chat.message-history": "Message History", "chat.message-history": "Message History",
"chat.pop-out": "Pop out chat", "chat.pop-out": "Pop out chat",
"chat.maximize": "Maximize", "chat.maximize": "Maximize",
"chat.yesterday": "Yesterday",
"chat.seven_days": "7 Days",
"chat.thirty_days": "30 Days",
"chat.three_months": "3 Months",
"composer.user_said_in": "%1 said in %2:", "composer.user_said_in": "%1 said in %2:",
"composer.user_said": "%1 said:", "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?"

View File

@@ -10,11 +10,15 @@
"new_notification": "New Notification", "new_notification": "New Notification",
"you_have_unread_notifications": "You have unread notifications.", "you_have_unread_notifications": "You have unread notifications.",
"new_message_from": "New message from <strong>%1</strong>", "new_message_from": "New message from <strong>%1</strong>",
"upvoted_your_post": "<strong>%1</strong> has upvoted your post.", "upvoted_your_post_in": "<strong>%1</strong> has upvoted your post in <strong>%2</strong>.",
"favourited_your_post": "<strong>%1</strong> has favorited your post.", "moved_your_post": "<strong>%1</strong> has moved your post.",
"user_flagged_post": "<strong>%1</strong> flagged a post.", "moved_your_topic": "<strong>%1</strong> has moved your topic.",
"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> has posted a reply to: <strong>%2</strong>", "user_posted_to": "<strong>%1</strong> has posted a reply to: <strong>%2</strong>",
"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_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
"user_started_following_you": "<strong>%1</strong> started following you.",
"email-confirmed": "Email Confirmed", "email-confirmed": "Email Confirmed",
"email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.", "email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.",
"email-confirm-error": "An error occurred...", "email-confirm-error": "An error occurred...",

View File

@@ -12,5 +12,7 @@
"user.posts": "Posts made by %1", "user.posts": "Posts made by %1",
"user.topics": "Topics created by %1", "user.topics": "Topics created by %1",
"user.favourites": "%1's Favorite Posts", "user.favourites": "%1's Favorite Posts",
"user.settings": "User Settings" "user.settings": "User Settings",
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
} }

View File

@@ -4,5 +4,6 @@
"week": "Week", "week": "Week",
"month": "Month", "month": "Month",
"year": "Year", "year": "Year",
"alltime": "All Time",
"no_recent_topics": "There are no recent topics." "no_recent_topics": "There are no recent topics."
} }

View File

@@ -1,3 +1,4 @@
{ {
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)" "results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
"no-matches": "No posts found"
} }

View File

@@ -2,5 +2,6 @@
"no_tag_topics": "There are no topics with this tag.", "no_tag_topics": "There are no topics with this tag.",
"tags": "Tags", "tags": "Tags",
"enter_tags_here": "Enter tags here. Press enter after each tag.", "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_tags": "There are no tags yet."
} }

View File

@@ -18,7 +18,6 @@
"restore": "Restore", "restore": "Restore",
"move": "Move", "move": "Move",
"fork": "Fork", "fork": "Fork",
"banned": "banned",
"link": "Link", "link": "Link",
"share": "Share", "share": "Share",
"tools": "Tools", "tools": "Tools",
@@ -28,15 +27,17 @@
"flag_title": "Flag this post for moderation", "flag_title": "Flag this post for moderation",
"flag_confirm": "Are you sure you want to flag this post?", "flag_confirm": "Are you sure you want to flag this post?",
"flag_success": "This post has been flagged for moderation.", "flag_success": "This post has been flagged for moderation.",
"deleted_message": "This thread has been deleted. Only users with thread management privileges can see it.", "deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.",
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.", "following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
"not_following_topic.message": "You will no longer receive notifications from this topic.", "not_following_topic.message": "You will no longer receive notifications from this topic.",
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.", "login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
"markAsUnreadForAll.success": "Topic marked as unread for all.", "markAsUnreadForAll.success": "Topic marked as unread for all.",
"watch": "Watch", "watch": "Watch",
"unwatch": "Unwatch",
"watch.title": "Be notified of new replies in this topic", "watch.title": "Be notified of new replies in this topic",
"unwatch.title": "Stop watching this topic",
"share_this_post": "Share this Post", "share_this_post": "Share this Post",
"thread_tools.title": "Thread Tools", "thread_tools.title": "Topic Tools",
"thread_tools.markAsUnreadForAll": "Mark Unread", "thread_tools.markAsUnreadForAll": "Mark Unread",
"thread_tools.pin": "Pin Topic", "thread_tools.pin": "Pin Topic",
"thread_tools.unpin": "Unpin Topic", "thread_tools.unpin": "Unpin Topic",
@@ -46,11 +47,11 @@
"thread_tools.move_all": "Move All", "thread_tools.move_all": "Move All",
"thread_tools.fork": "Fork Topic", "thread_tools.fork": "Fork Topic",
"thread_tools.delete": "Delete Topic", "thread_tools.delete": "Delete Topic",
"thread_tools.delete_confirm": "Are you sure you want to delete this thread?", "thread_tools.delete_confirm": "Are you sure you want to delete this topic?",
"thread_tools.restore": "Restore Topic", "thread_tools.restore": "Restore Topic",
"thread_tools.restore_confirm": "Are you sure you want to restore this thread?", "thread_tools.restore_confirm": "Are you sure you want to restore this topic?",
"thread_tools.purge": "Purge Topic", "thread_tools.purge": "Purge Topic",
"thread_tools.purge_confirm": "Are you sure you want to purge this thread?", "thread_tools.purge_confirm": "Are you sure you want to purge this topic?",
"topic_move_success": "This topic has been successfully moved to %1", "topic_move_success": "This topic has been successfully moved to %1",
"post_delete_confirm": "Are you sure you want to delete this post?", "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_restore_confirm": "Are you sure you want to restore this post?",
@@ -71,7 +72,7 @@
"topic_will_be_moved_to": "This topic will be moved to the category", "topic_will_be_moved_to": "This topic will be moved to the category",
"fork_topic_instruction": "Click the posts you want to fork", "fork_topic_instruction": "Click the posts you want to fork",
"fork_no_pids": "No posts selected!", "fork_no_pids": "No posts selected!",
"fork_success": "Succesfully forked topic!", "fork_success": "Successfully forked topic! Click here to go to the forked topic.",
"composer.title_placeholder": "Enter your topic title here...", "composer.title_placeholder": "Enter your topic title here...",
"composer.discard": "Discard", "composer.discard": "Discard",
"composer.submit": "Submit", "composer.submit": "Submit",

View File

@@ -4,6 +4,8 @@
"username": "User Name", "username": "User Name",
"email": "Email", "email": "Email",
"confirm_email": "Confirm Email", "confirm_email": "Confirm Email",
"delete_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.",
"fullname": "Full Name", "fullname": "Full Name",
"website": "Website", "website": "Website",
"location": "Location", "location": "Location",
@@ -27,6 +29,7 @@
"edit": "Edit", "edit": "Edit",
"uploaded_picture": "Uploaded Picture", "uploaded_picture": "Uploaded Picture",
"upload_new_picture": "Upload New Picture", "upload_new_picture": "Upload New Picture",
"upload_new_picture_from_url": "Upload New Picture From URL",
"current_password": "Current Password", "current_password": "Current Password",
"change_password": "Change Password", "change_password": "Change Password",
"change_password_error": "Invalid Password!", "change_password_error": "Invalid Password!",
@@ -44,12 +47,14 @@
"max": "max.", "max": "max.",
"settings": "Settings", "settings": "Settings",
"show_email": "Show My Email", "show_email": "Show My Email",
"show_fullname": "Show My Full Name",
"digest_label": "Subscribe to Digest", "digest_label": "Subscribe to Digest",
"digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule", "digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule",
"digest_off": "Off", "digest_off": "Off",
"digest_daily": "Daily", "digest_daily": "Daily",
"digest_weekly": "Weekly", "digest_weekly": "Weekly",
"digest_monthly": "Monthly", "digest_monthly": "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 :(", "has_no_follower": "This user doesn't have any followers :(",
"follows_no_one": "This user isn't following anyone :(", "follows_no_one": "This user isn't following anyone :(",
"has_no_posts": "This user didn't post anything yet.", "has_no_posts": "This user didn't post anything yet.",
@@ -61,5 +66,7 @@
"posts_per_page": "Posts 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", "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?",
"follow_topics_you_reply_to": "Follow topics that you reply to.",
"follow_topics_you_create": "Follow topics you create."
} }

View File

@@ -5,6 +5,5 @@
"search": "Search", "search": "Search",
"enter_username": "Enter a username to search", "enter_username": "Enter a username to search",
"load_more": "Load More", "load_more": "Load More",
"user-not-found": "User not found!",
"users-found-search-took": "%1 user(s) found! Search took %2 ms." "users-found-search-took": "%1 user(s) found! Search took %2 ms."
} }

View File

@@ -3,5 +3,6 @@
"no_topics": "<strong>No hay temas en esta categoría.</strong><br />¿Por que no te animas y publicas uno?", "no_topics": "<strong>No hay temas en esta categoría.</strong><br />¿Por que no te animas y publicas uno?",
"browsing": "viendo ahora", "browsing": "viendo ahora",
"no_replies": "Nadie ha respondido aún", "no_replies": "Nadie ha respondido aún",
"share_this_category": "Compartir esta categoría" "share_this_category": "Compartir esta categoría",
"ignore": "Ignorar"
} }

View File

@@ -1,20 +1,23 @@
{ {
"password-reset-requested": "Password Reset Requested - %1!", "password-reset-requested": "Reinicio de contraseña solicitado - %1!",
"welcome-to": "Welcome to %1", "welcome-to": "Bienvenido a %1",
"greeting_no_name": "Hello", "greeting_no_name": "Hola",
"greeting_with_name": "Hello %1", "greeting_with_name": "Hola %1",
"welcome.text1": "Thank you for registering with %1!", "welcome.text1": "Gracias por registrarte con %1!",
"welcome.text2": "To fully activate your account, we need to verify that you own the email address you registered with.", "welcome.text2": "Para activar completamente tu cuenta, necesitamos verificar que la dirección email con la que te registraste te pertenece.",
"welcome.cta": "Click here to confirm your email address", "welcome.cta": "Cliquea aquí para confirmar tu dirección email.",
"reset.text1": "We received a request to reset your password, possibly because you have forgotten it. If this is not the case, please ignore this email.", "reset.text1": "Recibimos una solicitud para reiniciar tu contraseña, posiblemente porque la olvidaste. Si no es así, por favor ignora este email.",
"reset.text2": "To continue with the password reset, please click on the following link:", "reset.text2": "Para continuar con el reinicio de contraseña, por favor cliquea en el siguiente vínculo:",
"reset.cta": "Click here to reset your password", "reset.cta": "Cliquea aquí para reiniciar tu contraseña",
"digest.notifications": "You have some unread notifications from %1:", "digest.notifications": "You have unread notifications from %1:",
"digest.latest_topics": "Latest topics from %1", "digest.latest_topics": "Últimos temas de %1",
"digest.cta": "Click here to visit %1", "digest.cta": "Cliquea aquí para visitar %1",
"digest.unsub.info": "This digest was sent to you due to your subscription settings.", "digest.unsub.info": "Este compendio te fue enviado debido a tus ajustes de subscripción.",
"digest.unsub.cta": "Click here to alter those settings", "digest.daily.no_topics": "No han habido temas activos en el día pasado",
"digest.daily.no_topics": "There have been no active topics in the past day", "notif.chat.subject": "Nuevo mensaje de chat recibido de %1",
"test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.", "notif.chat.cta": "Haz click aquí para continuar la conversación",
"closing": "Thanks!" "notif.chat.unsub.info": "Esta notificación de chat se te envió debido a tus ajustes de suscripción.",
"test.text1": "Este es un email de prueba para verificar que el envío de email está ajustado correctamente para tu NodeBB",
"unsub.cta": "Haz click aquí para modificar los ajustes.",
"closing": "¡Gracias!"
} }

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