Skip to content

Commit 05e90d6

Browse files
committed
add imaginary
Signed-off-by: szaimen <szaimen@e.mail.de>
1 parent c926f92 commit 05e90d6

13 files changed

Lines changed: 95 additions & 2 deletions

File tree

.github/dependabot.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,3 +135,12 @@ updates:
135135
labels:
136136
- 3. to review
137137
- dependencies
138+
- package-ecosystem: "docker"
139+
directory: "/Containers/imaginary"
140+
schedule:
141+
interval: "daily"
142+
time: "12:00"
143+
open-pull-requests-limit: 10
144+
labels:
145+
- 3. to review
146+
- dependencies

Containers/imaginary/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# From https://github.com/h2non/imaginary/blob/master/Dockerfile
2+
FROM nextcloud/imaginary:20220819

Containers/nextcloud/entrypoint.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,5 +407,16 @@ else
407407
fi
408408
fi
409409

410+
# Imaginary
411+
if version_greater "24.0.0.0" "$installed_version"; then
412+
if [ "$IMAGINARY_ENABLED" = 'yes' ]; then
413+
php /var/www/html/occ config:system:set enabledPreviewProviders 0 --value="OC\\Preview\\Imaginary"
414+
php /var/www/html/occ config:system:set preview_imaginary_url --value="http://$IMAGINARY_HOST:9000"
415+
else
416+
php /var/www/html/occ config:system:delete enabledPreviewProviders 0
417+
php /var/www/html/occ config:system:delete preview_imaginary_url
418+
fi
419+
fi
420+
410421
# Remove the update skip file always
411422
rm -f /mnt/ncdata/skip.update

php/containers.json

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@
8080
"identifier": "nextcloud-aio-nextcloud",
8181
"dependsOn": [
8282
"nextcloud-aio-database",
83-
"nextcloud-aio-redis"
83+
"nextcloud-aio-redis",
84+
"nextcloud-aio-imaginary"
8485
],
8586
"displayName": "Nextcloud",
8687
"containerName": "nextcloud/aio-nextcloud",
@@ -140,7 +141,9 @@
140141
"ONLYOFFICE_HOST=nextcloud-aio-onlyoffice",
141142
"UPDATE_NEXTCLOUD_APPS=%UPDATE_NEXTCLOUD_APPS%",
142143
"TZ=%TIMEZONE%",
143-
"TALK_PORT=%TALK_PORT%"
144+
"TALK_PORT=%TALK_PORT%",
145+
"IMAGINARY_ENABLED=%IMAGINARY_ENABLED%",
146+
"IMAGINARY_HOST=nextcloud-aio-imaginary"
144147
],
145148
"maxShutdownTime": 10,
146149
"restartPolicy": "unless-stopped"
@@ -367,6 +370,23 @@
367370
],
368371
"maxShutdownTime": 10,
369372
"restartPolicy": "unless-stopped"
373+
},
374+
{
375+
"identifier": "nextcloud-aio-imaginary",
376+
"dependsOn": [],
377+
"displayName": "Imaginary",
378+
"containerName": "nextcloud/aio-imaginary",
379+
"ports": [],
380+
"internalPorts": [
381+
"9000"
382+
],
383+
"environmentVariables": [
384+
"TZ=%TIMEZONE%"
385+
],
386+
"volumes": [],
387+
"secrets": [],
388+
"maxShutdownTime": 10,
389+
"restartPolicy": "unless-stopped"
370390
}
371391
]
372392
}

php/public/disable-imaginary.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
document.addEventListener("DOMContentLoaded", function(event) {
2+
// Imaginary
3+
var imaginary = document.getElementById("imaginary");
4+
imaginary.disabled = true;
5+
});

php/public/index.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@
102102
'collabora_dictionaries' => $configurationManager->GetCollaboraDictionaries(),
103103
'automatic_updates' => $configurationManager->areAutomaticUpdatesEnabled(),
104104
'is_backup_section_enabled' => $configurationManager->isBackupSectionEnabled(),
105+
'is_imaginary_enabled' => $configurationManager->isImaginaryEnabled(),
105106
]);
106107
})->setName('profile');
107108
$app->get('/login', function ($request, $response, $args) use ($container) {

php/public/options-form-submit.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,8 @@ document.addEventListener("DOMContentLoaded", function(event) {
2323
// Talk
2424
var talk = document.getElementById("talk");
2525
talk.addEventListener('change', makeOptionsFormSubmitVisible);
26+
27+
// Imaginary
28+
var imaginary = document.getElementById("imaginary");
29+
imaginary.addEventListener('change', makeOptionsFormSubmitVisible);
2630
});

php/src/ContainerDefinitionFetcher.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ private function GetDefinition(bool $latest): array
6565
if (!$this->configurationManager->isTalkEnabled()) {
6666
continue;
6767
}
68+
} elseif ($entry['identifier'] === 'nextcloud-aio-imaginary') {
69+
if (!$this->configurationManager->isImaginaryEnabled()) {
70+
continue;
71+
}
6872
}
6973

7074
$ports = new ContainerPorts();
@@ -146,6 +150,10 @@ private function GetDefinition(bool $latest): array
146150
if (!$this->configurationManager->isTalkEnabled()) {
147151
continue;
148152
}
153+
} elseif ($value === 'nextcloud-aio-imaginary') {
154+
if (!$this->configurationManager->isImaginaryEnabled()) {
155+
continue;
156+
}
149157
}
150158
$dependsOn[] = $value;
151159
}

php/src/Controller/ConfigurationController.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ public function SetConfig(Request $request, Response $response, $args) : Respons
9090
} else {
9191
$this->configurationManager->SetTalkEnabledState(0);
9292
}
93+
if (isset($request->getParsedBody()['imaginary'])) {
94+
$this->configurationManager->SetImaginaryEnabledState(1);
95+
} else {
96+
$this->configurationManager->SetImaginaryEnabledState(0);
97+
}
9398
}
9499

95100
if (isset($request->getParsedBody()['delete_collabora_dictionaries'])) {

php/src/Data/ConfigurationManager.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,21 @@ public function SetClamavEnabledState(int $value) : void {
139139
$this->WriteConfig($config);
140140
}
141141

142+
public function isImaginaryEnabled() : bool {
143+
$config = $this->GetConfig();
144+
if (isset($config['isImaginaryEnabled']) && $config['isImaginaryEnabled'] === 1) {
145+
return true;
146+
} else {
147+
return false;
148+
}
149+
}
150+
151+
public function SetImaginaryEnabledState(int $value) : void {
152+
$config = $this->GetConfig();
153+
$config['isImaginaryEnabled'] = $value;
154+
$this->WriteConfig($config);
155+
}
156+
142157
public function isOnlyofficeEnabled() : bool {
143158
$config = $this->GetConfig();
144159
if (isset($config['isOnlyofficeEnabled']) && $config['isOnlyofficeEnabled'] === 1) {

0 commit comments

Comments
 (0)