From 5b713af96c674e2417f7dd1c21277f42cbe7efe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Gregersen?= Date: Tue, 26 Nov 2019 21:00:45 +0100 Subject: [PATCH 001/178] Removed unused jQuery MEGA CHANGE! But every bit of jQuery removed from the internet is a good change :) --- src/Umbraco.Web.UI/config/splashes/noNodes.aspx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Umbraco.Web.UI/config/splashes/noNodes.aspx b/src/Umbraco.Web.UI/config/splashes/noNodes.aspx index 46a27a4eba..52abd04af0 100644 --- a/src/Umbraco.Web.UI/config/splashes/noNodes.aspx +++ b/src/Umbraco.Web.UI/config/splashes/noNodes.aspx @@ -55,7 +55,5 @@ - - From c3937d6e622ce38a66c616d1dc85d8a1dfa08f3b Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Fri, 10 Jan 2020 12:58:58 +0100 Subject: [PATCH 002/178] Disable the actions menu button until there are actions available --- .../src/less/components/buttons/umb-button.less | 5 +++++ src/Umbraco.Web.UI.Client/src/less/components/editor.less | 5 +++++ .../src/views/components/editor/umb-editor-menu.html | 1 + 3 files changed, 11 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-button.less b/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-button.less index 4127c2201c..d523b24141 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-button.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-button.less @@ -31,6 +31,11 @@ margin-left: 5px; } +.umb-button__button[disabled] .umb-button__caret { + border-top-color: @gray-7; + border-bottom-color: @gray-7; +} + .umb-button__progress { position: absolute; left: 50%; diff --git a/src/Umbraco.Web.UI.Client/src/less/components/editor.less b/src/Umbraco.Web.UI.Client/src/less/components/editor.less index bc84b0d35e..5713e8cc4d 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/editor.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/editor.less @@ -73,6 +73,11 @@ height: @editorHeaderHeight; } +.umb-editor-header .umb-button__button[disabled] { + // do not dim down the background color of disabled buttons in the header + background-color: unset; +} + .umb-editor-header__back { background: transparent; border: 0; diff --git a/src/Umbraco.Web.UI.Client/src/views/components/editor/umb-editor-menu.html b/src/Umbraco.Web.UI.Client/src/views/components/editor/umb-editor-menu.html index fe90fef07a..a7efaa505a 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/editor/umb-editor-menu.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/editor/umb-editor-menu.html @@ -8,6 +8,7 @@ show-caret="true" has-popup="true" is-expanded="dropdown.isOpen" + disabled="!actions || !actions.length" > From b893dd2c65e8c25eb1ffc9975a773afc64268c68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivo=20Kol=C3=A1=C5=99?= Date: Mon, 20 Apr 2020 11:53:26 +0200 Subject: [PATCH 003/178] - admin czech translation --- src/Umbraco.Web.UI/Umbraco/config/lang/cs.xml | 1587 +++++++++++++++-- 1 file changed, 1486 insertions(+), 101 deletions(-) diff --git a/src/Umbraco.Web.UI/Umbraco/config/lang/cs.xml b/src/Umbraco.Web.UI/Umbraco/config/lang/cs.xml index fe7e8ac638..4126d1d224 100644 --- a/src/Umbraco.Web.UI/Umbraco/config/lang/cs.xml +++ b/src/Umbraco.Web.UI/Umbraco/config/lang/cs.xml @@ -1,8 +1,8 @@ - umbraco - http://umbraco.org + Umbraco komunita + https://our.umbraco.com/documentation/Extending-Umbraco/Language-Files Kultura a názvy hostitelů @@ -11,10 +11,13 @@ Změnit typ dokumentu Kopírovat Vytvořit + Exportovat Vytvořit balíček + Vytvořit skupinu Odstranit Deaktivovat Vyprázdnit koš + Aktivovat Exportovat typ dokumentu Importovat typ dokumentu Importovat balíček @@ -28,17 +31,64 @@ Znovu načíst uzly Znovu publikovat celý web Práva + Přejmenovat + Obnovit + Nastavit oprávnění pro stránku %0% + Kam zkopírovat + Kam přesunout + do struktury stromu pod + Choose where to copy the selected item(s) + Choose where to move the selected item(s) + bylo přesunuto + bylo zkopírováno + bylo smazáno Vrátit starší verzi Odeslat k publikování Odeslat k překladu + Nastavit skupinu Seřadit Přeložit Aktualizovat + Nastavit oprávnění + Odemknout + Vytvořit šablonu obsahu + Přeposlat pozvánku + + + Obsah + Administrace + Struktura + Ostatní + + + Povolit přístup k přiřazování kultury a názvů hostitelů + Povolit přístup k zobrazení protokolu historie uzlu + Povolit přístup k zobrazení uzlu + Povolit přístup ke změně typu dokumentu daného uzlu + Povolit přístup ke kopírování uzlu + Povolit přístup k vytváření uzlů + Povolit přístup k mazání uzlů + Povolit přístup k přesunutí uzlu + Povolit přístup k nastavení a změně veřejného přístupu k uzlu + Povolit přístup k publikování uzlu + Povolit přístup k zrušení publikování uzlu + Povolit přístup ke změně oprávnění pro uzel + Povolit přístup k vrácení uzlu do předchozího stavu + Povolit přístup k odeslání uzlu ke schválení před publikováním + Povolit přístup k odeslání uzlu k překladu + Povolit přístup ke změně pořadí uzlů + Povolit přístup k překladu uzlu + Povolit přístup k uložení uzlu + Povolit přístup k vytvoření šablony obsahu + + + Obsah + Info Přístup zakázán. Přidat novou doménu - odebrat + Odebrat Neplatný uzel. Neplatný tvar domény. Doména už byla přiřazena. @@ -49,16 +99,17 @@ Doména '%0%' už byla přiřazena Doména '%0%' byla aktualizována Editace aktuálních domén + + Dědit Kultura nebo dědění kultury po nadřazeném uzlu. Vztahuje se také
na aktivní uzel.]]>
Domény - - Zobrazení pro - + Zrušit výběr Vybrat Dělat něco jiného Tučně @@ -77,15 +128,62 @@ Číslovaný seznam Vložit makro Vložit obrázek + Publikovat a zavřít + Publikovat s potomky Editovat vztahy + Zpět na seznam Uložit + Uložit a zavřít Uložit a publikovat + Uložit a naplánovat Uložit a odeslat ke schválení Náhled + Uložit zobrazení seznamu + Naplánovat + Náhled Náhled je deaktivován, protože není přiřazena žádná šablona Vybrat styl Zobrazit styly Vložit tabulku + Generovat modely a zavřít + Uložit a generovat modely + Zpět + Znovu + Obnovit + Smazat štítek + Zrušit + Potvrdit + Další možnosti publikování + + + Zobrazení pro + Obsah smazán + Obsah nepublikován + Obsah nepublikován pro jazyky: %0% + Obsah publikován + Obsah publikován pro jazyky: %0% + Obsah uložen + Obsah uložen pro jazyky: %0% + Obsah přesunut + Obsah zkopírován + Obsah vrácen zpět + Obsah odeslán k publikování + Obsah odeslán k publikování pro jazyky: %0% + Seřadit podřízené položky prováděné uživatelem + Kopírovat + Publikovat + Publikovat + Přesunout + Uložit + Uložit + Smazat + Nepublikovat + Nepublikovat + Vrátit zpět + Odeslat k publikování + Odeslat k publikování + Seřadit + Historie (všechny jazyky) Abyste změnili typ dokumentu pro zvolený obsah, nejprve jej vyberte ze seznamu typů platných pro tohle umístění. @@ -107,7 +205,14 @@ Nelze dokončit mapování vlastností, neboť nejméně jedna z vlastností má definováno více než jedno mapování. Jsou zobrazeny pouze alternativní typy platné pro aktuální umístění. + + Nepodařilo se vytvořit složku pod rodičem s ID %0% + Nepodařilo se vytvořit složku pod rodičem s názvem %0% + Název složky nesmí obsahovat nepovolené znaky. + Odstranění položky se nezdařilo: %0% + + Is Published O této stránce Alias (jak byste popsali obrázek přes telefon) @@ -124,45 +229,146 @@ Tato položko byla změněna po publikování Tato položka není publikována Naposledy publikováno + There are no items to show + There are no items to show in the list. + No child items have been added + No members have been added Typ média Odkaz na položky medií Skupina členů Role Typ člena + No changes have been made Nevybráno žádné datum Titulek stránky + This media item has no link + No content can be added for this item Vlastnosti Tento dokument je publikován, ale není viditelný, protože jeho rodič '%0%' publikován není + Tato jazyková verze je publikována, ale není viditelná, protože její rodič '%0%' publikován není Jejda: tento dokument je publikován, ale není v mezipaměti (vnitřní chyba) + Could not get the url + This document is published but its url would collide with content %0% + This document is published but its url cannot be routed Publikovat + Published + Published (pending changes)> Stav publikování + Publish with descendants to publish %0% and all content items underneath and thereby making their content publicly available.]]> + Publish with descendants to publish the selected languages and the same languages of content items underneath and thereby making their content publicly available.]]> Datum publikování Datum ukončení publikování Datum odebrání + Set date Třídění je aktualizováno Abyste uzly setřídili, jednoduše je přetáhněte anebo klikněte na jednu z hlaviček sloupce. Podržením "shift" nebo "control" při výběru můžete označit uzlů více. Statistika Titulek (volitelně) + Alternative text (optional) Typ Nepublikovat + Draft + Not created Naposledy změněno Datum/čas poslední změny dokumentu Odebrat soubor(y) + Click here to remove the image from the media item + Click here to remove the file from the media item URL adresa dokumentu Člen skupin(y) Není člen skupin(y) Podřízené položky Cíl + This translates to the following time on the server: + What does this mean?]]> + Are you sure you want to delete this item? + Are you sure you want to delete all items? + Property %0% uses editor %1% which is not supported by Nested Content. + No content types are configured for this property. + Add element type + Select element type + Select the group whose properties should be displayed. If left blank, the first group on the element type will be used. + Enter an angular expression to evaluate against each item for its name. Use + to display the item index + Add another text box + Remove this text box + Content root + Include drafts: also publish unpublished content items. + This value is hidden. If you need access to view this value please contact your website administrator. + This value is hidden. + What languages would you like to publish? All languages with content are saved! + What languages would you like to publish? + What languages would you like to save? + All languages with content are saved on creation! + What languages would you like to send for approval? + What languages would you like to schedule? + Select the languages to unpublish. Unpublishing a mandatory language will unpublish all languages. + Published Languages + Unpublished Languages + Unmodified Languages + These languages haven't been created + Ready to Publish? + Ready to Save? + Send for approval + Select the date and time to publish and/or unpublish the content item. + Create new + Paste from clipboard + This item is in the Recycle Bin + + + Vytvořit novou šablonu obsahu z '%0%' + Prázdná + Vybrat obsahovou šablonu + Šablona obsahu byla vytvořena + Šablona obsahu byla vytvořena z '%0%' + Již existuje jiná šablona obsahu se stejným názvem + Šablona obsahu je předdefinovaný obsah, který si editor může vybrat jako základ pro vytváření nového obsahu Klikněte pro nahrání + nebo kliknutím sem vyberte soubory + Sem můžete přetáhnout a nahrát soubory. + Tento soubor nelze nahrát, nemá povolený typ souboru + Maximální velikost souboru je + Nejvyšší složka médií + Nepodařilo se přesunout média + Nadřazené a cílové složky nemohou být stejné + Médium se nepodařilo zkopírovat + Nepodařilo se vytvořit složku pod nadřazeným id %0% + Nepodařilo se přejmenovat složku s id %0% + Přetáhněte své soubory do oblasti + + + Vytvořit nového člena + Všichni členové + Členské skupiny nemají žádné další vlastnosti pro úpravy. Kde chcete vytvořit nový %0% Vytvořit položku pod + Vyberte typ dokumentu, pro který chcete vytvořit šablonu obsahu + Zadejte název složky Vyberte typ a titulek "typy dokumentů".]]> + Typy dokumentů v části Nastavení.]]> + Vybraná stránka ve stromu obsahu neumožňuje vytváření žádných stránek pod ní. + Oprávnění k úpravám pro tento typ dokumentu + Vytvořit nový typ dokumentu + Typy dokumentů v části Nastavení změnou možnosti Povolit jako root v části Oprávnění.]]> "typy medií".]]> + Vybraná média ve stromu neumožňuje vytváření pod nimi žádná další média. + Upravit oprávnění pro tento typ média + Typ dokumentu bez šablony + Nová složka + Nový datový typ + Nový skript JavaScript + Nová prázdná částečná šablona + Nové makro pro částečnou šablonu + Nová částečná šablona ze snippetu + Nové makro částečné šablony ze snippetu + Nové makro pro částečnou šablonu (bez makra) + Nový soubor stylů - stylopis + Nový soubor stylů Rich Text editoru Prohlédnout svůj web @@ -174,35 +380,42 @@ Vítejte - Stay - Discard changes - You have unsaved changes - Are you sure you want to navigate away from this page? - you have unsaved changes + Zůstat zde + Zahodit změny + Máte neuložené změny + Opravdu chcete opustit tuto stránku? Máte neuložené změny. + Publikování zviditelní vybrané položky na webu. + Zrušení publikování odstraní vybrané položky a všechny jejich potomky z webu. + Zrušení publikování odstraní tuto stránku a všechny její potomky z webu. + Máte neuložené změny. Provedením změn typu dokumentu změny zahodíte. - Done - Deleted %0% item - Deleted %0% items - Deleted %0% out of %1% item - Deleted %0% out of %1% items - Published %0% item - Published %0% items - Published %0% out of %1% item - Published %0% out of %1% items - Unpublished %0% item - Unpublished %0% items - Unpublished %0% out of %1% item - Unpublished %0% out of %1% items - Moved %0% item - Moved %0% items - Moved %0% out of %1% item - Moved %0% out of %1% items - Copied %0% item - Copied %0% items - Copied %0% out of %1% item - Copied %0% out of %1% items + Hotovo + Smazána %0% položka + Smazáno %0% položek + Smazána %0% z %1% položek + Smazáno %0% z %1% položek + Publikována %0% položka + Publikováno %0% položek + Publikována %0% z %1% položek + Publikováno %0% z %1% položek + Zrušeno publikování %0% položky + Zrušeno publikování %0% položek + Zrušeno publikování %0% z %1% položek + Zrušeno publikování %0% z %1% položek + Přesunuta %0% položka + Přesunuto %0% položek + Přesunuta %0% z %1% položek + Přesunuto %0% z %1% položek + Zkopírována %0% položka + Zkopírováno %0% položek + Zkopírována %0% z %1% položek + Zkopírováno %0% z %1% položek + Titulek odkazu + Odkaz + Kotva / dotaz Název Spravovat názvy hostitelů Zavřít toto okno @@ -213,6 +426,7 @@ Vyjmout Editovat položku slovníku Editovat jazyk + Edit selected media Vložit místní odkaz Vložit znak Vložit grafický titulek @@ -220,14 +434,20 @@ Vložit odkaz Kliknout pro přidání makra Vložit tabulku + Tím se odstraní jazyk + Změna kultury jazyka může být náročná operace a bude mít za následek opětovné sestavení mezipaměti obsahu a indexů Naposledy editováno Odkaz Místní odkaz: Při používání místních odkazů vložte znak "#" před odkaz Otevřít v novém okně? + Nastavení makra Toto makro nemá žádné vlastnosti, které by bylo možno editovat Vložit Editovat oprávnění pro + Nastavit oprávnění pro + Nastavit oprávnění pro %0% pro skupinu %1% + Vyberte skupiny uživatelů, pro které chcete nastavit oprávnění Položky koše jsou nyní mazány. Nezavírejte, prosím, toto okno, dokud operace probíhá Koš je nyní prázdný Odebrání položek z koše způsobí jejich trvalé odstranění @@ -243,21 +463,109 @@ Klikněte na obrázek pro zobrazení v plné velikosti Vybrat položku Zobrazit položku mezipaměti + Navázat na originál + Včetně potomků + Nejpřátelštější komunita + Odkaz na stránku + Otevře propojený dokument v novém okně nebo na kartě + Odkaz na média + Vybrat počáteční uzel obsahu + Vybrat média + Vybrat typ média + Vybrat ikonu + Vybrat položku + Vybrat odkaz + Vybrat makro + Vybrat obsah + Vybrat typ obsahu + Vybrat počáteční uzel média + Vybrat člena + Vybrat skupinu členů + Vybrat typ člena + Vybrat uzel + Vybrat sekce + Vybrat uživatele + Nebyly nalezeny žádné ikony + Pro toto makro neexistují žádné parametry + K dispozici nejsou žádná makra + Externí poskytovatelé přihlášení + Podrobnosti o výjimce + Stacktrace + Vnitřní výjimka + Propojit se + Odpojit se + účet + Vybrat editora + Vybrat snippet + Tímto odstraníte uzel a všechny jeho jazyky. Pokud chcete smazat pouze jeden jazyk, měli byste zrušit publikování uzlu v tomto jazyce. + + + Nejsou žádné položky ve slovníku. %0%' níže.
Můžete přidat další jazyky v nabídce 'jazyky' nalevo.]]>
Název jazyka + + Přehled slovníku + + + Konfigurovaní vyhledávače + Zobrazuje vlastnosti a nástroje pro libovolný konfigurovaný vyhledávač (např. pro víceindexový vyhledávač) + Hodnoty pole + Stav + Stav indexu a jeho čitelnost + Indexery + Informace o indexu + Uvádí vlastnosti indexu + Spravovat indexy Examine + Umožňuje zobrazit podrobnosti každého indexu a poskytuje některé nástroje pro správu indexů + Znovu vytvořit index + V závislosti na tom, kolik obsahu je na vašem webu, může to chvíli trvat.
Nedoporučuje se znovu vytvářet index v době vysokého provozu na webu nebo při úpravách obsahu editory. + ]]> +
+ Vyhledávače + Prohledat index a zobrazit výsledky + Nástroje + Nástroje pro správu indexu + pole + Index nelze číst a bude nutné jej znovu sestavit + Proces trvá déle, než se očekávalo, zkontrolujte Umbraco log a zkontrolujte, zda během této operace nedošlo k chybám + Tento index nelze znovu sestavit, protože nemá přiřazen + IIndexPopulator Zadejte Vaše uživatelské jméno Zadejte Vaše heslo + Potvrďte heslo Pojmenujte %0%... Zadejte jméno... + Zadejte e-mail... + Zadejte uživatelské jméno... + Popisek... + Zadejte popis... Pište pro vyhledání... Pište pro filtrování... + Pište pro vložení štítků (po každém stiskněte klávesu Enter)... + Vložte svůj e-mail + Vložte zprávu... + Vaše uživatelské jméno je obvykle váš e-mail + #hodnota or ?klíč=hodnota + Vložte alias... + Generování aliasu... + Vytvořit vlastní zobrazení seznamu + Odebrat vlastní zobrazení seznamu + Typ obsahu, typ média nebo typ člena s tímto aliasem již existuje + + + Přejmenováno + Sem zadejte nový název složky + %0% přejmenováno na %1% Přidat předlohu @@ -271,6 +579,15 @@ Související stylopisy Zobrazit jmenovku Šířka a výška + Všechny typy vlastností a údaje o nich + použití tohoto datového typu bude trvale smazáno, potvrďte, že je chcete odstranit + Ano, smazat + a všechny typy vlastností a data vlastností používající tento typ dat + Vyberte složku, kterou chcete přesunout + do stromové struktury níže + byla přesunuta pod + %0% vymažete vlastnosti a jejich data z následujících položek]]> + Rozumím, že tato akce odstraní vlastnosti a data založená na tomto datovém typu Vaše data byla uložena, ale než budete moci publikovat tuto stránku, je třeba odstranit některé chyby: @@ -286,10 +603,12 @@ %0% není ve správném formátu + Ze serveru byla přijata chyba Použití daného typu souboru bylo zakázáno adminitrátorem UPOZORNĚNÍ! I když CodeMirror je dle konfigurace povolený, je zakázaný v Internet Exploreru, protože není dost stabilní. Vyplňte, prosím, alias i název nového typu vlastností! Vyskytl se problém při čtení/zápisu do určeného souboru nebo adresáře + Chyba při načítání skriptu částečné šablony (soubor: %0%) Uveďte, prosím, titulek Vyberte, prosím, typ Chystáte se obrázek zvětšit více, než je jeho původní rozměr. Opravdu chcete pokračovat? @@ -298,34 +617,43 @@ Žádne aktivní styly nejsou dostupné Umístěte, prosím, kurzor nalevo od těch dvou buňek, které chcete sloučit Nemužete rozdělit buňku, která nebyla sloučená. + Tato vlastnost je neplatná + Volby O... Akce Akce Přidat Alias + Vše Jste si jistí? + Zpět + Zpět na přehled Okraj o Zrušit Okraj buňky Vybrat + Vyčistit Zavřít Zavřít okno Komentovat Potvrdit + Omezit Zachovat proporce + Obsah Pokračovat Kopírovat Vytvořit - Databáse + Databáze Datum Výchozí Odstranit Odstraněno Odstraňování... Vzhled + Slovník Rozměry Dolů Stáhnout @@ -334,55 +662,85 @@ Prvky Email Chyba + Pole Najít + První + Focal point + Obecné + Skupiny + Skupina Výška Nápověda + Skrýt + Historie Ikona + Id Import + Zahrnout podsložky do vyhledávání + Info Vnitřní okraj Vložit Instalovat + Neplatné Vyrovnat + Popisek Jazyk + Poslední Rozvržení + Odkazy Nahrávání Zamčeno Přihlášení Odhlášení Odhlášení Makro + Povinné + Zpráva Přesunout Název Nový Následující Ne z + Vypnuto OK Otevřít + Zapnuto nebo + Seřadit podle Heslo Cesta Moment, prosím... Předchozí Vlastnosti + Obnovit Email pro obdržení formulářových dat Koš + Váš koš je prázdný + Znovu načíst Zbývající + Odebrat Přejmenovat Obnovit Povinné + Načíst Zopakovat Oprávnění + Plánované publikování Hledat + Litujeme, ale nemůžeme najít to, co hledáte. + Nebyly přidány žádné položky Server + Nastavení Zobrazit Zobrazit stránku při odeslání Rozměr Seřadit - Submit - - Typ - Pro hledání pište... + Stav + Potvrdit + Zadejte + Pište pro vyhledávání... + pod Nahoru Aktualizovat Povýšit @@ -397,18 +755,57 @@ Ano Složka Výsledky hledání - Reorder - I am done reordering + Přesunout + Skončil jsem s přesouváním + Náhled + Změnit heslo + na + Seznam + Ukládám... + aktuální + Vložené + vybrané + Další + Články + Videa + Vyčistit + Instalování + + + Modrá + + + Přidat skupinu + Přidat vlastnost + Přidat editor + Přidat šablonu + Přidat vnořený uzel + Přidat potomka + Upravit datový typ + Navigace v sekcích + Klávesové zkratky + zobrazit klávesové zkratky + Přepnout zobrazení seznamu + Přepnout povolení jako root + Okomentovat/Odkomentovat řádky + Odebrat řádek + Kopírovat řádky nahoru + Kopírovat řádky dolů + Přesunout řádky nahoru + Přesunout řádky dolů + Obecný + Editor + Přepnout povolení jazykových verzí - Background color - Bold - Text color + Barva pozadí + Tučně + Barva písma Font Text - Page + Stránka Instalátor se nemůže připojit k databázi. @@ -441,7 +838,7 @@ Heslo výchozího uživatele bylo úspěšně změněno od doby instalace!

