2
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2025-09-05 08:59:27 +08:00

Merge remote-tracking branch 'upstream/master' into update-locale-vietnamese

* upstream/master: (185 commits)
  SECURITY: Upgrade rails.
  FIX: new user summary page was broken
  Version bump to v1.5.0.beta9
  Remove addressable from Discourse.
  UX: change glyph when inviting existing user to a topic
  FIX: Allow for large free disk space
  Revert "FIX: disk_space should be a BigDecimal to handle large disk (closes #3923)"
  UX: improve styling of messages and mobile view of messages
  FIX: correct counts on user summary
  FIX: link to filtered down list of badges from summary FEATURE: pick featured badges in summary page
  FIX: do not allow new email to be duplicate FIX: return proper error message when email already exists
  retain unactivated accounts a bit longer default
  FEATURE: blocked users can send and reply to private messages from staff
  Remove Arel patch that has been merged upstream.
  correct path
  little typo
  FIX: Missing tag in CSS.
  PERF: remove 10-20ms of work from every page view
  FIX: remove green background for wiki (this can be re-added via a customization if needed)
  Hotfix for unsubscribe via email
  ...

# Conflicts:
#	.tx/config
This commit is contained in:
Khoa, Le Ngoc 2016-01-26 12:44:29 +07:00
commit 06e637fc4a
438 changed files with 16120 additions and 10710 deletions

View file

@ -20,7 +20,7 @@
<h1>403</h1>
<p>해당 내용을 보실 수 없습니다.</p>
<p>Discourse 403 오류 페이지로 대체됩니다.</p>
<p>Discourse 자체 403 오류 페이지로 대체됩니다.</p>
</div>
</body>
</html>

26
public/403.sk.html Normal file
View file

