Skip to content

Commit

Permalink
Merge pull request #6644 from getkirby/release/4.3.1
Browse files Browse the repository at this point in the history
  • Loading branch information
lukasbestle authored Aug 29, 2024
2 parents f9f00b1 + 65bb3ff commit 576306d
Show file tree
Hide file tree
Showing 22 changed files with 308 additions and 78 deletions.
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[<img src="https://getkirby.com/assets/images/github/kirby.jpg" width="300">](https://getkirby.com)
[<img src="https://getkirby.com/assets/images/github/kirby.jpg" width="300">](https://getkirby.com)

[![Release](https://img.shields.io/github/v/release/getkirby/kirby)](https://github.com/getkirby/kirby/releases/latest)
[![CI Status](https://img.shields.io/github/actions/workflow/status/getkirby/kirby/ci.yml?branch=main&label=CI)](https://github.com/getkirby/kirby/actions?query=workflow%3ACI+branch%3Amain)
[![Coverage Status](https://img.shields.io/codecov/c/gh/getkirby/kirby?token=ROZ2RVA0OF)](https://codecov.io/gh/getkirby/kirby)
[![Downloads](https://img.shields.io/packagist/dt/getkirby/cms?color=red)](https://github.com/getkirby/kirby/releases/latest)

**Kirby: the CMS that adapts to any project, loved by developers and editors alike.**
With Kirby, you build your own ideal interface. Combine forms, galleries, articles, spreadsheets and more into an amazing editing experience. You can learn more about Kirby at [getkirby.com](https://getkirby.com).
With Kirby, you build your own ideal interface. Combine forms, galleries, articles, spreadsheets and more into an amazing editing experience. You can learn more about Kirby at [getkirby.com](https://getkirby.com).

This is Kirby's core application folder. Get started with one of the following repositories instead:

Expand All @@ -15,7 +15,8 @@ This is Kirby's core application folder. Get started with one of the following r

<img src="https://getkirby.com/assets/images/github/kirby-screen.png" />

### Try Kirby for free
### Try Kirby for free

Kirby is not free software. However, you can try Kirby and the Starterkit on your local machine or on a test server as long as you need to make sure it is the right tool for your next project. … and when you’re convinced, [buy your license](https://getkirby.com/buy).

### Contribute
Expand All @@ -30,6 +31,7 @@ If you have ideas for a feature or enhancement for Kirby, please use our [feedba
Read about how to contribute to the development in our [contributing guide](/CONTRIBUTING.md).

## What's Kirby?

- **[getkirby.com](https://getkirby.com)** – Get to know the CMS.
- **[Try it](https://getkirby.com/try)** – Take a test ride with our online demo. Or download one of our kits to get started.
- **[Documentation](https://getkirby.com/docs/guide)** – Read the official guide, reference and cookbook recipes.
Expand All @@ -43,5 +45,5 @@ Read about how to contribute to the development in our [contributing guide](/CON

---

© 2009-2023 Bastian Allgeier
© 2009 Bastian Allgeier
[getkirby.com](https://getkirby.com) · [License agreement](https://getkirby.com/license)
51 changes: 19 additions & 32 deletions cacert.pem
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
##
## Bundle of CA Root Certificates
##
## Certificate data from Mozilla as of: Mon Mar 11 15:25:27 2024 GMT
## Certificate data from Mozilla as of: Tue Jul 2 03:12:04 2024 GMT
##
## This is a bundle of X.509 certificates of public Certificate Authorities
## (CA). These were automatically extracted from Mozilla's root certificates
Expand All @@ -14,7 +14,7 @@
## Just configure this file as the SSLCACertificateFile.
##
## Conversion done with mk-ca-bundle.pl version 1.29.
## SHA256: 4d96bd539f4719e9ace493757afbe4a23ee8579de1c97fbebc50bba3c12e8c1e
## SHA256: 456ff095dde6dd73354c5c28c73d9c06f53b61a803963414cb91a1d92945cdd3
##


Expand Down Expand Up @@ -2600,36 +2600,6 @@ vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+
CAezNIm8BZ/3Hobui3A=
-----END CERTIFICATE-----

GLOBALTRUST 2020
================
-----BEGIN CERTIFICATE-----
MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx
IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT
VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh
BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy
MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi
D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO
VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM
CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm
fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA
A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR
JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG
DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU
clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ
mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw
AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud
IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA
VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw
4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9
iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS
8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2
HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS
vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918
oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF
YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl
gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg==
-----END CERTIFICATE-----

ANF Secure Server Root CA
=========================
-----BEGIN CERTIFICATE-----
Expand Down Expand Up @@ -3579,3 +3549,20 @@ wPfc5+pbrrLMtTWGS9DiP7bY+A4A7l3j941Y/8+LN+ljX273CXE2whJdV/LItM3z7gLfEdxquVeE
HVlNjM7IDiPCtyaaEBRx/pOyiriA8A4QntOoUAw3gi/q4Iqd4Sw5/7W0cwDk90imc6y/st53BIe0
o82bNSQ3+pCTE4FCxpgmdTdmQRCsu/WU48IxK63nI1bMNSWSs1A=
-----END CERTIFICATE-----

FIRMAPROFESIONAL CA ROOT-A WEB
==============================
-----BEGIN CERTIFICATE-----
MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJF
UzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4
MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENBIFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2
WhcNNDcwMzMxMDkwMTM2WjBuMQswCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25h
bCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFM
IENBIFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zfe9MEkVz6
iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6CcyvHZpsKjECcfIr28jlg
st7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FD
Y1w8ndYn81LsF7Kpryz3dvgwHQYDVR0OBBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB
/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgL
cFBTApFwhVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dGXSaQ
pYXFuXqUPoeovQA=
-----END CERTIFICATE-----
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "The Kirby core",
"license": "proprietary",
"type": "kirby-cms",
"version": "4.3.0",
"version": "4.3.1",
"keywords": [
"kirby",
"cms",
Expand Down
2 changes: 1 addition & 1 deletion composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 11 additions & 5 deletions config/areas/languages/views.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,17 @@
return App::instance()->option('languages.variables', true) !== false;
},
'action' => function (string $code) {
$kirby = App::instance();
$language = Find::language($code);
$link = '/languages/' . $language->code();
$strings = [];
$foundation = App::instance()->defaultLanguage()->translations();
$foundation = $kirby->defaultLanguage()->translations();
$translations = $language->translations();

// TODO: update following line and adapt for update and delete options
// when new `languageVariables.*` permissions available
$canUpdate = $kirby->user()?->role()->permissions()->for('languages', 'update') === true;

ksort($foundation);

foreach ($foundation as $key => $value) {
Expand All @@ -26,13 +31,14 @@
'value' => $translations[$key] ?? null,
'options' => [
[
'click' => 'update',
'icon' => 'edit',
'text' => I18n::translate('edit'),
'click' => 'update',
'disabled' => $canUpdate === false,
'icon' => 'edit',
'text' => I18n::translate('edit'),
],
[
'click' => 'delete',
'disabled' => $language->isDefault() === false,
'disabled' => $canUpdate === false || $language->isDefault() === false,
'icon' => 'trash',
'text' => I18n::translate('delete'),
]
Expand Down
3 changes: 3 additions & 0 deletions i18n/translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,9 +126,12 @@
"error.form.notSaved": "The form could not be saved",

"error.language.code": "Please enter a valid code for the language",
"error.language.create.permission": "You are not allowed to create a language",
"error.language.delete.permission": "You are not allowed to delete the language",
"error.language.duplicate": "The language already exists",
"error.language.name": "Please enter a valid name for the language",
"error.language.notFound": "The language could not be found",
"error.language.update.permission": "You are not allowed to update the language",

"error.layout.validation.block": "There's an error on the \"{field}\" field in block {blockIndex} using the \"{fieldset}\" block type in layout {layoutIndex}",
"error.layout.validation.settings": "There's an error in layout {index} settings",
Expand Down
2 changes: 1 addition & 1 deletion panel/.env.example
Original file line number Diff line number Diff line change
@@ -1 +1 @@
VUE_APP_DEV_SERVER = "http://sandbox.test"
SERVER = "http://sandbox.test"
2 changes: 1 addition & 1 deletion panel/dist/js/index.min.js

Large diffs are not rendered by default.

28 changes: 26 additions & 2 deletions panel/src/components/Views/Languages/LanguageView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<k-prev-next :prev="prev" :next="next" />
</template>

<k-header :editable="true" @edit="update()">
<k-header :editable="canUpdate" @edit="update()">
{{ name }}

<template #buttons>
Expand All @@ -18,6 +18,7 @@
variant="filled"
/>
<k-button
:disabled="!canUpdate"
:title="$t('settings')"
icon="cog"
size="sm"
Expand All @@ -26,6 +27,7 @@
/>
<k-button
v-if="deletable"
:disabled="!$panel.permissions.languages.delete"
:title="$t('delete')"
icon="trash"
size="sm"
Expand All @@ -42,8 +44,12 @@

<k-section
:buttons="[
/**
* @todo update disabled prop when new `languageVariables.*` permissions available
*/
{
click: createTranslation,
disabled: !canUpdate,
icon: 'add',
text: $t('add')
}
Expand All @@ -63,13 +69,14 @@
mobile: true
}
}"
:disabled="!canUpdate"
:rows="translations"
@cell="updateTranslation"
@option="option"
/>
</template>
<template v-else>
<k-empty icon="translate" @click="createTranslation">
<k-empty :disabled="!canUpdate" icon="translate" @click="createTranslation">
{{ $t("language.variables.empty") }}
</k-empty>
</template>
Expand All @@ -95,11 +102,24 @@ export default {
translations: Array,
url: String
},
computed: {
canUpdate() {
return this.$panel.permissions.languages.update;
}
},
methods: {
createTranslation() {
if (!this.canUpdate) {
return;
}
this.$dialog(`languages/${this.id}/translations/create`);
},
option(option, row) {
if (!this.canUpdate) {
return;
}
// for the compatibility of the encoded url in different environments,
// it is also encoded with base64 to reduce special characters
this.$dialog(
Expand All @@ -121,6 +141,10 @@ export default {
});
},
updateTranslation({ row }) {
if (!this.canUpdate) {
return;
}
// for the compatibility of the encoded url in different environments,
// it is also encoded with base64 to reduce special characters
this.$dialog(
Expand Down
18 changes: 15 additions & 3 deletions panel/src/components/Views/Languages/LanguagesView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

<k-button-group slot="buttons">
<k-button
:disabled="!$panel.permissions.languages.create"
:text="$t('language.create')"
icon="add"
size="sm"
Expand All @@ -24,14 +25,23 @@
v-if="secondaryLanguages.length"
:items="secondaryLanguages"
/>
<k-empty v-else icon="translate" @click="$dialog('languages/create')">
<k-empty
v-else
icon="translate"
:disabled="!$panel.permissions.languages.create"
@click="$dialog('languages/create')"
>
{{ $t("languages.secondary.empty") }}
</k-empty>
</k-section>
</template>

<template v-else-if="languages.length === 0">
<k-empty icon="translate" @click="$dialog('languages/create')">
<k-empty
icon="translate"
:disabled="!$panel.permissions.languages.create"
@click="$dialog('languages/create')"
>
{{ $t("languages.empty") }}
</k-empty>
</template>
Expand Down Expand Up @@ -79,12 +89,14 @@ export default {
{
icon: "cog",
text: this.$t("settings"),
disabled: !this.$panel.permissions.languages.update,
click: () => this.$dialog(`languages/${language.id}/update`)
},
{
when: language.deletable,
icon: "trash",
text: this.$t("delete"),
disabled: language.deletable === false,
disabled: !this.$panel.permissions.languages.delete,
click: () => this.$dialog(`languages/${language.id}/delete`)
}
]
Expand Down
2 changes: 1 addition & 1 deletion panel/src/components/Views/Users/UserView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
class="k-user-view"
>
<template #topbar>
<k-prev-next v-if="model.account" :prev="prev" :next="next" />
<k-prev-next :prev="prev" :next="next" />
</template>

<k-header
Expand Down
5 changes: 3 additions & 2 deletions panel/src/panel/menu.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@ export default (panel) => {
* @param {Event} event
*/
blur(event) {
if (media.matches === false) {
const menu = document.querySelector(".k-panel-menu");

if (!menu || media.matches === false) {
return false;
}

const menu = document.querySelector(".k-panel-menu");
const toggle = document.querySelector(".k-panel-menu-proxy");

if (
Expand Down
13 changes: 10 additions & 3 deletions panel/vite.config.mjs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* eslint-env node */
import path from "path";

import { defineConfig, splitVendorChunkPlugin } from "vite";
import { defineConfig, loadEnv, splitVendorChunkPlugin } from "vite";
import vue from "@vitejs/plugin-vue2";
import { viteStaticCopy } from "vite-plugin-static-copy";
import externalize from "rollup-plugin-external-globals";
Expand All @@ -21,7 +21,7 @@ function createAliases() {
*/
function createServer() {
const proxy = {
target: process.env.VUE_APP_DEV_SERVER ?? "http://sandbox.test",
target: process.env.SERVER ?? "http://sandbox.test",
changeOrigin: true,
secure: false
};
Expand Down Expand Up @@ -99,7 +99,14 @@ function createTest() {
/**
* Returns the Vite configuration
*/
export default defineConfig(({ command }) => {
export default defineConfig(({ command, mode }) => {
// Load env file based on `mode` in the current working directory.
// Set the third parameter to '' to load all env regardless of the `VITE_` prefix.
process.env = {
...process.env,
...loadEnv(mode, process.cwd(), '')
};

return {
plugins: createPlugins(command),
define: {
Expand Down
2 changes: 1 addition & 1 deletion src/Cms/AppPlugins.php
Original file line number Diff line number Diff line change
Expand Up @@ -717,7 +717,7 @@ public static function plugin(
array $info = [],
string|null $root = null,
string|null $version = null
): PLugin|null {
): Plugin|null {
if ($extends === null) {
return static::$plugins[$name] ?? null;
}
Expand Down
Loading

0 comments on commit 576306d

Please sign in to comment.