Netřeba nic dalšího dělat. Klikněte na Následující pro pokračování.]]> Heslo je změněno! Mějte skvělý start, sledujte naše uváděcí videa - Kliknutím na tlačítko následující (nebo modifikováním umbracoConfigurationStatus v souboru web.config) přijímáte licenci tohoto software tak, jak je uvedena v poli níže. Upozorňujeme, že tato distribuce umbraca se skládá ze dvou různých licencí, open source MIT licence pro framework a umbraco freeware licence, která pokrývá UI. + Kliknutím na tlačítko následující (nebo modifikováním umbracoConfigurationStatus v souboru web.config) přijímáte licenci tohoto software tak, jak je uvedena v poli níže. Upozorňujeme, že tato distribuce Umbraca se skládá ze dvou různých licencí, open source MIT licence pro framework a umbraco freeware licence, která pokrývá UI. Není nainstalováno. Dotčené soubory a složky Další informace o nastavování oprávnění pro umbraco zde @@ -515,8 +912,8 @@ Stiskněte "následující" pro spuštění průvodce.]]> - Kód kultury - Název kultury + Kód jazyka + Název jazyka Byli jste nečinní a odhlášení proběhne automaticky za @@ -531,8 +928,100 @@ Šťastný bláznivý pátek Šťastnou kočkobotu přihlašte se níže + Přihlásit se pomocí Relace vypršela © 2001 - %0%
umbraco.org

]]>
+ Zapomenuté heslo? + Na uvedenou adresu bude zaslán e-mail s odkazem pro obnovení hesla + Pokud odpovídá našim záznamům, bude na zadanou adresu zaslán e-mail s pokyny k obnovení hesla + Zobrazit heslo + Skrýt heslo + Vrátit se na přihlašovací obrazovku + Zadejte nové heslo + Vaše heslo bylo aktualizováno + Odkaz, na který jste klikli, je neplatný nebo jeho platnost vypršela + Umbraco: Resetování hesla + + + + + + + + + + + +
+ + + + + +
+ +
+ +
+
+ + + + + + +
+
+
+ + + + +
+ + + + +
+

+ Vyžadováno resetování hesla +

+

+ Vaše uživatelské jméno pro přihlášení do back-office Umbraco je: %0% +

+

+ + + + + + +
+ + Kliknutím na tento odkaz obnovíte své heslo + +
+

+

Pokud nemůžete kliknout na odkaz, zkopírujte a vložte tuto adresu URL do okna prohlížeče:

+ + + + +
+ + %1% + +
+

+
+
+


+
+
+ + + ]]>
Ovládací panel @@ -555,6 +1044,7 @@ Upravte vaše oznámení pro %0% + Nastavení oznámení bylo uloženo pro - Hi %0%

+ Následující jazyky byly změněny %0% + Ahoj %0%

Toto je automatická zpráva informující Vás, že úloha '%1%' byla provedena na stránce '%2%' @@ -595,14 +1086,68 @@

Mějte hezký den!

Zdraví umbraco robot

]]>
+ Byly změněny následující jazyky:

+ %0% + ]]>
[%0%] Upozornění o %1% na %2% Upozornění + Akce + Vytvořeno + Vytvořit balíček a výběrem balíčku. Balíčky umbraco mají obvykle přípony ".umb" nebo ".zip". ]]> + Tím se balíček odstraní + Přetáhněte sem pro nahrání + Zahrnout všechny podřízené uzly + nebo kliknutím sem vyberte soubor balíčku + Nahrát balíček + Nainstalujte místní balíček výběrem ze svého počítače. Instalujte pouze balíčky ze zdrojů, které znáte a kterým důvěřujete + Nahrát další balíček + Zrušit a nahrát další balíček + Přijímám + podmínky použití + Cesta k souboru + Absolutní cesta k souboru (ie: /bin/umbraco.bin) + Nainstalováno + Nainstalované balíčky + Instalovat místní + Dokončit + Tento balíček nemá žádné zobrazení konfigurace + Zatím nebyly vytvořeny žádné balíčky + Nemáte nainstalované žádné balíčky + Balíčky v pravém horním rohu obrazovky.]]> + Akce balíčku + Web autora + Obsah balíčku + Soubory balíčku + URL ikony + Nainstalovat balíček + Licence + URL licence + Vlastnosti balíčku + Hledat balíčky + Výsledky pro + Nemohli jsme nic najít + Zkuste prosím vyhledat jiný balíček nebo procházet jednotlivé kategorie + Oblíbené + Nové + + karma body + Informace + Vlastník + Přispěvatelé + Vytvořeno + Aktuální verze + .NET verze + Počet stažení + Počet lajků + kompatibilita + Tento balíček je kompatibilní s následujícími verzemi Umbraco, jak ohlásili členové komunity. Plnou kompatibilitu nelze zaručit u verzí hlášených pod 100% + Externí zdroje Autor Dokumentace Meta data balíčku @@ -621,6 +1166,17 @@ Upozornění: všechny dokumenty, media atd. závislé na položkách, které odstraníte, přestanou pracovat a mohou vést k nestabilitě systému, takže odinstalovávejte opatrně. Jste-li na pochybách, kontaktujte autora balíčku.]]>
Verze balíčku + Upgradování z verze + Balíček je již nainstalován + Tento balíček nelze nainstalovat, vyžaduje minimální verzi Umbraco + Odinstalovávám... + Stahuji... + Importuji... + Instaluji... + Restartuji, prosím čekejte... + Vše je hotovo, váš prohlížeč se nyní obnoví, prosím čekejte... + Klepnutím na tlačítko „Dokončit“ dokončete instalaci a znovu načtěte stránku. + Nahrávám balíček... Vložit s úplným formatováním (nedoporučeno) @@ -629,9 +1185,9 @@ Vložit, ale odstranit formátování (doporučeno) - Ochrana prostřednictvím rolí - použijte členské skupiny umbraca.]]> - Musíte vytvořit členskou skupinu před tím, než můžete použít autentizaci prostřednictvím rolí + Ochrana prostřednictvím rolí + použijte členské skupiny umbraca.]]> + Musíte vytvořit členskou skupinu před tím, než můžete použít autentizaci prostřednictvím rolí Chybová stránka Použita, když jsou lidé přihlášení, ale nemají přístup Vyberte, jak omezit přístup k této stránce @@ -640,16 +1196,28 @@ Přihlašovací stránka Vyberte stránku, která obsahuje přihlašovací formulář Odstranit ochranu + %0%?]]> Vyberte stránky, které obsahují přihlašovací formulář a chybová hlášení Vyberte role, které mají přístup k této stránce + %0%]]> + %0%]]> + Ochrana konkrétních členů + Pokud si přejete udělit přístup konkrétním členům Nastavte přihlašovací jmého a heslo pro tuto stránku Jednouživatelská ochrana Jestliže chcete nastavit jenom jednoduchou ochranu prostřednictvím uživatelského jména a hesla + Nedostatečná uživatelská oprávnění k publikování všech potomků + + @@ -659,7 +1227,9 @@ - Zahrnout nepublikované podřízené stránky + + + Ověření se nezdařilo pro požadovaný jazyk '% 0%'. Tento jazyk byl uložen, ale nezveřejněn. Probíhá publikování - počkejte, prosím... %0% ze %1% stránek bylo publikováno... %0% byla publikována @@ -668,23 +1238,49 @@ ok pro publikování %0% a tedy zveřejnění jejího obsahu.

