initial commit
This commit is contained in:
commit
685350d476
17
appinfo/info.xml
Normal file
17
appinfo/info.xml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<info xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
|
||||||
|
<id>pride</id>
|
||||||
|
<name>Pride</name>
|
||||||
|
<summary>Add pride flags to your nextcloud</summary>
|
||||||
|
<description><![CDATA[Diversity and inclusion are what makes the world worth living in! Let's show some pride!]]></description>
|
||||||
|
<version>0.1.0</version>
|
||||||
|
<licence>cnvpl</licence>
|
||||||
|
<author mail="" homepage="https://github.com/finallycoffee/nextcloud-pride"></author>
|
||||||
|
<namespace>Pride</namespace>
|
||||||
|
<category>customization</category>
|
||||||
|
<bugs>https://github.com/finallycoffee/nextcloud-pride/issues</bugs>
|
||||||
|
<dependencies>
|
||||||
|
<nextcloud min-version="26" max-version="28"/>
|
||||||
|
</dependencies>
|
||||||
|
</info>
|
3
css/pride.css
Normal file
3
css/pride.css
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
.files-list__row-icon .folder-icon svg {
|
||||||
|
fill: url("#gradient-pride");
|
||||||
|
}
|
43
js/pride.js
Normal file
43
js/pride.js
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
const flags = [
|
||||||
|
{
|
||||||
|
id: 'gradient-pride',
|
||||||
|
colors: ['#E04641', '#DE7E41', '#E4D56F', '#55B85F', '#2473B5', '#6F5DA5'],
|
||||||
|
transform: 'rotate(90)'
|
||||||
|
}, {
|
||||||
|
id: 'gradient-trans',
|
||||||
|
colors: ['#55CDFC', '#F7A8B8', '#FFFFFF', '#F7A8B8', '#55CDFC'],
|
||||||
|
transform: 'rotate(90)'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
const generateGradient = colors => {
|
||||||
|
const steps = colors.length;
|
||||||
|
return steps.map((color, index) => { return [
|
||||||
|
[color, (index / steps)],
|
||||||
|
[color, (index + 1) / steps]
|
||||||
|
]}).flat();
|
||||||
|
};
|
||||||
|
|
||||||
|
const generateStops = (colors, opacity) => {
|
||||||
|
return generateGradient(colors).map((color, offset) => {
|
||||||
|
return `<stop stop-color="${color}" stop-opacity="${opacity}" offset="${offset * 100}%"></stop>`;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const makeLinearGradientSvg = (id, colors, opacity, transform) => {
|
||||||
|
return `<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="${id}" gradientTransform="${transform}">
|
||||||
|
${generateStops(colors, opacity)}
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>`;
|
||||||
|
};
|
||||||
|
|
||||||
|
flags.forEach(flag => {
|
||||||
|
const container = document.createElement('div');
|
||||||
|
container.classList.add('hidden-visually');
|
||||||
|
container.ariaHidden = true;
|
||||||
|
container.innerHTML = makeLinearGradientSvg(flag.id, flag.colors, flag.opacity ?? '0.8', flag.transform ?? 'rotate(0)');
|
||||||
|
document.body.prepend(container);
|
||||||
|
});
|
27
lib/AppInfo/Application.php
Normal file
27
lib/AppInfo/Application.php
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace OCA\Pride\AppInfo;
|
||||||
|
|
||||||
|
use OCP\Util;
|
||||||
|
use OCP\AppFramework\App;
|
||||||
|
use OCP\AppFramework\Bootstrap\IBootContext;
|
||||||
|
use OCP\AppFramework\Bootstrap\IBootstrap;
|
||||||
|
use OCP\AppFramework\Bootstrap\IRegistrationContext;
|
||||||
|
use OCP\IConfig;
|
||||||
|
|
||||||
|
class Application extends App implements IBootstrap {
|
||||||
|
const APP_ID = 'pride';
|
||||||
|
public function __construct(array $urlParams = []) {
|
||||||
|
parent::__construct(self::APP_ID, $urlParams);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function register(IRegistrationContext $ctx): void {
|
||||||
|
$config = \OC::$server->get(IConfig::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function boot(IBootContext $ctx): void {
|
||||||
|
Util::addStyle(self::APP_ID, 'pride');
|
||||||
|
Util::addScript(self::APP_ID, 'pride');
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user