Merge branch 'master' into develop

v1.18.x
Julian Lam 8 years ago
commit a17c26ea45

@ -2,6 +2,6 @@
"alert.confirm-reload": "Bist du sicher, dass du NodeBB neu laden möchtest?", "alert.confirm-reload": "Bist du sicher, dass du NodeBB neu laden möchtest?",
"alert.confirm-restart": "Bist du sicher, dass du NodeBB neu starten möchtest?", "alert.confirm-restart": "Bist du sicher, dass du NodeBB neu starten möchtest?",
"acp-title": "%1 | NodeBB Admin Control Panel", "acp-title": "%1 | NodeBB Admin Systemsteuerung",
"settings-header-contents": "Inhalte" "settings-header-contents": "Inhalte"
} }

@ -14,9 +14,9 @@
"mongo.storage-size": "Speichergröße", "mongo.storage-size": "Speichergröße",
"mongo.index-size": "Indexgröße", "mongo.index-size": "Indexgröße",
"mongo.file-size": "Dateigröße", "mongo.file-size": "Dateigröße",
"mongo.resident-memory": "Resident Memory", "mongo.resident-memory": "Permanenter Speicher",
"mongo.virtual-memory": "virtueller Speicher", "mongo.virtual-memory": "virtueller Speicher",
"mongo.mapped-memory": "Mapped Memory", "mongo.mapped-memory": "Zugeordneter Speicher",
"mongo.raw-info": "MongoDB Rohinfo", "mongo.raw-info": "MongoDB Rohinfo",
"redis": "Redis", "redis": "Redis",

@ -8,7 +8,7 @@
"clear-error-log": "Clear Error Log", "clear-error-log": "Clear Error Log",
"route": "Route", "route": "Route",
"count": "Count", "count": "Count",
"no-routes-not-found": "Hooray! There are no routes that were not found.", "no-routes-not-found": "Hooray! No 404 errors!",
"clear404-confirm": "Are you sure you wish to clear the 404 error logs?", "clear404-confirm": "Are you sure you wish to clear the 404 error logs?",
"clear404-success": "\"404 Not Found\" errors cleared" "clear404-success": "\"404 Not Found\" errors cleared"
} }

@ -19,9 +19,9 @@
"user_flagged_post_in": "<strong>%1</strong> је означио поруку у <strong>%2</strong>", "user_flagged_post_in": "<strong>%1</strong> је означио поруку у <strong>%2</strong>",
"user_flagged_post_in_dual": "<strong>%1</strong> и <strong>%2</strong> су означили поруку у <strong>%3</strong>", "user_flagged_post_in_dual": "<strong>%1</strong> и <strong>%2</strong> су означили поруку у <strong>%3</strong>",
"user_flagged_post_in_multiple": "<strong>%1</strong> и осталих %2 су означили поруку у <strong>%3</strong>", "user_flagged_post_in_multiple": "<strong>%1</strong> и осталих %2 су означили поруку у <strong>%3</strong>",
"user_flagged_user": "<strong>%1</strong> flagged a user profile (%2)", "user_flagged_user": "<strong>%1</strong> је означио кориснички профил (%2)",
"user_flagged_user_dual": "<strong>%1</strong> and <strong>%2</strong> flagged a user profile (%3)", "user_flagged_user_dual": "<strong>%1</strong> и <strong>%2</strong> су означили кориснички профил (%3)",
"user_flagged_user_multiple": "<strong>%1</strong> and %2 others flagged a user profile (%3)", "user_flagged_user_multiple": "<strong>%1</strong> и %2 осталих су означили кориснички профил (%3)",
"user_posted_to": "<strong>%1</strong> је послао нови одговор на: <strong>%2</strong>", "user_posted_to": "<strong>%1</strong> је послао нови одговор на: <strong>%2</strong>",
"user_posted_to_dual": "<strong>%1</strong> и <strong>%2</strong> су одговорили на: <strong>%3</strong>", "user_posted_to_dual": "<strong>%1</strong> и <strong>%2</strong> су одговорили на: <strong>%3</strong>",
"user_posted_to_multiple": "<strong>%1</strong> и %2 других су одговорили на: <strong>%3</strong>", "user_posted_to_multiple": "<strong>%1</strong> и %2 других су одговорили на: <strong>%3</strong>",