Můžete publikovat tuto stránku a všechny její podstránky zatrhnutím publikovat všchny podstránky níže. ]]>
+ Zahrnout nepublikované podřízené stránky Nenakonfigurovali jste žádné schválené barvy + + Můžete vybrat pouze položky typu (typů): %0% + Vybrali jste aktuálně odstraněnou položku obsahu nebo položku v koši + Vybrali jste aktuálně odstraněné položky obsahu nebo položky v koši + + + Smazaná položka + Vybrali jste aktuálně odstraněnou položku média nebo položku v koši + Vybrali jste aktuálně odstraněné položky médií nebo položky médií v koši + V koši + + zadejte externí odkaz + zvolte interní stránku + Nadpis + Odkaz + Otevřít v novém okně + zadejte titulek + Zadejte odkaz + Přidat vnější odkaz Přidat vnitřní odkaz Přidat - Nadpis Vnitřní stránka URL Posunout dolů Posunout nahoru - Otevřít v novém okně Odebrat odkaz + + Zrušit oříznutí + Uložit oříznutí + Přidat nové oříznutí + Hotovo + Vrátit změny + + Vyberte verzi, kterou chcete porovnat s aktuální verzí Současná verze Červený text nebude ve vybrané verzi zobrazen, zelený znamená přidaný].]]> Dokument byl vrácen na starší verzi @@ -697,20 +1293,29 @@ Editovat skriptovací soubor - Domovník Obsah + Formuláře + Média + Členové + Balíčky + Nastavení + Překlad + Uživatelé + + Domovník Kurýr Vývojář Průvodce nastavením Umbraca - Media - Členové Zpravodaje - Nastavení Statistiky - Překlad - Uživatelé Nápověda + + Příručky + Nejlepší videopříručky Umbraco + Navštívit our.umbraco.com + Navštívit umbraco.tv + Výchozí šablona Pro importování typu dokumentu vyhledejte soubor ".udt" ve svém počítači tak, že kliknete na tlačítko "Prohledat" a pak kliknete na "Import" (na následující obrazovce budete vyzváni k potvrzení) @@ -726,16 +1331,25 @@ Tento typ obsahu používá jako nadřazený typ obsahu. Záložky z nadřazených typů obsahu nejsou zobrazeny a mohou byt editovány pouze na nadřazených typech obsahu samotných Na této záložce nejsou definovány žádné vlastnosti. Pro vytvoření nové vlastnosti klikněte na odkaz "přidat novou vlastnost" nahoře. + Vytvořit odpovídající šablonu + Přidat ikonu - Sort order - Creation date + Řazení + Datum vytvoření Třídění bylo ukončeno. Abyste nastavili, jak mají být položky seřazeny, přetáhněte jednotlivé z nich nahoru či dolů. Anebo klikněte na hlavičku sloupce pro setřídění celé kolekce + Tato položka nemá vnořené položky k seřazení - Publikování bylo zrušeno doplňkem třetí strany + Validace + Před uložením položky je nutné opravit chyby + Chyba + Uloženo + Nedostatečná uživatelská oprávnění, operace nemohla být dokončena + Zrušeno + Operace byla zrušena doplňkem třetí strany Typ vlastnosti už existuje Typ vlastnosti vytvořen Datový typ: %1%]]> @@ -749,108 +1363,332 @@ Stylopis byl uložen bez chyb Datový typ byl uložen Položka slovníku byla uložena - Publikování se nezdařilo, protože nadřazená stránka není publikována Obsah byl publikován a je viditelný na webu + %0% dokumentů zveřejněných a viditelných na webu + %0% zveřejněných a viditelných na webu + %0% dokumentů zveřejněných pro jazyky %1% a viditelných na webu Obsah byl uložen Nezapomeňte na publikování, aby se změny projevily + Načasování publikování bylo aktualizováno + %0% uloženo Odeslat ke schválení Změny byly odeslány ke schválení - Medium bylo uloženo - Medium bylo uloženo bez chyb + %0% změn bylo odesláno ke schválení + Médium bylo uloženo + Médium bylo uloženo bez chyb Člen byl uložen + Skupina členů byla uložena Vlastnost stylopisu byla uložena Stylopis byl uložen Šablona byla uložena Chyba při ukládání uživatele (zkontrolujte log) Uživatel byl uložen Typ uživatele byl uložen + Skupina uživatelů byla uložena + Jazyky a názvy hostitelů byly uloženy + Při ukládání jazyků a názvů hostitelů došlo k chybě Soubor nebyl uložen soubor nemohl být uložen. Zkontrolujte, prosím, oprávnění k souboru Soubor byl uložen Soubor byl uložen bez chyb Jazyk byl uložen + Typ média byl uložen + Typ člena byl uložen + Skupina členů byla uložena Šablona nebyla uložena Ujistěte se, prosím, že nemáte 2 šablony se stejným aliasem Šablona byla uložena Šablona byla uložena bez chyb! Publikování obsahu bylo zrušeno + Varianta obsahu %0% nebyla publikována + Povinný jazyk '%0%' nebyl publikován. Všechny jazyky pro tuto položku obsahu nejsou nyní publikovány. Částečný pohled byl uložen Částečný pohled byl uložen bez chyb! Částečný pohled nebyl uložen Při ukládání souboru došlo k chybě. + Oprávnění byla uložena pro + Smazáno %0% skupin uživatelů + %0% bylo smazáno + Povoleno %0% uživatelů + Zakázáno %0% uživatelů + %0% je nyní povoleno + %0% je nyní zakázáno + Skupiny uživatelů byly nastaveny + Odemčeno %0% uživatelů + %0% je nyný odemčeno + Člen byl exportován do souboru + Při exportu člena došlo k chybě + Uživatel %0% byl smazán + Pozvat uživatele + Pozvánka byla znovu odeslána na %0% + Dokument nelze publikovat, protože %0% není publikována + Ověření pro jazyk '%0%' se nezdařilo + Typ dokumentu byl exportován do souboru + Při exportu typu dokumentu došlo k chybě + Datum vydání nemůže být v minulosti + Nelze naplánovat publikování dokumentu, protože %0% není publikována + Dokument nelze naplánovat na publikování, protože „%0%“ má datum zveřejnění později než nepovinný jazyk + Datum vypršení platnosti nemůže být v minulosti + Datum vypršení nemůže být před datem vydání + + Publikování bylo zrušeno doplňkem třetí strany + Publikování se nezdařilo, protože nadřazená stránka není publikována - Používá CSS syntaxi např.: h1, .redHeader, .blueTex + Přidat styl + Upravit styl + Styly Rich Text editoru + Definujte styly, které by měly být k dispozici v editoru formátovaného textu pro tuto šablonu stylů Editovat stylopis Editovat vlastnost stylopisu Název, který identifikuje vlastnost stylu v editoru formátovaného textu Náhled + Jak bude text vypadat v Rich Text editoru. + CSS identifikátor nebo třída + Používá syntaxi CSS, např. "h1" nebo ".redHeader" Styly + CSS, který by měl být použit v editoru RTF, např. "color:red;" + Kód + Rich Text editor + + Používá CSS syntaxi např.: h1, .redHeader, .blueTex + Nepodařilo se odstranit šablonu s ID %0% Editovat šablonu + Sekce Vložit obsahovou oblast Vložit zástupce obsahové oblasti + Vložit + Vyberte, co chcete vložit do své šablony Vložit položku slovníku + Položka slovníku je zástupný symbol pro překladatelný text, což usnadňuje vytváření návrhů pro vícejazyčné webové stránky. Vložit makro + + Makro je konfigurovatelná součást, která je skvělá pro opakovaně použitelné části návrhu, kde potřebujete předat parametry, jako jsou galerie, formuláře a seznamy. + Vložit pole stránky umbraco + Zobrazuje hodnotu pojmenovaného pole z aktuální stránky s možnostmi upravit hodnotu nebo alternativní hodnoty. + Částečná šablona + + Částečná šablona je samostatný soubor šablony, který lze vykreslit uvnitř jiné šablony. Je to skvělé pro opakované použití nebo pro oddělení složitých šablon. + Nadřazená šablona - Rychlá příručka k šablonovým značkám umbraca + Žádný master + Vykreslit podřízenou šablonu + @RenderBody(). + ]]> + Definujte pojmenovanou sekci + @section {...}. Ta může být vykreslena v konkrétní oblasti nadřazené šablony pomocí @RenderSection. + ]]> + Vykreslit pojmenovanou sekci + @RenderSection(name). Tím se vykreslí oblast podřízené šablony, která je zabalena do odpovídající definice @section[name] {...}. + ]]> + Název sekce + Sekce je povinná + @section, jinak se zobrazí chyba. + ]]> + Tvůrce dotazů + položky vráceny, do + zkopírovat do schránky + Chci + veškerý obsah + obsah typu "%0%" + z(e) + můj web + kde + a + je + není + před + před (včetně zvoleného datumu) + po + po (včetně zvoleného datumu) + rovná se + nerovná se + obsahuje + neobsahuje + větší než + větší nebo rovno + menší než + menší nebo rovno + Id + Název + Datum vytvoření + Datum poslední aktualizace + řadit podle + vzestupně + sestupně Šablona + + Rychlá příručka k šablonovým značkám umbraca - Image - Macro - Choose type of content - Choose a layout - Add a row - Add content - Drop content - Settings applied - This content is not allowed here - This content is allowed here - Click to embed - Click to insert image - Image caption... - Write here... - Grid Layouts - Layouts are the overall work area for the grid editor, usually you only need one or two different layouts - Add Grid Layout - Adjust the layout by setting column widths and adding additional sections - Row configurations - Rows are predefined cells arranged horizontally - Add row configuration - Adjust the row by setting cell widths and adding additional cells - Columns - Total combined number of columns in the grid layout - Settings - Configure what settings editors can change - Styles - Configure what styling editors can change - Allow all editors - Allow all row configurations + Obrázek + Makro + Vybrat typ obsahu + Vybrat rozvržení + Přidat řádek + Přidat obsah + Zahodit obsah + Nastavení aplikováno + Tento obsah zde není povolen + Tento obsah je zde povolen + Klepněte pro vložení + Klepnutím vložíte obrázek + Titulek obrázku... + Zde pište... + Rozvržení mřížky + Rozvržení je celková pracovní oblast pro editor mřížky, obvykle potřebujete pouze jedno nebo dvě různá rozvržení + Přidat rozvržení mřížky + Upravte rozvržení nastavením šířky sloupců a přidáním dalších sekcí + Konfigurace řádků + Řádky jsou předdefinované buňky uspořádané vodorovně + Přidat konfiguraci řádku + Upravte řádek nastavením šířky buněk a přidáním dalších buněk + Sloupce + Celkový počet sloupců v rozvržení mřížky + Nastavení + Nakonfigurujte, jaká nastavení mohou editoři změnit + Styly + Nakonfigurujte, co mohou editoři stylů změnit + Povolit všechny editory + Povolit všechny konfigurace řádků + Maximální počet položek + Nechte prázdné nebo nastavte na 0 pro neomezené + Nastavit jako výchozí + Vyberat navíc + Zvolit výchozí + jsou přidány + Varování + Odstraňujete konfiguraci řádku + + Odstranění názvu konfigurace řádku povede ke ztrátě dat pro veškerý existující obsah založený na této konfiguraci. + + + + Složení + Skupina + Nepřidali jste žádné skupiny + Přidat skupinu + Zděděno od + Přidat vlastnost + Požadovaný popisek + Povolit zobrazení seznamu + Nakonfiguruje položku obsahu tak, aby zobrazovala seznam svých potomků a seznam potomků, které je možné prohledávat, potomci se nebudou zobrazovat ve stromu + Povolené šablony + Vyberte, kteří editoři šablon mohou používat obsah tohoto typu + Povolit jako root + Povolit editorům vytvářet obsah tohoto typu v kořenovém adresáři stromu obsahu. + Povolené typy podřízených uzlů + Povolit vytváření obsahu zadaných typů pod obsahem tohoto typu. + Vybrat podřízený uzel + Zdědí záložky a vlastnosti z existujícího typu dokumentu. Nové záložky budou přidány do aktuálního typu dokumentu nebo sloučeny, pokud existuje záložka se stejným názvem. + Tento typ obsahu se používá ve složení, a proto jej nelze poskládat. + Nejsou k dispozici žádné typy obsahu, které lze použít jako složení. + Odebráním složení odstraníte všechna související data vlastností. Jakmile uložíte typ dokumentu, již není cesta zpět. + Vytvořit nové + Použít existující + Nastavení editoru + Konfigurace + Ano, smazat + bylo přesunuto pod + bylo zkopírováno pod + Vybrat složku, kterou chcete přesunout + Vybrat složku, kterou chcete kopírovat + ve stromové struktuře níže + Všechny typy dokumentů + Všechny dokumenty + Všechny média + použití tohoto typu dokumentu bude trvale smazáno, prosím potvrďte, že je chcete také odstranit. + použití tohoto typu média bude trvale smazáno, potvrďte, že je chcete také odstranit. + použití tohoto typu člena bude trvale smazáno, potvrďte, že je chcete také odstranit + a všechny dokumenty používající tento typ + a všechny mediální položky používající tento typ + a všichni členové používající tento typ + Člen může upravovat + Povolit editaci této vlastnosti členem na jeho stránce profilu + Obsahuje citlivá data + Skrýt tuto hodnotu vlastnosti před editory obsahu, kteří nemají přístup k prohlížení citlivých informací + Zobrazit v profilu člena + Povolit zobrazení této vlastnosti na stránce profilu člena + záložka nemá žádné řazení + Kde se toto složení používá? + Toto složení se v současnosti používá ve složení následujících typů obsahu: + Povolit různé jazyky + Povolit editorům vytvářet obsah tohoto typu v různých jazycích. + Povolit různé jazyky + Typ prvku + Je typ prvku + Typ prvku je určen k použití například ve vnořeném obsahu, nikoli ve stromu. + Jakmile byl typ dokumentu použit k vytvoření jedné nebo více položek obsahu, nelze jej změnit na typ prvku. + To neplatí pro typ prvku + V této vlastnosti jste provedli změny. Opravdu je chcete zahodit? + + + Přidat jazyk + Povinný jazyk + Před publikováním uzlu je nutné vyplnit vlastnosti v tomto jazyce. + Výchozí jazyk + Web Umbraco může mít nastaven pouze jeden výchozí jazyk. + Přepnutí výchozího jazyka může mít za následek chybějící výchozí obsah. + Nahradit nepřeložený obsah za + Žádné nahrazení nepřeloženého jazyka + Chcete-li povolit automatické zobrazení vícejazyčného obsahu v jiném jazyce, pokud není v požadovaném jazyce přeložen, vyberte jej zde. + Nahrazujicí jazyk + žádný + + + Přidat parametr + Upravit parametr + Zadejte název makra + Parametry + Definujte parametry, které by měly být k dispozici při použití tohoto makra. + Vyberte soubor makra pro částečnou šablonu + + + Stavební modely + to může chvíli trvat, nebojte se + Generované modely + Modely nelze vygenerovat + Generování modelů selhalo, viz výjimka v logu Umbraca + Přidat záložní pole + Náhradní pole + Přidat výchozí hodnotu + Výchozí hodnota Alternativní pole Alternativní text Velká a malá písmena Kódování Vybrat pole - Konvertovat + Konvertovat + Ano, převést konce řádků Nahrazuje nové řádky html tagem <br> Vlastní pole Ano, pouze datum + Formát a kódování Formátovat jako datum + Naformátuje hodnotu jako datum nebo datum s časem podle aktivního jazyka HTML kódování Nahradí speciální znaky jejich HTML ekvivalentem. Bude vloženo za hodnotou pole Bude vloženo před hodnotou pole Malá písmena + Upravit výstup Nic + Ukázka výstupu Vložit za polem Vložit před polem Rekurzivní + Ano, udělej to rekurzivní + Oddělovač Standardní pole Velká písmena Kódování URL @@ -861,7 +1699,7 @@ Podrobnosti překladu - Stáhnout xml DTD + Stáhnout XML DTD Pole Zahrnout podstránky Žádní uživatelé překladatelé nebyli nalezeni. Vytvořte, prosím, překladatele před tím, než začnete posílat obsah k překladu Stránka '%0%' byla poslána k překladu @@ -892,6 +1730,9 @@ Nahrát xml překladu + Obsah + Šablony obsahu + Média Prohlížeč mezipaměti Koš Vytvořené balíčky @@ -909,8 +1750,11 @@ Role Typy členů Typy dokumentů + Typy vztahů/vazeb Balíčky Balíčky + Částečné šablony + Makra částečných šablon Instalovat z úložiště Instalovat Runway Moduly Runway @@ -918,9 +1762,14 @@ Skripty Stylopisy Šablony - Oprávnění Uživatele - Typy Uživatelů + Prohlížeč logu Uživatelé + Nastavení + Šablony + Třetí strana + + Oprávnění uživatele + Typy uživatelů Nová aktualizace je připrvena @@ -929,23 +1778,46 @@ Chyba při kontrole aktualizace. Zkontrolujte, prosím, trasovací zásobník pro další informace + Přístupy + Na základě přiřazených skupin a počátečních uzlů má uživatel přístup k následujícím uzlům + Přiřadit přístup Administrátor Pole kategorie + Uživatel byl vytvořen Změnit heslo + Změnit fotku Změnit heslo + nebyl uzamčen + Heslo nebylo změněno Potvrdit heslo Můžete změnit své heslo pro přístup do administrace Umbraca vyplněním formuláře níže a kliknutím na tlačítko 'Změnit Heslo' Kanál obsahu + Vytvořit dalšího uživatele + Vytvořte nové uživatele a udělte mu přístup do Umbraco. Po vytvoření nového uživatele bude vygenerováno heslo, které s ním můžete sdílet. Popis Deaktivovat uživatele Typ dokumentu Editor Výtah + Neúspěšné pokusy o přihlášení + Přejít na uživatelský profil + Přidáním skupin přidělte přístup a oprávnění + Pozvat dalšího uživatele + Pozvěte nové uživatele, a poskytněte jim přístup do Umbraco. Uživatelům bude zaslán e-mail s pozvánkou a s informacemi o tom, jak se přihlásit do Umbraco. Pozvánky mají platnost 72 hodin. Jazyk + Nastavte jazyk, který uvidíte v nabídkách a dialogových oknech + Poslední datum uzamčení + Poslední přihlášení + Heslo bylo naposledy změněno Přihlašovací jméno Úvodní uzel v knihovně medií + Omezte knihovnu médií na konkrétní počáteční uzel + Úvodní uzly v knihovně medií + Omezte knihovnu médií na konkrétní počáteční uzly Sekce Deaktivovat přistup k Umbracu + se dosud nepřihlásil + Staré heslo Heslo Resetovat heslo Vyše heslo bylo změněno! @@ -959,13 +1831,526 @@ Nahradit oprávnění podřízených uzlů Nyní měníte oprávnění pro stránky: Vyberte stránky, pro které chcete měnit oprávnění + Odebrat fotografii + Výchozí oprávnění + Upřesnění oprávnění + Nastavte oprávnění pro konkrétní uzly + Profil Prohledat všechny podřízené uzly + Přidejte sekce, do kterých mají uživatelé přístup + Vybrat skupiny uživatelů + Nebyl vybrán žádný počáteční uzel + Nebyly vybrány žádné počáteční uzly Úvodní uzel v obsahu + Omezte strom obsahu na konkrétní počáteční uzel + Úvodní uzly obsahu + Omezte strom obsahu na konkrétní počáteční uzly + Uživatel byl naposledy aktualizován + byl vytvořen + Nový uživatel byl úspěšně vytvořen. Pro přihlášení do Umbraco použijte heslo níže. + Správa uživatelů Uživatelské jméno Oprávnění uživatele + Uživatelská skupina + byl pozván + Novému uživateli byla zaslána pozvánka s informacemi, jak se přihlásit do Umbraco. + Dobrý den, vítejte v Umbraco! Za pouhou 1 minutu budete moci používat Umbraco. Jenom od vás potřebujeme, abyste si nastavili heslo a přidali obrázek pro svůj avatar. + Vítejte v Umbraco! Vaše pozvánka bohužel vypršela. Obraťte se na svého správce a požádejte jej, aby jí znovu odeslal. + Nahrání vaší fotografie usnadní ostatním uživatelům, aby vás poznali. Kliknutím na kruh výše nahrajte svou fotku. Spisovatel + Změnit Váš profil Vaše nedávná historie Relace vyprší za + Pozvat uživatele + Vytvořit uživatele + Odeslat pozvánku + Zpět na seznam uživatelů + Umbraco: Pozvánka + + + + + + + + + + + +
+ + + + + +
+ +
+ +
+
+ + + + + + +
+
+
+ + + + +
+ + + + +
+

