Merge branch 'develop' into staging

Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
This commit is contained in:
Andrey Sobolev 2025-01-24 15:39:01 +07:00
commit afbe36d450
No known key found for this signature in database
GPG Key ID: BD80F68D68D8F7F2
10 changed files with 30 additions and 52 deletions

View File

@ -628,7 +628,7 @@ jobs:
node ../common/scripts/install-run-rushx.js dist --linux --windows --x64
node ../common/scripts/install-run-rushx.js dist-signed --macos --x64 --arm64
./scripts/copy-publish-artifacts.sh ${{ env.PublishTempFolder}}
- name: Publish distribution assets
- name: Publish distribution assets and version
uses: ryand56/r2-upload-action@latest
with:
r2-account-id: ${{ secrets.R2_ACCOUNT_ID }}
@ -637,12 +637,6 @@ jobs:
r2-bucket: desktop-distro
source-dir: desktop-package/${{ env.PublishTempFolder}}
destination-dir: ./
- name: Publish distribution version
env:
AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
run: |
./desktop-package/scripts/publish-version.sh
- name: Upload MacOS
uses: actions/upload-artifact@v4
with:

View File

@ -3,6 +3,7 @@ SRC_FOLDER=deploy
TARGET_FOLDER=$1
CHANNEL=latest
set -e
if [ -d "$TARGET_FOLDER" ]; then rm -Rf $TARGET_FOLDER; fi
mkdir $TARGET_FOLDER
@ -15,3 +16,11 @@ cp $SRC_FOLDER/*.exe $TARGET_FOLDER
cp $SRC_FOLDER/$CHANNEL.yml $TARGET_FOLDER
cp $SRC_FOLDER/$CHANNEL-mac.yml $TARGET_FOLDER
cp $SRC_FOLDER/$CHANNEL-linux.yml $TARGET_FOLDER
# Create version-specific description files
rawVersion=$(node ../common/scripts/show_tag.js)
version=${rawVersion:1:${#rawVersion}-2}
cp $SRC_FOLDER/$CHANNEL.yml $TARGET_FOLDER/${version}.yml
cp $SRC_FOLDER/$CHANNEL-mac.yml $TARGET_FOLDER/${version}-mac.yml
cp $SRC_FOLDER/$CHANNEL-linux.yml $TARGET_FOLDER/${version}-linux.yml

View File

@ -1,27 +0,0 @@
#!/bin/bash
endpoint=https://47fadbaa4ecbea9f3e8b7043a4584e27.r2.cloudflarestorage.com
bucket=desktop-distro
rawVersion=$(node common/scripts/show_tag.js)
version=${rawVersion:1:${#rawVersion}-2}
cd desktop-package/deploy
aws s3api put-object --endpoint $endpoint --bucket $bucket --key ${version}-mac.yml --body latest-mac.yml --acl public-read 2>&1 > /dev/null
if [ $? -ne 0 ]; then
echo "Error uploading ${version}-mac.yml" >&2
exit 1
fi
aws s3api put-object --endpoint $endpoint --bucket $bucket --key ${version}-linux.yml --body latest-linux.yml --acl public-read 2>&1 > /dev/null
if [ $? -ne 0 ]; then
echo "Error uploading ${version}-linux.yml" >&2
exit 1
fi
aws s3api put-object --endpoint $endpoint --bucket $bucket --key ${version}.yml --body latest.yml --acl public-read 2>&1 > /dev/null
if [ $? -ne 0 ]; then
echo "Error uploading ${version}.yml" >&2
exit 1
fi
echo Successfully published version ${version} to ${endpoint}/${bucket}

View File

@ -33,10 +33,10 @@ export function canDisplayLinkPreview (val: LinkPreviewDetails): boolean {
if (val.hostname === undefined) {
return false
}
if (val.image === undefined && val.description === undefined) {
if (val.image === undefined && val.description?.trim() === '') {
return false
}
if (val.title === undefined && val.description === undefined) {
if (val.title?.trim() === '' && val.description?.trim() === '') {
return false
}
return true
@ -53,7 +53,9 @@ export async function fetchLinkPreviewDetails (url: string, timeoutMs = 15000):
headers: { Authorization: 'Bearer ' + token },
signal: AbortSignal.timeout(timeoutMs)
})
return response.json() as LinkPreviewDetails
const res = (await response.json()) as LinkPreviewDetails
res.url = url
return res
} catch {
return {}
}

View File

@ -115,7 +115,7 @@
{#await getJsonOrEmpty(value.file, value.name)}
<Spinner size="small" />
{:then linkPreviewDetails}
<div class="flex-center icon">
<div class="flex-center icon image">
{#if linkPreviewDetails.icon !== undefined && !useDefaultIcon}
<img
src={linkPreviewDetails.icon}

View File

@ -333,7 +333,7 @@
const hrefs = refContainer.getElementsByTagName('a')
const newUrls: string[] = []
for (let i = 0; i < hrefs.length; i++) {
if (hrefs[i].target !== '_blank' || !isValidUrl(hrefs[i].href)) {
if (hrefs[i].target !== '_blank' || !isValidUrl(hrefs[i].href) || hrefs[i].rel === '') {
continue
}
const key = getUrlKey(hrefs[i].href)
@ -363,7 +363,7 @@
if (canDisplayLinkPreview(meta) && meta.url !== undefined) {
const blob = new Blob([JSON.stringify(meta)])
const file = new File([blob], meta.url, { type: 'application/link-preview' })
void createAttachment(file)
await createAttachment(file)
}
} catch (err: any) {
void setPlatformStatus(unknownError(err))

View File

@ -17,12 +17,14 @@
import LinkPreviewPresenter from './LinkPreviewPresenter.svelte'
import { type WithLookup } from '@hcengineering/core'
import { type Attachment } from '@hcengineering/attachment'
import { Scroller } from '@hcengineering/ui'
export let attachments: WithLookup<Attachment>[] = []
</script>
<div class="gapV-2">
{#each attachments as attachment}
<LinkPreviewPresenter {attachment} />
<Scroller contentDirection={'horizontal'} horizontal scrollSnap>
<LinkPreviewPresenter {attachment} />
</Scroller>
{/each}
</div>

View File

@ -33,7 +33,7 @@
<div class="quote content">
{#if canDisplay}
<div class="gapV-2">
<div class="flex gap-1">
<div class="flex-row-center gap-1">
{#if viewModel.icon !== undefined && !useDefaultIcon}
<img
src={viewModel.icon}
@ -81,14 +81,15 @@
max-height: 25rem;
}
.preview-icon {
max-width: 22px;
max-height: 22px;
max-width: 16px;
max-height: 16px;
}
.quote {
border-left: 0.25rem solid;
padding-left: 15px;
padding-left: 0.75rem;
}
.content {
scroll-snap-align: start;
max-width: 35rem;
max-height: 35rem;
}

View File

@ -31,10 +31,8 @@
let configurations: Record<Ref<Class<Doc>>, Viewlet['config']> = {}
function fetchConfigurations (viewlet: Viewlet): void {
configurationsLoading = true
configurations = {}
objectConfigurations.query(
configurationsLoading = objectConfigurations.query(
view.class.Viewlet,
{
attachTo: { $in: hierarchy.getDescendants(_class) },
@ -49,8 +47,7 @@
}
function fetchPreferences (viewlet: Viewlet): void {
preferencesLoading = true
preferenceQuery.query(
preferencesLoading = preferenceQuery.query(
view.class.ViewletPreference,
{
space: core.space.Workspace,

View File

@ -751,7 +751,7 @@ export function categorizeFields (
}
export function makeViewletKey (loc?: Location): string {
loc = loc != null ? { path: loc.path } : getCurrentResolvedLocation()
loc = loc != null ? { path: loc.path, fragment: loc.fragment } : getCurrentResolvedLocation()
loc.query = undefined
if (loc.fragment != null && loc.fragment !== '') {