@ -0,0 +1,26 @@
<html>
<head>
<title>Na toto nemáte oprávnenie (403)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
div.dialog {
width: 25em;
padding: 0 4em;
margin: 4em auto 0 auto;
border: 1px solid #ccc;
border-right-color: #999;
border-bottom-color: #999;
}
h1 { font-size: 400%; color: #f00; line-height: 1em; }
</style>
</head>
<body>
<div class="dialog">
<h1>403</h1>
<p>Nemáte oprávnenie na zobrazenie týchto údajov!</p>
<p>Toto bude nahradené vlastnou Discourse 403 stránkou.</p>
</div>
</body>
</html>

25
public/422.sk.html Normal file
View file

@ -0,0 +1,25 @@
<html>
<head>
<title>Požadovaná zmena bola zamietnutá (422)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
div.dialog {
width: 25em;
padding: 0 4em;
margin: 4em auto 0 auto;
border: 1px solid #ccc;
border-right-color: #999;
border-bottom-color: #999;
}
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
</style>
</head>
<body>
<!-- This file lives in public/422.html -->
<div class="dialog">
<h1>Požadovaná zmena bola zamietnutá.</h1>
<p>Možno ste skúšali zmeniť niečo k čomu nemáte prístup.</p>
</div>
</body>
</html>

12
public/500.sk.html Normal file
View file

@ -0,0 +1,12 @@
<html>
<head>
<title>Oops - Chyba 500</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<h1>Oops</h1>
<p>V softvéri poháňajúcom toto diskusné fórum došlo k neočakávanej chybe. Ospravedlňujeme sa za spôsobené nepríjemnosti.</p>
<p>Podrobnosti o chybe boli zaznamenané a vygenerovalo sa automatické upozornenie. Pozrieme sa na to.</p>
<p>Nie je potrebná žiadna ďalšia akcia. Ak však chyba pretrváva, môžete poskytnúť dodatočné informácie, vrátane krokov vedúcich k navodeniu chyby založením diskusnej témy v <a href="/category/meta">meta kategórií</a>.</p>
</body>
</html>

11
public/503.sk.html Normal file
View file

@ -0,0 +1,11 @@
<html>
<head>
<title>Na stránke sa práve vykonáva údržba.</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<h1>Stránka je momentálne nedostupná z dôvodu plánovanej údržby</h1>
<p>Skúste prosím znova <span id="when-to-check-back">o niekoľko minút</span>.</p>
<p id="apology">Ospravedlňujeme sa za spôsobené nepríjemnosti.</p>
</body>
</html>

View file

@ -202,6 +202,9 @@
// first day of week (0: Sunday, 1: Monday etc)
firstDay: 0,
// the default flag for moment's strict date parsing
formatStrict: false,
// the minimum/earliest date that can be selected
minDate: null,
// the maximum/latest date that can be selected
@ -230,6 +233,9 @@
// Render the month after year in the calendar title
showMonthAfterYear: false,
// Render days of the calendar grid that fall in the next or previous month
showDaysInNextAndPreviousMonths: false,
// how many months are visible
numberOfMonths: 1,
@ -274,10 +280,14 @@
renderDay = function(opts)
{
if (opts.isEmpty) {
return '<td class="is-empty"></td>';
}
var arr = [];
if (opts.isEmpty) {
if (opts.showDaysInNextAndPreviousMonths) {
arr.push('is-outside-current-month');
} else {
return '<td class="is-empty"></td>';
}
}
if (opts.isDisabled) {
arr.push('is-disabled');
}
@ -417,7 +427,7 @@
return;
}
if (!hasClass(target.parentNode, 'is-disabled')) {
if (!hasClass(target, 'is-disabled')) {
if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty')) {
self.setDate(new Date(target.getAttribute('data-pika-year'), target.getAttribute('data-pika-month'), target.getAttribute('data-pika-day')));
if (opts.bound) {
@ -472,7 +482,7 @@
return;
}
if (hasMoment) {
date = moment(opts.field.value, opts.format);
date = moment(opts.field.value, opts.format, opts.formatStrict);
date = (date && date.isValid()) ? date.toDate() : null;
}
else {
@ -638,9 +648,7 @@
this.setMinDate(opts.minDate);
}
if (opts.maxDate) {
setToStartOfDay(opts.maxDate);
opts.maxYear = opts.maxDate.getFullYear();
opts.maxMonth = opts.maxDate.getMonth();
this.setMaxDate(opts.maxDate);
}
if (isArray(opts.yearRange)) {
@ -828,6 +836,7 @@
this._o.minDate = value;
this._o.minYear = value.getFullYear();
this._o.minMonth = value.getMonth();
this.draw();
},
/**
@ -835,7 +844,11 @@
*/
setMaxDate: function(value)
{
setToStartOfDay(value);
this._o.maxDate = value;
this._o.maxYear = value.getFullYear();
this._o.maxMonth = value.getMonth();
this.draw();
},
setStartRange: function(value)
@ -967,6 +980,11 @@
before += 7;
}
}
var previousMonth = month === 0 ? 11 : month - 1,
nextMonth = month === 11 ? 0 : month + 1,
yearOfPreviousMonth = month === 0 ? year - 1 : year,
yearOfNextMonth = month === 11 ? year + 1 : year,
daysInPreviousMonth = getDaysInMonth(yearOfPreviousMonth, previousMonth);
var cells = days + before,
after = cells;
while(after > 7) {
@ -979,24 +997,41 @@
isSelected = isDate(this._d) ? compareDates(day, this._d) : false,
isToday = compareDates(day, now),
isEmpty = i < before || i >= (days + before),
dayNumber = 1 + (i - before),
monthNumber = month,
yearNumber = year,
isStartRange = opts.startRange && compareDates(opts.startRange, day),
isEndRange = opts.endRange && compareDates(opts.endRange, day),
isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange,
isDisabled = (opts.minDate && day < opts.minDate) ||
(opts.maxDate && day > opts.maxDate) ||
(opts.disableWeekends && isWeekend(day)) ||
(opts.disableDayFn && opts.disableDayFn(day)),
dayConfig = {
day: 1 + (i - before),
month: month,
year: year,
(opts.disableDayFn && opts.disableDayFn(day));
if (isEmpty) {
if (i < before) {
dayNumber = daysInPreviousMonth + dayNumber;
monthNumber = previousMonth;
yearNumber = yearOfPreviousMonth;
} else {
dayNumber = dayNumber - days;
monthNumber = nextMonth;
yearNumber = yearOfNextMonth;
}
}
var dayConfig = {
day: dayNumber,
month: monthNumber,
year: yearNumber,
isSelected: isSelected,
isToday: isToday,
isDisabled: isDisabled,
isEmpty: isEmpty,
isStartRange: isStartRange,
isEndRange: isEndRange,
isInRange: isInRange
isInRange: isInRange,
showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths
};
row.push(renderDay(dayConfig));