Einiger Stylekrams

This commit is contained in:
Holger Trampe 2021-10-22 09:03:32 +02:00
parent ec42146b57
commit 3d07ca9dc0
22 changed files with 99722 additions and 103 deletions

View File

@ -1,6 +1,6 @@
# Makefile for building the project # Makefile for building the project
app_name=registration app_name=da_registration
project_dir=$(CURDIR)/../$(app_name) project_dir=$(CURDIR)/../$(app_name)
build_dir=$(CURDIR)/build/artifacts build_dir=$(CURDIR)/build/artifacts

View File

@ -1,42 +1,17 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<info xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" <info xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd"> xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
<id>registration</id> <id>da_registration</id>
<name>Registration</name> <name>DA Registration</name>
<summary>This app allows users to self-register a new account using their email address.</summary> <namespace>Registration</namespace>
<description><![CDATA[User registration <description></description>
<version>1.5.0</version>
This app allows users to register a new account.
# Features
- Add users to a given group
- Allow-list with email domains (including wildcard) to register with
- Admins will be notified via email for new user creation or require approval
- Supports Nextcloud's Client Login Flow v1 and v2 - allowing registration in the mobile Apps and Desktop clients
# Web form registration flow
1. User enters their email address
2. Verification link is sent to the email address
3. User clicks on the verification link
4. User is lead to a form where they can choose their username and password
5. New account is created and is logged in automatically
]]></description>
<version>1.4.0</version>
<licence>agpl</licence> <licence>agpl</licence>
<author mail="pellaeon@cnmc.tw" homepage="https://nyllep.wordpress.com/about-2">Pellaeon Lin</author>
<types> <types>
<prevent_group_restriction /> <prevent_group_restriction />
</types> </types>
<category>security</category> <category>security</category>
<category>tools</category> <category>tools</category>
<website>https://github.com/nextcloud/registration</website>
<bugs>https://github.com/nextcloud/registration/issues</bugs>
<repository>https://github.com/nextcloud/registration</repository>
<screenshot>https://raw.githubusercontent.com/nextcloud/registration/master/docs/screenshot.png</screenshot>
<screenshot>https://raw.githubusercontent.com/nextcloud/registration/master/docs/demo.gif</screenshot>
<screenshot>https://raw.githubusercontent.com/nextcloud/registration/master/docs/admin-settings.png</screenshot>
<dependencies> <dependencies>
<nextcloud min-version="20" max-version="23" /> <nextcloud min-version="20" max-version="23" />
</dependencies> </dependencies>

View File

@ -1,15 +1,4 @@
<?php <?php
/**
* ownCloud - registration
*
* This file is licensed under the Affero General Public License version 3 or
* later. See the COPYING file.
*
* @author Pellaeon Lin <pellaeon@hs.ntnu.edu.tw>
* @author Julius Härtl <jus@bitgrid.net>
* @copyright Pellaeon Lin 2014
*/
return [ return [
'routes' => [ 'routes' => [
['name' => 'settings#admin', 'url' => '/settings', 'verb' => 'POST'], ['name' => 'settings#admin', 'url' => '/settings', 'verb' => 'POST'],

View File

@ -5,8 +5,8 @@
"OCA\\Registration\\": "lib/" "OCA\\Registration\\": "lib/"
} }
}, },
"name": "nextcloud/registration", "name": "nextcloud/da_registration",
"description": "registration", "description": "da_registration",
"license": "AGPL", "license": "AGPL",
"require": { "require": {
}, },

View File

@ -1,8 +1,10 @@
#alternative-logins:not(.alternative-logins) .button.register-button { #alternative-logins:not(.alternative-logins) .button.register-button {
color: var(--color-primary-element); color: var(--color-primary-element);
background-color: red;
} }
#alternative-logins.alternative-logins .button.register-button { #alternative-logins.alternative-logins .button.register-button {
color: var(--color-primary-text); color: red;
background-color: red;
} }
#alternative-logins .register-button:only-child { #alternative-logins .register-button:only-child {

View File

@ -0,0 +1,32 @@
/******/ (function() { // webpackBootstrap
/******/ "use strict";
var __webpack_exports__ = {};
/*!*********************!*\
!*** ./src/form.js ***!
\*********************/
document.addEventListener('DOMContentLoaded', function () {
var _this = this;
// Password toggle
$('#showadminpass').click(function (e) {
e.preventDefault();
var passwordTextField = $('#password');
if (passwordTextField.attr('type') === 'password') {
passwordTextField.attr('type', 'text');
} else {
passwordTextField.attr('type', 'password');
}
}); // Disable submit after first click
$('form').submit(function () {
// prevent duplicate form submissions
$(_this).find(':submit').attr('disabled', 'disabled');
$(_this).find(':submit')[0].value = t('registration', 'Loading …');
});
});
/******/ })()
;
//# sourceMappingURL=da_registration-form.js.map?v=f64a2674d0a4e7f46973