+ Zdravím Vás, %0%, +

+

+ Byli jste pozváni %1% do CMS Umbraco. +

+

+ Zpráva od %1%: +
+ %2% +

+ + + + + + +
+ + + + + + +
+ + Kliknutím na tento odkaz přijměte pozvání + +
+
+

Pokud nemůžete kliknout na odkaz, zkopírujte a vložte tuto adresu URL do okna prohlížeče:

+ + + + +
+ + %3% + +
+

+
+
+


+
+
+ + ]]>
+ Pozvat + Zasílám pozvání... + Smazat uživatele + Opravdu chcete smazat tento uživatelský účet? + Vše + Aktivní + Zakázané + Uzamčeno + Pozváno + Neaktivní + Jméno (A-Z) + Jméno (Z-A) + Nejnovější + Nejstarší + Poslední přihlášení + Nebyly přidány žádné skupiny uživatelů + + + Validace + Ověřit jako e-mailovou adresu + Ověřit jako číslo + Ověřit jako URL + ...nebo zadat vlastní ověření + Pole je povinné + Zadat chybovou zprávu pro vlastní validaci (volitelné) + Zadat regulární výraz + Zadat chybovou zprávu pro vlastní validaci (volitelné) + Musíte přidat alespoň + Můžete jen mít + položky + vybrané položky + Neplatné datum + Není číslo + Neplatný e-mail + Hodnota nemůže být nulová + Hodnota nemůže být prázdná + Hodnota je neplatná, neodpovídá správnému vzoru + Vlastní ověření + %1% více.]]> + %1% příliš mnoho.]]> + + + + Hodnota je nastavena na doporučenou hodnotu: '%0%'. + Hodnota byla nastavena na '%1%' pro XPath '%2%' v konfiguračním souboru '%3%'. + Očekávaná hodnota '%1%' pro '%2%' v konfiguračním souboru '%3%', ale nalezeno '%0%'. + Nalezena neočekávaná hodnota '%0%' pro '%2%' v konfiguračním souboru '%3%'. + + Vlastní chyby jsou nastaveny na '%0%'. + Vlastní chyby jsou aktuálně nastaveny na '%0%'. Před nasazením se doporučuje nastavit na '%1%'. + Vlastní chyby byly úspěšně nastaveny na '%0%'. + MacroErrors jsou nastaveny na '%0%'. + MakroErrors jsou nastaveny na '%0%', což zabrání úplnému načtení některých nebo všech stránek na vašem webu, pokud dojde k chybám v makrech. Náprava nastaví hodnotu na '%1%'. + MakroErrors jsou nyní nastaveny na '%0%'. + + Try Skip IIS Custom Errors je nastaveno na '%0%' a používáte verzi IIS '%1%'. + Try Skip IIS Custom Errors je aktuálně nastaveno na '%0%'. Doporučuje se nastavit %1% pro vaši verzi služby IIS (%2%). + Try Skip IIS Custom Errors úspěšně nastaveno na '%0%'. + + Soubor neexistuje: '%0%'. + '% 0%' v konfiguračním souboru '% 1%'.]]> + Došlo k chybě, zkontrolujte ji v logu: %0%. + Databáze - Databázové schéma je pro tuto verzi Umbraco správné + Bylo zjištěno %0% problémů se schématem vaší databáze (podrobnosti najdete v logu) + Při ověřování databázového schématu vůči aktuální verzi Umbraco byly zjištěny některé chyby. + Certifikát vašeho webu je platný. + Chyba ověření certifikátu: '%0%' + Platnost SSL certifikátu vašeho webu vypršela. + Platnost certifikátu SSL vašeho webu vyprší za %0% dní. + Chyba při pingování adresy URL %0% - '%1%' + Aktuálně prohlížíte web pomocí schématu HTTPS. + AppSetting 'Umbraco.Core.UseHttps' je v souboru web.config nastaven na 'false'. Jakmile vstoupíte na tento web pomocí schématu HTTPS, mělo by být nastaveno na 'true'. + AppSetting 'Umbraco.Core.UseHttps' je v souboru web.config nastaven na '%0%', vaše cookies %1% jsou označeny jako zabezpečené. + V souboru web.config se nepodařilo aktualizovat nastavení 'Umbraco.Core.UseHttps'. Chyba: %0% + + Povolit HTTPS + Nastaví nastavení umbracoSSL na true v appSettings v souboru web.config. + AppSetting 'Umbraco.Core.UseHttps' je nyní nastaveno na 'true' v souboru web.config, vaše cookies budou označeny jako zabezpečené. + Fix + Nelze opravit kontrolu pro porovnání hodnot pomocí 'ShouldNotEqual'. + Nelze opravit kontrolu pro porovnání hodnot pomocí 'ShouldEqual' s poskytnutou hodnotou. + Hodnota k opravě nebyla poskytnuta. + Režim kompilace ladění je zakázán. + Režim ladění je aktuálně povolen. Před spuštěním webu se doporučuje toto nastavení deaktivovat. + Režim ladění byl úspěšně deaktivován. + Režim sledování je deaktivován. + Režim sledování je aktuálně povolen. Před spuštěním se doporučuje toto nastavení deaktivovat. + Režim sledování byl úspěšně deaktivován. + Všechny složky mají nastavena správná oprávnění. + + %0%.]]> + %0%. Pokud nejsou psány, není třeba podniknout žádné kroky.]]> + Všechny soubory mají nastavena správná oprávnění. + + %0%.]]> + %0%. Pokud nejsou psány, není třeba podniknout žádné kroky.]]> + X-Frame-Options, které určuje, zda může být obsah webu zobrazen na jiném webu pomocí IFRAME.]]> + X-Frame-Options, které určuje, zda může být obsah webu zobrazen na jiném webu pomocí IFRAME.]]> + Nastavit záhlaví v Konfiguraci + Přidá hodnotu do sekce httpProtocol/customHeaders do web.config, aby se zabránilo tomu, že web může být zobrazen na jiném webu pomocí IFRAME. + Do souboru web.config bylo přidáno nastavení pro vytvoření záhlaví, které zabrání jinému webu, zobrazit tento web pomocí IFRAME. + Nelze aktualizovat soubor web.config. Chyba: %0% + X-Content-Type-Options použitá k ochraně před zranitelnostmi čichání MIME.]]> + X-Content-Type-Options použité k ochraně před zranitelnostmi čichání MIME nebyly nalezeny.]]> + Přidá hodnotu do sekce httpProtocol/customHeaders v souboru web.config, která chrání před zranitelnostmi MIME. + Do souboru web.config bylo přidáno nastavení pro vytvoření záhlaví, které chrání před zranitelnostmi MIME. + Strict-Transport-Security, také známo jako HSTS-header, bylo nalezeno.]]> + Strict-Transport-Security nebylo nalezeno.]]> + Do sekce httpProtocol/customHeaders v souboru web.config přidá záhlaví 'Strict-Transport-Security' s hodnotou 'max-age = 10886400'. Tuto opravu použijte pouze v případě, že vaše domény budou spuštěny s https po dobu příštích 18 týdnů (minimálně). + Do vašeho souboru web.config bylo přidáno záhlaví HSTS. + X-XSS-Protection bylo nalezeno.]]> + X-XSS-Protection bylo nalezeno.]]> + Přidá záhlaví 'X-XSS-Protection' s hodnotou '1; mode=block' do sekce httpProtocol/customHeaders v souboru web.config. + Záhlaví X-XSS-Protection bylo přidáno do vašeho souboru web.config. + + %0%.]]> + Nebyly nalezeny žádné hlavičky odhalující informace o technologii webových stránek. + V souboru Web.config nelze najít system.net/mailsettings. + V části system.net/mailsettings v souboru web.config není hostitel nakonfigurován. + Nastavení SMTP jsou správně nakonfigurována a služba funguje jak má. + Server SMTP konfigurovaný s hostitelem '%0%' a portem '%1%' nelze nalézt. Zkontrolujte prosím, zda jsou nastavení SMTP v souboru Web.config a v sekci system.net/mailsettings správná. + %0%.]]> + %0%.]]> +

Výsledky plánovaných kontrol Umbraco Health Checks provedených na %0% v %1% jsou následující:

%2%]]>
+ Stav Umbraco Health Check: %0% + Zkontrolovat všechny skupiny + Zkontrolovat skupinu + + Kontrola vyhodnocuje různé oblasti vašeho webu z hlediska nastavení osvědčených postupů, konfigurace, potenciálních problémů atd. Problémy lze snadno vyřešit stisknutím tlačítka. Můžete přidat své vlastní kontroly, podívejte se na dokumentaci pro více informací o vlastních kontrolách.

+ ]]> +
+ + + Zakázat sledování URL + Povolit sledování URL + Jazyk + Originální URL + Přesměrováno na + Správa URL přesměrování + Na tuto položku obsahu přesměrovávají následující adresy URL: + Nebyla provedena žádná přesměrování + Jakmile bude publikovaná stránka přejmenována nebo přesunuta, bude automaticky provedeno přesměrování na novou stránku. + Opravdu chcete odstranit přesměrování z '%0%' na '%1%'? + Přesměrování bylo odstraněno. + Chyba při odebírání URL přesměrování. + Toto odstraní přesměrování + Opravdu chcete zakázat sledování URL adres? + Sledování URL adres je nyní zakázáno. + Při deaktivaci sledování URL adres došlo k chybě, další informace naleznete v logu. + Sledování URL adres je nyní povoleno. + Chyba při povolení sledování URL adres, další informace lze nalézt v logu. + + + Žádné položky ze slovníku na výběr + + + %0% znaků.]]> + %1% je moc.]]> + + + Obsah s ID: {0} v koši souvisí s původním nadřazeným obsahem s ID: {1} + Média s ID: {0} v koši souvisí s původním nadřazeným médiem s ID: {1} + Tuto položku nelze automaticky obnovit + Neexistuje žádné místo, kde lze tuto položku automaticky obnovit. Položku můžete přesunout ručně pomocí stromu níže. + byla obnovena pod + + + Směr + Nadřazený s potomkem + Obousměrný + Nadřazená + Potomek + Počet + Vazby + Vytvořeno + Komentář + Název + Žádné vazby pro tento typ vazby. + Typ vazby + Vazby + + + Začínáme + Správa přesměrování + Obsah + Vítejte + Správa Examine + Stav publikování + Tvůrce modelů + Health Check + Profilování + Začínáme + Instalovat Umbraco formuláře + + + Jít zpět + Aktivní rozvržení: + Skočit do + skupina + prošlo + varování + selhalo + návrh + Kontrola prošla + Kontrola selhala + Otevřít hledání v backoffice + Otevřít/zavřít nápovědu backoffice + Otevřít/zavřít možnosti vašeho profilu + Otevřít kontextové menu pro + Aktuální jazyk + Přepnout jazyk na + Vytvořit novou složku + Částečná šablona + Makro částečné šablony + Člen + Datový typ + Prohledat přesměrování + Prohledat skupiny uživatelů + Prohledat uživatele + Vytvořit položku + Vytvořit + Upravit + Název + + + Závislosti + Tento datový typ nemá žádné závislosti. + Použito v dokumentových typech + Žádné vazby na typy dokumentů. + Použito v typech médií + Žádné vazby na typy médií. + Použito v typech členů + Žádné vazby na typy členů. + Použito v + Použito v dokumentech + Použito ve členech + Použito v médiích + + + Úrovně logování + Uložená vyhledávání + Celkem položek + Časové razítko + Úroveň + Stroj + Zpráva + Výjimka + Vlastnosti + Vyhledat na Googlu + Vyhledat zprávu na Googlu + Vyhledat na Bing + Vyhledat zprávu na Bing + Prohledat naše Umbraco + Vyhledat tuto zprávu na našich fórech a dokumentech Umbraco + Vyhledat Our Umbraco na Googlu + Prohledat Our Umbraco fóra pomocí Googlu + Prohledat Umbraco Source + Vyhledat ve zdrojovém kódu Umbraco na Github + Prohledat Umbraco Issues + Prohledat Umbraco Issues na Github + Smazat toto vyhledávání + Najít logy s ID požadavku + Najít logy se jmenným prostorem + Najít logy s názvem stroje + Otevřít + + + Kopírovat %0% + %0% z %1% + Odebrat všechny položky + + + Otevřít akce vlastností + + + Čekejte + Stav obnovení + Cache paměť + + + + Znovu načíst + Cache databáze + + Znovuvytvoření může být náročné. Použijte jej, když nestačí obnovení stránky, a domníváte se, že mezipaměť databáze nebyla správně vygenerována - což by naznačovalo možný kritický problém Umbraco. + ]]> + + Obnovit + Internals + + nebudete muset používat. + ]]> + + Sběr + Stav publikované mezipaměti + Mezipaměti + + + Profilování výkonu + + Umbraco aktuálně běží v režimu ladění. To znamená, že můžete použít vestavěný profiler výkonu k vyhodnocení výkonu při vykreslování stránek.

