mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-07-04 16:31:34 +00:00
Compare commits
8 commits
9b17efc12c
...
0e9558e331
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0e9558e331 | ||
|
|
4e9e82d9f1 | ||
|
|
411ac500ba | ||
|
|
b1443a817b | ||
|
|
3e8ca06177 | ||
|
|
c1b7272ab1 | ||
|
|
b093866d15 | ||
|
|
065ef9f8ae |
8 changed files with 812 additions and 795 deletions
|
|
@ -56,12 +56,16 @@ export default class MarkdownController extends Controller {
|
|||
this.element.innerHTML = DOMPurify.sanitize(MarkdownController._marked.parse(this.unescapeHTML(raw)));
|
||||
|
||||
for(let a of this.element.querySelectorAll('a')) {
|
||||
//Mark all links as external
|
||||
a.classList.add('link-external');
|
||||
//Open links in new tag
|
||||
a.setAttribute('target', '_blank');
|
||||
//Dont track
|
||||
a.setAttribute('rel', 'noopener');
|
||||
// test if link is absolute
|
||||
var r = new RegExp('^(?:[a-z+]+:)?//', 'i');
|
||||
if (r.test(a.getAttribute('href'))) {
|
||||
//Mark all links as external
|
||||
a.classList.add('link-external');
|
||||
//Open links in new tag
|
||||
a.setAttribute('target', '_blank');
|
||||
//Dont track
|
||||
a.setAttribute('rel', 'noopener');
|
||||
}
|
||||
}
|
||||
|
||||
//Apply bootstrap styles to tables
|
||||
|
|
@ -108,4 +112,4 @@ export default class MarkdownController extends Controller {
|
|||
gfm: true,
|
||||
});
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,6 +71,8 @@
|
|||
--ck-color-button-on-hover-background: var(--bs-secondary-bg);
|
||||
--ck-color-button-on-active-background: var(--bs-secondary-bg);
|
||||
--ck-color-button-on-disabled-background: var(--bs-secondary-bg);
|
||||
--ck-color-button-on-color: var(--bs-primary)
|
||||
--ck-color-button-on-color: var(--bs-primary);
|
||||
|
||||
}
|
||||
--ck-content-font-color: var(--ck-color-base-text);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -359,6 +359,10 @@ perms: # Here comes a list with all Permission names (they have a perm_[name] co
|
|||
label: "perm.revert_elements"
|
||||
alsoSet: ['read_profiles', 'edit_profiles', 'create_profiles', 'delete_profiles']
|
||||
apiTokenRole: ROLE_API_EDIT
|
||||
import:
|
||||
label: "perm.import"
|
||||
alsoSet: ['read_profiles', 'edit_profiles', 'create_profiles' ]
|
||||
apiTokenRole: ROLE_API_EDIT
|
||||
|
||||
api:
|
||||
label: "perm.api"
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ final class LabelProfileVoter extends Voter
|
|||
'delete' => 'delete_profiles',
|
||||
'show_history' => 'show_history',
|
||||
'revert_element' => 'revert_element',
|
||||
'import' => 'import',
|
||||
];
|
||||
|
||||
public function __construct(private readonly VoterHelper $helper)
|
||||
|
|
|
|||
|
|
@ -123,11 +123,11 @@ class LCSCProvider implements InfoProviderInterface
|
|||
*/
|
||||
private function queryByTerm(string $term): array
|
||||
{
|
||||
$response = $this->lcscClient->request('GET', self::ENDPOINT_URL . "/search/global", [
|
||||
$response = $this->lcscClient->request('POST', self::ENDPOINT_URL . "/search/v2/global", [
|
||||
'headers' => [
|
||||
'Cookie' => new Cookie('currencyCode', $this->settings->currency)
|
||||
],
|
||||
'query' => [
|
||||
'json' => [
|
||||
'keyword' => $term,
|
||||
],
|
||||
]);
|
||||
|
|
@ -165,6 +165,9 @@ class LCSCProvider implements InfoProviderInterface
|
|||
if ($field === null) {
|
||||
return null;
|
||||
}
|
||||
// Replace "range" indicators with mathematical tilde symbols
|
||||
// so they don't get rendered as strikethrough by Markdown
|
||||
$field = preg_replace("/~/", "\u{223c}", $field);
|
||||
|
||||
return strip_tags($field);
|
||||
}
|
||||
|
|
@ -197,9 +200,6 @@ class LCSCProvider implements InfoProviderInterface
|
|||
$category = $product['parentCatalogName'] ?? null;
|
||||
if (isset($product['catalogName'])) {
|
||||
$category = ($category ?? '') . ' -> ' . $product['catalogName'];
|
||||
|
||||
// Replace the / with a -> for better readability
|
||||
$category = str_replace('/', ' -> ', $category);
|
||||
}
|
||||
|
||||
return new PartDetailDTO(
|
||||
|
|
|
|||
|
|
@ -580,7 +580,7 @@
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>storelocation.new</source>
|
||||
<target>Nové místo skladování</target>
|
||||
<target>Nové umístění</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Rt3eY_7" name="supplier.caption">
|
||||
|
|
@ -913,7 +913,7 @@ Související prvky budou přesunuty nahoru.</target>
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>edit.log_comment</source>
|
||||
<target>Změnit komentář</target>
|
||||
<target>Komentář ke změně</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="ZMmz8UB" name="entity.delete.recursive">
|
||||
|
|
@ -2502,7 +2502,7 @@ Související prvky budou přesunuty nahoru.</target>
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>part.needs_review.badge</source>
|
||||
<target>Potřeba revize</target>
|
||||
<target>Vyžaduje kontrolu</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="IttGv57" name="part.favorite.badge">
|
||||
|
|
@ -4019,7 +4019,7 @@ Pokud jste to provedli nesprávně nebo pokud počítač již není důvěryhodn
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.regexmatching</source>
|
||||
<target>RegEx. shoda</target>
|
||||
<target>Reg.Ex. shoda</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
|
|
@ -4858,7 +4858,7 @@ Pokud jste to provedli nesprávně nebo pokud počítač již není důvěryhodn
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>part.table.needsReview</source>
|
||||
<target>Potřeba revize</target>
|
||||
<target>Vyžaduje kontrolu</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="AtzzLFz" name="part.table.favorite">
|
||||
|
|
@ -5662,7 +5662,7 @@ Pokud jste to provedli nesprávně nebo pokud počítač již není důvěryhodn
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>part.edit.needs_review</source>
|
||||
<target>Potřeba revize</target>
|
||||
<target>Vyžaduje kontrolu</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="TQbwkUd" name="part.edit.is_favorite">
|
||||
|
|
@ -6357,7 +6357,7 @@ Pokud jste to provedli nesprávně nebo pokud počítač již není důvěryhodn
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>user.theme.label</source>
|
||||
<target>Téma</target>
|
||||
<target>Vzhled</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="LQ7ihIX" name="user_settings.theme.placeholder">
|
||||
|
|
@ -6368,7 +6368,7 @@ Pokud jste to provedli nesprávně nebo pokud počítač již není důvěryhodn
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>user_settings.theme.placeholder</source>
|
||||
<target>Serverové téma</target>
|
||||
<target>Vzhled pro celý server</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="ZkXKucz" name="log.user_login.ip">
|
||||
|
|
@ -9718,7 +9718,7 @@ Element 3</target>
|
|||
<unit id="OEVzOkv" name="part_list.action.action.group.needs_review">
|
||||
<segment state="translated">
|
||||
<source>part_list.action.action.group.needs_review</source>
|
||||
<target>Potřeba revize</target>
|
||||
<target>Vyžaduje kontrolu</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="nkoTW_w" name="part_list.action.action.set_needs_review">
|
||||
|
|
@ -10678,7 +10678,7 @@ Element 3</target>
|
|||
<unit id="VraT.Lo" name="log.element_edited.changed_fields.theme">
|
||||
<segment state="translated">
|
||||
<source>log.element_edited.changed_fields.theme</source>
|
||||
<target>Téma</target>
|
||||
<target>Vzhled</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="QFESysH" name="log.element_edited.changed_fields.timezone">
|
||||
|
|
@ -10774,7 +10774,7 @@ Element 3</target>
|
|||
<unit id="iF9ovqi" name="log.element_edited.changed_fields.needs_review">
|
||||
<segment state="translated">
|
||||
<source>log.element_edited.changed_fields.needs_review</source>
|
||||
<target>Potřeba revize</target>
|
||||
<target>Vyžaduje kontrolu</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="wgJmpYG" name="log.element_edited.changed_fields.tags">
|
||||
|
|
@ -10984,7 +10984,7 @@ Element 3</target>
|
|||
<unit id="awbvhVq" name="parts.import.help">
|
||||
<segment state="translated">
|
||||
<source>parts.import.help</source>
|
||||
<target>Pomocí tohoto nástroje můžete importovat díly z existujících souborů. Díly budou zapsány přímo do databáze, proto před nahráním souboru sem zkontrolujte, zda je jeho obsah správný.</target>
|
||||
<target>Pomocí tohoto nástroje můžete importovat součásti z existujících souborů. Součásti budou přímo zapsány do databáze, proto před nahráním souboru zkontrolujte jeho správný obsah.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="5.sq5ns" name="parts.import.flash.success">
|
||||
|
|
@ -11014,7 +11014,7 @@ Element 3</target>
|
|||
<unit id="7dsEiOg" name="parts.import.part_needs_review.help">
|
||||
<segment state="translated">
|
||||
<source>parts.import.part_needs_review.help</source>
|
||||
<target>Pokud je tato možnost vybrána, budou všechny díly označeny jako "Potřeba revize" bez ohledu na to, co bylo nastaveno v údajích.</target>
|
||||
<target>Pokud je tato možnost vybrána, budou všechny díly označeny jako "Vyžaduje kontrolu" bez ohledu na to, co bylo nastaveno v údajích.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Ie9LLKJ" name="project.bom_import.flash.success">
|
||||
|
|
@ -12060,7 +12060,7 @@ Vezměte prosím na vědomí, že se nemůžete vydávat za uživatele se zakáz
|
|||
<unit id="duBTELg" name="part.info.withdraw_modal.delete_lot_if_empty">
|
||||
<segment state="translated">
|
||||
<source>part.info.withdraw_modal.delete_lot_if_empty</source>
|
||||
<target>Vymazat tento inventář, až se vyprázdní</target>
|
||||
<target>Smazat tuto položku, pokud se vyprázdní</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="SMclulD" name="info_providers.search.error.client_exception">
|
||||
|
|
@ -12528,7 +12528,7 @@ Vezměte prosím na vědomí, že se nemůžete vydávat za uživatele se zakáz
|
|||
<unit id="VYMqQr5" name="settings.system.customization.instanceName">
|
||||
<segment state="translated">
|
||||
<source>settings.system.customization.instanceName</source>
|
||||
<target>Instance name</target>
|
||||
<target>Název instance</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="0YFxSHZ" name="settings.system.customization.instanceName.help">
|
||||
|
|
@ -12576,7 +12576,7 @@ Vezměte prosím na vědomí, že se nemůžete vydávat za uživatele se zakáz
|
|||
<unit id="pinyqu2" name="settings.system.customization.theme">
|
||||
<segment state="translated">
|
||||
<source>settings.system.customization.theme</source>
|
||||
<target>Globální téma</target>
|
||||
<target>Globální vzhed</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Aky9nXE" name="settings.system.history.enforceComments">
|
||||
|
|
@ -12642,7 +12642,7 @@ Vezměte prosím na vědomí, že se nemůžete vydávat za uživatele se zakáz
|
|||
<unit id="8IszKgp" name="settings.system.privacy.useGravatar.description">
|
||||
<segment state="translated">
|
||||
<source>settings.system.privacy.useGravatar.description</source>
|
||||
<target>Pokud uživatel nemá nastavený avatar, použijte avatar z Gravataru na základě e-mailové adresy uživatele. To způsobí, že prohlížeč načte obrázky od třetí strany!</target>
|
||||
<target>Pokud uživatel nemá zadaný obrázek avatara, použije se avatar z Gravataru na základě e-mailu uživatele. To způsobí, že prohlížeč načte obrázky ze třetí strany!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="rxHBzbv" name="settings.system.privacy.checkForUpdates">
|
||||
|
|
@ -12691,7 +12691,7 @@ Vezměte prosím na vědomí, že se nemůžete vydávat za uživatele se zakáz
|
|||
<unit id="cvpTUeY" name="settings.system.privacy">
|
||||
<segment state="translated">
|
||||
<source>settings.system.privacy</source>
|
||||
<target>Ochrana osobních údajů</target>
|
||||
<target>Soukromí</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="TVAVZUl" name="settings.title">
|
||||
|
|
|
|||
|
|
@ -6504,7 +6504,7 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>flash.password_change_needed</source>
|
||||
<target>Ihr Password muss geändert werden!</target>
|
||||
<target>Ihr Passwort muss geändert werden!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="8I8zHPK" name="attachment.table.type">
|
||||
|
|
@ -7157,8 +7157,14 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
|
|||
<segment state="translated">
|
||||
<source>mass_creation.lines.placeholder</source>
|
||||
<target>Element 1
|
||||
Element 1.1
|
||||
Element 1.1.1
|
||||
Element 1.2
|
||||
Element 2
|
||||
Element 3</target>
|
||||
Element 3
|
||||
|
||||
Element 1 -> Element 1.1
|
||||
Element 1 -> Element 1.2</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="TWSqPFi" name="entity.mass_creation.btn">
|
||||
|
|
@ -9006,7 +9012,7 @@ Element 3</target>
|
|||
<unit id="gaoMsrY" name="part_list.action.part_count">
|
||||
<segment state="translated">
|
||||
<source>part_list.action.part_count</source>
|
||||
<target>%count% Bauteile ausgewählt!</target>
|
||||
<target>%count% Bauteile ausgewählt</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="FhdheZY" name="company.edit.quick.website">
|
||||
|
|
@ -12921,7 +12927,7 @@ Bitte beachten Sie, dass Sie sich nicht als deaktivierter Benutzer ausgeben kön
|
|||
<unit id="TEm7uIg" name="settings.behavior.sidebar.rootNodeRedirectsToNewEntity">
|
||||
<segment state="translated">
|
||||
<source>settings.behavior.sidebar.rootNodeRedirectsToNewEntity</source>
|
||||
<target>Wurzelknoten leitet zur Erstellung eines neuen Elements weiter</target>
|
||||
<target>Stammknoten leitet zur Erstellung eines neuen Elements weiter</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="j7HiQ80" name="settings.ips.digikey">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue