Skip to content

Commit b35a3eb

Browse files
authored
Merge pull request #6 from mikecao/master
Bump version
2 parents d9f2a69 + 8c869da commit b35a3eb

File tree

10 files changed

+121
-10
lines changed

10 files changed

+121
-10
lines changed

components/metrics/BarChart.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ export default function BarChart({
175175
options.scales.xAxes[0].ticks.callback = renderXLabel;
176176
options.scales.xAxes[0].ticks.fontColor = colors.text;
177177
options.scales.yAxes[0].ticks.fontColor = colors.text;
178+
options.scales.yAxes[0].ticks.precision = 0;
178179
options.scales.yAxes[0].gridLines.color = colors.line;
179180
options.scales.yAxes[0].gridLines.zeroLineColor = colors.zeroLine;
180181
options.animation.duration = animationDuration;

components/metrics/DataTable.module.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
display: flex;
55
flex-direction: column;
66
flex: 1;
7+
overflow: hidden;
78
}
89

910
.body {

components/metrics/MetricsBar.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ export default function MetricsBar({ websiteId, className }) {
4141
}
4242

4343
const { pageviews, uniques, bounces, totaltime } = data || {};
44+
const num = Math.min(uniques, bounces);
4445

4546
return (
4647
<div className={classNames(styles.bar, className)} onClick={handleSetFormat}>
@@ -60,7 +61,7 @@ export default function MetricsBar({ websiteId, className }) {
6061
/>
6162
<MetricCard
6263
label={<FormattedMessage id="metrics.bounce-rate" defaultMessage="Bounce rate" />}
63-
value={uniques ? (bounces / uniques) * 100 : 0}
64+
value={uniques ? (num / uniques) * 100 : 0}
6465
format={n => Number(n).toFixed(0) + '%'}
6566
/>
6667
<MetricCard

components/metrics/RealtimeViews.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ export default function RealtimeViews({ websiteId, data, websites }) {
1313
const [filter, setFilter] = useState(FILTER_REFERRERS);
1414
const domains = useMemo(() => websites.map(({ domain }) => domain), [websites]);
1515
const getDomain = useCallback(
16-
id => websites.find(({ website_id }) => website_id === id)?.domain,
16+
id =>
17+
websites.length === 1
18+
? websites[0]?.domain
19+
: websites.find(({ website_id }) => website_id === id)?.domain,
1720
[websites],
1821
);
1922

lang/ta-IN.json

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
{
2+
"label.accounts": "கணக்குகள்",
3+
"label.add-account": "கணக்கு சேர்க்க",
4+
"label.add-website": "வலைத்தளத்தைச் சேர்க்க",
5+
"label.administrator": "நிர்வாகியைச் சேர்க்க",
6+
"label.all": "எல்லாம்",
7+
"label.all-websites": "அனைத்து வலைத்தளங்களும்",
8+
"label.back": "பின்னால்",
9+
"label.cancel": "ரத்துசெய்",
10+
"label.change-password": "கடவுச்சொல்லை மாற்று",
11+
"label.confirm-password": "கடவுச்சொல்லை உறுதிப்படுத்தவும்",
12+
"label.copy-to-clipboard": "கிளிப்போர்டுக்கு நகலெடுக்கவும்",
13+
"label.current-password": "தற்போதைய கடவுச்சொல்",
14+
"label.custom-range": "தனிப்பயன் வேறுபாட்டெல்லை",
15+
"label.dashboard": "முகப்பு",
16+
"label.date-range": "தேதி வரம்பு",
17+
"label.default-date-range": "இயல்புநிலை தேதி வரம்பு",
18+
"label.delete": "அழி",
19+
"label.delete-account": "கணக்கை நீக்குக",
20+
"label.delete-website": "வலைத்தளத்தை நீக்கு",
21+
"label.dismiss": "நீக்கு",
22+
"label.domain": "கள முகவரி",
23+
"label.edit": "திருத்துதல்",
24+
"label.edit-account": "கணக்கைத் திருத்து",
25+
"label.edit-website": "வலைத்தளத்தைத் திருத்து",
26+
"label.enable-share-url": "கள முகவரியை பகிரலாம்",
27+
"label.invalid": "தவறானது",
28+
"label.invalid-domain": "தவறான கள முகவரி",
29+
"label.last-days": "முந்தைய {x} நாட்கள்",
30+
"label.last-hours": "முந்தைய {x} மணி",
31+
"label.logged-in-as": "{username} உள்நுழைந்துள்ளீர்",
32+
"label.login": "உள்நுழைய",
33+
"label.logout": "வெளியேறு",
34+
"label.more": "மேலும்",
35+
"label.name": "பெயர்",
36+
"label.new-password": "புதிய கடவுச்சொல்",
37+
"label.password": "கடவுச்சொல்",
38+
"label.passwords-dont-match": "இருக்கடவுச்சொல் பொருந்தவில்லை",
39+
"label.profile": "சுயவிவரம்",
40+
"label.realtime": "தற்போதைய",
41+
"label.realtime-logs": "தற்போதைய பதிவுகள்",
42+
"label.refresh": "புதுப்பிப்பு",
43+
"label.required": "தேவையானவை",
44+
"label.reset": "மீட்டமை",
45+
"label.save": "சேமி",
46+
"label.settings": "அமைப்புகள்",
47+
"label.share-url": "வலைத்தள களத்தைப் பகிரவும்",
48+
"label.single-day": "ஒரு நாள்",
49+
"label.this-month": "இந்த மாதம்",
50+
"label.this-week": "இந்த வாரம்",
51+
"label.this-year": "இந்த வருடம்",
52+
"label.timezone": "நேர மண்டலம்",
53+
"label.today": "இன்று",
54+
"label.tracking-code": "கண்காணிப்பு குறியீடு",
55+
"label.unknown": "தெரியாத",
56+
"label.username": "பயனர்பெயர்",
57+
"label.view-details": "விபரங்களை பார்",
58+
"label.websites": "வலைத்தளங்கள்",
59+
"message.active-users": "{x} தற்போதைய {x, plural, one {ஒன்று} other {மற்ற}}",
60+
"message.confirm-delete": "நீங்கள் நிச்சயமாக {target} நீக்க விரும்புகிறீர்களா?",
61+
"message.copied": "நகலெடுக்கப்பட்டது!",
62+
"message.delete-warning": "தொடர்புடைய எல்லா தரவும் நீக்கப்படும்.",
63+
"message.failure": "ஏதோ தவறு நடந்துவிட்டது.",
64+
"message.get-share-url": "கள முகவரியை ஐப் பெறுக",
65+
"message.get-tracking-code": "கண்காணிப்பு குறியீட்டைப் பெறுக",
66+
"message.go-to-settings": "அமைப்புகளுக்குச் செல்லவும்",
67+
"message.incorrect-username-password": "தவறான பயனர்பெயர் / கடவுச்சொல்.",
68+
"message.log.visitor": "{country}வில் இருந்து பார்வையாளர் {browser} ஐ {os} {device}லில் பயன்படுத்துகிறார்",
69+
"message.new-version-available": "umami {version} இன் புதிய பதிப்பு கிடைக்கும்!",
70+
"message.no-data-available": "தரவு எதுவும் கிடைக்கவில்லை.",
71+
"message.no-websites-configured": "உங்களிடம் எந்த வலைத்தளங்களும் கட்டமைக்கப்படவில்லை.",
72+
"message.page-not-found": "பக்கம் கிடைக்கவில்லை.",
73+
"message.powered-by": "{name} ஆல் இயக்கப்படுகிறது",
74+
"message.save-success": "வெற்றிகரமாக சேமிக்கப்பட்டது.",
75+
"message.share-url": "{target} இது பொதுவில் பகிரும் வலைத்தள முகவரி.",
76+
"message.track-stats": "{target}க்கான புள்ளிவிவரங்களைக் கண்காணிக்க, {head}ல் பின்வரும் குறியீட்டை வைக்கவும்.",
77+
"message.type-delete": "உறுதிப்படுத்த கீழே உள்ள பெட்டியில் {delete} என தட்டச்சு செய்க.",
78+
"metrics.actions": "செயல்கள்",
79+
"metrics.average-visit-time": "சராசரி வருகை நேரம்",
80+
"metrics.bounce-rate": "துள்ளல் விகிதம்",
81+
"metrics.browsers": "உலாவிகள்",
82+
"metrics.countries": "நாடுகள்",
83+
"metrics.device.desktop": "மேசை கணினி",
84+
"metrics.device.laptop": "மடிக்கணினி",
85+
"metrics.device.mobile": "கைபேசி",
86+
"metrics.device.tablet": "கையடக்க கணினி",
87+
"metrics.devices": "சாதனங்கள்",
88+
"metrics.events": "நிகழ்வுகள்",
89+
"metrics.filter.combined": "ஒருங்கிணைந்த",
90+
"metrics.filter.domain-only": "கள முகவரி மட்டும்",
91+
"metrics.filter.raw": "மூல",
92+
"metrics.operating-systems": "இயக்க முறைமைகள்",
93+
"metrics.page-views": "பக்க காட்சிகள்",
94+
"metrics.pages": "பக்கங்கள்",
95+
"metrics.referrers": "குறிப்பிடுவோர்",
96+
"metrics.unique-visitors": "தனிப்பட்ட பார்வையாளர்கள்",
97+
"metrics.views": "பார்வைகள்",
98+
"metrics.visitors": "பார்வையாளர்கள்"
99+
}

lib/lang.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
ro,
1818
ru,
1919
sv,
20+
ta,
2021
tr,
2122
uk,
2223
zhCN,
@@ -45,6 +46,7 @@ import ukMessages from 'lang-compiled/uk-UA.json';
4546
import fiMessages from 'lang-compiled/fi-FI.json';
4647
import csMessages from 'lang-compiled/cs-CZ.json';
4748
import plMessages from 'lang-compiled/pl-PL.json';
49+
import taMessages from 'lang-compiled/ta-IN.json';
4850

4951
export const messages = {
5052
'en-US': enMessages,
@@ -70,6 +72,7 @@ export const messages = {
7072
'fi-FI': fiMessages,
7173
'cs-CZ': csMessages,
7274
'pl-PL': plMessages,
75+
'ta-IN': taMessages,
7376
};
7477

7578
export const dateLocales = {
@@ -96,6 +99,7 @@ export const dateLocales = {
9699
'fi-FI': fi,
97100
'cs-CZ': cs,
98101
'pl-PL': pl,
102+
'ta-In': ta,
99103
};
100104

101105
export const menuOptions = [
@@ -120,6 +124,7 @@ export const menuOptions = [
120124
{ label: 'Română', value: 'ro-RO', display: 'ro' },
121125
{ label: 'Suomi', value: 'fi-FI', display: 'fi' },
122126
{ label: 'Svenska', value: 'sv-SE', display: 'sv' },
127+
{ label: 'தமிழ்', value: 'ta-IN', display: 'ta' },
123128
{ label: 'Türkçe', value: 'tr-TR', display: 'tr' },
124129
{ label: 'українська', value: 'uk-UA', display: 'uk' },
125130
];

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "umami",
3-
"version": "1.6.0",
3+
"version": "1.7.0",
44
"description": "A simple, fast, website analytics alternative to Google Analytics. ",
55
"author": "Mike Cao <[email protected]>",
66
"license": "MIT",

pages/api/account/password.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export default async (req, res) => {
99
const { user_id: auth_user_id, is_admin } = req.auth;
1010
const { user_id, current_password, new_password } = req.body;
1111

12-
if (!is_admin || user_id !== auth_user_id) {
12+
if (!is_admin && user_id !== auth_user_id) {
1313
return unauthorized(res);
1414
}
1515

public/country/ta-IN.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

sql/schema.mysql.sql

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ create table account (
1111
is_admin bool not null default false,
1212
created_at timestamp default current_timestamp,
1313
updated_at timestamp default current_timestamp
14-
) ENGINE=InnoDB;
14+
) ENGINE=InnoDB COLLATE=utf8_general_ci;
1515

1616
create table website (
1717
website_id int unsigned not null auto_increment primary key,
@@ -22,7 +22,7 @@ create table website (
2222
share_id varchar(64) unique,
2323
created_at timestamp default current_timestamp,
2424
foreign key (user_id) references account(user_id) on delete cascade
25-
) ENGINE=InnoDB;
25+
) ENGINE=InnoDB COLLATE=utf8_general_ci;
2626

2727
create table session (
2828
session_id int unsigned not null auto_increment primary key,
@@ -37,7 +37,7 @@ create table session (
3737
language varchar(35),
3838
country char(2),
3939
foreign key (website_id) references website(website_id) on delete cascade
40-
) ENGINE=InnoDB;
40+
) ENGINE=InnoDB COLLATE=utf8_general_ci;
4141

4242
create table pageview (
4343
view_id int unsigned not null auto_increment primary key,
@@ -48,7 +48,7 @@ create table pageview (
4848
referrer varchar(500),
4949
foreign key (website_id) references website(website_id) on delete cascade,
5050
foreign key (session_id) references session(session_id) on delete cascade
51-
) ENGINE=InnoDB;
51+
) ENGINE=InnoDB COLLATE=utf8_general_ci;
5252

5353
create table event (
5454
event_id int unsigned not null auto_increment primary key,
@@ -60,7 +60,7 @@ create table event (
6060
event_value varchar(50) not null,
6161
foreign key (website_id) references website(website_id) on delete cascade,
6262
foreign key (session_id) references session(session_id) on delete cascade
63-
) ENGINE=InnoDB;
63+
) ENGINE=InnoDB COLLATE=utf8_general_ci;
6464

6565
create index website_user_id_idx on website(user_id);
6666

@@ -77,4 +77,4 @@ create index event_created_at_idx on event(created_at);
7777
create index event_website_id_idx on event(website_id);
7878
create index event_session_id_idx on event(session_id);
7979

80-
insert into account (username, password, is_admin) values ('admin', '$2b$10$BUli0c.muyCW1ErNJc3jL.vFRFtFJWrT8/GcR4A.sUdCznaXiqFXa', true);
80+
insert into account (username, password, is_admin) values ('admin', '$2b$10$BUli0c.muyCW1ErNJc3jL.vFRFtFJWrT8/GcR4A.sUdCznaXiqFXa', true);

0 commit comments

Comments
 (0)