@ -33,7 +33,7 @@
"chat": "Ђаскање", "chat": "Ђаскање",
"chat_with": "Настави ћаскање са %1", "chat_with": "Настави ћаскање са %1",
"new_chat_with": "Започни ново ћаскање са %1", "new_chat_with": "Започни ново ћаскање са %1",
"flag-profile": "Flag Profile", "flag-profile": "Означи профил",
"follow": "Прати", "follow": "Прати",
"unfollow": "Не прати", "unfollow": "Не прати",
"more": "Више", "more": "Више",
@ -65,8 +65,8 @@
"remove_uploaded_picture": "Уклоните отпремљену слику", "remove_uploaded_picture": "Уклоните отпремљену слику",
"upload_cover_picture": "Отпреми насловну слику", "upload_cover_picture": "Отпреми насловну слику",
"remove_cover_picture_confirm": "Да ли сте сигурни да желите да уклоните насловну слику?", "remove_cover_picture_confirm": "Да ли сте сигурни да желите да уклоните насловну слику?",
"crop_picture": "Crop picture", "crop_picture": "Изрежи слику",
"upload_cropped_picture": "Crop and upload", "upload_cropped_picture": "Изрежи и опреми",
"settings": "Подешавања", "settings": "Подешавања",
"show_email": "Прикажи моју лозинку", "show_email": "Прикажи моју лозинку",
"show_fullname": "Прикажи моје пуно име", "show_fullname": "Прикажи моје пуно име",