Pokud chcete aktivovat profiler pro konkrétní vykreslení stránky, jednoduše při požadavku na stránku jednoduše přidejte umbDebug=true do URL.

Pokud chcete, aby byl profiler ve výchozím nastavení aktivován pro všechna vykreslení stránky, můžete použít přepínač níže. Ve vašem prohlížeči nastaví soubor cookie, který automaticky aktivuje profiler. Jinými slovy, profiler bude ve výchozím nastavení aktivní pouze ve vašem prohlížeči, ne v ostatních.

+ ]]> +
+ Ve výchozím stavu aktivovat profiler + Přátelské připomenutí + + + Nikdy byste neměli nechat produkční web běžet v režimu ladění. Režim ladění je vypnut nastavením debug="false" na elementu compilation v souboru web.config. +

+ ]]> +
+ + + Umbraco v současné době neběží v režimu ladění, takže nemůžete použít vestavěný profiler. Takto by to mělo být pro produkční web. +

+

+ Režim ladění je zapnut nastavením debug="true" na elementu compilation v souboru web.config. +

+ ]]> +
+ + + Hodiny tréninkových videí Umbraco jsou blíž než si myslíte + + Chcete ovládnout Umbraco? Stačí strávit pár minut sledování jednoho z těchto videí o používání Umbraco. Nebo navštivte umbraco.tv , kde najdete ještě více videí o Umbraco

