Compare commits

...

2193 Commits

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

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

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

    This reverts commit 77d154bb8b.

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

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

    This reverts commit d8c9ec0d40.

    Conflicts:
    	public/src/client/unread.js

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

    Revert "actually fixed isPopState error"

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

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

"socket.io": {
"transports": ["websocket"]
}
2014-12-19 16:49:20 -05:00
barisusakli
6a8a5a9de0 use validator.escape 2014-12-18 23:43:07 -05:00
barisusakli
793a0a6772 fix mark topic notifications read on enter 2014-12-18 23:28:19 -05:00
barisusakli
2bfc33edb7 updated deps 2014-12-18 20:23:31 -05:00
barisusakli
d314b9cae2 closes #2538 2014-12-18 19:47:51 -05:00
barisusakli
d28fb153c7 closes #2537 2014-12-18 19:22:59 -05:00
barisusakli
7ec8393004 closes #2532 2014-12-17 18:18:53 -05:00
barisusakli
2423bd18eb jobs disabled is boolean, great 2014-12-17 18:09:09 -05:00
barisusakli
1a34327f9d removed unnecessary require 2014-12-16 23:55:02 -05:00
barisusakli
59545d740c only emit event:user_leave to topic rooms instead of all online users 2014-12-16 19:40:47 -05:00
barisusakli
f47550d23e closes #2533 2014-12-16 15:09:15 -05:00
barisusakli
26b2ef1543 prevent crash in getChildren 2014-12-16 14:46:02 -05:00
barisusakli
989ca19df5 added jobsDisabled flag 2014-12-15 19:07:15 -05:00
barisusakli
acf1b76da8 reconnectionAttemps in socket.io 1.0x
https://github.com/automattic/socket.io-client#managerurlstring-optsobject
2014-12-15 10:07:11 -05:00
barisusakli
76480d4d31 app.user undefined on cold load 2014-12-14 23:02:58 -05:00
barisusakli
c0c85c24cf duh strings dont work 2014-12-14 22:34:53 -05:00
barisusakli
64cc0f244d just show err.message 2014-12-14 17:45:22 -05:00
barisusakli
5bf46864ed removed global admin object, CF rocket loader fix
added colorpicker module
2014-12-13 22:14:08 -05:00
psychobunny
9e1a049fd5 Merge pull request #2526 from akhoury/patch-5
adding mid on the message returned data on addMessage
2014-12-13 10:17:09 -05:00
Aziz Khoury
100f31be81 adding mid on the message returned data on addMessage 2014-12-13 08:19:49 -05:00
barisusakli
e72ec429a2 remvoed lowered pingTimeout 2014-12-13 00:10:45 -05:00
barisusakli
e74d39889e removed extra comma 2014-12-12 23:26:01 -05:00
barisusakli
bf3f20bf8b removed extra comma 2014-12-12 23:25:16 -05:00
barisusakli
2c7d9e1a7c store teaserPid in topic
-update teaser pid as necessary in addPostToTopic, removePostFromTopic,
post purge
-removed 20x db calls from getTeasers
-fixed scroll to post in sub folder install
-upgrade script to update topics with teaserPid
2014-12-12 18:52:37 -05:00
barisusakli
0cb0dafae3 another relative_path fix 2014-12-12 16:31:54 -05:00
barisusakli
03de918f10 fix more relative path redirects 2014-12-12 16:20:24 -05:00
barisusakli
011c42bde3 updated analytics
accumulate pageviews, uniquevisitors and uniqueIps locally and update db
every 10 mins instead of on every page view
2014-12-12 16:15:13 -05:00
barisusakli
da4014eb71 dont allow move to same topic 2014-12-12 00:52:59 -05:00
barisusakli
8bba811aaf closes #2522 2014-12-12 00:45:43 -05:00
barisusakli
52a53df80d missing err check 2014-12-11 23:59:23 -05:00
barisusakli
8965855218 made breadcrumbs regular function
less db calls as well
2014-12-11 22:55:00 -05:00
barisusakli
518c6f7cfa closes #2521 2014-12-11 22:16:17 -05:00
psychobunny
e0c8989e8b closes #2519 2014-12-11 10:17:04 -05:00
psychobunny
94efa6dd87 closes #2520 2014-12-11 10:02:17 -05:00
Barış Soner Uşaklı
5f47f2226a escape topic title and category name 2014-12-11 03:09:09 -05:00
Julian Lam
3deb423c55 testing socket availability before attempting to bind 2014-12-10 19:44:27 -05:00
Julian Lam
49dcffcbab if worker process exits with code zero, don't boot up a new worker 2014-12-10 18:52:38 -05:00
Julian Lam
68e761bed0 if using sockets, reset the umask back to the old value after listening 2014-12-10 18:16:09 -05:00
Julian Lam
273e26ddb1 if a locally installed plugin not published to npm has a syntax error, this fixes it. closes #2512 2014-12-10 14:59:49 -05:00
barisusakli
9b083a6a66 half ping timeout 2014-12-10 04:07:05 -05:00
barisusakli
86bd85bba4 removed qs fix indent 2014-12-10 01:40:31 -05:00
barisusakli
646c5705cf no need to make call for guests 2014-12-10 00:43:35 -05:00
barisusakli
2e04501224 closes #2516 2014-12-09 20:48:35 -05:00
barisusakli
348d05d3d1 remove deprecated res.json usage 2014-12-09 20:07:12 -05:00
barisusakli
b63c0df8a2 fixed event name 2014-12-09 13:50:20 -05:00
barisusakli
5a79b99a7a derp 2014-12-09 12:59:49 -05:00
barisusakli
9f7196f5b0 dont crash if config is undefined, added error to plugins 2014-12-09 12:59:12 -05:00
Julian Lam
772f4c103a properly pass in error value for locally installed plugin 2014-12-09 12:11:01 -05:00
barisusakli
aeae76c28d added error false 2014-12-09 11:22:04 -05:00
Julian Lam
b565f3ac0a closed #2497 2014-12-09 10:27:05 -05:00
barisusakli
8af5102912 missing return 2014-12-08 17:50:45 -05:00
barisusakli
81a5a4cfe0 removed global var 2014-12-08 16:49:18 -05:00
barisusakli
8e8375cbba validate email password on register 2014-12-08 16:28:30 -05:00
barisusakli
8bee231d80 show validation errors on register 2014-12-08 16:11:35 -05:00
Julian Lam
b278f27ffe partial fix to #2509 2014-12-08 12:04:41 -05:00
psychobunny
e3e737458e linting 2014-12-08 10:28:21 -05:00
psychobunny
beaa52fff5 acp - if bs env < lg + content is long (ex plugins list) then duplicate sidebar menu on header + footer; closes #2510 2014-12-08 10:27:54 -05:00
barisusakli
9d78a204df missing return 2014-12-07 16:37:05 -05:00
barisusakli
5128f7d2f9 prevent crash on invalid data 2014-12-07 16:32:40 -05:00
barisusakli
6b20cf5cff #2508 2014-12-06 16:05:00 -05:00
barisusakli
5337a31eb9 #2254 sitemap topic limit 2014-12-06 00:44:58 -05:00
barisusakli
8bea0bb6e5 fix favourite infinite scroll 2014-12-05 22:22:57 -05:00
barisusakli
f2b24eb72a fix tests 2014-12-05 16:46:16 -05:00
Julian Lam
8c097357fc updated language files 2014-12-05 13:31:08 -05:00
barisusakli
79f3659e55 reconnectionDelay 2014-12-05 13:19:09 -05:00
barisusakli
99e774d196 socket.socket.disconnect doens't exist in 1.x 2014-12-05 13:15:51 -05:00
barisusakli
ef3b6a2450 closes #2498 2014-12-05 13:07:13 -05:00
barisusakli
64c0e1df61 settimeout 2014-12-04 14:29:48 -05:00
Julian Lam
389f74b615 hungarian translations 2014-12-04 13:24:11 -05:00
Julian Lam
2de108153f closed #2464 2014-12-04 00:36:24 -05:00
Julian Lam
2914c74587 allowed admin to remove skins, if set 2014-12-03 23:40:04 -05:00
barisusakli
104fc2d273 10 second timer 2014-12-03 23:16:50 -05:00
barisusakli
9e9b138afb removed unused code 2014-12-03 23:13:26 -05:00
barisusakli
e7c2bc5d5d removed unused callback 2014-12-03 23:07:00 -05:00
barisusakli
e86650a6af not used anymore 2014-12-03 23:05:33 -05:00
Julian Lam
fb6026f95f fixed issue where logging out via ACP caused CSRF error 2014-12-03 22:42:42 -05:00
Julian Lam
908f5f2fd4 fixed ACP background image on subfolder installs 2014-12-03 22:35:45 -05:00
barisusakli
080c54d414 #2434 2014-12-03 22:35:06 -05:00
barisusakli
e18ad61ff6 fix login maybe? 2014-12-03 22:29:56 -05:00
barisusakli
356f577a74 redirect to correct login 2014-12-03 22:08:25 -05:00
barisusakli
85dfedeedc removed commented out code 2014-12-03 19:43:15 -05:00
barisusakli
7ae7c50f56 app.user 2014-12-03 19:36:19 -05:00
barisusakli
22e20b961e pass all env variables to worker 2014-12-03 17:10:25 -05:00
Julian Lam
d14cd254a5 only instantiating logrotate object if silent 2014-12-03 17:06:26 -05:00
barisusakli
16f62e6502 closes #2472 2014-12-03 17:05:34 -05:00
barisusakli
7d6c81160b show 20 results for user search 2014-12-03 16:45:12 -05:00
Julian Lam
aaef0ad282 closed #2495 2014-12-03 16:18:26 -05:00
barisusakli
d62cdd5127 added support for specifying which ports to use
if no port is specified in config.json port from url will be used if no
port in url then default to 4567