@ -1,20 +1,20 @@
{ {
"forum-traffic": "Forum Trafiği", "forum-traffic": "Forum Trafiği",
"page-views": "Sayfa Gösterimi", "page-views": "Sayfa Gösterimi",
"unique-visitors": "Unique Visitors", "unique-visitors": "Tekil ziyaretçi",
"users": "Users", "users": "Kullanıcılar",
"posts": "Posts", "posts": "İletiler",
"topics": "Topics", "topics": "Başlıklar",
"page-views-last-month": "Page views Last Month", "page-views-last-month": "Geçen ay sayfa görüntüleme",
"page-views-this-month": "Page views This Month", "page-views-this-month": "Bu ay sayfa görüntüleme",
"page-views-last-day": "Page views in last 24 hours", "page-views-last-day": "Son 24 saatteki sayfa görüntüleme",
"stats.day": "Day", "stats.day": "Gün",
"stats.week": "Hafta", "stats.week": "Hafta",
"stats.month": "Month", "stats.month": "Ay",
"stats.all": "All Time", "stats.all": "Tüm Zamanlar",
"updates": "Updates", "updates": "Güncellemeler",
"running-version": "You are running <strong>NodeBB v<span id=\"version\">%1</span></strong>.", "running-version": "You are running <strong>NodeBB v<span id=\"version\">%1</span></strong>.",
"keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.",
"up-to-date": "<p>You are <strong>up-to-date</strong> <i class=\"fa fa-check\"></i></p>", "up-to-date": "<p>You are <strong>up-to-date</strong> <i class=\"fa fa-check\"></i></p>",
@ -33,7 +33,7 @@
"reload": "Reload", "reload": "Reload",
"restart": "Restart", "restart": "Restart",
"restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.",
"maintenance-mode": "Maintenance Mode", "maintenance-mode": "Bakım Modu",
"maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB",
"realtime-chart-updates": "Realtime Chart Updates", "realtime-chart-updates": "Realtime Chart Updates",

@ -33,7 +33,7 @@
"chat": "Sohbet", "chat": "Sohbet",
"chat_with": "%1 ile sohbete devam et", "chat_with": "%1 ile sohbete devam et",
"new_chat_with": "%1 ile yeni sohbete başla", "new_chat_with": "%1 ile yeni sohbete başla",
"flag-profile": "Flag Profile", "flag-profile": "Bayrak Profili",
"follow": "Takip Et", "follow": "Takip Et",
"unfollow": "Takip etme", "unfollow": "Takip etme",
"more": "Daha Fazla", "more": "Daha Fazla",
@ -65,8 +65,8 @@
"remove_uploaded_picture": "Yüklenmiş fotoğrafı kaldır", "remove_uploaded_picture": "Yüklenmiş fotoğrafı kaldır",
"upload_cover_picture": "Kapak fotoğrafı yükle", "upload_cover_picture": "Kapak fotoğrafı yükle",
"remove_cover_picture_confirm": "Kapak görselini silmek istediğinden emin misin?", "remove_cover_picture_confirm": "Kapak görselini silmek istediğinden emin misin?",
"crop_picture": "Crop picture", "crop_picture": "Görsel Kırp",
"upload_cropped_picture": "Crop and upload", "upload_cropped_picture": "Kırp ve yükle",
"settings": "Ayarlar", "settings": "Ayarlar",
"show_email": "E-postamı göster", "show_email": "E-postamı göster",
"show_fullname": "Tam ismimi göster", "show_fullname": "Tam ismimi göster",

@ -2,14 +2,19 @@
display: none; display: none;
} }
@media (max-width: 1200px) {
}
@media (max-width: 991px) { @media (max-width: 991px) {
body { body {
height: 100%; height: 100%;
} }
#panel {
background-color: inherit;
min-height: 100%;
}
body, #panel, .slideout-menu {
-webkit-overflow-scrolling: touch;
}
.header { .header {
height: 58px; height: 58px;

@ -350,11 +350,11 @@ var privileges = require('./privileges');
Categories.filterIgnoringUids = function (cid, uids, callback) { Categories.filterIgnoringUids = function (cid, uids, callback) {
async.waterfall([ async.waterfall([
function (next) { function (next) {
db.sortedSetScores('cid:' + cid + ':ignorers', uids, next); db.isSortedSetMembers('cid:' + cid + ':ignorers', uids, next);
}, },
function (scores, next) { function (isIgnoring, next) {
var readingUids = uids.filter(function (uid, index) { var readingUids = uids.filter(function (uid, index) {
return uid && !!scores[index]; return uid && !isIgnoring[index];
}); });
next(null, readingUids); next(null, readingUids);
} }

@ -153,9 +153,9 @@ module.exports = function (Topics) {
function (next) { function (next) {
db.isSetMembers('tid:' + tid + ':ignorers', uids, next); db.isSetMembers('tid:' + tid + ':ignorers', uids, next);
}, },
function (isMembers, next) { function (isIgnoring, next) {
var readingUids = uids.filter(function (uid, index) { var readingUids = uids.filter(function (uid, index) {
return uid && isMembers[index]; return uid && !isIgnoring[index];
}); });
next(null, readingUids); next(null, readingUids);
} }

@ -1197,8 +1197,65 @@ describe('Topic\'s', function () {
}); });
}); });
}); });
});
describe('follow/unfollow', function () {
var socketTopics = require('../src/socket.io/topics');
var tid;
var followerUid;
before(function (done) {
User.create({username: 'follower'}, function (err, uid) {
if (err) {
return done(err);
}
followerUid = uid;
topics.post({uid: adminUid, title: 'topic title', content: 'some content', cid: topic.categoryId}, function (err, result) {
if (err) {
return done(err);
}
tid = result.topicData.tid;
done();
});
});
});
it('should filter ignoring uids', function (done) {
socketTopics.changeWatching({uid: followerUid}, {tid: tid, type: 'ignore'}, function (err) {
assert.ifError(err);
topics.filterIgnoringUids(tid, [adminUid, followerUid], function (err, uids) {
assert.ifError(err);
assert.equal(uids.length, 1);
assert.equal(uids[0], adminUid);
done();
});
});
});
it('should error with invalid data', function (done) {
socketTopics.changeWatching({uid: followerUid}, {}, function (err) {
assert.equal(err.message, '[[error:invalid-data]]');
done();
});
});
it('should error with invalid type', function (done) {
socketTopics.changeWatching({uid: followerUid}, {tid: tid, type: 'derp'}, function (err) {
assert.equal(err.message, '[[error:invalid-command]]');
done();
});
});
it('should follow topic', function (done) {
topics.toggleFollow(tid, followerUid, function (err, isFollowing) {
assert.ifError(err);
assert(isFollowing);
topics.isFollowing([tid], followerUid, function (err, isFollowing) {
assert.ifError(err);
assert(isFollowing);
done();
});
});
});
}); });

Loading…
Cancel
Save