mirror of
https://github.com/YunoHost/yunohost-portal.git
synced 2024-09-03 20:06:23 +02:00
Compare commits
19 commits
debian/12.
...
dev
Author | SHA1 | Date | |
---|---|---|---|
|
bf96e01f2d | ||
|
ef314d5e3b | ||
|
3b4bbe7299 | ||
|
04d1eae217 | ||
|
cd2c953d45 | ||
|
d8ffbf29d4 | ||
|
1080933b72 | ||
|
b11ca44463 | ||
|
fb581767a2 | ||
|
eb8a2e4ec2 | ||
|
02706ac8a2 | ||
|
40b1a4ac29 | ||
|
478b09c4e2 | ||
|
fc4a65e4d1 | ||
|
4e86b4154e | ||
|
63e1274e9b | ||
|
8a96008ea9 | ||
|
ff3674aea9 | ||
|
41f9198f6a |
12 changed files with 245 additions and 47 deletions
3
app.vue
3
app.vue
|
@ -34,7 +34,8 @@ body {
|
|||
/* GLOBAL */
|
||||
.btn,
|
||||
.select,
|
||||
.input {
|
||||
.input.input,
|
||||
.join-item.btn {
|
||||
min-height: 2.5rem;
|
||||
height: 2.5rem;
|
||||
}
|
||||
|
|
|
@ -9,6 +9,10 @@ defineProps<{
|
|||
</template>
|
||||
|
||||
<style>
|
||||
.intro {
|
||||
@apply mt-4;
|
||||
}
|
||||
|
||||
.intro p {
|
||||
@apply mb-4;
|
||||
}
|
||||
|
|
11
debian/changelog
vendored
11
debian/changelog
vendored
|
@ -1,3 +1,14 @@
|
|||
yunohost-portal (12.0.2) testing; urgency=low
|
||||
|
||||
- cosmetics: misc margin and style tweaks (41f9198)
|
||||
- theming: add link to possible custom css stylesheet (ff3674a)
|
||||
- themes: reduce the number of available themes because there was too many, add new 'omg', 'legacy', 'admin' themes ([#12](http://github.com/YunoHost/yunohost-portal/pull/12))
|
||||
- i18n: Translations updated for Indonesian, Russian, Turkish
|
||||
|
||||
Thanks to all contributors <3 ! (axolotle, cjdw, Ivan Davydov, Satuk Bug)
|
||||
|
||||
-- Alexandre Aubin <alex.aubin@mailoo.org> Sat, 31 Aug 2024 19:56:46 +0200
|
||||
|
||||
yunohost-portal (12.0.1) testing; urgency=low
|
||||
|
||||
Initial testing release
|
||||
|
|
|
@ -37,7 +37,7 @@ async function logout() {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="container mx-auto p-10 min-h-screen flex flex-col">
|
||||
<div class="container mx-auto p-6 md:p-10 min-h-screen flex flex-col">
|
||||
<BaseAlert
|
||||
v-if="queryMsg"
|
||||
variant="warning"
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
"_language": {
|
||||
"code": "id",
|
||||
"dir": "ltr",
|
||||
"name": "Bahasa Indonesia"
|
||||
"name": "Bahasa Indonesia",
|
||||
"fallback": "id"
|
||||
},
|
||||
"add_forward": "Buat alamat surel terusan",
|
||||
"add_mail": "Buat surel alias",
|
||||
|
@ -14,7 +15,7 @@
|
|||
"footerlink_edit": "Sunting profil saya",
|
||||
"footerlink_support": "Dukungan",
|
||||
"fullname": "Nama Lengkap",
|
||||
"good_practices_about_user_password": "Pilih kata sandi sekurang-kurangnya 8 karakter - meskipun memang adalah hal yang baik jika menggunakan yang lebih panjang (cth. parafrasa) dan/atau menggunakan berbagai macam karakter (kapital, huruf kecil, angka, dan karakter lainnya).",
|
||||
"good_practices_about_user_password": "Pilih kata sandi pengguna yang terdiri dari minimal 8 karakter - meskipun sebaiknya menggunakan kata sandi yang lebih panjang (misalnya parafrasa) dan/atau menggunakan beragam karakter (huruf besar, huruf kecil, angka, dan karakter khusus).",
|
||||
"logged_out": "Berhasil keluar",
|
||||
"login": "Masuk",
|
||||
"logout": "Keluar",
|
||||
|
@ -24,5 +25,45 @@
|
|||
"new_mail": "surelbaru{'@'}domainku.org",
|
||||
"new_password": "Kata sandi baru",
|
||||
"password": "Kata sandi",
|
||||
"username": "Nama Pengguna"
|
||||
"username": "Nama Pengguna",
|
||||
"v": {
|
||||
"email": "Surel invalid: harus alfanumerik dan karakter '_.' (cth. someone{'@'}example.com, s0me-1{'@'}example.com)",
|
||||
"field_invalid": "Nilai bidang tidak valid",
|
||||
"field_required": "Nilai bidang wajib diisi",
|
||||
"password_not_match": "Sandi tidak sesuai.",
|
||||
"string_too_short": "Nilai invalid: setidaknya harus {min} karakter"
|
||||
},
|
||||
"api": {
|
||||
"processing": "Memproses…"
|
||||
},
|
||||
"app_list": "Daftar aplikasi",
|
||||
"automatic": "Otomatis ({name})",
|
||||
"back_to_apps": "Kembali ke daftar aplikasi",
|
||||
"confirm_new_password": "Konfirmasi sandi baru",
|
||||
"edit_browser_settings": "Edit pengaturan khusus peramban",
|
||||
"edit_personal_settings": "Edit informasi personal",
|
||||
"mail_address": "Alamat surel",
|
||||
"form_has_errors": "Form berisi beberapa kesalahan",
|
||||
"language": "Bahasa",
|
||||
"mail_forwards": "Alamat penerusan surel",
|
||||
"no_apps": "Tidak ada aplikasi untuk dicantumkan di sini, karena belum ada aplikasi web yang dipasang di server, atau karena Anda tidak memiliki akses ke aplikasi apa pun. Silakan hubungi admin server untuk info lebih lanjut!",
|
||||
"password_changed_reconnect": "Sandi Anda telah berubah, silakan menyambung kembali.",
|
||||
"possibly_invalid_password": "Kemungkinan sandi tidak valid",
|
||||
"save": "Simpan",
|
||||
"possibly_invalid_username": "Kemungkinan nama tidak valid",
|
||||
"primary_mail_adress": "Alamat surat primer",
|
||||
"remove": "Singkirkan",
|
||||
"search": "Cari",
|
||||
"search_engine_placeholder": "Cari dengan {engine}",
|
||||
"skip_link": {
|
||||
"footer": "Lewati ke catatan kaki",
|
||||
"main_content": "Lewati ke konten utama"
|
||||
},
|
||||
"ssowat": {
|
||||
"access_denied": "Anda tidak diperbolehkan mengakses url ini.",
|
||||
"protected": "Silakan masuk untuk mengakses url ini."
|
||||
},
|
||||
"theme": "Tema",
|
||||
"user_profile_updated": "Informasi pribadi pengguna berhasil diperbarui!",
|
||||
"visitor": "Pengunjung"
|
||||
}
|
||||
|
|
|
@ -24,5 +24,6 @@
|
|||
"new_mail": "newmail{'@'}mydomain.org",
|
||||
"new_password": "Новый пароль",
|
||||
"password": "Пароль",
|
||||
"username": "Имя пользователя"
|
||||
"username": "Имя пользователя",
|
||||
"save": "Сохранить"
|
||||
}
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
"_language": {
|
||||
"code": "tr",
|
||||
"dir": "ltr",
|
||||
"name": "Türkçe"
|
||||
"name": "Türkçe",
|
||||
"fallback": "tr"
|
||||
},
|
||||
"add_forward": "Bir e-posta yönlendirme adresi ekleyin",
|
||||
"add_mail": "Bir e-posta takma adı ekleyin",
|
||||
|
|
37
maintenance/make_changelog.sh
Normal file
37
maintenance/make_changelog.sh
Normal file
|
@ -0,0 +1,37 @@
|
|||
VERSION="?"
|
||||
RELEASE="stable"
|
||||
REPO=$(basename $(git rev-parse --show-toplevel))
|
||||
REPO_URL=$(git remote get-url origin)
|
||||
ME=$(git config --get user.name)
|
||||
EMAIL=$(git config --get user.email)
|
||||
|
||||
LAST_RELEASE=$(git tag --list 'debian/12.*' --sort="v:refname" | tail -n 1)
|
||||
|
||||
echo "$REPO ($VERSION) $RELEASE; urgency=low"
|
||||
echo ""
|
||||
|
||||
git log $LAST_RELEASE.. -n 10000 --first-parent --pretty=tformat:' - %b%s (%h)' \
|
||||
| sed -E "s&Merge .*#([0-9]+).*\$& \([#\1]\(http://github.com/YunoHost/$REPO/pull/\1\)\)&g" \
|
||||
| sed -E "/Co-authored-by: .* <.*>/d" \
|
||||
| grep -v "Translations update from Weblate" \
|
||||
| tac
|
||||
|
||||
TRANSLATIONS=$(git log $LAST_RELEASE... -n 10000 --pretty=format:"%s" \
|
||||
| grep "Translated using Weblate" \
|
||||
| sed -E "s/Translated using Weblate \((.*)\)/\1/g" \
|
||||
| sort | uniq | tr '\n' ', ' | sed -e 's/,$//g' -e 's/,/, /g')
|
||||
[[ -z "$TRANSLATIONS" ]] || echo " - [i18n] Translations updated for $TRANSLATIONS"
|
||||
|
||||
echo ""
|
||||
CONTRIBUTORS=$(git log -n10 --pretty=format:'%Cred%h%Creset %C(bold blue)(%an) %Creset%Cgreen(%cr)%Creset - %s %C(yellow)%d%Creset' --abbrev-commit $LAST_RELEASE... -n 10000 --pretty=format:"%an" \
|
||||
| sort | uniq | grep -v "$ME" | grep -v 'yunohost-bot' | grep -vi 'weblate' \
|
||||
| tr '\n' ', ' | sed -e 's/,$//g' -e 's/,/, /g')
|
||||
[[ -z "$CONTRIBUTORS" ]] || echo " Thanks to all contributors <3 ! ($CONTRIBUTORS)"
|
||||
echo ""
|
||||
echo " -- $ME <$EMAIL> $(date -R)"
|
||||
echo ""
|
||||
|
||||
|
||||
|
||||
# PR links can be converted to regular texts using : sed -E 's@\[(#[0-9]*)\]\([^ )]*\)@\1@g'
|
||||
# Or readded with sed -E 's@#([0-9]*)@[YunoHost#\1](https://github.com/yunohost/yunohost/pull/\1)@g' | sed -E 's@\((\w+)\)@([YunoHost/\1](https://github.com/yunohost/yunohost/commit/\1))@g'
|
|
@ -8,6 +8,11 @@ export default defineNuxtConfig({
|
|||
app: {
|
||||
baseURL: '/yunohost/sso',
|
||||
buildAssetsDir: '/assets/',
|
||||
head: {
|
||||
link: [
|
||||
{ rel: 'stylesheet', href: '/yunohost/sso/customassets/custom.css' },
|
||||
],
|
||||
},
|
||||
},
|
||||
modules: [
|
||||
'@nuxtjs/color-mode',
|
||||
|
|
|
@ -29,38 +29,22 @@ const localesAsOptions = computed(() => {
|
|||
const themesAsOptions = [
|
||||
'auto',
|
||||
'system',
|
||||
// Daisyui default themes
|
||||
'light',
|
||||
// Custom dark
|
||||
'dark',
|
||||
'cupcake',
|
||||
'bumblebee',
|
||||
'emerald',
|
||||
'corporate',
|
||||
'omg',
|
||||
'legacy',
|
||||
// Daisyui dark
|
||||
'black',
|
||||
'synthwave',
|
||||
'retro',
|
||||
'halloween',
|
||||
'coffee',
|
||||
// Daisyui light
|
||||
'cupcake',
|
||||
'cyberpunk',
|
||||
'valentine',
|
||||
'halloween',
|
||||
'garden',
|
||||
'forest',
|
||||
'aqua',
|
||||
'lofi',
|
||||
'pastel',
|
||||
'fantasy',
|
||||
'wireframe',
|
||||
'black',
|
||||
'luxury',
|
||||
'dracula',
|
||||
'cmyk',
|
||||
'autumn',
|
||||
'business',
|
||||
'acid',
|
||||
'lemonade',
|
||||
'night',
|
||||
'coffee',
|
||||
'winter',
|
||||
'dim',
|
||||
'nord',
|
||||
'sunset',
|
||||
].map((theme) => ({
|
||||
text:
|
||||
theme !== 'auto'
|
||||
|
@ -76,25 +60,31 @@ const themesAsOptions = [
|
|||
|
||||
<div class="lg:flex lg:justify-between">
|
||||
<section
|
||||
class="lg:w-1/2 lg:me-20 h-full card card-body border border-neutral my-10"
|
||||
class="lg:w-1/2 lg:me-20 h-full card card-bordered border-base-300 my-10"
|
||||
>
|
||||
<h2 class="text-3xl mb-3">{{ t('edit_personal_settings') }}</h2>
|
||||
<div class="card-header bg-base-300 py-4 px-8">
|
||||
<h2 class="text-3xl">{{ t('edit_personal_settings') }}</h2>
|
||||
</div>
|
||||
|
||||
<UserInfoForm />
|
||||
<UserInfoForm class="p-8" />
|
||||
</section>
|
||||
|
||||
<section class="lg:w-1/2 card card-body border border-neutral my-10">
|
||||
<h2 class="text-3xl mb-3">{{ $t('change_password') }}</h2>
|
||||
<section class="lg:w-1/2 card card-bordered border-base-300 my-10">
|
||||
<div class="card-header bg-base-300 py-4 px-8">
|
||||
<h2 class="text-3xl">{{ $t('change_password') }}</h2>
|
||||
</div>
|
||||
|
||||
<UserPasswordForm />
|
||||
<UserPasswordForm class="p-8" />
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<section class="card card-body border border-neutral my-10">
|
||||
<h2 class="text-3xl mb-3">{{ t('edit_browser_settings') }}</h2>
|
||||
<section class="card card-bordered border-base-300 my-10">
|
||||
<div class="card-header bg-base-300 py-4 px-8">
|
||||
<h2 class="text-3xl">{{ t('edit_browser_settings') }}</h2>
|
||||
</div>
|
||||
|
||||
<form novalidate @submit.prevent>
|
||||
<div role="group" class="flex align mb-3">
|
||||
<form class="p-8" novalidate @submit.prevent>
|
||||
<div role="group" class="flex flex-wrap align mb-3">
|
||||
<!-- eslint-disable-next-line vuejs-accessibility/label-has-for -->
|
||||
<label for="language" class="label me-3">{{ t('language') }}</label>
|
||||
<select
|
||||
|
@ -113,7 +103,7 @@ const themesAsOptions = [
|
|||
</select>
|
||||
</div>
|
||||
|
||||
<div role="group" class="flex align">
|
||||
<div role="group" class="flex flex-wrap align">
|
||||
<!-- eslint-disable-next-line vuejs-accessibility/label-has-for -->
|
||||
<label for="theme" class="label me-3">{{ t('theme') }}</label>
|
||||
<select
|
||||
|
@ -135,3 +125,10 @@ const themesAsOptions = [
|
|||
</section>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.card .card-header {
|
||||
border-top-left-radius: var(--rounded-box);
|
||||
border-top-right-radius: var(--rounded-box);
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -87,7 +87,7 @@ async function onSearchSubmit() {
|
|||
<li
|
||||
v-for="app in apps"
|
||||
:key="app.label"
|
||||
class="flex flex-auto border border-neutral rounded p-4 relative hover:bg-neutral hover:text-neutral-content"
|
||||
class="flex text-align flex-auto btn btn-outline btn-neutral !h-auto p-5 relative flex-nowrap items-start justify-normal text-left font-normal"
|
||||
>
|
||||
<img
|
||||
v-if="app.logo"
|
||||
|
|
|
@ -1,8 +1,108 @@
|
|||
module.exports = {
|
||||
// Safelisting some classes to avoid content purge
|
||||
plugins: [require('daisyui')],
|
||||
safelist: ['safelisted'],
|
||||
safelist: [
|
||||
'safelisted',
|
||||
'bg-primary',
|
||||
'bg-secondary',
|
||||
'bg-accent',
|
||||
'bg-neutral',
|
||||
'bg-base-100',
|
||||
'bg-base-200',
|
||||
'bg-base-300',
|
||||
'bg-base-content',
|
||||
'bg-info',
|
||||
'bg-success',
|
||||
'bg-warning',
|
||||
'bg-error',
|
||||
],
|
||||
daisyui: {
|
||||
themes: true,
|
||||
themes: [
|
||||
{
|
||||
legacy: {
|
||||
primary: '#2980b9',
|
||||
secondary: '#30333b',
|
||||
accent: '#7028b8',
|
||||
neutral: '#999',
|
||||
info: '#2980b9',
|
||||
success: '#27ae60',
|
||||
warning: '#e67e22',
|
||||
error: '#c0392b',
|
||||
'base-100': '#41444f',
|
||||
'base-200': '#999',
|
||||
'base-300': '#30333b',
|
||||
'base-content': '#fff',
|
||||
'primary-content': '#fff',
|
||||
'secondary-content': '#fff',
|
||||
'accent-content': '#fff',
|
||||
'neutral-content': '#fff',
|
||||
'info-content': '#fff',
|
||||
'success-content': '#fff',
|
||||
'warning-content': '#fff',
|
||||
'error-content': '#fff',
|
||||
'--rounded-box': '0rem',
|
||||
'--rounded-btn': '0rem',
|
||||
},
|
||||
dark: {
|
||||
primary: '#53a5fb',
|
||||
secondary: '#20cb98',
|
||||
accent: '#b957ea',
|
||||
neutral: '#EDEDED',
|
||||
info: '#79e7f9',
|
||||
success: '#70ea8d',
|
||||
warning: '#ffd452',
|
||||
error: '#ff5a5a',
|
||||
'base-100': '#202020',
|
||||
'base-200': '#3C3C3C',
|
||||
'base-300': '#303030',
|
||||
'base-content': '#fafafa',
|
||||
'primary-content': '#000',
|
||||
'secondary-content': '#000',
|
||||
'accent-content': '#000',
|
||||
'neutral-content': '#000',
|
||||
'info-content': '#000',
|
||||
'success-content': '#000',
|
||||
'warning-content': '#000',
|
||||
'error-content': '#000',
|
||||
'--rounded-box': '0.1875rem',
|
||||
'--rounded-btn': '0.1875rem',
|
||||
'--border-btn': '1px',
|
||||
},
|
||||
omg: {
|
||||
primary: '#ffe066',
|
||||
secondary: '#eebefa',
|
||||
accent: '#bac8ff',
|
||||
neutral: '#e7ebf3',
|
||||
info: '#a5d8ff',
|
||||
success: '#63e6be',
|
||||
warning: '#ff922b',
|
||||
error: '#fcc2d7',
|
||||
'base-100': '#343a40',
|
||||
'base-200': '#6f7479',
|
||||
'base-300': '#212529',
|
||||
'base-content': '#f1f3f5',
|
||||
'--rounded-box': '.13rem',
|
||||
'--rounded-btn': '.3rem',
|
||||
'--rounded-badge': '1.9rem',
|
||||
'--animation-btn': '0.25s',
|
||||
'--animation-input': '0.2s',
|
||||
'--btn-focus-scale': '0.95',
|
||||
'--border-btn': '1px',
|
||||
'--tab-border': '1px',
|
||||
'--tab-radius': '0.5rem',
|
||||
},
|
||||
},
|
||||
'light',
|
||||
// dark
|
||||
'black', // to rework contrasts
|
||||
'synthwave',
|
||||
'halloween',
|
||||
'coffee',
|
||||
// light
|
||||
'cupcake',
|
||||
'cyberpunk',
|
||||
'valentine',
|
||||
'nord',
|
||||
],
|
||||
},
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue