1
0
mirror of https://github.com/nerzhul/ocsms.git synced 2025-06-07 16:06:15 +00:00

Compare commits

...

243 Commits

Author SHA1 Message Date
Nextcloud bot
2d7a2a3ff7
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-05 01:26:28 +00:00
Nextcloud bot
fa93d678f0
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-04 01:26:38 +00:00
Nextcloud bot
29f0d20be4
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-30 01:27:53 +00:00
Nextcloud bot
19fa70ca0e
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-23 01:27:08 +00:00
Nextcloud bot
b1346315c2
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-10 01:27:55 +00:00
Nextcloud bot
5e2be0aa27
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-06 01:32:28 +00:00
Nextcloud bot
316e4ced29
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-03-20 01:29:59 +00:00
Nextcloud bot
bfa87343a1
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-25 01:34:26 +00:00
Nextcloud bot
c02def2d49
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-19 01:26:10 +00:00
Nextcloud bot
383d376fdc
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-11-04 01:23:24 +00:00
Nextcloud bot
962a4a6f22
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-24 01:15:22 +00:00
Nextcloud bot
39f58e099d
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-22 01:14:31 +00:00
Nextcloud bot
debaccfe42
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-05-16 01:07:58 +00:00
Nextcloud bot
d6aba335bc
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-25 01:15:31 +00:00
Nextcloud bot
873d051b15
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-12 01:14:34 +00:00
Nextcloud bot
5b277c84f7
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-30 01:15:21 +00:00
Nextcloud bot
023540854c
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-18 01:15:07 +00:00
Nextcloud Command Bot
1a7242b468
Update npm and node engines versions (#355)
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
Co-authored-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-03-08 22:40:43 +01:00
Nextcloud bot
e86d1c0dee
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-06 03:29:09 +00:00
Nextcloud bot
d0aa7512c2
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-27 01:13:23 +00:00
Nextcloud bot
3327af9808
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-25 01:16:37 +00:00
Nextcloud bot
56d81018d2
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-16 01:14:11 +00:00
Nextcloud bot
08ff1113a6
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-21 01:32:17 +00:00
Nextcloud bot
36cfb436f5
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-04 01:15:41 +00:00
Nextcloud bot
b9810e712c
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-24 01:20:24 +00:00
Nextcloud bot
26c67054bb
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-23 01:14:38 +00:00
Nextcloud bot
4dbc698687
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-01 01:21:19 +00:00
Nextcloud bot
eecff2c514
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-25 01:33:59 +00:00
Nextcloud bot
db07b366fd
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-20 01:16:16 +00:00
Nextcloud bot
ce624c4e4c
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-19 01:17:06 +00:00
Nextcloud Command Bot
4af2d4371e
chore: update node engines to next LTS (node 20 / npm 9) (#354)
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
Co-authored-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-06-22 17:09:39 +02:00
Nextcloud bot
09118bbafa
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-20 01:13:22 +00:00
Nextcloud bot
2561b99165
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-12 01:06:06 +00:00
Nextcloud bot
b30d88b02c
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-21 01:03:36 +00:00
Nextcloud bot
c7d018e576
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-16 03:15:34 +00:00
Nextcloud bot
8e6535a2fe
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-12 03:18:23 +00:00
Nextcloud bot
aa6bfd488f
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-13 03:15:08 +00:00
Nextcloud bot
c0948070e9
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-21 03:10:28 +00:00
Nextcloud bot
eb757f4a79
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-31 02:58:52 +00:00
Nextcloud bot
f927ba1cd0
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-24 02:51:56 +00:00
Nextcloud bot
635147a629
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-22 02:51:23 +00:00
Nextcloud bot
7033e84c14
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-29 05:57:55 +00:00
Nextcloud bot
f3f2c385e1
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-01 02:43:27 +00:00
Nextcloud bot
ac9e0e8047
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-23 02:45:47 +00:00
Nextcloud bot
5eb0adb008
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-17 02:39:39 +00:00
Nextcloud bot
90886765a7
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-12 02:40:12 +00:00
Nextcloud bot
d8e02a5575
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-25 02:44:11 +00:00
Nextcloud bot
2d43153862
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-01 02:47:33 +00:00
Nextcloud bot
f376c830b5
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-15 03:15:43 +00:00
Nextcloud bot
43f759369a
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-13 03:10:52 +00:00
Nextcloud bot
c991bd5bd7
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-01 03:19:58 +00:00
Nextcloud bot
597470eb2c
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-24 03:08:50 +00:00
Nextcloud Command Bot
2fcd1d5e9c
Update npm and node engines versions (#346)
Signed-off-by: Nextcloud bot <bot@nextcloud.com>

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
Co-authored-by: Nextcloud bot <bot@nextcloud.com>
2022-08-18 09:25:47 +02:00
Nextcloud bot
77d0e34cd2
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-06 03:06:24 +00:00
Nextcloud bot
585c2f244b
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-02 02:41:55 +00:00
Nextcloud bot
b646cb2104
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-14 03:06:30 +00:00
Nextcloud bot
8133febe5d
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-24 03:07:41 +00:00
Nextcloud bot
d9955dd6d9
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-22 03:08:25 +00:00
Nextcloud bot
1e603083f9
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-09 03:16:44 +00:00
Nextcloud bot
0cffae3677
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-24 03:20:06 +00:00
Nextcloud bot
4a190271c3
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-04-24 03:10:27 +00:00
Nextcloud bot
b877ccf781
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-04-14 03:10:04 +00:00
Nextcloud bot
43ae3efccc
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-04-06 03:07:26 +00:00
Nextcloud bot
f0f41fd0b2
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-04-05 03:09:12 +00:00
Loïc Blot
964d18c33a
Add workflow to analyze JS 2022-01-10 10:07:00 +01:00
Nextcloud bot
5479e66347
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-01-10 08:55:54 +00:00
Nextcloud bot
b556edf7f9
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-09-22 03:04:49 +00:00
Nextcloud bot
3468ba61b6
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-09-02 03:04:18 +00:00
Nextcloud bot
1608ce46d1
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-18 03:02:54 +00:00
Nextcloud bot
6a8d4f1f1f
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-14 03:03:03 +00:00
Nextcloud bot
6ad519e567
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-06-25 03:03:58 +00:00
Nextcloud bot
7f1ce426fd
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-06-04 03:12:28 +00:00
Nextcloud bot
e0f25dc02a
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-04-02 03:04:29 +00:00
Nextcloud bot
e8094b7d2b
[tx-robot] updated from transifex 2021-03-07 02:58:42 +00:00
Nextcloud bot
99fb0135eb
[tx-robot] updated from transifex 2021-03-06 02:59:38 +00:00
Nextcloud bot
9a7d800a15
[tx-robot] updated from transifex 2021-02-26 02:59:29 +00:00
Nextcloud bot
770d9c6332
[tx-robot] updated from transifex 2021-02-25 02:59:39 +00:00
Nextcloud bot
4d60c9a376
[tx-robot] updated from transifex 2021-02-24 03:04:24 +00:00
Nextcloud bot
9dfe68c48d
[tx-robot] updated from transifex 2021-02-23 03:41:03 +00:00
Nextcloud bot
6c17b9994f
[tx-robot] updated from transifex 2021-02-18 03:01:58 +00:00
Nextcloud bot
8ac335a68d
[tx-robot] updated from transifex 2021-02-03 03:13:28 +00:00
Nextcloud bot
e0dc353be4
[tx-robot] updated from transifex 2021-02-02 02:55:00 +00:00
Alfred Egger
61f6d0fb42 Remove deprecated app.php file 2020-12-29 23:53:56 +01:00
Alfred Egger
94a7175886 Fix SQL table names 2020-12-29 23:51:52 +01:00
Alfred Egger
224382ce9b Fix database migration table and index length 2020-12-29 23:50:59 +01:00
Alfred Egger
feb521ec10 Fix Fulltextsearch namespace provider 2020-12-24 16:59:11 +01:00
Alfred Egger
a9f572c9f3 Bump version number 2020-12-16 21:40:45 +01:00
Alfred Egger
2078096ba6 Migrate away from database.xml to new database migrations 2020-12-16 21:38:03 +01:00
Alfred Egger
7ee735c547 Release 2.1.9 2020-12-16 21:16:33 +01:00
Alfred Egger
7fa0406cac Bump version and add support for Nextcloud 20 2020-12-16 21:15:52 +01:00
Alfred Egger
916131efe9 Fix empty line in helpers.js 2020-12-16 21:14:03 +01:00
Alfred Egger
b01f542c91 Add escapeHTML function to Javascipt code 2020-12-16 21:13:40 +01:00
Nextcloud bot
68efa663b0
[tx-robot] updated from transifex 2020-11-26 02:59:21 +00:00
Nextcloud bot
801036da26
[tx-robot] updated from transifex 2020-11-11 03:02:14 +00:00
Nextcloud bot
f2b7360bb4
[tx-robot] updated from transifex 2020-10-30 02:57:50 +00:00
Nextcloud bot
b10d1305a4
[tx-robot] updated from transifex 2020-10-23 02:55:43 +00:00
Nextcloud bot
42d5fbcc16
[tx-robot] updated from transifex 2020-10-13 02:55:52 +00:00
Nextcloud bot
0ce325a9d9
[tx-robot] updated from transifex 2020-10-10 02:56:07 +00:00
Nextcloud bot
518780d0eb
[tx-robot] updated from transifex 2020-09-12 02:40:10 +00:00
Nextcloud bot
7a16a72630
[tx-robot] updated from transifex 2020-08-26 02:48:53 +00:00
Nextcloud bot
2893ecb6ff
[tx-robot] updated from transifex 2020-08-25 02:50:52 +00:00
Nextcloud bot
0a06b55472
[tx-robot] updated from transifex 2020-07-31 02:49:58 +00:00
Nextcloud bot
f0afcbdbd2
[tx-robot] updated from transifex 2020-07-27 02:48:14 +00:00
Nextcloud bot
a5c33ce8b8
[tx-robot] updated from transifex 2020-07-08 03:00:51 +00:00
Nextcloud bot
40fba56c6e
[tx-robot] updated from transifex 2020-07-04 02:47:59 +00:00
Nextcloud bot
25df5771df
[tx-robot] updated from transifex 2020-07-03 02:49:54 +00:00
Nextcloud bot
ba561ed556
[tx-robot] updated from transifex 2020-06-24 02:46:56 +00:00
Nextcloud bot
b756956821
[tx-robot] updated from transifex 2020-06-19 02:47:15 +00:00
Alfred Egger
88d672e103 Release 2.1.8 2020-06-11 22:57:55 +02:00
Nextcloud bot
82cd91e761
[tx-robot] updated from transifex 2020-06-06 02:47:47 +00:00
Alfred Egger
55d73cd12c Bump version for Nextcloud 19 release 2020-05-26 01:17:27 +02:00
Nextcloud bot
a38454a075
[tx-robot] updated from transifex 2020-05-19 02:46:32 +00:00
Nextcloud bot
f66b2165f1
[tx-robot] updated from transifex 2020-05-11 02:46:44 +00:00
Nextcloud bot
8e301d9b2e
[tx-robot] updated from transifex 2020-05-10 02:46:38 +00:00
Nextcloud bot
b51fc86847
[tx-robot] updated from transifex 2020-05-07 02:46:53 +00:00
Nextcloud bot
657cee2598
[tx-robot] updated from transifex 2020-05-05 02:45:38 +00:00
Nextcloud bot
275d7fd4e8
[tx-robot] updated from transifex 2020-05-04 02:45:39 +00:00
Nextcloud bot
4c2d59078d
[tx-robot] updated from transifex 2020-05-03 02:45:52 +00:00
Nextcloud bot
81a426477f
[tx-robot] updated from transifex 2020-05-02 02:45:34 +00:00
Alfred Egger
5391cd9c3f Fix plural in text strings 2020-05-01 14:39:42 +02:00
R. Leloup
09db94df12
Fix unreadable messages with dark theme (#317)
Fix dark theme support (https://github.com/nextcloud/ocsms/issues/297)

Signed-off-by: Regiloup <regis.leloup@colombbus.org>
2020-05-01 14:18:58 +02:00
Nextcloud bot
06eee652c4
[tx-robot] updated from transifex 2020-04-30 02:48:33 +00:00
Nextcloud bot
2f39e54ba0
[tx-robot] updated from transifex 2020-04-26 02:46:24 +00:00
Nextcloud bot
57a520ef68
[tx-robot] updated from transifex 2020-04-11 02:51:56 +00:00
Nextcloud bot
b2100fb11b
[tx-robot] updated from transifex 2020-04-03 02:41:17 +00:00
Nextcloud bot
982a4fb92e
[tx-robot] updated from transifex 2020-03-30 02:51:52 +00:00
Nextcloud bot
794b8877ae
[tx-robot] updated from transifex 2020-03-25 02:49:25 +00:00
Nextcloud bot
c302592eff
[tx-robot] updated from transifex 2020-03-20 02:50:00 +00:00
Nextcloud bot
7bf580df4e
[tx-robot] updated from transifex 2020-03-06 02:50:16 +00:00
Nextcloud bot
d0c34fe288
[tx-robot] updated from transifex 2020-02-27 02:51:06 +00:00
Loic Blot
7a02d9c8fb
Release 2.1.7 2020-02-20 07:46:28 +01:00
Nextcloud bot
f4269d8f75
[tx-robot] updated from transifex 2020-02-17 02:48:49 +00:00
e-alfred
ae8be46f96
Add support for Nextcloud 18 2020-02-16 16:31:39 +01:00
Nextcloud bot
a0807d5dbb
[tx-robot] updated from transifex 2020-02-13 02:52:31 +00:00
Nextcloud bot
3707082d04
[tx-robot] updated from transifex 2020-02-08 02:50:11 +00:00
Nextcloud bot
3d0c98ec87
[tx-robot] updated from transifex 2020-02-06 02:51:31 +00:00
Nextcloud bot
0bcee11a4b
[tx-robot] updated from transifex 2020-02-03 02:47:11 +00:00
Nextcloud bot
e836c3f6a8
[tx-robot] updated from transifex 2020-02-01 02:49:01 +00:00
Nextcloud bot
2e2d48200e
[tx-robot] updated from transifex 2020-01-28 02:51:05 +00:00
Nextcloud bot
cd14edff98
[tx-robot] updated from transifex 2020-01-19 02:49:10 +00:00
Nextcloud bot
429a0ed252
[tx-robot] updated from transifex 2020-01-16 02:51:47 +00:00
Nextcloud bot
c7e6443e3c
[tx-robot] updated from transifex 2020-01-14 02:50:19 +00:00
Nextcloud bot
efbc5d8e05
[tx-robot] updated from transifex 2019-12-22 03:23:58 +00:00
Nextcloud bot
9024398522
[tx-robot] updated from transifex 2019-12-04 09:52:09 +00:00
Nextcloud bot
cc0a85a6e9
[tx-robot] updated from transifex 2019-11-25 02:42:20 +00:00
Nextcloud bot
442deb47b4
[tx-robot] updated from transifex 2019-11-23 02:42:54 +00:00
Nextcloud bot
5a58dab6c0
[tx-robot] updated from transifex 2019-11-21 02:42:52 +00:00
Nextcloud bot
c037b40961
[tx-robot] updated from transifex 2019-11-17 02:43:17 +00:00
Nextcloud bot
9a27f70393
[tx-robot] updated from transifex 2019-11-10 02:43:58 +00:00
Loic Blot
21e5ccd5a2
Release 2.1.6 2019-11-09 08:28:36 +01:00
Loïc Blot
012ba8385b
Fix invalid code missed on review 2019-11-09 08:27:40 +01:00
Nextcloud bot
c9f1b4099f
[tx-robot] updated from transifex 2019-11-09 02:39:59 +00:00
Loic Blot
52f9f72e97
Release 2.1.5 2019-11-08 19:55:55 +01:00
Nextcloud bot
1abf4ef027
[tx-robot] updated from transifex 2019-11-05 02:40:15 +00:00
Alfred Egger
1819f4f63e Merge branch 'master' of https://github.com/nextcloud/ocsms 2019-11-04 08:36:25 +01:00
Alfred Egger
ff0c890f0b Fix info.xml validation error 2019-11-04 08:36:22 +01:00
Loic Blot
8b9a6eb9f6
Release 2.1.4 2019-11-04 07:45:29 +01:00
Bernhard Froehler
7a23294e7f Fix for conversations of contacts not showing any messages (#302) 2019-10-11 19:52:48 +02:00
Alfred Egger
dcd1d29da7 Fix info.xml for Nextcloud 17 2019-10-04 18:33:06 +02:00
Nextcloud bot
98137a767c
[tx-robot] updated from transifex 2019-09-24 02:41:28 +00:00
Nextcloud bot
2074f52740
[tx-robot] updated from transifex 2019-09-08 02:43:57 +00:00
Nextcloud bot
1fdb2c61f9
[tx-robot] updated from transifex 2019-08-28 02:43:27 +00:00
Nextcloud bot
a92d3ece6b
[tx-robot] updated from transifex 2019-08-18 02:42:14 +00:00
Nextcloud bot
71c1ffb899
[tx-robot] updated from transifex 2019-08-01 02:42:28 +00:00
Nextcloud bot
50a7b092ff
[tx-robot] updated from transifex 2019-07-27 02:39:21 +00:00
Nextcloud bot
542108def2
[tx-robot] updated from transifex 2019-07-13 02:41:08 +00:00
Nextcloud bot
fab6654aca
[tx-robot] updated from transifex 2019-07-12 02:37:47 +00:00
e-alfred
99ca13202b
Fixed deadlinks in Readme file 2019-07-11 15:12:30 +02:00
Nextcloud bot
7e3cfe6180
[tx-robot] updated from transifex 2019-06-11 02:26:38 +00:00
Loic Blot
e8bf7b241d
Release 2.1.3 2019-06-03 20:22:19 +02:00
Nextcloud bot
eeb99fe4c0
[tx-robot] updated from transifex 2019-05-28 02:38:58 +00:00
Nextcloud bot
c930cd4e91
[tx-robot] updated from transifex 2019-05-25 02:35:18 +00:00
Alfred Egger
117817a0ff Add more ignored files for translation 2019-05-24 11:02:38 +02:00
Nextcloud bot
177f70cba6
[tx-robot] updated from transifex 2019-05-24 02:35:43 +00:00
Alfred Egger
b7a90faf76 Bump version number for new release 2019-05-23 18:02:09 +02:00
Alfred Egger
0722e70a47 Add ignore file for Transiflex 2019-05-23 17:52:30 +02:00
e-alfred
f8c0cb985c
Fix max-version for NC16 and remove redundant PHP requirement 2019-05-23 10:44:56 +02:00
Nextcloud bot
a4840c3c69
[tx-robot] updated from transifex 2019-04-23 00:30:43 +00:00
Nextcloud bot
97e56818c5
[tx-robot] updated from transifex 2019-04-10 00:31:33 +00:00
Nextcloud bot
c97f172014
[tx-robot] updated from transifex 2019-04-03 00:32:33 +00:00
Nextcloud bot
5ce8351bbe
[tx-robot] updated from transifex 2019-03-28 01:32:51 +00:00
Nextcloud bot
2754047a32
[tx-robot] updated from transifex 2019-03-26 01:23:49 +00:00
Nextcloud bot
eb4f6b3f6e
[tx-robot] updated from transifex 2019-03-23 01:25:46 +00:00
Nextcloud bot
d325c13610
[tx-robot] updated from transifex 2019-03-22 01:26:53 +00:00
Nextcloud bot
3f1e03fc31
[tx-robot] updated from transifex 2019-03-19 01:34:29 +00:00
rakekniven
7de5341887 Rakekniven patch 1 (#292)
* Update pl.js

* Update pl.json

* Update gl.js

* Update gl.json

* Update de.js

* Update de.json

* Update de_DE.js

* Update de_DE.json

* Update tr.json

* Update tr.js

* Update hu.js

* Update hu.json

* Update es.json

* Update es.js

* Update fr.js

* Update fr.json
2019-03-18 11:26:43 +01:00
Nextcloud bot
b7603e7b29
[tx-robot] updated from transifex 2019-03-18 01:32:19 +00:00
Nextcloud bot
2d78d74d73
[tx-robot] updated from transifex 2019-03-17 01:33:37 +00:00
Nextcloud bot
017da88af4
[tx-robot] updated from transifex 2019-03-16 01:32:06 +00:00
Nextcloud bot
b0b805fd16
[tx-robot] updated from transifex 2019-03-15 01:35:19 +00:00
Valdnet
31918d786c Make on text translatable 2019-03-14 14:13:59 +01:00
Valdnet
ca7423ad0a Correction of the description buttons of the message removal request 2019-03-14 14:13:38 +01:00
Nextcloud bot
9d4c1dcc26
[tx-robot] updated from transifex 2019-03-13 01:26:43 +00:00
Nextcloud bot
0be27d6563
[tx-robot] updated from transifex 2019-03-12 01:26:17 +00:00
Nextcloud bot
15b68e2225
[tx-robot] updated from transifex 2019-03-05 01:32:25 +00:00
Nextcloud bot
2f9be22ffb
[tx-robot] updated from transifex 2019-03-04 01:25:29 +00:00
Nextcloud bot
d3fa52936c
[tx-robot] updated from transifex 2019-02-21 01:31:22 +00:00
Nextcloud bot
d56df75be2
[tx-robot] updated from transifex 2019-02-12 01:31:38 +00:00
Nextcloud bot
f833a2c3ce
[tx-robot] updated from transifex 2019-02-11 01:31:41 +00:00
Nextcloud bot
5e0fcf9214
[tx-robot] updated from transifex 2019-02-10 01:33:33 +00:00
Nextcloud bot
53fa65a933
[tx-robot] updated from transifex 2019-01-21 01:30:36 +00:00
Nextcloud bot
8f12a121e4
[tx-robot] updated from transifex 2019-01-18 01:34:36 +00:00
Nextcloud bot
0c4836128b
[tx-robot] updated from transifex 2019-01-15 01:33:41 +00:00
Nextcloud bot
99c2830d16
[tx-robot] updated from transifex 2019-01-11 01:32:04 +00:00
Nextcloud bot
07b1a16b4e
[tx-robot] updated from transifex 2019-01-09 01:33:18 +00:00
Nextcloud bot
bc7bb42b7b
[tx-robot] updated from transifex 2019-01-06 01:43:06 +00:00
Nextcloud bot
a84835ca5b
[tx-robot] updated from transifex 2018-12-31 01:31:16 +00:00
Nextcloud bot
5994be5fe1
[tx-robot] updated from transifex 2018-12-30 01:33:04 +00:00
Nextcloud bot
04b7e7a96c
[tx-robot] updated from transifex 2018-12-29 01:29:51 +00:00
Nextcloud bot
f6659b9e36
[tx-robot] updated from transifex 2018-12-25 01:29:46 +00:00
Nextcloud bot
f95dea0a46
[tx-robot] updated from transifex 2018-12-24 01:37:18 +00:00
Loic Blot
feea6fb6ac
Release 2.1.1 2018-12-22 14:04:03 +01:00
Loic Blot
edc7253736
Move required libs inclusion in the global template 2018-12-22 14:02:07 +01:00
Nextcloud bot
4efc689d6e
[tx-robot] updated from transifex 2018-12-20 01:31:11 +00:00
Nextcloud bot
4d559d56e9
[tx-robot] updated from transifex 2018-12-17 01:30:46 +00:00
Nextcloud bot
7ad26ad4d8
[tx-robot] updated from transifex 2018-12-13 01:31:09 +00:00
Loïc Blot
d4c15b66a5 Check for wget too 2018-12-12 12:13:20 +01:00
Loïc Blot
de4859eab9 Release 2.1.0 2018-12-12 12:09:03 +01:00
Loïc Blot
adb9db12f4 Check NPM & gulp installations in release script 2018-12-12 12:08:42 +01:00
Nextcloud bot
3b35b5e9bf
[tx-robot] updated from transifex 2018-12-12 01:37:40 +00:00
Nextcloud bot
7a77aa64e1
[tx-robot] updated from transifex 2018-12-11 01:30:43 +00:00
Greg Ross
be8824b889 Add anchorme() support. (#262)
This will "linkify" text inside of messages with anchor tags so they are clickable.
2018-12-10 20:48:18 +01:00
Loïc Blot
7abea7cc9b Fix the test case 2018-12-10 16:27:49 +01:00
Loïc Blot
fdcb6b4f14 Add a test API to push messages to current user context
This permits to test easily some usecases.
It should be disabled at release.
2018-12-10 16:23:03 +01:00
Greg Ross
f8e3b4bfe1 Update to Twemoji 11.2. 2018-12-10 16:22:02 +01:00
Greg Ross
967a60b4c3 Add local support for twemoji.
Adds twemoji support, with the twemoji library and graphics hosted on the local NextCloud install.
2018-12-10 16:22:02 +01:00
Loïc Blot
e6a2214bc9 Fix CSP issue with vue.js 2018-12-10 16:14:53 +01:00
Loïc Blot
c9d929e0a7 Don't push devel doc when releasing 2018-12-10 14:43:45 +01:00
Loïc Blot
3b3105bc4f More swagger API documentation (without details) 2018-12-10 14:43:09 +01:00
Loïc Blot
df05002bc7 Add swagger UI documentation for the API 2018-12-10 14:30:51 +01:00
Loïc Blot
e55ce1660d nextcloud 15 compatibility 2018-12-10 13:57:47 +01:00
Loïc Blot
7ff55a4721 missing changes from last commit 2018-12-10 13:57:45 +01:00
Loïc Blot
b7d929f425 Add a basic FTS provider, for the future 2018-12-10 13:57:39 +01:00
Nextcloud bot
1e7efa8e9e
[tx-robot] updated from transifex 2018-12-04 01:41:28 +00:00
Nextcloud bot
fb838e69b3
[tx-robot] updated from transifex 2018-11-26 01:30:17 +00:00
Nextcloud bot
332baa9283
[tx-robot] updated from transifex 2018-11-16 01:31:01 +00:00
Nextcloud bot
fac161ed78
[tx-robot] updated from transifex 2018-11-15 01:33:18 +00:00
Nextcloud bot
fc594a52c4
[tx-robot] updated from transifex 2018-11-13 01:33:02 +00:00
Loic Blot
8c289e09de
Back to develop 2018-11-12 15:49:39 +01:00
Loic Blot
722eddb847
Release 2.0.2 2018-11-12 14:22:14 +01:00
Loic Blot
dc06bd8f88
Fix build another time 2018-11-12 14:15:50 +01:00
Loic Blot
8676d7094d
Release 2.0.1 2018-11-12 13:43:23 +01:00
Loic Blot
cfcf2f8c57
Packaging fixes 2018-11-12 13:43:10 +01:00
5936 changed files with 121579 additions and 449 deletions

View File

@ -12,9 +12,13 @@ SRC_DIR=`dirname $0`"/.."
RELEASE_VERSION=${1}
echo "Release version set to ${RELEASE_VERSION}"
#which npm > /dev/null
#which gulp > /dev/null
#which wget > /dev/null
sed -ri 's/(.*)<version>(.+)<\/version>/\1<version>'${RELEASE_VERSION}'<\/version>/g' ${SRC_DIR}/appinfo/info.xml
npm install
gulp uglify
node_modules/gulp/bin/gulp.js uglify
git commit -am "Release "${RELEASE_VERSION}
git tag ${RELEASE_VERSION}
git push
@ -35,7 +39,8 @@ rm -Rf \
ocsms/gulpfile.js \
ocsms/package.json \
ocsms/.ci \
ocsms/.tx
ocsms/.tx \
ocsms/doc
tar cfz ocsms-${RELEASE_VERSION}.tar.gz ocsms
echo "Release version "${RELEASE_VERSION}" is now ready."

70
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@ -0,0 +1,70 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '20 1 * * 4'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

11
.l10nignore Normal file
View File

@ -0,0 +1,11 @@
doc/swagger-ui-bundle.js
doc/swagger-ui-bundle.js.map
doc/swagger-ui.css
doc/swagger-ui.css.map
doc/swagger-ui.js
doc/swagger-ui.js.map
doc/swagger-ui-standalone-preset.js
doc/swagger-ui-standalone-preset.js.map
doc/swagger.yml
doc/index.html
doc/oauth2-redirect.html

View File

@ -1,9 +1,10 @@
[main]
host = https://www.transifex.com
lang_map = bg_BG: bg, cs_CZ: cs, fi_FI: fi, hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja
host = https://www.transifex.com
lang_map = sk_SK: sk, th_TH: th, ja_JP: ja, bg_BG: bg, cs_CZ: cs, fi_FI: fi, hu_HU: hu, nb_NO: nb
[nextcloud.ocsms]
[o:nextcloud:p:nextcloud:r:ocsms]
file_filter = translationfiles/<lang>/ocsms.po
source_file = translationfiles/templates/ocsms.pot
source_lang = en
type = PO
type = PO

115240
254.patch Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,3 +1,3 @@
FROM nextcloud:14.0.3-apache
FROM nextcloud:15.0.0-rc-apache
COPY . /usr/src/nextcloud/apps/ocsms

View File

@ -1,15 +1,14 @@
# Phone Sync (for Nextcloud & ownCloud)
Phone Sync provides a webinterface to display your SMS conversations. SMS conversations are pushed by your Android devices using the [Android client](https://github.com/nerzhul/ownCloud-SMS-App), available on [Google Play Store](https://play.google.com/store/apps/details?id=fr.unix_experience.owncloud_sms).
Phone Sync provides a webinterface to display your SMS conversations. SMS conversations are pushed by your Android devices using the [Android client](https://github.com/nerzhul/ownCloud-SMS-App), available on [F-Droid](https://f-droid.org/repository/browse/?fdid=fr.unix_experience.owncloud_sms).
## :arrow_forward: Access
The app is available in both, [Nextcloud appstore](https://apps.nextcloud.com/apps/ocsms) and [ownCloud appstore](https://apps.owncloud.com/content/show.php/ownCloud+SMS?content=167289). So installing is as easy as
The app is available on the [Nextcloud App Store](https://apps.nextcloud.com/apps/ocsms), so installing is as easy as:
1. Navigate in your Nextcloud / ownCloud instance to the "apps"
2. Enable "experimental apps" in the settings
3. Select the category "Multimedia"
4. Click "activate"
1. Navigate in your Nextcloud instance to the "Apps"
2. Select the category "Multimedia"
3. Click "activate"
## :question: Solve encoding errors on MySQL
If you are on MySQL or MariaDB and have the following issue with the database:
@ -59,3 +58,7 @@ If you've enabled 2FA (Two Factor Authentication) logins you may be hit with an
## :notebook: License
Phone Sync web application is currently licensed under [AGPL license](https://github.com/nextcloud/ocsms/blob/master/LICENSE.md).
## :notebook: External Libraries
[Twemoji](https://github.com/twitter/twemoji) Code licensed under the [MIT License](http://opensource.org/licenses/MIT), Graphics licensed under [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/).
[libphonenumber-for-php](https://github.com/giggsey/libphonenumber-for-php) Code licensed under the [Apache 2.0 License](http://www.apache.org/licenses/LICENSE-2.0).

View File

@ -1,37 +0,0 @@
<?php
/**
* Nextcloud - Phone Sync
*
* This file is licensed under the Affero General Public License version 3 or
* later. See the COPYING file.
*
* @author Loic Blot <loic.blot@unix-experience.fr>
* @copyright Loic Blot 2014-2017
*/
namespace OCA\OcSms\AppInfo;
if (class_exists('\OCP\AppFramework\App')) {
\OC::$server->getNavigationManager()->add(array(
// the string under which your app will be referenced in owncloud
'id' => 'ocsms',
// sorting weight for the navigation. The higher the number, the higher
// will it be listed in the navigation
'order' => 10,
// the route that will be shown on startup
'href' => \OC::$server->getURLGenerator()->linkToRoute('ocsms.sms.index'),
// the icon that will be shown in the navigation
// this file needs to exist in img/
'icon' => \OC::$server->getURLGenerator()->imagePath('ocsms', 'app.svg'),
// the title of your application. This will be used in the
// navigation or on the settings page of your app
'name' => \OCP\Util::getL10N('ocsms')->t('Phone Sync')
));
} else {
$msg = 'Can not enable the OcSms app because the App Framework App is disabled';
\OC::$server->getLogger()->error($msg, array('ocsms'));
}

View File

@ -1,268 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<database>
<name>*dbname*</name>
<create>true</create>
<overwrite>false</overwrite>
<charset>utf8</charset>
<table>
<name>*dbprefix*ocsms_user_datas</name>
<declaration>
<field>
<name>user_id</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>datakey</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>datavalue</name>
<type>text</type>
<length>64</length>
<notnull>true</notnull>
</field>
<index>
<name>user_datas_user_datakey</name>
<field>
<name>user_id</name>
</field>
<field>
<name>datakey</name>
</field>
</index>
</declaration>
</table>
<table>
<name>*dbprefix*ocsms_smsdatas</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>10</length>
<primary>true</primary>
</field>
<field>
<name>user_id</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>added</name>
<type>timestamp</type>
<notnull>true</notnull>
<default>1970-01-01 00:00:00</default>
</field>
<field>
<name>lastmodified</name>
<type>timestamp</type>
<notnull>true</notnull>
<default>1970-01-01 00:00:00</default>
</field>
<field>
<name>sms_id</name>
<type>integer</type>
<notnull>true</notnull>
<length>5</length>
</field>
<field>
<name>sms_address</name>
<type>text</type>
<notnull>true</notnull>
<length>512</length>
</field>
<field>
<name>sms_msg</name>
<type>text</type>
<notnull>true</notnull>
<length>10240</length>
</field>
<field>
<name>sms_date</name>
<type>integer</type>
<notnull>true</notnull>
<length>10</length>
</field>
<field>
<name>sms_flags</name>
<type>text</type>
<notnull>true</notnull>
<default>00</default>
<length>2</length>
</field>
<field>
<name>sms_mailbox</name>
<type>integer</type>
<notnull>true</notnull>
<length>1</length>
</field>
<field>
<name>sms_type</name>
<type>integer</type>
<notnull>true</notnull>
<length>1</length>
</field>
<index>
<name>smsdata_user_mailbox</name>
<field>
<name>user_id</name>
</field>
<field>
<name>sms_mailbox</name>
</field>
</index>
<index>
<name>smsdata_user_smsid</name>
<field>
<name>user_id</name>
</field>
<field>
<name>sms_id</name>
</field>
</index>
<index>
<name>smsdata_user_mailbox_date</name>
<field>
<name>user_id</name>
</field>
<field>
<name>sms_mailbox</name>
</field>
<field>
<name>sms_date</name>
</field>
</index>
<index>
<name>smsdata_user_mailbox_address</name>
<field>
<name>user_id</name>
</field>
<field>
<name>sms_mailbox</name>
</field>
<field>
<name>sms_address</name>
</field>
</index>
<index>
<name>smsdata_user_mailbox_address_date</name>
<field>
<name>user_id</name>
</field>
<field>
<name>sms_mailbox</name>
</field>
<field>
<name>sms_address</name>
</field>
<field>
<name>sms_date</name>
</field>
</index>
</declaration>
</table>
<table>
<name>*dbprefix*ocsms_sendmessage_queue</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>10</length>
<primary>true</primary>
</field>
<field>
<name>user_id</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>sms_address</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>sms_msg</name>
<type>text</type>
<notnull>true</notnull>
<length>2048</length>
</field>
</declaration>
</table>
<table>
<name>*dbprefix*ocsms_conversation_read_states</name>
<declaration>
<field>
<name>user_id</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>phone_number</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>int_date</name>
<type>integer</type>
<length>32</length>
<notnull>true</notnull>
</field>
<index>
<name>sms_conversation_rs_pkey</name>
<field>
<name>user_id</name>
</field>
<field>
<name>phone_number</name>
</field>
</index>
</declaration>
</table>
<table>
<name>*dbprefix*ocsms_config</name>
<declaration>
<field>
<name>user</name>
<type>text</type>
<notnull>true</notnull>
<length>255</length>
</field>
<field>
<name>key</name>
<type>text</type>
<notnull>true</notnull>
<length>255</length>
</field>
<field>
<name>value</name>
<type>text</type>
<notnull>false</notnull>
<length>10240</length>
</field>
<index>
<name>config_user_key</name>
<field>
<name>user</name>
</field>
<field>
<name>key</name>
</field>
</index>
</declaration>
</table>
</database>

View File

@ -5,26 +5,35 @@
<name>Phone Sync</name>
<summary>An app to sync SMS with your cloud</summary>
<description>An app to sync SMS with your cloud</description>
<licence>agpl</licence>
<author homepage="https://www.unix-experience.fr">Loic Blot</author>
<version>2.0.0</version>
<author>Loic Blot</author>
<author>e-alfred</author>
<version>2.2.0</version>
<licence>agpl</licence>
<category>multimedia</category>
<category>tools</category>
<dependencies>
<php min-version="5.6" min-int-size="32"/>
<nextcloud min-version="14.0" max-version="14.0" />
<nextcloud min-version="18" max-version="20" />
</dependencies>
<ocsid>167289</ocsid>
<website>https://github.com/nextcloud/ocsms</website>
<bugs>https://github.com/nextcloud/ocsms/issues</bugs>
<repository type="git">https://github.com/nextcloud/ocsms</repository>
<screenshot small-thumbnail="https://raw.githubusercontent.com/nextcloud/ocsms/master/appinfo/screenshots/1-small.png">https://raw.githubusercontent.com/nextcloud/ocsms/master/appinfo/screenshots/1.png</screenshot>
<fulltextsearch>
<provider>OCA\OcSms\Provider\FullTextSearchProvider</provider>
</fulltextsearch>
<repair-steps>
<post-migration>
<step>OCA\OcSms\Migration\FixConversationReadStates</step>
<step>OCA\OcSms\Migration\FixConversationReadStates</step>
</post-migration>
</repair-steps>
<navigations>
<navigation>
<id>ocsms</id>
<name>Phone Sync</name>
<route>ocsms.sms.index</route>
<icon>app.svg</icon>
</navigation>
</navigations>
</info>

View File

@ -43,7 +43,7 @@ $application->registerRoutes($this, array('routes' => array(
array('name' => 'api#fetch_messages_count', 'url' => '/api/v2/messages/count', 'verb' => 'GET'), // Android APIv2
// Android API v3
// @TODO
array('name' => 'api#generate_sms_test_data', 'url' => '/api/v3/test/generate_sms_data', 'verb' => 'POST'), // Android APIv3
// Android API v4
// @TODO future calls to sending calls recorded on the phone

View File

@ -229,4 +229,25 @@ class ApiController extends Controller {
// @TODO
return new JSONResponse(array("messages" => array()));
}
/**
* @NoAdminRequired
* @NoCSRFRequired
*
* @param $smsCount
* @param $smsDatas
* @return JSONResponse
*
* produce a bunch of data to test application
*/
public function generateSmsTestData () {
return $this->push(2, array(
array("_id" => 702, "type" => 1, "mbox" => 2, "read" => "true",
"seen" => "true", "date" => 1654777747, "address" => "+33123456789",
"body" => "hello dude"),
array("_id" => 685, "type" => 1, "mbox" => 1, "read" => "true",
"seen" => "true", "date" => 1654777777, "address" => "+33123456789",
"body" => "😀🌍⭐🌎🌔🌒🐕🍖🥂🍻🎮🤸‍♂️🚇🈲❕📘📚📈🇸🇨🇮🇲"),
));
}
}

View File

@ -80,7 +80,21 @@ class SmsController extends Controller {
$params = array('user' => $this->userId,
'mailboxes' => $mboxes
);
return new TemplateResponse($this->appName, 'main', $params);
$response = new TemplateResponse($this->appName, 'main', $params);
$this->addContentSecurityToResponse($response);
return $response;
}
/**
* Adds the domain "data:" to the allowed image domains
* this function is called by reference
*
* @param TemplateResponse $response
*/
private function addContentSecurityToResponse($response) {
$csp = new Http\ContentSecurityPolicy();
$csp->allowEvalScript(true);
$response->setContentSecurityPolicy($csp);
}
/**

View File

@ -3,6 +3,10 @@
width: 100%;
}
body.dark #app {
color: var(--color-background-dark);
}
#app-navigation {
box-sizing: border-box;
border-left: 1px solid #ddd;
@ -166,6 +170,10 @@
float: left;
}
.msg-sent a:link, .msg-sent a:visited, .msg-recv a:link, .msg-recv a:visited {
text-decoration: underline;
}
.msg-date {
color: #666;
font-style: italic;
@ -281,6 +289,13 @@ label {
flex-direction: column;
}
img.emoji {
height: 1em;
width: 1em;
margin: 0 .05em 0 .1em;
vertical-align: -0.1em;
}
.contact-list-no-contact {
padding: 1em;
font-size: 1.5em;

View File

@ -26,7 +26,7 @@ class ConversationStateMapper extends Mapper {
public function getLast ($userId) {
$qb = $this->db->getQueryBuilder();
$qb->selectAlias($qb->createFunction('MAX(int_date)'), 'mx')
->from('ocsms_conversation_read_states')
->from('ocsms_conv_r_states')
->where($qb->expr()->andX(
$qb->expr()->eq('user_id', $qb->createNamedParameter($userId))
));
@ -42,7 +42,7 @@ class ConversationStateMapper extends Mapper {
public function getLastForPhoneNumber ($userId, $phoneNumber) {
$qb = $this->db->getQueryBuilder();
$qb->selectAlias($qb->createFunction('MAX(int_date)'), 'mx')
->from('ocsms_conversation_read_states')
->from('ocsms_conv_r_states')
->where($qb->expr()->andX(
$qb->expr()->eq('user_id', $qb->createNamedParameter($userId)),
$qb->expr()->eq('phone_number', $qb->createNamedParameter($phoneNumber))
@ -59,7 +59,7 @@ class ConversationStateMapper extends Mapper {
public function setLast ($userId, $phoneNumber, $lastDate) {
$this->db->beginTransaction();
$qb = $this->db->getQueryBuilder();
$qb->delete('ocsms_conversation_read_states')
$qb->delete('ocsms_conv_r_states')
->where($qb->expr()->andX(
$qb->expr()->eq('user_id', $qb->createNamedParameter($userId)),
$qb->expr()->eq('phone_number', $qb->createNamedParameter($phoneNumber))
@ -67,7 +67,7 @@ class ConversationStateMapper extends Mapper {
$qb->execute();
$qb = $this->db->getQueryBuilder();
$qb->insert('ocsms_conversation_read_states')
$qb->insert('ocsms_conv_r_states')
->values(array(
'user_id' => $qb->createNamedParameter($userId),
'phone_number' => $qb->createNamedParameter($phoneNumber),

View File

@ -132,13 +132,17 @@ class SmsMapper extends Mapper {
}
$phoneList[$fmtPN][$pn] += 1;
}
$fpn = PhoneNumberFormatter::format($country, $phoneNumber);
if(isset($phoneList[$fpn])){
$fpn = $phoneNumber;
if(isset($phoneList[$fpn])) {
return $phoneList[$fpn];
}
else {
return array();
$fpn = PhoneNumberFormatter::format($country, $fpn);
if (isset($phoneList[$fpn])) {
return $phoneList[$fpn];
}
return array();
}
public function getAllMessagesForPhoneNumber ($userId, $phoneNumber, $country, $minDate = 0) {

BIN
doc/favicon-16x16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 B

BIN
doc/favicon-32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

60
doc/index.html Normal file
View File

@ -0,0 +1,60 @@
<!-- HTML for static distribution bundle build -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Swagger UI</title>
<link rel="stylesheet" type="text/css" href="./swagger-ui.css" >
<link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" />
<style>
html
{
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after
{
box-sizing: inherit;
}
body
{
margin:0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="./swagger-ui-bundle.js"> </script>
<script src="./swagger-ui-standalone-preset.js"> </script>
<script>
window.onload = function() {
// Begin Swagger UI call region
const ui = SwaggerUIBundle({
url: "https://raw.githubusercontent.com/nextcloud/ocsms/master/doc/swagger.yml",
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout"
})
// End Swagger UI call region
window.ui = ui
}
</script>
</body>
</html>

67
doc/oauth2-redirect.html Normal file
View File

@ -0,0 +1,67 @@
<!doctype html>
<html lang="en-US">
<body onload="run()">
</body>
</html>
<script>
'use strict';
function run () {
var oauth2 = window.opener.swaggerUIRedirectOauth2;
var sentState = oauth2.state;
var redirectUrl = oauth2.redirectUrl;
var isValid, qp, arr;
if (/code|token|error/.test(window.location.hash)) {
qp = window.location.hash.substring(1);
} else {
qp = location.search.substring(1);
}
arr = qp.split("&")
arr.forEach(function (v,i,_arr) { _arr[i] = '"' + v.replace('=', '":"') + '"';})
qp = qp ? JSON.parse('{' + arr.join() + '}',
function (key, value) {
return key === "" ? value : decodeURIComponent(value)
}
) : {}
isValid = qp.state === sentState
if ((
oauth2.auth.schema.get("flow") === "accessCode"||
oauth2.auth.schema.get("flow") === "authorizationCode"
) && !oauth2.auth.code) {
if (!isValid) {
oauth2.errCb({
authId: oauth2.auth.name,
source: "auth",
level: "warning",
message: "Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server"
});
}
if (qp.code) {
delete oauth2.state;
oauth2.auth.code = qp.code;
oauth2.callback({auth: oauth2.auth, redirectUrl: redirectUrl});
} else {
let oauthErrorMsg
if (qp.error) {
oauthErrorMsg = "["+qp.error+"]: " +
(qp.error_description ? qp.error_description+ ". " : "no accessCode received from the server. ") +
(qp.error_uri ? "More info: "+qp.error_uri : "");
}
oauth2.errCb({
authId: oauth2.auth.name,
source: "auth",
level: "error",
message: oauthErrorMsg || "[Authorization failed]: no accessCode received from the server"
});
}
} else {
oauth2.callback({auth: oauth2.auth, token: qp, isValid: isValid, redirectUrl: redirectUrl});
}
window.close();
}
</script>

93
doc/swagger-ui-bundle.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

3
doc/swagger-ui.css Normal file

File diff suppressed because one or more lines are too long

1
doc/swagger-ui.css.map Normal file
View File

@ -0,0 +1 @@
{"version":3,"sources":[],"names":[],"mappings":"","file":"swagger-ui.css","sourceRoot":""}

9
doc/swagger-ui.js Normal file

File diff suppressed because one or more lines are too long

1
doc/swagger-ui.js.map Normal file

File diff suppressed because one or more lines are too long

58
doc/swagger.yml Normal file
View File

@ -0,0 +1,58 @@
swagger: "2.0"
info:
version: 2.0.0
title: OcSMS API
description: OcSMS API specification
schemes:
- https
host: nextcloud.example.org
basePath: /apps/ocsms
paths:
/get/apiversion:
get:
summary: Retrieve API version
description: Returns the current API version.
responses:
200:
description: OcSMS API version
schema:
required:
- version
properties:
version:
type: integer
# TODO: complete this
/push:
post:
summary: Push messages to server
description: Push a list of messages to the server
responses:
200:
# TODO: complete this
/replace:
post:
summary: Replace messages to server
description: Push a list of messages to replace on the server
responses:
200:
# TODO: complete this
/get/smsidlist:
get:
# TODO: complete this
/get/lastmsgtime:
get:
# TODO: complete this
/api/v2/phones/list:
get:
# TODO: complete this
/api/v2/messages/{start}/{limit}:
get:
# TODO: complete this
/api/v2/messages/count:
get:
# Not implemented
/api/v4/messages/sendqueue:
get:

View File

@ -1,10 +1,20 @@
let gulp = require("gulp");
let concat = require('gulp-concat');
let rename = require("gulp-rename");
let uglify = require('gulp-uglify-es').default;
js_files = [
'js/devel/app.js',
'js/devel/settings.js',
'js/devel/contactlist.js',
'js/devel/conversation.js',
'js/devel/helpers.js',
'js/devel/notifications.js'
];
gulp.task("uglify", function () {
return gulp.src("js/devel/*.js")
.pipe(rename("app.min.js"))
return gulp.src(js_files)
.pipe(concat("app.min.js"))
.pipe(uglify(/* options */))
.pipe(gulp.dest("js/"));
});
});

1
js/anchorme.min.js vendored Normal file

File diff suppressed because one or more lines are too long

2
js/app.min.js vendored

File diff suppressed because one or more lines are too long

View File

@ -97,11 +97,12 @@ var Conversation = new Vue({
// Return (int) msgCount, (str) htmlConversation
formatConversation: function (jsondata) {
// Improve jQuery performance
let buf = false;
// Improve JS performance
let msgClass = '';
let msgCount = 0;
let buf = false;
// Improve JS performance
let msgClass = '';
let msgCount = 0;
let self = this;
let twemojiOptions = { base: OC.generateUrl('/apps/ocsms/js/twemoji/')};
$.each(jsondata["conversation"], function (id, vals) {
if (vals["type"] == 1) {
@ -124,7 +125,7 @@ var Conversation = new Vue({
'id': id,
'type': msgClass,
'date': new Date(id * 1),
'content': vals['msg']
'content': twemoji.parse(anchorme(escapeHTML(vals['msg'])), twemojiOptions)
});
buf = true;
msgCount++;

View File

@ -26,4 +26,52 @@ function toBool(str) {
return false;
}
return null;
}
}
function escapeHTML(string) {
var str = '' + string
var matchHtmlRegExp = /["'&<>]/
var match = matchHtmlRegExp.exec(str)
if (!match) {
return str
}
var escape
var html = ''
var index = 0
var lastIndex = 0
for (index = match.index; index < str.length; index++) {
switch (str.charCodeAt(index)) {
case 34: // "
escape = '&quot;'
break
case 38: // &
escape = '&amp;'
break
case 39: // '
escape = '&#39;'
break
case 60: // <
escape = '&lt;'
break
case 62: // >
escape = '&gt;'
break
default:
continue
}
if (lastIndex !== index) {
html += str.substring(lastIndex, index)
}
lastIndex = index + 1
html += escape
}
return lastIndex !== index
? html + str.substring(lastIndex, index)
: html
}

BIN
js/twemoji/72x72/1f004.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 551 B

BIN
js/twemoji/72x72/1f0cf.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 923 B

BIN
js/twemoji/72x72/1f170.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 557 B

BIN
js/twemoji/72x72/1f171.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 B

BIN
js/twemoji/72x72/1f17e.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 562 B

BIN
js/twemoji/72x72/1f17f.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 B

BIN
js/twemoji/72x72/1f18e.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 B

BIN
js/twemoji/72x72/1f191.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 B

BIN
js/twemoji/72x72/1f192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

BIN
js/twemoji/72x72/1f193.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 B

BIN
js/twemoji/72x72/1f194.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

BIN
js/twemoji/72x72/1f195.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

BIN
js/twemoji/72x72/1f196.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 B

BIN
js/twemoji/72x72/1f197.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

BIN
js/twemoji/72x72/1f198.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

BIN
js/twemoji/72x72/1f199.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

BIN
js/twemoji/72x72/1f19a.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 747 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 697 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 849 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 989 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 662 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 723 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 481 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 847 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 835 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 B

BIN
js/twemoji/72x72/1f1e6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 940 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 978 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 919 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 884 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 666 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 871 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1000 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
js/twemoji/72x72/1f1e7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 602 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 961 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 B

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