View File

@ -0,0 +1 @@
{"version":3,"file":"da_registration-form.js?v=f64a2674d0a4e7f46973","sources":["webpack:///da_registration/src/form.js"],"sourcesContent":["\"use strict\";\n\ndocument.addEventListener('DOMContentLoaded', function () {\n var _this = this;\n\n // Password toggle\n $('#showadminpass').click(function (e) {\n e.preventDefault();\n var passwordTextField = $('#password');\n\n if (passwordTextField.attr('type') === 'password') {\n passwordTextField.attr('type', 'text');\n } else {\n passwordTextField.attr('type', 'password');\n }\n }); // Disable submit after first click\n\n $('form').submit(function () {\n // prevent duplicate form submissions\n $(_this).find(':submit').attr('disabled', 'disabled');\n $(_this).find(':submit')[0].value = t('registration', 'Loading …');\n });\n});"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A","sourceRoot":""}

49809
js/da_registration-settings.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,32 @@
!function(){"use strict";document.addEventListener("DOMContentLoaded",(function(){var a=this;$("#showadminpass").click((function(t){t.preventDefault();var a=$("#password");"password"===a.attr("type")?a.attr("type","text"):a.attr("type","password")})),$("form").submit((function(){$(a).find(":submit").attr("disabled","disabled"),$(a).find(":submit")[0].value=t("registration","Loading …")}))}))}(); /******/ (function() { // webpackBootstrap
//# sourceMappingURL=registration-form.js.map?v=2f99bd8b8e2f96df0fe1 /******/ "use strict";
var __webpack_exports__ = {};
/*!*********************!*\
!*** ./src/form.js ***!
\*********************/
document.addEventListener('DOMContentLoaded', function () {
var _this = this;
// Password toggle
$('#showadminpass').click(function (e) {
e.preventDefault();
var passwordTextField = $('#password');
if (passwordTextField.attr('type') === 'password') {
passwordTextField.attr('type', 'text');
} else {
passwordTextField.attr('type', 'password');
}
}); // Disable submit after first click
$('form').submit(function () {
// prevent duplicate form submissions
$(_this).find(':submit').attr('disabled', 'disabled');
$(_this).find(':submit')[0].value = t('registration', 'Loading …');
});
});
/******/ })()
;
//# sourceMappingURL=registration-form.js.map?v=16159a8c95b8418d822a

View File

@ -1 +1 @@
{"version":3,"sources":["webpack:///registration/src/form.js"],"names":["document","addEventListener","$","click","e","preventDefault","passwordTextField","attr","submit","find","value","t"],"mappings":"yBAAAA,SAASC,iBAAiB,oBAAoB,WAAW,WAExDC,EAAE,kBAAkBC,OAAM,SAACC,GAC1BA,EAAEC,iBACF,IAAMC,EAAoBJ,EAAE,aACW,aAAnCI,EAAkBC,KAAK,QAC1BD,EAAkBC,KAAK,OAAQ,QAE/BD,EAAkBC,KAAK,OAAQ,eAKjCL,EAAE,QAAQM,QAAO,WAEhBN,EAAE,GAAMO,KAAK,WAAWF,KAAK,WAAY,YACzCL,EAAE,GAAMO,KAAK,WAAW,GAAGC,MAAQC,EAAE,eAAgB,mB","file":"registration-form.js?v=2f99bd8b8e2f96df0fe1","sourcesContent":["document.addEventListener('DOMContentLoaded', function() {\n\t// Password toggle\n\t$('#showadminpass').click((e) => {\n\t\te.preventDefault()\n\t\tconst passwordTextField = $('#password')\n\t\tif (passwordTextField.attr('type') === 'password') {\n\t\t\tpasswordTextField.attr('type', 'text')\n\t\t} else {\n\t\t\tpasswordTextField.attr('type', 'password')\n\t\t}\n\t})\n\n\t// Disable submit after first click\n\t$('form').submit(() => {\n\t\t// prevent duplicate form submissions\n\t\t$(this).find(':submit').attr('disabled', 'disabled')\n\t\t$(this).find(':submit')[0].value = t('registration', 'Loading …')\n\t})\n})\n"],"sourceRoot":""} {"version":3,"file":"registration-form.js?v=16159a8c95b8418d822a","sources":["webpack:///registration/src/form.js"],"sourcesContent":["\"use strict\";\n\ndocument.addEventListener('DOMContentLoaded', function () {\n var _this = this;\n\n // Password toggle\n $('#showadminpass').click(function (e) {\n e.preventDefault();\n var passwordTextField = $('#password');\n\n if (passwordTextField.attr('type') === 'password') {\n passwordTextField.attr('type', 'text');\n } else {\n passwordTextField.attr('type', 'password');\n }\n }); // Disable submit after first click\n\n $('form').submit(function () {\n // prevent duplicate form submissions\n $(_this).find(':submit').attr('disabled', 'disabled');\n $(_this).find(':submit')[0].value = t('registration', 'Loading …');\n });\n});"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A","sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,27 +1,7 @@
<?php <?php
declare(strict_types=1); declare(strict_types=1);
/**
* @copyright Copyright (c) 2017 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @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\Registration\AppInfo; namespace OCA\Registration\AppInfo;
@ -33,7 +13,7 @@ use OCP\AppFramework\Bootstrap\IBootstrap;
use OCP\AppFramework\Bootstrap\IRegistrationContext; use OCP\AppFramework\Bootstrap\IRegistrationContext;
class Application extends App implements IBootstrap { class Application extends App implements IBootstrap {
public const APP_ID = 'registration'; public const APP_ID = 'da_registration';
public function __construct() { public function __construct() {
parent::__construct(self::APP_ID); parent::__construct(self::APP_ID);

View File

@ -2,17 +2,6 @@
declare(strict_types=1); declare(strict_types=1);
/**
* ownCloud - registration
*
* This file is licensed under the Affero General Public License version 3 or
* later. See the COPYING file.
*
* @author Pellaeon Lin <pellaeon@hs.ntnu.edu.tw>
* @author Julius Härtl <jus@bitgrid.net>
* @author 2020 Joas Schilling <coding@schilljs.com>
* @copyright Pellaeon Lin 2014
*/
namespace OCA\Registration\Controller; namespace OCA\Registration\Controller;

View File

@ -1,14 +1,5 @@
<?php <?php
/**
* ownCloud - registration
*
* This file is licensed under the Affero General Public License version 3 or
* later. See the COPYING file.
*
* @author Pellaeon Lin <pellaeon@cnmc.tw>
* @author Julius Härtl <jus@bitgrid.net>
* @copyright Pellaeon Lin 2015
*/
namespace OCA\Registration\Controller; namespace OCA\Registration\Controller;

View File

@ -104,7 +104,7 @@ class MailService {
$template->setSubject($subject); $template->setSubject($subject);
$template->addHeader(); $template->addHeader();
$template->addHeading($this->l10n->t('Registration')); $template->addHeading($this->l10n->t('registration'));
$body = $this->l10n->t('Email address verified, you can now complete your registration.'); $body = $this->l10n->t('Email address verified, you can now complete your registration.');
if (!$this->loginFlowService->isUsingLoginFlow()) { if (!$this->loginFlowService->isUsingLoginFlow()) {

View File

@ -56,7 +56,7 @@ class RegistrationSettingsSection implements IIconSection {
* @return string * @return string
*/ */
public function getName(): string { public function getName(): string {
return $this->l10n->t('Registration'); return $this->l10n->t('registration');
} }
/** /**

12
package-lock.json generated
View File

@ -1,10 +1,11 @@
{ {
"name": "registration", "name": "da_registration",
"version": "1.0.0", "version": "1.0.0",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "da_registration",
"version": "1.0.0", "version": "1.0.0",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
@ -24,7 +25,8 @@
"@nextcloud/webpack-vue-config": "^4.0.3" "@nextcloud/webpack-vue-config": "^4.0.3"
}, },
"engines": { "engines": {
"node": ">=14.0.0" "node": ">=14.0.0",
"npm": ">=7.0.0"
} }
}, },
"node_modules/@babel/cli": { "node_modules/@babel/cli": {
@ -5565,11 +5567,13 @@
"version": "2.3.2", "version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"hasInstallScript": true, "hasInstallScript": true,
"optional": true, "optional": true,
"os": [ "os": [
"darwin" "darwin"
], ],
"peer": true,
"engines": { "engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0" "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
} }
@ -16337,7 +16341,9 @@
"version": "2.3.2", "version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"optional": true "dev": true,
"optional": true,
"peer": true
}, },
"function-bind": { "function-bind": {
"version": "1.1.1", "version": "1.1.1",

View File

@ -1,5 +1,5 @@
{ {
"name": "registration", "name": "da_registration",
"version": "1.0.0", "version": "1.0.0",
"description": "", "description": "",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",

View File

@ -2,6 +2,6 @@
/** @var array $_ */ /** @var array $_ */
/** @var \OCP\IL10N $l */ /** @var \OCP\IL10N $l */
script('registration', 'registration-settings'); script('registration', 'registration-settings');
style('registration', 'settings'); style('da_registration', 'settings');
?> ?>
<div id="registration_settings_form"></div> <div id="registration_settings_form"></div>

View File

@ -1,7 +1,7 @@
<?php <?php
/** @var array $_ */ /** @var array $_ */
/** @var \OCP\IL10N $l */ /** @var \OCP\IL10N $l */
style('registration', 'style'); style('da_registration', 'style');
?> ?>
<div class="error"> <div class="error">
<h2><?php p($l->t('Approval required')) ?></h2> <h2><?php p($l->t('Approval required')) ?></h2>