port in config.json can be an array or a single port number
2014-12-03 15:46:52 -05:00
barisusakli
f67bc8d056 fix space 2014-12-03 14:17:05 -05:00
barisusakli
64e13df14c removed node cluster spawn procs on ports 2014-12-03 14:03:41 -05:00
barisusakli
3ad3e781f3 fix tests 2014-12-03 01:49:57 -05:00
barisusakli
28ed49a1d2 removed android check 2014-12-03 01:17:45 -05:00
barisusakli
2fbaed9cdf moved nconf setup to loadConfig, fixed upload_url 2014-12-03 01:10:49 -05:00
psychobunny
fc00791125 a plugin's package.json can be invalid too 2014-12-02 21:57:21 -05:00
barisusakli
5576ef0d1e upgrade script to remove fields 2014-12-02 18:06:11 -05:00
barisusakli
e49dfc7266 cleaned up loader.js 2014-12-02 17:40:48 -05:00
barisusakli
83a679fc15 fixed wrong var 2014-12-02 16:51:14 -05:00
barisusakli
7a5383748c possible fix for #2492 2014-12-02 16:49:53 -05:00
psychobunny
c0bce71984 added some failsafe checks for filter:user.isModerator 2014-12-02 16:13:29 -05:00
psychobunny
6a47aacdfd forgot description 2014-12-02 15:34:34 -05:00
psychobunny
6a9145d90e some basic moderator tests 2014-12-02 15:33:28 -05:00
barisusakli
48337e4f51 check err 2014-12-02 15:13:18 -05:00
psychobunny
113d35887c moved admin.getVoters to posts.getVoters; now getVoters modal can be accessed by moderators as well 2014-12-02 14:59:29 -05:00
psychobunny
63367bd670 *user.isModerator*, duh 2014-12-02 14:21:17 -05:00
psychobunny
673145d413 added filter:users.isModerator 2014-12-02 14:19:14 -05:00
barisusakli
a3f0f58ebe update nconf, gm deps 2014-12-02 13:31:53 -05:00
barisusakli
ae1d226218 fix group test 2014-12-02 13:27:36 -05:00
barisusakli
612aa4e55b closes #2491 2014-12-02 12:38:53 -05:00
barisusakli
09a5d92dba correct method name 2014-12-01 23:22:02 -05:00
barisusakli
9075a8d4c9 added back isAdmin into admin middleware with a warning 2014-12-01 23:07:47 -05:00
barisusakli
97d01de155 fix acp 2014-12-01 22:57:57 -05:00
barisusakli
ddd6ed9e8c #2477 403 page 2014-12-01 21:07:23 -05:00
barisusakli
be11577aa4 closes #2477 2014-12-01 20:28:36 -05:00
barisusakli
9023060008 moved category redirect up 2014-12-01 17:59:38 -05:00
psychobunny
12e00ec497 hinting 2014-12-01 16:28:16 -05:00
psychobunny
77d0b095c8 closes #2488 2014-12-01 16:27:29 -05:00
Julian Lam
aa44894db2 fixing home breadcrumb, #1984 2014-12-01 16:11:44 -05:00
barisusakli
866adab648 removed console.log 2014-12-01 16:09:01 -05:00
Julian Lam
04dbd5766d latest language strings 2014-12-01 15:31:27 -05:00
Julian Lam
66bbbfcd22 fixed url being overwritten 2014-12-01 15:25:37 -05:00
Julian Lam
420649d3bd no longer setting sourcemap header for minifiedjs 2014-12-01 15:01:49 -05:00
barisusakli
d544b19220 set path on socket.io server 2014-12-01 14:59:12 -05:00
barisusakli
3a0b92a0e4 fix path for socket.io subfolder install 2014-12-01 14:52:21 -05:00
barisusakli
14a2db4b2e fix workerIndex for ipv6 2014-12-01 14:45:32 -05:00
Julian Lam
d16cfb89e0 extra log, #2246 2014-12-01 14:22:53 -05:00
Julian Lam
5cc30ca1a0 more cache hash fixes 2014-12-01 14:21:03 -05:00
Julian Lam
2e24224449 passing css hash to other workers on startup 2014-12-01 14:19:14 -05:00
Julian Lam
82708d65c6 propagating hash to all workers on css compilation 2014-12-01 14:05:20 -05:00
barisusakli
46e022e97f closes #2483 2014-12-01 13:24:13 -05:00
barisusakli
647b15c7ef Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-12-01 12:46:39 -05:00
barisusakli
7332ba9c25 fix loader for new config.json format 2014-12-01 12:36:59 -05:00
psychobunny
6fe093324a moved signature length setting out of settings/user and into settings/post; created new sub section for signatures 2014-12-01 12:25:05 -05:00
psychobunny
63a5002b53 closes #2441 2014-12-01 12:23:31 -05:00
psychobunny
92addc349b signatures:disableLinks and signatures:disableImages config options 2014-12-01 12:23:30 -05:00
barisusakli
957800b2c3 Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-12-01 12:13:50 -05:00
Julian Lam
f00a3dbf49 minor fix to upgrade script 2014-12-01 12:03:42 -05:00
Julian Lam
604f883ac2 closed #2478 2014-11-30 23:53:35 -05:00
Julian Lam
1378e1155f fixed #2479 2014-11-30 23:44:15 -05:00
Julian Lam
682ba8fb1a upping vanilla and lavender minvers 2014-11-30 23:40:15 -05:00
Julian Lam
110fd863e4 fixing breadcrumbs for subfolder installs, #2122 2014-11-30 23:38:18 -05:00
Julian Lam
78763834fe closed #2122 2014-11-30 21:15:09 -05:00
Julian Lam
c120f5c2c6 travis CI again 2014-11-30 17:05:00 -05:00
Julian Lam
a0860abaaa no need to set bcrypt_rounds, only used in one place. 2014-11-30 16:49:53 -05:00
Julian Lam
598049e077 travis CI fixes again 2014-11-30 16:48:36 -05:00
Julian Lam
21fe3f2596 hopefully fixing travis CI 2014-11-30 16:30:25 -05:00
barisusakli
62609b2db6 Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-30 15:38:43 -05:00
Julian Lam
7f43fd4843 bugfix #1984 2014-11-30 15:36:57 -05:00
barisusakli
1db2a447d7 Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-30 15:36:42 -05:00
barisusakli
48ee8c1370 check err in tests 2014-11-30 15:36:17 -05:00
barisusakli
7f81a0b0ad Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-30 12:53:37 -05:00
barisusakli
51c520f888 closes #2480 2014-11-30 12:52:16 -05:00
barisusakli
3b8e31c31f Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-30 02:02:48 -05:00
barisusakli
f531a5362d #2254 proper fix 2014-11-30 02:02:32 -05:00
barisusakli
1723894e5a merge 2014-11-30 01:50:49 -05:00
barisusakli
fb3251c269 removed extra db call #2254 2014-11-30 01:44:46 -05:00
Julian Lam
03b106b03a final pass, #1984 2014-11-29 23:38:36 -05:00
Julian Lam
d430ef3983 second pass, #1984 2014-11-29 22:03:49 -05:00
Julian Lam
d5e473609c first pass, #1984 2014-11-29 21:54:58 -05:00
Julian Lam
dfbac595b6 refactors to sitemap, closed #2254 2014-11-29 21:18:02 -05:00
Julian Lam
9b0ba6c7a4 closed #2384 2014-11-29 20:50:14 -05:00
barisusakli
722d1497c3 Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-29 12:35:31 -05:00
barisusakli
083ba12ee0 check err in emailer 2014-11-29 12:35:04 -05:00
barisusakli
142536b659 Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-29 12:13:14 -05:00
barisusakli
83ab462ff5 module changes, fixed missing interval 2014-11-29 12:12:02 -05:00
barisusakli
510343b9d5 dont markAsRead for guests 2014-11-29 02:07:19 -05:00
barisusakli
e7a52b615b remove user from users:online on delete 2014-11-28 21:46:50 -05:00
barisusakli
392be78554 fix whitespace 2014-11-28 21:43:44 -05:00
barisusakli
0a2d543186 removed getUserSockets 2014-11-28 21:35:34 -05:00
barisusakli
fa92eb4d5c onDisconnect fix 2014-11-28 21:04:12 -05:00
barisusakli
4913866785 missing semicolon 2014-11-28 20:36:11 -05:00
barisusakli
0c5881b51f update online users regardless of status 2014-11-28 20:31:47 -05:00
barisusakli
17d7916fe9 check if worker exists 2014-11-28 20:00:41 -05:00
barisusakli
cbb3ff26e9 meta room count 2014-11-28 19:41:35 -05:00
barisusakli
1ffa498807 use shortcut 2014-11-28 19:40:47 -05:00
barisusakli
3a172711f4 socket.io index refactor 2014-11-28 19:33:07 -05:00
barisusakli
14a5de6d9d not used 2014-11-28 19:08:02 -05:00
barisusakli
f7c70e2a7a update all socket methods, works on single node 2014-11-28 19:06:07 -05:00
barisusakli
13609edf82 fix reqFromSocket for socket.io 1.x 2014-11-28 17:46:00 -05:00
barisusakli
2c89d50322 Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-28 16:00:36 -05:00
barisusakli
f9405c0423 closes #2440 2014-11-28 15:49:16 -05:00
barisusakli
6760ce00cc removed unused msgs 2014-11-28 15:03:33 -05:00
barisusakli
49a73e1665 Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-28 14:36:01 -05:00
barisusakli
c213f77f91 merge 2014-11-28 14:35:21 -05:00
Barış Soner Uşaklı
b8845181f6 missing now :( 2014-11-28 14:34:51 -05:00
Barış Soner Uşaklı
4d4f39a44f added missing db 2014-11-28 14:34:21 -05:00
Barış Soner Uşaklı
126f3182fd fix next 2014-11-28 14:30:43 -05:00
barisusakli
5ac5d20e4b users:online refactor 2014-11-28 14:25:11 -05:00
Julian Lam
1ce3c9ca2d no longer logging warnings for socket.io 2014-11-28 13:44:46 -05:00
Julian Lam
7ad242b981 using redis for user online list management if configured 2014-11-28 12:34:19 -05:00
Julian Lam
e952a873a8 moving onlineUsers from an in-memory variable to a sorted set 2014-11-28 11:50:29 -05:00
barisusakli
1abe35092b cluster socket.io fixes
close proxy server on loader.stop
changed handles to object
2014-11-27 15:36:05 -05:00
barisusakli
785790c414 moved handle close to fork worker 2014-11-27 14:09:01 -05:00
barisusakli
5521e6143f Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-26 22:31:14 -05:00
barisusakli
033e078aeb closes #2436 2014-11-26 22:30:21 -05:00
barisusakli
0674258793 Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-26 22:11:31 -05:00
barisusakli
c12d90ddfb closes #2457 2014-11-26 22:10:38 -05:00
Julian Lam
8de2d1f58d closed #2459 2014-11-26 21:30:24 -05:00
barisusakli
2ecfcc582f Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-26 17:31:26 -05:00
barisusakli
d1fcb50c7d cluster sticky session 2014-11-26 17:24:49 -05:00
Julian Lam
b7c4647e9a added Bengali language to repo, তোমাকে ধন্যবাদ! 2014-11-26 13:37:12 -05:00
Julian Lam
8ca6d51d8d latest translations 2014-11-26 13:35:07 -05:00
Julian Lam
e97d5b2e0e closed #2456 2014-11-26 13:31:03 -05:00
Julian Lam
23b14b3443 moving nearly all startup messages to verbose type 2014-11-26 13:28:10 -05:00
barisusakli
99e0a02b4c Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-25 23:21:36 -05:00
barisusakli
ab2580cc5f fix human readable post count in topics 2014-11-25 23:20:29 -05:00
barisusakli
b6bd955131 Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-25 23:09:28 -05:00
barisusakli
51436fd2d9 check privs on composer.push 2014-11-25 23:08:28 -05:00
barisusakli
4bed05a622 disable stuff that crashes in socket.io 1.x 2014-11-25 15:18:33 -05:00
barisusakli
396dffd60f Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-25 11:53:07 -05:00
barisusakli
916f1c7ce1 fix debug path on relative path install 2014-11-25 11:35:10 -05:00
barisusakli
08b0462695 Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-24 22:05:34 -05:00
barisusakli
a69eafd9f7 added postcount to topic 2014-11-24 21:45:18 -05:00
psychobunny
0202666ed0 taking a break with an almost completely pointless commit 2014-11-24 20:09:23 -05:00
barisusakli
7cbaa90d36 update to socket.io 1.2.1, return_buffers option 2014-11-24 13:44:59 -05:00
barisusakli
04175c92d9 Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-24 13:29:23 -05:00
barisusakli
80d7ae597b closes #2451 2014-11-24 13:28:48 -05:00
Julian Lam
a31525c79f Skipping digest sending if no notifs and no new topics, #2455 2014-11-24 13:22:10 -05:00
Julian Lam
1b526026a0 closed #2442 2014-11-24 12:48:21 -05:00
Julian Lam
1c21ca78dc preventing ctrl-f hijacking if no search plugin is installed 2014-11-24 12:38:44 -05:00
Julian Lam
fa39b5e46b closed #2446 2014-11-24 12:20:28 -05:00
Julian Lam
f5fce863f9 plugin warnings for v0.5.4+ when installing plugins with no suggested version, #2438 2014-11-23 17:02:25 -05:00
Julian Lam
ba9a5ad7d7 fixed #2448 2014-11-23 15:53:42 -05:00
barisusakli
6b23977a46 Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-23 00:32:58 -05:00
barisusakli
7daf3a34a7 removed slice 2014-11-23 00:32:31 -05:00
barisusakli
1ea295ed1b #2449 2014-11-23 00:31:37 -05:00
barisusakli
e1758e0c36 closes #2449 2014-11-23 00:30:19 -05:00
barisusakli
9ea10ba8ec Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-21 12:28:39 -05:00
Barış Soner Uşaklı
bea1d053b4 closes #2443, closes #2445 2014-11-21 12:28:25 -05:00
barisusakli
552c56f3d1 Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-21 11:44:35 -05:00
Barış Soner Uşaklı
2086ddf386 closes #2444 2014-11-21 11:44:06 -05:00
Julian Lam
354268bccd latest translations for french 2014-11-21 09:05:44 -05:00
barisusakli
fba0e95aeb Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-20 19:25:07 -05:00
Barış Soner Uşaklı
6581c90475 forgot one 2014-11-20 19:24:23 -05:00
barisusakli
7e6f29e007 Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-20 19:15:39 -05:00
Barış Soner Uşaklı
7b14716eb8 use data.url 2014-11-20 19:15:10 -05:00
barisusakli
702b1554fb Merge remote-tracking branch 'origin/master' into socket.io1.x 2014-11-20 19:02:47 -05:00
barisusakli
73fb653ddf emit works 2014-11-20 19:02:29 -05:00
psychobunny
c905f96108 closes #2412 2014-11-20 17:50:09 -05:00
Julian Lam
0b58e2fea3 minor tweaks to in-topic searching UI, #2442 2014-11-20 17:02:09 -05:00
barisusakli
82d863b9c8 deps, disabled all server side calls 2014-11-20 16:51:11 -05:00
Julian Lam
259f0f96f1 Merge pull request #2433 from bendem/patch-1
Fix nodeBB address in a few places
2014-11-20 16:38:36 -05:00
barisusakli
347e37a224 show warning and errors for socket.io also show info in dev 2014-11-20 15:53:23 -05:00
psychobunny
8d8731c609 closes #2436 2014-11-20 13:41:09 -05:00
psychobunny
35be69d6cd closes #2439 2014-11-20 13:22:45 -05:00
Julian Lam
3ad509b93a fixed #2434 2014-11-20 13:22:27 -05:00
barisusakli
fdf06c0500 fix upgrade script #2435 2014-11-20 12:42:55 -05:00
Julian Lam
fe7726d249 fixed #2431 2014-11-20 10:30:53 -05:00
bendem
0f4fcd8e0b fix nodeBB adresses 2014-11-20 12:08:53 +01:00
barisusakli
9cd352c49a removed extra space 2014-11-20 00:10:08 -05:00
barisusakli
d177481f94 chop chop 2014-11-19 23:37:55 -05:00
barisusakli
6012223b81 show message name, fix template name overwrite 2014-11-19 22:41:16 -05:00
psychobunny
9eb8924bf2 cleanup 2014-11-19 17:48:43 -05:00
barisusakli
9c1216eb63 closes #2432 2014-11-19 15:55:01 -05:00
barisusakli
d5453efdac added current template name to return 2014-11-19 14:14:35 -05:00
barisusakli
15c2b124e3 recent replies needs stripTags true
changed [self] to _
2014-11-19 14:13:00 -05:00
Julian Lam
6eef866320 closed #2429 2014-11-19 12:19:08 -05:00
Julian Lam
067d1ae404 adding client-side hook whenever composer renders a preview 2014-11-19 11:56:03 -05:00
barisusakli
21459fff84 use getPostsFromSet for recent replies 2014-11-19 11:02:28 -05:00
barisusakli
04afe7dc4b closes #2425 2014-11-19 10:38:47 -05:00
Julian Lam
e0fba796c7 Merge pull request #2426 from Schamper/image-upload-socket-fix
Fix the hook return object in the User.uploadProfileImageFromUrl socket
2014-11-19 08:29:17 -05:00
Julian Lam
7183187be8 latest translations 2014-11-19 08:20:10 -05:00
MrWaffle
969c3a77cf Fix the hook return object in the User.uploadProfileImageFromUrl socket 2014-11-19 13:45:12 +01:00
barisusakli
b919d2ee77 shorther 2014-11-18 23:31:17 -05:00
barisusakli
4be8f3ec75 closes #2316 2014-11-18 23:27:40 -05:00
barisusakli
0bb5971915 disconnect on error too 2014-11-18 23:23:35 -05:00
barisusakli
a445e3f7b1 use send for child process 2014-11-18 22:55:44 -05:00
barisusakli
871cf8a3b7 shorter getTeasers 2014-11-18 22:19:17 -05:00
Julian Lam
5292a47a96 fixed maintenance mode page not working with new CSRF implementation, #2424 2014-11-18 15:51:09 -05:00
barisusakli
b665aeee83 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2014-11-18 15:50:35 -05:00
barisusakli
81e4bcd358 fix rename to multi 2014-11-18 15:50:32 -05:00
Julian Lam
b06ff89e02 adding missing file, re: #2424 2014-11-18 15:22:26 -05:00
Julian Lam
deac12c540 closed #2424 2014-11-18 14:56:22 -05:00
barisusakli
4f38a33702 fix pagination going to 404 if new post creates a new page 2014-11-18 14:49:48 -05:00
barisusakli
10680d47b0 postCount only used once 2014-11-18 14:34:21 -05:00
barisusakli
d0bc5ec9c7 client/topics.js refactor
ability to dismiss all flags
2014-11-18 14:33:14 -05:00
barisusakli
78033dbf5c handled in events.js 2014-11-18 00:12:43 -05:00
barisusakli
d7c367ae91 moved new notification to events.js 2014-11-18 00:10:42 -05:00
barisusakli
7f5984d1fd removed dupe code 2014-11-17 23:57:31 -05:00
barisusakli
c974256600 missing radix 2014-11-17 23:41:45 -05:00
barisusakli
671ec8532c fix unfavourite 2014-11-17 23:32:39 -05:00
barisusakli
47c1092842 moved registerLoader/refresh to top 2014-11-17 23:12:45 -05:00
barisusakli
776fb29dce removed preloader leftovers 2014-11-17 23:08:50 -05:00
barisusakli
3d93a76508 removed command param made unvote wrapper 2014-11-17 21:45:52 -05:00
psychobunny
8c98f47688 action:post.upvote / action:post.downvote now sends current status; new: action:post.unvote 2014-11-17 19:24:41 -05:00
Julian Lam
0d6be40238 fixed #2406 2014-11-17 14:47:51 -05:00
barisusakli
14ba1ff8c0 closes #2352 2014-11-17 14:22:29 -05:00
Julian Lam
ae1528dc7e closed #2407 2014-11-17 14:07:34 -05:00
Julian Lam
2d79169855 latest fallbacks 2014-11-17 14:01:07 -05:00
Julian Lam
d51683f62e closed #2421 2014-11-17 13:37:13 -05:00
Julian Lam
2e2995d3bd updating dailyDigestFreq to 'day' instead of 'daily' 2014-11-17 13:37:13 -05:00
Julian Lam
c7396f58cd verbose logging for email 2014-11-17 13:37:13 -05:00
barisusakli
ee3b0c93c3 fix tag update
was hanging on tag remove, and wasnt updating if tag count didnt change
2014-11-17 13:37:00 -05:00
barisusakli
0864480433 forgot return 2014-11-17 12:45:30 -05:00
barisusakli
cb8ce066c8 give guests find read access on category creation 2014-11-17 12:39:07 -05:00
barisusakli
8b573bff39 send 10 topics in digest not 11 2014-11-17 12:32:29 -05:00
barisusakli
9791dfb9ea closes #2420 2014-11-17 12:21:51 -05:00
Julian Lam
23485fcbf3 missed one invocation of old LESS library, #2419 2014-11-17 11:31:11 -05:00
Julian Lam
207bfa8960 closed #2419 2014-11-17 11:26:03 -05:00
barisusakli
0a1fa72bd8 use loadMoreFromSet 2014-11-16 18:31:57 -05:00
barisusakli
32e08ba419 closes #2070 2014-11-16 17:29:45 -05:00
barisusakli
807d4b7e2e update template.js dep 2014-11-16 16:51:14 -05:00
barisusakli
114d0506e1 fixed typo 2014-11-16 16:46:40 -05:00
barisusakli
f0797493ee make sure sockets leave the current room when entering another 2014-11-16 16:37:31 -05:00
barisusakli
8e114c2093 moved isAdminOrMod check out of getTopicsByTids 2014-11-16 16:15:49 -05:00
barisusakli
a75727bbbd duh 2014-11-16 01:56:42 -05:00
barisusakli
653850661e topics.getTopics doesnt take set param 2014-11-16 01:33:11 -05:00
barisusakli
79265b9e83 removed dupe code 2014-11-16 00:58:02 -05:00
barisusakli
c1b61522f7 check if topic is deleted 2014-11-16 00:09:43 -05:00
barisusakli
c458a7f7b2 missing nconf require 2014-11-16 00:01:20 -05:00
barisusakli
9852809c2c cleanup 2014-11-15 23:54:34 -05:00
barisusakli
1d2d69fa45 use helpers, redis crash fix 2014-11-15 23:44:34 -05:00
barisusakli
556e7066e8 moved notFound notAllowed to helpers 2014-11-15 23:22:57 -05:00
barisusakli
f8cfd82667 less code in uploadimage 2014-11-15 22:50:05 -05:00
barisusakli
0a44d3f5e0 moved updateCategoryField out, db.delete only sends back err 2014-11-15 22:41:45 -05:00
barisusakli
d485b65b67 call next 2014-11-15 21:52:05 -05:00
barisusakli
9ab74b0a61 added ability to take heap snapshots 2014-11-15 19:09:44 -05:00
barisusakli
7825b8b951 closes #2416 2014-11-15 16:12:06 -05:00
psychobunny
2a88e08977 and one last derp 2014-11-15 14:57:32 -05:00
psychobunny
556d817cc5 forgot to return 2014-11-15 14:56:34 -05:00
psychobunny
458ee7cca8 acute ocd attack 2014-11-15 14:56:04 -05:00
psychobunny
bfaeee2531 linting 2014-11-15 14:48:23 -05:00
psychobunny
b511bc37fb don't initialize taskbar until dom is ready 2014-11-15 14:47:31 -05:00
barisusakli
9d56f50967 voters info 2014-11-15 12:37:22 -05:00
barisusakli
8330a6e6d9 added plugin reset info as well #2415 2014-11-14 22:18:24 -05:00
barisusakli
76933f4c37 closes #2415 2014-11-14 22:14:55 -05:00
barisusakli
30d7f3351b cid isnt always present 2014-11-14 22:07:24 -05:00
Barış Soner Uşaklı
36ac6f849f Merge pull request #2397 from joe1chen/bug-fix-topic-search
Bug fix - Topic search broken due to encodeURIComponent being called too early
2014-11-14 21:51:39 -05:00
barisusakli
02fb81901d moved posts related stuff to user/posts.js 2014-11-14 21:47:24 -05:00
barisusakli
d9a071d710 removed unused code from category and topic controller 2014-11-14 21:16:35 -05:00
barisusakli
cd05a123ab check cids 2014-11-14 20:43:52 -05:00
barisusakli
52c12fa1b1 use wrapper functions getPostsFields and getTopicsFields 2014-11-14 20:19:14 -05:00
Julian Lam
9a606246a9 more fallbacks 2014-11-14 20:02:04 -05:00
Julian Lam
d0770bcb95 latest translations and fallbacks 2014-11-14 20:00:07 -05:00
barisusakli
6b13a84d2f removed extra priv checks
-removed category check from recentreplies since pids are already
checked
-removed category check from topics/unread.js since topics are filtered
now
-added array checks to src/topics.js
2014-11-14 19:52:25 -05:00
barisusakli
5c7487c13b err check 2014-11-14 19:38:51 -05:00
barisusakli
283ac1578f fix null datetime error 2014-11-14 18:33:10 -05:00
barisusakli
f3309e3dd4 renamed to local registration
closes https://github.com/NodeBB/nodebb-theme-vanilla/issues/36
2014-11-14 18:11:21 -05:00
barisusakli
545dbbf0df check err and tids 2014-11-14 18:03:19 -05:00
Julian Lam
b65d518a97 properly handling error for hook filter:privileges.posts.filter 2014-11-14 17:53:20 -05:00
Julian Lam
9debfd94ec removed the hook I just added: filter:category.recent, was a bit misleading. 2014-11-14 17:42:33 -05:00
Julian Lam
20ea40133b added four new hooks: filter:categories.recent, filter:privileges.categories.get, filter:privileges.posts.filter, filter:privileges.topics.filter 2014-11-14 17:31:44 -05:00
psychobunny
b480bff3fd moved taskbar markup out of JS and into modules/taskbar.tpl 2014-11-14 17:15:57 -05:00
barisusakli
cd19bf156c update bcryptjs and validator 2014-11-14 17:14:44 -05:00
barisusakli
6ce1415cd4 update db search version 2014-11-14 17:13:18 -05:00
barisusakli
9ff35a18f2 closes #2261 2014-11-14 17:03:13 -05:00
psychobunny
1e453140d9 adding uid to filter:category.topics.get 2014-11-14 16:34:34 -05:00
psychobunny
abe887f557 filter:category.topics.get 2014-11-14 16:29:59 -05:00
psychobunny
c988f54243 renaming filter:category.topics.get to filter:category.topics.prepare 2014-11-14 16:28:59 -05:00
barisusakli
485827db84 check count before privileges 2014-11-14 16:22:05 -05:00
barisusakli
6a3a3669d2 check privs on getRecentReplies and getRecentTopicReplies 2014-11-14 16:20:40 -05:00
psychobunny
c7ca2e2573 fixing time derp if minutes are singular 2014-11-14 16:16:06 -05:00
barisusakli
b4daae9b23 closes #2307 2014-11-14 16:02:35 -05:00
psychobunny
3aa18ebb12 no need to inform attempt to listen to address 2014-11-14 15:40:08 -05:00
barisusakli
5c3af6f549 removed webserver.init 2014-11-14 15:31:45 -05:00
barisusakli
363057cf49 closes #2390 2014-11-14 15:19:26 -05:00
barisusakli
d1b457b066 check err 2014-11-14 14:09:29 -05:00
barisusakli
519b1b7e37 closes #2377 2014-11-14 13:36:37 -05:00
barisusakli
a1624013f8 closes #2400 2014-11-14 12:17:28 -05:00
Julian Lam
95e3c6f8a4 Merge pull request #2410 from joe1chen/add-topics-loaded-event
Add topics.loaded event to be triggered when new topics are loaded by infinite scroll.
2014-11-14 12:13:59 -05:00
barisusakli
05a4737e84 closes #2409 2014-11-14 11:32:56 -05:00
Joseph Chen
4f03e74b99 Add topics.loaded event to be triggered when new topics are loaded by infinite scroll. 2014-11-14 06:24:38 -08:00
barisusakli
61863a69fe sendfile is deprecated 2014-11-13 17:04:08 -05:00
psychobunny
2990b33dc6 linting 2014-11-13 16:47:38 -05:00
barisusakli
d9d44aee2b #2334 2014-11-13 16:33:03 -05:00
barisusakli
c24e451c12 closes #2401 2014-11-13 16:03:11 -05:00
barisusakli
181e2b4132 check err 2014-11-13 15:49:43 -05:00
barisusakli
e6973b55d4 closes #1990 2014-11-13 15:47:25 -05:00
barisusakli
962d14746e trim tag after substr
this prevents spaces in the middle of the tag from being added to the db
2014-11-13 15:02:20 -05:00
barisusakli
a45858dacd previous commit doesnt show unusud tags in admin 2014-11-13 14:36:44 -05:00
barisusakli
68e8039ac7 closes #2379
also fixed a bug where tags with 0 topics were showing up in /tags
2014-11-13 14:29:48 -05:00
psychobunny
45affa3043 closes #2399 2014-11-13 14:04:29 -05:00
psychobunny
a8402b228c updating winston timestamp 2014-11-13 13:52:52 -05:00
barisusakli
b3544f644a relative path upload fixes #2403 2014-11-13 13:00:36 -05:00
barisusakli
7f5617bc74 closes #2402 2014-11-13 11:44:26 -05:00
barisusakli
14fdb9ebee reverted 2014-11-13 11:37:42 -05:00
barisusakli
6809af536c removed winston log in plugin fireHook 2014-11-13 11:31:30 -05:00
barisusakli
4c7a4d3688 fix topicIndex, 2014-11-12 18:00:34 -05:00
barisusakli
05f33df098 manage/groups.js 2014-11-12 16:56:11 -05:00
barisusakli
bd388f727c src/favourites.js 2014-11-12 16:40:06 -05:00
barisusakli
9a16a359a8 auth refactor 2014-11-12 16:15:44 -05:00
barisusakli
fc0dce429b topic.reply checks with invalid parameters 2014-11-12 15:06:55 -05:00
barisusakli
834ca016ec topics.reply test 2014-11-12 14:34:06 -05:00
Julian Lam
c0fc7e9ca4 updating privilege handling to fire two new hooks, filter:privileges.topics.get and filter:category.topics.get 2014-11-12 14:33:25 -05:00
barisusakli
eada3daf9f fixed recent and unread 2014-11-12 14:11:04 -05:00
Julian Lam
6ea10aa7e3 ensuring that the filter:category.get hook always sends data in the same format 2014-11-12 11:07:11 -05:00
Julian Lam
7e35987e1b fixing regression for #2355, introduced in a129075 2014-11-12 10:58:46 -05:00
Julian Lam
c2467de9c2 added Greek language to NodeBB, Γεια σας και καλώς ήρθατε! 2014-11-12 08:29:08 -05:00
Julian Lam
872dd679e2 latest translations and fallbacks 2014-11-12 08:29:08 -05:00
Joseph Chen
f02fd88eaf Bug fix - Topic search broken due to encodeURIComponent being called too early. 2014-11-11 22:51:16 -08:00
barisusakli
964d531582 fix test really 2014-11-12 01:22:50 -05:00
barisusakli
385e034a23 fix tests 2014-11-12 01:19:40 -05:00
barisusakli
7a51520074 #2393 2014-11-12 00:24:25 -05:00
barisusakli
4e23fe7c3a more topic post tests 2014-11-11 23:12:37 -05:00
barisusakli
3029b19be6 fix test 2014-11-11 23:03:20 -05:00
barisusakli
15e472db12 on category creation give defaults privs to admins and registered users 2014-11-11 22:58:34 -05:00
barisusakli
2579d2535d closes #2396 2014-11-11 20:10:51 -05:00
barisusakli
fa5ac04cd3 src/topics.js cleanup 2014-11-11 19:47:56 -05:00
barisusakli
c9f990bb72 derp 2014-11-11 19:22:54 -05:00
barisusakli
7225c0d45b finish up posts refactor 2014-11-11 18:55:49 -05:00
Julian Lam
54ee8e59f6 showing proper time for newbie post delay 2014-11-11 18:38:31 -05:00
barisusakli
d2cddc734b fix flagging and post filter
cant flag posts that don't exist anymore
2014-11-11 18:34:29 -05:00
barisusakli
11dc477dde posts/categories.js 2014-11-11 18:22:50 -05:00
barisusakli
e593c8e6b1 setFields makes more sense 2014-11-11 18:14:45 -05:00
barisusakli
fa95012fa3 action:set,postField 2014-11-11 18:13:15 -05:00
barisusakli
1413478a68 ill get it right this year 2014-11-11 18:08:50 -05:00
barisusakli
003535b3ab filter:post.getFields again 2014-11-11 18:08:03 -05:00
barisusakli
383fa4d0ea filter:post.getFields change 2014-11-11 18:05:42 -05:00
barisusakli
604dac88e3 closes #2382, closes #2130 2014-11-11 17:25:16 -05:00
psychobunny
70b5c631c6 if dev, compile view scripts only; let rjs dynamically load module scripts
fixes a bug introduced @ 11c83079f2
2014-11-11 13:53:32 -05:00
psychobunny
9726e599e4 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2014-11-11 13:30:59 -05:00
psychobunny
1b9297fa31 until now, this variable was never false... so I'm just removing it
@julianlam just in case
2014-11-11 13:30:55 -05:00
psychobunny
02b6a7893a in dev mode, concatenate scripts instead of minifying
faster reboot & restores sanity to those trying to debug browser
specific issues on IE and FF. not that you have much sanity to begin
with if it's an IE bug...
2014-11-11 13:30:16 -05:00
Julian Lam
286d14f614 allowing use of winston.verbose now 2014-11-11 13:18:46 -05:00
psychobunny
11c83079f2 if env is dev, don't re-compile rjs files
faster reboot & easier to debug on browsers that don't support
sourcemaps
2014-11-11 13:12:09 -05:00
psychobunny
8de978fbcf lmao, wtf?
my brain just exploded trying to figure out what this is doing here
2014-11-11 13:07:54 -05:00
psychobunny
d5d686b701 Merge pull request #2392 from a5mith/patch-3
ACP Text Colour
2014-11-11 12:13:50 -05:00
Aaron Smith
f2b0068b32 ACP Text Colour
Replaces my other commit.
2014-11-11 17:05:36 +00:00
psychobunny
db157da3fb fixes potential IE8 crash (both toISOString and console.log don't exist)
not that client-side calls this anyways
2014-11-11 11:44:49 -05:00
psychobunny
0580773331 random console.log 2014-11-11 11:38:29 -05:00
psychobunny
d69054804e closes #2391 2014-11-11 11:37:32 -05:00
Julian Lam
73dea4fc4e upvote and favourites notif fixing 2014-11-11 09:41:28 -05:00
Julian Lam
f9f1cf63cf fixing topic deletion and purging 2014-11-10 16:52:45 -05:00
Julian Lam
5281c8c376 Merge pull request #2381 from akhoury/patch-3
could you explicitly specify the last 4 rules?
2014-11-10 14:13:29 -05:00
Aziz Khoury
535529923c why leave json files out? 2014-11-10 13:26:07 -05:00
Aziz Khoury
a17ecefd20 could you explicitly specify the last 4 rules?
I put in some values in there, as placeholders, feel free to change them, and I will follow
so we can have a standard, and developers can choose to have the same across plugins as well
2014-11-10 13:16:48 -05:00
Julian Lam
c7e731f4c4 Merge branch 'master' of github.com:NodeBB/NodeBB 2014-11-10 12:42:56 -05:00
Julian Lam
b2625a1bf0 upping spam-be-gone minver 2014-11-10 12:42:44 -05:00
psychobunny
91103fb09e updating widget-essentials to 0.2.0 ** 2014-11-10 12:02:03 -05:00
psychobunny
121fb88008 updating widget-essentials to 0.1.2 2014-11-10 11:53:08 -05:00
psychobunny
aa6137b9c3 fixed potential XSS in registration form 2014-11-10 11:46:15 -05:00
barisusakli
c18de5cdd2 posts/recent.js refactor 2014-11-09 01:30:27 -05:00
barisusakli
ef35b83806 use getPostsFields 2014-11-09 01:24:12 -05:00
barisusakli
263f479b20 posts.js refactor pt1 2014-11-09 01:12:24 -05:00
barisusakli
39def60f9b return empty array 2014-11-09 00:45:18 -05:00
barisusakli
420aa5e102 fix moderators 2014-11-09 00:33:26 -05:00
barisusakli
8294aec5e7 fixed indent 2014-11-09 00:01:46 -05:00
barisusakli
8fdc03eaad categories.js refactor 2014-11-08 23:54:21 -05:00
barisusakli
daebc322eb meh 2014-11-08 23:36:38 -05:00
barisusakli
7823416410 err check, assignPostsToCategory is sync 2014-11-08 23:22:10 -05:00
barisusakli
af4cbfb20d closes #2368 2014-11-08 18:40:38 -05:00
barisusakli
d2735c8558 closes #2370 2014-11-08 17:38:03 -05:00
barisusakli
3f12d363f7 plugins fireHook refactor
(drunk)
2014-11-08 17:12:38 -05:00
barisusakli
e93b2b6aa1 removed action:app.load 2014-11-08 16:15:24 -05:00
barisusakli
41ae8b61a7 static:app.load change closes #1527 2014-11-08 15:20:56 -05:00
barisusakli
220c82a8f2 filter:register.complete change #1527 2014-11-08 15:01:56 -05:00
barisusakli
76c16c0383 filter:register.check change #1527 2014-11-08 14:57:04 -05:00
barisusakli
166f353aaa filter:register.build change #1527 2014-11-08 14:51:05 -05:00
barisusakli
8be9e6d413 action:user.verify change #1527 2014-11-08 14:41:49 -05:00
barisusakli
9363741231 action:user.set change #1527 2014-11-08 14:38:56 -05:00
barisusakli
2e1a098cfa fix multi selection if category has sub categories 2014-11-08 14:35:51 -05:00
barisusakli
db979d7a20 filter:category.get change #1527 2014-11-08 14:21:58 -05:00
Julian Lam
f3ea8d1cff closed #2367 2014-11-08 10:22:31 -05:00
Julian Lam
74630b3a79 closed #2360 2014-11-08 10:20:40 -05:00
barisusakli
c56b9aafff closes #2289, replace Infinity with '+inf' 2014-11-07 19:40:41 -05:00
barisusakli
dcba272dc5 fix not validated messages on manage/users on IS 2014-11-07 19:25:57 -05:00
barisusakli
5f8781c88e 1 less db call in togglePin 2014-11-07 19:15:26 -05:00
barisusakli
467fb1ab4a dont deselect on delete/purge closes #2352 2014-11-07 18:48:57 -05:00
Julian Lam
93f414892b closed #2361 2014-11-07 18:38:03 -05:00
Julian Lam
e0436d73c3 #2361 2014-11-07 18:22:27 -05:00
barisusakli
c95f151bfc closes #2364
dont crash if icon is not found
2014-11-07 18:13:08 -05:00
barisusakli
69ed00fc14 added mainPid to topic restore/edit hooks 2014-11-07 17:50:16 -05:00
barisusakli
642136f6f8 closes #2357 2014-11-07 17:46:03 -05:00
barisusakli
b60ed95d20 Merge remote-tracking branch 'origin/master' 2014-11-07 17:15:06 -05:00
barisusakli
1ae39d638a closes #2356 2014-11-07 17:15:01 -05:00
Julian Lam
f0b104fef0 possible fix to #2365 2014-11-07 17:05:25 -05:00
psychobunny
d77bd638c4 don't re-enable selectable on elements that were already enabled #2336 2014-11-07 16:16:32 -05:00
psychobunny
6ae5b09a01 closes #2336 2014-11-07 16:09:47 -05:00
Julian Lam
52285239e9 fixed client-side so semver doesn't explode when nbbpm returns 'latest', fixed tests so they pass again, #2363 2014-11-07 15:04:07 -05:00
Julian Lam
19297e2d22 plugin installation takes a version now, and queries nbbpm, #2363
better error handling for #2363

upgrades now also call the suggestion route from nbbpm

upgrade button will show alert now if you try to upgrade past the suggested version, #2363
2014-11-07 14:45:40 -05:00
Julian Lam
0f66077bf5 fixed issue where purged posts would cause the upgrader to fail, closed #2359 2014-11-07 10:50:25 -05:00
Barış Soner Uşaklı
b6ee472276 Merge pull request #2358 from joe1chen/0.6.x-fix-file-upload
Bug fix - File upload broken due to api changes in 0.6.x.
2014-11-06 22:08:24 -05:00
Joseph Chen
cd41df5677 Pass in req.user.uid into uploadFile 2014-11-06 19:03:53 -08:00
Joseph Chen
a1e54fda23 Bug fix - File upload broken due to api changes in 0.6.x. 2014-11-06 17:33:58 -08:00
Julian Lam
11c9b74faf upgrade script for #2355, closes #2355 2014-11-06 18:58:00 -05:00
Julian Lam
a12907512f refactored a bunch of methods so that you can pass in an author argument in querystring to see posts by just that author, #2355 2014-11-06 18:57:52 -05:00
barisusakli
3272ca34ee 0.6.0 cleanup 2014-11-06 17:33:10 -05:00
barisusakli
4440260f8f closes #2275 2014-11-06 17:06:58 -05:00
barisusakli
1004fb2822 closes #2354 2014-11-06 16:29:14 -05:00
barisusakli
72bb74cf46 canMessage 2014-11-06 12:57:59 -05:00
psychobunny
fa2f03aeca closes #2339 2014-11-06 00:53:18 -05:00
psychobunny
2e4198b8f1 removing unnecessary markup 2014-11-06 00:53:17 -05:00
barisusakli
f3d485bd58 filter:user.account 2014-11-06 00:29:06 -05:00
barisusakli
719290cd2b dont display email/fullname if they are private 2014-11-05 23:58:49 -05:00
Julian Lam
97633fe01e updating markdown and mentions minvers 2014-11-05 23:46:05 -05:00
psychobunny
6452596312 if sigs are disabled, actually disable them 2014-11-05 23:32:57 -05:00
barisusakli
9e1789dc58 closes #2297 2014-11-05 20:41:31 -05:00
barisusakli
39b679705b closes #2248 2014-11-05 19:29:45 -05:00
barisusakli
595ff1f4b1 closes #2303
see
https://community.nodebb.org/topic/3039/filter-post-parse-and-filter-post-parsesignature-changes
2014-11-05 18:59:20 -05:00
barisusakli
a6e498bb5d error check 2014-11-05 16:48:12 -05:00
Barış Soner Uşaklı
b89b960f86 Merge pull request #2328 from dwendt/master
Made hiding widgets for guests/registered sensible.
2014-11-05 16:44:54 -05:00
barisusakli
608943255b better check 2014-11-05 16:42:32 -05:00
barisusakli
ec0624918f possible fix for #2351 2014-11-05 13:35:15 -05:00
barisusakli
e5cc45a95b if category is not found return
if cid is a child category it wont be on home
2014-11-04 23:55:42 -05:00
barisusakli
70657251b9 no need for return 2014-11-04 23:30:11 -05:00
Julian Lam
44175188c4 handling case where user does not satisfy any of the privilege thresholds given to the hasEnoughReputationFor method 2014-11-04 23:19:28 -05:00
barisusakli
06f66337fb anon checks
less db calls for uid 0
2014-11-04 19:06:01 -05:00
Julian Lam
0a38a783c7 TravisCI is TOO DAMN FAST 2014-11-04 18:59:26 -05:00
Julian Lam
8e0e2a04be restored the toolbar on mobile composer, #2293 2014-11-04 18:54:48 -05:00
barisusakli
37d7756271 hasEnoughRep can take an array
user follow uid checks
2014-11-04 18:44:08 -05:00
Julian Lam
9a8fa35d8d flushing db after every test group that touches the db 2014-11-04 18:39:25 -05:00
Julian Lam
4125a087b5 closed #2349, removed use of deprecated -d flag in executable 2014-11-04 18:33:20 -05:00
Julian Lam
783481e644 Support for reloading nodebb via the nodebb executable 2014-11-04 18:33:20 -05:00
barisusakli
df4b555717 less db calls
no db call for settings if uid 0
no db call for isFollowing if uid 0
2014-11-04 18:31:21 -05:00
barisusakli
b7dcc29638 log error path as well 2014-11-04 18:06:11 -05:00
barisusakli
cdfaa941b1 error checks missing return 2014-11-04 17:57:31 -05:00
barisusakli
04c83dbdcc update deprecated sendfile 2014-11-04 17:34:05 -05:00
Julian Lam
dfc7c7aa7f #2350 :shipit: 2014-11-04 17:28:24 -05:00
Julian Lam
0e9fdc9a09 fixed #2350 -- chat modal now opens, but input is disabled 2014-11-04 17:23:39 -05:00
barisusakli
e09328c74d #2346
dont bring modal to front if u receive a message
2014-11-04 17:03:31 -05:00
barisusakli
38874345b7 closes #2346 2014-11-04 16:49:02 -05:00
barisusakli
e769ebe668 closes #2347 2014-11-04 15:56:33 -05:00
barisusakli
dd135b875b #2347
dont show flag on deleted posts
dont allow flag on deleted posts
dont allow upvote downvote favourite on deleted posts
2014-11-04 15:19:30 -05:00
barisusakli
268ecd5157 single call to get slug and postcount 2014-11-04 14:54:30 -05:00
barisusakli
f21b313848 reload/restart notices side by side 2014-11-04 13:55:20 -05:00
Julian Lam
ac2cc8cae6 updating development versioning for master branch 2014-11-03 16:48:45 -05:00
barisusakli
5f3f4ef74e closes #2266 2014-11-03 15:37:25 -05:00
barisusakli
d492339841 closes #2315 2014-11-03 15:31:41 -05:00
barisusakli
7bfc36ff56 dont call isAdmin if not logged in 2014-11-03 15:09:24 -05:00
barisusakli
209edf182f 404 pages that are out of range 2014-11-01 17:55:42 -04:00
Barış Soner Uşaklı
80d04e2de5 Merge pull request #2343 from datagutt/patch-1
Update translator mapping for norwegian
2014-11-01 17:46:24 -04:00
barisusakli
9440f8f8cd #2344 2014-11-01 17:32:56 -04:00
barisusakli
84b7a2c92d checks in socket.io/user
reset doesnt need socket
2014-11-01 16:55:50 -04:00
barisusakli
8e84e47578 if a user is deleted remove from banned sorted set as well 2014-11-01 15:11:47 -04:00
barisusakli
fd70ba5647 fix titles on ajaxify 2014-11-01 15:08:12 -04:00
Thomas Lekanger
e0975b85df Update translator mapping for norwegian 2014-11-01 18:46:58 +01:00
barisusakli
f83dd956eb check if post exists on up/down vote favourite 2014-10-31 22:27:50 -04:00
barisusakli
fcc42883ab some checks for purge 2014-10-31 22:04:09 -04:00
barisusakli
d43e8beb60 fix acp topic graph disappearing
clear usedColors on ajaxify, once it was filling up the graph was never
updating after ajaxify
2014-10-31 20:30:07 -04:00
barisusakli
56d16d1792 fix topic titles in search results
titles were being escaped twice if two or more posts were from the same
topic
2014-10-31 19:57:32 -04:00
barisusakli
7c7be2e0c1 closes #2337 2014-10-31 19:21:37 -04:00
barisusakli
6353ed57a9 duh fixing my fail from last night 2014-10-31 17:44:06 -04:00
barisusakli
1fe82ee452 added 2 new methods to dbal
getSortedSetRangeWithScores
getSortedSetRangeByScoreWithScores
2014-10-31 17:19:55 -04:00
Julian Lam
c44068db52 latest translations and fallbacks 2014-10-31 17:12:21 -04:00
Julian Lam
a7bc05aeb6 less formal language for #2335 2014-10-31 17:07:32 -04:00
Julian Lam
a7d028e29b bundling spam-be-gone with all nodebb install, ping @akhoury, closes #2332 2014-10-31 14:54:17 -04:00
Julian Lam
ec309333be closed #2335 2014-10-31 13:31:25 -04:00
Julian Lam
de0da80040 Merge branch 'master' of github.com:NodeBB/NodeBB 2014-10-31 13:25:30 -04:00
Julian Lam
b91d39a0d3 almost everything for #2335 2014-10-31 13:22:42 -04:00
heart
c38ca146c7 Made hiding widgets for guests/registered sensible. 2014-10-31 02:10:40 -04:00
psychobunny
0a1b31e6bc small change to gitignore re: logs 2014-10-31 01:56:45 -04:00
barisusakli
fb1095fc28 added allowed true to /chats 2014-10-31 01:50:24 -04:00
psychobunny
de8c1ece14 adding to contributing.md 2014-10-31 00:48:29 -04:00
barisusakli
e97bfc139b #1848 2014-10-30 23:14:33 -04:00
barisusakli
0ede4abe18 possible fix for #1848 2014-10-30 22:47:15 -04:00
barisusakli
0bb0424998 bubble error 2014-10-30 22:19:11 -04:00
barisusakli
e93398b647 use currentTime when someone up/down votes 2014-10-30 19:37:22 -04:00
Julian Lam
61aaff025b adding in 'allowed' to template, re: #2321 2014-10-30 18:05:48 -04:00
barisusakli
b12e3562d5 hide category icons if they are not set 2014-10-30 18:04:49 -04:00
Julian Lam
adfb89a2ad closed #2321 2014-10-30 17:50:27 -04:00
Julian Lam
28f87cc776 added tests for messaging method .canMessage 2014-10-30 17:50:27 -04:00
Julian Lam
a992638ef3 removed level from testmock error msg 2014-10-30 17:50:27 -04:00
barisusakli
41d806f67f removed unused language string 2014-10-30 16:52:09 -04:00
barisusakli
433769eb36 closes #2146
first tab (recent) shows last 50 messages instead of just last 24 hours
2014-10-30 16:51:15 -04:00
barisusakli
121de11400 closes #2323 2014-10-30 14:21:44 -04:00
psychobunny
ca87bc1577 Merge pull request #2320 from lpeachl/patch-1
Update language.json
2014-10-30 09:26:28 -04:00
lpeachl
9b481b23f3 Update language.json 2014-10-30 19:31:20 +07:00
psychobunny
50b264ac7d prevent deleted users belonging to a group from breaking edit functionality 2014-10-29 21:07:46 -04:00
psychobunny
4d4dc344a6 temporary fix until remarkable is updated in markdown plugin
https://github.com/jonschlinkert/remarkable/issues/88#issuecomment-60885589
2014-10-29 21:07:45 -04:00
psychobunny
2c555687e7 removed old copy from when we used to have ubuntu instructions on the main page 2014-10-29 01:55:26 -04:00
barisusakli
189eaf2bea escape output 2014-10-29 00:47:16 -04:00
barisusakli
fbd478812e fail modeon 2014-10-29 00:33:09 -04:00
barisusakli
1b268c94c0 if there is no postData.tid dont notify, ie topic post 2014-10-29 00:10:57 -04:00
barisusakli
cbedc762fd no rooms.enter for anons check tid on topic enter 2014-10-28 23:56:33 -04:00
barisusakli
0fba1e37a7 no need for double trim :P 2014-10-28 18:41:34 -04:00
barisusakli
5be1c17aa7 refactor user.create
dont fire filter:user.create if there userData is invalid
2014-10-28 18:28:26 -04:00
barisusakli
bce96d04c7 forkWorker function, pipe new worker output to log 2014-10-28 16:33:14 -04:00
barisusakli
4c8287251a added stderr piping to output 2014-10-28 16:12:05 -04:00
barisusakli
50a06f9369 log signal as well 2014-10-28 15:48:03 -04:00
barisusakli
f19bc2e2be removed error.log everything will go to output.log 2014-10-28 15:30:52 -04:00
barisusakli
20314991a4 tmp error check 2014-10-28 00:33:58 -04:00
barisusakli
a4533703d4 fix sort by vote insertion 2014-10-28 00:17:28 -04:00
barisusakli
c5ba327d8f fix empty pages 2014-10-27 23:20:40 -04:00
barisusakli
b12476c422 if a post is purged, remove it from flagged posts as well 2014-10-27 21:44:15 -04:00
barisusakli
1bcdae41b8 make images in manage/flags responsive 2014-10-27 21:28:46 -04:00
barisusakli
9e77960ee1 #2308 check if latest is greater by semver 2014-10-27 20:35:03 -04:00
psychobunny
25c7dfbc12 fix crash if socket.handshake is null 2014-10-27 20:23:16 -04:00
1044 changed files with 38701 additions and 18349 deletions

View File

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

4
.gitignore vendored
View File

@@ -17,9 +17,7 @@ provision.sh
.DS_Store
feeds/recent.rss
# winston?
error.log
events.log
logs/
pidfile

View File

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

View File

@@ -6,8 +6,11 @@ file_filter = public/language/<lang>/category.json
source_file = public/language/en_GB/category.json
source_lang = en_GB
trans.ar = public/language/ar/category.json
trans.bn = public/language/bn/category.json
trans.bg = public/language/bg/category.json
trans.cs = public/language/cs/category.json
trans.de = public/language/de/category.json
trans.el = public/language/el/category.json
trans.en_US = public/language/en_US/category.json
trans.en@pirate = public/language/en@pirate/category.json
trans.es = public/language/es/category.json
@@ -17,6 +20,7 @@ trans.fi = public/language/fi/category.json
trans.fr = public/language/fr/category.json
trans.he = public/language/he/category.json
trans.hu = public/language/hu/category.json
trans.id = public/language/id/category.json
trans.it = public/language/it/category.json
trans.ja = public/language/ja/category.json
trans.ko = public/language/ko/category.json
@@ -43,8 +47,11 @@ file_filter = public/language/<lang>/login.json
source_file = public/language/en_GB/login.json
source_lang = en_GB
trans.ar = public/language/ar/login.json
trans.bn = public/language/bn/login.json
trans.bg = public/language/bg/login.json
trans.cs = public/language/cs/login.json
trans.de = public/language/de/login.json
trans.el = public/language/el/login.json
trans.en_US = public/language/en_US/login.json
trans.en@pirate = public/language/en@pirate/login.json
trans.es = public/language/es/login.json
@@ -54,6 +61,7 @@ trans.fi = public/language/fi/login.json
trans.fr = public/language/fr/login.json
trans.he = public/language/he/login.json
trans.hu = public/language/hu/login.json
trans.id = public/language/id/login.json
trans.it = public/language/it/login.json
trans.ja = public/language/ja/login.json
trans.ko = public/language/ko/login.json
@@ -79,8 +87,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/recent.json
source_lang = en_GB
trans.ar = public/language/ar/recent.json
trans.bn = public/language/bn/recent.json
trans.bg = public/language/bg/recent.json
trans.cs = public/language/cs/recent.json
trans.de = public/language/de/recent.json
trans.el = public/language/el/recent.json
trans.en_US = public/language/en_US/recent.json
trans.en@pirate = public/language/en@pirate/recent.json
trans.es = public/language/es/recent.json
@@ -90,6 +101,7 @@ trans.fi = public/language/fi/recent.json
trans.fr = public/language/fr/recent.json
trans.he = public/language/he/recent.json
trans.hu = public/language/hu/recent.json
trans.id = public/language/id/recent.json
trans.it = public/language/it/recent.json
trans.ja = public/language/ja/recent.json
trans.ko = public/language/ko/recent.json
@@ -115,8 +127,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/unread.json
source_lang = en_GB
trans.ar = public/language/ar/unread.json
trans.bn = public/language/bn/unread.json
trans.bg = public/language/bg/unread.json
trans.cs = public/language/cs/unread.json
trans.de = public/language/de/unread.json
trans.el = public/language/el/unread.json
trans.en_US = public/language/en_US/unread.json
trans.en@pirate = public/language/en@pirate/unread.json
trans.es = public/language/es/unread.json
@@ -126,6 +141,7 @@ trans.fi = public/language/fi/unread.json
trans.fr = public/language/fr/unread.json
trans.he = public/language/he/unread.json
trans.hu = public/language/hu/unread.json
trans.id = public/language/id/unread.json
trans.it = public/language/it/unread.json
trans.ja = public/language/ja/unread.json
trans.ko = public/language/ko/unread.json
@@ -151,8 +167,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/modules.json
source_lang = en_GB
trans.ar = public/language/ar/modules.json
trans.bn = public/language/bn/modules.json
trans.bg = public/language/bg/modules.json
trans.cs = public/language/cs/modules.json
trans.de = public/language/de/modules.json
trans.el = public/language/el/modules.json
trans.en_US = public/language/en_US/modules.json
trans.en@pirate = public/language/en@pirate/modules.json
trans.es = public/language/es/modules.json
@@ -162,6 +181,7 @@ trans.fi = public/language/fi/modules.json
trans.fr = public/language/fr/modules.json
trans.he = public/language/he/modules.json
trans.hu = public/language/hu/modules.json
trans.id = public/language/id/modules.json
trans.it = public/language/it/modules.json
trans.ja = public/language/ja/modules.json
trans.ko = public/language/ko/modules.json
@@ -187,8 +207,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/register.json
source_lang = en_GB
trans.ar = public/language/ar/register.json
trans.bn = public/language/bn/register.json
trans.bg = public/language/bg/register.json
trans.cs = public/language/cs/register.json
trans.de = public/language/de/register.json
trans.el = public/language/el/register.json
trans.en_US = public/language/en_US/register.json
trans.en@pirate = public/language/en@pirate/register.json
trans.es = public/language/es/register.json
@@ -198,6 +221,7 @@ trans.fi = public/language/fi/register.json
trans.fr = public/language/fr/register.json
trans.he = public/language/he/register.json
trans.hu = public/language/hu/register.json
trans.id = public/language/id/register.json
trans.it = public/language/it/register.json
trans.ja = public/language/ja/register.json
trans.ko = public/language/ko/register.json
@@ -223,8 +247,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/user.json
source_lang = en_GB
trans.ar = public/language/ar/user.json
trans.bn = public/language/bn/user.json
trans.bg = public/language/bg/user.json
trans.cs = public/language/cs/user.json
trans.de = public/language/de/user.json
trans.el = public/language/el/user.json
trans.en_US = public/language/en_US/user.json
trans.en@pirate = public/language/en@pirate/user.json
trans.es = public/language/es/user.json
@@ -234,6 +261,7 @@ trans.fi = public/language/fi/user.json
trans.fr = public/language/fr/user.json
trans.he = public/language/he/user.json
trans.hu = public/language/hu/user.json
trans.id = public/language/id/user.json
trans.it = public/language/it/user.json
trans.ja = public/language/ja/user.json
trans.ko = public/language/ko/user.json
@@ -259,8 +287,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/global.json
source_lang = en_GB
trans.ar = public/language/ar/global.json
trans.bn = public/language/bn/global.json
trans.bg = public/language/bg/global.json
trans.cs = public/language/cs/global.json
trans.de = public/language/de/global.json
trans.el = public/language/el/global.json
trans.en_US = public/language/en_US/global.json
trans.en@pirate = public/language/en@pirate/global.json
trans.es = public/language/es/global.json
@@ -270,6 +301,7 @@ trans.fi = public/language/fi/global.json
trans.fr = public/language/fr/global.json
trans.he = public/language/he/global.json
trans.hu = public/language/hu/global.json
trans.id = public/language/id/global.json
trans.it = public/language/it/global.json
trans.ja = public/language/ja/global.json
trans.ko = public/language/ko/global.json
@@ -295,8 +327,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/notifications.json
source_lang = en_GB
trans.ar = public/language/ar/notifications.json
trans.bn = public/language/bn/notifications.json
trans.bg = public/language/bg/notifications.json
trans.cs = public/language/cs/notifications.json
trans.de = public/language/de/notifications.json
trans.el = public/language/el/notifications.json
trans.en_US = public/language/en_US/notifications.json
trans.en@pirate = public/language/en@pirate/notifications.json
trans.es = public/language/es/notifications.json
@@ -306,6 +341,7 @@ trans.fi = public/language/fi/notifications.json
trans.fr = public/language/fr/notifications.json
trans.he = public/language/he/notifications.json
trans.hu = public/language/hu/notifications.json
trans.id = public/language/id/notifications.json
trans.it = public/language/it/notifications.json
trans.ja = public/language/ja/notifications.json
trans.ko = public/language/ko/notifications.json
@@ -331,8 +367,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/reset_password.json
source_lang = en_GB
trans.ar = public/language/ar/reset_password.json
trans.bn = public/language/bn/reset_password.json
trans.bg = public/language/bg/reset_password.json
trans.cs = public/language/cs/reset_password.json
trans.de = public/language/de/reset_password.json
trans.el = public/language/el/reset_password.json
trans.en_US = public/language/en_US/reset_password.json
trans.en@pirate = public/language/en@pirate/reset_password.json
trans.es = public/language/es/reset_password.json
@@ -342,6 +381,7 @@ trans.fi = public/language/fi/reset_password.json
trans.fr = public/language/fr/reset_password.json
trans.he = public/language/he/reset_password.json
trans.hu = public/language/hu/reset_password.json
trans.id = public/language/id/reset_password.json
trans.it = public/language/it/reset_password.json
trans.ja = public/language/ja/reset_password.json
trans.ko = public/language/ko/reset_password.json
@@ -367,8 +407,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/users.json
source_lang = en_GB
trans.ar = public/language/ar/users.json
trans.bn = public/language/bn/users.json
trans.bg = public/language/bg/users.json
trans.cs = public/language/cs/users.json
trans.de = public/language/de/users.json
trans.el = public/language/el/users.json
trans.en_US = public/language/en_US/users.json
trans.en@pirate = public/language/en@pirate/users.json
trans.es = public/language/es/users.json
@@ -378,6 +421,7 @@ trans.fi = public/language/fi/users.json
trans.fr = public/language/fr/users.json
trans.he = public/language/he/users.json
trans.hu = public/language/hu/users.json
trans.id = public/language/id/users.json
trans.it = public/language/it/users.json
trans.ja = public/language/ja/users.json
trans.ko = public/language/ko/users.json
@@ -403,8 +447,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/language.json
source_lang = en_GB
trans.ar = public/language/ar/language.json
trans.bn = public/language/bn/language.json
trans.bg = public/language/bg/language.json
trans.cs = public/language/cs/language.json
trans.de = public/language/de/language.json
trans.el = public/language/el/language.json
trans.en_US = public/language/en_US/language.json
trans.en@pirate = public/language/en@pirate/language.json
trans.es = public/language/es/language.json
@@ -414,6 +461,7 @@ trans.fi = public/language/fi/language.json
trans.fr = public/language/fr/language.json
trans.he = public/language/he/language.json
trans.hu = public/language/hu/language.json
trans.id = public/language/id/language.json
trans.it = public/language/it/language.json
trans.ja = public/language/ja/language.json
trans.ko = public/language/ko/language.json
@@ -439,8 +487,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/pages.json
source_lang = en_GB
trans.ar = public/language/ar/pages.json
trans.bn = public/language/bn/pages.json
trans.bg = public/language/bg/pages.json
trans.cs = public/language/cs/pages.json
trans.de = public/language/de/pages.json
trans.el = public/language/el/pages.json
trans.en_US = public/language/en_US/pages.json
trans.en@pirate = public/language/en@pirate/pages.json
trans.es = public/language/es/pages.json
@@ -450,6 +501,7 @@ trans.fi = public/language/fi/pages.json
trans.fr = public/language/fr/pages.json
trans.he = public/language/he/pages.json
trans.hu = public/language/hu/pages.json
trans.id = public/language/id/pages.json
trans.it = public/language/it/pages.json
trans.ja = public/language/ja/pages.json
trans.ko = public/language/ko/pages.json
@@ -475,8 +527,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/topic.json
source_lang = en_GB
trans.ar = public/language/ar/topic.json
trans.bn = public/language/bn/topic.json
trans.bg = public/language/bg/topic.json
trans.cs = public/language/cs/topic.json
trans.de = public/language/de/topic.json
trans.el = public/language/el/topic.json
trans.en_US = public/language/en_US/topic.json
trans.en@pirate = public/language/en@pirate/topic.json
trans.es = public/language/es/topic.json
@@ -486,6 +541,7 @@ trans.fi = public/language/fi/topic.json
trans.fr = public/language/fr/topic.json
trans.he = public/language/he/topic.json
trans.hu = public/language/hu/topic.json
trans.id = public/language/id/topic.json
trans.it = public/language/it/topic.json
trans.ja = public/language/ja/topic.json
trans.ko = public/language/ko/topic.json
@@ -511,8 +567,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/success.json
source_lang = en_GB
trans.ar = public/language/ar/success.json
trans.bn = public/language/bn/success.json
trans.bg = public/language/bg/success.json
trans.cs = public/language/cs/success.json
trans.de = public/language/de/success.json
trans.el = public/language/el/success.json
trans.en_US = public/language/en_US/success.json
trans.en@pirate = public/language/en@pirate/success.json
trans.es = public/language/es/success.json
@@ -522,6 +581,7 @@ trans.fi = public/language/fi/success.json
trans.fr = public/language/fr/success.json
trans.he = public/language/he/success.json
trans.hu = public/language/hu/success.json
trans.id = public/language/id/success.json
trans.it = public/language/it/success.json
trans.ja = public/language/ja/success.json
trans.ko = public/language/ko/success.json
@@ -547,8 +607,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/error.json
source_lang = en_GB
trans.ar = public/language/ar/error.json
trans.bn = public/language/bn/error.json
trans.bg = public/language/bg/error.json
trans.cs = public/language/cs/error.json
trans.de = public/language/de/error.json
trans.el = public/language/el/error.json
trans.en_US = public/language/en_US/error.json
trans.en@pirate = public/language/en@pirate/error.json
trans.es = public/language/es/error.json
@@ -558,6 +621,7 @@ trans.fi = public/language/fi/error.json
trans.fr = public/language/fr/error.json
trans.he = public/language/he/error.json
trans.hu = public/language/hu/error.json
trans.id = public/language/id/error.json
trans.it = public/language/it/error.json
trans.ja = public/language/ja/error.json
trans.ko = public/language/ko/error.json
@@ -583,8 +647,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/tags.json
source_lang = en_GB
trans.ar = public/language/ar/tags.json
trans.bn = public/language/bn/tags.json
trans.bg = public/language/bg/tags.json
trans.cs = public/language/cs/tags.json
trans.de = public/language/de/tags.json
trans.el = public/language/el/tags.json
trans.en_US = public/language/en_US/tags.json
trans.en@pirate = public/language/en@pirate/tags.json
trans.es = public/language/es/tags.json
@@ -594,6 +661,7 @@ trans.fi = public/language/fi/tags.json
trans.fr = public/language/fr/tags.json
trans.he = public/language/he/tags.json
trans.hu = public/language/hu/tags.json
trans.id = public/language/id/tags.json
trans.it = public/language/it/tags.json
trans.ja = public/language/ja/tags.json
trans.ko = public/language/ko/tags.json
@@ -619,8 +687,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/email.json
source_lang = en_GB
trans.ar = public/language/ar/email.json
trans.bn = public/language/bn/email.json
trans.bg = public/language/bg/email.json
trans.cs = public/language/cs/email.json
trans.de = public/language/de/email.json
trans.el = public/language/el/email.json
trans.en_US = public/language/en_US/email.json
trans.en@pirate = public/language/en@pirate/email.json
trans.es = public/language/es/email.json
@@ -630,6 +701,7 @@ trans.fi = public/language/fi/email.json
trans.fr = public/language/fr/email.json
trans.he = public/language/he/email.json
trans.hu = public/language/hu/email.json
trans.id = public/language/id/email.json
trans.it = public/language/it/email.json
trans.ja = public/language/ja/email.json
trans.ko = public/language/ko/email.json
@@ -655,8 +727,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/search.json
source_lang = en_GB
trans.ar = public/language/ar/search.json
trans.bn = public/language/bn/search.json
trans.bg = public/language/bg/search.json
trans.cs = public/language/cs/search.json
trans.de = public/language/de/search.json
trans.el = public/language/el/search.json
trans.en_US = public/language/en_US/search.json
trans.en@pirate = public/language/en@pirate/search.json
trans.es = public/language/es/search.json
@@ -666,6 +741,7 @@ trans.fi = public/language/fi/search.json
trans.fr = public/language/fr/search.json
trans.he = public/language/he/search.json
trans.hu = public/language/hu/search.json
trans.id = public/language/id/search.json
trans.it = public/language/it/search.json
trans.ja = public/language/ja/search.json
trans.ko = public/language/ko/search.json
@@ -691,8 +767,11 @@ type = KEYVALUEJSON
source_file = public/language/en_GB/groups.json
source_lang = en_GB
trans.ar = public/language/ar/groups.json
trans.bn = public/language/bn/groups.json
trans.bg = public/language/bg/groups.json
trans.cs = public/language/cs/groups.json
trans.de = public/language/de/groups.json
trans.el = public/language/el/groups.json
trans.en_US = public/language/en_US/groups.json
trans.en@pirate = public/language/en@pirate/groups.json
trans.es = public/language/es/groups.json
@@ -702,6 +781,7 @@ trans.fi = public/language/fi/groups.json
trans.fr = public/language/fr/groups.json
trans.he = public/language/he/groups.json
trans.hu = public/language/hu/groups.json
trans.id = public/language/id/groups.json
trans.it = public/language/it/groups.json
trans.ja = public/language/ja/groups.json
trans.ko = public/language/ko/groups.json

View File

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

78
Gruntfile.js Normal file
View File

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

View File

@@ -1,15 +1,19 @@
# <img alt="NodeBB" src="http://i.imgur.com/mYxPPtB.png" />
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/NodeBB/NodeBB?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Build Status](https://travis-ci.org/NodeBB/NodeBB.svg?branch=master)](https://travis-ci.org/NodeBB/NodeBB)
[![Dependency Status](https://david-dm.org/nodebb/nodebb.svg)](https://david-dm.org/nodebb/nodebb)
[![Code Climate](https://codeclimate.com/github/NodeBB/NodeBB/badges/gpa.svg)](https://codeclimate.com/github/NodeBB/NodeBB)
[![Documentation Status](https://readthedocs.org/projects/nodebb/badge/?version=latest)](https://readthedocs.org/projects/nodebb/?badge=latest)
**NodeBB Forum Software** is powered by Node.js and built on a Redis database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB is compatible down to IE8 and has many modern features out of the box such as social network integration and streaming discussions.
**NodeBB Forum Software** is powered by Node.js and built on either a Redis or MongoDB database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB is compatible down to IE8 and has many modern features out of the box such as social network integration and streaming discussions.
Additional functionality is enabled through the use of third-party plugins.
* [Get NodeBB](http://www.nodebb.org/ "NodeBB")
* [Demo & Meta Discussion](http://community.nodebb.org)
* [NodeBB Blog](http://blog.nodebb.org)
* [Documentation](http://docs.nodebb.org) - includes setup instructions for other platforms
* [Documentation & Installation Instructions](http://docs.nodebb.org)
* [Join us on IRC](https://kiwiirc.com/client/irc.freenode.net/nodebb) - #nodebb on Freenode
* [Follow us on Twitter](http://www.twitter.com/NodeBB/ "NodeBB Twitter")
* [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook")
@@ -21,9 +25,6 @@
[<img src="http://i.imgur.com/FLOUuIqb.png" />](http://i.imgur.com/FLOUuIq.png)&nbsp;[<img src="http://i.imgur.com/Ud1LrfIb.png" />](http://i.imgur.com/Ud1LrfI.png)&nbsp;[<img src="http://i.imgur.com/ZC8W39ab.png" />](http://i.imgur.com/ZC8W39a.png)&nbsp;[<img src="http://i.imgur.com/o90kVPib.png" />](http://i.imgur.com/o90kVPi.png)&nbsp;[<img src="http://i.imgur.com/AaRRrU2b.png" />](http://i.imgur.com/AaRRrU2.png)&nbsp;[<img src="http://i.imgur.com/LmHtPhob.png" />](http://i.imgur.com/LmHtPho.png)&nbsp;[<img src="http://i.imgur.com/paiJPJkb.jpg" />](http://i.imgur.com/paiJPJk.jpg)&nbsp;[<img src="http://i.imgur.com/ZfavPHDb.png" />](http://i.imgur.com/ZfavPHD.png)&nbsp;[<img src="http://i.imgur.com/8OLssij.png" />](http://i.imgur.com/8OLssij.png)&nbsp;[<img src="http://i.imgur.com/JKOc0LZ.png"/>](http://i.imgur.com/JKOc0LZ.png)
Credit: [Convoe](http://www.convoe.com), [Kano](http://www.kano.me), [Manchester United Forum](http://manutdforums.com/).
## How can I follow along/contribute?
* Our feature roadmap is hosted on the project wiki's [Version History / Roadmap](https://github.com/NodeBB/NodeBB/wiki/Version-History-%26-Roadmap)
@@ -37,7 +38,7 @@ Credit: [Convoe](http://www.convoe.com), [Kano](http://www.kano.me), [Manchester
NodeBB requires the following software to be installed:
* A version of Node.js at least 0.10 or greater
* Redis, version 2.6 or greater **or** MongoDB, version 2.6 or greater
* Redis, version 2.8.9 or greater **or** MongoDB, version 2.6 or greater
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
## Installation

263
app.js
View File

@@ -21,14 +21,15 @@
/*global require, global, process*/
var nconf = require('nconf');
nconf.argv().env();
nconf.argv().env('__');
var fs = require('fs'),
os = require('os'),
url = require('url'),
async = require('async'),
semver = require('semver'),
winston = require('winston'),
path = require('path'),
cluster = require('cluster'),
pkg = require('./package.json'),
utils = require('./public/src/utils.js');
@@ -38,19 +39,13 @@ global.env = process.env.NODE_ENV || 'production';
winston.remove(winston.transports.Console);
winston.add(winston.transports.Console, {
colorize: true,
timestamp: true
timestamp: function() {
var date = new Date();
return date.getDate() + '/' + (date.getMonth() + 1) + ' ' + date.toTimeString().substr(0,5) + ' [' + global.process.pid + ']';
},
level: (global.env === 'production' || nconf.get('log-level') === 'info') ? 'info' : 'verbose'
});
winston.add(winston.transports.File, {
filename: 'logs/error.log',
level: 'error'
});
// TODO: remove once https://github.com/flatiron/winston/issues/280 is fixed
winston.err = function (err) {
winston.error(err.stack);
};
if(os.platform() === 'linux') {
require('child_process').exec('/usr/bin/which convert', function(err, stdout, stderr) {
if(err || !stdout) {
@@ -59,14 +54,6 @@ if(os.platform() === 'linux') {
});
}
if (!cluster.isWorker) {
// If run using `node app`, log GNU copyright info along with server info
winston.info('NodeBB v' + pkg.version + ' Copyright (C) 2013-2014 NodeBB Inc.');
winston.info('This program comes with ABSOLUTELY NO WARRANTY.');
winston.info('This is free software, and you are welcome to redistribute it under certain conditions.');
winston.info('');
}
// Alternate configuration file support
var configFile = path.join(__dirname, '/config.json'),
configExists;
@@ -78,8 +65,10 @@ configExists = fs.existsSync(configFile);
if (!nconf.get('setup') && !nconf.get('install') && !nconf.get('upgrade') && !nconf.get('reset') && configExists) {
start();
} else if (nconf.get('setup') || nconf.get('install') || !configExists) {
} else if (nconf.get('setup') || nconf.get('install')) {
setup();
} else if (!configExists) {
require('./install/web').install(nconf.get('port'));
} else if (nconf.get('upgrade')) {
upgrade();
} else if (nconf.get('reset')) {
@@ -94,126 +83,173 @@ function loadConfig() {
nconf.defaults({
base_dir: __dirname,
themes_path: path.join(__dirname, 'node_modules'),
upload_url: '/uploads/',
views_dir: path.join(__dirname, 'public/templates')
views_dir: path.join(__dirname, 'public/templates'),
version: pkg.version
});
if (!nconf.get('isCluster')) {
nconf.set('isPrimary', 'true');
nconf.set('isCluster', 'false');
}
// Ensure themes_path is a full filepath
nconf.set('themes_path', path.resolve(__dirname, nconf.get('themes_path')));
nconf.set('core_templates_path', path.join(__dirname, 'src/views'));
nconf.set('base_templates_path', path.join(nconf.get('themes_path'), 'nodebb-theme-vanilla/templates'));
if (!process.send) {
// If run using `node app`, log GNU copyright info along with server info
winston.info('NodeBB v' + nconf.get('version') + ' Copyright (C) 2013-2014 NodeBB Inc.');
winston.info('This program comes with ABSOLUTELY NO WARRANTY.');
winston.info('This is free software, and you are welcome to redistribute it under certain conditions.');
winston.info('');
}
}
function start() {
loadConfig();
var db = require('./src/database');
if (!cluster.isWorker || process.env.cluster_setup === 'true') {
winston.info('Time: ' + new Date());
winston.info('Initializing NodeBB v' + pkg.version);
winston.info('* using configuration stored in: ' + configFile);
// nconf defaults, if not set in config
if (!nconf.get('upload_path')) {
nconf.set('upload_path', '/public/uploads');
}
// Parse out the relative_url and other goodies from the configured URL
var urlObject = url.parse(nconf.get('url'));
var relativePath = urlObject.pathname !== '/' ? urlObject.pathname : '';
nconf.set('use_port', !!urlObject.port);
nconf.set('relative_path', relativePath);
nconf.set('port', urlObject.port || nconf.get('port') || nconf.get('PORT') || 4567);
nconf.set('upload_url', '/uploads/');
if (nconf.get('isPrimary') === 'true') {
winston.info('Time: %s', (new Date()).toString());
winston.info('Initializing NodeBB v%s', nconf.get('version'));
winston.verbose('* using configuration stored in: %s', configFile);
if (cluster.isWorker && process.env.cluster_setup === 'true') {
var host = nconf.get(nconf.get('database') + ':host'),
storeLocation = host ? 'at ' + host + (host.indexOf('/') === -1 ? ':' + nconf.get(nconf.get('database') + ':port') : '') : '';
winston.info('* using ' + nconf.get('database') +' store ' + storeLocation);
winston.info('* using themes stored in: ' + nconf.get('themes_path'));
winston.verbose('* using %s store %s', nconf.get('database'), storeLocation);
winston.verbose('* using themes stored in: %s', nconf.get('themes_path'));
}
require('./src/database').init(function(err) {
if (err) {
winston.error(err.stack);
process.exit();
process.on('SIGTERM', shutdown);
process.on('SIGINT', shutdown);
process.on('SIGHUP', restart);
process.on('message', function(message) {
if (typeof message !== 'object') {
return;
}
var meta = require('./src/meta');
meta.configs.init(function () {
var templates = require('templates.js'),
webserver = require('./src/webserver'),
sockets = require('./src/socket.io'),
plugins = require('./src/plugins'),
upgrade = require('./src/upgrade');
var emitter = require('./src/emitter');
switch (message.action) {
case 'reload':
meta.reload();
break;
case 'js-propagate':
meta.js.cache = message.cache;
meta.js.map = message.map;
meta.js.hash = message.hash;
emitter.emit('meta:js.compiled');
winston.verbose('[cluster] Client-side javascript and mapping propagated to worker %s', process.pid);
break;
case 'css-propagate':
meta.css.cache = message.cache;
meta.css.acpCache = message.acpCache;
meta.css.hash = message.hash;
emitter.emit('meta:css.compiled');
winston.verbose('[cluster] Stylesheets propagated to worker %s', process.pid);
break;
case 'templates:compiled':
emitter.emit('templates:compiled');
break;
}
});
templates.setGlobal('relative_path', nconf.get('relative_path'));
process.on('uncaughtException', function(err) {
winston.error(err.stack);
console.log(err.stack);
upgrade.check(function(schema_ok) {
if (schema_ok || nconf.get('check-schema') === false) {
sockets.init(webserver.server);
require('./src/meta').js.killMinifier();
shutdown(1);
});
nconf.set('url', nconf.get('base_url') + (nconf.get('use_port') ? ':' + nconf.get('port') : '') + nconf.get('relative_path'));
async.waterfall([
async.apply(db.init),
async.apply(db.checkCompatibility),
function(next) {
require('./src/meta').configs.init(next);
},
function(next) {
require('./src/upgrade').check(next);
},
function(schema_ok, next) {
if (!schema_ok && nconf.get('check-schema') !== false) {
winston.warn('Your NodeBB schema is out-of-date. Please run the following command to bring your dataset up to spec:');
winston.warn(' ./nodebb upgrade');
process.exit();
return;
}
var webserver = require('./src/webserver');
require('./src/socket.io').init(webserver.server);
plugins.ready(function() {
webserver.init(function() {
webserver.listen(function() {
process.send({
action: 'ready'
});
});
});
});
if (nconf.get('isPrimary') === 'true' && !nconf.get('jobsDisabled')) {
require('./src/notifications').init();
require('./src/user').startJobs();
}
process.on('SIGTERM', shutdown);
process.on('SIGINT', shutdown);
process.on('SIGHUP', restart);
process.on('message', function(message) {
switch(message.action) {
case 'reload':
meta.reload();
break;
case 'js-propagate':
meta.js.cache = message.cache;
meta.js.map = message.map;
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;
}
});
webserver.listen();
}
], function(err) {
if (err) {
if (err.stacktrace !== false) {
winston.error(err.stack);
} else {
winston.error(err.message);
}
process.on('uncaughtException', function(err) {
winston.error(err.stack);
console.log(err.stack);
meta.js.killMinifier();
shutdown(1);
});
} else {
winston.warn('Your NodeBB schema is out-of-date. Please run the following command to bring your dataset up to spec:');
winston.warn(' ./nodebb upgrade');
if (cluster.isWorker) {
cluster.worker.kill();
} else {
process.exit();
}
}
});
});
process.exit();
}
});
}
function setup() {
loadConfig();
if (nconf.get('setup')) {
winston.info('NodeBB Setup Triggered via Command Line');
} else {
winston.warn('Configuration not found, starting NodeBB setup');
}
winston.info('NodeBB Setup Triggered via Command Line');
var install = require('./src/install');
winston.info('Welcome to NodeBB!');
winston.info('This looks like a new installation, so you\'ll have to answer a few questions about your environment before we can proceed.');
winston.info('Press enter to accept the default setting (shown in brackets).');
process.stdout.write('\nWelcome to NodeBB!\n');
process.stdout.write('\nThis looks like a new installation, so you\'ll have to answer a few questions about your environment before we can proceed.\n');
process.stdout.write('Press enter to accept the default setting (shown in brackets).\n');
install.setup(function (err, data) {
var separator = ' ';
if (process.stdout.columns > 10) {
for(var x=0,cols=process.stdout.columns-10;x<cols;x++) {
separator += '=';
}
}
process.stdout.write('\n' + separator + '\n\n');
install.setup(function (err) {
if (err) {
winston.error('There was a problem completing NodeBB setup: ', err.message);
} else {
winston.info('NodeBB Setup Completed. Run \'./nodebb start\' to manually start your NodeBB server.');
if (data.hasOwnProperty('password')) {
process.stdout.write('An administrative user was automatically created for you:\n');
process.stdout.write(' Username: ' + data.username + '\n');
process.stdout.write(' Password: ' + data.password + '\n');
process.stdout.write('\n');
}
process.stdout.write('NodeBB Setup Completed. Run \'./nodebb start\' to manually start your NodeBB server.\n');
// If I am a child process, notify the parent of the returned data before exiting (useful for notifying
// hosts of auto-generated username/password during headless setups)
if (process.send) {
process.send(data);
}
}
process.exit();
@@ -243,7 +279,7 @@ function reset() {
process.exit();
}
if (nconf.get('themes')) {
if (nconf.get('theme')) {
resetThemes();
} else if (nconf.get('plugin')) {
resetPlugin(nconf.get('plugin'));
@@ -258,12 +294,16 @@ function reset() {
if (!err) {
winston.info('[reset] Reset complete.');
} else {
winston.error('[reset] Errors were encountered while resetting your forum settings: ' + err.message);
winston.error('[reset] Errors were encountered while resetting your forum settings: %s', err.message);
}
process.exit();
});
} else {
winston.warn('[reset] Nothing reset.');
winston.info('Use ./nodebb reset {theme|plugins|widgets|settings|all}');
winston.info(' or');
winston.info('Use ./nodebb reset plugin="nodebb-plugin-pluginName"');
process.exit();
}
});
}
@@ -298,16 +338,11 @@ function resetThemes(callback) {
function resetPlugin(pluginId) {
var db = require('./src/database');
db.setRemove('plugins:active', pluginId, function(err, result) {
if (err || result !== 1) {
winston.error('[reset] Could not disable plugin: ' + pluginId);
if (err) {
winston.error('[reset] Encountered error: ' + err.message);
} else {
winston.info('[reset] Perhaps it has already been disabled?');
}
db.sortedSetRemove('plugins:active', pluginId, function(err) {
if (err) {
winston.error('[reset] Could not disable plugin: %s encountered error %s', pluginId, err.message);
} else {
winston.info('[reset] Plugin `' + pluginId + '` disabled');
winston.info('[reset] Plugin `%s` disabled', pluginId);
}
process.exit();

View File

@@ -2,28 +2,33 @@
'use strict';
var bcrypt = require('bcryptjs'),
async = require('async'),
action = process.argv[2];
async = require('async');
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;
process.on('message', function(msg) {
if (msg.type === 'hash') {
hashPassword(msg.password, msg.rounds);
} else if (msg.type === 'compare') {
bcrypt.compare(msg.password, msg.hash, done);
}
});
function hashPassword(password, rounds) {
async.waterfall([
function(next) {
bcrypt.genSalt(parseInt(rounds, 10), next);
},
function(salt, next) {
bcrypt.hash(password, salt, next);
}
], done);
}
function done(err, result) {
if (err) {
process.send({err: err.message});
return process.disconnect();
}
process.send({result: result});
process.disconnect();
}

View File

@@ -9,7 +9,7 @@
},
{
"name": "General Discussion",
"description": "A place to talk about whateeeever you want",
"description": "A place to talk about whatever you want",
"bgColor": "#59b3d0",
"color": "#fff",
"icon" : "fa-comments-o",

View File

@@ -15,10 +15,22 @@
"field": "initialPostDelay",
"value": 10
},
{
"field": "newbiePostDelay",
"value": 120
},
{
"field": "newbiePostDelayThreshold",
"value": 3
},
{
"field": "minimumPostLength",
"value": 8
},
{
"field": "maximumPostLength",
"value": 32767
},
{
"field": "allowGuestSearching",
"value": 0
@@ -71,6 +83,10 @@
"field": "maximumSignatureLength",
"value": 255
},
{
"field": "maximumAboutMeLength",
"value": 1000
},
{
"field": "maximumProfileImageSize",
"value": 256
@@ -82,5 +98,9 @@
{
"field": "requireEmailConfirmation",
"value": 0
},
{
"field": "profile:allowProfileImageUploads",
"value": 1
}
]

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

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

View File

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

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

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

145
install/web.js Normal file
View File

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

368
loader.js
View File

@@ -1,22 +1,28 @@
"use strict";
'use strict';
var nconf = require('nconf'),
fs = require('fs'),
url = require('url'),
path = require('path'),
cluster = require('cluster'),
fork = require('child_process').fork,
async = require('async'),
logrotate = require('logrotate-stream'),
pkg = require('./package.json'),
pkg = require('./package.json');
pidFilePath = __dirname + '/pidfile',
nconf.argv().env().file({
file: path.join(__dirname, '/config.json')
});
var pidFilePath = __dirname + '/pidfile',
output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true }),
silent = process.env.NODE_ENV !== 'development' ? true : false,
silent = nconf.get('silent') === 'false' ? false : nconf.get('silent') !== false,
numProcs,
workers = [],
Loader = {
timesStarted: 0,
shutdown_queue: [],
js: {
cache: undefined,
map: undefined
@@ -28,12 +34,6 @@ var nconf = require('nconf'),
};
Loader.init = function(callback) {
cluster.setupMaster({
exec: "app.js",
silent: silent
});
Loader.primaryWorker = 1;
if (silent) {
console.log = function(value) {
output.write(value + '\n');
@@ -41,6 +41,8 @@ Loader.init = function(callback) {
}
process.on('SIGHUP', Loader.restart);
process.on('SIGUSR2', Loader.reload);
process.on('SIGTERM', Loader.stop);
callback();
};
@@ -54,98 +56,9 @@ Loader.displayStartupMessages = function(callback) {
callback();
};
Loader.addClusterEvents = function(callback) {
cluster.on('fork', function(worker) {
worker.on('message', function(message) {
if (message && typeof message === 'object' && message.action) {
var otherWorkers;
Loader.addWorkerEvents = function(worker) {
switch (message.action) {
case 'ready':
if (Loader.js.cache) {
worker.send({
action: 'js-propagate',
cache: Loader.js.cache,
map: Loader.js.map
});
}
if (Loader.css.cache) {
worker.send({
action: 'css-propagate',
cache: Loader.css.cache,
acpCache: Loader.css.acpCache
});
}
// Kill an instance in the shutdown queue
var workerToKill = Loader.shutdown_queue.pop();
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;
}
}
});
});
cluster.on('listening', function(worker) {
console.log('[cluster] Child Process (' + worker.process.pid + ') listening for connections.');
});
cluster.on('exit', function(worker, code, signal) {
worker.on('exit', function(code, signal) {
if (code !== 0) {
if (Loader.timesStarted < numProcs*3) {
Loader.timesStarted++;
@@ -154,104 +67,217 @@ Loader.addClusterEvents = function(callback) {
}
Loader.crashTimer = setTimeout(function() {
Loader.timesStarted = 0;
});
}, 10000);
} else {
console.log(numProcs*3 + ' restarts in 10 seconds, most likely an error on startup. Halting.');
process.exit();
}
}
console.log('[cluster] Child Process (' + worker.process.pid + ') has exited (code: ' + code + ')');
if (!worker.suicide) {
console.log('[cluster] Child Process (' + worker.pid + ') has exited (code: ' + code + ', signal: ' + signal +')');
if (!(worker.suicide || code === 0)) {
console.log('[cluster] Spinning up another process...');
var wasPrimary = parseInt(worker.id, 10) === Loader.primaryWorker;
cluster.fork({
handle_jobs: wasPrimary
});
forkWorker(worker.index, worker.isPrimary);
}
});
cluster.on('disconnect', function(worker) {
console.log('[cluster] Child Process (' + worker.process.pid + ') has disconnected');
});
worker.on('message', function(message) {
if (message && typeof message === 'object' && message.action) {
switch (message.action) {
case 'ready':
if (Loader.js.cache && !worker.isPrimary) {
worker.send({
action: 'js-propagate',
cache: Loader.js.cache,
map: Loader.js.map,
hash: Loader.js.hash
});
}
callback();
}
if (Loader.css.cache && !worker.isPrimary) {
worker.send({
action: 'css-propagate',
cache: Loader.css.cache,
acpCache: Loader.css.acpCache,
hash: Loader.css.hash
});
}
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');
break;
case 'restart':
console.log('[cluster] Restarting...');
Loader.restart();
break;
case 'reload':
console.log('[cluster] Reloading...');
Loader.reload();
break;
case 'js-propagate':
Loader.js.cache = message.cache;
Loader.js.map = message.map;
Loader.js.hash = message.hash;
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
});
Loader.notifyWorkers({
action: 'js-propagate',
cache: message.cache,
map: message.map,
hash: message.hash
}, worker.pid);
break;
case 'css-propagate':
Loader.css.cache = message.cache;
Loader.css.acpCache = message.acpCache;
Loader.css.hash = message.hash;
// Logging
if (silent) {
worker.process.stdout.pipe(output);
Loader.notifyWorkers({
action: 'css-propagate',
cache: message.cache,
acpCache: message.acpCache,
hash: message.hash
}, worker.pid);
break;
case 'templates:compiled':
Loader.notifyWorkers({
action: 'templates:compiled',
}, worker.pid);
break;
}
}
}
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 = function(callback) {
numProcs = getPorts().length;
console.log('Clustering enabled: Spinning up ' + numProcs + ' process(es).\n');
for (var x=0; x<numProcs; ++x) {
forkWorker(x, x === 0);
}
if (callback) {
callback();
}
};
function forkWorker(index, isPrimary) {
var ports = getPorts();
if(!ports[index]) {
return console.log('[cluster] invalid port for worker : ' + index + ' ports: ' + ports.length);
}
process.env.isPrimary = isPrimary;
process.env.isCluster = true;
process.env.port = ports[index];
var worker = fork('app.js', [], {
silent: silent,
env: process.env
});
worker.index = index;
worker.isPrimary = isPrimary;
workers[index] = worker;
Loader.addWorkerEvents(worker);
if (silent) {
var output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true });
worker.stdout.pipe(output);
worker.stderr.pipe(output);
}
}
function getPorts() {
var _url = nconf.get('url');
if (!_url) {
console.log('[cluster] url is undefined, please check your config.json');
process.exit();
}
var urlObject = url.parse(_url);
var port = nconf.get('port') || nconf.get('PORT') || urlObject.port || 4567;
if (!Array.isArray(port)) {
port = [port];
}
return port;
}
Loader.restart = function() {
killWorkers();
Loader.start();
};
Loader.reload = function() {
Object.keys(cluster.workers).forEach(function(worker_id) {
cluster.workers[worker_id].send({
workers.forEach(function(worker) {
worker.send({
action: 'reload'
});
});
};
Loader.notifyWorkers = function (msg) {
Object.keys(cluster.workers).forEach(function(id) {
cluster.workers[id].send(msg);
Loader.stop = function() {
killWorkers();
// Clean up the pidfile
fs.unlinkSync(__dirname + '/pidfile');
};
function killWorkers() {
workers.forEach(function(worker) {
worker.suicide = true;
worker.kill();
});
}
nconf.argv().file({
file: path.join(__dirname, '/config.json')
});
numProcs = nconf.get('cluster') || 1;
numProcs = (numProcs === true) ? require('os').cpus().length : numProcs;
if (nconf.get('daemon') !== false) {
if (fs.existsSync(pidFilePath)) {
try {
var pid = fs.readFileSync(pidFilePath, { encoding: 'utf-8' });
process.kill(pid, 0);
process.exit();
} catch (e) {
fs.unlinkSync(pidFilePath);
Loader.notifyWorkers = function(msg, worker_pid) {
worker_pid = parseInt(worker_pid, 10);
workers.forEach(function(worker) {
if (parseInt(worker.pid, 10) !== worker_pid) {
try {
worker.send(msg);
} catch (e) {
console.log('[cluster/notifyWorkers] Failed to reach pid ' + worker_pid);
}
}
});
};
fs.open(path.join(__dirname, 'config.json'), 'r', function(err) {
if (!err) {
if (nconf.get('daemon') !== 'false' && nconf.get('daemon') !== false) {
if (fs.existsSync(pidFilePath)) {
try {
var pid = fs.readFileSync(pidFilePath, { encoding: 'utf-8' });
process.kill(pid, 0);
process.exit();
} catch (e) {
fs.unlinkSync(pidFilePath);
}
}
require('daemon')({
stdout: process.stdout,
stderr: process.stderr
});
fs.writeFile(__dirname + '/pidfile', process.pid);
}
async.series([
Loader.init,
Loader.displayStartupMessages,
Loader.start
], function(err) {
if (err) {
console.log('[loader] Error during startup: ' + err.message);
}
});
} else {
// No config detected, kickstart web installer
var child = require('child_process').fork('app');
}
require('daemon')();
fs.writeFile(__dirname + '/pidfile', process.pid);
}
async.series([
Loader.init,
Loader.displayStartupMessages,
Loader.addClusterEvents,
Loader.start
], function(err) {
if (err) {
console.log('[loader] Error during startup: ' + err.message);
}
});
});

View File

@@ -6,31 +6,45 @@ var uglifyjs = require('uglify-js'),
fs = require('fs'),
path = require('path'),
crypto = require('crypto'),
utils = require('./public/src/utils'),
Minifier = {
js: {}
};
/* Javascript */
Minifier.js.minify = function (scripts, relativePath, minify, callback) {
var options = {
compress: false,
sourceMapURL: '/nodebb.min.js.map',
outSourceMap: 'nodebb.min.js.map',
sourceRoot: relativePath
};
Minifier.js.minify = function (scripts, minify, callback) {
scripts = scripts.filter(function(file) {
return fs.existsSync(file);
return fs.existsSync(file) && file.endsWith('.js');
});
if (!minify) {
options.mangle = false;
options.prefix = 1;
if (minify) {
minifyScripts(scripts, function() {
callback.apply(this, arguments);
});
} else {
concatenateScripts(scripts, callback);
}
};
process.on('message', function(payload) {
switch(payload.action) {
case 'js':
Minifier.js.minify(payload.scripts, payload.minify, function(minified) {
process.send({
type: 'end',
minified: minified
});
});
break;
}
});
function minifyScripts(scripts, callback) {
try {
var minified = uglifyjs.minify(scripts, options),
var minified = uglifyjs.minify(scripts, {
compress: false
}),
hasher = crypto.createHash('md5'),
hash;
@@ -42,27 +56,26 @@ Minifier.js.minify = function (scripts, relativePath, minify, callback) {
payload: hash.slice(0, 8)
});
callback({
js: minified.code,
map: minified.map
});
callback(minified.code);
} catch(err) {
process.send({
type: 'error',
payload: err
payload: err.message
});
}
};
}
process.on('message', function(payload) {
switch(payload.action) {
case 'js':
Minifier.js.minify(payload.scripts, payload.relativePath, payload.minify, function(data) {
function concatenateScripts(scripts, callback) {
async.map(scripts, fs.readFile, function(err, scripts) {
if (err) {
process.send({
type: 'end',
data: data
type: 'error',
payload: err
});
});
break;
}
});
}
scripts = scripts.join(require('os').EOL + ';');
callback(scripts);
});
}

32
nodebb
View File

@@ -12,10 +12,11 @@ fi
function pidExists() {
if [ -e "pidfile" ];
then
kill -s 0 $(cat pidfile);
if [ !$? ];
if ps -p $(cat pidfile) > /dev/null
then return 1;
else return 0;
else
rm ./pidfile;
return 0;
fi
else
return 0;
@@ -29,7 +30,7 @@ case "$1" in
echo " \"./nodebb log\" to view server output";
# Start the loader daemon
"$node" loader -d "$@"
"$node" loader "$@"
;;
stop)
@@ -43,7 +44,7 @@ case "$1" in
fi
;;
reload|restart)
restart)
pidExists;
if [ 0 -eq $? ];
then
@@ -54,6 +55,17 @@ case "$1" in
fi
;;
reload)
pidExists;
if [ 0 -eq $? ];
then
echo "NodeBB could not be reloaded, as a running instance could not be found.";
else
echo "Reloading NodeBB.";
kill -12 $(cat pidfile);
fi
;;
status)
pidExists;
if [ 0 -eq $? ];
@@ -80,7 +92,6 @@ case "$1" in
npm i nodebb-theme-vanilla nodebb-theme-lavender nodebb-widget-essentials
"$node" app --upgrade
touch package.json
echo -e "\n\e[00;32mNodeBB Dependencies up-to-date!\e[00;00m";
;;
setup)
@@ -95,13 +106,14 @@ case "$1" in
echo "Launching NodeBB in \"development\" mode."
echo "To run the production build of NodeBB, please use \"forever\"."
echo "More Information: https://docs.nodebb.org/en/latest/running/index.html"
NODE_ENV=development "$node" loader --no-daemon "$@"
NODE_ENV=development "$node" loader --no-daemon --no-silent "$@"
;;
watch)
echo "Launching NodeBB in \"development\" mode."
echo "To run the production build of NodeBB, please use \"forever\"."
echo "More Information: https://docs.nodebb.org/en/latest/running/index.html"
echo "***************************************************************************"
echo "WARNING: ./nodebb watch will be deprecated soon. Please use grunt: "
echo "https://docs.nodebb.org/en/latest/running/index.html#grunt-development"
echo "***************************************************************************"
NODE_ENV=development supervisor -q --ignore public/templates,public/nodebb.min.js,public/nodebb.min.js.map --extensions 'node|js|tpl|less' -- app "$@"
;;

122
nodebb.bat Normal file
View File

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

3269
npm-shrinkwrap.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,7 @@
"name": "nodebb",
"license": "GPLv3 or later",
"description": "NodeBB Forum",
"version": "0.5.3-dev",
"version": "0.7.0",
"homepage": "http://www.nodebb.org",
"repository": {
"type": "git",
@@ -10,13 +10,12 @@
},
"main": "app.js",
"scripts": {
"start": "./nodebb start",
"stop": "./nodebb stop",
"start": "node loader.js",
"test": "mocha ./tests -t 10000"
},
"dependencies": {
"async": "~0.9.0",
"bcryptjs": "~2.0.1",
"bcryptjs": "~2.1.0",
"body-parser": "^1.9.0",
"compression": "^1.1.0",
"connect-ensure-login": "^0.1.1",
@@ -28,43 +27,54 @@
"daemon": "~1.1.0",
"express": "^4.9.5",
"express-session": "^1.8.2",
"gm": "1.16.0",
"gm": "1.17.0",
"gravatar": "^1.1.0",
"less": "^1.7.5",
"heapdump": "^0.3.0",
"less": "^2.0.0",
"logrotate-stream": "^0.2.3",
"lru-cache": "^2.6.1",
"mime": "^1.3.4",
"mkdirp": "~0.5.0",
"mmmagic": "^0.3.13",
"morgan": "^1.3.2",
"nconf": "~0.6.7",
"nodebb-plugin-dbsearch": "0.0.15",
"nodebb-plugin-markdown": "^0.7.0",
"nodebb-plugin-mentions": "~0.6.0",
"nodebb-plugin-soundpack-default": "~0.1.1",
"nodebb-theme-lavender": "~0.1.0",
"nodebb-theme-vanilla": "~0.1.0",
"nodebb-widget-essentials": "~0.1.1",
"nconf": "~0.7.1",
"nodebb-plugin-dbsearch": "^0.2.12",
"nodebb-plugin-emoji-extended": "^0.4.8",
"nodebb-plugin-markdown": "^2.1.7",
"nodebb-plugin-mentions": "^0.11.4",
"nodebb-plugin-soundpack-default": "^0.1.1",
"nodebb-plugin-spam-be-gone": "^0.4.0",
"nodebb-theme-lavender": "^1.0.42",
"nodebb-theme-vanilla": "^1.0.130",
"nodebb-theme-persona": "^0.1.55",
"nodebb-widget-essentials": "^1.0.2",
"nodebb-rewards-essentials": "^0.0.1",
"npm": "^2.1.4",
"passport": "^0.2.1",
"passport-local": "1.0.0",
"prompt": "^0.2.14",
"request": "^2.44.0",
"rimraf": "~2.2.6",
"rimraf": "~2.3.2",
"rss": "^1.0.0",
"semver": "^4.0.3",
"semver": "^4.3.3",
"serve-favicon": "^2.1.5",
"sitemap": "^0.7.4",
"socket.io": "^0.9.17",
"socket.io-client": "^0.9.17",
"socket.io-wildcard": "~0.1.1",
"string": "^2.1.0",
"templates.js": "0.1.2",
"sitemap": "^0.8.1",
"socket.io": "^1.2.1",
"socket.io-client": "^1.2.1",
"socket.io-redis": "^0.1.3",
"socketio-wildcard": "~0.1.1",
"string": "^3.0.0",
"templates.js": "^0.2.3",
"uglify-js": "git+https://github.com/julianlam/UglifyJS2.git",
"underscore": "~1.7.0",
"validator": "~3.21.0",
"winston": "^0.8.0",
"underscore": "~1.8.3",
"validator": "^3.30.0",
"winston": "^0.9.0",
"xregexp": "~2.0.0"
},
"devDependencies": {
"mocha": "~1.13.0"
"mocha": "~1.13.0",
"grunt": "~0.4.5",
"grunt-contrib-watch": "^0.6.1"
},
"bugs": {
"url": "https://github.com/NodeBB/NodeBB/issues"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 521 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@@ -1,8 +1,12 @@
{
"new_topic_button": "موضوع جديد",
"no_topics": "<strong>لا توجد مواضيع في هذه الفئة</strong>لماذا لا تحاول نشر موضوع؟<br />",
"guest-login-post": "المرجو تسجيل الدخول أوَّلا",
"no_topics": "<strong>لا توجد مواضيع في هذه الفئة</strong>لم لا تحاول إنشاء موضوع؟<br />",
"browsing": "تصفح",
"no_replies": "لم يرد أحد",
"share_this_category": "انشر هذه الفئة",
"ignore": "Ignore"
"watch": "Watch",
"ignore": "تجاهل",
"watch.message": "You are now watching updates from this category",
"ignore.message": "You are now ignoring updates from this category"
}

View File

@@ -1,23 +1,28 @@
{
"password-reset-requested": "Password Reset Requested - %1!",
"welcome-to": "Welcome to %1",
"greeting_no_name": "Hello",
"greeting_with_name": "Hello %1",
"welcome.text1": "Thank you for registering with %1!",
"welcome.text2": "To fully activate your account, we need to verify that you own the email address you registered with.",
"welcome.cta": "Click here to confirm your email address",
"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.cta": "Click here to reset your password",
"digest.notifications": "You have unread notifications from %1:",
"digest.latest_topics": "Latest topics from %1",
"digest.cta": "Click here to visit %1",
"digest.unsub.info": "This digest was sent to you due to your subscription settings.",
"digest.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.",
"unsub.cta": "Click here to alter those settings",
"closing": "Thanks!"
"password-reset-requested": "تم طلب إعادة تعيين كلمة السر - %1!",
"welcome-to": "مرحبًا بك في %1",
"greeting_no_name": "مرحبًا",
"greeting_with_name": "مرحبًا بك يا %1",
"welcome.text1": "شكرًا على تسجيلك في %1!",
"welcome.text2": "لتفعيل حسابك، نحتاج إلى التأكد من صحة عنوان البريد الإلكتروني الذي تسجلت به.",
"welcome.cta": "انقر هنا لتفعيل عنوان بريدك الإلكتروني",
"reset.text1": "لقد توصلنا بطلب إعادة تعيين كلمة السرالخاصة بك، ربما لكونك قد نسيتها, إن لم يكن الأمر كذلك، المرجو تجاهل هذه الرسالة.",
"reset.text2": "لمواصلة طلب إعاة تعيين كلمة السر، المرجو تتبع هذا الرابط.",
"reset.cta": "انقر هنا لإعادة تعيين كلمة السر الخاصة بك.",
"reset.notify.subject": "تم تغيير كلمة المرور بنجاح",
"reset.notify.text1": "نحيطك علما أن كلمة مرورك قد تم تغييرها في %1",
"reset.notify.text2": "إن لم يكن لديك علم بهذا، المرجو إشعار مدبر النظام بأسرع مايمكن.",
"digest.notifications": "لديك تنبيهات غير مقروءة من طرف %1:",
"digest.latest_topics": "آخر المستجدات من %1",
"digest.cta": "انقر هنا لمشاهدة %1",
"digest.unsub.info": "تم إرسال هذا الإشعار بآخر المستجدات وفقا لخيارات تسجيلكم.",
"digest.no_topics": "ليس هناك مواضيع نشيطة في %1 الماضي",
"notif.chat.subject": "هناك محادثة جديدة من %1",
"notif.chat.cta": "انقر هنا لمتابعة المحادثة",
"notif.chat.unsub.info": "تم إرسال هذا الإشعار بوجودة محادثة جديدة وفقا لخيارات تسجيلك.",
"notif.post.cta": "انقر هنا لقراءة الموضوع بأكمله",
"notif.post.unsub.info": "تم إشعارك بهذه المشاركة بناءً على الخيارات التي سبق وأن حددتها.",
"test.text1": "هذه رسالة تجريبية للتأكد من صحة إعدادت الرسائل الإلكترونية في منتدى NodeBB خاصتك.",
"unsub.cta": "انقر هنا لتغيير تلك الإعدادات",
"closing": "شكرًا لك!"
}

View File

@@ -1,64 +1,84 @@
{
"invalid-data": "بيانات غير صالحة",
"not-logged-in": "لم تقم بتسجيل الدخول",
"account-locked": "Your account has been locked temporarily",
"search-requires-login": "Searching requires an account! Please login or register!",
"invalid-cid": "Invalid Category ID",
"invalid-tid": "Invalid Topic ID",
"invalid-pid": "Invalid Post ID",
"invalid-uid": "Invalid User ID",
"account-locked": "تم إقفال حسابكم مؤقتًا.",
"search-requires-login": "Searching requires an account - please login or register.",
"invalid-cid": "قائمة غير موجودة",
"invalid-tid": "موضوع غير متواجد",
"invalid-pid": "رد غير موجود",
"invalid-uid": "مستخدم غير موجود",
"invalid-username": "اسم المستخدم غير مقبول",
"invalid-email": "البريد الاكتروني غير مقبول",
"invalid-title": "Invalid title!",
"invalid-user-data": "Invalid User Data",
"invalid-title": "عنوان غير صحيح",
"invalid-user-data": "بيانات المستخدم غير صحيحة",
"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",
"username-taken": "اسم المستخدم ماخوذ",
"email-taken": "البريد الالكتروني ماخوذ",
"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-long": "Username too long",
"invalid-username-or-password": "المرجود تحديد اسم مستخدم و كلمة مرور",
"invalid-search-term": "كلمة البحث غير صحيحة",
"invalid-pagination-value": "رقم الصفحة غير موجود",
"username-taken": "اسم المستخدم مأخوذ",
"email-taken": "البريد الالكتروني مأخوذ",
"email-not-confirmed": "عنوان بريدك الإلكتروني غير مفعل بعد. انقر هنا لتفعيله من فضلك.",
"email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
"no-email-to-confirm": "هذا المنتدى يستلزم تفعيل بريدك الإلكتروني، انقر هنا من فضلك لإدخاله.",
"email-confirm-failed": "لم نستطع تفعيل بريدك الإلكتروني، المرجو المحاولة لاحقًا.",
"confirm-email-already-sent": "Confirmation email already sent, please wait %1 minute(s) to send another one.",
"username-too-short": "اسم المستخدم قصير.",
"username-too-long": "اسم المستخدم طويل",
"user-banned": "المستخدم محظور",
"user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
"no-category": "Category does not exist",
"no-topic": "Topic does not exist",
"no-post": "Post does not exist",
"no-group": "Group does not exist",
"no-user": "User does not exist",
"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",
"category-disabled": "Category disabled",
"user-too-new": "عذرا, يجب أن تنتظر 1% ثواني قبل قيامك بأول مشاركة",
"no-category": "قائمة غير موجودة",
"no-topic": "موضوع غير موجود",
"no-post": "رد غير موجود",
"no-group": "مجموعة غير موجودة",
"no-user": "اسم مستخدم غير موجود",
"no-teaser": "مقتطف غير موجود",
"no-privileges": "لاتملك الصلاحيات اللازمة للقيام بهذه العملية",
"no-emailers-configured": "لا يمكن إرسال رسالة إلكترونية تجريبية لعدم وجود قوالب خاصة بالرسائل الإلكترونية،",
"category-disabled": "قائمة معطلة",
"topic-locked": "الموضوع مقفول",
"post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting",
"still-uploading": "الرجاء انتظار الرفع",
"content-too-short": "Please enter a longer post. Posts should contain 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.",
"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 - please upload a smaller file",
"cant-vote-self-post": "You cannot vote for your own post",
"already-favourited": "You have already favourited this post",
"already-unfavourited": "You have already unfavourited this post",
"cant-ban-other-admins": "You can't ban other admins!",
"invalid-image-type": "نوع الصورة ممنوع",
"group-name-too-short": "Group name too short",
"group-already-exists": "Group already exists",
"group-name-change-not-allowed": "Group name change not allowed",
"post-already-deleted": "This post has already been deleted",
"post-already-restored": "This post has already been 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.",
"invalid-file": "Invalid File",
"uploads-are-disabled": "Uploads are disabled",
"upload-error": "مشكلة في الرفع: 1%",
"signature-too-long": "Sorry, your signature cannot be longer than %1 characters.",
"cant-chat-with-yourself": "You can't chat with yourself!",
"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."
"content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).",
"content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).",
"title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).",
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 character(s).",
"too-many-posts": "You can only post once every %1 second(s) - please wait before posting again",
"too-many-posts-newbie": "As a new user, you can only post once every %1 second(s) until you have earned %2 reputation - please wait before posting again",
"tag-too-short": "Please enter a longer tag. Tags should contain at least %1 character(s)",
"tag-too-long": "Please enter a shorter tag. Tags can't be longer than %1 character(s)",
"file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file",
"cant-vote-self-post": "لايمكنك التصويت لردك",
"already-favourited": "لقد سبق وأضفت هذا الرد إلى المفضلة",
"already-unfavourited": "لقد سبق وحذفت هذا الرد من المفضلة",
"cant-ban-other-admins": "لايمكن حظر مدبر نظام آخر.",
"invalid-image-type": "Invalid image type. Allowed types are: %1",
"invalid-image-extension": "Invalid image extension",
"invalid-file-type": "Invalid file type. Allowed types are: %1",
"group-name-too-short": "اسم المجموعة قصير",
"group-already-exists": "المجموعة موجودة مسبقا",
"group-name-change-not-allowed": "لايسمح بتغيير أسماء المجموعات",
"group-already-member": "You are already part of this group",
"group-needs-owner": "This group requires at least one owner",
"post-already-deleted": "سبق وتم حذف هذا الرد",
"post-already-restored": "سبق وتم إلغاء حذف هذا الرد",
"topic-already-deleted": "سبق وتم حذف هذا الموضوع",
"topic-already-restored": "سبق وتم إلغاء حذف هذا الرد",
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
"topic-thumbnails-are-disabled": "الصور المصغرة غير مفعلة.",
"invalid-file": "ملف غير مقبول",
"uploads-are-disabled": "رفع الملفات غير مفعل",
"signature-too-long": "Sorry, your signature cannot be longer than %1 character(s).",
"about-me-too-long": "Sorry, your about me cannot be longer than %1 character(s).",
"cant-chat-with-yourself": "لايمكنك فتح محادثة مع نفسك",
"chat-restricted": "هذا المستخدم عطل المحادثات الواردة عليه. يجب أن يتبعك حتى تتمكن من فتح محادثة معه.",
"too-many-messages": "You have sent too many messages, please wait awhile.",
"reputation-system-disabled": "نظام السمعة معطل",
"downvoting-disabled": "التصويتات السلبية معطلة",
"not-enough-reputation-to-downvote": "ليس لديك سمعة تكفي لإضافة صوت سلبي لهذا الموضوع",
"not-enough-reputation-to-flag": "ليس لديك سمعة تكفي للإشعار بموضوع مخل",
"reload-failed": "المنتدى واجه مشكلة أثناء إعادة التحميل: \"%1\". سيواصل المنتدى خدمة العملاء السابقين لكن يجب عليك إلغاء أي تغيير قمت به قبل إعادة التحميل.",
"registration-error": "حدث خطأ أثناء التسجيل",
"parse-error": "Something went wrong while parsing server response",
"wrong-login-type-email": "الرجاء استعمال بريدك اﻹلكتروني للدخول",
"wrong-login-type-username": "الرجاء استعمال اسم المستخدم الخاص بك للدخول"
}

View File

@@ -3,74 +3,79 @@
"search": "بحث",
"buttons.close": "أغلق",
"403.title": "غير مسموح بالدخول",
"403.message": "يبدو أنك قد تعثر على الصفحة التي لم يكن لديك الوصول إليها. ربما يجب عليك <a href='/login'> تسجيل الدخول </a> ",
"403.message": "You seem to have stumbled upon a page that you do not have access to.",
"403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
"404.title": "لم يتم العثور",
"404.message": "يبدو أنك قد تعثرت على صفحة غير موجودة. عودة إلى الصفحة الرئيسية.",
"404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
"500.title": "خطأ داخلي.",
"500.message": "عفوا! يبدو وكأنه شيء ذهب على نحو خاطئ!",
"register": "تسجيل",
"login": "دخول",
"please_log_in": "Please Log In",
"please_log_in": "المرجو تسجيل الدخول",
"logout": "تسجيل الخروج",
"posting_restriction_info": "Posting is currently restricted to registered members only, click here to log in.",
"welcome_back": "Welcome Back",
"you_have_successfully_logged_in": "You have successfully logged in",
"posting_restriction_info": "إضافة مشاركات جديد حكر على الأعضاء المسجلين، انقر هنا لتسجيل الدخول.",
"welcome_back": "مرحبًا بعودتك",
"you_have_successfully_logged_in": "تم سجيل الدخول بنجاح",
"save_changes": "حفظ التغييرات",
"close": "أغلق",
"pagination": "Pagination",
"pagination.out_of": "%1 out of %2",
"pagination.enter_index": "Enter index",
"header.admin": شرف",
"pagination": "الصفحات",
"pagination.out_of": "%1 من %2",
"pagination.enter_index": "أدخل الرقم التسلسلي",
"header.admin": دبر نظام",
"header.recent": "حديث",
"header.unread": "غير مقروء",
"header.tags": "Tags",
"header.popular": "Popular",
"header.tags": "وسم",
"header.popular": "الأكثر شهرة",
"header.users": "المستخدمين",
"header.chats": "Chats",
"header.notifications": "Notifications",
"header.groups": "المجموعات",
"header.chats": "المحادثات",
"header.notifications": "التنبيهات",
"header.search": "بحث",
"header.profile": "ملف",
"notifications.loading": "تحميل التبليغات",
"chats.loading": "تحميل الدردشات",
"motd.welcome": "مرحبا بكم NodeBB، منصة مناقشة المستقبل",
"previouspage": "Previous Page",
"nextpage": "Next Page",
"alert.success": "Success",
"alert.error": "Error",
"alert.banned": "Banned",
"alert.banned.message": "You have just been banned, you will now be logged out.",
"alert.unfollow": "You are no longer following %1!",
"alert.follow": "You are now following %1!",
"online": "Online",
"users": "Users",
"topics": "Topics",
"posts": "Posts",
"views": "Views",
"reputation": "Reputation",
"read_more": "read more",
"posted_ago_by_guest": "posted %1 by Guest",
"posted_ago_by": "posted %1 by %2",
"posted_ago": "posted %1",
"posted_in_ago_by_guest": "posted in %1 %2 by Guest",
"posted_in_ago_by": "posted in %1 %2 by %3",
"posted_in_ago": "posted in %1 %2",
"replied_ago": "replied %1",
"user_posted_ago": "%1 posted %2",
"guest_posted_ago": "Guest posted %1",
"last_edited_by_ago": "last edited by %1 %2",
"norecentposts": "No Recent Posts",
"norecenttopics": "No Recent Topics",
"recentposts": "Recent Posts",
"recentips": "Recently Logged In IPs",
"away": "Away",
"dnd": "Do not Disturb",
"invisible": "Invisible",
"offline": "Offline",
"email": "Email",
"language": "Language",
"guest": "Guest",
"guests": "Guests",
"updated.title": "Forum Updated",
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page.",
"privacy": "Privacy"
"previouspage": "الصفحة السابقة",
"nextpage": "الصفحة التالية",
"alert.success": "نجاح",
"alert.error": "خطأ",
"alert.banned": "محظور",
"alert.banned.message": "لقد تم حظر حسابك. سيتم تسجيل الخروج.",
"alert.unfollow": "أنت لا تتابع %1 بعد الآن!",
"alert.follow": "أنت الآن تتابع %1!",
"online": "المتواجدون حاليًّا",
"users": "الأعضاء",
"topics": "المواضيع",
"posts": "المشاركات",
"views": "المشاهدات",
"reputation": "السمعة",
"read_more": "اقرأ المزيد",
"posted_ago_by_guest": "كتب %1 من طرف زائر",
"posted_ago_by": "كتب %1 من طرف %2",
"posted_ago": "كتب %1",
"posted_in_ago_by_guest": "كتب في %1 %2 من طرف زائر",
"posted_in_ago_by": "كتب في %1 %2 من طرف %3",
"posted_in_ago": "كتب في %1 %2",
"replied_ago": "رد %1",
"user_posted_ago": "%1 كتب %2",
"guest_posted_ago": "كتب زائر %1",
"last_edited_by_ago": "آخر تعديل من طرف %1 %2",
"norecentposts": "لاوجود لمشاركات جديدة",
"norecenttopics": "لاوجود لمواضيع جديدة",
"recentposts": "آخر المشاركات",
"recentips": "آخر عناوين ال IP التي سجلت الدخول",
"away": "غير متواجد",
"dnd": "المرجو عدم الإزعاج",
"invisible": "مخفي",
"offline": "غير متصل",
"email": "عنوان البريد الإلكتروني",
"language": "اللغة",
"guest": "زائر",
"guests": "الزوار",
"updated.title": "تم تحديث المنتدى",
"updated.message": "لقد تم تحديث المنتدى إلى آخر نسخة للتو. المرجو إعادة تحميل الصفحة.",
"privacy": "الخصوصية",
"follow": "متابعة",
"unfollow": "إلغاء المتابعة",
"delete_all": "حذف الكل"
}

View File

@@ -1,8 +1,36 @@
{
"groups": "Groups",
"view_group": "View Group",
"details.title": "Group Details",
"details.members": "Member List",
"details.has_no_posts": "This group's members have not made any posts.",
"details.latest_posts": "Latest Posts"
"groups": "المجموعات",
"view_group": "معاينة المجموعة",
"owner": "مالك المجموعة",
"new_group": "أنشئ مجموعة جديدة",
"no_groups_found": "لاوجدود لمجموعات يمكن معاينتها",
"pending.accept": "موافق",
"pending.reject": "رفض",
"cover-instructions": "اسحب وأسقِط صورة، اسحبها للموضع المرغوب، وانقر على <strong>حفظ</strong>",
"cover-change": "تغيير",
"cover-save": "حفظ",
"cover-saving": "جاري الحفظ",
"details.title": "تفاصيل المجموعة",
"details.members": "لائحة الأعضاء",
"details.pending": "المستخدمون في الانتظار",
"details.has_no_posts": "أعضاء هذه المجموعة لم يضيفوا أية مشاركة",
"details.latest_posts": "آخر المشاركات",
"details.private": "خاص",
"details.grant": "منح/سحب المِلكية",
"details.kick": "طرد",
"details.owner_options": "إدارة المجموعة",
"details.group_name": "اسم المجموعة",
"details.member_count": "عدد اﻷعضاء",
"details.creation_date": "تاريخ الإنشاء",
"details.description": "الوصف",
"details.badge_preview": "معاينة الوسام",
"details.change_icon": "تغيير الأيقونة",
"details.change_colour": "تغيير اللون",
"details.badge_text": "نص الوسام",
"details.userTitleEnabled": "إظهار الوسام",
"details.private_help": "في حالة تفعيل الخيار، الانضمام إلى المجموعة يستلزم قبول مالكها",
"details.hidden": "مخفي",
"details.hidden_help": "في حالة تفعيل الخيار، لن تظهر المجموعة للعموم والإنضمام إليها سيتلزم دعوة يدوية.",
"event.updated": "تم تحديث بيانات المجموعة",
"event.deleted": "تم حذف المجموعة %1"
}

View File

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

View File

@@ -1,22 +1,26 @@
{
"chat.chatting_with": "الدردشة مع <span id=\"chat-with-name\"></span>",
"chat.placeholder": "Type chat message here, press enter to send",
"chat.placeholder": "أكتب رسالة دردشة هنا، اضغط ENTER للإرسال",
"chat.send": "أرسل",
"chat.no_active": "لا يوجد لديك دردشات نشطة.",
"chat.user_typing": "%1 is typing ...",
"chat.user_has_messaged_you": "%1 has messaged you.",
"chat.see_all": "See all Chats",
"chat.no-messages": "Please select a recipient to view chat message history",
"chat.recent-chats": "Recent Chats",
"chat.contacts": "Contacts",
"chat.message-history": "Message History",
"chat.pop-out": "Pop out chat",
"chat.maximize": "Maximize",
"chat.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": "%1 said:",
"composer.discard": "Are you sure you wish to discard this post?"
"chat.user_typing": "%1 يكتب رسالة...",
"chat.user_has_messaged_you": "%1 أرسل لك رسالة.",
"chat.see_all": "معاينة كل الدردشات",
"chat.no-messages": "المرجو اختيار مرسل إليه لمعاينة تاريخ الدردشات",
"chat.recent-chats": "آخر الدردشات",
"chat.contacts": "الأصدقاء",
"chat.message-history": "تاريخ الرسائل",
"chat.pop-out": "افتح الدردشة في نافذة خاصة",
"chat.maximize": "تكبير",
"chat.seven_days": "7 أيام",
"chat.thirty_days": "30 يومًا",
"chat.three_months": "3 أشهر",
"composer.compose": "Compose",
"composer.show_preview": "عرض المعاينة",
"composer.hide_preview": "إخفاء المعاينة",
"composer.user_said_in": "%1 كتب في %2",
"composer.user_said": "%1 كتب:",
"composer.discard": "هل أنت متأكد أنك تريد التخلي عن التغييرات؟",
"composer.submit_and_lock": "Submit and Lock",
"composer.toggle_dropdown": "Toggle Dropdown"
}

View File

@@ -1,27 +1,27 @@
{
"title": "إعلام",
"no_notifs": "You have no new notifications",
"see_all": "See all Notifications",
"back_to_home": "Back to %1",
"title": "التنبيهات",
"no_notifs": "ليس لديك أية تنبيهات جديدة",
"see_all": "معاينة كل التنبيهات",
"mark_all_read": "اجعل كل التنبيهات مقروءة",
"back_to_home": "عودة إلى %1",
"outgoing_link": "رابط خارجي",
"outgoing_link_message": "You are now leaving %1.",
"continue_to": "Continue to %1",
"return_to": "Return to %1",
"new_notification": "New Notification",
"you_have_unread_notifications": "You have unread notifications.",
"new_message_from": "New message from <strong>%1</strong>",
"upvoted_your_post_in": "<strong>%1</strong> has upvoted your post in <strong>%2</strong>.",
"moved_your_post": "<strong>%1</strong> has moved your post.",
"moved_your_topic": "<strong>%1</strong> has moved your topic.",
"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_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
"user_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
"user_started_following_you": "<strong>%1</strong> started following you.",
"email-confirmed": "Email Confirmed",
"email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.",
"email-confirm-error": "An error occurred...",
"email-confirm-error-message": "There was a problem validating your email address. Perhaps the code was invalid or has expired.",
"email-confirm-sent": "Confirmation email sent."
"outgoing_link_message": "أنت تغادر %1 حاليا.",
"continue_to": "استمر إلى %1",
"return_to": "عودة إى %1",
"new_notification": "تنبيه جديد",
"you_have_unread_notifications": "لديك تنبيهات غير مقروءة.",
"new_message_from": "رسالة جديدة من <strong>%1</strong>",
"upvoted_your_post_in": "<strong>%1</strong> أضاف صوتًا إيجابيا إلى مشاركتك في <strong>%2</strong>.",
"moved_your_post": "<strong>%1</strong> نقل مشاركتك.",
"moved_your_topic": "<strong>%1</strong> نقل موضوعك.",
"favourited_your_post_in": "<strong>%1</strong> أضاف مشاركتك في <strong>%2</strong> إلى مفضلته.",
"user_flagged_post_in": "<strong>%1</strong> أشعَرَ بمشاركة مخلة في <strong>%2</strong>",
"user_posted_to": "<strong>%1</strong> أضاف ردا إلى: <strong>%2</strong>",
"user_posted_topic": "<strong>%1</strong> أنشأ موضوعًا جديدًا: <strong>%2</strong>",
"user_mentioned_you_in": "<strong>%1</strong> ذكرَ اسمك في <strong>%2</strong>",
"user_started_following_you": "<strong>%1</strong> صار يتابعك.",
"email-confirmed": "تم التحقق من عنوان البريد الإلكتروني",
"email-confirmed-message": "شكرًا على إثبات صحة عنوان بريدك الإلكتروني. صار حسابك مفعلًا بالكامل.",
"email-confirm-error-message": "حدث خطأ أثناء التحقق من عنوان بريدك الإلكتروني. ربما رمز التفعيل خاطئ أو انتهت صلاحيته.",
"email-confirm-sent": "تم إرسال بريد التفعيل."
}

View File

@@ -1,18 +1,21 @@
{
"home": "Home",
"unread": "Unread Topics",
"popular": "Popular Topics",
"recent": "Recent Topics",
"users": "Registered Users",
"notifications": "Notifications",
"tags": "Topics tagged under \"%1\"",
"user.edit": "Editing \"%1\"",
"user.following": "People %1 Follows",
"user.followers": "People who Follow %1",
"user.posts": "Posts made by %1",
"user.topics": "Topics created by %1",
"user.favourites": "%1's Favourite Posts",
"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:"
"home": "الصفحة الرئيسية",
"unread": "المواضيع الغير مقروءة",
"popular": "المواضيع الأكثر شهرة",
"recent": "المواضيع الحديثة",
"users": "اﻷعضاء المسجلون",
"notifications": "التنبيهات",
"tags": "Tags",
"tag": "Topics tagged under \"%1\"",
"user.edit": "تعديل \"%1\"",
"user.following": "المستخدمون الذين يتبعهم %1",
"user.followers": "المستخدمون الذين يتبعون %1",
"user.posts": "ردود %1",
"user.topics": "مواضيع %1",
"user.groups": "%1's Groups",
"user.favourites": "مفضلات %1",
"user.settings": "خيارات المستخدم",
"user.watched": "Topics watched by %1",
"maintenance.text": "جاري صيانة %1. المرجو العودة لاحقًا.",
"maintenance.messageIntro": "بالإضافة إلى ذلك، قام مدبر النظام بترك هذه الرسالة:"
}

View File

@@ -1,9 +1,19 @@
{
"title": "Recent",
"title": "الحديثة",
"day": "يوم",
"week": "أسبوع",
"month": "شهر",
"year": "Year",
"alltime": "All Time",
"no_recent_topics": "There are no recent topics."
"year": "سنة",
"alltime": "دائمًا",
"no_recent_topics": "لايوجد مواضيع جديدة",
"no_popular_topics": "There are no popular topics.",
"there-is-a-new-topic": "يوجد موضوع جديد",
"there-is-a-new-topic-and-a-new-post": "يوجد موضوع جديد و رد جديد",
"there-is-a-new-topic-and-new-posts": "يوجد موضوع جديد و %1 ردود جديدة ",
"there-are-new-topics": "يوجد %1 مواضيع جديدة",
"there-are-new-topics-and-a-new-post": "يوجد %1 مواضيع جديدة و رد جديد",
"there-are-new-topics-and-new-posts": "يوجد %1 مواضيع جديدة و %2 مشاركات جديدة",
"there-is-a-new-post": "يوجد مشاركة جديدة",
"there-are-new-posts": "يوجد %1 مشاركات جديدة",
"click-here-to-reload": "إضغط هنا لإعادة التحميل"
}

View File

@@ -12,7 +12,7 @@
"confirm_password": "تأكيد كلمة السر",
"confirm_password_placeholder": "تأكيد كلمة السر",
"register_now_button": "قم بالتسجيل الآن",
"alternative_registration": "التسجيل البديلة",
"terms_of_use": "Terms of Use",
"agree_to_terms_of_use": "I agree to the Terms of Use"
"alternative_registration": "طريقة تسجيل بديلة",
"terms_of_use": "شروط الاستخدام",
"agree_to_terms_of_use": "أوافق على شروط الاستخدام"
}

View File

@@ -3,12 +3,15 @@
"update_password": "تحديث كلمة السر",
"password_changed.title": "تم تغير كلمة السر",
"password_changed.message": "<p>تم تغير كلمة السر بنجاح. يرجى <a href='/login'>إعادة الدخول</a></p>",
"wrong_reset_code.title": "إعادة تعيين رمز غير صحيح",
"wrong_reset_code.message": امز إعادة التعين غير صحيح، يرجى المحاولة مرة أخرى أو <a href='/reset'>اطلب رمز جديد</a>",
"wrong_reset_code.title": "رمز إعادة التعيين غير صحيح",
"wrong_reset_code.message": "رمز إعادة التعين غير صحيح، يرجى المحاولة مرة أخرى أو <a href='/reset'>اطلب رمزا جديدا</a>",
"new_password": "كلمة السر الجديدة",
"repeat_password": "تأكيد كلمة السر",
"enter_email": "يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
"enter_email_address": "Enter Email Address",
"enter_email_address": "ادخل عنوان البريد الإلكتروني",
"password_reset_sent": "إعادة تعيين كلمة السر أرسلت",
"invalid_email": "بريد إلكتروني غير صالح أو غير موجود"
"invalid_email": "بريد إلكتروني غير صالح أو غير موجود",
"password_too_short": "The password entered is too short, please pick a different password.",
"passwords_do_not_match": "The two passwords you've entered do not match.",
"password_expired": "Your password has expired, please choose a new password"
}

View File

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

View File

@@ -1,6 +1,6 @@
{
"success": "Success",
"topic-post": "You have successfully posted.",
"authentication-successful": "Authentication Successful",
"settings-saved": "Settings saved!"
"success": "نجاح",
"topic-post": "لقد تمت الإضافة بنجاح.",
"authentication-successful": "تم تسجيل الدخول بنجاح",
"settings-saved": "تم حفظ التغييرات!"
}

View File

@@ -1,7 +1,7 @@
{
"no_tag_topics": "There are no topics with this tag.",
"tags": "Tags",
"enter_tags_here": "Enter tags here. Press enter after each tag.",
"enter_tags_here_short": "Enter tags...",
"no_tags": "There are no tags yet."
"no_tag_topics": "لاوجود لمواضيع تحمل هذا الوسم.",
"tags": "بطاقات",
"enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "أدخل البطاقات...",
"no_tags": "لاتوجد هناك بطاقات بعد."
}

View File

@@ -1,96 +1,100 @@
{
"topic": "موضوع",
"topic_id": "Topic ID",
"topic_id_placeholder": "Enter topic ID",
"topic_id": "معرف الموضوع",
"topic_id_placeholder": "أدخل معرف الموضوع",
"no_topics_found": "لا توجد مواضيع !",
"no_posts_found": "No posts found!",
"post_is_deleted": "This post is deleted!",
"profile": "ملف",
"posted_by": "Posted by %1",
"posted_by_guest": "Posted by Guest",
"no_posts_found": "لا توجد مشاركات!",
"post_is_deleted": "هذه المشاركة محذوفة!",
"topic_is_deleted": "هذا الموضوع محذوف",
"profile": "الملف الشخصي",
"posted_by": "كتب من طرف %1",
"posted_by_guest": "كتب من طرف زائر",
"chat": "دردشة",
"notify_me": نبه من ردود جديدة في هذا الموضوع",
"notify_me": لق تنبيهات بالردود الجديدة في هذا الموضوع",
"quote": "اقتبس",
"reply": "رد",
"edit": "صحح",
"guest-login-reply": "يجب عليك تسجيل الدخول للرد",
"edit": "تعديل",
"delete": "حذف",
"purge": "Purge",
"restore": "Restore",
"move": "انقل",
"purge": "تطهير",
"restore": "استعادة",
"move": "نقل",
"fork": "فرع",
"link": "رابط",
"share": "شارك",
"share": "نشر",
"tools": "أدوات",
"flag": "Flag",
"locked": "Locked",
"bookmark_instructions": "Click here to return to your last position or close to discard.",
"flag_title": "Flag this post for moderation",
"flag_confirm": "Are you sure you want to flag this post?",
"flag_success": "This post has been flagged for moderation.",
"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.",
"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.",
"markAsUnreadForAll.success": "Topic marked as unread for all.",
"watch": "Watch",
"unwatch": "Unwatch",
"watch.title": "Be notified of new replies in this topic",
"unwatch.title": "Stop watching this topic",
"share_this_post": "Share this Post",
"thread_tools.title": "Topic Tools",
"flag": "تبليغ",
"locked": "مقفل",
"bookmark_instructions": "إضغط هنا للعودة إلى آخر موضع أو غلق للإلغاء",
"flag_title": "إشعار بمشاركة مخلة.",
"flag_confirm": "هل تريد حقًّا التبليغ بهذه المشاركة؟",
"flag_success": "تم الإشعار بهذه المشاركة على أنها مخلة",
"deleted_message": "هذه المشاركة محذوفة. فقط من لهم صلاحية الإشراف على ا لمشاركات يمكنهم معاينتها.",
"following_topic.message": "ستستلم تنبيها عند كل مشاركة جديدة في هذا الموضوع.",
"not_following_topic.message": "لن تستلم أي تنبيه بخصوص عذا الموضوع بعد الآن.",
"login_to_subscribe": "المرجو إنشاء حساب أو تسجيل الدخول حتى يمكنك متابعة هذا الموضوع.",
"markAsUnreadForAll.success": "تم تحديد الموضوع على أنه غير مقروء.",
"watch": "مراقبة",
"unwatch": "الغاء المراقبة",
"watch.title": "استلم تنبيها بالردود الجديدة في هذا الموضوع",
"unwatch.title": "ألغ مراقبة هذا الموضوع",
"share_this_post": "انشر هذا الموضوع",
"thread_tools.title": "أدوات الموضوع",
"thread_tools.markAsUnreadForAll": "علم غير مقروء",
"thread_tools.pin": "علق الموضوع",
"thread_tools.unpin": "Unpin Topic",
"thread_tools.lock": "قفل الموضوع",
"thread_tools.unlock": "Unlock Topic",
"thread_tools.unpin": "إلغاء تعليق الموضوع",
"thread_tools.lock": "أقفل الموضوع",
"thread_tools.unlock": "إلغاء إقفال الموضوع",
"thread_tools.move": "نقل الموضوع",
"thread_tools.move_all": "Move All",
"thread_tools.fork": "تفرع الموضوع",
"thread_tools.move_all": "نقل الكل",
"thread_tools.fork": "إنشاء فرع الموضوع",
"thread_tools.delete": "حذف الموضوع",
"thread_tools.delete_confirm": "Are you sure you want to delete this topic?",
"thread_tools.restore": "Restore Topic",
"thread_tools.restore_confirm": "Are you sure you want to restore this topic?",
"thread_tools.purge": "Purge Topic",
"thread_tools.purge_confirm": "Are you sure you want to purge this topic?",
"topic_move_success": "This topic has been successfully moved to %1",
"post_delete_confirm": "Are you sure you want to delete this post?",
"post_restore_confirm": "Are you sure you want to restore this post?",
"post_purge_confirm": "Are you sure you want to purge this post?",
"thread_tools.delete_confirm": "هل أنت متأكد أنك تريد حذف هذا الموضوع؟",
"thread_tools.restore": "استعادة الموضوع",
"thread_tools.restore_confirm": "هل أنت متأكد أنك تريد استعادة هذا الموضوع؟",
"thread_tools.purge": "تطهير الموضوع",
"thread_tools.purge_confirm": "هل أنت متأكد أنك تريد تطهير هذا الموضوع؟",
"topic_move_success": "تم نقل هذا الموضوع إلى %1 بنجاح",
"post_delete_confirm": "هل أنت متأكد أنك تريد حذف هذه المشاركة؟",
"post_restore_confirm": "هل أنت متأكد أنك تريد استعادة هذه المشاركة؟",
"post_purge_confirm": "هل أنت متأكد أنك تريد تطهير هذه المشاركة؟",
"load_categories": "تحميل الفئات",
"disabled_categories_note": "الفئات المجلدة رمادية",
"disabled_categories_note": "الفئات المعطلة رمادية",
"confirm_move": "انقل",
"confirm_fork": "فرع",
"favourite": "المفضل",
"favourite": "إضافة إلى المفضلة",
"favourites": "المفضلة",
"favourites.has_no_favourites": "ليس لديك أي ردود مفضلة. فضل بعد الردود لرؤيتهم هنا",
"favourites.has_no_favourites": "ليس لديك أي ردود مفضلة. أضف بعض المشاركات إلى المفضلة لرؤيتهم هنا",
"loading_more_posts": "تحميل المزيد من المشاركات",
"move_topic": "نقل الموضوع",
"move_topics": "Move Topics",
"move_post": "نقل الرد",
"post_moved": "Post moved!",
"move_topics": "نقل المواضيع",
"move_post": "نقل المشاركة",
"post_moved": "تم نقل المشاركة",
"fork_topic": "فرع الموضوع",
"topic_will_be_moved_to": "هذا الموضوع سوف ينقل إلى فئة",
"fork_topic_instruction": "إضغط على الردود لتفريعهم",
"fork_no_pids": "لم تختار أي رد",
"fork_success": "Successfully forked topic! Click here to go to the forked topic.",
"composer.title_placeholder": "Enter your topic title here...",
"composer.discard": "Discard",
"composer.submit": "Submit",
"composer.replying_to": "Replying to %1",
"composer.new_topic": "New Topic",
"composer.uploading": "uploading...",
"composer.thumb_url_label": "Paste a topic thumbnail URL",
"composer.thumb_title": "Add a thumbnail to this topic",
"fork_topic_instruction": "إضغط على المشاركات التي تريد تفريعها",
"fork_no_pids": "لم تختر أي مشاركة",
"fork_success": "تم إنشاء فرع للموضوع بنجاح! إضغط هنا لمعاينة الفرع.",
"composer.title_placeholder": "أدخل عنوان موضوعك هنا...",
"composer.handle_placeholder": "Name",
"composer.discard": "نبذ التغييرات",
"composer.submit": "حفظ",
"composer.replying_to": "الرد على %1",
"composer.new_topic": "موضوع جديد",
"composer.uploading": "جاري الرفع",
"composer.thumb_url_label": "ألصق رابط الصورة المصغرة للموضوع",
"composer.thumb_title": "إضافة صورة مصغرة للموضوع",
"composer.thumb_url_placeholder": "http://example.com/thumb.png",
"composer.thumb_file_label": "Or upload a file",
"composer.thumb_remove": "Clear fields",
"composer.drag_and_drop_images": "Drag and Drop Images Here",
"more_users_and_guests": "%1 more user(s) and %2 guest(s)",
"more_users": "%1 more user(s)",
"more_guests": "%1 more guest(s)",
"users_and_others": "%1 and %2 others",
"sort_by": "Sort by",
"oldest_to_newest": "Oldest to Newest",
"newest_to_oldest": "Newest to Oldest",
"most_votes": "Most votes"
"composer.thumb_file_label": "أو قم برفع ملف",
"composer.thumb_remove": "تفريغ الخانات",
"composer.drag_and_drop_images": "اسحب وأسقص الصور هنا",
"more_users_and_guests": "%1 مستخدم(ين) و %2 زائر(ين)",
"more_users": "%1 مستخدم(ين)",
"more_guests": "%1 زائر(ين)",
"users_and_others": "%1 و %2 آخرين",
"sort_by": "ترتيب حسب",
"oldest_to_newest": "من الأقدم إلى الأحدث",
"newest_to_oldest": "من الأحدث إلى الأقدم",
"most_votes": "الأكثر تصويتًا",
"most_posts": "اﻷكثر رداً"
}

View File

@@ -1,9 +1,9 @@
{
"title": "Unread",
"title": "غير مقروء",
"no_unread_topics": "ليس هناك أي موضوع غير مقروء",
"load_more": "حمل المزيد",
"mark_as_read": "Mark as Read",
"selected": "Selected",
"all": "All",
"topics_marked_as_read.success": "Topics marked as read!"
"mark_as_read": "حدد غير مقروء",
"selected": "المحددة",
"all": "الكل",
"topics_marked_as_read.success": "تم تحديد المواضيع على أنها مقروءة!"
}

View File

@@ -1,72 +1,84 @@
{
"banned": "محظور",
"offline": "ليس موجود حالياً",
"offline": "غير متصل",
"username": "إسم المستخدم",
"joindate": "تاريخ الإنضمام",
"postcount": "عدد المشاركات",
"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.",
"confirm_email": "تأكيد عنوان البريد الإلكتروني",
"delete_account": "حذف الحساب",
"delete_account_confirm": "هل أن متأكد أنك تريد حذف حسابك؟<br /><strong> هذه العملية غير قابلة للإلغاء ولن يكون بالإمكان استعادة بياناتك</strong><br /><br />أدخل اسم المستخدم الخاص بك لتأكيد عملية الحذف",
"fullname": "الاسم الكامل",
"website": "الموقع الإلكتروني",
"location": "موقع",
"age": "عمر",
"location": "الموقع",
"age": "السن",
"joined": "تاريخ التسجيل",
"lastonline": "تاريخ أخر دخول",
"profile": "Profile",
"profile_views": "مشاهد الملف",
"reputation": "سمعة",
"favourites": "Favourites",
"followers": "أتباع",
"following": "يتبع",
"lastonline": "تاريخ آخر دخول",
"profile": "الملف الشخصي",
"profile_views": "عدد المشاهدات",
"reputation": "السمعة",
"favourites": "التفضيلات",
"watched": "متابع",
"followers": "المتابعون",
"following": "يتابع",
"aboutme": "About me",
"signature": "توقيع",
"gravatar": "Gravatar",
"birthday": "عيد ميلاد",
"chat": "Chat",
"follow": "Follow",
"unfollow": "Unfollow",
"profile_update_success": "Profile has been updated successfully!",
"chat": "محادثة",
"follow": "تابع",
"unfollow": "إلغاء المتابعة",
"more": "المزيد",
"profile_update_success": "تم تحديث الملف الشخصي بنجاح",
"change_picture": "تغيير الصورة",
"edit": "صحح",
"uploaded_picture": "صورة تم تحميلها",
"upload_new_picture": "تحميل صورة جديدة",
"upload_new_picture_from_url": "Upload New Picture From URL",
"current_password": "Current Password",
"edit": "تعديل",
"uploaded_picture": "الصورة المرفوعة",
"upload_new_picture": "رفع صورة جديدة",
"upload_new_picture_from_url": "رفع صورة جديدة من رابط",
"current_password": "كلمة السر الحالية",
"change_password": "تغيير كلمة السر",
"change_password_error": "Invalid Password!",
"change_password_error_wrong_current": "Your current password is not correct!",
"change_password_error_length": "Password too short!",
"change_password_error_match": "Passwords must match!",
"change_password_error_privileges": "You do not have the rights to change this password.",
"change_password_success": "Your password is updated!",
"change_password_error": "كلمة سر غير صحيحة",
"change_password_error_wrong_current": "كلمة السر الحالية ليست صحيحة",
"change_password_error_length": "كلمة السر قصيرة",
"change_password_error_match": "كلمة السر غير مطابقة لتأكيد كلمة السر",
"change_password_error_privileges": "ليس لديك الصلاحيات الكافية لتغيير كلمة السر هذه.",
"change_password_success": "تم تحديث كلمة السر خاصتك.",
"confirm_password": "تأكيد كلمة السر",
"password": "كلمة السر",
"username_taken_workaround": "The username you requested was already taken, so we have altered it slightly. You are now known as <strong>%1</strong>",
"upload_picture": "تحميل الصورة",
"upload_a_picture": "تحميل صورة",
"image_spec": "You may only upload PNG, JPG, or GIF files",
"max": "max.",
"settings": "Settings",
"username_taken_workaround": "اسم المستخدم الذي اخترته سبق أخذه، لذا تم تغييره قليلا. أن الآن مسجل تحت الاسم <strong>%1</strong>",
"upload_picture": "ارفع الصورة",
"upload_a_picture": "رفع صورة",
"image_spec": "لايمكنك رفع إلا الصور ذات الصيغ PNG أو JPG أو GIF.",
"settings": "خيارات",
"show_email": "أظهر بريدي الإلكتروني",
"show_fullname": "Show My Full Name",
"digest_label": "Subscribe to Digest",
"digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule",
"digest_off": "Off",
"digest_daily": "Daily",
"digest_weekly": "Weekly",
"digest_monthly": "Monthly",
"send_chat_notifications": "Send an email if a new chat message arrives and I am not online",
"has_no_follower": "هذا المستخدم ليس لديه أي أتباع :(",
"follows_no_one": "هذا المستخدم لا يتبع أحد :(",
"has_no_posts": "This user didn't post anything yet.",
"has_no_topics": "This user didn't post any topics yet.",
"show_fullname": "أظهر اسمي الكامل",
"restrict_chats": "لاتسمح بورود محادثات إلا من طرف المستخدمين الذين أتابعهم.",
"digest_label": "اشترك في النشرة الدورية",
"digest_description": "استلام اشعارات بآخر مستجدات هذا القسم (التنبيهات والمواضيع الجديدة) عبر البريد الإلكتروني وفقا لجدول زمني محدد.",
"digest_off": "غير مفعل",
"digest_daily": "يوميا",
"digest_weekly": "أسبوعيًّا",
"digest_monthly": "شهريًّا",
"send_chat_notifications": "استلام رسالة إلكترونية عند ورود محادثة وأنا غير متصل.",
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
"settings-require-reload": "تغيير بعض اﻹعدادات يتطلب تحديث الصفحة. إضغط هنا لتحديث الصفحة",
"has_no_follower": "هذا المستخدم ليس لديه أي متابع :(",
"follows_no_one": "هذا المستخدم لا يتابع أحد :(",
"has_no_posts": "هذا المستخدم لم يكتب أي شيء بعد.",
"has_no_topics": "هذا المستخدم لم ينشئ أي موضوع بعد.",
"has_no_watched_topics": "This user didn't watch any topics yet.",
"email_hidden": "البريد الإلكتروني مخفي",
"hidden": "مخفي",
"paginate_description": "Paginate topics and posts instead of using infinite scroll.",
"topics_per_page": "Topics per Page",
"posts_per_page": "Posts per Page",
"notification_sounds": "Play a sound when you receive a notification.",
"browsing": "Browsing Settings",
"open_links_in_new_tab": "Open outgoing links in new tab?",
"follow_topics_you_reply_to": "Follow topics that you reply to.",
"follow_topics_you_create": "Follow topics you create."
"paginate_description": "Paginate topics and posts instead of using infinite scroll",
"topics_per_page": "المواضيع في كل صفحة",
"posts_per_page": "الردود في كل صفحة",
"notification_sounds": "تشغيل صوت عند تلقي تنبيه",
"browsing": "خيارات التصفح",
"open_links_in_new_tab": "فتح الروابط الخارجية في نافدة جديدة",
"enable_topic_searching": "تفعيل خاصية البحث داخل المواضيع",
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen",
"follow_topics_you_reply_to": "متابعة المواضيع التي تقوم بالرد فيها",
"follow_topics_you_create": "متابعة المواضيع التي تنشئها",
"grouptitle": "Select the group title you would like to display",
"no-group-title": "No group title"
}

View File

@@ -1,9 +1,12 @@
{
"latest_users": "أحدث المستخدمين",
"top_posters": "أكثر المشتركين",
"latest_users": "أحدث الأعضاء",
"top_posters": "اﻷكثر مشاركة",
"most_reputation": "أعلى سمعة",
"search": "بحث",
"enter_username": "أدخل اسم مستخدم للبحث",
"load_more": "حمل المزيد",
"users-found-search-took": "%1 user(s) found! Search took %2 ms."
"users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
"filter-by": "Filter By",
"online-only": "المتصلون فقط",
"picture-only": "Picture only"
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,12 @@
{
"latest_users": "Последни потребители",
"top_posters": "С най-много публикации",
"most_reputation": "С най-много репутация",
"search": "Търсене",
"enter_username": "Въведете потребителско име, което да потърсите",
"load_more": "Зареждане на още",
"users-found-search-took": "Намерени са %1 потребител(и)! Търсенето отне %2 секунди.",
"filter-by": "Филтриране",
"online-only": "Само тези на линия",
"picture-only": "Само със снимка"
}

View File

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

View File

@@ -0,0 +1,28 @@
{
"password-reset-requested": "পাসওয়ার্ড রিসেটের জন্য অনুরোধ করা হয়েছে - %1!",
"welcome-to": "%1 এ স্বাগতম",
"greeting_no_name": "স্বাগতম",
"greeting_with_name": "স্বাগতম %1",
"welcome.text1": "%1 এ নিবন্ধন করার জন্য আপনাকে ধন্যবাদ!",
"welcome.text2": "আপনার একাউন্ট এ্যাক্টিভেট করার জন্য, আপনি যে ইমেইল এড্রেস ব্যাবহার করে নিবন্ধন করেছেন তা যাচাই করতে হবে",
"welcome.cta": "আপনার ইমেইল এড্রেস নিশ্চিত করার জন্য এখানে ক্লিক করুন",
"reset.text1": "আমরা আপনার পাসওয়ার্ড রিসেট করার অনুরোধ পেয়েছি, সম্ভবত আপনি আপনার পাসওয়ার্ড ভুলে গিয়েছেন বলেই। তবে যদি তা না হয়ে থাকে, তাহলে এই মেইলকে উপেক্ষা করতে পারেন।",
"reset.text2": "পাসওয়ার্ড রিসেট করতে নিচের লিংকে ক্লিক করুন",
"reset.cta": "পাসওয়ার্ড রিসেট করতে এখানে ক্লিক করুন",
"reset.notify.subject": "Password successfully changed",
"reset.notify.text1": "We are notifying you that on %1, your password was changed successfully.",
"reset.notify.text2": "If you did not authorise this, please notify an administrator immediately.",
"digest.notifications": "%1 থেকে আনরিড নোটিফিকেশন আছে।",
"digest.latest_topics": "%1 এর সর্বশেষ টপিকসমূহ",
"digest.cta": "%1 ভিজিট করতে এখানে ক্লিক করুন",
"digest.unsub.info": "আপনার সাবস্ক্রীপশন সেটিংসের কারনে আপনাকে এই ডাইজেষ্টটি পাঠানো হয়েছে।",
"digest.no_topics": "%1 এ কোন সক্রিয় টপিক নেই।",
"notif.chat.subject": "%1 এর থেকে নতুন মেসেজ এসেছে।",
"notif.chat.cta": "কথপোকথন চালিয়ে যেতে এখানে ক্লিক করুন",
"notif.chat.unsub.info": "আপনার সাবস্ক্রীপশন সেটিংসের কারনে আপনার এই নোটিফিকেশন পাঠানো হয়েছে",
"notif.post.cta": "Click here to read the full topic",
"notif.post.unsub.info": "This post notification was sent to you due to your subscription settings.",
"test.text1": "আপনি সঠিকভাবে নোডবিবির জন্য মেইলার সেটাপ করেছেন কিনা নিশ্চিত করার জন্য এই টেষ্ট ইমেইল পাঠানো হয়েছে",
"unsub.cta": "সেটিংসগুলো পরিবর্তন করতে এখানে ক্লিক করুন",
"closing": "ধন্যবাদ!"
}

View File

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

View File

@@ -0,0 +1,81 @@
{
"home": "নীড়পাতা",
"search": "অনুসন্ধান",
"buttons.close": "বন্ধ",
"403.title": "প্রবেশাধিকার প্রত্যাখ্যাত",
"403.message": "You seem to have stumbled upon a page that you do not have access to.",
"403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
"404.title": "পাওয়া যায়নি",
"404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
"500.title": "অভ্যন্তরীণ ত্রুটি।",
"500.message": "ওহো! কিছু ভুল হয়েছে মনে হচ্ছে!",
"register": "নিবন্ধন",
"login": "প্রবেশ",
"please_log_in": "অনুগ্রহ করে প্রবেশ করুন",
"logout": "প্রস্থান",
"posting_restriction_info": "বর্তমানে নিবন্ধিত সদস্যরাই কেবল পোস্ট করতে পারেন, লগ ইন করতে এখানে ক্লিক করুন।",
"welcome_back": "আপনাকে স্বাগতম",
"you_have_successfully_logged_in": "আপনি সফলভাবে প্রবেশ করেছেন",
"save_changes": "পরিবর্তনগুলি সঞ্চয় করুন",
"close": "বন্ধ",
"pagination": "পাতা নং",
"pagination.out_of": "%2 এর মাঝে %1",
"pagination.enter_index": "সূচক লিখুন",
"header.admin": "অ্যাডমিন",
"header.recent": "সাম্প্রতিক",
"header.unread": "অপঠিত",
"header.tags": "ট্যাগ",
"header.popular": "জনপ্রিয়",
"header.users": "ব্যবহারকারীগণ",
"header.groups": "Groups",
"header.chats": "কথোপকথন",
"header.notifications": "বিজ্ঞপ্তি",
"header.search": "অনুসন্ধান",
"header.profile": "প্রোফাইল",
"notifications.loading": "বিজ্ঞপ্তিগুলি লোড হচ্ছে",
"chats.loading": "কথোপকথনগুলি লোড হচ্ছে ",
"motd.welcome": "ভবিষ্যতের আলোচনার প্লাটফর্ম, NodeBB তে স্বাগতম।",
"previouspage": "আগের পাতা",
"nextpage": "পরের পাতা",
"alert.success": "সফল",
"alert.error": "ত্রুটি",
"alert.banned": "নিষিদ্ধ",
"alert.banned.message": "আপনাকে কেবলই নিষিদ্ধ করা হয়েছে, আপনি এখন লগআউট হয়ে যাবেন।",
"alert.unfollow": "আপনি আর %1 কে অনুসরণ করছেন না!",
"alert.follow": "আপনি এখন %1 কে অনুসরণ করছেন!",
"online": "অনলাইন",
"users": "ব্যবহারকারীগণ",
"topics": "টপিক",
"posts": "পোস্টগুলি",
"views": "দেখেছেন",
"reputation": "সন্মাননা",
"read_more": "আরো পড়ুন",
"posted_ago_by_guest": "অতিথি পোস্ট করেছেন %1",
"posted_ago_by": " %1 %2 দ্বারা পোস্টকৃত",
"posted_ago": "পোস্ট করেছেন %1",
"posted_in_ago_by_guest": "%1 বিভাগে অতিথি পোস্ট করেছেন %2",
"posted_in_ago_by": "%3 %1 বিভাগে পোস্ট করেছেন %2",
"posted_in_ago": "%1 বিভাগে পোস্ট করা হয়েছে %2 আগে",
"replied_ago": "উত্তর দেয়া হয়েছে %1 ",
"user_posted_ago": "%1 পোস্ট করেছেন %2",
"guest_posted_ago": "অতিথি পোস্ট করেছেন %1",
"last_edited_by_ago": "সর্বশেষ সম্পাদনা করেছেন %1 %2",
"norecentposts": "কোনও সাম্প্রতিক পোস্ট নেই",
"norecenttopics": "কোনও সাম্প্রতিক টপিক নেই",
"recentposts": "সাম্প্রতিক পোস্ট",
"recentips": "সাম্প্রতিক প্রবেশকৃত আইপি সমুহ",
"away": "দূরে",
"dnd": "বিরক্ত করবেন না",
"invisible": "অদৃশ্য",
"offline": "অফলাইন",
"email": "ইমেইল",
"language": "ভাষা",
"guest": "অতিথি",
"guests": "অতিথি",
"updated.title": "ফোরাম আপডেট করা হয়েছে",
"updated.message": "এই ফোরামে এইমাত্র সর্বশেষ সংস্করণে আপডেট করা হয়েছে। পৃষ্ঠাটি রিফ্রেশ করতে এখানে ক্লিক করুন।",
"privacy": "নিরাপত্তা",
"follow": "Follow",
"unfollow": "Unfollow",
"delete_all": "সব মুছে ফেলুন"
}

View File

@@ -0,0 +1,36 @@
{
"groups": "গ্রুপসমূহ",
"view_group": "গ্রুপ দেখুন",
"owner": "Group Owner",
"new_group": "Create New Group",
"no_groups_found": "There are no groups to see",
"pending.accept": "Accept",
"pending.reject": "Reject",
"cover-instructions": "Drag and Drop a photo, drag to position, and hit <strong>Save</strong>",
"cover-change": "Change",
"cover-save": "Save",
"cover-saving": "Saving",
"details.title": "গ্রুপের বিস্তারিত",
"details.members": "সদস্য তালিকা",
"details.pending": "Pending Members",
"details.has_no_posts": "এই গ্রুপের সদস্যরা এখনো কোন পোষ্ট করেন নি",
"details.latest_posts": "সর্বশেষ পোষ্টসমূহ",
"details.private": "Private",
"details.grant": "Grant/Rescind Ownership",
"details.kick": "Kick",
"details.owner_options": "Group Administration",
"details.group_name": "Group Name",
"details.member_count": "Member Count",
"details.creation_date": "Creation Date",
"details.description": "Description",
"details.badge_preview": "Badge Preview",
"details.change_icon": "Change Icon",
"details.change_colour": "Change Colour",
"details.badge_text": "Badge Text",
"details.userTitleEnabled": "Show Badge",
"details.private_help": "If enabled, joining of groups requires approval from a group owner",
"details.hidden": "Hidden",
"details.hidden_help": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually",
"event.updated": "Group details have been updated",
"event.deleted": "The group \"%1\" has been deleted"
}

View File

@@ -0,0 +1,5 @@
{
"name": "বাংলা",
"code": "bn",
"dir": "ltr"
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,18 @@
{
"register": "নিবন্ধন",
"help.email": "ডিফল্টভাবে, আপনার ইমেইল সর্বসাধারণ থেকে লুকানো থাকবে।",
"help.username_restrictions": "%1 এবং %2 অক্ষরের মাঝে একটি অনন্য সদস্য নাম। বাকিরা আপনাকে @<span id='yourUsername'>নাম</span> দিয়ে উল্লেখ করতে পারবেন।",
"help.minimum_password_length": "আপনার পাসওয়ার্ড এর দৈর্ঘ্য অন্তত %1 অক্ষরের হতে হবে।",
"email_address": "ইমেইল অ্যাড্রেস",
"email_address_placeholder": "ইমেইল অ্যাড্রেস লিখুন",
"username": "ইউজারনেম",
"username_placeholder": "ইউজারনেম লিখুন",
"password": "পাসওয়ার্ড",
"password_placeholder": "পাসওয়ার্ড লিখুন",
"confirm_password": "পাসওয়ার্ড নিশ্চিত করুন",
"confirm_password_placeholder": "পাসওয়ার্ড নিশ্চিত করুন",
"register_now_button": "নিবন্ধন করুন",
"alternative_registration": "বিকল্প নিবন্ধন",
"terms_of_use": "নিয়মাবলী",
"agree_to_terms_of_use": "আমি নিয়মাবলী মেনে চলতে সম্মতি জানালাম"
}

View File

@@ -0,0 +1,17 @@
{
"reset_password": "পাসওয়ার্ড রিসেট",
"update_password": "পাসওয়ার্ড হালনাগাদ",
"password_changed.title": "পাসওয়ার্ড পরিবর্তন করা হয়েছে",
"password_changed.message": "<p>পাসওয়ার্ড সফলভাবে রিসেট করা হয়েছে, পুনরায় <a href=\"/login\">প্রবেশ<a> করুন।",
"wrong_reset_code.title": "ভুল রিসেট কোড",
"wrong_reset_code.message": "প্রাপ্ত রিসেট কোডটি ভুল ছিল। আবার চেষ্টা করুন, অথবা <a href=\"/reset\">একটি নতুন রিসেট কোড</a> অনুরোধ করুন।",
"new_password": "নতুন পাসওয়ার্ড",
"repeat_password": "পাসওয়ার্ড নিশ্চিত করুন",
"enter_email": "অনুগ্রহপূর্বক আপনার ইমেইল এড্রেস প্রদান করুন, আমরা আপনাকে আপনার পাসওয়ার্ড রিসেট সম্পর্কিত তথ্যাবলী ইমেইলে পাঠিয়ে দিবো। ",
"enter_email_address": "আপনার ইমেইল এড্রেস",
"password_reset_sent": "পাসওয়ার্ড রিসেট মেইল পাঠানো হয়েছে",
"invalid_email": "ভুল ইমেইল / ইমেইল ডেটাবেইজে নেই",
"password_too_short": "The password entered is too short, please pick a different password.",
"passwords_do_not_match": "The two passwords you've entered do not match.",
"password_expired": "Your password has expired, please choose a new password"
}

View File

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

View File

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

View File

@@ -0,0 +1,7 @@
{
"no_tag_topics": "এই ট্যাগ সম্বলিত কোন টপিক নেই",
"tags": "ট্যাগসমূহ",
"enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "ট্যাগ বসান",
"no_tags": "এখন পর্যন্ত কোন ট্যাগ নেই"
}

View File

@@ -0,0 +1,100 @@
{
"topic": "টপিক",
"topic_id": "টপিক নাম্বার ",
"topic_id_placeholder": "টপিক নাম্বার দিন ",
"no_topics_found": "কোন টপিক পাওয়া যায়নি!",
"no_posts_found": "কোন পোস্ট পাওয়া যায়নি",
"post_is_deleted": "এই পোস্টটি মুছে ফেলা হয়েছে!",
"topic_is_deleted": "This topic is deleted!",
"profile": "প্রোফাইল ",
"posted_by": "পোস্ট করেছেন %1",
"posted_by_guest": "অতিথি পোস্ট ",
"chat": "আলাপচারি",
"notify_me": "এই টপিকে নতুন উত্তর আসলে জানুন",
"quote": "উদ্ধৃতি",
"reply": "উত্তর",
"guest-login-reply": "Log in to reply",
"edit": "সম্পাদণা",
"delete": "মুছে ফেলুন",
"purge": "পার্জ",
"restore": "পুনরূদ্ধার",
"move": "সরানো",
"fork": "শাখা",
"link": "লিঙ্ক",
"share": "শেয়ার",
"tools": "টুলস",
"flag": "ফ্ল্যাগ",
"locked": "বন্ধ",
"bookmark_instructions": "আপনার সর্বশেষ অবস্থানে ফিরে যাবার জন্য এখানে ক্লিক করুন অথবা অগ্রাহ্য করতে চাইলে বন্ধ করুন",
"flag_title": "মডারেশনের জন্য এই পোস্টটি ফ্ল্যাগ করুন",
"flag_confirm": "আপনি কি নিশ্চিত যে এই পোস্টটিকে আপনি ফ্ল্যাগ করতে চান? ",
"flag_success": "এই পোস্টটি মডারেশনের জন্য ফ্ল্যাগ করা হয়েছে।",
"deleted_message": "এই টপিকটি মুছে ফেলা হয়েছে। শুধুমাত্র টপিক ব্যবস্থাপনার ক্ষমতাপ্রাপ্ত সদস্যগণ এটি দেখতে পারবেন।",
"following_topic.message": "এখন থেকে এই টপিকে অন্যকেউ পোস্ট করলে আপনি নোটিফিকেশন পাবেন।",
"not_following_topic.message": "এই টপিক থেকে আপনি আর নোটিফিকেশন পাবেন না।",
"login_to_subscribe": "এই টপিকে সাবস্ক্রাইব করতে চাইলে অনুগ্রহ করে নিবন্ধণ করুন অথবা প্রবেশ করুন।",
"markAsUnreadForAll.success": "টপিকটি সবার জন্য অপঠিত হিসাবে মার্ক করুন।",
"watch": "দেখা",
"unwatch": "অদেখা",
"watch.title": "এই টপিকে নতুন উত্তর এলে বিজ্ঞাপণের মাধ্যমে জানুন।",
"unwatch.title": "এই টপিক দেখা বন্ধ করুন",
"share_this_post": "এই পোষ্টটি শেয়ার করুন",
"thread_tools.title": "টপিক সম্পর্কিত টুলস",
"thread_tools.markAsUnreadForAll": "\"অপঠিত\" হিসেবে চিহ্নিত করুন",
"thread_tools.pin": "টপিক পিন করুন",
"thread_tools.unpin": "টপিক আনপিন করুন",
"thread_tools.lock": "টপিক বন্ধ করুন",
"thread_tools.unlock": "টপিক খুলে দিন",
"thread_tools.move": "টপিক সরান",
"thread_tools.move_all": "সমস্ত টপিক সরান",
"thread_tools.fork": "টপিক ফর্ক করুন",
"thread_tools.delete": "টপিক মুছে ফেলুন",
"thread_tools.delete_confirm": "আপনি নিশ্চিত যে আপনি এই টপিকটি মুছে ফেলতে চান?",
"thread_tools.restore": "টপিক পুনরূদ্ধার করুন",
"thread_tools.restore_confirm": "আপনি নিশ্চিত যে আপনি টপিকটি পুনরূদ্ধার করতে চান?",
"thread_tools.purge": "টপিক পার্জ করুন",
"thread_tools.purge_confirm": "আপনি নিশ্চিত যে আপনি টপিকটি পার্জ করতে চাচ্ছেন ? ",
"topic_move_success": "টপিকটি %1 এ সরিয়ে নেয়া হয়েছে",
"post_delete_confirm": "আপনি নিশ্চিত যে আপনি এই পোষ্টটি মুছে ফেলতে চান ?",
"post_restore_confirm": "আপনি নিশ্চিত যে আপনি এই পোষ্টটি পুনরূূদ্ধার করতে চান ? ",
"post_purge_confirm": "আপনি নিশ্চিত যে আপনি এই পোষ্টটি পার্জ করতে চান ? ",
"load_categories": "ক্যাটাগরী লোড করা হচ্ছে",
"disabled_categories_note": "নিস্ক্রীয় ক্যাটাগরীসমূহ ধূসর কালিতে লেখা রয়েছে। ",
"confirm_move": "সরান",
"confirm_fork": "ফর্ক",
"favourite": "পছন্দ",
"favourites": "পছন্দতালিকা",
"favourites.has_no_favourites": "আপনার যদি কোন পছন্দের পোষ্ট না থেকে থাকে তাহলে কিছু পোষ্ট ফেভারিট করা হলে সেগুলো এখানে দেখতে পাবেন।",
"loading_more_posts": "আরো পোষ্ট লোড করা হচ্ছে",
"move_topic": "টপিক সরান",
"move_topics": "টপিক সমূহ সরান",
"move_post": "পোষ্ট সরান",
"post_moved": "পোষ্ট সরানো হয়েছে",
"fork_topic": "টপিক ফর্ক করুন",
"topic_will_be_moved_to": "এই টপিকটি ক্যাটাগরীতে সরানো হবে",
"fork_topic_instruction": "যে পোষ্টটি ফর্ক করতে চান সেটি ক্লিক করুন",
"fork_no_pids": "কোন পোষ্ট সিলেক্ট করা হয় নি",
"fork_success": "টপিক ফর্ক করা হয়েছে। ফর্ক করা টপিকে যেতে এখানে ক্লিক করুন",
"composer.title_placeholder": "আপনার টপিকের শিরোনাম দিন",
"composer.handle_placeholder": "Name",
"composer.discard": "বাতিল",
"composer.submit": "সাবমিট",
"composer.replying_to": "%1 এর উত্তরে:",
"composer.new_topic": "নতুন টপিক",
"composer.uploading": "আপলোডিং",
"composer.thumb_url_label": "টপিকে থাম্বনেইল URL পেষ্ট করুন",
"composer.thumb_title": "এই টপিকে থাম্বনেইল যোগ করুন",
"composer.thumb_url_placeholder": "http://example.com/thumb.png",
"composer.thumb_file_label": "অথবা একটি ফাইল আপলোড করুন",
"composer.thumb_remove": "ফিল্ড ক্লিয়ার করুন",
"composer.drag_and_drop_images": "ছবি এখানে ড্র্যাগ করে এনে ছেড়ে দিন",
"more_users_and_guests": "%1 more user(s) and %2 guest(s)",
"more_users": "%1 more user(s)",
"more_guests": "%1 more guest(s)",
"users_and_others": "%1 and %2 others",
"sort_by": "সাজানোর ভিত্তি:",
"oldest_to_newest": "পুরাতন থেকে নতুন",
"newest_to_oldest": "নতুন থেকে পুরাতন",
"most_votes": "সর্বোচ্চ ভোট",
"most_posts": "Most posts"
}

View File

@@ -0,0 +1,9 @@
{
"title": "অপঠিত",
"no_unread_topics": "কোন অপঠিত টপিক নেই",
"load_more": "আরো লোড করুন",
"mark_as_read": "পঠিত হিসেবে চিহ্নিত করুন",
"selected": "নির্বাচিত",
"all": "সবগুলো",
"topics_marked_as_read.success": "পঠিত হিসেবে চিহ্নিত টপিকসমূহ"
}

View File

@@ -0,0 +1,84 @@
{
"banned": "নিষিদ্ধ",
"offline": "অফলাইন",
"username": "সদস্যের নাম",
"joindate": "Join Date",
"postcount": "Post Count",
"email": "ইমেইল",
"confirm_email": "ইমেইল নিশ্চিত করুন",
"delete_account": "একাউন্ট মুছে ফেলুন",
"delete_account_confirm": "আপনি কি নিশ্চিত যে আপনি আপনার একাউন্ট মুছে ফেলতে চান ? <br /><strong>এই কাজটির ফলে আপনার কোন তথ্য পুনরূদ্ধার করা সম্ভব নয় </strong><br /><br /> নিশ্চিত করতে আপনার ইউজারনেম প্রবেশ করান। ",
"fullname": "পুর্ণ নাম",
"website": "ওয়েবসাইট",
"location": "স্থান",
"age": "বয়স",
"joined": "যোগদান করেছেন",
"lastonline": "সর্বশেষ অনলাইনে ছিলেন",
"profile": "প্রোফাইল",
"profile_views": "প্রোফাইল দেখেছেন",
"reputation": "সন্মাননা",
"favourites": "পছন্দের তালিকা",
"watched": "Watched",
"followers": "যাদের অনুসরণ করছেন",
"following": "যারা আপনাকে অনুসরণ করছে",
"aboutme": "About me",
"signature": "স্বাক্ষর",
"gravatar": "গ্রাভাতার",
"birthday": "জন্মদিন",
"chat": "বার্তালাপ",
"follow": "অনুসরন করুন",
"unfollow": "অনুসরন করা থেকে বিরত থাকুন",
"more": "More",
"profile_update_success": "প্রোফাইল আপডেট সফল হয়েছে",
"change_picture": "ছবি পরিবর্তন",
"edit": "সম্পাদনা",
"uploaded_picture": "ছবি আপলোড করুন",
"upload_new_picture": "নতুন ছবি আপলোড করুন",
"upload_new_picture_from_url": "URL থেকে নতুন ছবি আপলোড করুন",
"current_password": "বর্তমান পাসওয়ার্ড",
"change_password": "পাসওয়ার্ড পরিবর্তন",
"change_password_error": "অগ্রহনযোগ্য পাসওয়ার্ড",
"change_password_error_wrong_current": "আপনার পাসওয়ার্ড সঠিক নয়",
"change_password_error_length": "পাসওয়ার্ড অতিরিক্ত ছোট",
"change_password_error_match": "পাসওয়ার্ড অবশ্যই একই হতে হবে",
"change_password_error_privileges": "আপনার পাসওয়ার্ড পরিবর্তন করার অনুমতি নেই",
"change_password_success": "আপনার পাসওয়ার্ড আপডেট করা হয়েছে",
"confirm_password": "পাসওয়ার্ড নিশ্চিত করুন",
"password": "পাসওয়ার্ড",
"username_taken_workaround": "আপনি যে ইউজারনেম চাচ্ছিলেন সেটি ইতিমধ্যে নেয়া হয়ে গেছে, কাজেই আমরা এটি কিঞ্চিং পরিবর্তন করেছি। আপনি এখন <strong>%1</strong> হিসেবে পরিচিত",
"upload_picture": "ছবি আপলোড করুন",
"upload_a_picture": "ছবি (একটি) আপলোড করুন",
"image_spec": "আপনি কেবলমাত্র PNG, JPG অথবা GIF ফাইল আপলোড করতে পারবেন",
"settings": "সেটিংস",
"show_email": "আমার ইমেইল দেখাও",
"show_fullname": "আমার সম্পূর্ণ নাম দেখাও",
"restrict_chats": "আমি যাদের ফলো করি কেবলমাত্র তাদের থেকে বার্তা গ্রহন করা হোক",
"digest_label": "ডাইজেষ্টে সাবস্ক্রাইব করুন",
"digest_description": "শিডিউল অনূযায়ী এই ফোরামের ইমেইল আপডেটের জন্য সাবস্ক্রাইব করুন (নতুন নোটিফিকেশন এবং টপিকসমূহ )",
"digest_off": "বন্ধ",
"digest_daily": "দৈনিক",
"digest_weekly": "সাপ্তাহিক",
"digest_monthly": "মাসিক",
"send_chat_notifications": "যদি আমি অনলাইনে না থাকি, সেক্ষেত্রে নতুন চ্যাট মেসেজ আসলে আমাকে ইমেইল করুন",
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
"settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "এই সদস্যের কোন ফলোয়ার নেই :(",
"follows_no_one": "এই সদস্য কাউকে ফলো করছেন না :(",
"has_no_posts": "এই সদস্য এখনো কোন পোষ্ট করেন নি",
"has_no_topics": "এই সদস্য এখনো কোন টপিক পোষ্ট করেন নি",
"has_no_watched_topics": "This user didn't watch any topics yet.",
"email_hidden": "ইমেইল গোপন রাখা হয়েছে",
"hidden": "গোপন করা হয়েছে",
"paginate_description": "Paginate topics and posts instead of using infinite scroll",
"topics_per_page": "প্রতি পেজে কতগুলো টপিক থাকবে",
"posts_per_page": "প্রতি পেইজে কতগুলো পোষ্ট থাকবে",
"notification_sounds": "Play a sound when you receive a notification",
"browsing": "Browsing সেটিংস",
"open_links_in_new_tab": "Open outgoing links in new tab",
"enable_topic_searching": "In-Topic সার্চ সক্রীয় করো",
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen",
"follow_topics_you_reply_to": "Follow topics that you reply to",
"follow_topics_you_create": "Follow topics you create",
"grouptitle": "Select the group title you would like to display",
"no-group-title": "No group title"
}

View File

@@ -0,0 +1,12 @@
{
"latest_users": "সর্বশেষ নিবন্ধিত সদস্যরা:",
"top_posters": "সর্বোচ্চ পোষ্টকারী",
"most_reputation": "সর্বোচ্চ সম্মাননাধারী",
"search": "খুঁজুন",
"enter_username": "ইউজারনেম এর ভিত্তিতে সার্চ করুন",
"load_more": "আরো লোড করুন",
"users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
"filter-by": "Filter By",
"online-only": "Online only",
"picture-only": "Picture only"
}

View File

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

View File

@@ -1,23 +1,28 @@
{
"password-reset-requested": "Password Reset Requested - %1!",
"welcome-to": "Welcome to %1",
"greeting_no_name": "Hello",
"greeting_with_name": "Hello %1",
"welcome.text1": "Thank you for registering with %1!",
"welcome.text2": "To fully activate your account, we need to verify that you own the email address you registered with.",
"welcome.cta": "Click here to confirm your email address",
"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.cta": "Click here to reset your password",
"digest.notifications": "You have unread notifications from %1:",
"digest.latest_topics": "Latest topics from %1",
"digest.cta": "Click here to visit %1",
"digest.unsub.info": "This digest was sent to you due to your subscription settings.",
"digest.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.",
"unsub.cta": "Click here to alter those settings",
"closing": "Thanks!"
"password-reset-requested": "Požadována obnova hesla - %1!",
"welcome-to": "Vítejte v %1",
"greeting_no_name": "Dobrý den",
"greeting_with_name": "Dobrý den %1",
"welcome.text1": "Děkujeme vám za registraci s %1!",
"welcome.text2": "Pro úplnou aktivaci vašeho účtu potřebujeme ověřit vaší emailovou adresu.",
"welcome.cta": "Klikněte zde pro potvrzení vaší emailové adresy",
"reset.text1": "Obdrželi jsme požadavek na obnovu hesla, pravděpodobně kvůli tomu, že jste ho zapomněli. Pokud to není tento případ, ignorujte, prosím, tento email.",
"reset.text2": "Přejete-li si pokračovat v obnově vašeho hesla, klikněte, prosím, na následující odkaz:",
"reset.cta": "Klikněte zde, chcete-li obnovit vaše heslo",
"reset.notify.subject": "Password successfully changed",
"reset.notify.text1": "We are notifying you that on %1, your password was changed successfully.",
"reset.notify.text2": "If you did not authorise this, please notify an administrator immediately.",
"digest.notifications": "Máte tu nepřečtená oznámení od %1:",
"digest.latest_topics": "Nejnovější témata od %1",
"digest.cta": "Kliknutím zde navštívíte %1",
"digest.unsub.info": "Tento výtah vám byl odeslán, protože jste si to nastavili ve vašich odběrech.",
"digest.no_topics": "Dosud tu nebyly žádné aktivní témata %1",
"notif.chat.subject": "Nová zpráva z chatu od %1",
"notif.chat.cta": "Chcete-li pokračovat v konverzaci, klikněte zde.",
"notif.chat.unsub.info": "Toto oznámení z chatu vám bylo zasláno, protože jste si to nastavili ve vašich odběrech.",
"notif.post.cta": "Click here to read the full topic",
"notif.post.unsub.info": "This post notification was sent to you due to your subscription settings.",
"test.text1": "Tento testovací email slouží k ověření, že mailer je správně nastaven. NodeBB.",
"unsub.cta": "Chcete-li změnit tyto nastavení, klikněte zde.",
"closing": "Díky!"
}

View File

@@ -1,64 +1,84 @@
{
"invalid-data": "Invalid Data",
"not-logged-in": "You don't seem to be logged in.",
"account-locked": "Your account has been locked temporarily",
"search-requires-login": "Searching requires an account! Please login or register!",
"invalid-cid": "Invalid Category ID",
"invalid-tid": "Invalid Topic ID",
"invalid-pid": "Invalid Post ID",
"invalid-uid": "Invalid User ID",
"invalid-username": "Invalid Username",
"invalid-email": "Invalid Email",
"invalid-title": "Invalid title!",
"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",
"username-taken": "Username taken",
"email-taken": "Email taken",
"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-long": "Username too long",
"user-banned": "User banned",
"user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
"no-category": "Category does not exist",
"no-topic": "Topic does not exist",
"no-post": "Post does not exist",
"no-group": "Group does not exist",
"no-user": "User does not exist",
"invalid-data": "Neplatná data",
"not-logged-in": "Zdá se, že nejste přihlášen(a)",
"account-locked": "Váš účet byl dočasně uzamčen",
"search-requires-login": "Searching requires an account - please login or register.",
"invalid-cid": "Neplatné ID kategorie",
"invalid-tid": "Neplatné ID tématu",
"invalid-pid": "Neplatné ID příspěvku",
"invalid-uid": "Neplatné ID uživatele",
"invalid-username": "Neplatné uživatelské jméno",
"invalid-email": "Neplatný email",
"invalid-title": "Neplatný titulek!",
"invalid-user-data": "Neplatná uživatelská data",
"invalid-password": "Neplatné heslo",
"invalid-username-or-password": "Stanovte, prosím, oboje, jak uživatelské jméno, tak heslo",
"invalid-search-term": "Neplatný výraz pro vyhledávání",
"invalid-pagination-value": "Neplatná hodnota pro stránkování",
"username-taken": "Uživatelské jméno je již použito",
"email-taken": "Email je již použit",
"email-not-confirmed": "Vaše emailová adresa zatím nebyla potvrzena. Kliknutím zde svůj email potvrdíte.",
"email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
"no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
"email-confirm-failed": "We could not confirm your email, please try again later.",
"confirm-email-already-sent": "Confirmation email already sent, please wait %1 minute(s) to send another one.",
"username-too-short": "Uživatelské jméno je příliš krátké",
"username-too-long": "Uživatelské jméno je příliš dlouhé",
"user-banned": "Uživatel byl zakázán",
"user-too-new": "Sorry, you are required to wait %1 second(s) before making your first post",
"no-category": "Kategorie neexistuje",
"no-topic": "Téma neexistuje",
"no-post": "Příspěvek neexistuje",
"no-group": "Skupina neexistuje",
"no-user": "Uživatel neexistuje",
"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",
"category-disabled": "Category disabled",
"topic-locked": "Topic Locked",
"still-uploading": "Please wait for uploads to complete.",
"content-too-short": "Please enter a longer post. Posts should contain 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.",
"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 - please upload a smaller file",
"cant-vote-self-post": "You cannot vote for your own post",
"no-privileges": "Na tuto akci nemáte dostatečná práva",
"no-emailers-configured": "Protože není zaveden žádný emailový plugin, není možné odeslat testovací email.",
"category-disabled": "Kategorie zakázána",
"topic-locked": "Téma uzamčeno",
"post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting",
"still-uploading": "Vyčkejte, prosím, nežli se vše kompletně nahraje.",
"content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).",
"content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).",
"title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).",
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 character(s).",
"too-many-posts": "You can only post once every %1 second(s) - please wait before posting again",
"too-many-posts-newbie": "As a new user, you can only post once every %1 second(s) until you have earned %2 reputation - please wait before posting again",
"tag-too-short": "Please enter a longer tag. Tags should contain at least %1 character(s)",
"tag-too-long": "Please enter a shorter tag. Tags can't be longer than %1 character(s)",
"file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file",
"cant-vote-self-post": "Nemůžete hlasovat pro svůj vlastní příspěvek",
"already-favourited": "You have already favourited this post",
"already-unfavourited": "You have already unfavourited this post",
"cant-ban-other-admins": "You can't ban other admins!",
"invalid-image-type": "Invalid image type",
"group-name-too-short": "Group name too short",
"group-already-exists": "Group already exists",
"group-name-change-not-allowed": "Group name change not allowed",
"post-already-deleted": "This post has already been deleted",
"post-already-restored": "This post has already been restored",
"topic-already-deleted": "This topic has already been deleted",
"topic-already-restored": "This topic has already been restored",
"cant-ban-other-admins": "Nemůžete zakazovat ostatní administrátory!",
"invalid-image-type": "Invalid image type. Allowed types are: %1",
"invalid-image-extension": "Invalid image extension",
"invalid-file-type": "Invalid file type. Allowed types are: %1",
"group-name-too-short": "Název skupiny je příliš krátký",
"group-already-exists": "Skupina už exstuje",
"group-name-change-not-allowed": "Změna názvu skupiny není povolena",
"group-already-member": "You are already part of this group",
"group-needs-owner": "This group requires at least one owner",
"post-already-deleted": "Tento příspěvek byl již vymazán",
"post-already-restored": "Tento příspěvek byl již obnoven",
"topic-already-deleted": "Toto téma bylo již vymazáno",
"topic-already-restored": "Toto téma bylo již obnoveno",
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
"invalid-file": "Invalid File",
"uploads-are-disabled": "Uploads are disabled",
"upload-error": "Upload Error : %1",
"signature-too-long": "Sorry, your signature cannot be longer than %1 characters.",
"cant-chat-with-yourself": "You can't chat with yourself!",
"reputation-system-disabled": "Reputation system is disabled.",
"invalid-file": "Neplatný soubor",
"uploads-are-disabled": "Nahrávání je zakázáno",
"signature-too-long": "Sorry, your signature cannot be longer than %1 character(s).",
"about-me-too-long": "Sorry, your about me cannot be longer than %1 character(s).",
"cant-chat-with-yourself": "Nemůžete chatovat sami se sebou!",
"chat-restricted": "This user has restricted their chat messages. They must follow you before you can chat with them",
"too-many-messages": "You have sent too many messages, please wait awhile.",
"reputation-system-disabled": "Systém reputací je zakázán.",
"downvoting-disabled": "Downvoting is disabled",
"not-enough-reputation-to-downvote": "You do not have enough reputation to downvote this post",
"not-enough-reputation-to-flag": "You do not have enough reputation to flag this post",
"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."
"reload-failed": "NodeBB encountered a problem while reloading: \"%1\". NodeBB will continue to serve the existing client-side assets, although you should undo what you did just prior to reloading.",
"registration-error": "Chyba při registraci",
"parse-error": "Something went wrong while parsing server response",
"wrong-login-type-email": "Please use your email to login",
"wrong-login-type-username": "Please use your username to login"
}

View File

@@ -3,31 +3,33 @@
"search": "Hledat",
"buttons.close": "Zavřít",
"403.title": "Přístup odepřen",
"403.message": "K této stránce nemáte přístup. Zkuste se <a href='/login'>přihlásit</a>?",
"403.message": "You seem to have stumbled upon a page that you do not have access to.",
"403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
"404.title": "Stránka nenalezena",
"404.message": "Tato stránka bohužel neexistuje. Vraťte se na <a href='/'>domovskou stránku</a>.",
"404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
"500.title": "Neznámá chyba",
"500.message": "Jejda, vypadá to, že se něco pokazilo.",
"register": "Registrovat",
"login": "Přihlásit se",
"please_log_in": "Please Log In",
"please_log_in": "Přihlašte se, prosím",
"logout": "Odhlásit se",
"posting_restriction_info": "Posting is currently restricted to registered members only, click here to log in.",
"welcome_back": "Welcome Back",
"you_have_successfully_logged_in": "You have successfully logged in",
"posting_restriction_info": "V současné době je zasílání příspěvků povoleno pouze registrovaným členům, klikněte zde a přihlašte se.",
"welcome_back": "Vítejte zpět",
"you_have_successfully_logged_in": "Vaše přihlášení proběhlo úspěšně",
"save_changes": "Uložit změny",
"close": "Zrušit",
"pagination": "Pagination",
"pagination.out_of": "%1 out of %2",
"pagination": "Stránkování",
"pagination.out_of": "%1 z %2",
"pagination.enter_index": "Enter index",
"header.admin": "Administrace",
"header.recent": "Aktuality",
"header.unread": "Nepřečtené",
"header.tags": "Tags",
"header.tags": "Tagy",
"header.popular": "Populární",
"header.users": "Uživatelé",
"header.groups": "Groups",
"header.chats": "Chats",
"header.notifications": "Notifications",
"header.notifications": "Oznámení",
"header.search": "Hledat",
"header.profile": "Můj profil",
"notifications.loading": "Načítání upozornění",
@@ -36,14 +38,14 @@
"previouspage": "Předchozí stránka",
"nextpage": "Další stránka",
"alert.success": "Success",
"alert.error": "Error",
"alert.error": "Chyba",
"alert.banned": "Banned",
"alert.banned.message": "You have just been banned, you will now be logged out.",
"alert.unfollow": "You are no longer following %1!",
"alert.follow": "You are now following %1!",
"online": "Online",
"users": "Users",
"topics": "Topics",
"users": "Uživatelé",
"topics": "Témata",
"posts": "Příspěvky",
"views": "Zobrazení",
"reputation": "Reputation",
@@ -58,8 +60,8 @@
"user_posted_ago": "%1 posted %2",
"guest_posted_ago": "Guest posted %1",
"last_edited_by_ago": "last edited by %1 %2",
"norecentposts": "No Recent Posts",
"norecenttopics": "No Recent Topics",
"norecentposts": "Žádné nedávné příspěvky",
"norecenttopics": "Žádné nedávné témata",
"recentposts": "Nedávné příspěvky",
"recentips": "Recently Logged In IPs",
"away": "Pryč",
@@ -67,10 +69,13 @@
"invisible": "Neviditelný",
"offline": "Offline",
"email": "Email",
"language": "Language",
"guest": "Guest",
"guests": "Guests",
"updated.title": "Forum Updated",
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page.",
"privacy": "Privacy"
"language": "Jazyk",
"guest": "Host",
"guests": "Hosté",
"updated.title": "Fórum zaktualizováno",
"updated.message": "Toto fórum bylo právě aktualizováno na poslední verzi. Klikněte zde a obnovte tuto stránku.",
"privacy": "Privacy",
"follow": "Follow",
"unfollow": "Unfollow",
"delete_all": "Vymazat vše"
}

View File

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

View File

@@ -1,9 +1,11 @@
{
"username": "Username / Email",
"username-email": "Username / Email",
"username": "Username",
"email": "Email",
"remember_me": "Zapamatovat si mě?",
"forgot_password": "Zapomněli jste heslo?",
"alternative_logins": "Další způsoby přihlášení",
"failed_login_attempt": "Přihlášení se nezdařilo, zkuste to prosím znovu.",
"login_successful": "Přihlášení proběhlo úspěšně!",
"dont_have_account": "Don't have an account?"
"dont_have_account": "Nemáte účet?"
}

View File

@@ -1,22 +1,26 @@
{
"chat.chatting_with": "Chat s <span id=\"chat-with-name\"></span>",
"chat.placeholder": "Type chat message here, press enter to send",
"chat.placeholder": "Zprávu do chatu napište zde, pro odeslání stiskněte enter",
"chat.send": "Odeslat",
"chat.no_active": "Nemáte žádné aktivní konverzace.",
"chat.user_typing": "%1 is typing ...",
"chat.user_typing": "%1 píše ...",
"chat.user_has_messaged_you": "%1 has messaged you.",
"chat.see_all": "See all Chats",
"chat.no-messages": "Please select a recipient to view chat message history",
"chat.recent-chats": "Recent Chats",
"chat.contacts": "Contacts",
"chat.message-history": "Message History",
"chat.contacts": "Kontakty",
"chat.message-history": "Historie zpráv",
"chat.pop-out": "Pop out chat",
"chat.maximize": "Maximize",
"chat.yesterday": "Yesterday",
"chat.seven_days": "7 Days",
"chat.thirty_days": "30 Days",
"chat.three_months": "3 Months",
"chat.maximize": "Maximalizovat",
"chat.seven_days": "7 dní",
"chat.thirty_days": "30 dní",
"chat.three_months": "3 měsíce",
"composer.compose": "Compose",
"composer.show_preview": "Show Preview",
"composer.hide_preview": "Hide Preview",
"composer.user_said_in": "%1 said in %2:",
"composer.user_said": "%1 said:",
"composer.discard": "Are you sure you wish to discard this post?"
"composer.discard": "Are you sure you wish to discard this post?",
"composer.submit_and_lock": "Submit and Lock",
"composer.toggle_dropdown": "Toggle Dropdown"
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
{
"no_tag_topics": "There are no topics with this tag.",
"tags": "Tags",
"enter_tags_here": "Enter tags here. Press enter after each tag.",
"enter_tags_here_short": "Enter tags...",
"no_tags": "There are no tags yet."
"no_tag_topics": "Není zde žádné téma s tímto tagem.",
"tags": "Tagy",
"enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "Vložte tagy ...",
"no_tags": "Zatím tu není žádný tag."
}

View File

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

View File

@@ -1,9 +1,9 @@
{
"title": "Unread",
"title": "Nepřečtené",
"no_unread_topics": "Nejsou zde žádné nepřečtené témata.",
"load_more": "Načíst další",
"mark_as_read": "Mark as Read",
"selected": "Selected",
"all": "All",
"topics_marked_as_read.success": "Topics marked as read!"
"mark_as_read": "Označit jako přeštené",
"selected": "Vybrané",
"all": "Vše",
"topics_marked_as_read.success": "Téma bylo označeno jako přečtené!"
}

View File

@@ -2,9 +2,11 @@
"banned": "Banned",
"offline": "Offline",
"username": "Uživatelské jméno",
"joindate": "Join Date",
"postcount": "Post Count",
"email": "Email",
"confirm_email": "Confirm Email",
"delete_account": "Delete Account",
"confirm_email": "Potvrdit email",
"delete_account": "Vymazat účet",
"delete_account_confirm": "Are you sure you want to delete your account? <br /><strong>This action is irreversible and you will not be able to recover any of your data</strong><br /><br />Enter your username to confirm that you wish to destroy this account.",
"fullname": "Jméno a příjmení",
"website": "Webové stránky",
@@ -12,27 +14,30 @@
"age": "Věk",
"joined": "Registrován",
"lastonline": "Naposledy online",
"profile": "Profile",
"profile": "Profil",
"profile_views": "Zobrazení profilu",
"reputation": "Reputace",
"favourites": "Oblíbené",
"watched": "Watched",
"followers": "Sledují ho",
"following": "Sleduje",
"aboutme": "About me",
"signature": "Podpis",
"gravatar": "Gravatar",
"birthday": "Datum narození",
"chat": "Chat",
"follow": "Follow",
"unfollow": "Unfollow",
"profile_update_success": "Profile has been updated successfully!",
"more": "More",
"profile_update_success": "Profil byl úspěšně aktualizován!",
"change_picture": "Změnit obrázek",
"edit": "Upravit",
"uploaded_picture": "Nahraný obrázek",
"upload_new_picture": "Nahrát nový obrázek",
"upload_new_picture_from_url": "Upload New Picture From URL",
"current_password": "Current Password",
"current_password": "Současné heslo",
"change_password": "Změnit heslo",
"change_password_error": "Invalid Password!",
"change_password_error": "Neplatné heslo",
"change_password_error_wrong_current": "Your current password is not correct!",
"change_password_error_length": "Password too short!",
"change_password_error_match": "Passwords must match!",
@@ -44,10 +49,10 @@
"upload_picture": "Nahrát obrázek",
"upload_a_picture": "Nahrát obrázek",
"image_spec": "You may only upload PNG, JPG, or GIF files",
"max": "max.",
"settings": "Nastavení",
"show_email": "Zobrazovat můj email v profilu",
"show_fullname": "Show My Full Name",
"restrict_chats": "Only allow chat messages from users I follow",
"digest_label": "Subscribe to Digest",
"digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule",
"digest_off": "Off",
@@ -55,18 +60,25 @@
"digest_weekly": "Weekly",
"digest_monthly": "Monthly",
"send_chat_notifications": "Send an email if a new chat message arrives and I am not online",
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
"settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
"has_no_follower": "Tohoto uživatele nikdo nesleduje :(",
"follows_no_one": "Tento uživatel nikoho nesleduje :(",
"has_no_posts": "This user didn't post anything yet.",
"has_no_topics": "This user didn't post any topics yet.",
"has_no_watched_topics": "This user didn't watch any topics yet.",
"email_hidden": "Skrytý email",
"hidden": "skrytý",
"paginate_description": "Paginate topics and posts instead of using infinite scroll.",
"paginate_description": "Paginate topics and posts instead of using infinite scroll",
"topics_per_page": "Topics per Page",
"posts_per_page": "Posts per Page",
"notification_sounds": "Play a sound when you receive a notification.",
"notification_sounds": "Play a sound when you receive a notification",
"browsing": "Browsing Settings",
"open_links_in_new_tab": "Open outgoing links in new tab?",
"follow_topics_you_reply_to": "Follow topics that you reply to.",
"follow_topics_you_create": "Follow topics you create."
"open_links_in_new_tab": "Open outgoing links in new tab",
"enable_topic_searching": "Enable In-Topic Searching",
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen",
"follow_topics_you_reply_to": "Follow topics that you reply to",
"follow_topics_you_create": "Follow topics you create",
"grouptitle": "Select the group title you would like to display",
"no-group-title": "No group title"
}

View File

@@ -5,5 +5,8 @@
"search": "Vyhledávat",
"enter_username": "Zadej uživatelské jméno k hledání",
"load_more": "Načíst další",
"users-found-search-took": "%1 user(s) found! Search took %2 ms."
"users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
"filter-by": "Filter By",
"online-only": "Online only",
"picture-only": "Picture only"
}

View File

@@ -1,8 +1,12 @@
{
"new_topic_button": "Neues Thema",
"no_topics": "<strong>Es gibt noch keine Themen in dieser Kategorie.</strong><br />Warum beginnst du nicht das erste?",
"guest-login-post": "Anmelden um einen Beitrag zu erstellen",
"no_topics": "<strong>Es gibt noch keine Themen in dieser Kategorie.</strong><br />Warum beginnst du nicht eins?",
"browsing": "Aktiv",
"no_replies": "Niemand hat geantwortet",
"share_this_category": "Teile diese Kategorie",
"ignore": "Ignorieren"
"watch": "Beobachten",
"ignore": "Ignorieren",
"watch.message": "Du beobachtest jetzt Änderungen in dieser Kategorie",
"ignore.message": "Du ignorierst jetzt Änderungen in dieser Kategorie"
}

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