From 9b1951326c2a4ab840094e4374afd0ea5c16fc4f Mon Sep 17 00:00:00 2001 From: alzaslon Date: Fri, 22 Apr 2016 12:12:51 -0700 Subject: [PATCH] added language selector --- .../Web/App_GlobalResources/Strings.cs.resx | 8 + .../Web/App_GlobalResources/Strings.de.resx | 8 + .../Web/App_GlobalResources/Strings.es.resx | 8 + .../Web/App_GlobalResources/Strings.fr.resx | 8 + .../Web/App_GlobalResources/Strings.hu.resx | 8 + .../Web/App_GlobalResources/Strings.it.resx | 8 + .../Web/App_GlobalResources/Strings.ja.resx | 8 + .../Web/App_GlobalResources/Strings.ko.resx | 8 + .../Web/App_GlobalResources/Strings.nl.resx | 8 + .../Web/App_GlobalResources/Strings.pl.resx | 8 + .../App_GlobalResources/Strings.pt-BR.resx | 8 + .../App_GlobalResources/Strings.pt-PT.resx | 8 + .../Web/App_GlobalResources/Strings.ru.resx | 8 + .../Web/App_GlobalResources/Strings.sv.resx | 8 + .../Web/App_GlobalResources/Strings.tr.resx | 8 + .../App_GlobalResources/Strings.zh-HANS.resx | 8 + .../App_GlobalResources/Strings.zh-HANT.resx | 8 + .../Web/App_Start/BundleConfig.cs | 4 + .../Web/Content/img/icon-account.png | Bin 0 -> 258 bytes .../Web/Content/img/icon-globe.png | Bin 0 -> 1083 bytes .../blocks/root_styles/navigation_block.less | 2 +- .../root_styles/root_style_values_block.less | 2 +- .../Content/styles/bootstrap/bootstrap.less | 13 + .../bootstrap/component-animations.less | 33 + .../Content/styles/bootstrap/dropdowns.less | 219 +++++ .../Web/Content/styles/bootstrap/forms.less | 607 ++++++++++++ .../Web/Content/styles/bootstrap/grid.less | 84 ++ .../Web/Content/styles/bootstrap/mixins.less | 40 + .../styles/bootstrap/mixins/alerts.less | 14 + .../bootstrap/mixins/background-variant.less | 9 + .../bootstrap/mixins/border-radius.less | 18 + .../styles/bootstrap/mixins/buttons.less | 68 ++ .../styles/bootstrap/mixins/center-block.less | 7 + .../styles/bootstrap/mixins/clearfix.less | 22 + .../styles/bootstrap/mixins/forms.less | 85 ++ .../styles/bootstrap/mixins/gradients.less | 59 ++ .../bootstrap/mixins/grid-framework.less | 91 ++ .../Content/styles/bootstrap/mixins/grid.less | 122 +++ .../styles/bootstrap/mixins/hide-text.less | 21 + .../styles/bootstrap/mixins/image.less | 33 + .../styles/bootstrap/mixins/labels.less | 12 + .../styles/bootstrap/mixins/list-group.less | 30 + .../styles/bootstrap/mixins/nav-divider.less | 10 + .../bootstrap/mixins/nav-vertical-align.less | 9 + .../styles/bootstrap/mixins/opacity.less | 8 + .../styles/bootstrap/mixins/pagination.less | 24 + .../styles/bootstrap/mixins/panels.less | 24 + .../styles/bootstrap/mixins/progress-bar.less | 10 + .../styles/bootstrap/mixins/reset-filter.less | 8 + .../styles/bootstrap/mixins/reset-text.less | 18 + .../styles/bootstrap/mixins/resize.less | 6 + .../mixins/responsive-visibility.less | 15 + .../Content/styles/bootstrap/mixins/size.less | 10 + .../styles/bootstrap/mixins/tab-focus.less | 9 + .../styles/bootstrap/mixins/table-row.less | 28 + .../bootstrap/mixins/text-emphasis.less | 9 + .../bootstrap/mixins/text-overflow.less | 8 + .../bootstrap/mixins/vendor-prefixes.less | 227 +++++ .../Web/Content/styles/bootstrap/navbar.less | 685 ++++++++++++++ .../Web/Content/styles/bootstrap/navs.less | 242 +++++ .../Content/styles/bootstrap/utilities.less | 55 ++ .../Content/styles/bootstrap/variables.less | 867 ++++++++++++++++++ .../Web/Content/styles/main.less | 7 + .../Web/Content/styles/navbars.less | 96 ++ .../Web/Controllers/CultureController.cs | 36 + .../Web/Helpers/CultureHelper.cs | 21 +- .../Web/Models/LanguageModel.cs | 2 + .../Web/Scripts/_references.js | 1 + .../Web/Scripts/bootstrap.min.js | 378 ++++++++ .../Web/Views/Shared/_BaseLayout.cshtml | 90 +- DeviceAdministration/Web/Web.csproj | 21 +- 71 files changed, 4621 insertions(+), 34 deletions(-) create mode 100644 DeviceAdministration/Web/Content/img/icon-account.png create mode 100644 DeviceAdministration/Web/Content/img/icon-globe.png create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/bootstrap.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/component-animations.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/dropdowns.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/forms.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/grid.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/alerts.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/background-variant.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/border-radius.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/buttons.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/center-block.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/clearfix.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/forms.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/gradients.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/grid-framework.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/grid.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/hide-text.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/image.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/labels.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/list-group.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/nav-divider.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/nav-vertical-align.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/opacity.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/pagination.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/panels.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/progress-bar.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/reset-filter.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/reset-text.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/resize.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/responsive-visibility.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/size.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/tab-focus.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/table-row.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/text-emphasis.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/text-overflow.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/mixins/vendor-prefixes.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/navbar.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/navs.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/utilities.less create mode 100644 DeviceAdministration/Web/Content/styles/bootstrap/variables.less create mode 100644 DeviceAdministration/Web/Content/styles/navbars.less create mode 100644 DeviceAdministration/Web/Controllers/CultureController.cs create mode 100644 DeviceAdministration/Web/Scripts/bootstrap.min.js diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.cs.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.cs.resx index c5ca66aa..18d1c694 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.cs.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.cs.resx @@ -1659,4 +1659,12 @@ Uživatelské jméno Input label. + + Nápověda a podpora + Hyperlink label. + + + Poslat názor + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.de.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.de.resx index fdf5c101..efd5c79f 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.de.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.de.resx @@ -1661,4 +1661,12 @@ Benutzername Input label. + + Hilfe und Support + Hyperlink label. + + + Feedback senden + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.es.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.es.resx index e0c9def1..2e6241f4 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.es.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.es.resx @@ -1659,4 +1659,12 @@ Nombre de usuario Input label. + + Ayuda y soporte técnico + Hyperlink label. + + + Enviar comentarios + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.fr.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.fr.resx index 8432a64a..1ce9e0c7 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.fr.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.fr.resx @@ -1659,4 +1659,12 @@ Nom d'utilisateur Input label. + + Aide et support + Hyperlink label. + + + Envoyer des commentaires + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.hu.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.hu.resx index 7fdcb7e4..882da9ca 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.hu.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.hu.resx @@ -1659,4 +1659,12 @@ Felhasználónév Input label. + + Súgó és támogatás + Hyperlink label. + + + Visszajelzés küldése + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.it.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.it.resx index fe7db1d5..315b82c5 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.it.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.it.resx @@ -1659,4 +1659,12 @@ Nome utente Input label. + + Guida e supporto + Hyperlink label. + + + Invia commenti + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.ja.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.ja.resx index cefe36c5..b25640c6 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.ja.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.ja.resx @@ -1659,4 +1659,12 @@ ユーザー名 Input label. + + ヘルプとサポート + Hyperlink label. + + + フィードバックの送信 + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.ko.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.ko.resx index c188a8f3..eacfc873 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.ko.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.ko.resx @@ -1659,4 +1659,12 @@ 사용자 이름 Input label. + + 도움말 및 지원 + Hyperlink label. + + + 피드백 제공 + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.nl.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.nl.resx index c6c0c7d1..26e016c3 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.nl.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.nl.resx @@ -1659,4 +1659,12 @@ Gebruikersnaam Input label. + + Help en ondersteuning + Hyperlink label. + + + Feedback geven + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.pl.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.pl.resx index d76a4214..cf373060 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.pl.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.pl.resx @@ -1659,4 +1659,12 @@ Nazwa użytkownika Input label. + + Pomoc i wsparcie techniczne + Hyperlink label. + + + Prześlij opinię + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.pt-BR.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.pt-BR.resx index 8f697da3..2a7cc097 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.pt-BR.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.pt-BR.resx @@ -1659,4 +1659,12 @@ Nome de usuário Input label. + + Ajuda e Suporte + Hyperlink label. + + + Enviar comentários + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.pt-PT.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.pt-PT.resx index db166212..5eb08960 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.pt-PT.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.pt-PT.resx @@ -1659,4 +1659,12 @@ Nome de utilizador Input label. + + Ajuda e Suporte + Hyperlink label. + + + Enviar comentários + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.ru.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.ru.resx index 97ec7624..3ab484d3 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.ru.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.ru.resx @@ -1659,4 +1659,12 @@ Имя пользователя Input label. + + Справка и поддержка + Hyperlink label. + + + Отправить отзыв + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.sv.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.sv.resx index ede72e2f..1b3bd97f 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.sv.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.sv.resx @@ -1659,4 +1659,12 @@ Användarnamn Input label. + + Hjälp och support + Hyperlink label. + + + Ge feedback + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.tr.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.tr.resx index 68199c56..41091b04 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.tr.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.tr.resx @@ -1659,4 +1659,12 @@ Kullanıcı Adı Input label. + + Yardım ve Destek + Hyperlink label. + + + Geri bildirimde bulunun + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.zh-HANS.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.zh-HANS.resx index 497eaa9a..d97ae25a 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.zh-HANS.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.zh-HANS.resx @@ -1659,4 +1659,12 @@ 用户名 Input label. + + 帮助和支持 + Hyperlink label. + + + 提供反馈 + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_GlobalResources/Strings.zh-HANT.resx b/DeviceAdministration/Web/App_GlobalResources/Strings.zh-HANT.resx index 714f8d55..34a1fac3 100644 --- a/DeviceAdministration/Web/App_GlobalResources/Strings.zh-HANT.resx +++ b/DeviceAdministration/Web/App_GlobalResources/Strings.zh-HANT.resx @@ -1659,4 +1659,12 @@ 使用者名稱 Input label. + + 說明及支援 + Hyperlink label. + + + 提供意見反應 + Hyperlink label. + \ No newline at end of file diff --git a/DeviceAdministration/Web/App_Start/BundleConfig.cs b/DeviceAdministration/Web/App_Start/BundleConfig.cs index e1a5bdbf..58d7c5a3 100644 --- a/DeviceAdministration/Web/App_Start/BundleConfig.cs +++ b/DeviceAdministration/Web/App_Start/BundleConfig.cs @@ -28,6 +28,10 @@ namespace Microsoft.Azure.Devices.Applications.RemoteMonitoring.DeviceAdmin.Web "~/Scripts/jquery-ui-1.11.4.js", "~/Scripts/jquery-ui-i18n.min.js")); + bundles.Add(new ScriptBundle("~/bundles/bootstrap") + .Include( + "~/Scripts/bootstrap.min.js")); + bundles.Add(new StyleBundle("~/content/css/vendor") .Include( "~/content/styles/datatables.css", diff --git a/DeviceAdministration/Web/Content/img/icon-account.png b/DeviceAdministration/Web/Content/img/icon-account.png new file mode 100644 index 0000000000000000000000000000000000000000..cd19cb7773ea7a8f258c2c9db0d8ae01a3b84909 GIT binary patch literal 258 zcmV+d0sa1oP)+p_`+us<5_keT;vKmvw@Wpr@~Fd5MynrKPO1dWMs)w7P_jnwOubh?1Tkyyb`h z004?fL_t(|Ue(gu3Ij0+1kf4HZSVX4Ut6fGP%^a7J+B&cg7^=+liW^dCxb5#DjzF^ zi>YFEFc~Hb6J3r@12ZPM+s34#H$Do!Cfgyc@m5v4T^02erNa)d!?AQVakff|38UqChkg?Kvkm;e9(07*qo IM6N<$f`K<^eEY77Azd!PJr>3!=d?Eh@6i=^-UTijpXch?K-cX?w_sqMU(nx8Iq$BcJ0;3v}Uf z@BQEZ`JcOe=X~1W;Gn@*>F(~H8W0eWY&06<87`nsP*Y#1ud#j5+uK_e6cqH{mxksI z?CR>8jM1^cz`%_R9n=uSa&a_E=IOW5KT3^(lgIcDi#ZY;9Q^T*4h9AWQV~B#w}O6> zpP%3L{{H^8nx-`%R3IF%(|vt?4gUWAHHxzyn^*LA(XaIB075paI)GqeVPRoIUS8e{ zL~}%Z#LB?n=O9>|pP#?PY&KWp@FrLUSjh+nOr#)wu&1YIHLGd2SS*{B&;{napD%MP z#soJB@mm~I97pyD{wJK=7;>P_+$y_=u$POwjIoK;mq7OU3S^F2f|v=Lx7elwk7l7( zG@r_yI2|BTL-X2xN)?XI>_uf-2{}3@8?x zQaI~)o@db7239ND&Q~PKf?YHsp24sbM=QCYvl!gP@QQoej5n(DeeT9s`Bt2a$7T;U z>CDvw`=J?w16MSas0Yym@f6!CmvGH0OA(iNf7Mq+WzGmMoB1MMVJo8L5>Z*mes^}$ zbmSWlBOyFwo5>^`8wtlue+Sd&y*W^G#)5(Z8wqCxwpECqbmxL$4wMs#{~eMF5ih5I zNKzm|O`cf|Y&pClNwIK?fie)^{o9nOoKzBKpGeZDZv%432ZxX({cv^e`@keD*cGRS z<5~1qNneU0rs;oMBv%{MZwq~SqL1~zEpnmW$}i1(Dyco+XCeRq002ovPDHLkV1i0N B^@9Ka literal 0 HcmV?d00001 diff --git a/DeviceAdministration/Web/Content/styles/blocks/root_styles/navigation_block.less b/DeviceAdministration/Web/Content/styles/blocks/root_styles/navigation_block.less index 903e4ee7..3a5095c0 100644 --- a/DeviceAdministration/Web/Content/styles/blocks/root_styles/navigation_block.less +++ b/DeviceAdministration/Web/Content/styles/blocks/root_styles/navigation_block.less @@ -1,6 +1,6 @@ .navigation { position: fixed; - top: 50px; + top: 60px; left: 0; width: 95px; height: 100%; diff --git a/DeviceAdministration/Web/Content/styles/blocks/root_styles/root_style_values_block.less b/DeviceAdministration/Web/Content/styles/blocks/root_styles/root_style_values_block.less index 4608688a..c08f15e0 100644 --- a/DeviceAdministration/Web/Content/styles/blocks/root_styles/root_style_values_block.less +++ b/DeviceAdministration/Web/Content/styles/blocks/root_styles/root_style_values_block.less @@ -12,7 +12,7 @@ body { main { display: block; margin-left: 95px; - padding-top: 50px; + padding-top: 60px; } h1, h2, h3, h4, h5, h6 { diff --git a/DeviceAdministration/Web/Content/styles/bootstrap/bootstrap.less b/DeviceAdministration/Web/Content/styles/bootstrap/bootstrap.less new file mode 100644 index 00000000..b1854355 --- /dev/null +++ b/DeviceAdministration/Web/Content/styles/bootstrap/bootstrap.less @@ -0,0 +1,13 @@ +/*! + * Bootstrap v3.3.5 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +@import "variables.less"; +@import "mixins.less"; +@import "dropdowns.less"; +@import "navbar.less"; +@import "navs.less"; +@import "grid.less"; +@import "component-animations.less"; \ No newline at end of file diff --git a/DeviceAdministration/Web/Content/styles/bootstrap/component-animations.less b/DeviceAdministration/Web/Content/styles/bootstrap/component-animations.less new file mode 100644 index 00000000..0bcee910 --- /dev/null +++ b/DeviceAdministration/Web/Content/styles/bootstrap/component-animations.less @@ -0,0 +1,33 @@ +// +// Component animations +// -------------------------------------------------- + +// Heads up! +// +// We don't use the `.opacity()` mixin here since it causes a bug with text +// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. + +.fade { + opacity: 0; + .transition(opacity .15s linear); + &.in { + opacity: 1; + } +} + +.collapse { + display: none; + + &.in { display: block; } + tr&.in { display: table-row; } + tbody&.in { display: table-row-group; } +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + .transition-property(~"height, visibility"); + .transition-duration(.35s); + .transition-timing-function(ease); +} diff --git a/DeviceAdministration/Web/Content/styles/bootstrap/dropdowns.less b/DeviceAdministration/Web/Content/styles/bootstrap/dropdowns.less new file mode 100644 index 00000000..55d50373 --- /dev/null +++ b/DeviceAdministration/Web/Content/styles/bootstrap/dropdowns.less @@ -0,0 +1,219 @@ +@import "variables.less"; +@import "mixins.less"; + +// +// Dropdown menus +// -------------------------------------------------- + + +// Dropdown arrow/caret +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: @caret-width-base dashed; + border-top: @caret-width-base solid ~"\9"; // IE8 + border-right: @caret-width-base solid transparent; + border-left: @caret-width-base solid transparent; +} + +// The dropdown wrapper (div) +.dropup, +.dropdown { + position: relative; +} + +// Prevent the focus on the dropdown toggle when closing dropdowns +.dropdown-toggle:focus { + outline: 0; +} + +// The dropdown menu (ul) +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: @zindex-dropdown; + display: none; // none by default, but block on "open" of the menu + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; // override default ul + list-style: none; + font-size: @font-size-base; + text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) + background-color: @dropdown-bg; + border: 1px solid @dropdown-fallback-border; // IE8 fallback + border: 1px solid @dropdown-border; + border-radius: @border-radius-base; + .box-shadow(0 6px 12px rgba(0,0,0,.175)); + background-clip: padding-box; + + // Aligns the dropdown menu to right + // + // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]` + &.pull-right { + right: 0; + left: auto; + } + + // Dividers (basically an hr) within the dropdown + .divider { + .nav-divider(@dropdown-divider-bg); + } + + // Links within the dropdown menu + > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: @line-height-base; + color: @dropdown-link-color; + white-space: nowrap; // prevent links from randomly breaking onto new lines + } +} + +// Hover/Focus state +.dropdown-menu > li > a { + &:hover, + &:focus { + text-decoration: none; + color: @dropdown-link-hover-color; + background-color: @dropdown-link-hover-bg; + } +} + +// Active state +.dropdown-menu > .active > a { + &, + &:hover, + &:focus { + color: @dropdown-link-active-color; + text-decoration: none; + outline: 0; + background-color: @dropdown-link-active-bg; + } +} + +// Disabled state +// +// Gray out text and ensure the hover/focus state remains gray + +.dropdown-menu > .disabled > a { + &, + &:hover, + &:focus { + color: @dropdown-link-disabled-color; + } + + // Nuke hover/focus effects + &:hover, + &:focus { + text-decoration: none; + background-color: transparent; + background-image: none; // Remove CSS gradient + .reset-filter(); + cursor: @cursor-disabled; + } +} + +// Open state for the dropdown +.open { + // Show the menu + > .dropdown-menu { + display: block; + } + + // Remove the outline when :focus is triggered + > a { + outline: 0; + } +} + +// Menu positioning +// +// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown +// menu with the parent. +.dropdown-menu-right { + left: auto; // Reset the default from `.dropdown-menu` + right: 0; +} +// With v3, we enabled auto-flipping if you have a dropdown within a right +// aligned nav component. To enable the undoing of that, we provide an override +// to restore the default dropdown menu alignment. +// +// This is only for left-aligning a dropdown menu within a `.navbar-right` or +// `.pull-right` nav component. +.dropdown-menu-left { + left: 0; + right: auto; +} + +// Dropdown section headers +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: @font-size-small; + line-height: @line-height-base; + color: @dropdown-header-color; + white-space: nowrap; // as with > li > a +} + +// Backdrop to catch body clicks on mobile, etc. +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: (@zindex-dropdown - 10); +} + +// Right aligned dropdowns +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +// Allow for dropdowns to go bottom up (aka, dropup-menu) +// +// Just add .dropup after the standard .dropdown class and you're set, bro. +// TODO: abstract this so that the navbar fixed styles are not placed here? + +.dropup, +.navbar-fixed-bottom .dropdown { + // Reverse the caret + .caret { + border-top: 0; + border-bottom: @caret-width-base dashed; + border-bottom: @caret-width-base solid ~"\9"; // IE8 + content: ""; + } + // Different positioning for bottom up menu + .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; + } +} + + +// Component alignment +// +// Reiterate per navbar.less and the modified component alignment there. + +@media (min-width: @grid-float-breakpoint) { + .navbar-right { + .dropdown-menu { + .dropdown-menu-right(); + } + // Necessary for overrides of the default right aligned menu. + // Will remove come v4 in all likelihood. + .dropdown-menu-left { + .dropdown-menu-left(); + } + } +} diff --git a/DeviceAdministration/Web/Content/styles/bootstrap/forms.less b/DeviceAdministration/Web/Content/styles/bootstrap/forms.less new file mode 100644 index 00000000..b064ede4 --- /dev/null +++ b/DeviceAdministration/Web/Content/styles/bootstrap/forms.less @@ -0,0 +1,607 @@ +// +// Forms +// -------------------------------------------------- + + +// Normalize non-controls +// +// Restyle and baseline non-control form elements. + +fieldset { + padding: 0; + margin: 0; + border: 0; + // Chrome and Firefox set a `min-width: min-content;` on fieldsets, + // so we reset that to ensure it behaves more like a standard block element. + // See https://github.com/twbs/bootstrap/issues/12359. + min-width: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: @line-height-computed; + font-size: (@font-size-base * 1.5); + line-height: inherit; + color: @legend-color; + border: 0; + border-bottom: 1px solid @legend-border-color; +} + +label { + display: inline-block; + max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141) + margin-bottom: 5px; + font-weight: bold; +} + + +// Normalize form controls +// +// While most of our form styles require extra classes, some basic normalization +// is required to ensure optimum display with or without those classes to better +// address browser inconsistencies. + +// Override content-box in Normalize (* isn't specific enough) +input[type="search"] { + .box-sizing(border-box); +} + +// Position radios and checkboxes better +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; // IE8-9 + line-height: normal; +} + +input[type="file"] { + display: block; +} + +// Make range inputs behave like textual form controls +input[type="range"] { + display: block; + width: 100%; +} + +// Make multiple select elements height not fixed +select[multiple], +select[size] { + height: auto; +} + +// Focus for file, radio, and checkbox +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + .tab-focus(); +} + +// Adjust output element +output { + display: block; + padding-top: (@padding-base-vertical + 1); + font-size: @font-size-base; + line-height: @line-height-base; + color: @input-color; +} + + +// Common form controls +// +// Shared size and type resets for form controls. Apply `.form-control` to any +// of the following form controls: +// +// select +// textarea +// input[type="text"] +// input[type="password"] +// input[type="datetime"] +// input[type="datetime-local"] +// input[type="date"] +// input[type="month"] +// input[type="time"] +// input[type="week"] +// input[type="number"] +// input[type="email"] +// input[type="url"] +// input[type="search"] +// input[type="tel"] +// input[type="color"] + +.form-control { + display: block; + width: 100%; + height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border) + padding: @padding-base-vertical @padding-base-horizontal; + font-size: @font-size-base; + line-height: @line-height-base; + color: @input-color; + background-color: @input-bg; + background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 + border: 1px solid @input-border; + border-radius: @input-border-radius; // Note: This has no effect on s in CSS. + .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); + .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s"); + + // Customize the `:focus` state to imitate native WebKit styles. + .form-control-focus(); + + // Placeholder + .placeholder(); + + // Disabled and read-only inputs + // + // HTML5 says that controls under a fieldset > legend:first-child won't be + // disabled if the fieldset is disabled. Due to implementation difficulty, we + // don't honor that edge case; we style them as disabled anyway. + &[disabled], + &[readonly], + fieldset[disabled] & { + background-color: @input-bg-disabled; + opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655 + } + + &[disabled], + fieldset[disabled] & { + cursor: @cursor-disabled; + } + + // Reset height for `textarea`s + textarea& { + height: auto; + } +} + + +// Search inputs in iOS +// +// This overrides the extra rounded corners on search inputs in iOS so that our +// `.form-control` class can properly style them. Note that this cannot simply +// be added to `.form-control` as it's not specific enough. For details, see +// https://github.com/twbs/bootstrap/issues/11586. + +input[type="search"] { + -webkit-appearance: none; +} + + +// Special styles for iOS temporal inputs +// +// In Mobile Safari, setting `display: block` on temporal inputs causes the +// text within the input to become vertically misaligned. As a workaround, we +// set a pixel line-height that matches the given height of the input, but only +// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848 +// +// Note that as of 8.3, iOS doesn't support `datetime` or `week`. + +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"], + input[type="time"], + input[type="datetime-local"], + input[type="month"] { + &.form-control { + line-height: @input-height-base; + } + + &.input-sm, + .input-group-sm & { + line-height: @input-height-small; + } + + &.input-lg, + .input-group-lg & { + line-height: @input-height-large; + } + } +} + + +// Form groups +// +// Designed to help with the organization and spacing of vertical forms. For +// horizontal forms, use the predefined grid classes. + +.form-group { + margin-bottom: @form-group-margin-bottom; +} + + +// Checkboxes and radios +// +// Indent the labels to position radios/checkboxes as hanging controls. + +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; + + label { + min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; + } +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-left: -20px; + margin-top: 4px \9; +} + +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing +} + +// Radios and checkboxes on same line +.radio-inline, +.checkbox-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + vertical-align: middle; + font-weight: normal; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; // space out consecutive inline controls +} + +// Apply same disabled cursor tweak as for inputs +// Some special care is needed because