+ ]]> +
+ Chcete-li začít + + + Začněte zde + Tato část obsahuje stavební bloky pro váš web Umbraco. Podle níže uvedených odkazů se dozvíte více o práci s položkami v části Nastavení + Zjistit více + + v sekci Dokumentace v Our Umbraco + ]]> + + + fóru komunity + ]]> + + + výuková videa (některá jsou zdarma, jiná vyžadují předplatné) + ]]> + + + nástrojích zvyšujících produktivitu a komerční podpoře + ]]> + + + školení a certifikace + ]]> + + + + Vítejte v přátelském CMS + Děkujeme, že jste si vybrali Umbraco - myslíme si, že by to mohl být začátek něčeho krásného. I když se to může zpočátku zdát ohromující, udělali jsme hodně pro to, aby byla křivka učení co nejhladší a nejrychlejší. + + + Umbraco formuláře + Vytvářejte formuláře pomocí intuitivního rozhraní drag and drop. Od jednoduchých kontaktních formulářů, které odesílají e-maily, až po pokročilé dotazníky, které se integrují do systémů CRM. Vaši klienti to budou milovat!
From 02a8beca2725c469edd71ed32c11dafb59c459c3 Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Fri, 1 May 2020 15:40:45 +0200 Subject: [PATCH 004/178] Replace umb-overlay using overlayService.ysod --- .../listview/listview.controller.js | 29 ++++++------------- .../propertyeditors/listview/listview.html | 7 ----- 2 files changed, 9 insertions(+), 27 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js index 16c1be98a0..18ff61608b 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js @@ -227,26 +227,21 @@ function listViewController($scope, $interpolate, $routeParams, $injector, $time if (err.status && err.status >= 500) { // Open ysod overlay - $scope.ysodOverlay = { - view: "ysod", - error: err, - show: true - }; + overlayService.ysod(err); } $timeout(function () { $scope.bulkStatus = ""; $scope.actionInProgress = false; - }, - 500); + }, 500); - if (successMsgPromise) { - localizationService.localize("bulk_done") - .then(function (v) { - successMsgPromise.then(function (successMsg) { - notificationsService.success(v, successMsg); - }) - }); + if (successMsgPromise) + { + localizationService.localize("bulk_done").then(function (v) { + successMsgPromise.then(function (successMsg) { + notificationsService.success(v, successMsg); + }) + }); } } @@ -271,7 +266,6 @@ function listViewController($scope, $interpolate, $routeParams, $injector, $time with simple values */ $scope.getContent = function (contentId) { - $scope.reloadView($scope.contentId, true); } @@ -327,8 +321,6 @@ function listViewController($scope, $interpolate, $routeParams, $injector, $time }); }; - - $scope.makeSearch = function() { if ($scope.options.filter !== null && $scope.options.filter !== undefined) { $scope.options.pageNumber = 1; @@ -408,7 +400,6 @@ function listViewController($scope, $interpolate, $routeParams, $injector, $time dialog.title = value; overlayService.open(dialog); }); - }; function performDelete() { @@ -704,8 +695,6 @@ function listViewController($scope, $interpolate, $routeParams, $injector, $time // set what we've got on the result result[alias] = value; }); - - } function isDate(val) { diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html index ee1847b430..2eed825c7a 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html @@ -230,11 +230,4 @@ - - - From 1d6849c578418bc6d9255b38011af8a9531239d5 Mon Sep 17 00:00:00 2001 From: Ronald Barendse Date: Tue, 9 Jun 2020 15:12:09 +0200 Subject: [PATCH 005/178] Return null in IsValue for PropertyValueLevel.Inter and Object --- .../PropertyEditors/PropertyValueConverterBase.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs b/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs index 3b6ebc610c..1764b4b012 100644 --- a/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs +++ b/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs @@ -17,6 +17,10 @@ namespace Umbraco.Core.PropertyEditors { case PropertyValueLevel.Source: return value != null && (!(value is string) || string.IsNullOrWhiteSpace((string) value) == false); + case PropertyValueLevel.Inter: + return null; + case PropertyValueLevel.Object: + return null; default: throw new NotSupportedException($"Invalid level: {level}."); } From c3e58df3b5f06f517a455f09629d30b66f21d173 Mon Sep 17 00:00:00 2001 From: Ronald Barendse Date: Thu, 11 Jun 2020 00:45:12 +0200 Subject: [PATCH 006/178] Obsolete HasValue method --- .../PropertyEditors/PropertyValueConverterBase.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs b/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs index 1764b4b012..57474eb2e1 100644 --- a/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs +++ b/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs @@ -16,7 +16,9 @@ namespace Umbraco.Core.PropertyEditors switch (level) { case PropertyValueLevel.Source: - return value != null && (!(value is string) || string.IsNullOrWhiteSpace((string) value) == false); + // the default implementation uses the old magic null & string comparisons, + // other implementations may be more clever, and/or test the final converted object values + return value != null && (!(value is string) || string.IsNullOrWhiteSpace((string)value) == false); case PropertyValueLevel.Inter: return null; case PropertyValueLevel.Object: @@ -26,16 +28,15 @@ namespace Umbraco.Core.PropertyEditors } } + [Obsolete("This method is not part of the IPropertyValueConverter contract and therefore not used, use IsValue instead.")] public virtual bool HasValue(IPublishedProperty property, string culture, string segment) { - // the default implementation uses the old magic null & string comparisons, - // other implementations may be more clever, and/or test the final converted object values var value = property.GetSourceValue(culture, segment); - return value != null && (!(value is string) || string.IsNullOrWhiteSpace((string) value) == false); + return value != null && (!(value is string) || string.IsNullOrWhiteSpace((string)value) == false); } public virtual Type GetPropertyValueType(IPublishedPropertyType propertyType) - => typeof (object); + => typeof(object); public virtual PropertyCacheLevel GetPropertyCacheLevel(IPublishedPropertyType propertyType) => PropertyCacheLevel.Snapshot; From eac6351c3f0336e8531d6c75126aa39c47dd5add Mon Sep 17 00:00:00 2001 From: Ronald Barendse Date: Thu, 11 Jun 2020 00:49:44 +0200 Subject: [PATCH 007/178] Simplified value check using type pattern matching --- .../PropertyEditors/PropertyValueConverterBase.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs b/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs index 57474eb2e1..be8b0619f5 100644 --- a/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs +++ b/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs @@ -18,7 +18,7 @@ namespace Umbraco.Core.PropertyEditors case PropertyValueLevel.Source: // the default implementation uses the old magic null & string comparisons, // other implementations may be more clever, and/or test the final converted object values - return value != null && (!(value is string) || string.IsNullOrWhiteSpace((string)value) == false); + return value != null && (!(value is string stringValue) || !string.IsNullOrWhiteSpace(stringValue)); case PropertyValueLevel.Inter: return null; case PropertyValueLevel.Object: @@ -32,7 +32,7 @@ namespace Umbraco.Core.PropertyEditors public virtual bool HasValue(IPublishedProperty property, string culture, string segment) { var value = property.GetSourceValue(culture, segment); - return value != null && (!(value is string) || string.IsNullOrWhiteSpace((string)value) == false); + return value != null && (!(value is string stringValue) || !string.IsNullOrWhiteSpace(stringValue)); } public virtual Type GetPropertyValueType(IPublishedPropertyType propertyType) From 249b3b8609b70cad305e7accffe6b2f0203ad3ca Mon Sep 17 00:00:00 2001 From: Ronald Barendse Date: Thu, 11 Jun 2020 00:49:59 +0200 Subject: [PATCH 008/178] Update XML documentation --- .../PropertyEditors/PropertyValueConverterBase.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs b/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs index be8b0619f5..4724295b3f 100644 --- a/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs +++ b/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs @@ -4,13 +4,16 @@ using Umbraco.Core.Models.PublishedContent; namespace Umbraco.Core.PropertyEditors { /// - /// Provides a default overridable implementation for that does nothing. + /// Provides a default implementation for . /// + /// public abstract class PropertyValueConverterBase : IPropertyValueConverter { + /// public virtual bool IsConverter(IPublishedPropertyType propertyType) => false; + /// public virtual bool? IsValue(object value, PropertyValueLevel level) { switch (level) @@ -35,18 +38,23 @@ namespace Umbraco.Core.PropertyEditors return value != null && (!(value is string stringValue) || !string.IsNullOrWhiteSpace(stringValue)); } + /// public virtual Type GetPropertyValueType(IPublishedPropertyType propertyType) => typeof(object); + /// public virtual PropertyCacheLevel GetPropertyCacheLevel(IPublishedPropertyType propertyType) => PropertyCacheLevel.Snapshot; + /// public virtual object ConvertSourceToIntermediate(IPublishedElement owner, IPublishedPropertyType propertyType, object source, bool preview) => source; + /// public virtual object ConvertIntermediateToObject(IPublishedElement owner, IPublishedPropertyType propertyType, PropertyCacheLevel referenceCacheLevel, object inter, bool preview) => inter; + /// public virtual object ConvertIntermediateToXPath(IPublishedElement owner, IPublishedPropertyType propertyType, PropertyCacheLevel referenceCacheLevel, object inter, bool preview) => inter?.ToString() ?? string.Empty; } From 78cba26afe8541d520cfab44c4f8287d2b1c68e0 Mon Sep 17 00:00:00 2001 From: Dan Russell <4387475+dangrussell@users.noreply.github.com> Date: Tue, 16 Jun 2020 10:12:22 -0400 Subject: [PATCH 009/178] Update variables.less Replace "0px" with unitless 0 --- src/Umbraco.Web.UI.Client/src/less/variables.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/less/variables.less b/src/Umbraco.Web.UI.Client/src/less/variables.less index d94e4e1fb1..4bb2cd0343 100644 --- a/src/Umbraco.Web.UI.Client/src/less/variables.less +++ b/src/Umbraco.Web.UI.Client/src/less/variables.less @@ -515,7 +515,7 @@ // ------------------------- @gridColumns: 12; @gridColumnWidth: 60px; -@gridGutterWidth: 0px; +@gridGutterWidth: 0; @gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1)); // 1200px min From f5e4bef5311b299e7e48a9fb10a181f5544b9adc Mon Sep 17 00:00:00 2001 From: Emma Garland Date: Mon, 6 Jul 2020 11:45:47 +0100 Subject: [PATCH 010/178] Added initial Cypress test for BackOffice tour. --- .../integration/Tour/backofficeTour.ts | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/Umbraco.Tests.AcceptanceTest/cypress/integration/Tour/backofficeTour.ts diff --git a/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Tour/backofficeTour.ts b/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Tour/backofficeTour.ts new file mode 100644 index 0000000000..ed891a2eea --- /dev/null +++ b/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Tour/backofficeTour.ts @@ -0,0 +1,49 @@ +/// +context('Backoffice Tour', () => { + + beforeEach(() => { + cy.umbracoLogin(Cypress.env('username'), Cypress.env('password')); + }); + + it('Backoffice introduction tour should run', () => { + //arrange + cy.umbracoGlobalHelp().should("be.visible"); + + //act + cy.umbracoGlobalHelp().click() + //assert + cy.get('[data-element="help-tours"]').should("be.visible"); + //act + cy.get('[data-element="help-tours"]').click(); + //assert + cy.get('[data-element="tour-umbIntroIntroduction"] .umb-button').should("be.visible"); + //act + cy.get('[data-element="tour-umbIntroIntroduction"] .umb-button').click(); + //assert + cy.get('.umb-tour-step', { timeout: 60000 }).should('be.visible'); + cy.get('.umb-tour-step__footer').should('be.visible'); + cy.get('.umb-tour-step__counter').should('be.visible'); + + for(let i=1;i<7;i++){ + cy.get('.umb-tour-step__counter').contains(i + '/12'); + cy.get('.umb-tour-step__footer .umb-button').should('be.visible').click(); + } + cy.umbracoGlobalUser().click() + cy.get('.umb-tour-step__counter').contains('8/12'); + cy.get('.umb-tour-step__footer .umb-button').should('be.visible').click(); + cy.get('.umb-tour-step__counter').contains('9/12'); + cy.get('.umb-overlay-drawer__align-right .umb-button').should('be.visible').click(); + cy.get('.umb-tour-step__counter').contains('10/12'); + cy.umbracoGlobalHelp().click() + + for(let i=11;i<13;i++){ + cy.get('.umb-tour-step__counter').contains(i + '/12'); + cy.get('.umb-tour-step__footer .umb-button').should('be.visible').click(); + } + cy.get('.umb-tour-step__footer .umb-button').should('be.visible').click(); + + //assert + cy.umbracoGlobalHelp().should("be.visible"); + cy.get('[data-element="help-tours"] .umb-progress-circle').contains('17%'); + }); +}); From 872731f72685a8284940117b29be2b4a24cd1c81 Mon Sep 17 00:00:00 2001 From: Ronald Barendse Date: Tue, 7 Jul 2020 23:30:34 +0200 Subject: [PATCH 011/178] Update HasValue obsolete message --- src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs b/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs index 4724295b3f..2ec0438328 100644 --- a/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs +++ b/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs @@ -31,7 +31,7 @@ namespace Umbraco.Core.PropertyEditors } } - [Obsolete("This method is not part of the IPropertyValueConverter contract and therefore not used, use IsValue instead.")] + [Obsolete("This method is not part of the IPropertyValueConverter contract, therefore not used and will be removed in future versions; use IsValue instead.")] public virtual bool HasValue(IPublishedProperty property, string culture, string segment) { var value = property.GetSourceValue(culture, segment); From 77a4b2af8bddc389c9a2a1ac46397d8865c100f9 Mon Sep 17 00:00:00 2001 From: Ismail Mayat Date: Wed, 8 Jul 2020 14:23:55 +0100 Subject: [PATCH 012/178] fix for 8192 make call to add missing bits to userdto (#8399) --- .../Repositories/Implement/UserRepository.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/UserRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Implement/UserRepository.cs index 3be5102b83..3d96d94413 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/UserRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/Implement/UserRepository.cs @@ -151,7 +151,7 @@ SELECT '4CountOfLockedOut' AS colName, COUNT(id) AS num FROM umbracoUser WHERE u UNION SELECT '5CountOfInvited' AS colName, COUNT(id) AS num FROM umbracoUser WHERE lastLoginDate IS NULL AND userDisabled = 1 AND invitedDate IS NOT NULL UNION -SELECT '6CountOfDisabled' AS colName, COUNT(id) AS num FROM umbracoUser WHERE userDisabled = 0 AND userNoConsole = 0 AND lastLoginDate IS NULL +SELECT '6CountOfDisabled' AS colName, COUNT(id) AS num FROM umbracoUser WHERE userDisabled = 0 AND userNoConsole = 0 AND lastLoginDate IS NULL ORDER BY colName"; var result = Database.Fetch(sql); @@ -562,9 +562,9 @@ ORDER BY colName"; { userDto.EmailConfirmedDate = null; userDto.SecurityStampToken = entity.SecurityStamp = Guid.NewGuid().ToString(); - + changedCols.Add("emailConfirmedDate"); - changedCols.Add("securityStampToken"); + changedCols.Add("securityStampToken"); } //only update the changed cols @@ -693,7 +693,13 @@ ORDER BY colName"; else sql.WhereNotIn(x => x.Id, inSql); - return ConvertFromDtos(Database.Fetch(sql)); + + var dtos = Database.Fetch(sql); + + //adds missing bits like content and media start nodes + PerformGetReferencedDtos(dtos); + + return ConvertFromDtos(dtos); } /// From ffb53109bcc719c69b314b02e53bc3917757437c Mon Sep 17 00:00:00 2001 From: Ismail Mayat Date: Thu, 9 Jul 2020 08:13:05 +0100 Subject: [PATCH 013/178] 8192 with integration test (#8403) --- .../Services/UserServiceTests.cs | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/src/Umbraco.Tests/Services/UserServiceTests.cs b/src/Umbraco.Tests/Services/UserServiceTests.cs index 016085c352..0bac25b297 100644 --- a/src/Umbraco.Tests/Services/UserServiceTests.cs +++ b/src/Umbraco.Tests/Services/UserServiceTests.cs @@ -7,6 +7,7 @@ using System.Threading; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Exceptions; +using Umbraco.Core.Models; using Umbraco.Core.Models.Membership; using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Tests.TestHelpers.Entities; @@ -968,16 +969,72 @@ namespace Umbraco.Tests.Services Assert.That(updatedItem.AllowedSections.Count(), Is.EqualTo(originalUser.AllowedSections.Count())); } + [Test] + public void Can_Get_Assigned_StartNodes_For_User() + { + var startContentItems = BuildContentItems(3); + + var testUserGroup = CreateTestUserGroup(); + + var userGroupId = testUserGroup.Id; + + CreateTestUsers(startContentItems.Select(x => x.Id).ToArray(), testUserGroup, 3); + + var usersInGroup = ServiceContext.UserService.GetAllInGroup(userGroupId); + + foreach (var user in usersInGroup) + Assert.AreEqual(user.StartContentIds.Length, startContentItems.Length); + } + + private Content[] BuildContentItems(int numberToCreate) + { + var contentType = MockedContentTypes.CreateSimpleContentType(); + + ServiceContext.ContentTypeService.Save(contentType); + + var startContentItems = new List(); + + for (var i = 0; i < numberToCreate; i++) + startContentItems.Add(MockedContent.CreateSimpleContent(contentType)); + + ServiceContext.ContentService.Save(startContentItems); + + return startContentItems.ToArray(); + } + private IUser CreateTestUser(out IUserGroup userGroup) { userGroup = CreateTestUserGroup(); var user = ServiceContext.UserService.CreateUserWithIdentity("test1", "test1@test.com"); + user.AddGroup(userGroup.ToReadOnlyGroup()); + ServiceContext.UserService.Save(user); + return user; } + private List CreateTestUsers(int[] startContentIds, IUserGroup userGroup, int numberToCreate) + { + var users = new List(); + + for (var i = 0; i < numberToCreate; i++) + { + var user = ServiceContext.UserService.CreateUserWithIdentity($"test{i}", $"test{i}@test.com"); + user.AddGroup(userGroup.ToReadOnlyGroup()); + + var updateable = (User)user; + updateable.StartContentIds = startContentIds; + + ServiceContext.UserService.Save(user); + + users.Add(user); + } + + return users; + } + private UserGroup CreateTestUserGroup(string alias = "testGroup", string name = "Test Group") { var userGroup = new UserGroup From 327d5ae7fb5bd10ad80fed11db29b10794f7139d Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Thu, 9 Jul 2020 16:04:43 +0200 Subject: [PATCH 014/178] Adjust nested content overlay (#8044) --- .../nestedcontent/nestedcontent.controller.js | 72 +++++++++---------- .../nestedcontent.propertyeditor.html | 8 --- 2 files changed, 34 insertions(+), 46 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.controller.js index fad68acbee..e4812360d7 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.controller.js @@ -167,8 +167,6 @@ isDisabled: true } - - // helper to force the current form into the dirty state function setDirty() { if ($scope.$parent.$parent.propertyForm) { @@ -187,17 +185,28 @@ }; vm.openNodeTypePicker = function ($event) { - if (vm.overlayMenu || vm.nodes.length >= vm.maxItems) { + + if (vm.nodes.length >= vm.maxItems) { return; } - vm.overlayMenu = { - show: false, - style: {}, - filter: vm.scaffolds.length > 12 ? true : false, + var availableItems = []; + _.each(vm.scaffolds, function (scaffold) { + availableItems.push({ + alias: scaffold.contentTypeAlias, + name: scaffold.contentTypeName, + icon: iconHelper.convertFromLegacyIcon(scaffold.icon) + }); + }); + + const dialog = { + view: "itempicker", orderBy: "$index", view: "itempicker", event: $event, + filter: availableItems.length > 12, + size: availableItems.length > 6 ? "medium" : "small", + availableItems: availableItems, clickPasteItem: function (item) { if (item.type === "elementTypeArray") { _.each(item.data, function (entry) { @@ -206,44 +215,30 @@ } else { pasteFromClipboard(item.data); } - vm.overlayMenu.show = false; - vm.overlayMenu = null; + + overlayService.close(); }, submit: function (model) { if (model && model.selectedItem) { addNode(model.selectedItem.alias); } - vm.overlayMenu.show = false; - vm.overlayMenu = null; + + overlayService.close(); }, close: function () { - vm.overlayMenu.show = false; - vm.overlayMenu = null; + overlayService.close(); } }; - // this could be used for future limiting on node types - vm.overlayMenu.availableItems = []; - _.each(vm.scaffolds, function (scaffold) { - vm.overlayMenu.availableItems.push({ - alias: scaffold.contentTypeAlias, - name: scaffold.contentTypeName, - icon: iconHelper.convertFromLegacyIcon(scaffold.icon), - tooltip: scaffold.documentType.description - }); - }); - - if (vm.overlayMenu.availableItems.length === 0) { + if (dialog.availableItems.length === 0) { return; } - vm.overlayMenu.size = vm.overlayMenu.availableItems.length > 6 ? "medium" : "small"; - - vm.overlayMenu.pasteItems = []; + dialog.pasteItems = []; var singleEntriesForPaste = clipboardService.retriveEntriesOfType("elementType", contentTypeAliases); _.each(singleEntriesForPaste, function (entry) { - vm.overlayMenu.pasteItems.push({ + dialog.pasteItems.push({ type: "elementType", name: entry.label, data: entry.data, @@ -253,7 +248,7 @@ var arrayEntriesForPaste = clipboardService.retriveEntriesOfType("elementTypeArray", contentTypeAliases); _.each(arrayEntriesForPaste, function (entry) { - vm.overlayMenu.pasteItems.push({ + dialog.pasteItems.push({ type: "elementTypeArray", name: entry.label, data: entry.data, @@ -261,26 +256,27 @@ }); }); - vm.overlayMenu.title = labels.grid_addElement; - vm.overlayMenu.hideHeader = vm.overlayMenu.pasteItems.length > 0; + dialog.title = dialog.pasteItems.length > 0 ? labels.grid_addElement : labels.content_createEmpty; - vm.overlayMenu.clickClearPaste = function ($event) { + dialog.clickClearPaste = function ($event) { $event.stopPropagation(); $event.preventDefault(); clipboardService.clearEntriesOfType("elementType", contentTypeAliases); clipboardService.clearEntriesOfType("elementTypeArray", contentTypeAliases); - vm.overlayMenu.pasteItems = [];// This dialog is not connected via the clipboardService events, so we need to update manually. - vm.overlayMenu.hideHeader = false; + dialog.pasteItems = [];// This dialog is not connected via the clipboardService events, so we need to update manually. + dialog.overlayMenu.hideHeader = false; }; - if (vm.overlayMenu.availableItems.length === 1 && vm.overlayMenu.pasteItems.length === 0) { + if (dialog.availableItems.length === 1 && dialog.pasteItems.length === 0) { // only one scaffold type - no need to display the picker addNode(vm.scaffolds[0].contentTypeAlias); - vm.overlayMenu = null; + + dialog.close(); + return; } - vm.overlayMenu.show = true; + overlayService.open(dialog); }; vm.editNode = function (idx) { diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.propertyeditor.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.propertyeditor.html index da6e466b50..c41df689d4 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.propertyeditor.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.propertyeditor.html @@ -64,12 +64,4 @@ - - - From 7b106ebefb15bc1530f829e1653c089c3fb25423 Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Thu, 9 Jul 2020 16:48:27 +0200 Subject: [PATCH 015/178] Adjust example for overlay in umb-child-selector (#8045) --- .../components/umbchildselector.directive.js | 30 +++++++++---------- .../views/components/umb-child-selector.html | 2 +- .../permissions/permissions.controller.js | 21 ++++++------- .../permissions/permissions.controller.js | 23 +++++++------- 4 files changed, 38 insertions(+), 38 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbchildselector.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbchildselector.directive.js index 96ce8735eb..9a841e3e4a 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbchildselector.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbchildselector.directive.js @@ -21,14 +21,6 @@ Use this directive to render a ui component for selecting child items to a paren on-remove="vm.removeChild"> - - - - @@ -37,7 +29,7 @@ Use this directive to render a ui component for selecting child items to a paren (function () { "use strict"; - function Controller() { + function Controller(overlayService) { var vm = this; @@ -64,23 +56,29 @@ Use this directive to render a ui component for selecting child items to a paren vm.removeChild = removeChild; function addChild($event) { - vm.overlay = { + + const dialog = { view: "itempicker", title: "Choose child", availableItems: vm.availableChildren, selectedItems: vm.selectedChildren, event: $event, - show: true, submit: function(model) { - - // add selected child - vm.selectedChildren.push(model.selectedItem); + + if (model.selectedItem) { + // add selected child + vm.selectedChildren.push(model.selectedItem); + } // close overlay - vm.overlay.show = false; - vm.overlay = null; + overlayService.close(); + }, + close: function() { + overlayService.close(); } }; + + overlayService.open(dialog); } function removeChild($index) { diff --git a/src/Umbraco.Web.UI.Client/src/views/components/umb-child-selector.html b/src/Umbraco.Web.UI.Client/src/views/components/umb-child-selector.html index 1d88c0eb96..f038b8c4aa 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/umb-child-selector.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/umb-child-selector.html @@ -3,7 +3,7 @@
- +
{{ parentName }} diff --git a/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/permissions/permissions.controller.js b/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/permissions/permissions.controller.js index da8dee8e03..94e0b443ca 100644 --- a/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/permissions/permissions.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/permissions/permissions.controller.js @@ -14,12 +14,9 @@ /* ----------- SCOPE VARIABLES ----------- */ var vm = this; - var childNodeSelectorOverlayTitle = ""; vm.contentTypes = []; vm.selectedChildren = []; - - vm.overlayTitle = ""; vm.showAllowSegmentationOption = Umbraco.Sys.ServerVariables.umbracoSettings.showAllowSegmentationForDocumentTypes || false; vm.addChild = addChild; @@ -65,16 +62,18 @@ } function addChild($event) { - var childNodeSelectorOverlay = { + + const dialog = { view: "itempicker", - title: childNodeSelectorOverlayTitle, availableItems: vm.contentTypes, selectedItems: vm.selectedChildren, position: "target", event: $event, - submit: function(model) { - vm.selectedChildren.push(model.selectedItem); - $scope.model.allowedContentTypes.push(model.selectedItem.id); + submit: function (model) { + if (model.selectedItem) { + vm.selectedChildren.push(model.selectedItem); + $scope.model.allowedContentTypes.push(model.selectedItem.id); + } overlayService.close(); }, close: function() { @@ -82,8 +81,10 @@ } }; - overlayService.open(childNodeSelectorOverlay); - + localizationService.localize("contentTypeEditor_chooseChildNode").then(value => { + dialog.title = value; + overlayService.open(dialog); + }); } function removeChild(selectedChild, index) { diff --git a/src/Umbraco.Web.UI.Client/src/views/mediatypes/views/permissions/permissions.controller.js b/src/Umbraco.Web.UI.Client/src/views/mediatypes/views/permissions/permissions.controller.js index 53a098a26e..7ff4793272 100644 --- a/src/Umbraco.Web.UI.Client/src/views/mediatypes/views/permissions/permissions.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/mediatypes/views/permissions/permissions.controller.js @@ -6,7 +6,6 @@ /* ----------- SCOPE VARIABLES ----------- */ var vm = this; - var childNodeSelectorOverlayTitle = ""; vm.mediaTypes = []; vm.selectedChildren = []; @@ -22,10 +21,6 @@ function init() { - localizationService.localize("contentTypeEditor_chooseChildNode").then(function(value){ - childNodeSelectorOverlayTitle = value; - }); - mediaTypeResource.getAll().then(function(mediaTypes){ vm.mediaTypes = mediaTypes; @@ -44,23 +39,29 @@ } function addChild($event) { - var childNodeSelectorOverlay = { + + var dialog = { view: "itempicker", - title: childNodeSelectorOverlayTitle, availableItems: vm.mediaTypes, selectedItems: vm.selectedChildren, position: "target", event: $event, - submit: function(model) { - vm.selectedChildren.push(model.selectedItem); - $scope.model.allowedContentTypes.push(model.selectedItem.id); + submit: function (model) { + if (model.selectedItem) { + vm.selectedChildren.push(model.selectedItem); + $scope.model.allowedContentTypes.push(model.selectedItem.id); + } overlayService.close(); }, close: function() { overlayService.close(); } }; - overlayService.open(childNodeSelectorOverlay); + + localizationService.localize("contentTypeEditor_chooseChildNode").then(value => { + dialog.title = value; + overlayService.open(dialog); + }); } function removeChild(selectedChild, index) { From 4bc1800d48e686c99f7c5313db14ea0b41bc6866 Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Thu, 9 Jul 2020 16:58:59 +0200 Subject: [PATCH 016/178] Use overlayService for user overlay (#8047) --- .../application/umbappheader.directive.js | 28 ++++++++----------- .../overlays/umboverlay.directive.js | 5 ++++ .../src/common/services/overlay.service.js | 11 ++++---- .../application/umb-app-header.html | 8 ------ .../components/overlays/umb-overlay.html | 2 +- .../Umbraco/Views/Default.cshtml | 2 ++ 6 files changed, 25 insertions(+), 31 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/application/umbappheader.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/application/umbappheader.directive.js index 8efaf0c024..b52b0a5763 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/application/umbappheader.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/application/umbappheader.directive.js @@ -1,7 +1,7 @@ (function () { "use strict"; - function AppHeaderDirective(eventsService, appState, userService, focusService, backdropService) { + function AppHeaderDirective(eventsService, appState, userService, focusService, backdropService, overlayService) { function link(scope, el, attr, ctrl) { @@ -71,21 +71,17 @@ }; scope.avatarClick = function () { - if (!scope.userDialog) { - backdropService.open(); - scope.userDialog = { - view: "user", - show: true, - close: function (oldModel) { - scope.userDialog.show = false; - scope.userDialog = null; - backdropService.close(); - } - }; - } else { - scope.userDialog.show = false; - scope.userDialog = null; - } + + const dialog = { + view: "user", + position: "right", + name: "overlay-user", + close: function () { + overlayService.close(); + } + }; + + overlayService.open(dialog); }; } diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/overlays/umboverlay.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/overlays/umboverlay.directive.js index ad396e7a9a..5a06edf617 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/overlays/umboverlay.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/overlays/umboverlay.directive.js @@ -221,6 +221,10 @@ Opens an overlay to show a custom YSOD.
$timeout(function () { + if (!scope.name) { + scope.name = 'overlay'; + } + if (scope.position === "target" && scope.model.event) { setTargetPosition(); @@ -530,6 +534,7 @@ Opens an overlay to show a custom YSOD.
view: "=", position: "@", size: "=?", + name: "=?", parentScope: "=?" }, link: link diff --git a/src/Umbraco.Web.UI.Client/src/common/services/overlay.service.js b/src/Umbraco.Web.UI.Client/src/common/services/overlay.service.js index 119f40e114..5e11d44bda 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/overlay.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/overlay.service.js @@ -15,7 +15,7 @@ function open(newOverlay) { // prevent two open overlays at the same time - if(currentOverlay) { + if (currentOverlay) { close(); } @@ -23,22 +23,22 @@ var overlay = newOverlay; // set the default overlay position to center - if(!overlay.position) { + if (!overlay.position) { overlay.position = "center"; } // set the default overlay size to small - if(!overlay.size) { + if (!overlay.size) { overlay.size = "small"; } // use a default empty view if nothing is set - if(!overlay.view) { + if (!overlay.view) { overlay.view = "views/common/overlays/default/default.html"; } // option to disable backdrop clicks - if(overlay.disableBackdropClick) { + if (overlay.disableBackdropClick) { backdropOptions.disableEventsOnClick = true; } @@ -85,7 +85,6 @@ } open(overlay); - } function confirmDelete(overlay) { diff --git a/src/Umbraco.Web.UI.Client/src/views/components/application/umb-app-header.html b/src/Umbraco.Web.UI.Client/src/views/components/application/umb-app-header.html index c6c4f98e25..984ac9337a 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/application/umb-app-header.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/application/umb-app-header.html @@ -45,12 +45,4 @@
- - -
diff --git a/src/Umbraco.Web.UI.Client/src/views/components/overlays/umb-overlay.html b/src/Umbraco.Web.UI.Client/src/views/components/overlays/umb-overlay.html index 39e0165fe8..7fe6df8ccc 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/overlays/umb-overlay.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/overlays/umb-overlay.html @@ -1,4 +1,4 @@ -
public class TrueFalseConfiguration { - [ConfigurationField("default", "Default Value", "boolean")] + [ConfigurationField("default","Initial State", "boolean",Description = "The initial state for this checkbox, when it is displayed for the first time in the backoffice, eg. for a new content item.")] public string Default { get; set; } // TODO: well, true or false?! [ConfigurationField("labelOn", "Write a label text", "textstring")] From d347d368610c050fdc921241756b2c557c2ec8d8 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Tue, 14 Jul 2020 13:48:46 +0200 Subject: [PATCH 031/178] Don't run CodeQL on PRs for now --- .github/workflows/codeql-analysis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 46e09dee3e..b0984bd846 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -2,10 +2,11 @@ name: "Code scanning - action" on: push: - branches: [v8/contrib,v8/codeql] + branches: [v8/contrib] pull_request: # The branches below must be a subset of the branches above - branches: [v8/contrib] + # SJ: Don't run on PR branches for now + # branches: [v8/contrib] schedule: - cron: '0 7 * * 2' From 8c8c26bc9a81ffc0a137e1f9bcd7b3a287eace28 Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Tue, 14 Jul 2020 13:58:57 +0200 Subject: [PATCH 032/178] Adjust target overlay position using hotkey (#8431) --- .../overlays/umboverlay.directive.js | 20 ++++++++++++------- .../src/less/components/overlays.less | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/overlays/umboverlay.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/overlays/umboverlay.directive.js index 5a06edf617..c85b37a8a4 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/overlays/umboverlay.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/overlays/umboverlay.directive.js @@ -407,11 +407,15 @@ Opens an overlay to show a custom YSOD.
function setTargetPosition() { - var container = $("#contentwrapper"); - var containerLeft = container[0].offsetLeft; - var containerRight = containerLeft + container[0].offsetWidth; - var containerTop = container[0].offsetTop; - var containerBottom = containerTop + container[0].offsetHeight; + var overlay = $(scope.model.event.target).closest('.umb-overlay'); + var container = overlay.length > 0 ? overlay : $("#contentwrapper"); + + let rect = container[0].getBoundingClientRect(); + + var containerLeft = rect.left; + var containerRight = containerLeft + rect.width; + var containerTop = rect.top; + var containerBottom = containerTop + rect.height; var mousePositionClickX = null; var mousePositionClickY = null; @@ -434,8 +438,9 @@ Opens an overlay to show a custom YSOD.
elementWidth = el[0].clientWidth; // move element to this position - position.left = mousePositionClickX - (elementWidth / 2); - position.top = mousePositionClickY - (elementHeight / 2); + // when using hotkey it fallback to center of container + position.left = mousePositionClickX ? mousePositionClickX - (elementWidth / 2) : (containerLeft + containerRight) / 2 - (elementWidth / 2); + position.top = mousePositionClickY ? mousePositionClickY - (elementHeight / 2) : (containerTop + containerBottom) / 2 - (elementHeight / 2); // check to see if element is outside screen // outside right @@ -463,6 +468,7 @@ Opens an overlay to show a custom YSOD.
} el.css(position); + el.css("visibility", "visible"); } scope.submitForm = function (model) { diff --git a/src/Umbraco.Web.UI.Client/src/less/components/overlays.less b/src/Umbraco.Web.UI.Client/src/less/components/overlays.less index 381157c8bc..5868408969 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/overlays.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/overlays.less @@ -106,7 +106,6 @@ height: auto; top: 50%; left: 50%; - transform: translate(-50%, 0); transform: translate(-50%, -50%); border-radius: @baseBorderRadius; } @@ -128,6 +127,7 @@ width: 400px; max-height: 100vh; box-sizing: border-box; + visibility: hidden; border-radius: @baseBorderRadius; &.umb-overlay--medium { From c89fa6fe69e0043d003cecb67051829fd837192e Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Tue, 14 Jul 2020 14:02:06 +0200 Subject: [PATCH 033/178] Listview columns grouping (#8423) --- .../listview/includeproperties.prevalues.html | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/includeproperties.prevalues.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/includeproperties.prevalues.html index 0499bea713..c8f2a8050c 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/includeproperties.prevalues.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/includeproperties.prevalues.html @@ -1,10 +1,12 @@ 
- + diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/layouts.prevalues.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/layouts.prevalues.controller.js index a02215f452..acfb114307 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/layouts.prevalues.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/layouts.prevalues.controller.js @@ -15,6 +15,8 @@ vm.focusLayoutName = false; vm.layoutsSortableOptions = { + axis: "y", + containment: "parent", distance: 10, tolerance: "pointer", opacity: 0.7, @@ -41,7 +43,6 @@ }; $scope.model.value.push(layout); - } function showPrompt(layout) { diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/layouts.prevalues.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/layouts.prevalues.html index 15b66d856d..d0348bb708 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/layouts.prevalues.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/layouts.prevalues.html @@ -1,47 +1,53 @@
-
+
-
+
- +
-
+ - +
-
- -
+ -
+
+ +
-
- - {{ layout.name }} - (system layout) -
+
-
- -
+
+ + {{ layout.name }} + (system layout) +
-
- -
- - - -
-
+
+ +
-
+
+ + +
+ + + +
+
+ +
+ +
From e6f264136c20e72a2796318595666ae93b7089dd Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Tue, 14 Jul 2020 14:56:25 +0200 Subject: [PATCH 035/178] Adjust tooltip position inside overlay (#8416) --- .../components/umbtooltip.directive.js | 62 +++++++++++-------- .../itempicker/itempicker.controller.js | 4 +- .../overlays/itempicker/itempicker.html | 16 ++--- .../nestedcontent/nestedcontent.controller.js | 3 +- 4 files changed, 47 insertions(+), 38 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbtooltip.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbtooltip.directive.js index ef7006be2c..ce1885a7cf 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbtooltip.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbtooltip.directive.js @@ -77,13 +77,17 @@ Use this directive to render a tooltip. scope.tooltipStyles.left = 0; scope.tooltipStyles.top = 0; - function setTooltipPosition(event) { + function setTooltipPosition(event) { - var container = $("#contentwrapper"); - var containerLeft = container[0].offsetLeft; - var containerRight = containerLeft + container[0].offsetWidth; - var containerTop = container[0].offsetTop; - var containerBottom = containerTop + container[0].offsetHeight; + var overlay = $(event.target).closest('.umb-overlay'); + var container = overlay.length > 0 ? overlay : $("#contentwrapper"); + + let rect = container[0].getBoundingClientRect(); + + var containerLeft = rect.left; + var containerRight = containerLeft + rect.width; + var containerTop = rect.top; + var containerBottom = containerTop + rect.height; var elementHeight = null; var elementWidth = null; @@ -102,39 +106,43 @@ Use this directive to render a tooltip. position.left = event.pageX - (elementWidth / 2); position.top = event.pageY; - // check to see if element is outside screen - // outside right - if (position.left + elementWidth > containerRight) { - position.right = 10; - position.left = "inherit"; + if (overlay.length > 0) { + position.left = event.pageX - rect.left - (elementWidth / 2); + position.top = event.pageY - rect.top; } + else { + // check to see if element is outside screen + // outside right + if (position.left + elementWidth > containerRight) { + position.right = 10; + position.left = "inherit"; + } - // outside bottom - if (position.top + elementHeight > containerBottom) { - position.bottom = 10; - position.top = "inherit"; - } + // outside bottom + if (position.top + elementHeight > containerBottom) { + position.bottom = 10; + position.top = "inherit"; + } - // outside left - if (position.left < containerLeft) { - position.left = containerLeft + 10; - position.right = "inherit"; - } + // outside left + if (position.left < containerLeft) { + position.left = containerLeft + 10; + position.right = "inherit"; + } - // outside top - if (position.top < containerTop) { - position.top = 10; - position.bottom = "inherit"; + // outside top + if (position.top < containerTop) { + position.top = 10; + position.bottom = "inherit"; + } } scope.tooltipStyles = position; el.css(position); - } setTooltipPosition(scope.event); - } var directive = { diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/itempicker/itempicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/overlays/itempicker/itempicker.controller.js index 17184ae9a3..ca8a2d7a47 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/itempicker/itempicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/itempicker/itempicker.controller.js @@ -24,11 +24,11 @@ function ItemPickerOverlay($scope, localizationService) { event: null }; - $scope.showTooltip = function(item, $event) { + $scope.showTooltip = function (item, $event) { if (!item.tooltip) { - $scope.mouseLeave(); return; } + $scope.tooltip = { show: true, event: $event, diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/itempicker/itempicker.html b/src/Umbraco.Web.UI.Client/src/views/common/overlays/itempicker/itempicker.html index ff2ce6379f..fb1a4ae6a5 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/itempicker/itempicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/itempicker/itempicker.html @@ -1,7 +1,7 @@
  • - @@ -35,10 +35,10 @@
    • -
    • diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.controller.js index e4812360d7..44b507b74b 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.controller.js @@ -195,7 +195,8 @@ availableItems.push({ alias: scaffold.contentTypeAlias, name: scaffold.contentTypeName, - icon: iconHelper.convertFromLegacyIcon(scaffold.icon) + icon: iconHelper.convertFromLegacyIcon(scaffold.icon), + tooltip: scaffold.documentType.description }); }); From 6fc81260768cddfa647f3d62bb4ffa5b1fcb4434 Mon Sep 17 00:00:00 2001 From: Gareth Evans Date: Fri, 10 Jul 2020 15:30:00 +1200 Subject: [PATCH 036/178] #8412 Set ng-maxlength and maxlength attributes on the tag input in umb-tags-editor.html to avoid a string or binary data would be truncated error when the entered tag exceeds the database column length --- .../src/views/components/tags/umb-tags-editor.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/views/components/tags/umb-tags-editor.html b/src/Umbraco.Web.UI.Client/src/views/components/tags/umb-tags-editor.html index 48623fe7d1..2929fd229c 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/tags/umb-tags-editor.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/tags/umb-tags-editor.html @@ -26,6 +26,8 @@ ng-model="vm.tagToAdd" ng-keydown="vm.addTagOnEnter($event)" ng-blur="vm.addTag()" + ng-maxlength="200" + maxlength="200" localize="placeholder" placeholder="@placeholders_enterTags" /> From 6da85dd47d0fe4dff7750755c637afddf0afa5fc Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Fri, 10 Jul 2020 00:05:16 +0200 Subject: [PATCH 037/178] Remove unnecessary translation to removed variable --- .../documenttypes/views/permissions/permissions.controller.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/permissions/permissions.controller.js b/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/permissions/permissions.controller.js index 94e0b443ca..b0531d0c0a 100644 --- a/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/permissions/permissions.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/permissions/permissions.controller.js @@ -34,10 +34,6 @@ function init() { - localizationService.localize("contentTypeEditor_chooseChildNode").then(function(value){ - childNodeSelectorOverlayTitle = value; - }); - contentTypeResource.getAll().then(function(contentTypes){ vm.contentTypes = _.where(contentTypes, {isElement: false}); From 0d7741d211c30f4a27f0cbf330d6abb1b321bb64 Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Fri, 10 Jul 2020 00:29:06 +0200 Subject: [PATCH 038/178] Allow editor info to shrink for longer datatype names --- .../src/less/components/umb-group-builder.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/less/components/umb-group-builder.less b/src/Umbraco.Web.UI.Client/src/less/components/umb-group-builder.less index 6eded29b8b..ae7d5a305d 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/umb-group-builder.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/umb-group-builder.less @@ -523,7 +523,7 @@ input.umb-group-builder__group-sort-value { } .editor-info { - flex: 1 0 auto; + flex: 1 1 auto; text-align: left; display: flex; align-items: center; From 2f7cf8cb0f4d4cc238a31e53a4cd6d1566cac128 Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Fri, 10 Jul 2020 00:40:12 +0200 Subject: [PATCH 039/178] Align group builder property actions to top --- .../src/less/components/umb-group-builder.less | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/less/components/umb-group-builder.less b/src/Umbraco.Web.UI.Client/src/less/components/umb-group-builder.less index ae7d5a305d..fa8dc39e0f 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/umb-group-builder.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/umb-group-builder.less @@ -347,12 +347,11 @@ input.umb-group-builder__group-title-input:disabled:hover { .umb-group-builder__property-actions { flex: 0 0 44px; display: flex; - align-items: center; + align-items: flex-start; justify-content: flex-end; } .umb-group-builder__property-action { - position: relative; margin: 5px 0; From 984214ea7ba00073733b61bbb017b741845457f6 Mon Sep 17 00:00:00 2001 From: hkooiker Date: Tue, 14 Jul 2020 15:47:33 +0200 Subject: [PATCH 040/178] Member picker value converter (#8401) --- .../ValueConverters/MemberPickerValueConverter.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Umbraco.Web/PropertyEditors/ValueConverters/MemberPickerValueConverter.cs b/src/Umbraco.Web/PropertyEditors/ValueConverters/MemberPickerValueConverter.cs index cd69fd9de6..71bb2fd2ee 100644 --- a/src/Umbraco.Web/PropertyEditors/ValueConverters/MemberPickerValueConverter.cs +++ b/src/Umbraco.Web/PropertyEditors/ValueConverters/MemberPickerValueConverter.cs @@ -31,6 +31,8 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters public override object ConvertSourceToIntermediate(IPublishedElement owner, IPublishedPropertyType propertyType, object source, bool preview) { + if (source == null) return null; + var attemptConvertInt = source.TryConvertTo(); if (attemptConvertInt.Success) return attemptConvertInt.Result; From f02a16f094e9f901acdcc5e3bb90bf128db55f71 Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Mon, 6 Jul 2020 16:33:19 +0200 Subject: [PATCH 041/178] Register dragover state of file upload --- .../components/upload/umbfileupload.directive.js | 11 +++++++++++ .../upload/umbpropertyfileupload.directive.js | 8 ++++++++ .../src/less/components/umb-property-file-upload.less | 6 ++++++ .../components/upload/umb-property-file-upload.html | 2 +- 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/upload/umbfileupload.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/upload/umbfileupload.directive.js index 6a8ffa7969..3581aed9e0 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/upload/umbfileupload.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/upload/umbfileupload.directive.js @@ -19,6 +19,17 @@ function umbFileUpload() { //clear the element value - this allows us to pick the same file again and again el.val(''); }); + + el.on('drag dragstart dragend dragover dragenter dragleave drop', function (e) { + e.preventDefault(); + e.stopPropagation(); + }) + .on('dragover dragenter', function () { + scope.$emit("isDragover", { value: true }); + }) + .on('dragleave dragend drop', function () { + scope.$emit("isDragover", { value: false }); + }); } }; } diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/upload/umbpropertyfileupload.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/upload/umbpropertyfileupload.directive.js index 653b4f427c..90dbbc650d 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/upload/umbpropertyfileupload.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/upload/umbpropertyfileupload.directive.js @@ -78,6 +78,8 @@ /** Called when the component initializes */ function onInit() { $scope.$on("filesSelected", onFilesSelected); + $scope.$on("isDragover", isDragover); + initialize(); } @@ -293,6 +295,11 @@ } } + function isDragover(e, args) { + vm.dragover = args.value; + angularHelper.safeApply($scope); + } + }; var umbPropertyFileUploadComponent = { @@ -303,6 +310,7 @@ propertyAlias: "@", value: "<", hideSelection: "<", + dragover: "<", /** * Called when a file is selected on this instance */ diff --git a/src/Umbraco.Web.UI.Client/src/less/components/umb-property-file-upload.less b/src/Umbraco.Web.UI.Client/src/less/components/umb-property-file-upload.less index 39b2f4002e..7a2883efd1 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/umb-property-file-upload.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/umb-property-file-upload.less @@ -26,4 +26,10 @@ width: 100%; } } + + .drag-over { + .umb-upload-button-big { + border-color: @gray-1; + } + } } diff --git a/src/Umbraco.Web.UI.Client/src/views/components/upload/umb-property-file-upload.html b/src/Umbraco.Web.UI.Client/src/views/components/upload/umb-property-file-upload.html index 9b4e60a413..2069707f20 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/upload/umb-property-file-upload.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/upload/umb-property-file-upload.html @@ -1,6 +1,6 @@ 
      - +
      Date: Tue, 14 Jul 2020 16:23:34 +0200 Subject: [PATCH 042/178] Show SVG preview on upload (#8387) --- .../upload/umbpropertyfileupload.directive.js | 15 +- .../components/imaging/umb-image-crop.html | 4 +- .../components/upload/umb-file-dropzone.html | 156 +++++++++--------- .../upload/umb-property-file-upload.html | 12 +- 4 files changed, 94 insertions(+), 93 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/upload/umbpropertyfileupload.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/upload/umbpropertyfileupload.directive.js index 90dbbc650d..db1e38adc6 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/upload/umbpropertyfileupload.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/upload/umbpropertyfileupload.directive.js @@ -120,7 +120,9 @@ isImage: mediaHelper.detectIfImageByExtension(file), extension: getExtension(file) }; + f.fileSrc = getThumbnail(f); + return f; }); @@ -230,19 +232,22 @@ var index = i; //capture var isImage = mediaHelper.detectIfImageByExtension(files[i].name); + var extension = getExtension(files[i].name); - //save the file object to the files collection - vm.files.push({ + var f = { isImage: isImage, - extension: getExtension(files[i].name), + extension: extension, fileName: files[i].name, isClientSide: true - }); + }; + + // Save the file object to the files collection + vm.files.push(f); //special check for a comma in the name newVal += files[i].name.split(',').join('-') + ","; - if (isImage) { + if (isImage || extension === "svg") { var deferred = $q.defer(); diff --git a/src/Umbraco.Web.UI.Client/src/views/components/imaging/umb-image-crop.html b/src/Umbraco.Web.UI.Client/src/views/components/imaging/umb-image-crop.html index 8fba4d1e3c..933551bbff 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/imaging/umb-image-crop.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/imaging/umb-image-crop.html @@ -7,7 +7,7 @@
      - +
      - +
      diff --git a/src/Umbraco.Web.UI.Client/src/views/components/upload/umb-file-dropzone.html b/src/Umbraco.Web.UI.Client/src/views/components/upload/umb-file-dropzone.html index b079b72be4..ff2f04f35c 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/upload/umb-file-dropzone.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/upload/umb-file-dropzone.html @@ -1,107 +1,105 @@
      - + - -
      + +
      +
      +

      + Drag and drop your file(s) into the area +

      -
      -

      - Drag and drop your file(s) into the area -

      - - + + - - - + + +
      -
      - -
        + +
          - -
        • + +
        • - -
          {{ file.name }}
          + +
          {{ file.name }}
          - -
          - -
          + +
          + +
          -
        • + -
        • +
        • - -
          {{ currentFile.name }}
          + +
          {{ currentFile.name }}
          - -
          - -
          -
        • + +
          + +
          + - -
        • + +
        • - -
          {{ queued.name }}
          -
        • + +
          {{ queued.name }}
          + -
        • +
        • - -
          + +
          - {{ file.name }} + {{ file.name }} - - - "{{maxFileSize}}" - + + + "{{maxFileSize}}" + - - {{file.serverErrorMessage}} - + + {{file.serverErrorMessage}} + -
          +
          - -
          - -
          + +
          + +
          -
        • -
        + +
      - +
      diff --git a/src/Umbraco.Web.UI.Client/src/views/components/upload/umb-property-file-upload.html b/src/Umbraco.Web.UI.Client/src/views/components/upload/umb-property-file-upload.html index 2069707f20..a6eb60d15c 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/upload/umb-property-file-upload.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/upload/umb-property-file-upload.html @@ -3,10 +3,8 @@ -
      - +
      +

      Click to upload

      @@ -19,8 +17,8 @@
      @@ -28,7 +26,7 @@
      - + From e66fd7b8e070d4c4f91c7ecfdbd05a12703eab3a Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Wed, 1 Jul 2020 14:49:24 +0200 Subject: [PATCH 043/178] Adjust border radius of button in button group if having sub buttons --- .../src/less/components/buttons/umb-button-group.less | 2 +- .../src/views/components/buttons/umb-button-group.html | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-button-group.less b/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-button-group.less index 02b67460f6..24800c1142 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-button-group.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-button-group.less @@ -14,7 +14,7 @@ display: flex; } -.umb-button-group { +.umb-button-group.-with-button-group-toggle { .umb-button__button { border-radius: @baseBorderRadius 0 0 @baseBorderRadius; diff --git a/src/Umbraco.Web.UI.Client/src/views/components/buttons/umb-button-group.html b/src/Umbraco.Web.UI.Client/src/views/components/buttons/umb-button-group.html index 49827910d0..a3eadcfbc2 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/buttons/umb-button-group.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/buttons/umb-button-group.html @@ -1,4 +1,4 @@ -
      +
      + ng-class="{'-align-right': float === 'right'}"> From 888109f69b4fd995b33131e30a5c0a8255d9ce84 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jul 2020 20:36:45 +0000 Subject: [PATCH 048/178] Bump lodash from 4.17.15 to 4.17.19 in /src/Umbraco.Web.UI.Client Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19) Signed-off-by: dependabot[bot] --- src/Umbraco.Web.UI.Client/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index b1d38a8b3f..459f3325e9 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -77,7 +77,7 @@ "karma-phantomjs-launcher": "1.0.4", "karma-spec-reporter": "0.0.32", "less": "3.10.3", - "lodash": "4.17.15", + "lodash": "4.17.19", "marked": "^0.7.0", "merge-stream": "2.0.0", "run-sequence": "2.2.1" From 869f0e2d1164cf17d4501d620bbb3e58cd7fcc9a Mon Sep 17 00:00:00 2001 From: Callum Whyte Date: Wed, 22 Jul 2020 09:11:16 +0100 Subject: [PATCH 049/178] Improving umb-button link docs --- .../directives/components/buttons/umbbutton.directive.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbbutton.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbbutton.directive.js index dc012945dd..5e007a7ff4 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbbutton.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbbutton.directive.js @@ -55,8 +55,8 @@ Use this directive to render an umbraco button. The directive can be used to gen @param {callback} action The button action which should be performed when the button is clicked. -@param {string=} href Url/Path to navigato to. -@param {string=} type Set the button type ("button" or "submit"). +@param {string=} href Url/Path to navigato to. (requires "type" to be set to "link") +@param {string=} type Set the button type ("button", "link", "submit"). @param {string=} buttonStyle Set the style of the button. The directive uses the default bootstrap styles ("primary", "info", "success", "warning", "danger", "inverse", "link", "block"). Pass in array to add multple styles [success,block]. @param {string=} state Set a progress state on the button ("init", "busy", "success", "error"). @param {string=} shortcut Set a keyboard shortcut for the button ("ctrl+c"). From 7b8ef85541b993e375c98cc969c41f029e7c3142 Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Wed, 22 Jul 2020 18:55:47 +0200 Subject: [PATCH 050/178] Adjust toggle styling when checked and disabled (#8445) --- .../components/buttons/umbtoggle.directive.js | 2 +- .../less/components/buttons/umb-toggle.less | 50 ++++++++++++------- .../views/components/buttons/umb-toggle.html | 8 ++- 3 files changed, 35 insertions(+), 25 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbtoggle.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbtoggle.directive.js index 79cb99cf07..5cdd23d4af 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbtoggle.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbtoggle.directive.js @@ -78,6 +78,7 @@ scope.inputId = scope.inputId || "umb-toggle_" + String.CreateGuid(); setLabelText(); + // must wait until the current digest cycle is finished before we emit this event on init, // otherwise other property editors might not yet be ready to receive the event $timeout(function () { @@ -115,7 +116,6 @@ }; onInit(); - } var directive = { diff --git a/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-toggle.less b/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-toggle.less index ff4122b258..701af849cc 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-toggle.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-toggle.less @@ -41,9 +41,6 @@ } } - - - .umb-toggle__handler { position: absolute; top: 1px; @@ -59,10 +56,8 @@ transform: translateX(20px); background-color: @white; } - } - /* Icons */ .umb-toggle__icon { @@ -78,9 +73,7 @@ color:@white; transition: opacity 120ms; opacity: 0; - // .umb-toggle:hover & { - // color: @ui-btn-hover; - // } + .umb-toggle--checked & { opacity: 1; } @@ -93,6 +86,7 @@ right: 5px; color: @ui-btn; transition: opacity 120ms; + .umb-toggle--checked & { opacity: 0; } @@ -101,23 +95,41 @@ } } - - -.umb-toggle.umb-toggle--disabled.umb-toggle--checked, .umb-toggle.umb-toggle--disabled { .umb-toggle__toggle { cursor: not-allowed; - background-color: @gray-9; - border-color: @gray-9; } - .umb-toggle__icon--left { - color: @gray-6; + + &, &.umb-toggle--checked { + + .umb-toggle__toggle { + .umb-toggle__handler { + background-color: @gray-10; + } + } } - .umb-toggle__icon--right { - color: @gray-6; + + &:not(.umb-toggle--checked) { + .umb-toggle__toggle { + background-color: @gray-8; + border-color: @gray-8; + } + + .umb-toggle__icon--left, + .umb-toggle__icon--right { + color: @gray-6; + } } - .umb-toggle__handler { - background-color: @gray-10; + + &.umb-toggle--checked { + .umb-toggle__toggle { + background-color: lighten(@ui-btn, 50%); + border-color: lighten(@ui-btn, 50%); + } + .umb-toggle__icon--left, + .umb-toggle__icon--right { + color: @gray-9; + } } } diff --git a/src/Umbraco.Web.UI.Client/src/views/components/buttons/umb-toggle.html b/src/Umbraco.Web.UI.Client/src/views/components/buttons/umb-toggle.html index 185d852560..449c436149 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/buttons/umb-toggle.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/buttons/umb-toggle.html @@ -1,8 +1,7 @@ From 78c429c4afdd6b29b0290d92e9ff2d2408042337 Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Wed, 22 Jul 2020 18:56:58 +0200 Subject: [PATCH 051/178] Streamline umb-checkbox and umb-radiobutton components (#8441) --- .../components/forms/umbcheckbox.directive.js | 5 +++-- .../forms/umbradiobutton.directive.js | 12 ++++++++-- .../views/components/forms/umb-checkbox.html | 3 --- .../components/forms/umb-radiobutton.html | 22 ++++++++++++++++--- 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js index 389aec2044..3f55e385ac 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js @@ -31,8 +31,9 @@ @param {boolean} disabled Set the checkbox to be disabled. @param {boolean} required Set the checkbox to be required. @param {callback} onChange Callback when the value of the checkbox change by interaction. -@param {string} cssClass Set a css class modifier -@param {boolean} disableDirtyCheck Disable checking if the model is dirty +@param {string} cssClass Set a css class modifier. +@param {string} iconClass Set an icon next to checkbox. +@param {boolean} disableDirtyCheck Disable checking if the model is dirty. **/ diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbradiobutton.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbradiobutton.directive.js index d79140f947..99e2a8c633 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbradiobutton.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbradiobutton.directive.js @@ -26,10 +26,14 @@ @param {string} value Set the value of the radiobutton. @param {string} name Set the name of the radiobutton. @param {string} text Set the text for the radiobutton label. -@param {string} labelKey Set a dictinary/localization string for the checkbox label +@param {string} labelKey Set a dictinary/localization string for the checkbox label. +@param {string} serverValidationField Set the val-server-field of the radiobutton. @param {boolean} disabled Set the radiobutton to be disabled. @param {boolean} required Set the radiobutton to be required. @param {callback} onChange Callback when the value of the radiobutton change by interaction. +@param {string} cssClass Set a css class modifier. +@param {string} iconClass Set an icon next to radiobutton. +@param {boolean} disableDirtyCheck Disable checking if the model is dirty. **/ @@ -77,9 +81,13 @@ name: "@", text: "@", labelKey: "@?", + serverValidationField: "@", disabled: "<", required: "<", - onChange: "&?" + onChange: "&?", + cssClass: "@?", + iconClass: "@?", + disableDirtyCheck: "=?" } }; diff --git a/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-checkbox.html b/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-checkbox.html index 3f3ee59c1a..86771e7fac 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-checkbox.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-checkbox.html @@ -32,10 +32,7 @@ - - {{vm.text}} - diff --git a/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-radiobutton.html b/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-radiobutton.html index 356d99dbe2..fb4fbbd2a6 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-radiobutton.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-radiobutton.html @@ -1,10 +1,25 @@ -