Compare commits
367 Commits
master
...
qa/s3-mult
Author | SHA1 | Date |
---|---|---|
Julius Härtl | 2da48df8a1 | |
Julius Härtl | 46fa9cefec | |
Roeland Jago Douma | bd555dbe85 | |
Joas Schilling | ae8b0ffdbc | |
Roeland Jago Douma | 591aac3b03 | |
Joas Schilling | bffdbb1258 | |
Roeland Jago Douma | 3e4fa6728a | |
Roeland Jago Douma | 23148e7682 | |
Roeland Jago Douma | 58839f2923 | |
Roeland Jago Douma | c12f5482b2 | |
Nextcloud bot | 2e13dc2aa1 | |
Nextcloud bot | 1f3d1546dd | |
Lukas Reschke | d66e86c56c | |
Nextcloud bot | 6b67b81287 | |
Nextcloud bot | a9b5cde333 | |
Nextcloud bot | e85188f429 | |
Nextcloud bot | fe7ad83c76 | |
dependabot-preview[bot] | 5a47a7ae5d | |
dependabot-preview[bot] | 3b8fb0096b | |
John Molakvoæ | b59cf16325 | |
Nextcloud bot | e14860c8f2 | |
Roeland Jago Douma | fd6ffd0257 | |
blizzz | 21e2be4fb3 | |
Morris Jobke | 9010524442 | |
Julius Härtl | dc8e819915 | |
Julius Härtl | 89a19a338e | |
Robin Appelman | 17b64a4606 | |
Robin Appelman | 40507ca543 | |
Joas Schilling | e0dcf642de | |
Vincent Petry | 6ac708c99a | |
Julius Härtl | d6bad03a5c | |
Morris Jobke | 052c9abfdf | |
Joas Schilling | 0c348863e7 | |
Nextcloud bot | 737f755941 | |
Joas Schilling | f38248dcd4 | |
kesselb | 618a48487f | |
Julius Härtl | 00daf58da8 | |
Christoph Wurst | 0432b32535 | |
Christoph Wurst | 3e5fbd4ef1 | |
Nextcloud bot | 6d70bd9246 | |
Arthur Schiwon | caec3a8cee | |
Joas Schilling | e3927afe19 | |
Samuel | 3073732002 | |
Samuel | c49cff453c | |
Samuel | 22ddcfa740 | |
Julius Härtl | fc2e09b667 | |
Joas Schilling | b2072cd6fc | |
Christoph Wurst | ba1d671055 | |
Joas Schilling | 3afeb5c908 | |
Joas Schilling | 3ebe3a0e5f | |
Nextcloud bot | 68e9013c39 | |
Roeland Jago Douma | f9cef329ba | |
Joas Schilling | 2b8dfc03b6 | |
Roeland Jago Douma | 2cc0fd0f62 | |
J0WI | 6691bc4bd4 | |
Nick Sweeting | e7aefc3424 | |
Joas Schilling | a956c53e04 | |
Vincent Petry | 15e52fa7cb | |
Vincent Petry | 6cb5f36cf4 | |
Vincent Petry | 9ca91c15db | |
Vincent Petry | ec492eadfa | |
Vincent Petry | 92ff94083b | |
Vincent Petry | ecae714157 | |
Vincent Petry | ab22999eb9 | |
Vincent Petry | 2613826fcc | |
Vincent Petry | 73ec32d19b | |
Vincent Petry | 2fd62b4f0d | |
Vincent Petry | ad402ffc96 | |
Vincent Petry | b9d59e2994 | |
Vincent Petry | 5c854ba132 | |
Vincent Petry | 5d76574a81 | |
Vincent Petry | e2ab530ee3 | |
Vincent Petry | f45f826b52 | |
Nextcloud bot | d6156b970b | |
Nextcloud bot | f10f9d090a | |
Nextcloud bot | dd99255087 | |
Robin Appelman | 861fbd06a5 | |
Roeland Jago Douma | 785f6c63a0 | |
Roeland Jago Douma | d65ce19f6e | |
Roeland Jago Douma | cc5c93ffb3 | |
Roeland Jago Douma | 5d8df1bed2 | |
Christian Weiske | 74794bf100 | |
John Molakvoæ | 9a4cbba7f6 | |
Nextcloud bot | 9ddc6df797 | |
Morris Jobke | 82f6d632b6 | |
Morris Jobke | cf8be87e47 | |
Valdnet | 23ccae6840 | |
Robin Appelman | fdf7eb10a2 | |
Nextcloud bot | 769c6fedad | |
Morris Jobke | ffb7c51ca6 | |
Morris Jobke | f7922bdd0d | |
Morris Jobke | ba9e1c0d1a | |
Vincent Petry | bb7ff7f440 | |
Valdnet | 7a7bd29177 | |
Morris Jobke | 88b0b5aa40 | |
Morris Jobke | e5dc0b7ad1 | |
Vincent Petry | 447ccc1e55 | |
Vincent Petry | bad3243944 | |
Vincent Petry | 3e815f555d | |
Vincent Petry | 365c99b0be | |
Vincent Petry | 2c4b21b2fc | |
Vincent Petry | 544ea63613 | |
John Molakvoæ (skjnldsv) | e9fafce71b | |
Nextcloud bot | ef273fef4b | |
Robin Appelman | 03c430868a | |
Robin Appelman | 5a1ae2c3c0 | |
Robin Appelman | 2c565d68bc | |
Robin Appelman | d4381c0eac | |
Robin Appelman | 8551ee079d | |
Robin Appelman | 277c0039f6 | |
Robin Appelman | c8679885f6 | |
Robin Appelman | 423e1581e0 | |
Robin Appelman | 2500d296c5 | |
Robin Appelman | d2245734d4 | |
Robin Appelman | 680e21b7c5 | |
Nextcloud bot | c60f0e06d0 | |
Daniel Calviño Sánchez | e6ee498f88 | |
Daniel Calviño Sánchez | 4cb539bf09 | |
Morris Jobke | a07e171df7 | |
Roeland Jago Douma | e12e2ae8a3 | |
Joas Schilling | 3fd9d0dc50 | |
Joas Schilling | e9ea4a0f01 | |
Joas Schilling | f2acf492cf | |
Joas Schilling | 553a25e1a1 | |
John Molakvoæ | 83b7b6f474 | |
Valdnet | 207e8cbf9e | |
Valdnet | ba1e966439 | |
Nextcloud bot | 2e2d2e79e8 | |
Morris Jobke | 476c30b807 | |
Nextcloud bot | 89319b995f | |
Sascha Wiswedel | a52482246b | |
Roeland Jago Douma | b3bf640111 | |
Nextcloud bot | 798eff0161 | |
Robin Appelman | 7f066931e4 | |
Morris Jobke | eaae526ba7 | |
Morris Jobke | 06a9463e11 | |
Vincent Petry | 0e5379a7b3 | |
Robin Appelman | def56ca0cd | |
Vincent Petry | 695ccecf26 | |
Morris Jobke | 682df0b788 | |
Nextcloud bot | 942b40583c | |
Roeland Jago Douma | 8942d76f72 | |
Vincent Petry | 15cb3f0624 | |
Daniel Calviño Sánchez | 7e87b12271 | |
Daniel Calviño Sánchez | 388110a35e | |
Vincent Petry | 73d2f42d41 | |
Nextcloud bot | 4ebf9c2d1a | |
Morris Jobke | 0e642a5f5e | |
Morris Jobke | c1c377f609 | |
Morris Jobke | a70bdb962b | |
Morris Jobke | 95ebe5e819 | |
Arthur Schiwon | 4cd15b7815 | |
Morris Jobke | 4b3684fbc4 | |
Morris Jobke | aa8a31b3ec | |
Morris Jobke | a2d17c3c02 | |
kesselb | 5ecbfa4f20 | |
Robin Appelman | 0532f64aa8 | |
John Molakvoæ (skjnldsv) | 1be574319c | |
Vincent Petry | 215967db96 | |
Morris Jobke | 162e763e26 | |
Nextcloud bot | fd29c1d72a | |
Robin Appelman | 1089d8545b | |
Robin Appelman | 44d4957548 | |
Robin Appelman | f6f92e8bc6 | |
Robin Appelman | 719db4cee9 | |
Robin Appelman | bb180a95bb | |
Morris Jobke | 120aefb795 | |
Christoph Wurst | e09d59aa81 | |
Nextcloud bot | 8d6a4bef6c | |
Robin Appelman | e5ffb96c36 | |
Robin Appelman | c727879073 | |
Robin Appelman | ec0985ba68 | |
Robin Appelman | eb56b1d0bd | |
Robin Appelman | 046638abeb | |
Vincent Petry | f109677856 | |
Robin Appelman | f2a35cd3f8 | |
Roeland Jago Douma | 8806bbe6fe | |
Roeland Jago Douma | 7059b0b21f | |
Nextcloud bot | 7c21fba61f | |
Nextcloud bot | 0ea077ae1f | |
Nextcloud bot | 5b923eee03 | |
Robin Appelman | 6308267aff | |
Robin Appelman | a5ceded17f | |
Robin Appelman | b6af62fd24 | |
Roeland Jago Douma | 7f0f9fcd93 | |
Roeland Jago Douma | 3ac6dc3b50 | |
Joas Schilling | 2d92f1117b | |
Joas Schilling | 6951c4ef56 | |
Joas Schilling | 3efb2d2208 | |
Nextcloud bot | 6e2f7ddc7a | |
Julius Härtl | cd5e27e3f3 | |
Vincent Petry | 04dd7b234e | |
Vincent Petry | ec443159af | |
Vincent Petry | 1d0b210d00 | |
Roeland Jago Douma | 0e8ada1a8a | |
Joas Schilling | 62ef45028e | |
Joas Schilling | 5fa52d492a | |
Joas Schilling | 99c1eda9c5 | |
Joas Schilling | 490bfa7330 | |
Joas Schilling | 49f7d08b38 | |
Joas Schilling | 72fb176ec9 | |
Joas Schilling | 5afaf3d06c | |
Joas Schilling | 77f6d768bc | |
Joas Schilling | 8069c52a85 | |
Joas Schilling | 30610aa615 | |
Joas Schilling | c7560ab3a9 | |
Joas Schilling | 52d43bf3cc | |
Joas Schilling | 88855d8827 | |
Joas Schilling | 5af22f84b3 | |
Joas Schilling | 19ccc992d5 | |
Joas Schilling | 3feca65399 | |
Joas Schilling | ebb9f1d16a | |
Julius Härtl | 1a25b2e402 | |
Nextcloud bot | e28dbef7a1 | |
Robin Appelman | ac29f27b17 | |
Roeland Jago Douma | cc48b81411 | |
Roeland Jago Douma | f94c69123a | |
Joas Schilling | a659ee1c2d | |
Roeland Jago Douma | fa2dc9abc5 | |
kesselb | c74cccd12c | |
Vincent Petry | ff95956e5d | |
Roeland Jago Douma | 4c68aee72b | |
Roeland Jago Douma | 4cf3a9f81e | |
Julius Härtl | deb01f04da | |
Nextcloud bot | 3c07ae86ea | |
Roeland Jago Douma | 1ac8630a51 | |
Nextcloud bot | 45cc358d79 | |
Julius Härtl | ecb64381fb | |
Daniel Calviño Sánchez | 8185c46bd8 | |
Daniel Calviño Sánchez | 3a470c2ebe | |
Daniel Calviño Sánchez | b086a0f007 | |
Daniel Calviño Sánchez | 1058abc97c | |
Daniel Calviño Sánchez | 270db2f523 | |
Daniel Calviño Sánchez | 4c98d2949f | |
Daniel Calviño Sánchez | 34814adb36 | |
Daniel Calviño Sánchez | d03bc3e535 | |
Daniel Calviño Sánchez | f3a4ec723a | |
Roeland Jago Douma | 6842530d7f | |
Nextcloud bot | 48df1bef17 | |
Nextcloud bot | 0dc05f51ef | |
Roeland Jago Douma | e645482089 | |
Nextcloud bot | 5e6a891fce | |
Richard Steinmetz | 4c2159a622 | |
Vincent Petry | 9f7973a70e | |
Roeland Jago Douma | d81954f913 | |
Roeland Jago Douma | 3aba094d86 | |
Roeland Jago Douma | b4b55616c2 | |
Roeland Jago Douma | 01b9988a2d | |
Robin Appelman | 67d62a820c | |
Nextcloud bot | 163bf97c3e | |
Roeland Jago Douma | 8ab601cf66 | |
Roeland Jago Douma | 5e2a9de3f0 | |
Vincent Petry | 1575b09d0d | |
Roeland Jago Douma | 4df7cf1f54 | |
Roeland Jago Douma | 27e2f066a1 | |
Nextcloud bot | 5a39900c24 | |
Daniel Kesselberg | 549cefed15 | |
Roeland Jago Douma | 3922966f3c | |
Julius Härtl | f1363bcfde | |
Roeland Jago Douma | 7c8c8902fa | |
Nextcloud bot | 2a66d4e5d1 | |
Arthur Schiwon | 9d937489db | |
Roeland Jago Douma | 8aafd0d765 | |
Roeland Jago Douma | db5229bd70 | |
Robin Appelman | 36749161d7 | |
Julius Härtl | 472f6faf3f | |
Julius Härtl | 060a0101ae | |
Roeland Jago Douma | 65db84d0fc | |
Anna Larch | b5de59e4d7 | |
Jonas Rittershofer | 41930265e9 | |
kesselb | 097bdf973e | |
Nextcloud bot | 3aca170a3e | |
Roeland Jago Douma | b96a0cd77d | |
Roeland Jago Douma | d0f4bac711 | |
Roeland Jago Douma | 9c23684dcd | |
Sascha Wiswedel | 7897414f1a | |
Roeland Jago Douma | 256927d8d4 | |
Arthur Schiwon | 81fcc0a618 | |
Julius Härtl | 1f45359c26 | |
Nextcloud bot | 05978f40ff | |
Nextcloud bot | 38f40f821d | |
Nextcloud bot | a07d4d3ed5 | |
Nextcloud bot | b5eeca3ab3 | |
Christoph Wurst | 8ab3a3312c | |
Christoph Wurst | 2eb21bdceb | |
Nextcloud bot | d523d9973f | |
Nextcloud bot | 90fa31c280 | |
Joas Schilling | bffd87abf4 | |
Nextcloud bot | cb9edff655 | |
Nextcloud bot | f405de31da | |
Nextcloud bot | 8bdc933821 | |
Roeland Jago Douma | 8985b79306 | |
Nextcloud bot | 704dfee918 | |
Joas Schilling | 6ed4c604c7 | |
blizzz | 49b7b5ba53 | |
Roeland Jago Douma | 5c3dd4cc74 | |
Nextcloud bot | 7c11b9e974 | |
Christoph Wurst | cff48176c3 | |
Arthur Schiwon | 2df924bdce | |
Christoph Wurst | 2724bb8c86 | |
Roeland Jago Douma | ae8d2bd28a | |
Joas Schilling | a745d58133 | |
Nextcloud bot | 1db95da5d1 | |
Dan VerWeire | d3415f4bf9 | |
Christoph Wurst | 9fa902f0e2 | |
Nextcloud bot | b4b5d9b811 | |
Roeland Jago Douma | b32a4ba969 | |
Roeland Jago Douma | 4a2f46e188 | |
Joas Schilling | 82ab80e6e8 | |
Roeland Jago Douma | efa1ef5d69 | |
Nextcloud bot | 0c909dd072 | |
Nextcloud bot | cca4693fc7 | |
Joas Schilling | 219cc77719 | |
Nextcloud bot | 69daa9e0a8 | |
Roeland Jago Douma | 132966e149 | |
Roeland Jago Douma | 32a49e228b | |
Roeland Jago Douma | 2163ac59d5 | |
Nextcloud bot | a15066b840 | |
Christoph Wurst | 3878bcbc11 | |
Roeland Jago Douma | 1ddf59efc0 | |
Roeland Jago Douma | cb3199f061 | |
Elsie Hupp | 68ce1a9a0a | |
Elsie Hupp | 4551fdd2e3 | |
elsiehupp | f21fd1097e | |
Joas Schilling | 5164f43bd3 | |
Joas Schilling | 814a8acccc | |
Joas Schilling | cf11f914a7 | |
Joas Schilling | 8e43331d47 | |
Roeland Jago Douma | 1afa136060 | |
Nextcloud bot | a858513eee | |
Roeland Jago Douma | 0ea266e8bf | |
Nextcloud bot | c00819572f | |
Roeland Jago Douma | 7a09536114 | |
Nextcloud bot | 0fd3c5f8cb | |
Vincent Petry | 9696791460 | |
Nextcloud bot | 4257656130 | |
Nextcloud bot | 6d813b419e | |
Vincent Petry | a4d2581c65 | |
Nextcloud bot | 7216f876dd | |
Roeland Jago Douma | be4db2d48d | |
Roeland Jago Douma | f24ce39733 | |
Christoph Wurst | a35bebd7d4 | |
Roeland Jago Douma | ba63f588e7 | |
Roeland Jago Douma | fa6e799e31 | |
Roeland Jago Douma | 83d17b0fb4 | |
Nextcloud bot | 5ec0132c17 | |
Vincent Petry | a1e7ac9e33 | |
Vincent Petry | 04473c0f0e | |
Roeland Jago Douma | ee8c35614a | |
Nextcloud bot | 0ee17df264 | |
Roeland Jago Douma | 2acc4db356 | |
Christoph Wurst | f57fc89975 | |
Christoph Wurst | f4b32f9676 | |
Christoph Wurst | 62f9f4f7fc | |
Christoph Wurst | f8a87f8cdc | |
Christoph Wurst | b5fd6950a1 | |
Joas Schilling | fa3a2820f4 | |
Nextcloud bot | 207b7d54fb | |
James Letendre | 74d90d0165 | |
James Letendre | b65b2bbf55 | |
Arthur Schiwon | a834819abb | |
James Letendre | 5750d79181 | |
Arthur Schiwon | 6ebb368265 | |
Arthur Schiwon | cfc00aa2cd | |
Arthur Schiwon | e5b59531a3 | |
James Letendre | c9a724829a | |
Roeland Jago Douma | 43b101caeb |
|
@ -1,47 +0,0 @@
|
|||
FROM ubuntu:focal
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# PHP
|
||||
RUN apt-get update -y
|
||||
RUN apt-get install --no-install-recommends -y \
|
||||
php7.4 \
|
||||
php7.4-gd \
|
||||
php7.4-zip \
|
||||
php7.4-curl \
|
||||
php7.4-xml \
|
||||
php7.4-mbstring \
|
||||
php7.4-sqlite \
|
||||
php7.4-xdebug \
|
||||
php7.4-pgsql \
|
||||
php7.4-intl \
|
||||
php7.4-imagick \
|
||||
php7.4-gmp \
|
||||
php7.4-apcu \
|
||||
php7.4-bcmath \
|
||||
libmagickcore-6.q16-3-extra \
|
||||
curl \
|
||||
vim \
|
||||
lsof \
|
||||
make \
|
||||
nodejs \
|
||||
npm
|
||||
|
||||
RUN echo "xdebug.remote_enable = 1" >> /etc/php/7.4/cli/conf.d/20-xdebug.ini
|
||||
RUN echo "xdebug.remote_autostart = 1" >> /etc/php/7.4/cli/conf.d/20-xdebug.ini
|
||||
|
||||
# Docker
|
||||
RUN apt-get -y install \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
gnupg-agent \
|
||||
software-properties-common
|
||||
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
|
||||
RUN add-apt-repository \
|
||||
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
|
||||
$(lsb_release -cs) \
|
||||
stable"
|
||||
RUN apt-get update -y
|
||||
RUN apt-get install -y docker-ce docker-ce-cli containerd.io
|
||||
RUN ln -s /var/run/docker-host.sock /var/run/docker.sock
|
|
@ -1,18 +0,0 @@
|
|||
<?php
|
||||
|
||||
$cloudEnvironmentId = getenv('CLOUDENV_ENVIRONMENT_ID');
|
||||
|
||||
$CONFIG = [
|
||||
'mail_from_address' => 'no-reply',
|
||||
'mail_smtpmode' => 'smtp',
|
||||
'mail_sendmailmode' => 'smtp',
|
||||
'mail_domain' => 'example.com',
|
||||
'mail_smtphost' => 'localhost',
|
||||
'mail_smtpport' => '1025',
|
||||
'memcache.local' => '\OC\Memcache\APCu',
|
||||
];
|
||||
|
||||
if($cloudEnvironmentId !== true) {
|
||||
$CONFIG['overwritehost'] = $cloudEnvironmentId . '-80.apps.codespaces.githubusercontent.com';
|
||||
$CONFIG['overwriteprotocol'] = 'https';
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"name": "NextcloudServer",
|
||||
"dockerComposeFile": "docker-compose.yml",
|
||||
"service": "nextclouddev",
|
||||
"postCreateCommand": ".devcontainer/setup.sh",
|
||||
"forwardPorts": [
|
||||
80,
|
||||
8080,
|
||||
8025
|
||||
],
|
||||
"runArgs": [
|
||||
"--privileged"
|
||||
],
|
||||
"extensions": [
|
||||
"felixfbecker.php-debug",
|
||||
"felixfbecker.php-intellisense",
|
||||
"ms-azuretools.vscode-docker"
|
||||
],
|
||||
"settings": {
|
||||
"php.suggest.basic": false,
|
||||
}
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
version: '3'
|
||||
services:
|
||||
nextclouddev:
|
||||
build: .
|
||||
volumes:
|
||||
- .:/workspace:cached
|
||||
- /var/run/docker.sock:/var/run/docker-host.sock
|
||||
command: /bin/sh -c "while sleep 1000; do :; done"
|
||||
ports:
|
||||
- 80:80
|
||||
- 8080:8080
|
||||
- 8025:8025
|
||||
|
||||
db:
|
||||
image: postgres
|
||||
restart: always
|
||||
environment:
|
||||
POSTGRES_PASSWORD: postgres
|
||||
network_mode: service:nextclouddev
|
||||
|
||||
adminer:
|
||||
image: adminer
|
||||
restart: always
|
||||
network_mode: service:nextclouddev
|
||||
|
||||
mailhog:
|
||||
image: mailhog/mailhog
|
||||
restart: always
|
||||
network_mode: service:nextclouddev
|
|
@ -1,8 +0,0 @@
|
|||
#!/bin/bash
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../" >/dev/null 2>&1 && pwd )"
|
||||
|
||||
cd $DIR/
|
||||
git submodule update --init
|
||||
|
||||
# Codespace config
|
||||
cp .devcontainer/codespace.config.php config/codespace.config.php
|
425
.drone.yml
425
.drone.yml
File diff suppressed because it is too large
Load Diff
|
@ -1,11 +0,0 @@
|
|||
# Ignoring folders for eslint
|
||||
node_modules/
|
||||
3rdparty/
|
||||
**/vendor/
|
||||
**/l10n/
|
||||
**/js/*
|
||||
*.config.js
|
||||
tests/lib/
|
||||
|
||||
# TODO: remove when comments files is not using handlebar templates anymore
|
||||
apps/comments/src/templates.js
|
|
@ -8,7 +8,7 @@ module.exports = {
|
|||
escapeHTML: true,
|
||||
oc_userconfig: true,
|
||||
dayNames: true,
|
||||
firstDay: true,
|
||||
firstDay: true
|
||||
},
|
||||
extends: ['@nextcloud'],
|
||||
rules: {
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
custom: https://nextcloud.com/include/
|
|
@ -1,8 +1,8 @@
|
|||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: ❓ Community Support and Help
|
||||
- name: ❓ Question
|
||||
url: https://help.nextcloud.com/
|
||||
about: Configuration, webserver/proxy or performance issues and other questions
|
||||
about: I have a question …
|
||||
- name: 💼 Nextcloud Enterprise
|
||||
url: https://portal.nextcloud.com/
|
||||
about: If you are a Nextcloud Enterprise customer, or need Professional support, so it can be resolved directly by our dedicated engineers more quickly
|
||||
about: If you are a customer and are using Nextcloud Enterprise, please submit your issue directly in the Nextcloud Portal so it can be resolved by our dedicated engineers more quickly.
|
||||
|
|
|
@ -1,165 +0,0 @@
|
|||
version: 2
|
||||
updates:
|
||||
# Linting and coding style
|
||||
- package-ecosystem: composer
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
|
||||
# Main master npm
|
||||
- package-ecosystem: npm
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
open-pull-requests-limit: 10
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
|
||||
# Testing master npm
|
||||
- package-ecosystem: npm
|
||||
directory: "/build"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
|
||||
# Testing master composer
|
||||
- package-ecosystem: composer
|
||||
directory: "/build/integration"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
|
||||
|
||||
# Main stableXX npm
|
||||
- package-ecosystem: npm
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
target-branch: stable19
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
ignore:
|
||||
# ignore all GitHub linguist patch updates
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major", "version-update:semver-minor"]
|
||||
|
||||
- package-ecosystem: npm
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
target-branch: stable20
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
ignore:
|
||||
# ignore all GitHub linguist patch updates
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major", "version-update:semver-minor"]
|
||||
|
||||
- package-ecosystem: npm
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
target-branch: stable21
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
ignore:
|
||||
# ignore all GitHub linguist patch updates
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major", "version-update:semver-minor"]
|
||||
|
||||
# Testing StableXX composer
|
||||
- package-ecosystem: composer
|
||||
directory: "/build/integration"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
target-branch: stable19
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
ignore:
|
||||
# ignore all GitHub linguist patch updates
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major", "version-update:semver-minor"]
|
||||
|
||||
- package-ecosystem: composer
|
||||
directory: "/build/integration"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
target-branch: stable20
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
ignore:
|
||||
# ignore all GitHub linguist patch updates
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major", "version-update:semver-minor"]
|
||||
|
||||
- package-ecosystem: composer
|
||||
directory: "/build/integration"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
target-branch: stable21
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
ignore:
|
||||
# ignore all GitHub linguist patch updates
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major", "version-update:semver-minor"]
|
|
@ -1,5 +1,5 @@
|
|||
name: Dependabot
|
||||
on: pull_request_target
|
||||
on: pull_request
|
||||
|
||||
jobs:
|
||||
auto-merge:
|
||||
|
@ -7,15 +7,13 @@ jobs:
|
|||
steps:
|
||||
# Default github action approve
|
||||
- uses: hmarr/auto-approve-action@v2.0.0
|
||||
if: github.ref == 'refs/heads/master' &&
|
||||
(github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]')
|
||||
if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]'
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# Nextcloud bot approve and merge request
|
||||
- uses: ahmadnassri/action-dependabot-auto-merge@v2
|
||||
if: github.ref == 'refs/heads/master' &&
|
||||
(github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]')
|
||||
- uses: ahmadnassri/action-dependabot-auto-merge@v1
|
||||
if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]'
|
||||
with:
|
||||
target: minor
|
||||
target: patch
|
||||
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
name: Pull request checks
|
||||
on: pull_request
|
||||
|
||||
jobs:
|
||||
commit-message-check:
|
||||
name: Block fixup and squash commits
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Run check
|
||||
uses: xt0rted/block-autosquash-commits-action@main
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
@ -15,7 +15,6 @@ jobs:
|
|||
uses: shivammathur/setup-php@master
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: ctype,curl,dom,fileinfo,gd,iconv,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
coverage: none
|
||||
- name: Lint
|
||||
run: composer run lint
|
||||
|
@ -30,7 +29,6 @@ jobs:
|
|||
uses: shivammathur/setup-php@master
|
||||
with:
|
||||
php-version: 7.4
|
||||
extensions: ctype,curl,dom,fileinfo,gd,iconv,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
coverage: none
|
||||
tools: cs2pr
|
||||
- name: Install dependencies
|
||||
|
@ -40,25 +38,3 @@ jobs:
|
|||
composer run cs:check -- --format=checkstyle | cs2pr
|
||||
composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 )
|
||||
shell: bash
|
||||
|
||||
node:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [12.x]
|
||||
|
||||
name: eslint node${{ matrix.node-version }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Set up node ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Lint
|
||||
run: npm run lint
|
||||
|
|
|
@ -9,7 +9,7 @@ on:
|
|||
|
||||
jobs:
|
||||
phpunit-oci8:
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
# do not stop on another job's failure
|
||||
|
@ -41,7 +41,7 @@ jobs:
|
|||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: ctype,curl,dom,fileinfo,gd,iconv,intl,json,mbstring,oci8,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, oci8
|
||||
tools: phpunit:8.5.2
|
||||
coverage: none
|
||||
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
name: Psalm show github
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- stable*
|
||||
|
||||
jobs:
|
||||
psalm:
|
||||
name: Psalm
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Psalm
|
||||
uses: docker://vimeo/psalm-github-actions
|
||||
continue-on-error: true
|
||||
with:
|
||||
composer_ignore_platform_reqs: false
|
||||
report_file: results.sarif
|
||||
- name: Upload Analysis results to GitHub
|
||||
uses: github/codeql-action/upload-sarif@v1
|
||||
with:
|
||||
sarif_file: results.sarif
|
|
@ -1,11 +1,10 @@
|
|||
name: Psalm Security Analysis
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- stable*
|
||||
pull_request:
|
||||
schedule:
|
||||
- cron: '0 0 * * 0'
|
||||
|
||||
jobs:
|
||||
psalm:
|
||||
|
@ -20,7 +19,6 @@ jobs:
|
|||
uses: docker://vimeo/psalm-github-actions
|
||||
with:
|
||||
security_analysis: true
|
||||
composer_ignore_platform_reqs: false
|
||||
report_file: results.sarif
|
||||
- name: Upload Security Analysis results to GitHub
|
||||
uses: github/codeql-action/upload-sarif@v1
|
||||
|
|
|
@ -17,7 +17,6 @@ jobs:
|
|||
uses: shivammathur/setup-php@master
|
||||
with:
|
||||
php-version: 7.4
|
||||
extensions: ctype,curl,dom,fileinfo,gd,iconv,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
coverage: none
|
||||
- name: Composer install
|
||||
run: composer i
|
||||
|
@ -43,7 +42,6 @@ jobs:
|
|||
uses: shivammathur/setup-php@master
|
||||
with:
|
||||
php-version: 7.4
|
||||
extensions: ctype,curl,dom,fileinfo,gd,iconv,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
coverage: none
|
||||
- name: Composer install
|
||||
run: composer i
|
||||
|
|
|
@ -19,7 +19,6 @@ jobs:
|
|||
uses: shivammathur/setup-php@master
|
||||
with:
|
||||
php-version: 7.4
|
||||
extensions: ctype,curl,dom,fileinfo,gd,iconv,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
coverage: none
|
||||
- name: Composer install
|
||||
run: composer i
|
||||
|
|
|
@ -9,15 +9,12 @@ use Nextcloud\CodingStandard\Config;
|
|||
$config = new Config();
|
||||
$config
|
||||
->getFinder()
|
||||
->ignoreVCSIgnored(true)
|
||||
->exclude('config')
|
||||
->exclude('data')
|
||||
->notPath('3rdparty')
|
||||
->notPath('build/integration/vendor')
|
||||
->notPath('build/lib')
|
||||
->notPath('build/node_modules')
|
||||
->notPath('build/stubs')
|
||||
->notPath('composer')
|
||||
->notPath('node_modules')
|
||||
->notPath('vendor')
|
||||
->in(__DIR__);
|
||||
return $config;
|
||||
|
|
2
3rdparty
2
3rdparty
|
@ -1 +1 @@
|
|||
Subproject commit 0d7c15582f5d2478f333c0487acf88ae881d9206
|
||||
Subproject commit fbc872de93b18d3e87367d00e281982eab74c5b9
|
2
AUTHORS
2
AUTHORS
|
@ -133,7 +133,7 @@ Nextcloud is written by:
|
|||
- Joel S <joel.devbox@protonmail.com>
|
||||
- Johan Björk <johanimon@gmail.com>
|
||||
- Johannes Ernst <jernst@indiecomputing.com>
|
||||
- Johannes Leuker <developers@hosting.de>
|
||||
- Johannes Leuker <j.leuker@hosting.de>
|
||||
- Johannes Riedel <joeried@users.noreply.github.com>
|
||||
- Johannes Schlichenmaier <johannes@schlichenmaier.info>
|
||||
- Johannes Willnecker <johannes@willnecker.com>
|
||||
|
|
5
Makefile
5
Makefile
|
@ -1,7 +1,7 @@
|
|||
all: clean dev-setup build-js-production
|
||||
|
||||
# Dev env management
|
||||
dev-setup: clean npm-init
|
||||
dev-setup: clean clean-dev npm-init
|
||||
|
||||
npm-init:
|
||||
npm ci
|
||||
|
@ -43,6 +43,9 @@ clean:
|
|||
rm -rf apps/workflowengine/js/
|
||||
rm -rf core/js/dist
|
||||
|
||||
clean-dev:
|
||||
rm -rf node_modules
|
||||
|
||||
clean-git: clean
|
||||
git checkout -- apps/accessibility/js/
|
||||
git checkout -- apps/comments/js/
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<bugs>https://github.com/nextcloud/server/issues</bugs>
|
||||
|
||||
<dependencies>
|
||||
<nextcloud min-version="22" max-version="22"/>
|
||||
<nextcloud min-version="21" max-version="21"/>
|
||||
</dependencies>
|
||||
|
||||
<repair-steps>
|
||||
|
|
|
@ -2,9 +2,8 @@
|
|||
$color-main-text: #d8d8d8;
|
||||
$color-main-background: #181818;
|
||||
|
||||
$color-background-hover: lighten($color-main-background, 4%);
|
||||
$color-background-dark: lighten($color-main-background, 7%);
|
||||
$color-background-darker: lighten($color-main-background, 14%);
|
||||
$color-background-dark: lighten($color-main-background, 4%);
|
||||
$color-background-darker: lighten($color-main-background, 8%);
|
||||
|
||||
$color-placeholder-light: lighten($color-main-background, 10%);
|
||||
$color-placeholder-dark: lighten($color-main-background, 20%);
|
||||
|
|
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
|
@ -1,7 +1,7 @@
|
|||
OC.L10N.register(
|
||||
"accessibility",
|
||||
{
|
||||
"Dark theme" : "Tъмна Tема",
|
||||
"Dark theme" : "Активиране на тъмна тема",
|
||||
"Enable dark theme" : "Активиране на тъмна тема",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Тъмна тема, която облекчава очите ви, като намалява яркостта. Все още е в процес на разработка, затова, моля, докладвайте за всички проблеми, които откриете.",
|
||||
"High contrast mode" : "Висок контраст",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ "translations": {
|
||||
"Dark theme" : "Tъмна Tема",
|
||||
"Dark theme" : "Активиране на тъмна тема",
|
||||
"Enable dark theme" : "Активиране на тъмна тема",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Тъмна тема, която облекчава очите ви, като намалява яркостта. Все още е в процес на разработка, затова, моля, докладвайте за всички проблеми, които откриете.",
|
||||
"High contrast mode" : "Висок контраст",
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
OC.L10N.register(
|
||||
"accessibility",
|
||||
{
|
||||
"Dark theme" : "অন্ধকার থিম",
|
||||
"Enable dark theme" : "অন্ধকার থিম সক্ষম করুন",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "সামগ্রিক আলোকসজ্জা এবং উজ্জ্বলতা হ্রাস করে আপনার চোখকে সহজ করার জন্য একটি অন্ধকার থিম। এটা এখনও উন্নয়ন অধীনে, তাই কোনো সমস্যা আপনি খুঁজে পেতে পারেন রিপোর্ট করুন। ",
|
||||
"High contrast mode" : "উচ্চ বিপরীতে মোড ",
|
||||
"Enable high contrast mode" : "উচ্চতর বিপরীতে মোড সক্ষম করুন",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "আপনার নেভিগেশন সহজ করতে একটি উচ্চ বিপরীতে মোড। ভিজ্যুয়াল মান হ্রাস পাবে তবে স্বচ্ছতা বাড়ানো হবে। ",
|
||||
"Dyslexia font" : "ডিসলেক্সিয়া হরফ",
|
||||
"Enable dyslexia font" : "ডিসলেক্সিয়া হরফ সক্ষম করুন",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "ওপেনডাইলেক্সিক হ'ল ফ্রি টাইপফেস / হরফ ডিজাইলেসিয়া দ্বারা সৃষ্ট কিছু সাধারণ পাঠ্য ত্রুটি প্রশমিত করার জন্য ডিজাইন করা। ",
|
||||
"Accessibility" : "অ্যাক্সেসযোগ্যতা",
|
||||
"Accessibility options for nextcloud" : "নেক্সটক্লাউডের জন্য অ্যাক্সেসযোগ্যতার বিকল্পগুলি",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "নেক্সটক্লাউডের আপনার ব্যবহার সহজ করার জন্য একাধিক অ্যাক্সেসিবিলিটি বিকল্প সরবরাহ করে",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "সর্বজনীন অ্যাক্সেস আমাদের জন্য খুব গুরুত্বপূর্ণ। আমরা ওয়েব স্ট্যান্ডার্ডগুলি অনুসরণ করি এবং মাউস ছাড়াই এবং স্ক্রিনড্রেডারের মতো সহায়ক সফ্টওয়্যার ছাড়াও সবকিছুকে ব্যবহারযোগ্য করে তুলতে পরীক্ষা করে দেখি। আমরা এএএ স্তরে এমনকি উচ্চতর বিপরীতে থিম সহ, এএ স্তরের {নির্দেশিকা} ওয়েব সামগ্রী অ্যাক্সেসিবিলিটি নির্দেশিকা {লিনএন্ড} 2.1 এর সাথে অনুগত হতে লক্ষ্য করি।",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "আপনি যদি কোনও সমস্যা খুঁজে পান তবে তাদেরকে আমাদের ইস্যু ট্র্যাকার {লিনএন্ড} এ প্রতিবেদন করতে দ্বিধা করবেন না} এবং আপনি যদি এতে জড়িত থাকতে চান তবে আসুন {ডিজাইনটিয়াম} আমাদের ডিজাইন দল {লিনএন্ড} এ যোগদান করুন"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
|
@ -1,17 +0,0 @@
|
|||
{ "translations": {
|
||||
"Dark theme" : "অন্ধকার থিম",
|
||||
"Enable dark theme" : "অন্ধকার থিম সক্ষম করুন",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "সামগ্রিক আলোকসজ্জা এবং উজ্জ্বলতা হ্রাস করে আপনার চোখকে সহজ করার জন্য একটি অন্ধকার থিম। এটা এখনও উন্নয়ন অধীনে, তাই কোনো সমস্যা আপনি খুঁজে পেতে পারেন রিপোর্ট করুন। ",
|
||||
"High contrast mode" : "উচ্চ বিপরীতে মোড ",
|
||||
"Enable high contrast mode" : "উচ্চতর বিপরীতে মোড সক্ষম করুন",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "আপনার নেভিগেশন সহজ করতে একটি উচ্চ বিপরীতে মোড। ভিজ্যুয়াল মান হ্রাস পাবে তবে স্বচ্ছতা বাড়ানো হবে। ",
|
||||
"Dyslexia font" : "ডিসলেক্সিয়া হরফ",
|
||||
"Enable dyslexia font" : "ডিসলেক্সিয়া হরফ সক্ষম করুন",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "ওপেনডাইলেক্সিক হ'ল ফ্রি টাইপফেস / হরফ ডিজাইলেসিয়া দ্বারা সৃষ্ট কিছু সাধারণ পাঠ্য ত্রুটি প্রশমিত করার জন্য ডিজাইন করা। ",
|
||||
"Accessibility" : "অ্যাক্সেসযোগ্যতা",
|
||||
"Accessibility options for nextcloud" : "নেক্সটক্লাউডের জন্য অ্যাক্সেসযোগ্যতার বিকল্পগুলি",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "নেক্সটক্লাউডের আপনার ব্যবহার সহজ করার জন্য একাধিক অ্যাক্সেসিবিলিটি বিকল্প সরবরাহ করে",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "সর্বজনীন অ্যাক্সেস আমাদের জন্য খুব গুরুত্বপূর্ণ। আমরা ওয়েব স্ট্যান্ডার্ডগুলি অনুসরণ করি এবং মাউস ছাড়াই এবং স্ক্রিনড্রেডারের মতো সহায়ক সফ্টওয়্যার ছাড়াও সবকিছুকে ব্যবহারযোগ্য করে তুলতে পরীক্ষা করে দেখি। আমরা এএএ স্তরে এমনকি উচ্চতর বিপরীতে থিম সহ, এএ স্তরের {নির্দেশিকা} ওয়েব সামগ্রী অ্যাক্সেসিবিলিটি নির্দেশিকা {লিনএন্ড} 2.1 এর সাথে অনুগত হতে লক্ষ্য করি।",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "আপনি যদি কোনও সমস্যা খুঁজে পান তবে তাদেরকে আমাদের ইস্যু ট্র্যাকার {লিনএন্ড} এ প্রতিবেদন করতে দ্বিধা করবেন না} এবং আপনি যদি এতে জড়িত থাকতে চান তবে আসুন {ডিজাইনটিয়াম} আমাদের ডিজাইন দল {লিনএন্ড} এ যোগদান করুন"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
OC.L10N.register(
|
||||
"accessibility",
|
||||
{
|
||||
"Dark theme" : "زمینه تیره",
|
||||
"Enable dark theme" : "فعالسازی زمینه تیره",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "یک زمینه تیره برای راحتی چشمهای شما با کاهش رویهمرفته درخشندگی و روشنایی. این امکان هنوز در حال توسعه میباشد، بنابراین در صورت مشاهده هرگونه ایراد، آن را گزارش کنید.",
|
||||
"Dark theme" : "تم تاریک",
|
||||
"Enable dark theme" : "فعالسازی تم تاریک",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "تم تاریک برای با کاهش نور و نیز شفافیت برای راحتی بیشتر چشمان شما در استفاده از نکست کلود تعبیه دیده شده است و این امکان در حال توسعه می باشد،به همین دلیل هرگونه ایراد پیش آمده را گزارش دهید.",
|
||||
"High contrast mode" : "حالت با کنتراست بالا",
|
||||
"Enable high contrast mode" : "فعالسازی حالت کنتراست بالا",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "یک حالت کنتراست بالا برای سهولت در پیمایش. کیفیت بصری کاهش می یابد اما وضوح افزایش می یابد.",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ "translations": {
|
||||
"Dark theme" : "زمینه تیره",
|
||||
"Enable dark theme" : "فعالسازی زمینه تیره",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "یک زمینه تیره برای راحتی چشمهای شما با کاهش رویهمرفته درخشندگی و روشنایی. این امکان هنوز در حال توسعه میباشد، بنابراین در صورت مشاهده هرگونه ایراد، آن را گزارش کنید.",
|
||||
"Dark theme" : "تم تاریک",
|
||||
"Enable dark theme" : "فعالسازی تم تاریک",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "تم تاریک برای با کاهش نور و نیز شفافیت برای راحتی بیشتر چشمان شما در استفاده از نکست کلود تعبیه دیده شده است و این امکان در حال توسعه می باشد،به همین دلیل هرگونه ایراد پیش آمده را گزارش دهید.",
|
||||
"High contrast mode" : "حالت با کنتراست بالا",
|
||||
"Enable high contrast mode" : "فعالسازی حالت کنتراست بالا",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "یک حالت کنتراست بالا برای سهولت در پیمایش. کیفیت بصری کاهش می یابد اما وضوح افزایش می یابد.",
|
||||
|
|
|
@ -3,7 +3,7 @@ OC.L10N.register(
|
|||
{
|
||||
"Dark theme" : "Ciemny motyw",
|
||||
"Enable dark theme" : "Włącz ciemny motyw",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Ciemny motyw, który łagodzi zmęczenie oczu, zmniejszając ogólną jasność. Nadal jest w fazie rozwoju, więc zgłaszaj wszelkie zauważone błędy.",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Ciemny motyw, który łagodzi zmęczenie oczu, zmniejszając ogólną jasność. Nadal jest w fazie rozwoju, więc proszę zgłaszać wszelkie zauważone błędy.",
|
||||
"High contrast mode" : "Tryb wysokiego kontrastu",
|
||||
"Enable high contrast mode" : "Włącz tryb wysokiego kontrastu",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Tryb wysokiego kontrastu ułatwiający nawigację. Jakość obrazu zostanie zmniejszona, celem poprawy przejrzystości.",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ "translations": {
|
||||
"Dark theme" : "Ciemny motyw",
|
||||
"Enable dark theme" : "Włącz ciemny motyw",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Ciemny motyw, który łagodzi zmęczenie oczu, zmniejszając ogólną jasność. Nadal jest w fazie rozwoju, więc zgłaszaj wszelkie zauważone błędy.",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Ciemny motyw, który łagodzi zmęczenie oczu, zmniejszając ogólną jasność. Nadal jest w fazie rozwoju, więc proszę zgłaszać wszelkie zauważone błędy.",
|
||||
"High contrast mode" : "Tryb wysokiego kontrastu",
|
||||
"Enable high contrast mode" : "Włącz tryb wysokiego kontrastu",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Tryb wysokiego kontrastu ułatwiający nawigację. Jakość obrazu zostanie zmniejszona, celem poprawy przejrzystości.",
|
||||
|
|
|
@ -3,7 +3,7 @@ OC.L10N.register(
|
|||
{
|
||||
"Dark theme" : "Tema escuro",
|
||||
"Enable dark theme" : "Ativar tema escuro",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Um tema escuro para descansar os olhos reduzindo a luminosidade e o brilho. Ainda está em desenvolvimento, pelo que por favor reporte quaisquer erros que encontre.",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Um tema escuro para descansar os olhos reduzindo a luminosidade e o brilho. Ainda está em desenvolvimento, pelo que tenha a gentileza de reportar quaisquer erros que encontre.",
|
||||
"High contrast mode" : "Modo de alto contraste",
|
||||
"Enable high contrast mode" : "Ativar modo de alto contraste",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Um modo de alto contraste para facilitar sua navegação. A qualidade visual será reduzida, mas a clareza será aumentada.",
|
||||
|
@ -13,7 +13,7 @@ OC.L10N.register(
|
|||
"Accessibility" : "Acessibilidade",
|
||||
"Accessibility options for nextcloud" : "Opções de acessibilidade para nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Fornece várias opções de acessibilidade para facilitar a sua utilização do Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da web e verificamos para tornar tudo utilizável também sem rato e software auxiliar, como leitores de ecrã. O nosso objetivo é estar em conformidade com as {guidelines} Diretrizes de acessibilidade para o conteúdo da Web {linkend} 2.1 no nível AA, com o tema de alto contraste, mesmo no nível AAA.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em o reportar no {issuetracker} nosso issue tracker {linkend}. E se quiser participar, venha juntar-se à {designteam} a nossa equipa de design {linkend}!"
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da web e verificamos para tornar tudo utilizável também sem mouse e software auxiliar, como leitores de tela. O nosso objetivo é estar em conformidade com as {guidelines} Diretrizes de acessibilidade para o conteúdo da Web {linkend} 2.1 no nível AA, com o tema de alto contraste, mesmo no nível AAA.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em denunciá-lo no {issuetracker} o nosso rastreador de problemas {linkend}. E se quiser participar, venha juntar-se à {designteam} a nossa equipa de design {linkend}!"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ "translations": {
|
||||
"Dark theme" : "Tema escuro",
|
||||
"Enable dark theme" : "Ativar tema escuro",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Um tema escuro para descansar os olhos reduzindo a luminosidade e o brilho. Ainda está em desenvolvimento, pelo que por favor reporte quaisquer erros que encontre.",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Um tema escuro para descansar os olhos reduzindo a luminosidade e o brilho. Ainda está em desenvolvimento, pelo que tenha a gentileza de reportar quaisquer erros que encontre.",
|
||||
"High contrast mode" : "Modo de alto contraste",
|
||||
"Enable high contrast mode" : "Ativar modo de alto contraste",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Um modo de alto contraste para facilitar sua navegação. A qualidade visual será reduzida, mas a clareza será aumentada.",
|
||||
|
@ -11,7 +11,7 @@
|
|||
"Accessibility" : "Acessibilidade",
|
||||
"Accessibility options for nextcloud" : "Opções de acessibilidade para nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Fornece várias opções de acessibilidade para facilitar a sua utilização do Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da web e verificamos para tornar tudo utilizável também sem rato e software auxiliar, como leitores de ecrã. O nosso objetivo é estar em conformidade com as {guidelines} Diretrizes de acessibilidade para o conteúdo da Web {linkend} 2.1 no nível AA, com o tema de alto contraste, mesmo no nível AAA.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em o reportar no {issuetracker} nosso issue tracker {linkend}. E se quiser participar, venha juntar-se à {designteam} a nossa equipa de design {linkend}!"
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da web e verificamos para tornar tudo utilizável também sem mouse e software auxiliar, como leitores de tela. O nosso objetivo é estar em conformidade com as {guidelines} Diretrizes de acessibilidade para o conteúdo da Web {linkend} 2.1 no nível AA, com o tema de alto contraste, mesmo no nível AAA.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em denunciá-lo no {issuetracker} o nosso rastreador de problemas {linkend}. E se quiser participar, venha juntar-se à {designteam} a nossa equipa de design {linkend}!"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -3,7 +3,7 @@ OC.L10N.register(
|
|||
{
|
||||
"Dark theme" : "Temă întunecată",
|
||||
"Enable dark theme" : "Activați tema întunecată",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "O temă întunecată pentru ușurarea ochilor prin reducerea generală a luminozității. Temă în curs de dezvoltare deci vă rugăm să raportați orice problemă găsită.",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Temă întunecată pentru ușurarea ochilor prin reducerea generală a luminozității. Temă în curs de dezvoltare deci vă rugăm să raportați orice problemă găsită.",
|
||||
"High contrast mode" : "Modul contrast puternic.",
|
||||
"Enable high contrast mode" : "Activați tema cu contrast înalt",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un contrast puternic poate ușura utilizarea. Calitatea vizuală va fi redusă, dar claritatea va fi ridicată.",
|
||||
|
@ -14,6 +14,6 @@ OC.L10N.register(
|
|||
"Accessibility options for nextcloud" : "Opțiuni de accesibilitate pentru nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Vă oferă opțiuni multiple de accesibilitate pentru a simplifica utilizarea Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Accesul universal este foarte important pentru noi. Urmărim standardele web și verificăm să facem ca toate funcțiile să poată fii utilizate și fără mouse și software de asistență, cum ar fi sofware de citit ecranul. Ne propunem să fim conformi cu {guidelines} Accesibilitatea conținutului web {linkend} 2.1 la nivel AA, cu tema de contrast ridicat chiar și la nivel AAA.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Dacă găsiți probleme, nu ezitați să le raportați la {issuetracker} tracker-ul nostru de probleme {linkend}. Și dacă doriți să vă implicați, participați în {designteam} echipa noastră de design {linkend}!"
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Dacă găsiți probleme, nu ezitați să le raportați la {issuetracker} următorul nostru de probleme {linkend}. Și dacă doriți să vă implicați, participați la {designteam} echipa noastră de design {linkend}!"
|
||||
},
|
||||
"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ "translations": {
|
||||
"Dark theme" : "Temă întunecată",
|
||||
"Enable dark theme" : "Activați tema întunecată",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "O temă întunecată pentru ușurarea ochilor prin reducerea generală a luminozității. Temă în curs de dezvoltare deci vă rugăm să raportați orice problemă găsită.",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Temă întunecată pentru ușurarea ochilor prin reducerea generală a luminozității. Temă în curs de dezvoltare deci vă rugăm să raportați orice problemă găsită.",
|
||||
"High contrast mode" : "Modul contrast puternic.",
|
||||
"Enable high contrast mode" : "Activați tema cu contrast înalt",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un contrast puternic poate ușura utilizarea. Calitatea vizuală va fi redusă, dar claritatea va fi ridicată.",
|
||||
|
@ -12,6 +12,6 @@
|
|||
"Accessibility options for nextcloud" : "Opțiuni de accesibilitate pentru nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Vă oferă opțiuni multiple de accesibilitate pentru a simplifica utilizarea Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Accesul universal este foarte important pentru noi. Urmărim standardele web și verificăm să facem ca toate funcțiile să poată fii utilizate și fără mouse și software de asistență, cum ar fi sofware de citit ecranul. Ne propunem să fim conformi cu {guidelines} Accesibilitatea conținutului web {linkend} 2.1 la nivel AA, cu tema de contrast ridicat chiar și la nivel AAA.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Dacă găsiți probleme, nu ezitați să le raportați la {issuetracker} tracker-ul nostru de probleme {linkend}. Și dacă doriți să vă implicați, participați în {designteam} echipa noastră de design {linkend}!"
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Dacă găsiți probleme, nu ezitați să le raportați la {issuetracker} următorul nostru de probleme {linkend}. Și dacă doriți să vă implicați, participați la {designteam} echipa noastră de design {linkend}!"
|
||||
},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
|
||||
}
|
|
@ -40,9 +40,9 @@ use OCP\AppFramework\Http;
|
|||
use OCP\AppFramework\Http\DataDisplayResponse;
|
||||
use OCP\AppFramework\Utility\ITimeFactory;
|
||||
use OCP\IConfig;
|
||||
use OCP\ILogger;
|
||||
use OCP\IRequest;
|
||||
use OCP\IUserSession;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use ScssPhp\ScssPhp\Compiler;
|
||||
use ScssPhp\ScssPhp\Exception\ParserException;
|
||||
use ScssPhp\ScssPhp\OutputStyle;
|
||||
|
@ -58,7 +58,7 @@ class AccessibilityController extends Controller {
|
|||
/** @var IConfig */
|
||||
private $config;
|
||||
|
||||
/** @var LoggerInterface */
|
||||
/** @var ILogger */
|
||||
private $logger;
|
||||
|
||||
/** @var ITimeFactory */
|
||||
|
@ -82,7 +82,7 @@ class AccessibilityController extends Controller {
|
|||
public function __construct(string $appName,
|
||||
IRequest $request,
|
||||
IConfig $config,
|
||||
LoggerInterface $logger,
|
||||
ILogger $logger,
|
||||
ITimeFactory $timeFactory,
|
||||
IUserSession $userSession,
|
||||
IAppManager $appManager,
|
||||
|
@ -145,12 +145,7 @@ class AccessibilityController extends Controller {
|
|||
'@import "css-variables.scss";'
|
||||
);
|
||||
} catch (ParserException $e) {
|
||||
$this->logger->error($e->getMessage(),
|
||||
[
|
||||
'app' => 'core',
|
||||
'exception' => $e,
|
||||
]
|
||||
);
|
||||
$this->logger->error($e->getMessage(), ['app' => 'core']);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -259,12 +254,7 @@ class AccessibilityController extends Controller {
|
|||
$scss->compile($variables);
|
||||
$this->injectedVariables = $variables;
|
||||
} catch (ParserException $e) {
|
||||
$this->logger->error($e->getMessage(),
|
||||
[
|
||||
'app' => 'core',
|
||||
'exception' => $e,
|
||||
]
|
||||
);
|
||||
$this->logger->logException($e, ['app' => 'core']);
|
||||
}
|
||||
return $variables;
|
||||
}
|
||||
|
|
|
@ -117,7 +117,7 @@ class ConfigController extends OCSController {
|
|||
$highcontrast = [$this->accessibilityProvider->getHighContrast()];
|
||||
$fonts = $this->accessibilityProvider->getFonts();
|
||||
|
||||
$availableOptions = array_map(function ($option): string {
|
||||
$availableOptions = array_map(function ($option) {
|
||||
return $option['id'];
|
||||
}, array_merge($themes, $highcontrast, $fonts));
|
||||
|
||||
|
|
|
@ -27,8 +27,8 @@ namespace OCA\Accessibility\Settings;
|
|||
|
||||
use OCA\Accessibility\AccessibilityProvider;
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\AppFramework\Services\IInitialState;
|
||||
use OCP\IConfig;
|
||||
use OCP\IInitialStateService;
|
||||
use OCP\IL10N;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\IUserSession;
|
||||
|
@ -55,16 +55,26 @@ class Personal implements ISettings {
|
|||
/** @var AccessibilityProvider */
|
||||
private $accessibilityProvider;
|
||||
|
||||
/** @var IInitialState */
|
||||
/** @var IInitialStateService */
|
||||
private $initialStateService;
|
||||
|
||||
/**
|
||||
* Settings constructor.
|
||||
*
|
||||
* @param string $appName
|
||||
* @param IConfig $config
|
||||
* @param IUserSession $userSession
|
||||
* @param IL10N $l
|
||||
* @param IURLGenerator $urlGenerator
|
||||
* @param AccessibilityProvider $accessibilityProvider
|
||||
*/
|
||||
public function __construct(string $appName,
|
||||
IConfig $config,
|
||||
IUserSession $userSession,
|
||||
IL10N $l,
|
||||
IURLGenerator $urlGenerator,
|
||||
AccessibilityProvider $accessibilityProvider,
|
||||
IInitialState $initialStateService) {
|
||||
IInitialStateService $initialStateService) {
|
||||
$this->appName = $appName;
|
||||
$this->config = $config;
|
||||
$this->userSession = $userSession;
|
||||
|
@ -78,7 +88,7 @@ class Personal implements ISettings {
|
|||
* @return TemplateResponse returns the instance with all parameters set, ready to be rendered
|
||||
* @since 9.1
|
||||
*/
|
||||
public function getForm(): TemplateResponse {
|
||||
public function getForm() {
|
||||
Util::addScript('accessibility', 'accessibility');
|
||||
Util::addStyle('accessibility', 'style');
|
||||
|
||||
|
@ -94,8 +104,8 @@ class Personal implements ISettings {
|
|||
'font' => $this->config->getUserValue($this->userSession->getUser()->getUID(), $this->appName, 'font', false)
|
||||
];
|
||||
|
||||
$this->initialStateService->provideInitialState('available-config', $availableConfig);
|
||||
$this->initialStateService->provideInitialState('user-config', $userConfig);
|
||||
$this->initialStateService->provideInitialState($this->appName, 'available-config', $availableConfig);
|
||||
$this->initialStateService->provideInitialState($this->appName, 'user-config', $userConfig);
|
||||
|
||||
return new TemplateResponse($this->appName, 'settings-personal');
|
||||
}
|
||||
|
@ -104,7 +114,7 @@ class Personal implements ISettings {
|
|||
* @return string the section ID, e.g. 'sharing'
|
||||
* @since 9.1
|
||||
*/
|
||||
public function getSection(): string {
|
||||
public function getSection() {
|
||||
return $this->appName;
|
||||
}
|
||||
|
||||
|
@ -116,7 +126,7 @@ class Personal implements ISettings {
|
|||
* E.g.: 70
|
||||
* @since 9.1
|
||||
*/
|
||||
public function getPriority(): int {
|
||||
public function getPriority() {
|
||||
return 40;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* @copyright Copyright (c) 2020 Roeland Jago Douma <roeland@famdouma.nl>
|
||||
*
|
||||
* @author Jan C. Borchardt <hey@jancborchardt.net>
|
||||
* @author Roeland Jago Douma <roeland@famdouma.nl>
|
||||
* @author John Molakvoæ <skjnldsv@protonmail.com>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
|
@ -17,10 +17,8 @@
|
|||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { loadState } from '@nextcloud/initial-state'
|
||||
|
||||
OCA.Accessibility = loadState('accessibility', 'data')
|
||||
|
|
|
@ -16,10 +16,8 @@
|
|||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import Vue from 'vue'
|
||||
import { loadState } from '@nextcloud/initial-state'
|
||||
import App from './Accessibility.vue'
|
||||
|
|
|
@ -1,25 +1,3 @@
|
|||
/**
|
||||
* @copyright Copyright (c) 2016 John Molakvoæ <skjnldsv@protonmail.com>
|
||||
*
|
||||
* @author John Molakvoæ <skjnldsv@protonmail.com>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
const path = require('path')
|
||||
|
||||
module.exports = {
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<category>monitoring</category>
|
||||
<bugs>https://github.com/nextcloud/server/issues</bugs>
|
||||
<dependencies>
|
||||
<nextcloud min-version="22" max-version="22"/>
|
||||
<nextcloud min-version="21" max-version="21"/>
|
||||
</dependencies>
|
||||
<background-jobs>
|
||||
<job>OCA\AdminAudit\BackgroundJobs\Rotate</job>
|
||||
|
|
|
@ -20,5 +20,4 @@ return array(
|
|||
'OCA\\AdminAudit\\Actions\\Versions' => $baseDir . '/../lib/Actions/Versions.php',
|
||||
'OCA\\AdminAudit\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php',
|
||||
'OCA\\AdminAudit\\BackgroundJobs\\Rotate' => $baseDir . '/../lib/BackgroundJobs/Rotate.php',
|
||||
'OCA\\AdminAudit\\Listener\\CriticalActionPerformedEventListener' => $baseDir . '/../lib/Listener/CriticalActionPerformedEventListener.php',
|
||||
);
|
||||
|
|
|
@ -35,7 +35,6 @@ class ComposerStaticInitAdminAudit
|
|||
'OCA\\AdminAudit\\Actions\\Versions' => __DIR__ . '/..' . '/../lib/Actions/Versions.php',
|
||||
'OCA\\AdminAudit\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php',
|
||||
'OCA\\AdminAudit\\BackgroundJobs\\Rotate' => __DIR__ . '/..' . '/../lib/BackgroundJobs/Rotate.php',
|
||||
'OCA\\AdminAudit\\Listener\\CriticalActionPerformedEventListener' => __DIR__ . '/..' . '/../lib/Listener/CriticalActionPerformedEventListener.php',
|
||||
);
|
||||
|
||||
public static function getInitializer(ClassLoader $loader)
|
||||
|
|
|
@ -2,6 +2,6 @@ OC.L10N.register(
|
|||
"admin_audit",
|
||||
{
|
||||
"Auditing / Logging" : "Audit / journalisation",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fournit des capacités de journalisation pour Nextcloud telles que l'accès aux fichiers de journalisation ou des actions autrement sensibles."
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fournit des capacités de journalisation pour Nextcloud telles que la journalisation des accès aux fichiers ou des actions autrement sensibles."
|
||||
},
|
||||
"nplurals=2; plural=(n > 1);");
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ "translations": {
|
||||
"Auditing / Logging" : "Audit / journalisation",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fournit des capacités de journalisation pour Nextcloud telles que l'accès aux fichiers de journalisation ou des actions autrement sensibles."
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fournit des capacités de journalisation pour Nextcloud telles que la journalisation des accès aux fichiers ou des actions autrement sensibles."
|
||||
},"pluralForm" :"nplurals=2; plural=(n > 1);"
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
OC.L10N.register(
|
||||
"admin_audit",
|
||||
{
|
||||
"Auditing / Logging" : "Audyt/Logowanie",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Zapewnia możliwość rejestrowania dla Nextcloud, takie jak rejestrowanie dostępu do pliku lub innych wrażliwych akcji."
|
||||
"Auditing / Logging" : "Audyt/logowanie",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Zapewnia możliwość rejestrowania dla Nextcloud, takie jak rejestrowanie dostępu do plików lub innych wrażliwych akcji."
|
||||
},
|
||||
"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);");
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ "translations": {
|
||||
"Auditing / Logging" : "Audyt/Logowanie",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Zapewnia możliwość rejestrowania dla Nextcloud, takie jak rejestrowanie dostępu do pliku lub innych wrażliwych akcji."
|
||||
"Auditing / Logging" : "Audyt/logowanie",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Zapewnia możliwość rejestrowania dla Nextcloud, takie jak rejestrowanie dostępu do plików lub innych wrażliwych akcji."
|
||||
},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
OC.L10N.register(
|
||||
"admin_audit",
|
||||
{
|
||||
"Auditing / Logging" : "Auditoria / registo",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornece a funcionalidade de registo ao Nextcloud como o registo de acesso a ficheiros ou acções sensíveis."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
|
@ -1,5 +0,0 @@
|
|||
{ "translations": {
|
||||
"Auditing / Logging" : "Auditoria / registo",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornece a funcionalidade de registo ao Nextcloud como o registo de acesso a ficheiros ou acções sensíveis."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -2,6 +2,6 @@ OC.L10N.register(
|
|||
"admin_audit",
|
||||
{
|
||||
"Auditing / Logging" : "Auditare / Logare",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Oferă abilități de înregistrare pentru Nextcloud, cum ar fi înregistrarea accesării fișierelor sau alte acțiuni sensibile."
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Oferă abilități de înregistrare pentru Nextcloud, cum ar fi accesarea fișierelor de înregistrare sau alte acțiuni sensibile."
|
||||
},
|
||||
"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ "translations": {
|
||||
"Auditing / Logging" : "Auditare / Logare",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Oferă abilități de înregistrare pentru Nextcloud, cum ar fi înregistrarea accesării fișierelor sau alte acțiuni sensibile."
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Oferă abilități de înregistrare pentru Nextcloud, cum ar fi accesarea fișierelor de înregistrare sau alte acțiuni sensibile."
|
||||
},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
|
||||
}
|
|
@ -29,13 +29,16 @@ declare(strict_types=1);
|
|||
|
||||
namespace OCA\AdminAudit\Actions;
|
||||
|
||||
use Psr\Log\LoggerInterface;
|
||||
use OCP\ILogger;
|
||||
|
||||
class Action {
|
||||
/** @var LoggerInterface */
|
||||
/** @var ILogger */
|
||||
private $logger;
|
||||
|
||||
public function __construct(LoggerInterface $logger) {
|
||||
/**
|
||||
* @param ILogger $logger
|
||||
*/
|
||||
public function __construct(ILogger $logger) {
|
||||
$this->logger = $logger;
|
||||
}
|
||||
|
||||
|
@ -50,7 +53,7 @@ class Action {
|
|||
public function log(string $text,
|
||||
array $params,
|
||||
array $elements,
|
||||
bool $obfuscateParameters = false): void {
|
||||
bool $obfuscateParameters = false) {
|
||||
foreach ($elements as $element) {
|
||||
if (!isset($params[$element])) {
|
||||
if ($obfuscateParameters) {
|
||||
|
|
|
@ -32,7 +32,7 @@ class AppManagement extends Action {
|
|||
/**
|
||||
* @param string $appName
|
||||
*/
|
||||
public function enableApp(string $appName): void {
|
||||
public function enableApp(string $appName) {
|
||||
$this->log('App "%s" enabled',
|
||||
['app' => $appName],
|
||||
['app']
|
||||
|
@ -43,7 +43,7 @@ class AppManagement extends Action {
|
|||
* @param string $appName
|
||||
* @param string[] $groups
|
||||
*/
|
||||
public function enableAppForGroups(string $appName, array $groups): void {
|
||||
public function enableAppForGroups(string $appName, array $groups) {
|
||||
$this->log('App "%1$s" enabled for groups: %2$s',
|
||||
['app' => $appName, 'groups' => implode(', ', $groups)],
|
||||
['app', 'groups']
|
||||
|
@ -53,7 +53,7 @@ class AppManagement extends Action {
|
|||
/**
|
||||
* @param string $appName
|
||||
*/
|
||||
public function disableApp(string $appName): void {
|
||||
public function disableApp(string $appName) {
|
||||
$this->log('App "%s" disabled',
|
||||
['app' => $appName],
|
||||
['app']
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace OCA\AdminAudit\Actions;
|
|||
* @package OCA\AdminAudit\Actions
|
||||
*/
|
||||
class Auth extends Action {
|
||||
public function loginAttempt(array $params): void {
|
||||
public function loginAttempt(array $params) {
|
||||
$this->log(
|
||||
'Login attempt: "%s"',
|
||||
$params,
|
||||
|
@ -44,7 +44,7 @@ class Auth extends Action {
|
|||
);
|
||||
}
|
||||
|
||||
public function loginSuccessful(array $params): void {
|
||||
public function loginSuccessful(array $params) {
|
||||
$this->log(
|
||||
'Login successful: "%s"',
|
||||
$params,
|
||||
|
@ -55,7 +55,7 @@ class Auth extends Action {
|
|||
);
|
||||
}
|
||||
|
||||
public function logout(array $params): void {
|
||||
public function logout(array $params) {
|
||||
$this->log(
|
||||
'Logout occurred',
|
||||
[],
|
||||
|
|
|
@ -32,7 +32,7 @@ class Console extends Action {
|
|||
/**
|
||||
* @param $arguments
|
||||
*/
|
||||
public function runCommand(array $arguments): void {
|
||||
public function runCommand(array $arguments) {
|
||||
if (!isset($arguments[1]) || $arguments[1] === '_completion') {
|
||||
// Don't log autocompletion
|
||||
return;
|
||||
|
|
|
@ -38,7 +38,7 @@ class Files extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function read(array $params): void {
|
||||
public function read(array $params) {
|
||||
$this->log(
|
||||
'File accessed: "%s"',
|
||||
$params,
|
||||
|
@ -53,7 +53,7 @@ class Files extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function rename(array $params): void {
|
||||
public function rename(array $params) {
|
||||
$this->log(
|
||||
'File renamed: "%s" to "%s"',
|
||||
$params,
|
||||
|
@ -69,7 +69,7 @@ class Files extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function create(array $params): void {
|
||||
public function create(array $params) {
|
||||
if ($params['path'] === '/' || $params['path'] === '' || $params['path'] === null) {
|
||||
return;
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ class Files extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function copy(array $params): void {
|
||||
public function copy(array $params) {
|
||||
$this->log(
|
||||
'File copied: "%s" to "%s"',
|
||||
$params,
|
||||
|
@ -104,7 +104,7 @@ class Files extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function write(array $params): void {
|
||||
public function write(array $params) {
|
||||
if ($params['path'] === '/' || $params['path'] === '' || $params['path'] === null) {
|
||||
return;
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ class Files extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function update(array $params): void {
|
||||
public function update(array $params) {
|
||||
$this->log(
|
||||
'File updated: "%s"',
|
||||
$params,
|
||||
|
@ -138,7 +138,7 @@ class Files extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function delete(array $params): void {
|
||||
public function delete(array $params) {
|
||||
$this->log(
|
||||
'File deleted: "%s"',
|
||||
$params,
|
||||
|
@ -153,7 +153,7 @@ class Files extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function preview(array $params): void {
|
||||
public function preview(array $params) {
|
||||
$this->log(
|
||||
'Preview accessed: "%s" (width: "%s", height: "%s" crop: "%s", mode: "%s")',
|
||||
$params,
|
||||
|
|
|
@ -45,7 +45,7 @@ class GroupManagement extends Action {
|
|||
* @param IGroup $group
|
||||
* @param IUser $user
|
||||
*/
|
||||
public function addUser(IGroup $group, IUser $user): void {
|
||||
public function addUser(IGroup $group, IUser $user) {
|
||||
$this->log('User "%s" added to group "%s"',
|
||||
[
|
||||
'group' => $group->getGID(),
|
||||
|
@ -63,7 +63,7 @@ class GroupManagement extends Action {
|
|||
* @param IGroup $group
|
||||
* @param IUser $user
|
||||
*/
|
||||
public function removeUser(IGroup $group, IUser $user): void {
|
||||
public function removeUser(IGroup $group, IUser $user) {
|
||||
$this->log('User "%s" removed from group "%s"',
|
||||
[
|
||||
'group' => $group->getGID(),
|
||||
|
@ -74,13 +74,13 @@ class GroupManagement extends Action {
|
|||
]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* log create group to group event
|
||||
*
|
||||
* @param IGroup $group
|
||||
*/
|
||||
public function createGroup(IGroup $group): void {
|
||||
public function createGroup(IGroup $group) {
|
||||
$this->log('Group created: "%s"',
|
||||
[
|
||||
'group' => $group->getGID()
|
||||
|
@ -96,7 +96,7 @@ class GroupManagement extends Action {
|
|||
*
|
||||
* @param IGroup $group
|
||||
*/
|
||||
public function deleteGroup(IGroup $group): void {
|
||||
public function deleteGroup(IGroup $group) {
|
||||
$this->log('Group deleted: "%s"',
|
||||
[
|
||||
'group' => $group->getGID()
|
||||
|
|
|
@ -41,7 +41,7 @@ class Security extends Action {
|
|||
* @param IUser $user
|
||||
* @param array $params
|
||||
*/
|
||||
public function twofactorFailed(IUser $user, array $params): void {
|
||||
public function twofactorFailed(IUser $user, array $params) {
|
||||
$params['uid'] = $user->getUID();
|
||||
$params['displayName'] = $user->getDisplayName();
|
||||
|
||||
|
@ -62,7 +62,7 @@ class Security extends Action {
|
|||
* @param IUser $user
|
||||
* @param array $params
|
||||
*/
|
||||
public function twofactorSuccess(IUser $user, array $params): void {
|
||||
public function twofactorSuccess(IUser $user, array $params) {
|
||||
$params['uid'] = $user->getUID();
|
||||
$params['displayName'] = $user->getDisplayName();
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ class Sharing extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function shared(array $params): void {
|
||||
public function shared(array $params) {
|
||||
if ($params['shareType'] === IShare::TYPE_LINK) {
|
||||
$this->log(
|
||||
'The %s "%s" with ID "%s" has been shared via link with permissions "%s" (Share ID: %s)',
|
||||
|
@ -168,7 +168,7 @@ class Sharing extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function unshare(array $params): void {
|
||||
public function unshare(array $params) {
|
||||
if ($params['shareType'] === IShare::TYPE_LINK) {
|
||||
$this->log(
|
||||
'The %s "%s" with ID "%s" has been unshared (Share ID: %s)',
|
||||
|
@ -284,7 +284,7 @@ class Sharing extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function updatePermissions(array $params): void {
|
||||
public function updatePermissions(array $params) {
|
||||
$this->log(
|
||||
'The permissions of the shared %s "%s" with ID "%s" have been changed to "%s"',
|
||||
$params,
|
||||
|
@ -302,7 +302,7 @@ class Sharing extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function updatePassword(array $params): void {
|
||||
public function updatePassword(array $params) {
|
||||
$this->log(
|
||||
'The password of the publicly shared %s "%s" with ID "%s" has been changed',
|
||||
$params,
|
||||
|
@ -319,27 +319,16 @@ class Sharing extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function updateExpirationDate(array $params): void {
|
||||
if ($params['date'] === null) {
|
||||
$this->log(
|
||||
'The expiration date of the publicly shared %s with ID "%s" has been removed',
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemSource',
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$this->log(
|
||||
'The expiration date of the publicly shared %s with ID "%s" has been changed to "%s"',
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemSource',
|
||||
'date',
|
||||
]
|
||||
);
|
||||
}
|
||||
public function updateExpirationDate(array $params) {
|
||||
$this->log(
|
||||
'The expiration date of the publicly shared %s with ID "%s" has been changed to "%s"',
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemSource',
|
||||
'date',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -347,7 +336,7 @@ class Sharing extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function shareAccessed(array $params): void {
|
||||
public function shareAccessed(array $params) {
|
||||
$this->log(
|
||||
'The shared %s with the token "%s" by "%s" has been accessed.',
|
||||
$params,
|
||||
|
|
|
@ -29,13 +29,13 @@ declare(strict_types=1);
|
|||
namespace OCA\AdminAudit\Actions;
|
||||
|
||||
class Trashbin extends Action {
|
||||
public function delete(array $params): void {
|
||||
public function delete(array $params) {
|
||||
$this->log('File "%s" deleted from trash bin.',
|
||||
['path' => $params['path']], ['path']
|
||||
);
|
||||
}
|
||||
|
||||
public function restore(array $params): void {
|
||||
public function restore(array $params) {
|
||||
$this->log('File "%s" restored from trash bin.',
|
||||
['path' => $params['filePath']], ['path']
|
||||
);
|
||||
|
|
|
@ -44,7 +44,7 @@ class UserManagement extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function create(array $params): void {
|
||||
public function create(array $params) {
|
||||
$this->log(
|
||||
'User created: "%s"',
|
||||
$params,
|
||||
|
@ -59,7 +59,7 @@ class UserManagement extends Action {
|
|||
*
|
||||
* @param string $uid
|
||||
*/
|
||||
public function assign(string $uid): void {
|
||||
public function assign(string $uid) {
|
||||
$this->log(
|
||||
'UserID assigned: "%s"',
|
||||
[ 'uid' => $uid ],
|
||||
|
@ -72,7 +72,7 @@ class UserManagement extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function delete(array $params): void {
|
||||
public function delete(array $params) {
|
||||
$this->log(
|
||||
'User deleted: "%s"',
|
||||
$params,
|
||||
|
@ -87,7 +87,7 @@ class UserManagement extends Action {
|
|||
*
|
||||
* @param string $uid
|
||||
*/
|
||||
public function unassign(string $uid): void {
|
||||
public function unassign(string $uid) {
|
||||
$this->log(
|
||||
'UserID unassigned: "%s"',
|
||||
[ 'uid' => $uid ],
|
||||
|
@ -100,7 +100,7 @@ class UserManagement extends Action {
|
|||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function change(array $params): void {
|
||||
public function change(array $params) {
|
||||
switch ($params['feature']) {
|
||||
case 'enabled':
|
||||
$this->log(
|
||||
|
@ -130,7 +130,7 @@ class UserManagement extends Action {
|
|||
*
|
||||
* @param IUser $user
|
||||
*/
|
||||
public function setPassword(IUser $user): void {
|
||||
public function setPassword(IUser $user) {
|
||||
if ($user->getBackendClassName() === 'Database') {
|
||||
$this->log(
|
||||
'Password of user "%s" has been changed',
|
||||
|
|
|
@ -29,7 +29,7 @@ declare(strict_types=1);
|
|||
namespace OCA\AdminAudit\Actions;
|
||||
|
||||
class Versions extends Action {
|
||||
public function rollback(array $params): void {
|
||||
public function rollback(array $params) {
|
||||
$this->log('Version "%s" of "%s" was restored.',
|
||||
[
|
||||
'version' => $params['revision'],
|
||||
|
@ -39,7 +39,7 @@ class Versions extends Action {
|
|||
);
|
||||
}
|
||||
|
||||
public function delete(array $params): void {
|
||||
public function delete(array $params) {
|
||||
$this->log('Version "%s" was deleted.',
|
||||
['path' => $params['path']],
|
||||
['path']
|
||||
|
|
|
@ -49,7 +49,6 @@ use OCA\AdminAudit\Actions\Sharing;
|
|||
use OCA\AdminAudit\Actions\Trashbin;
|
||||
use OCA\AdminAudit\Actions\UserManagement;
|
||||
use OCA\AdminAudit\Actions\Versions;
|
||||
use OCA\AdminAudit\Listener\CriticalActionPerformedEventListener;
|
||||
use OCP\App\ManagerEvent;
|
||||
use OCP\AppFramework\App;
|
||||
use OCP\AppFramework\Bootstrap\IBootContext;
|
||||
|
@ -59,20 +58,19 @@ use OCP\Authentication\TwoFactorAuth\IProvider;
|
|||
use OCP\Console\ConsoleEvent;
|
||||
use OCP\IConfig;
|
||||
use OCP\IGroupManager;
|
||||
use OCP\ILogger;
|
||||
use OCP\IPreview;
|
||||
use OCP\IServerContainer;
|
||||
use OCP\IUserSession;
|
||||
use OCP\Log\Audit\CriticalActionPerformedEvent;
|
||||
use OCP\Log\ILogFactory;
|
||||
use OCP\Share;
|
||||
use OCP\Util;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
use Symfony\Component\EventDispatcher\GenericEvent;
|
||||
|
||||
class Application extends App implements IBootstrap {
|
||||
|
||||
/** @var LoggerInterface */
|
||||
/** @var ILogger */
|
||||
protected $logger;
|
||||
|
||||
public function __construct() {
|
||||
|
@ -80,11 +78,10 @@ class Application extends App implements IBootstrap {
|
|||
}
|
||||
|
||||
public function register(IRegistrationContext $context): void {
|
||||
$context->registerEventListener(CriticalActionPerformedEvent::class, CriticalActionPerformedEventListener::class);
|
||||
}
|
||||
|
||||
public function boot(IBootContext $context): void {
|
||||
/** @var LoggerInterface $logger */
|
||||
/** @var ILogger $logger */
|
||||
$logger = $context->injectFn(
|
||||
Closure::fromCallable([$this, 'getLogger'])
|
||||
);
|
||||
|
@ -97,22 +94,22 @@ class Application extends App implements IBootstrap {
|
|||
}
|
||||
|
||||
private function getLogger(IConfig $config,
|
||||
LoggerInterface $logger,
|
||||
ILogFactory $logFactory): LoggerInterface {
|
||||
ILogger $logger,
|
||||
ILogFactory $logFactory): ILogger {
|
||||
$default = $config->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data') . '/audit.log';
|
||||
$logFile = $config->getAppValue('admin_audit', 'logfile', $default);
|
||||
|
||||
if ($logFile === null) {
|
||||
return $logger;
|
||||
}
|
||||
return $logFactory->getCustomPsrLogger($logFile);
|
||||
return $logFactory->getCustomLogger($logFile);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register hooks in order to log them
|
||||
*/
|
||||
private function registerHooks(LoggerInterface $logger,
|
||||
IServerContainer $serverContainer): void {
|
||||
private function registerHooks(ILogger $logger,
|
||||
IServerContainer $serverContainer) {
|
||||
$this->userManagementHooks($logger, $serverContainer->get(IUserSession::class));
|
||||
$this->groupHooks($logger, $serverContainer->get(IGroupManager::class));
|
||||
$this->authHooks($logger);
|
||||
|
@ -131,8 +128,8 @@ class Application extends App implements IBootstrap {
|
|||
$this->securityHooks($logger, $eventDispatcher);
|
||||
}
|
||||
|
||||
private function userManagementHooks(LoggerInterface $logger,
|
||||
IUserSession $userSession): void {
|
||||
private function userManagementHooks(ILogger $logger,
|
||||
IUserSession $userSession) {
|
||||
$userActions = new UserManagement($logger);
|
||||
|
||||
Util::connectHook('OC_User', 'post_createUser', $userActions, 'create');
|
||||
|
@ -145,8 +142,8 @@ class Application extends App implements IBootstrap {
|
|||
$userSession->listen('\OC\User', 'postUnassignedUserId', [$userActions, 'unassign']);
|
||||
}
|
||||
|
||||
private function groupHooks(LoggerInterface $logger,
|
||||
IGroupManager $groupManager): void {
|
||||
private function groupHooks(ILogger $logger,
|
||||
IGroupManager $groupManager) {
|
||||
$groupActions = new GroupManagement($logger);
|
||||
|
||||
assert($groupManager instanceof GroupManager);
|
||||
|
@ -156,7 +153,7 @@ class Application extends App implements IBootstrap {
|
|||
$groupManager->listen('\OC\Group', 'postCreate', [$groupActions, 'createGroup']);
|
||||
}
|
||||
|
||||
private function sharingHooks(LoggerInterface $logger): void {
|
||||
private function sharingHooks(ILogger $logger) {
|
||||
$shareActions = new Sharing($logger);
|
||||
|
||||
Util::connectHook(Share::class, 'post_shared', $shareActions, 'shared');
|
||||
|
@ -168,7 +165,7 @@ class Application extends App implements IBootstrap {
|
|||
Util::connectHook(Share::class, 'share_link_access', $shareActions, 'shareAccessed');
|
||||
}
|
||||
|
||||
private function authHooks(LoggerInterface $logger): void {
|
||||
private function authHooks(ILogger $logger) {
|
||||
$authActions = new Auth($logger);
|
||||
|
||||
Util::connectHook('OC_User', 'pre_login', $authActions, 'loginAttempt');
|
||||
|
@ -176,8 +173,8 @@ class Application extends App implements IBootstrap {
|
|||
Util::connectHook('OC_User', 'logout', $authActions, 'logout');
|
||||
}
|
||||
|
||||
private function appHooks(LoggerInterface $logger,
|
||||
EventDispatcherInterface $eventDispatcher): void {
|
||||
private function appHooks(ILogger $logger,
|
||||
EventDispatcherInterface $eventDispatcher) {
|
||||
$eventDispatcher->addListener(ManagerEvent::EVENT_APP_ENABLE, function (ManagerEvent $event) use ($logger) {
|
||||
$appActions = new AppManagement($logger);
|
||||
$appActions->enableApp($event->getAppID());
|
||||
|
@ -192,16 +189,16 @@ class Application extends App implements IBootstrap {
|
|||
});
|
||||
}
|
||||
|
||||
private function consoleHooks(LoggerInterface $logger,
|
||||
EventDispatcherInterface $eventDispatcher): void {
|
||||
private function consoleHooks(ILogger $logger,
|
||||
EventDispatcherInterface $eventDispatcher) {
|
||||
$eventDispatcher->addListener(ConsoleEvent::EVENT_RUN, function (ConsoleEvent $event) use ($logger) {
|
||||
$appActions = new Console($logger);
|
||||
$appActions->runCommand($event->getArguments());
|
||||
});
|
||||
}
|
||||
|
||||
private function fileHooks(LoggerInterface $logger,
|
||||
EventDispatcherInterface $eventDispatcher): void {
|
||||
private function fileHooks(ILogger $logger,
|
||||
EventDispatcherInterface $eventDispatcher) {
|
||||
$fileActions = new Files($logger);
|
||||
$eventDispatcher->addListener(
|
||||
IPreview::EVENT,
|
||||
|
@ -262,20 +259,20 @@ class Application extends App implements IBootstrap {
|
|||
);
|
||||
}
|
||||
|
||||
private function versionsHooks(LoggerInterface $logger): void {
|
||||
private function versionsHooks(ILogger $logger) {
|
||||
$versionsActions = new Versions($logger);
|
||||
Util::connectHook('\OCP\Versions', 'rollback', $versionsActions, 'rollback');
|
||||
Util::connectHook('\OCP\Versions', 'delete', $versionsActions, 'delete');
|
||||
}
|
||||
|
||||
private function trashbinHooks(LoggerInterface $logger): void {
|
||||
private function trashbinHooks(ILogger $logger) {
|
||||
$trashActions = new Trashbin($logger);
|
||||
Util::connectHook('\OCP\Trashbin', 'preDelete', $trashActions, 'delete');
|
||||
Util::connectHook('\OCA\Files_Trashbin\Trashbin', 'post_restore', $trashActions, 'restore');
|
||||
}
|
||||
|
||||
private function securityHooks(LoggerInterface $logger,
|
||||
EventDispatcherInterface $eventDispatcher): void {
|
||||
private function securityHooks(ILogger $logger,
|
||||
EventDispatcherInterface $eventDispatcher) {
|
||||
$eventDispatcher->addListener(IProvider::EVENT_SUCCESS, function (GenericEvent $event) use ($logger) {
|
||||
$security = new Security($logger);
|
||||
$security->twofactorSuccess($event->getSubject(), $event->getArguments());
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright Copyright (c) 2018 Arthur Schiwon <blizzz@arthur-schiwon.de>
|
||||
*
|
||||
|
@ -28,31 +25,26 @@ declare(strict_types=1);
|
|||
namespace OCA\AdminAudit\BackgroundJobs;
|
||||
|
||||
use OC\BackgroundJob\TimedJob;
|
||||
use OCP\IConfig;
|
||||
use OCP\Log\RotationTrait;
|
||||
|
||||
class Rotate extends TimedJob {
|
||||
use RotationTrait;
|
||||
|
||||
/** @var IConfig */
|
||||
private $config;
|
||||
|
||||
public function __construct(IConfig $config) {
|
||||
$this->config = $config;
|
||||
|
||||
public function __construct() {
|
||||
$this->setInterval(60 * 60 * 3);
|
||||
}
|
||||
|
||||
protected function run($argument) {
|
||||
$default = $this->config->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data') . '/audit.log';
|
||||
$this->filePath = $this->config->getAppValue('admin_audit', 'logfile', $default);
|
||||
$config = \OC::$server->getConfig();
|
||||
$default = $config->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data') . '/audit.log';
|
||||
$this->filePath = $config->getAppValue('admin_audit', 'logfile', $default);
|
||||
|
||||
if ($this->filePath === '') {
|
||||
// default log file, nothing to do
|
||||
return;
|
||||
}
|
||||
|
||||
$this->maxSize = $this->config->getSystemValue('log_rotate_size', 100 * 1024 * 1024);
|
||||
$this->maxSize = $config->getSystemValue('log_rotate_size', 100 * 1024 * 1024);
|
||||
|
||||
if ($this->shouldRotateBySize()) {
|
||||
$this->rotate();
|
||||
|
|
|
@ -1,44 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* @copyright Copyright (c) 2021 Joas Schilling <coding@schilljs.com>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace OCA\AdminAudit\Listener;
|
||||
|
||||
use OCA\AdminAudit\Actions\Action;
|
||||
use OCP\EventDispatcher\Event;
|
||||
use OCP\EventDispatcher\IEventListener;
|
||||
use OCP\Log\Audit\CriticalActionPerformedEvent;
|
||||
|
||||
class CriticalActionPerformedEventListener extends Action implements IEventListener {
|
||||
public function handle(Event $event): void {
|
||||
if (!($event instanceof CriticalActionPerformedEvent)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->log(
|
||||
$event->getLogMessage(),
|
||||
$event->getParameters(),
|
||||
array_keys($event->getParameters()),
|
||||
$event->getObfuscateParameters()
|
||||
);
|
||||
}
|
||||
}
|
|
@ -28,12 +28,12 @@ declare(strict_types=1);
|
|||
namespace OCA\AdminAudit\Tests\Actions;
|
||||
|
||||
use OCA\AdminAudit\Actions\Security;
|
||||
use OCP\ILogger;
|
||||
use OCP\IUser;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Test\TestCase;
|
||||
|
||||
class SecurityTest extends TestCase {
|
||||
/** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
|
||||
/** @var ILogger|\PHPUnit\Framework\MockObject\MockObject */
|
||||
private $logger;
|
||||
|
||||
/** @var Security */
|
||||
|
@ -45,7 +45,7 @@ class SecurityTest extends TestCase {
|
|||
protected function setUp(): void {
|
||||
parent::setUp();
|
||||
|
||||
$this->logger = $this->createMock(LoggerInterface::class);
|
||||
$this->logger = $this->createMock(ILogger::class);
|
||||
$this->security = new Security($this->logger);
|
||||
|
||||
$this->user = $this->createMock(IUser::class);
|
||||
|
|
|
@ -15,6 +15,6 @@
|
|||
<category>files</category>
|
||||
<bugs>https://github.com/nextcloud/cloud_federation/issues</bugs>
|
||||
<dependencies>
|
||||
<nextcloud min-version="22" max-version="22"/>
|
||||
<nextcloud min-version="21" max-version="21"/>
|
||||
</dependencies>
|
||||
</info>
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
OC.L10N.register(
|
||||
"cloud_federation_api",
|
||||
{
|
||||
"Cloud Federation API" : "Cloud ဖွဲ့စည်းမှု API ",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Cloud များကို တစ်ခုခုနှင့်တစ်ခု ဆက်သွယ်ခြင်း၊ သတင်းအချက်အလက်ဖလှယ်ခြင်းကို ပြုလုပ်နိုင်ရန် ဖွင့်ပေးပါ။"
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
|
@ -1,5 +0,0 @@
|
|||
{ "translations": {
|
||||
"Cloud Federation API" : "Cloud ဖွဲ့စည်းမှု API ",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Cloud များကို တစ်ခုခုနှင့်တစ်ခု ဆက်သွယ်ခြင်း၊ သတင်းအချက်အလက်ဖလှယ်ခြင်းကို ပြုလုပ်နိုင်ရန် ဖွင့်ပေးပါ။"
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
OC.L10N.register(
|
||||
"cloud_federation_api",
|
||||
{
|
||||
"Cloud Federation API" : "Birleşik Bulut API",
|
||||
"Cloud Federation API" : "Bulut Birleşim API",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Karşılıklı iletişim kurmak için bulut hizmetlerini kullanın",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Birleşik Bulut API, farklı Nextcloud kopyalarının birbiri ile iletişim kurarak karşılıklı veri aktarmasını sağlar."
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Bulut Birleşim API farklı Nextcloud kopyalarının birbiri ile iletişim kurarak karşılıklı veri aktarmasını sağlar."
|
||||
},
|
||||
"nplurals=2; plural=(n > 1);");
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ "translations": {
|
||||
"Cloud Federation API" : "Birleşik Bulut API",
|
||||
"Cloud Federation API" : "Bulut Birleşim API",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Karşılıklı iletişim kurmak için bulut hizmetlerini kullanın",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Birleşik Bulut API, farklı Nextcloud kopyalarının birbiri ile iletişim kurarak karşılıklı veri aktarmasını sağlar."
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Bulut Birleşim API farklı Nextcloud kopyalarının birbiri ile iletişim kurarak karşılıklı veri aktarmasını sağlar."
|
||||
},"pluralForm" :"nplurals=2; plural=(n > 1);"
|
||||
}
|
|
@ -38,11 +38,11 @@ use OCP\Federation\ICloudFederationFactory;
|
|||
use OCP\Federation\ICloudFederationProviderManager;
|
||||
use OCP\Federation\ICloudIdManager;
|
||||
use OCP\IGroupManager;
|
||||
use OCP\ILogger;
|
||||
use OCP\IRequest;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\IUserManager;
|
||||
use OCP\Share\Exceptions\ShareNotFound;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
/**
|
||||
* Class RequestHandlerController
|
||||
|
@ -53,7 +53,7 @@ use Psr\Log\LoggerInterface;
|
|||
*/
|
||||
class RequestHandlerController extends Controller {
|
||||
|
||||
/** @var LoggerInterface */
|
||||
/** @var ILogger */
|
||||
private $logger;
|
||||
|
||||
/** @var IUserManager */
|
||||
|
@ -79,7 +79,7 @@ class RequestHandlerController extends Controller {
|
|||
|
||||
public function __construct($appName,
|
||||
IRequest $request,
|
||||
LoggerInterface $logger,
|
||||
ILogger $logger,
|
||||
IUserManager $userManager,
|
||||
IGroupManager $groupManager,
|
||||
IURLGenerator $urlGenerator,
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<category>social</category>
|
||||
<bugs>https://github.com/nextcloud/server/issues</bugs>
|
||||
<dependencies>
|
||||
<nextcloud min-version="22" max-version="22"/>
|
||||
<nextcloud min-version="21" max-version="21"/>
|
||||
</dependencies>
|
||||
|
||||
<activity>
|
||||
|
|
|
@ -16,10 +16,10 @@ return array(
|
|||
'OCA\\Comments\\Collaboration\\CommentersSorter' => $baseDir . '/../lib/Collaboration/CommentersSorter.php',
|
||||
'OCA\\Comments\\Controller\\Notifications' => $baseDir . '/../lib/Controller/Notifications.php',
|
||||
'OCA\\Comments\\EventHandler' => $baseDir . '/../lib/EventHandler.php',
|
||||
'OCA\\Comments\\JSSettingsHelper' => $baseDir . '/../lib/JSSettingsHelper.php',
|
||||
'OCA\\Comments\\Listener\\CommentsEntityEventListener' => $baseDir . '/../lib/Listener/CommentsEntityEventListener.php',
|
||||
'OCA\\Comments\\Listener\\LoadAdditionalScripts' => $baseDir . '/../lib/Listener/LoadAdditionalScripts.php',
|
||||
'OCA\\Comments\\Listener\\LoadSidebarScripts' => $baseDir . '/../lib/Listener/LoadSidebarScripts.php',
|
||||
'OCA\\Comments\\MaxAutoCompleteResultsInitialState' => $baseDir . '/../lib/MaxAutoCompleteResultsInitialState.php',
|
||||
'OCA\\Comments\\Notification\\Listener' => $baseDir . '/../lib/Notification/Listener.php',
|
||||
'OCA\\Comments\\Notification\\Notifier' => $baseDir . '/../lib/Notification/Notifier.php',
|
||||
'OCA\\Comments\\Search\\CommentsSearchProvider' => $baseDir . '/../lib/Search/CommentsSearchProvider.php',
|
||||
|
|
|
@ -31,10 +31,10 @@ class ComposerStaticInitComments
|
|||
'OCA\\Comments\\Collaboration\\CommentersSorter' => __DIR__ . '/..' . '/../lib/Collaboration/CommentersSorter.php',
|
||||
'OCA\\Comments\\Controller\\Notifications' => __DIR__ . '/..' . '/../lib/Controller/Notifications.php',
|
||||
'OCA\\Comments\\EventHandler' => __DIR__ . '/..' . '/../lib/EventHandler.php',
|
||||
'OCA\\Comments\\JSSettingsHelper' => __DIR__ . '/..' . '/../lib/JSSettingsHelper.php',
|
||||
'OCA\\Comments\\Listener\\CommentsEntityEventListener' => __DIR__ . '/..' . '/../lib/Listener/CommentsEntityEventListener.php',
|
||||
'OCA\\Comments\\Listener\\LoadAdditionalScripts' => __DIR__ . '/..' . '/../lib/Listener/LoadAdditionalScripts.php',
|
||||
'OCA\\Comments\\Listener\\LoadSidebarScripts' => __DIR__ . '/..' . '/../lib/Listener/LoadSidebarScripts.php',
|
||||
'OCA\\Comments\\MaxAutoCompleteResultsInitialState' => __DIR__ . '/..' . '/../lib/MaxAutoCompleteResultsInitialState.php',
|
||||
'OCA\\Comments\\Notification\\Listener' => __DIR__ . '/..' . '/../lib/Notification/Listener.php',
|
||||
'OCA\\Comments\\Notification\\Notifier' => __DIR__ . '/..' . '/../lib/Notification/Notifier.php',
|
||||
'OCA\\Comments\\Search\\CommentsSearchProvider' => __DIR__ . '/..' . '/../lib/Search/CommentsSearchProvider.php',
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,24 +1,2 @@
|
|||
!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/js/",n(n.s=706)}({706:function(e,n){
|
||||
/**
|
||||
* @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>
|
||||
*
|
||||
* @author John Molakvoæ <skjnldsv@protonmail.com>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
let o=null;const r=new OCA.Files.Sidebar.Tab({id:"comments",name:t("comments","Comments"),icon:"icon-comment",async mount(e,t,n){o&&o.$destroy(),o=new OCA.Comments.View("files",{parent:n}),await o.update(t.id),o.$mount(e)},update(e){o.update(e.id)},destroy(){o.$destroy(),o=null},scrollBottomReached(){o.onScrollBottomReached()}});window.addEventListener("DOMContentLoaded",(function(){OCA.Files&&OCA.Files.Sidebar&&OCA.Files.Sidebar.registerTab(r)}))}});
|
||||
!function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/js/",t(t.s=742)}({742:function(e,n){function r(e,n,t,r,o,i,u){try{var c=e[i](u),a=c.value}catch(e){return void t(e)}c.done?n(a):Promise.resolve(a).then(r,o)}var o=null,i=new OCA.Files.Sidebar.Tab({id:"comments",name:t("comments","Comments"),icon:"icon-comment",mount:function(e,n,t){return(i=regeneratorRuntime.mark((function r(){return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o&&o.$destroy(),o=new OCA.Comments.View("files",{parent:t}),r.next=4,o.update(n.id);case 4:o.$mount(e);case 5:case"end":return r.stop()}}),r)})),function(){var e=this,n=arguments;return new Promise((function(t,o){var u=i.apply(e,n);function c(e){r(u,t,o,c,a,"next",e)}function a(e){r(u,t,o,c,a,"throw",e)}c(void 0)}))})();var i},update:function(e){o.update(e.id)},destroy:function(){o.$destroy(),o=null},scrollBottomReached:function(){o.onScrollBottomReached()}});window.addEventListener("DOMContentLoaded",(function(){OCA.Files&&OCA.Files.Sidebar&&OCA.Files.Sidebar.registerTab(i)}))}});
|
||||
//# sourceMappingURL=comments-tab.js.map
|
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
|
@ -15,19 +15,12 @@ OC.L10N.register(
|
|||
"Files app plugin to add comments to files" : "ファイルにコメントを追加するためのファイルアプリプラグイン",
|
||||
"Edit comment" : "コメントを編集",
|
||||
"Delete comment" : "コメントを削除",
|
||||
"Cancel edit" : "編集をキャンセル",
|
||||
"Post comment" : "コメントを投稿",
|
||||
"No comments yet, start the conversation!" : "まだコメントはありません、会話を開始してください!",
|
||||
"No more messages" : "これ以上のメッセージはありません",
|
||||
"Retry" : "再試行",
|
||||
"Unable to load the comments list" : "コメントリストを読み込めませんでした",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n の未読のコメント"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["の未読のコメント {unread}"],
|
||||
"Comment" : "コメント",
|
||||
"An error occurred while trying to edit the comment" : "コメント編集中にエラーが発生しました",
|
||||
"Comment deleted" : "コメントが削除されました",
|
||||
"An error occurred while trying to delete the comment" : "コメントの削除中にエラーが発生しました",
|
||||
"An error occurred while trying to create the comment" : "コメント中にエラーが発生しました",
|
||||
"New comment …" : "新しいコメント...",
|
||||
"Post" : "追加",
|
||||
"Cancel" : "キャンセル",
|
||||
|
|
|
@ -13,19 +13,12 @@
|
|||
"Files app plugin to add comments to files" : "ファイルにコメントを追加するためのファイルアプリプラグイン",
|
||||
"Edit comment" : "コメントを編集",
|
||||
"Delete comment" : "コメントを削除",
|
||||
"Cancel edit" : "編集をキャンセル",
|
||||
"Post comment" : "コメントを投稿",
|
||||
"No comments yet, start the conversation!" : "まだコメントはありません、会話を開始してください!",
|
||||
"No more messages" : "これ以上のメッセージはありません",
|
||||
"Retry" : "再試行",
|
||||
"Unable to load the comments list" : "コメントリストを読み込めませんでした",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n の未読のコメント"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["の未読のコメント {unread}"],
|
||||
"Comment" : "コメント",
|
||||
"An error occurred while trying to edit the comment" : "コメント編集中にエラーが発生しました",
|
||||
"Comment deleted" : "コメントが削除されました",
|
||||
"An error occurred while trying to delete the comment" : "コメントの削除中にエラーが発生しました",
|
||||
"An error occurred while trying to create the comment" : "コメント中にエラーが発生しました",
|
||||
"New comment …" : "新しいコメント...",
|
||||
"Post" : "追加",
|
||||
"Cancel" : "キャンセル",
|
||||
|
|
|
@ -20,7 +20,7 @@ OC.L10N.register(
|
|||
"No comments yet, start the conversation!" : "Ancora perunu cummentu, cumintza sa cunversatzione!",
|
||||
"No more messages" : "Perunu àteru messàgiu",
|
||||
"Retry" : "Torra a proare",
|
||||
"Unable to load the comments list" : "Non faghet a carrigare sa lista de cummentos",
|
||||
"Unable to load the comments list" : "Impossìbile a carrigare sa lista de cummentos",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n cummentu non lèghidu","%n cummentos non lèghidos"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 cummentu nou","{unread} cummentos noos"],
|
||||
"Comment" : "Cummenta",
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
"No comments yet, start the conversation!" : "Ancora perunu cummentu, cumintza sa cunversatzione!",
|
||||
"No more messages" : "Perunu àteru messàgiu",
|
||||
"Retry" : "Torra a proare",
|
||||
"Unable to load the comments list" : "Non faghet a carrigare sa lista de cummentos",
|
||||
"Unable to load the comments list" : "Impossìbile a carrigare sa lista de cummentos",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n cummentu non lèghidu","%n cummentos non lèghidos"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 cummentu nou","{unread} cummentos noos"],
|
||||
"Comment" : "Cummenta",
|
||||
|
|
|
@ -31,10 +31,10 @@ use Closure;
|
|||
use OCA\Comments\Capabilities;
|
||||
use OCA\Comments\Controller\Notifications;
|
||||
use OCA\Comments\EventHandler;
|
||||
use OCA\Comments\JSSettingsHelper;
|
||||
use OCA\Comments\Listener\CommentsEntityEventListener;
|
||||
use OCA\Comments\Listener\LoadAdditionalScripts;
|
||||
use OCA\Comments\Listener\LoadSidebarScripts;
|
||||
use OCA\Comments\MaxAutoCompleteResultsInitialState;
|
||||
use OCA\Comments\Notification\Notifier;
|
||||
use OCA\Comments\Search\LegacyProvider;
|
||||
use OCA\Comments\Search\CommentsSearchProvider;
|
||||
|
@ -45,8 +45,10 @@ use OCP\AppFramework\Bootstrap\IBootContext;
|
|||
use OCP\AppFramework\Bootstrap\IBootstrap;
|
||||
use OCP\AppFramework\Bootstrap\IRegistrationContext;
|
||||
use OCP\Comments\CommentsEntityEvent;
|
||||
use OCP\IConfig;
|
||||
use OCP\ISearch;
|
||||
use OCP\IServerContainer;
|
||||
use OCP\Util;
|
||||
|
||||
class Application extends App implements IBootstrap {
|
||||
public const APP_ID = 'comments';
|
||||
|
@ -73,18 +75,22 @@ class Application extends App implements IBootstrap {
|
|||
CommentsEntityEventListener::class
|
||||
);
|
||||
$context->registerSearchProvider(CommentsSearchProvider::class);
|
||||
|
||||
$context->registerInitialStateProvider(MaxAutoCompleteResultsInitialState::class);
|
||||
|
||||
$context->registerNotifierService(Notifier::class);
|
||||
}
|
||||
|
||||
public function boot(IBootContext $context): void {
|
||||
$context->injectFn(Closure::fromCallable([$this, 'registerNotifier']));
|
||||
$context->injectFn(Closure::fromCallable([$this, 'registerCommentsEventHandler']));
|
||||
|
||||
$jsSettingsHelper = new JSSettingsHelper($context->getAppContainer()->get(IConfig::class));
|
||||
Util::connectHook('\OCP\Config', 'js', $jsSettingsHelper, 'extend');
|
||||
|
||||
$context->getServerContainer()->get(ISearch::class)->registerProvider(LegacyProvider::class, ['apps' => ['files']]);
|
||||
}
|
||||
|
||||
protected function registerNotifier(IServerContainer $container) {
|
||||
$container->getNotificationManager()->registerNotifierService(Notifier::class);
|
||||
}
|
||||
|
||||
protected function registerCommentsEventHandler(IServerContainer $container) {
|
||||
$container->getCommentsManager()->registerEventHandler(function () {
|
||||
return $this->getContainer()->query(EventHandler::class);
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright Copyright (c) 2021 Roeland Jago Douma <roeland@famdouma.nl>
|
||||
* @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de>
|
||||
*
|
||||
* @author Roeland Jago Douma <roeland@famdouma.nl>
|
||||
* @author Arthur Schiwon <blizzz@arthur-schiwon.de>
|
||||
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
|
@ -26,23 +24,22 @@ declare(strict_types=1);
|
|||
|
||||
namespace OCA\Comments;
|
||||
|
||||
use OCP\AppFramework\Services\InitialStateProvider;
|
||||
use OCP\IConfig;
|
||||
|
||||
class MaxAutoCompleteResultsInitialState extends InitialStateProvider {
|
||||
|
||||
class JSSettingsHelper {
|
||||
/** @var IConfig */
|
||||
private $config;
|
||||
private $c;
|
||||
|
||||
public function __construct(IConfig $config) {
|
||||
$this->config = $config;
|
||||
public function __construct(IConfig $c) {
|
||||
$this->c = $c;
|
||||
}
|
||||
|
||||
public function getKey(): string {
|
||||
return 'maxAutoCompleteResults';
|
||||
}
|
||||
public function extend(array $settings) {
|
||||
$appConfig = json_decode($settings['array']['oc_appconfig'], true);
|
||||
|
||||
public function getData(): int {
|
||||
return (int)$this->config->getAppValue('comments', 'maxAutoCompleteResults', '10');
|
||||
$value = (int)$this->c->getAppValue('comments', 'maxAutoCompleteResults', 10);
|
||||
$appConfig['comments']['maxAutoCompleteResults'] = $value;
|
||||
|
||||
$settings['array']['oc_appconfig'] = json_encode($appConfig);
|
||||
}
|
||||
}
|
|
@ -133,7 +133,7 @@ class Notifier implements INotifier {
|
|||
if (strpos($path, '/' . $notification->getUser() . '/files/') === 0) {
|
||||
// Remove /user/files/...
|
||||
$fullPath = $path;
|
||||
[,,, $path] = explode('/', $fullPath, 4);
|
||||
list(,,, $path) = explode('/', $fullPath, 4);
|
||||
}
|
||||
$subjectParameters = [
|
||||
'file' => [
|
||||
|
@ -155,7 +155,7 @@ class Notifier implements INotifier {
|
|||
'name' => $displayName,
|
||||
];
|
||||
}
|
||||
[$message, $messageParameters] = $this->commentToRichMessage($comment);
|
||||
list($message, $messageParameters) = $this->commentToRichMessage($comment);
|
||||
$notification->setRichSubject($subject, $subjectParameters)
|
||||
->setParsedSubject($this->richToParsed($subject, $subjectParameters))
|
||||
->setRichMessage($message, $messageParameters)
|
||||
|
|
|
@ -1,24 +1,11 @@
|
|||
/**
|
||||
* @author Joas Schilling <coding@schilljs.com>
|
||||
* Copyright (c) 2016
|
||||
*
|
||||
* @author Joas Schilling <coding@schilljs.com>
|
||||
* @author John Molakvoæ <skjnldsv@protonmail.com>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
* This file is licensed under the Affero General Public License version 3
|
||||
* or later.
|
||||
*
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
|
|
|
@ -1,23 +1,10 @@
|
|||
/**
|
||||
/*
|
||||
* Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>
|
||||
*
|
||||
* @author John Molakvoæ <skjnldsv@protonmail.com>
|
||||
* @author Vincent Petry <vincent@nextcloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3
|
||||
* or later.
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
|
|
|
@ -1,26 +1,3 @@
|
|||
/**
|
||||
* @copyright Copyright (c) 2016 Roeland Jago Douma <roeland@famdouma.nl>
|
||||
*
|
||||
* @author John Molakvoæ <skjnldsv@protonmail.com>
|
||||
* @author Roeland Jago Douma <roeland@famdouma.nl>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
import './app'
|
||||
import './templates'
|
||||
import './filesplugin'
|
||||
|
|
|
@ -66,12 +66,11 @@
|
|||
</div>
|
||||
|
||||
<!-- Message editor -->
|
||||
<div v-if="editor || editing" class="comment__editor ">
|
||||
<div class="comment__editor " v-if="editor || editing">
|
||||
<RichContenteditable ref="editor"
|
||||
v-model="localMessage"
|
||||
:auto-complete="autoComplete"
|
||||
:contenteditable="!loading"
|
||||
:value="localMessage"
|
||||
@update:value="updateLocalMessage"
|
||||
@submit="onSubmit" />
|
||||
<input v-tooltip="t('comments', 'Post comment')"
|
||||
:class="loading ? 'icon-loading-small' :'icon-confirm'"
|
||||
|
|
|
@ -1,26 +1,10 @@
|
|||
/**
|
||||
/*
|
||||
* Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>
|
||||
*
|
||||
* @author Joas Schilling <coding@schilljs.com>
|
||||
* @author John Molakvoæ <skjnldsv@protonmail.com>
|
||||
* @author Michael Jobst <mjobst+github@tecratech.de>
|
||||
* @author Roeland Jago Douma <roeland@famdouma.nl>
|
||||
* @author Vincent Petry <vincent@nextcloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3
|
||||
* or later.
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue