forked from geolba/tethys.backend
- redesign login page
- add authors and contributors for submitter via Subitter/DatasetController.ts - add Submitter/Person/Index.vue - add route subitter/person for listing persons
This commit is contained in:
parent
b1d587d9f5
commit
4ad281bcd4
|
@ -133,7 +133,7 @@ export default class DatasetController {
|
||||||
referenceIdentifierTypes: Object.entries(ReferenceIdentifierTypes).map(([key, value]) => ({ value: key, label: value })),
|
referenceIdentifierTypes: Object.entries(ReferenceIdentifierTypes).map(([key, value]) => ({ value: key, label: value })),
|
||||||
relationTypes: Object.entries(RelationTypes).map(([key, value]) => ({ value: key, label: value })),
|
relationTypes: Object.entries(RelationTypes).map(([key, value]) => ({ value: key, label: value })),
|
||||||
contributorTypes: ContributorTypes,
|
contributorTypes: ContributorTypes,
|
||||||
subjectTypes: SubjectTypes
|
subjectTypes: SubjectTypes,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
70
app/Controllers/Http/Submitter/PersonController.ts
Normal file
70
app/Controllers/Http/Submitter/PersonController.ts
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext';
|
||||||
|
// import User from 'App/Models/User';
|
||||||
|
// import Dataset from 'App/Models/Dataset';
|
||||||
|
// import License from 'App/Models/License';
|
||||||
|
// import Project from 'App/Models/Project';
|
||||||
|
// import Title from 'App/Models/Title';
|
||||||
|
// import Description from 'App/Models/Description';
|
||||||
|
// import Language from 'App/Models/Language';
|
||||||
|
// import Coverage from 'App/Models/Coverage';
|
||||||
|
// import Collection from 'App/Models/Collection';
|
||||||
|
// import { schema, CustomMessages, rules } from '@ioc:Adonis/Core/Validator';
|
||||||
|
// import dayjs from 'dayjs';
|
||||||
|
import Person from 'App/Models/Person';
|
||||||
|
|
||||||
|
import type { ModelQueryBuilderContract } from '@ioc:Adonis/Lucid/Orm';
|
||||||
|
|
||||||
|
export default class PersonController {
|
||||||
|
public async index({ auth, request, inertia }: HttpContextContract) {
|
||||||
|
// const user = (await User.find(auth.user?.id)) as User;
|
||||||
|
const page = request.input('page', 1);
|
||||||
|
let persons: ModelQueryBuilderContract<typeof Person, Person> = Person.query();
|
||||||
|
|
||||||
|
// if (request.input('search')) {
|
||||||
|
// // users = users.whereRaw('name like %?%', [request.input('search')])
|
||||||
|
// const searchTerm = request.input('search');
|
||||||
|
// datasets.where('name', 'ilike', `%${searchTerm}%`);
|
||||||
|
// }
|
||||||
|
|
||||||
|
if (request.input('sort')) {
|
||||||
|
type SortOrder = 'asc' | 'desc' | undefined;
|
||||||
|
let attribute = request.input('sort');
|
||||||
|
let sortOrder: SortOrder = 'asc';
|
||||||
|
|
||||||
|
if (attribute.substr(0, 1) === '-') {
|
||||||
|
sortOrder = 'desc';
|
||||||
|
// attribute = substr(attribute, 1);
|
||||||
|
attribute = attribute.substr(1);
|
||||||
|
}
|
||||||
|
persons.orderBy(attribute, sortOrder);
|
||||||
|
} else {
|
||||||
|
// users.orderBy('created_at', 'desc');
|
||||||
|
persons.orderBy('id', 'asc');
|
||||||
|
}
|
||||||
|
|
||||||
|
// const results = await Database
|
||||||
|
// .query()
|
||||||
|
// .select(Database.raw("CONCAT('https://doi.org/', b.value) AS concatenated_value"))
|
||||||
|
// .from('documents as doc')
|
||||||
|
// .innerJoin('dataset_identifiers as b', 'doc.id', 'b.dataset_id')
|
||||||
|
// .groupBy('a.id').toQuery();
|
||||||
|
|
||||||
|
// const users = await User.query().orderBy('login').paginate(page, limit);
|
||||||
|
const myPersons = await persons
|
||||||
|
// .where('account_id', user.id)
|
||||||
|
// .preload('titles')
|
||||||
|
// .preload('user', (query) => query.select('id', 'login'))
|
||||||
|
.paginate(page, 10);
|
||||||
|
|
||||||
|
return inertia.render('Submitter/Person/Index', {
|
||||||
|
// testing: 'this is a test',
|
||||||
|
persons: myPersons.serialize(),
|
||||||
|
filters: request.all(),
|
||||||
|
can: {
|
||||||
|
// create: await auth.user?.can(['dataset-submit']),
|
||||||
|
edit: await auth.user?.can(['dataset-edit']),
|
||||||
|
delete: await auth.user?.can(['dataset-delete']),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,7 +6,7 @@ export default class DocumentIdentifiers extends BaseSchema {
|
||||||
|
|
||||||
public async up() {
|
public async up() {
|
||||||
this.schema.createTable(this.tableName, (table) => {
|
this.schema.createTable(this.tableName, (table) => {
|
||||||
table.increments('id').primary().defaultTo("nextval('document_identifiers_id_seq')")
|
table.increments('id').primary().defaultTo("nextval('document_identifiers_id_seq')");
|
||||||
table.integer('document_id').unsigned().notNullable();
|
table.integer('document_id').unsigned().notNullable();
|
||||||
table
|
table
|
||||||
.foreign('document_id', 'document_identifiers_document_id_foreign')
|
.foreign('document_id', 'document_identifiers_document_id_foreign')
|
||||||
|
|
183
public/logo.svg
Normal file
183
public/logo.svg
Normal file
|
@ -0,0 +1,183 @@
|
||||||
|
<!-- <svg width="60" height="59" viewBox="0 0 60 59" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path
|
||||||
|
d="M22.0604 27.0103C29.7333 23.0893 35.8474 16.6142 39.6254 8.51905C40.1123 7.47585 39.871 6.25371 39.3648 5.21976C38.1966 2.83369 37.9273 0.35731 31.5792 1.07481L29.0769 1.19405C30.0128 1.19405 29.5449 1.19405 29.0769 1.19405C26.2213 9.83921 20.8705 16.9667 13.0175 20.9078C7.54419 23.7048 3.49869 28.7902 1.59493 34.8927L1.08063 36.5412C1.02718 36.7125 0.953783 36.7439 1.03271 36.905V36.905C1.69551 38.2585 2.41237 37.8338 1.24774 36.8773C-0.0162787 35.8391 4.54649 41.9692 8.20235 42.3859C8.98846 42.4755 9.62624 41.8869 9.99718 41.188C12.8897 35.7384 16.5983 29.7497 22.0604 27.0103Z"
|
||||||
|
fill="#3798A6" />
|
||||||
|
<path
|
||||||
|
d="M54.293 18.2545C52.9177 18.0829 51.6326 19.0064 50.8501 20.1503C46.5712 26.4051 40.9276 31.4619 34.0992 34.9362C28.0309 37.9875 23.3905 43.7085 21.2488 50.5738V50.5738C20.8823 51.9051 21.321 53.3053 22.0817 54.4577C22.8541 55.6279 23.2013 56.5055 25.0387 57.2056C25.2331 57.2797 25.4363 57.33 25.6412 57.3659L29.6561 58.0696C30.1014 58.1477 30.5803 57.9029 30.6385 57.4546V57.4546C30.6522 57.3488 30.6656 57.26 30.6995 57.1589C33.5732 48.5843 39.3809 41.6511 47.1875 37.7332C52.0449 35.251 56.5674 29.4173 58.7712 23.8703C59.2774 22.5963 58.9189 21.1675 57.9822 20.1666V20.1666C57.743 19.9111 57.4687 19.6866 57.1678 19.5079C55.698 18.635 54.964 18.3382 54.293 18.2545Z"
|
||||||
|
fill="#3798A6" />
|
||||||
|
<path
|
||||||
|
d="M17.8462 46.7817C18.4399 48.0437 20.2086 47.5179 20.8231 46.2658C23.9715 39.8511 29.07 34.8495 35.2979 31.6915C41.4799 28.5111 46.6705 23.683 50.3399 17.7735C50.6236 17.3166 50.7683 16.7849 50.7594 16.2472C50.658 10.1604 49.3958 9.67645 47.3183 8.9339C45.5442 8.29976 43.3135 8.84337 42.332 10.4516C37.9465 17.6372 31.7406 23.4608 24.3513 27.2417C19.6664 29.5615 15.8593 33.5228 13.4571 38.3374C13.2609 38.7306 13.1639 39.1681 13.1742 39.6074C13.3408 46.715 16.2215 43.2109 17.84 46.768C17.8439 46.7766 17.8422 46.773 17.8462 46.7817V46.7817Z"
|
||||||
|
fill="#3798A6" />
|
||||||
|
</svg> -->
|
||||||
|
|
||||||
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
||||||
|
y="0px" viewBox="0 0 626.4 224.7" style="enable-background:new 0 0 626.4 224.7;" xml:space="preserve">
|
||||||
|
<style type="text/css">
|
||||||
|
.st0 {
|
||||||
|
fill: #336699;
|
||||||
|
}
|
||||||
|
|
||||||
|
.st1 {
|
||||||
|
fill: #00FFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.st2 {
|
||||||
|
fill: #30D5C8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.st3 {
|
||||||
|
opacity: 0.8;
|
||||||
|
fill: #336699;
|
||||||
|
}
|
||||||
|
|
||||||
|
.st4 {
|
||||||
|
opacity: 0.5;
|
||||||
|
fill: #336699;
|
||||||
|
}
|
||||||
|
|
||||||
|
.st5 {
|
||||||
|
fill: #393939;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<path class="st0"
|
||||||
|
d="M215.3,69.1l-4.4,19.2h-47.1l-4.2,18h43.7l-4.5,19.2h-43.6l-5.9,25.4h47L192,170h-73.1l23.3-100.9H215.3z" />
|
||||||
|
<path class="st0" d="M311.6,88.6h-31.4L261.4,170h-26.1L254,88.6h-31.5l4.5-19.5h89L311.6,88.6z" />
|
||||||
|
<path class="st0" d="M422.1,69.1L398.9,170h-26.1l10.3-44.6h-38.3L334.4,170h-26.1l23.3-100.9h26.1l-8.6,37.1h38.3l8.6-37.1H422.1
|
||||||
|
z" />
|
||||||
|
<path class="st0"
|
||||||
|
d="M536.7,69.1l-51.4,61.9l-9.1,39h-26.2l8.8-37.8l-23.2-63.1h27.9l13,39.6l30.2-39.6H536.7z" />
|
||||||
|
<path class="st0" d="M563.8,171.8c-8.6,0-16.3-0.7-23.1-2.2c-6.8-1.5-12.6-3.3-17.5-5.6l5.2-24.2h2.8c4.7,4.2,10.1,7.5,16.4,9.9
|
||||||
|
c6.3,2.3,13,3.5,20.3,3.5c7.4,0,12.9-1,16.3-3c3.5-2,5.2-4.9,5.2-8.6c0-1.4-0.3-2.6-0.8-3.6c-0.6-1-1.7-2-3.3-3
|
||||||
|
c-1.6-1-3.9-2-6.7-2.9c-2.8-1-6.5-2.1-10.9-3.4c-4.9-1.4-9.3-2.8-13.2-4.4c-3.9-1.6-7.2-3.5-10-5.6c-2.8-2.2-4.8-4.8-6.3-7.7
|
||||||
|
c-1.4-2.9-2.1-6.3-2.1-10.4c0-10.1,4.5-18.2,13.4-24.2c8.9-6,21.1-9,36.6-9c7.5,0,14.5,0.6,21.1,1.8c6.6,1.2,12.2,2.9,16.8,4.9
|
||||||
|
l-4.9,23.2h-2.8c-3.5-3.2-8.2-5.9-13.9-8.1c-5.8-2.2-12.1-3.3-18.9-3.3c-6.7,0-11.9,1-15.5,2.9c-3.7,1.9-5.5,4.6-5.5,8
|
||||||
|
c0,1.6,0.3,2.9,0.8,3.9c0.5,1,1.6,2.1,3.3,3c1.4,0.9,3.7,1.9,6.8,2.9c3.1,1.1,6.8,2.2,11,3.3c11.3,3,19.4,6.6,24.2,10.6
|
||||||
|
s7.2,9.6,7.2,16.5c0,5.8-1.3,11-3.9,15.4c-2.6,4.4-6.2,8-10.8,10.8c-4.8,2.9-10.3,5.1-16.5,6.4
|
||||||
|
C578.5,171.1,571.6,171.8,563.8,171.8z" />
|
||||||
|
</g>
|
||||||
|
<path class="st1" d="M539.2,37.1" />
|
||||||
|
<path class="st1" d="M539.2,37.1" />
|
||||||
|
<polygon class="st2" points="24,213.8 57.7,213.8 98.2,44.6 12.5,45.1 3.7,81 56.7,80.6 " />
|
||||||
|
<polygon class="st0" points="72.1,170.5 112.4,2.8 199.8,2.8 192.4,39.2 137.1,39.2 105.8,170.1 " />
|
||||||
|
<polygon class="st0" points="207,2.6 225.9,2.6 218.6,39 199.9,39 " />
|
||||||
|
<polygon class="st3" points="233.2,2.9 252.1,2.9 244.7,39.4 226.1,39.4 " />
|
||||||
|
<polygon class="st4" points="259.2,2.9 278.1,2.9 270.8,39.4 252.1,39.4 " />
|
||||||
|
<g>
|
||||||
|
<path class="st5" d="M97.4,213.7h-4.7l-8-12.1h-5.8l-2.8,12.1H72l7-30.2h8.3c1.9,0,3.4,0.1,4.5,0.4c1.2,0.2,2.2,0.7,3,1.3
|
||||||
|
c0.8,0.6,1.4,1.2,1.8,2c0.4,0.8,0.7,1.8,0.7,2.9c0,2.5-0.8,4.7-2.4,6.6c-1.6,1.9-3.7,3.2-6.2,4L97.4,213.7z M92.9,191
|
||||||
|
c0-0.7-0.1-1.3-0.3-1.8c-0.2-0.5-0.6-0.9-1-1.3c-0.5-0.4-1.2-0.7-1.9-0.9c-0.7-0.2-1.7-0.2-2.8-0.2h-4.6l-2.7,11.6h4.3
|
||||||
|
c1.3,0,2.5-0.1,3.5-0.4c1-0.2,1.9-0.7,2.7-1.3c0.9-0.7,1.6-1.5,2.1-2.5C92.6,193.2,92.9,192.1,92.9,191z" />
|
||||||
|
<path class="st5" d="M111.5,214.2c-3.2,0-5.6-0.7-7.4-2.2c-1.8-1.5-2.7-3.6-2.7-6.5c0-4.2,1.3-7.7,4-10.7c2.6-3,5.9-4.5,9.8-4.5
|
||||||
|
c2.6,0,4.6,0.6,5.9,1.9c1.4,1.3,2.1,3.1,2.1,5.4c0,0.4-0.1,1-0.2,1.9c-0.1,0.9-0.3,1.9-0.6,3.1h-16.8c-0.1,0.4-0.1,0.8-0.2,1.2
|
||||||
|
c0,0.4-0.1,0.7-0.1,1.1c0,1.9,0.6,3.4,1.8,4.5c1.2,1.1,2.8,1.6,5,1.6c1.5,0,3-0.3,4.6-0.9s2.9-1.2,4-2h0.2l-0.8,4.1
|
||||||
|
c-0.7,0.2-1.3,0.5-1.8,0.7c-0.5,0.2-1.2,0.4-2.1,0.6c-0.8,0.2-1.6,0.4-2.2,0.5C113.3,214.2,112.5,214.2,111.5,214.2z M119.2,199.9
|
||||||
|
c0.1-0.4,0.1-0.7,0.1-1c0-0.3,0-0.6,0-0.9c0-1.4-0.4-2.6-1.2-3.4c-0.8-0.8-2.1-1.2-3.8-1.2c-1.9,0-3.6,0.6-5.1,1.8
|
||||||
|
c-1.5,1.2-2.5,2.8-3,4.7H119.2z" />
|
||||||
|
<path class="st5" d="M132.8,214.3c-1.7,0-3.2-0.2-4.6-0.6s-2.5-0.9-3.4-1.4l0.9-4.1h0.2c0.3,0.2,0.7,0.5,1.1,0.9
|
||||||
|
c0.5,0.3,1,0.7,1.7,1c0.6,0.3,1.4,0.6,2.2,0.8c0.8,0.2,1.7,0.3,2.6,0.3c1.9,0,3.4-0.4,4.5-1.1c1.1-0.7,1.6-1.7,1.6-3.1
|
||||||
|
c0-0.7-0.3-1.3-0.8-1.7c-0.6-0.4-1.4-0.7-2.4-0.9c-0.5-0.1-1.2-0.3-1.9-0.4c-0.7-0.1-1.5-0.3-2.3-0.5c-1.6-0.4-2.8-1.1-3.5-1.9
|
||||||
|
c-0.8-0.8-1.1-1.9-1.1-3.1c0-1.1,0.2-2,0.7-3c0.5-0.9,1.1-1.8,2.1-2.5c0.9-0.7,2-1.3,3.3-1.8c1.3-0.5,2.8-0.7,4.5-0.7
|
||||||
|
c1.4,0,2.7,0.2,4.1,0.5c1.4,0.3,2.5,0.8,3.3,1.3l-0.8,3.9h-0.2c-0.2-0.2-0.5-0.4-1-0.7c-0.4-0.3-1-0.6-1.7-0.9
|
||||||
|
c-0.6-0.3-1.3-0.5-2.1-0.7c-0.8-0.2-1.6-0.3-2.4-0.3c-1.7,0-3.1,0.4-4.1,1.1s-1.6,1.7-1.6,2.9c0,0.7,0.3,1.2,0.8,1.7
|
||||||
|
c0.5,0.5,1.3,0.8,2.4,1.1c0.7,0.2,1.4,0.3,2.1,0.5c0.7,0.1,1.4,0.3,2.1,0.5c1.6,0.4,2.8,1,3.6,1.8s1.2,1.9,1.2,3.1
|
||||||
|
c0,1-0.2,2.1-0.7,3.1c-0.5,1-1.2,1.9-2.2,2.6c-1,0.8-2.1,1.4-3.5,1.8C136,214,134.5,214.3,132.8,214.3z" />
|
||||||
|
<path class="st5" d="M158.2,214.2c-3.2,0-5.6-0.7-7.4-2.2c-1.8-1.5-2.7-3.6-2.7-6.5c0-4.2,1.3-7.7,4-10.7c2.6-3,5.9-4.5,9.8-4.5
|
||||||
|
c2.6,0,4.6,0.6,5.9,1.9c1.4,1.3,2.1,3.1,2.1,5.4c0,0.4-0.1,1-0.2,1.9c-0.1,0.9-0.3,1.9-0.6,3.1h-16.8c-0.1,0.4-0.1,0.8-0.2,1.2
|
||||||
|
c0,0.4-0.1,0.7-0.1,1.1c0,1.9,0.6,3.4,1.8,4.5c1.2,1.1,2.8,1.6,5,1.6c1.5,0,3-0.3,4.6-0.9c1.6-0.6,2.9-1.2,4-2h0.2l-0.8,4.1
|
||||||
|
c-0.7,0.2-1.3,0.5-1.8,0.7c-0.5,0.2-1.2,0.4-2.1,0.6c-0.8,0.2-1.6,0.4-2.2,0.5C160,214.2,159.2,214.2,158.2,214.2z M165.9,199.9
|
||||||
|
c0.1-0.4,0.1-0.7,0.1-1c0-0.3,0-0.6,0-0.9c0-1.4-0.4-2.6-1.2-3.4c-0.8-0.8-2.1-1.2-3.8-1.2c-1.9,0-3.6,0.6-5.1,1.8
|
||||||
|
c-1.5,1.2-2.5,2.8-3,4.7H165.9z" />
|
||||||
|
<path class="st5"
|
||||||
|
d="M186.8,211.3c-0.4,0.2-0.9,0.5-1.5,0.9c-0.6,0.4-1.3,0.7-1.9,1c-0.7,0.3-1.5,0.6-2.3,0.8
|
||||||
|
c-0.9,0.2-1.8,0.3-3,0.3c-1.8,0-3.3-0.5-4.4-1.6c-1.1-1-1.7-2.4-1.7-4.1c0-1.8,0.4-3.3,1.2-4.6c0.8-1.2,2-2.2,3.5-3
|
||||||
|
c1.5-0.8,3.4-1.3,5.6-1.7c2.2-0.3,4.6-0.6,7.4-0.6c0.1-0.4,0.2-0.7,0.2-1c0.1-0.3,0.1-0.6,0.1-0.9c0-0.6-0.1-1.2-0.4-1.6
|
||||||
|
c-0.3-0.4-0.6-0.7-1.1-1c-0.5-0.2-1-0.4-1.7-0.5c-0.6-0.1-1.3-0.1-2.1-0.1c-1.2,0-2.5,0.2-4,0.6c-1.5,0.4-2.7,0.7-3.6,1.1H177
|
||||||
|
l0.8-3.8c0.8-0.2,1.9-0.4,3.4-0.7c1.5-0.3,2.9-0.4,4.3-0.4c2.8,0,5,0.4,6.4,1.3c1.4,0.9,2.1,2.3,2.1,4.2c0,0.4,0,0.8-0.1,1.2
|
||||||
|
s-0.1,0.8-0.2,1.2l-3.6,15.4h-3.8L186.8,211.3z M189.1,201.8c-2.1,0.1-4,0.2-5.6,0.5c-1.6,0.2-3,0.6-4,1c-1.1,0.4-1.9,1.1-2.5,1.8
|
||||||
|
c-0.6,0.8-0.9,1.7-0.9,2.9c0,1,0.3,1.7,1,2.2c0.7,0.5,1.7,0.8,3.1,0.8c1.2,0,2.5-0.3,3.8-0.8c1.3-0.5,2.5-1.2,3.6-2L189.1,201.8z" />
|
||||||
|
<path class="st5" d="M215.9,195.1h-0.2c-0.5-0.1-1-0.2-1.5-0.3c-0.5-0.1-1-0.1-1.7-0.1c-1.3,0-2.5,0.3-3.8,0.9
|
||||||
|
c-1.3,0.6-2.5,1.3-3.6,2.1l-3.7,16.1h-3.9l5.2-22.7h3.9l-0.8,3.3c1.8-1.3,3.3-2.1,4.6-2.6c1.3-0.5,2.5-0.7,3.6-0.7
|
||||||
|
c0.7,0,1.2,0,1.4,0.1c0.3,0,0.7,0.1,1.3,0.2L215.9,195.1z" />
|
||||||
|
<path class="st5" d="M225.2,214.2c-1.4,0-2.7-0.2-3.8-0.5c-1.1-0.3-2.1-0.9-2.9-1.6c-0.8-0.7-1.4-1.6-1.9-2.7
|
||||||
|
c-0.4-1.1-0.7-2.3-0.7-3.7c0-2.1,0.3-4.1,1-5.9c0.7-1.8,1.6-3.5,2.8-4.9c1.2-1.4,2.6-2.4,4.4-3.2c1.7-0.8,3.6-1.2,5.6-1.2
|
||||||
|
c1.3,0,2.6,0.2,3.8,0.5c1.2,0.4,2.2,0.8,3.1,1.3l-0.8,4.1h-0.2c-0.3-0.2-0.6-0.5-1-0.8c-0.4-0.3-0.9-0.6-1.4-0.9
|
||||||
|
c-0.6-0.3-1.2-0.5-1.9-0.7c-0.7-0.2-1.5-0.3-2.3-0.3c-2.6,0-4.8,1.1-6.5,3.3c-1.7,2.2-2.5,4.9-2.5,8.1c0,1.9,0.5,3.4,1.5,4.4
|
||||||
|
c1,1,2.4,1.5,4.2,1.5c0.9,0,1.7-0.1,2.6-0.4c0.9-0.2,1.6-0.5,2.2-0.8c0.7-0.3,1.3-0.6,1.9-1c0.6-0.3,1-0.6,1.2-0.8h0.2l-0.8,4.2
|
||||||
|
c-1.2,0.5-2.4,1-3.8,1.4C227.9,214,226.5,214.2,225.2,214.2z" />
|
||||||
|
<path class="st5" d="M259.9,196.2c0,0.3,0,0.8-0.1,1.3c-0.1,0.6-0.1,1-0.3,1.5l-3.4,14.7h-3.8l3-12.9c0.2-0.7,0.3-1.3,0.4-1.9
|
||||||
|
c0.1-0.5,0.1-1.1,0.1-1.6c0-1.1-0.3-2-0.9-2.6c-0.6-0.6-1.6-0.9-3.1-0.9c-1,0-2.2,0.3-3.4,0.9c-1.2,0.6-2.5,1.2-3.7,2l-3.9,16.9
|
||||||
|
h-3.8l7.3-31.6h3.8l-2.7,11.4c1.5-1,2.8-1.8,4.1-2.3c1.3-0.5,2.6-0.8,3.9-0.8c2,0,3.5,0.5,4.6,1.5
|
||||||
|
C259.4,192.9,259.9,194.3,259.9,196.2z" />
|
||||||
|
<path class="st5" d="M308.1,195.1c0,3.3-0.8,6.4-2.5,9.4c-1.7,3-4,5.2-6.9,6.8c-1.8,1-3.6,1.6-5.5,1.9c-1.9,0.3-4,0.5-6.4,0.5
|
||||||
|
h-8.2l7-30.2h7.1c2.2,0,4.2,0.2,6,0.5c1.8,0.3,3.5,1,5,2c1.4,1,2.5,2.2,3.3,3.8C307.7,191.2,308.1,193,308.1,195.1z M303.8,195.4
|
||||||
|
c0-1.5-0.3-2.9-0.8-4c-0.6-1.1-1.4-2-2.5-2.8c-1.1-0.7-2.3-1.2-3.5-1.5c-1.3-0.2-2.8-0.4-4.8-0.4h-3.4l-5.5,23.6h4.2
|
||||||
|
c1.9,0,3.7-0.2,5.2-0.5c1.5-0.3,3-0.9,4.3-1.6c2.2-1.2,3.9-3,5-5.4C303.3,200.6,303.8,198.1,303.8,195.4z" />
|
||||||
|
<path class="st5"
|
||||||
|
d="M324.7,211.3c-0.4,0.2-0.9,0.5-1.5,0.9c-0.6,0.4-1.3,0.7-1.9,1c-0.7,0.3-1.5,0.6-2.3,0.8
|
||||||
|
c-0.9,0.2-1.8,0.3-3,0.3c-1.8,0-3.3-0.5-4.4-1.6c-1.1-1-1.7-2.4-1.7-4.1c0-1.8,0.4-3.3,1.2-4.6c0.8-1.2,2-2.2,3.5-3
|
||||||
|
c1.5-0.8,3.4-1.3,5.6-1.7c2.2-0.3,4.6-0.6,7.4-0.6c0.1-0.4,0.2-0.7,0.2-1c0.1-0.3,0.1-0.6,0.1-0.9c0-0.6-0.1-1.2-0.4-1.6
|
||||||
|
c-0.3-0.4-0.6-0.7-1.1-1c-0.5-0.2-1-0.4-1.7-0.5c-0.6-0.1-1.3-0.1-2.1-0.1c-1.2,0-2.5,0.2-4,0.6c-1.5,0.4-2.7,0.7-3.6,1.1h-0.2
|
||||||
|
l0.8-3.8c0.8-0.2,1.9-0.4,3.4-0.7c1.5-0.3,2.9-0.4,4.3-0.4c2.8,0,5,0.4,6.4,1.3c1.4,0.9,2.1,2.3,2.1,4.2c0,0.4,0,0.8-0.1,1.2
|
||||||
|
s-0.1,0.8-0.2,1.2l-3.6,15.4h-3.8L324.7,211.3z M327,201.8c-2.1,0.1-4,0.2-5.6,0.5c-1.6,0.2-3,0.6-4,1c-1.1,0.4-1.9,1.1-2.5,1.8
|
||||||
|
c-0.6,0.8-0.9,1.7-0.9,2.9c0,1,0.3,1.7,1,2.2c0.7,0.5,1.7,0.8,3.1,0.8c1.2,0,2.5-0.3,3.8-0.8c1.3-0.5,2.5-1.2,3.6-2L327,201.8z" />
|
||||||
|
<path class="st5" d="M352.5,191l-0.7,3.1h-7.9l-2.4,10.5c-0.1,0.5-0.3,1.1-0.4,1.8c-0.1,0.7-0.2,1.2-0.2,1.6c0,1,0.3,1.7,0.8,2.2
|
||||||
|
c0.5,0.5,1.4,0.7,2.8,0.7c0.6,0,1.2-0.1,2-0.3c0.8-0.2,1.3-0.3,1.6-0.4h0.2l-0.7,3.3c-0.8,0.2-1.6,0.3-2.4,0.5
|
||||||
|
c-0.9,0.1-1.6,0.2-2.3,0.2c-1.9,0-3.3-0.4-4.4-1.2c-1-0.8-1.5-2.1-1.5-3.9c0-0.4,0-0.9,0.1-1.3c0.1-0.4,0.1-0.9,0.3-1.5l2.8-12.2
|
||||||
|
h-2.6l0.7-3.1h2.6l1.5-6.5h3.9l-1.5,6.5H352.5z" />
|
||||||
|
<path class="st5"
|
||||||
|
d="M366.3,211.3c-0.4,0.2-0.9,0.5-1.5,0.9c-0.6,0.4-1.3,0.7-1.9,1c-0.7,0.3-1.5,0.6-2.3,0.8
|
||||||
|
c-0.9,0.2-1.8,0.3-3,0.3c-1.8,0-3.3-0.5-4.4-1.6c-1.1-1-1.7-2.4-1.7-4.1c0-1.8,0.4-3.3,1.2-4.6c0.8-1.2,2-2.2,3.5-3
|
||||||
|
c1.5-0.8,3.4-1.3,5.6-1.7c2.2-0.3,4.6-0.6,7.4-0.6c0.1-0.4,0.2-0.7,0.2-1c0.1-0.3,0.1-0.6,0.1-0.9c0-0.6-0.1-1.2-0.4-1.6
|
||||||
|
c-0.3-0.4-0.6-0.7-1.1-1c-0.5-0.2-1-0.4-1.7-0.5c-0.6-0.1-1.3-0.1-2.1-0.1c-1.2,0-2.5,0.2-4,0.6c-1.5,0.4-2.7,0.7-3.6,1.1h-0.2
|
||||||
|
l0.8-3.8c0.8-0.2,1.9-0.4,3.4-0.7c1.5-0.3,2.9-0.4,4.3-0.4c2.8,0,5,0.4,6.4,1.3c1.4,0.9,2.1,2.3,2.1,4.2c0,0.4,0,0.8-0.1,1.2
|
||||||
|
s-0.1,0.8-0.2,1.2l-3.6,15.4h-3.8L366.3,211.3z M368.5,201.8c-2.1,0.1-4,0.2-5.6,0.5c-1.6,0.2-3,0.6-4,1c-1.1,0.4-1.9,1.1-2.5,1.8
|
||||||
|
c-0.6,0.8-0.9,1.7-0.9,2.9c0,1,0.3,1.7,1,2.2c0.7,0.5,1.7,0.8,3.1,0.8c1.2,0,2.5-0.3,3.8-0.8c1.3-0.5,2.5-1.2,3.6-2L368.5,201.8z" />
|
||||||
|
<path class="st5" d="M417.4,213.7h-4.7l-8-12.1h-5.8l-2.8,12.1H392l7-30.2h8.3c1.9,0,3.4,0.1,4.5,0.4c1.2,0.2,2.2,0.7,3,1.3
|
||||||
|
c0.8,0.6,1.4,1.2,1.8,2c0.4,0.8,0.7,1.8,0.7,2.9c0,2.5-0.8,4.7-2.4,6.6c-1.6,1.9-3.7,3.2-6.2,4L417.4,213.7z M412.8,191
|
||||||
|
c0-0.7-0.1-1.3-0.3-1.8c-0.2-0.5-0.6-0.9-1-1.3c-0.5-0.4-1.2-0.7-1.9-0.9c-0.7-0.2-1.7-0.2-2.8-0.2h-4.6l-2.7,11.6h4.3
|
||||||
|
c1.3,0,2.5-0.1,3.5-0.4c1-0.2,1.9-0.7,2.7-1.3c0.9-0.7,1.6-1.5,2.1-2.5C412.6,193.2,412.8,192.1,412.8,191z" />
|
||||||
|
<path class="st5" d="M431.5,214.2c-3.2,0-5.6-0.7-7.4-2.2c-1.8-1.5-2.7-3.6-2.7-6.5c0-4.2,1.3-7.7,4-10.7s5.9-4.5,9.8-4.5
|
||||||
|
c2.6,0,4.6,0.6,5.9,1.9c1.4,1.3,2.1,3.1,2.1,5.4c0,0.4-0.1,1-0.2,1.9c-0.1,0.9-0.3,1.9-0.6,3.1h-16.8c-0.1,0.4-0.1,0.8-0.2,1.2
|
||||||
|
c0,0.4-0.1,0.7-0.1,1.1c0,1.9,0.6,3.4,1.8,4.5c1.2,1.1,2.8,1.6,5,1.6c1.5,0,3-0.3,4.6-0.9c1.6-0.6,2.9-1.2,4-2h0.2l-0.8,4.1
|
||||||
|
c-0.7,0.2-1.3,0.5-1.8,0.7s-1.2,0.4-2.1,0.6c-0.8,0.2-1.6,0.4-2.2,0.5C433.3,214.2,432.5,214.2,431.5,214.2z M439.2,199.9
|
||||||
|
c0.1-0.4,0.1-0.7,0.1-1c0-0.3,0-0.6,0-0.9c0-1.4-0.4-2.6-1.2-3.4c-0.8-0.8-2.1-1.2-3.8-1.2c-1.9,0-3.6,0.6-5.1,1.8
|
||||||
|
c-1.5,1.2-2.5,2.8-3,4.7H439.2z" />
|
||||||
|
<path class="st5" d="M468.8,198.2c0,2.2-0.4,4.4-1.1,6.3c-0.7,2-1.6,3.7-2.8,5c-1.2,1.4-2.5,2.5-4.1,3.4c-1.6,0.8-3.2,1.2-5,1.2
|
||||||
|
c-1.2,0-2.4-0.1-3.4-0.4s-2-0.7-2.8-1.2l-2.2,9.5h-3.8l7.2-31h3.8l-0.6,2.4c1.3-0.9,2.5-1.6,3.7-2.2c1.2-0.6,2.6-0.8,4.1-0.8
|
||||||
|
c2.2,0,3.9,0.7,5.1,2.1C468.2,193.8,468.8,195.7,468.8,198.2z M464.8,198.9c0-1.6-0.4-2.9-1.1-3.7c-0.7-0.9-1.8-1.3-3.4-1.3
|
||||||
|
c-1.1,0-2.3,0.3-3.5,0.8c-1.2,0.6-2.3,1.2-3.4,1.9l-3,12.9c0.9,0.5,1.7,0.8,2.5,1.1c0.8,0.2,1.8,0.3,2.9,0.3c1.4,0,2.7-0.3,3.8-1
|
||||||
|
s2.1-1.6,2.8-2.6c0.8-1.1,1.4-2.4,1.7-3.8C464.6,202,464.8,200.5,464.8,198.9z" />
|
||||||
|
<path class="st5" d="M494.1,199.1c0,2-0.3,4-0.9,5.8c-0.6,1.9-1.5,3.5-2.7,4.9c-1.2,1.4-2.6,2.6-4.1,3.4c-1.6,0.8-3.4,1.2-5.4,1.2
|
||||||
|
c-2.7,0-4.8-0.8-6.3-2.3c-1.5-1.5-2.3-3.7-2.3-6.4c0-2,0.3-4,0.9-5.8c0.6-1.8,1.5-3.5,2.7-4.9c1.1-1.4,2.5-2.5,4.2-3.3
|
||||||
|
c1.6-0.8,3.4-1.2,5.4-1.2c2.6,0,4.7,0.7,6.3,2.2S494.1,196.3,494.1,199.1z M487.8,207.6c0.7-1.1,1.3-2.3,1.7-3.8s0.6-2.9,0.6-4.5
|
||||||
|
c0-1.9-0.5-3.3-1.4-4.3c-0.9-1-2.2-1.5-3.9-1.5c-1.3,0-2.5,0.3-3.6,0.9c-1,0.6-2,1.5-2.7,2.6c-0.7,1.1-1.3,2.3-1.7,3.8
|
||||||
|
c-0.4,1.4-0.6,2.9-0.6,4.5c0,1.9,0.5,3.3,1.4,4.3c0.9,1,2.2,1.5,3.9,1.5c1.3,0,2.5-0.3,3.6-0.9
|
||||||
|
C486.2,209.6,487.1,208.7,487.8,207.6z" />
|
||||||
|
<path class="st5" d="M504.2,214.3c-1.7,0-3.2-0.2-4.6-0.6c-1.3-0.4-2.5-0.9-3.4-1.4l0.9-4.1h0.2c0.3,0.2,0.7,0.5,1.1,0.9
|
||||||
|
c0.5,0.3,1,0.7,1.7,1c0.6,0.3,1.4,0.6,2.2,0.8c0.8,0.2,1.7,0.3,2.6,0.3c1.9,0,3.4-0.4,4.5-1.1s1.6-1.7,1.6-3.1
|
||||||
|
c0-0.7-0.3-1.3-0.8-1.7c-0.6-0.4-1.4-0.7-2.4-0.9c-0.5-0.1-1.2-0.3-1.9-0.4c-0.7-0.1-1.5-0.3-2.3-0.5c-1.6-0.4-2.8-1.1-3.5-1.9
|
||||||
|
c-0.8-0.8-1.1-1.9-1.1-3.1c0-1.1,0.2-2,0.7-3c0.5-0.9,1.1-1.8,2.1-2.5c0.9-0.7,2-1.3,3.3-1.8c1.3-0.5,2.8-0.7,4.5-0.7
|
||||||
|
c1.4,0,2.7,0.2,4.1,0.5c1.4,0.3,2.5,0.8,3.3,1.3l-0.8,3.9H516c-0.2-0.2-0.5-0.4-1-0.7c-0.4-0.3-1-0.6-1.7-0.9
|
||||||
|
c-0.6-0.3-1.3-0.5-2.1-0.7c-0.8-0.2-1.6-0.3-2.4-0.3c-1.7,0-3.1,0.4-4.1,1.1c-1.1,0.7-1.6,1.7-1.6,2.9c0,0.7,0.3,1.2,0.8,1.7
|
||||||
|
c0.5,0.5,1.3,0.8,2.4,1.1c0.7,0.2,1.4,0.3,2.1,0.5c0.7,0.1,1.4,0.3,2.1,0.5c1.6,0.4,2.8,1,3.6,1.8s1.2,1.9,1.2,3.1
|
||||||
|
c0,1-0.2,2.1-0.7,3.1c-0.5,1-1.2,1.9-2.2,2.6c-1,0.8-2.1,1.4-3.5,1.8C507.4,214,505.9,214.3,504.2,214.3z" />
|
||||||
|
<path class="st5" d="M528,191l-5.3,22.7h-3.8l5.3-22.7H528z M530.1,183.3l-0.9,4h-4.3l0.9-4H530.1z" />
|
||||||
|
<path class="st5" d="M547.4,191l-0.7,3.1h-7.9l-2.4,10.5c-0.1,0.5-0.3,1.1-0.4,1.8c-0.1,0.7-0.2,1.2-0.2,1.6c0,1,0.3,1.7,0.8,2.2
|
||||||
|
c0.5,0.5,1.4,0.7,2.8,0.7c0.6,0,1.2-0.1,2-0.3c0.8-0.2,1.3-0.3,1.6-0.4h0.2l-0.7,3.3c-0.8,0.2-1.6,0.3-2.4,0.5
|
||||||
|
c-0.9,0.1-1.6,0.2-2.3,0.2c-1.9,0-3.3-0.4-4.4-1.2c-1-0.8-1.5-2.1-1.5-3.9c0-0.4,0-0.9,0.1-1.3c0.1-0.4,0.1-0.9,0.3-1.5l2.8-12.2
|
||||||
|
h-2.6l0.7-3.1h2.6l1.5-6.5h3.9l-1.5,6.5H547.4z" />
|
||||||
|
<path class="st5" d="M569.2,199.1c0,2-0.3,4-0.9,5.8c-0.6,1.9-1.5,3.5-2.7,4.9c-1.2,1.4-2.6,2.6-4.1,3.4c-1.5,0.8-3.4,1.2-5.4,1.2
|
||||||
|
c-2.7,0-4.8-0.8-6.3-2.3c-1.5-1.5-2.3-3.7-2.3-6.4c0-2,0.3-4,0.9-5.8c0.6-1.8,1.5-3.5,2.7-4.9c1.1-1.4,2.5-2.5,4.2-3.3
|
||||||
|
c1.6-0.8,3.4-1.2,5.4-1.2c2.6,0,4.7,0.7,6.3,2.2C568.4,194.1,569.2,196.3,569.2,199.1z M563,207.6c0.7-1.1,1.3-2.3,1.7-3.8
|
||||||
|
c0.4-1.4,0.6-2.9,0.6-4.5c0-1.9-0.5-3.3-1.4-4.3c-0.9-1-2.2-1.5-3.9-1.5c-1.3,0-2.5,0.3-3.6,0.9c-1,0.6-2,1.5-2.7,2.6
|
||||||
|
c-0.7,1.1-1.3,2.3-1.7,3.8c-0.4,1.4-0.6,2.9-0.6,4.5c0,1.9,0.5,3.3,1.4,4.3c0.9,1,2.2,1.5,3.9,1.5c1.3,0,2.5-0.3,3.6-0.9
|
||||||
|
C561.3,209.6,562.2,208.7,563,207.6z" />
|
||||||
|
<path class="st5" d="M590.6,195.1h-0.2c-0.5-0.1-1.1-0.2-1.5-0.3c-0.5-0.1-1-0.1-1.7-0.1c-1.3,0-2.5,0.3-3.8,0.9
|
||||||
|
c-1.3,0.6-2.5,1.3-3.6,2.1l-3.7,16.1h-3.9l5.2-22.7h3.9l-0.8,3.3c1.8-1.3,3.3-2.1,4.6-2.6c1.3-0.5,2.5-0.7,3.6-0.7
|
||||||
|
c0.7,0,1.2,0,1.4,0.1c0.3,0,0.7,0.1,1.3,0.2L590.6,195.1z" />
|
||||||
|
<path class="st5" d="M594.1,222.1h-4.2l6.6-9.7l-4.1-21.3h4l3.2,16.9l10.9-16.9h4.2L594.1,222.1z" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
|
@ -16,7 +16,7 @@ table {
|
||||||
}
|
}
|
||||||
|
|
||||||
td:not(:first-child) {
|
td:not(:first-child) {
|
||||||
@apply lg:border-l lg:border-t-0 lg:border-r-0 lg:border-b-0 lg:border-gray-100 lg:dark:border-slate-700;
|
@apply lg:border-0 lg:border-t-0 lg:border-r-0 lg:border-b-0 lg:border-gray-100 lg:dark:border-slate-700;
|
||||||
}
|
}
|
||||||
|
|
||||||
th {
|
th {
|
||||||
|
|
|
@ -1,39 +1,36 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue';
|
||||||
import { StyleService } from '@/Stores/style'
|
import { StyleService } from '@/Stores/style';
|
||||||
import { gradientBgPurplePink, gradientBgDark, gradientBgPinkRed, gradientBgGreenBlue } from '@/colors'
|
import { gradientBgPurplePink, gradientBgDark, gradientBgPinkRed, gradientBgGreenBlue } from '@/colors';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
bg: {
|
bg: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true,
|
required: true,
|
||||||
validator: value => ['purplePink', 'pinkRed', 'greenBlue'].includes(value)
|
validator: (value) => ['purplePink', 'pinkRed', 'greenBlue'].includes(value),
|
||||||
}
|
},
|
||||||
})
|
});
|
||||||
|
|
||||||
const colorClass = computed(() => {
|
const colorClass = computed(() => {
|
||||||
if (StyleService().darkMode) {
|
if (StyleService().darkMode) {
|
||||||
return gradientBgDark
|
return gradientBgDark;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (props.bg) {
|
switch (props.bg) {
|
||||||
case 'purplePink':
|
case 'purplePink':
|
||||||
return gradientBgPurplePink
|
return gradientBgPurplePink;
|
||||||
case 'pinkRed':
|
case 'pinkRed':
|
||||||
return gradientBgPinkRed
|
return gradientBgPinkRed;
|
||||||
case 'greenBlue':
|
case 'greenBlue':
|
||||||
return gradientBgGreenBlue
|
return gradientBgGreenBlue;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ''
|
return 'bg-white';
|
||||||
})
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div
|
<div class="mx-auto md:h-screen flex flex-col justify-center items-center px-6 pt-8 pt:mt-0" :class="colorClass">
|
||||||
class="flex min-h-screen items-center justify-center"
|
<slot card-class="w-11/12 md:w-7/12 lg:w-6/12 xl:w-4/12 shadow-2xl" />
|
||||||
:class="colorClass"
|
</div>
|
||||||
>
|
|
||||||
<slot card-class="w-11/12 md:w-7/12 lg:w-6/12 xl:w-4/12 shadow-2xl" />
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -32,9 +32,15 @@ import FormControl from '@/Components/FormControl.vue';
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<LayoutGuest>
|
<LayoutGuest>
|
||||||
|
|
||||||
<Head title="Login" />
|
<Head title="Login" />
|
||||||
|
|
||||||
<SectionFullScreen v-slot="{ cardClass }" :bg="'greenBlue'">
|
<SectionFullScreen v-slot="{ cardClass }">
|
||||||
|
<a class="text-2xl font-semibold flex justify-center items-center mb-8 lg:mb-10">
|
||||||
|
<img src="/logo.svg" class="h-10 mr-4" alt="Windster Logo">
|
||||||
|
<!-- <span class="self-center text-2xl font-bold whitespace-nowrap">Tethys</span> -->
|
||||||
|
</a>
|
||||||
|
<!-- Card -->
|
||||||
<CardBox :class="cardClass" form @submit.prevent="submit">
|
<CardBox :class="cardClass" form @submit.prevent="submit">
|
||||||
<FormValidationErrors v-bind:errors="errors" />
|
<FormValidationErrors v-bind:errors="errors" />
|
||||||
|
|
||||||
|
@ -43,18 +49,13 @@ import FormControl from '@/Components/FormControl.vue';
|
||||||
</NotificationBarInCard>
|
</NotificationBarInCard>
|
||||||
|
|
||||||
<FormField label="Email" label-for="email" help="Please enter your email">
|
<FormField label="Email" label-for="email" help="Please enter your email">
|
||||||
<FormControl v-model="form.email" :icon="mdiAccount" id="email" autocomplete="email" type="email" required />
|
<FormControl v-model="form.email" :icon="mdiAccount" id="email" autocomplete="email" type="email"
|
||||||
|
required />
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
||||||
<FormField label="Password" label-for="password" help="Please enter your password">
|
<FormField label="Password" label-for="password" help="Please enter your password">
|
||||||
<FormControl
|
<FormControl v-model="form.password" :icon="mdiAsterisk" type="password" id="password"
|
||||||
v-model="form.password"
|
autocomplete="current-password" required />
|
||||||
:icon="mdiAsterisk"
|
|
||||||
type="password"
|
|
||||||
id="password"
|
|
||||||
autocomplete="current-password"
|
|
||||||
required
|
|
||||||
/>
|
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
||||||
<FormCheckRadioGroup v-model="form.remember" name="remember" :options="{ remember: 'Remember' }" />
|
<FormCheckRadioGroup v-model="form.remember" name="remember" :options="{ remember: 'Remember' }" />
|
||||||
|
@ -75,18 +76,20 @@ import FormControl from '@/Components/FormControl.vue';
|
||||||
<!-- buttons -->
|
<!-- buttons -->
|
||||||
<BaseLevel>
|
<BaseLevel>
|
||||||
<BaseButtons>
|
<BaseButtons>
|
||||||
<BaseButton
|
<!-- <BaseButton type="submit" color="info" label="Login" :class="{ 'opacity-25': form.processing }"
|
||||||
type="submit"
|
v-bind:disabled="form.processing" /> -->
|
||||||
color="info"
|
<button type="submit" v-bind:disabled="form.processing" :class="{ 'opacity-25': form.processing }"
|
||||||
label="Login"
|
class="text-white bg-cyan-600 hover:bg-cyan-700 focus:ring-4 focus:ring-cyan-200 font-medium rounded-lg text-base px-5 py-3 w-full sm:w-auto text-center">
|
||||||
:class="{ 'opacity-25': form.processing }"
|
Login to your account
|
||||||
v-bind:disabled="form.processing"
|
</button>
|
||||||
/>
|
|
||||||
<!-- <BaseButton v-if="canResetPassword" :route-name="route('password.request')" color="info" outline
|
<!-- <BaseButton v-if="canResetPassword" :route-name="route('password.request')" color="info" outline
|
||||||
label="Remind" /> -->
|
label="Remind" /> -->
|
||||||
</BaseButtons>
|
</BaseButtons>
|
||||||
<!-- <Link :href="stardust.route('app.register.show')"> Register </Link> -->
|
<!-- <Link :href="stardust.route('app.register.show')"> Register </Link> -->
|
||||||
</BaseLevel>
|
</BaseLevel>
|
||||||
|
<div class="text-sm font-medium text-gray-500">
|
||||||
|
Not registered? <a href="" class="text-teal-500 hover:underline">Create account</a>
|
||||||
|
</div>
|
||||||
</CardBox>
|
</CardBox>
|
||||||
</SectionFullScreen>
|
</SectionFullScreen>
|
||||||
</LayoutGuest>
|
</LayoutGuest>
|
||||||
|
@ -104,7 +107,7 @@ import FormCheckRadioGroup from '@/Components/FormCheckRadioGroup.vue';
|
||||||
import FormField from '@/Components/FormField.vue';
|
import FormField from '@/Components/FormField.vue';
|
||||||
import FormControl from '@/Components/FormControl.vue';
|
import FormControl from '@/Components/FormControl.vue';
|
||||||
import BaseDivider from '@/Components/BaseDivider.vue';
|
import BaseDivider from '@/Components/BaseDivider.vue';
|
||||||
import BaseButton from '@/Components/BaseButton.vue';
|
// import BaseButton from '@/Components/BaseButton.vue';
|
||||||
import BaseButtons from '@/Components/BaseButtons.vue';
|
import BaseButtons from '@/Components/BaseButtons.vue';
|
||||||
import FormValidationErrors from '@/Components/FormValidationErrors.vue';
|
import FormValidationErrors from '@/Components/FormValidationErrors.vue';
|
||||||
import NotificationBarInCard from '@/Components/NotificationBarInCard.vue';
|
import NotificationBarInCard from '@/Components/NotificationBarInCard.vue';
|
||||||
|
|
175
resources/js/Pages/Submitter/Person/Index.vue
Normal file
175
resources/js/Pages/Submitter/Person/Index.vue
Normal file
|
@ -0,0 +1,175 @@
|
||||||
|
<script setup lang="ts">
|
||||||
|
// import { Head, Link, useForm, usePage } from '@inertiajs/inertia-vue3';
|
||||||
|
import { Head, usePage } from '@inertiajs/vue3';
|
||||||
|
import { ComputedRef } from 'vue';
|
||||||
|
import { mdiAlertBoxOutline } from '@mdi/js';
|
||||||
|
import { computed } from 'vue';
|
||||||
|
import LayoutAuthenticated from '@/Layouts/LayoutAuthenticated.vue';
|
||||||
|
import SectionMain from '@/Components/SectionMain.vue';
|
||||||
|
// import SectionTitleLineWithButton from '@/Components/SectionTitleLineWithButton.vue';
|
||||||
|
// import BaseButton from '@/Components/BaseButton.vue';
|
||||||
|
import CardBox from '@/Components/CardBox.vue';
|
||||||
|
import BaseButtons from '@/Components/BaseButtons.vue';
|
||||||
|
import NotificationBar from '@/Components/NotificationBar.vue';
|
||||||
|
import Pagination from '@/Components/Admin/Pagination.vue';
|
||||||
|
// import Sort from '@/Components/Admin/Sort.vue';
|
||||||
|
// import { stardust } from '@eidellev/adonis-stardust/client';
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
persons: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({}),
|
||||||
|
},
|
||||||
|
filters: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({}),
|
||||||
|
},
|
||||||
|
can: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({}),
|
||||||
|
},
|
||||||
|
// user: {
|
||||||
|
// type: Object,
|
||||||
|
// default: () => ({}),
|
||||||
|
// }
|
||||||
|
});
|
||||||
|
|
||||||
|
// const search = computed(() => {
|
||||||
|
// return props.filters.search;
|
||||||
|
// });
|
||||||
|
|
||||||
|
const flash: ComputedRef<any> = computed(() => {
|
||||||
|
// let test = usePage();
|
||||||
|
// console.log(test);
|
||||||
|
return usePage().props.flash;
|
||||||
|
});
|
||||||
|
|
||||||
|
// const errors: ComputedRef<any> = computed(() => {
|
||||||
|
// return usePage().props.errors;
|
||||||
|
// });
|
||||||
|
|
||||||
|
// const form = useForm({
|
||||||
|
// search: props.filters.search,
|
||||||
|
// });
|
||||||
|
|
||||||
|
// const formDelete = useForm({});
|
||||||
|
|
||||||
|
// async function destroy(id) {
|
||||||
|
// const destroy = async (id) => {
|
||||||
|
// // if (confirm('Are you sure you want to delete?')) {
|
||||||
|
// // await formDelete.delete(stardust.route('dataset.destroy', [id]));
|
||||||
|
// // }
|
||||||
|
// };
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<LayoutAuthenticated>
|
||||||
|
|
||||||
|
<Head title="Submit Dataset" />
|
||||||
|
<SectionMain>
|
||||||
|
<!-- <FormValidationErrors v-bind:errors="errors" /> -->
|
||||||
|
<NotificationBar v-if="flash.message" color="success" :icon="mdiAlertBoxOutline">
|
||||||
|
{{ flash.message }}
|
||||||
|
</NotificationBar>
|
||||||
|
<NotificationBar v-if="flash.warning" color="warning" :icon="mdiAlertBoxOutline">
|
||||||
|
{{ flash.warning }}
|
||||||
|
</NotificationBar>
|
||||||
|
|
||||||
|
<!-- table -->
|
||||||
|
<CardBox class="mb-6" has-table>
|
||||||
|
<table>
|
||||||
|
<thead class="bg-gray-100">
|
||||||
|
<tr>
|
||||||
|
<th scope="col" class="p-4 text-left text-xs font-medium text-gray-500 uppercase">
|
||||||
|
Name
|
||||||
|
</th>
|
||||||
|
<!-- <th>
|
||||||
|
<Sort label="Email" attribute="email" :search="form.search" />
|
||||||
|
|
||||||
|
</th> -->
|
||||||
|
<th scope="col" class="p-4 text-left text-xs font-medium text-gray-500 uppercase">
|
||||||
|
ORCID
|
||||||
|
</th>
|
||||||
|
<th scope="col" class="p-4 text-left text-xs font-medium text-gray-500 uppercase">
|
||||||
|
Type
|
||||||
|
</th>
|
||||||
|
<!-- <th>Date of last modification</th> -->
|
||||||
|
<th scope="col" class="p-4 text-left text-xs font-medium text-gray-500 uppercase">
|
||||||
|
Status
|
||||||
|
</th>
|
||||||
|
<th v-if="can.edit || can.delete">Actions</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody class="bg-white divide-y divide-gray-200">
|
||||||
|
<tr v-for="person in props.persons.data" :key="person.id">
|
||||||
|
<td data-label="Login">
|
||||||
|
<!-- <Link v-bind:href="stardust.route('user.show', [user.id])"
|
||||||
|
class="no-underline hover:underline text-cyan-600 dark:text-cyan-400">
|
||||||
|
{{ user.login }}
|
||||||
|
</Link> -->
|
||||||
|
<td class="p-4 flex items-center whitespace-nowrap space-x-6 mr-12 lg:mr-0">
|
||||||
|
<!-- <img class="h-10 w-10 rounded-full" src="/images/users/{{ .avatar }}" alt="{{ .name }} avatar"> -->
|
||||||
|
<div class="text-sm font-normal">
|
||||||
|
<div class="text-base font-semibold">{{ person.name }}</div>
|
||||||
|
<div class="text-sm font-normal">{{ person.email }}</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</td>
|
||||||
|
<td class="p-4 whitespace-nowrap text-base font-medium">{{ person.identifier_orcid ?
|
||||||
|
person.identifier_orcid : '#' }}</td>
|
||||||
|
<td class="p-4 whitespace-nowrap text-base font-medium">{{ person.name_type }}</td>
|
||||||
|
<td class="p-4 whitespace-nowrap text-base font-normal">
|
||||||
|
<div class="flex items-center">
|
||||||
|
<div v-if="person.status == true" class="h-2.5 w-2.5 rounded-full bg-green-400 mr-2">
|
||||||
|
</div>
|
||||||
|
<div v-else class="h-2.5 w-2.5 rounded-full bg-red-500 mr-2"></div>
|
||||||
|
{{ person.status ? 'active' : 'inactive' }}
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<!-- <td>
|
||||||
|
{{ dataset.server_state }}
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td data-label="Created" class="lg:w-1 whitespace-nowrap">
|
||||||
|
<small class="text-gray-500 dark:text-slate-400" :title="dataset.server_date_modified">{{
|
||||||
|
dataset.updated_at }}</small>
|
||||||
|
</td> -->
|
||||||
|
<td v-if="can.edit || can.delete" class="before:hidden lg:w-1 whitespace-nowrap">
|
||||||
|
<BaseButtons type="justify-start lg:justify-end" no-wrap>
|
||||||
|
<!-- release created dataset -->
|
||||||
|
<!-- <BaseButton v-if="can.edit"
|
||||||
|
:route-name="stardust.route('dataset.release', [dataset.id])" color="info"
|
||||||
|
:icon="mdiLockOpen" :label="'Release'" small /> -->
|
||||||
|
<!-- && (dataset.server_state === 'inprogress' || dataset.server_state === 'rejected_editor')" -->
|
||||||
|
<!-- <BaseButton v-if="can.edit" :route-name="stardust.route('dataset.edit', [dataset.id])"
|
||||||
|
color="info" :icon="mdiSquareEditOutline" :label="'Edit'" small /> -->
|
||||||
|
<!-- @click="destroy(dataset.id)" -->
|
||||||
|
<!-- <BaseButton v-if="can.delete" color="danger"
|
||||||
|
:route-name="stardust.route('dataset.delete', [dataset.id])" :icon="mdiTrashCan"
|
||||||
|
small /> -->
|
||||||
|
</BaseButtons>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<div class="py-4">
|
||||||
|
<Pagination v-bind:data="persons.meta" />
|
||||||
|
<!-- <ul>
|
||||||
|
<li>
|
||||||
|
<a href="{{ users.page == 1 ? '#' : '?page=' + (users.page - 1) }}">Previous</a>
|
||||||
|
</li>
|
||||||
|
@each(page in ???)
|
||||||
|
<li>
|
||||||
|
<a href="?page={{ page }}">{{ page }}</a>
|
||||||
|
</li>
|
||||||
|
@endeach
|
||||||
|
<li>
|
||||||
|
<a href="{{ users.lastPage == users.page ? '#' : '?page=' + (users.page + 1) }}">Next</a>
|
||||||
|
</li>
|
||||||
|
</ul> -->
|
||||||
|
</div>
|
||||||
|
</CardBox>
|
||||||
|
</SectionMain>
|
||||||
|
</LayoutAuthenticated>
|
||||||
|
</template>
|
|
@ -173,7 +173,7 @@ Route.group(() => {
|
||||||
.as('dataset.deleteUpdate')
|
.as('dataset.deleteUpdate')
|
||||||
.middleware(['auth', 'can:dataset-delete']);
|
.middleware(['auth', 'can:dataset-delete']);
|
||||||
|
|
||||||
// Route.get('/user/:id', 'UsersController.show').as('user.show').where('id', Route.matchers.number());
|
Route.get('/person', 'PersonController.index').as('person.index').middleware(['auth']);
|
||||||
// Route.get('/user/:id/edit', 'UsersController.edit').as('user.edit').where('id', Route.matchers.number());
|
// Route.get('/user/:id/edit', 'UsersController.edit').as('user.edit').where('id', Route.matchers.number());
|
||||||
// Route.put('/user/:id/update', 'UsersController.update').as('user.update').where('id', Route.matchers.number());
|
// Route.put('/user/:id/update', 'UsersController.update').as('user.update').where('id', Route.matchers.number());
|
||||||
// Route.delete('/user/:id', 'UsersController.destroy').as('user.destroy').where('id', Route.matchers.number());
|
// Route.delete('/user/:id', 'UsersController.destroy').as('user.destroy').where('id', Route.matchers.number());
|
||||||
|
|
Loading…
Reference in New Issue
Block a user