branch refonteUI-2017 updated (f77095a -> 0095edc)
This is an automated email from the git hooks/post-receive script. New change to branch refonteUI-2017 in repository bow. See https://gitlab.nuiton.org/chorem/bow.git from f77095a Refonte de l'UI : reprise de la refonte dans une nouvelle branche new 24b67ca Refonte de l'UI: Nettoyage dans les fichiers less et réorganisation new 8d16da1 Refonte de l'UI: Utilisation d'une police pour gérer les icones new 82c8bee Refonte de l'UI: Remplacement du header par un menu latéral new ecf8b31 Refonte de l'UI: Modification du style (Ajout d'une police, couleurs, boutons, ...) new b77669f Refonte de l'UI: Modification de l'affichage des bookmarks new c55d89f Refonte de l'UI: Ajout d'un mode d'affichage des bookmarks en grille (Utilisation de la lib bricklayer, source incluse directement pour l'instant, pour tester) new 0095edc Refonte de l'UI: Modification des jsp pour adapter le nouveau style The 7 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 0095edc365b58fbae0daf9e2967056344acd8abb Author: kaufmann <kaufmann@codelutin.com> Date: Tue Dec 19 17:44:32 2017 +0100 Refonte de l'UI: Modification des jsp pour adapter le nouveau style commit c55d89f0500ce7f5fb776666420794275f4b60f1 Author: kaufmann <kaufmann@codelutin.com> Date: Tue Dec 19 17:44:07 2017 +0100 Refonte de l'UI: Ajout d'un mode d'affichage des bookmarks en grille (Utilisation de la lib bricklayer, source incluse directement pour l'instant, pour tester) commit b77669f604dcea40d1f489fa26efdd6d61a6a3b2 Author: kaufmann <kaufmann@codelutin.com> Date: Tue Dec 19 17:43:03 2017 +0100 Refonte de l'UI: Modification de l'affichage des bookmarks commit ecf8b31cc76b1099d182d66a8279b2d89fffd34f Author: kaufmann <kaufmann@codelutin.com> Date: Tue Dec 19 17:42:34 2017 +0100 Refonte de l'UI: Modification du style (Ajout d'une police, couleurs, boutons, ...) commit 82c8beeea69d0378811ed9021ce0c56a74b7652b Author: kaufmann <kaufmann@codelutin.com> Date: Tue Dec 19 17:39:18 2017 +0100 Refonte de l'UI: Remplacement du header par un menu latéral commit 8d16da1e5590aa852dbfaaede7474eebd9fdf5b2 Author: kaufmann <kaufmann@codelutin.com> Date: Tue Dec 19 17:38:23 2017 +0100 Refonte de l'UI: Utilisation d'une police pour gérer les icones commit 24b67ca673cbfc1b1a53c8ad12065ba0c0537a15 Author: kaufmann <kaufmann@codelutin.com> Date: Tue Dec 19 17:36:43 2017 +0100 Refonte de l'UI: Nettoyage dans les fichiers less et réorganisation Summary of changes: bow-ui/src/main/less/base/_all.less | 4 - bow-ui/src/main/less/base/_footer.less | 19 +- bow-ui/src/main/less/base/_header.less | 80 ---- bow-ui/src/main/less/base/_layout.less | 93 +---- bow-ui/src/main/less/base/_sidebar.less | 49 +++ bow-ui/src/main/less/bow.less | 19 +- bow-ui/src/main/less/common/_all.less | 10 - bow-ui/src/main/less/common/_bookmark-grid.less | 136 ++++--- bow-ui/src/main/less/common/_bookmark-list.less | 82 ++-- bow-ui/src/main/less/common/_bookmark.less | 85 +++-- bow-ui/src/main/less/common/_button.less | 19 +- bow-ui/src/main/less/common/_dropdown.less | 19 - bow-ui/src/main/less/common/_font.less | 20 + bow-ui/src/main/less/common/_form.less | 52 ++- bow-ui/src/main/less/common/_icons.less | 127 ++++--- bow-ui/src/main/less/common/_modal.less | 3 + bow-ui/src/main/less/common/_notifications.less | 40 ++ bow-ui/src/main/less/common/_tags.less | 8 - bow-ui/src/main/less/common/_tools.less | 9 + bow-ui/src/main/less/components/bookmark.less | 418 --------------------- bow-ui/src/main/less/components/connexion.less | 20 +- bow-ui/src/main/less/variables/_all.less | 3 - bow-ui/src/main/less/variables/_colors.less | 45 ++- bow-ui/src/main/less/variables/_globals.less | 12 +- bow-ui/src/main/webapp/WEB-INF/decorators/main.jsp | 11 +- bow-ui/src/main/webapp/WEB-INF/jsp/admin.jsp | 10 +- .../src/main/webapp/WEB-INF/jsp/editBookmark.jsp | 35 +- bow-ui/src/main/webapp/WEB-INF/jsp/groupView.jsp | 68 ++-- bow-ui/src/main/webapp/WEB-INF/jsp/home.jsp | 41 +- .../src/main/webapp/WEB-INF/jsp/inc/bookmark.jsp | 140 ++++--- bow-ui/src/main/webapp/WEB-INF/jsp/inc/footer.jsp | 5 +- bow-ui/src/main/webapp/WEB-INF/jsp/inc/sidebar.jsp | 136 +++++++ bow-ui/src/main/webapp/WEB-INF/jsp/login.jsp | 13 +- bow-ui/src/main/webapp/WEB-INF/jsp/preferences.jsp | 403 ++++++++++---------- .../src/main/webapp/WEB-INF/jsp/sharedUserView.jsp | 74 ++-- bow-ui/src/main/webapp/css/bricklayer.min.css | 1 + bow-ui/src/main/webapp/font/Titillium-Bold.otf | Bin 0 -> 55568 bytes bow-ui/src/main/webapp/font/Titillium-Light.otf | Bin 0 -> 57068 bytes bow-ui/src/main/webapp/font/Titillium-Regular.otf | Bin 0 -> 57460 bytes bow-ui/src/main/webapp/font/bow-icons.eot | Bin 0 -> 8200 bytes bow-ui/src/main/webapp/font/bow-icons.svg | 41 ++ bow-ui/src/main/webapp/font/bow-icons.ttf | Bin 0 -> 8028 bytes bow-ui/src/main/webapp/font/bow-icons.woff | Bin 0 -> 8104 bytes bow-ui/src/main/webapp/font/icomoon.woff | Bin 2836 -> 0 bytes bow-ui/src/main/webapp/js/bricklayer.min.js | 1 + 45 files changed, 1078 insertions(+), 1273 deletions(-) delete mode 100644 bow-ui/src/main/less/base/_all.less delete mode 100644 bow-ui/src/main/less/base/_header.less create mode 100644 bow-ui/src/main/less/base/_sidebar.less delete mode 100644 bow-ui/src/main/less/common/_all.less delete mode 100644 bow-ui/src/main/less/common/_dropdown.less create mode 100644 bow-ui/src/main/less/common/_font.less create mode 100644 bow-ui/src/main/less/common/_modal.less create mode 100644 bow-ui/src/main/less/common/_notifications.less delete mode 100644 bow-ui/src/main/less/common/_tags.less delete mode 100644 bow-ui/src/main/less/components/bookmark.less delete mode 100644 bow-ui/src/main/less/variables/_all.less create mode 100644 bow-ui/src/main/webapp/WEB-INF/jsp/inc/sidebar.jsp create mode 100644 bow-ui/src/main/webapp/css/bricklayer.min.css create mode 100755 bow-ui/src/main/webapp/font/Titillium-Bold.otf create mode 100755 bow-ui/src/main/webapp/font/Titillium-Light.otf create mode 100755 bow-ui/src/main/webapp/font/Titillium-Regular.otf create mode 100644 bow-ui/src/main/webapp/font/bow-icons.eot create mode 100644 bow-ui/src/main/webapp/font/bow-icons.svg create mode 100644 bow-ui/src/main/webapp/font/bow-icons.ttf create mode 100644 bow-ui/src/main/webapp/font/bow-icons.woff delete mode 100644 bow-ui/src/main/webapp/font/icomoon.woff create mode 100644 bow-ui/src/main/webapp/js/bricklayer.min.js -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch refonteUI-2017 in repository bow. See https://gitlab.nuiton.org/chorem/bow.git commit 24b67ca673cbfc1b1a53c8ad12065ba0c0537a15 Author: kaufmann <kaufmann@codelutin.com> Date: Tue Dec 19 17:36:43 2017 +0100 Refonte de l'UI: Nettoyage dans les fichiers less et réorganisation --- bow-ui/src/main/less/base/_all.less | 4 - bow-ui/src/main/less/base/_header.less | 80 ----- bow-ui/src/main/less/bow.less | 19 +- bow-ui/src/main/less/common/_all.less | 10 - bow-ui/src/main/less/common/_dropdown.less | 19 -- bow-ui/src/main/less/common/_tags.less | 8 - bow-ui/src/main/less/components/bookmark.less | 418 -------------------------- bow-ui/src/main/less/variables/_all.less | 3 - 8 files changed, 16 insertions(+), 545 deletions(-) diff --git a/bow-ui/src/main/less/base/_all.less b/bow-ui/src/main/less/base/_all.less deleted file mode 100644 index fdb1d2e..0000000 --- a/bow-ui/src/main/less/base/_all.less +++ /dev/null @@ -1,4 +0,0 @@ -// Import de tous les fichiers LESS du dossier -@import "_footer"; -@import "_header"; -@import "_layout"; diff --git a/bow-ui/src/main/less/base/_header.less b/bow-ui/src/main/less/base/_header.less deleted file mode 100644 index f91e087..0000000 --- a/bow-ui/src/main/less/base/_header.less +++ /dev/null @@ -1,80 +0,0 @@ -#header{ - background:#fff; - height:@default-header-height; - width:100%; - border-bottom: 1px solid @color-separation-border; -} -.header-logo { - height: @default-header-height - 2 * @default-marge--small; - - float: left; - - margin-left: @default-marge--large; - margin-top: @default-marge--small; - margin-right: @default-marge--medium; - - display: block; - - img { - height: 100%; - } -} - -#header-user-infos { - float: right; - - padding-right: @default-marge--large; - padding-left: @default-marge--small; - - background-color: @color-background-user-infos; - height: @default-header-height; - - .logout { - display: none; /* FIXME LK à virer */ - } -} - -.header-link { - height: @default-header-height; - line-height: @default-header-height; - - margin-right: @default-marge--small; - - display: inline-block; - vertical-align: middle; - - i { - line-height: inherit; - opacity: 0.5; - vertical-align: middle; - } -} - - -#header-search { - float: right; - - margin-right: @default-marge--small; - - border-bottom: 1px solid @color-separation-border; - - .header-search-label, - select, - input { - height: @default-header-height - 3 * @default-marge--small; - - margin-top: 1.5 * @default-marge--small; - - border: 0; - } - input { - width: 70px; - transition: width 1s 0s; - &:focus { - width: 200px; - } - } - form { - display: inline-block; - } -} \ No newline at end of file diff --git a/bow-ui/src/main/less/bow.less b/bow-ui/src/main/less/bow.less index a7e61e9..818c80e 100644 --- a/bow-ui/src/main/less/bow.less +++ b/bow-ui/src/main/less/bow.less @@ -9,6 +9,19 @@ // - vendors : CSS provenant des 3rd party // Le fichier _print.less est inclus en dernier pour surcharger les autres -@import "variables/_all"; -@import "base/_all"; -@import "common/_all"; +@import "variables/_colors"; +@import "variables/_globals"; + +@import "base/_footer"; +@import "base/_sidebar"; +@import "base/_layout"; + +@import "common/_bookmark"; +@import "common/_bookmark-list"; +@import "common/_bookmark-grid"; +@import "common/_button"; +@import "common/_form"; +@import "common/_icons"; +@import "common/_modal"; +@import "common/_notifications"; +@import "common/_tools"; diff --git a/bow-ui/src/main/less/common/_all.less b/bow-ui/src/main/less/common/_all.less deleted file mode 100644 index 66b9101..0000000 --- a/bow-ui/src/main/less/common/_all.less +++ /dev/null @@ -1,10 +0,0 @@ -// Import de tous les fichiers LESS du dossier -@import "_bookmark"; -@import "_bookmark-list"; -@import "_bookmark-grid"; -@import "_button"; -@import "_dropdown"; -@import "_form"; -@import "_icons"; -@import "_tags"; -@import "_tools"; diff --git a/bow-ui/src/main/less/common/_dropdown.less b/bow-ui/src/main/less/common/_dropdown.less deleted file mode 100644 index 43f741e..0000000 --- a/bow-ui/src/main/less/common/_dropdown.less +++ /dev/null @@ -1,19 +0,0 @@ -.dropdown-menu { - position: relative; - - ul { - display: none; - } - - &:hover { - - ul { - display: block; - position: absolute; - right: 0; - top: 100%; - background: #888; - z-index: 999; - } - } -} \ No newline at end of file diff --git a/bow-ui/src/main/less/common/_tags.less b/bow-ui/src/main/less/common/_tags.less deleted file mode 100644 index a524f4b..0000000 --- a/bow-ui/src/main/less/common/_tags.less +++ /dev/null @@ -1,8 +0,0 @@ -.cloud { - - -} - -.cloud-tag { - padding: 5px; -} \ No newline at end of file diff --git a/bow-ui/src/main/less/components/bookmark.less b/bow-ui/src/main/less/components/bookmark.less deleted file mode 100644 index 7b6acce..0000000 --- a/bow-ui/src/main/less/components/bookmark.less +++ /dev/null @@ -1,418 +0,0 @@ -#page{ - margin: 15px 0 50px 0; -} - - -#main{ - clear:both; -} - -.content{ - width:90%; - margin: 0 auto; -} - -#side { - clear:right; - float:right; - position:relative; - right:73%; - width:27%; - display: none; /* FIXME LK : side to remove*/ -} - -.bookmark{ - width:100%; - height:auto; - clear: both; - background-color: #f3f6f9; - margin: 10px 0; -} - -.spacemax { - width: 100%; -} - -.bookmark .favicon { - width: 32px; - height: 32px; - float:left; -} - - - -.bookmark .bookmarkhead .screenshotLink{ - width:31px; - height:32px; - background:url('../img/camera.png') no-repeat; -} - -.bookmark .bookmarkhead .edit{ - background:url('../img/edit.jpg') no-repeat; - width:31px; - height:32px; -} - -.bookmark .bookmarkhead .supprim{ - background:url('../img/croix.jpg') no-repeat; - width:31px; - height:32px; -} - -.bookmark .bookmarkhead a{ - color:#FFF; - font-weight:bold; - font-size:14px; - display:block; - text-decoration:none; -} - -.bookmark .bookmarkhead .alias{ -} - -.bookmark .screenshot{ - float:left; - margin:5px 10px; - width:100px; - height:75px; - /*background:url('../img/livreG.jpg') no-repeat;*/ -} - -.bookmark .description{ - margin:5px 5px; - color:#999999; - font-size:12px; - position: relative; - width: 100%; -} - - -.bookmark .description .tags{ - color:#88516c; - background:url('../img/tag.jpg') no-repeat left center; - font-size:12px; - padding-left:30px; - height:auto; - width:100%; - line-height:28px; - padding-top:10px; - margin-bottom:-70px; -} - -.bookmark .description .tags .tag{ - margin-right:5px; - text-decoration:none; -} - -.bookmark .click{ - float:right; - width:31px; - text-align:center; -} - -.nobookmarks{ - font-size: large; - padding-left: 5px; -} - -a.help{ - background:transparent url('../img/aide.jpg') no-repeat scroll 0 0; - display:block; - height:34px; - text-indent:-99999px; - width:34px; - float:left; -} - - -#side #colonneD{ - font-size:14px; - color:#9edcf8; -} - -#colonneD{ - overflow-x:auto; - background-color:#804561; - margin-top: -2px; -} - -#colonneD a{ - font-size:12px; - color:#9edcf8; -} - -#colonneD ul.droite{ - padding:5% 10%; - border-bottom: 0 solid #9edcf8; -} - -#colonneD ul.droite li{ - list-style:none; - height:auto; - font-size:100%; -} - -#colonneD ul.droite li a{ - font-size:14px; - font-weight:normal; - text-decoration:none; - color:#9edcf8; -} - -#colonneD ul.droite li a:hover{ - text-decoration:underline; -} - -#colonneD #extensions h2 { - margin: 4% 0 0 10%; -} - -#colonneD #extensions li { - padding-bottom: 10px; -} - -#colonneD #extensions .extensionIcon { - float:left; - border:0 none; - margin-right:10px; -} - -#colonneD #extensions .extensionName { - padding: 4px 0 0 30px; -} - -#colonneD #nuage, -#colonneD #import, -#colonneD #add{ - padding:4% 10%; - border-bottom: 0 solid #9edcf8; -} - -#colonneD h2{ - color:#9edcf8; - font-size:140%; - font-weight:normal; -} - -#colonneD #add{ - height:auto; -} - -#colonneD #add form{ - clear:both; -} - -#colonneD form .input{ - padding:10px 0; -} - -#colonneD form input{ - width:50%; - border:none; - height:28px; - padding-left:4px; -} - -#colonneD #add form label{ - display:inline-block; - padding-right:9%; - text-align:right; - width:45px; -} - -#colonneD form input[type="submit"]{ - background:transparent url('../img/fondbouton.jpg') repeat-x scroll 0 0; - border:medium none; - color:#9C7186; - display:block; - float:right; - font-size:12px; - font-weight:bold; - height:28px; - line-height:28px; - position:relative; - right:20%; - text-align:center; - text-decoration:none; - width:25%; -} - -#colonneD #nuage{ - padding-right:80px; - min-height:100px; - text-align:justify; -} - -.colonnebas img{ - width:86%; - height:auto; - display:block; - position:relative; -} - -#import .input input{ - width:90%; - margin-bottom:10px; -} - - - -.formFrame{ - float: left; /* pour que le contenu en float ne deborde pas du cadre */ - width: 90%; - min-width:400px; -/* min-height: 315px; */ - position:relative; - margin-top:20px; - margin-bottom:20px; - margin-right:100px; - margin-left:40px; - padding-top:10px; - padding-bottom:10px; - padding-left:40px; - padding-right:70px; -} - -.formFrame ul{ - padding-left:10px; -} - -.formFrame h1{ - color:#804561; - width:225px; - position:relative; - margin:20px auto; -} - -.formFrame p{ - color:#804561; - font-size:11px; - font-weight:bold; - padding:15px 0; -} - -.formFrame p input[type="text"], td input[type="text"], -.formFrame p input[type="password"], td input[type="password"]{ - width:225px; -} - -.formFrame input[type="submit"]{ - margin-top:20px; - background:url('../img/fdboutonV.jpg') repeat-x; - height:31px; - line-height:31px; - color:#FFFFFF; - font-weight:bold; - border:none; - width:auto; - padding:2px; -} - -.formFrame p a{ - position:absolute; - color:#804561; - left:75px; - font-weight:bold; - font-size:12px; - margin-top:2px; -} - -.formFrame #homePage, -.formFrame #regenPermToken{ - bottom:50px; - left:185px; - font-size:10px; -} - -.formFrame p input, td input{ - margin-bottom:2px; -} - -.deleteImport{ - width:100%; - height:32px; - border:1px solid black; - margin-bottom:4px; - padding-top:10px; - padding-left:15px; -} - -.deleteImportPink{ - background-color:#BF8A9C; -} - -.deleteImportWhite{ - background-color:white; - margin-left:30px; -} - -.deleteImport span{ - color:blue; - font-size:large; -} - -.deleteImport .deleteImportButton{ - background:url('../img/croixtr.png') no-repeat; - width:31px; - height:32px; - float:right; - margin-right:15px; - position:relative; - top:-5px; -} - -#deleteSearchResultsButton{ - background:url('../img/croixtr.png') no-repeat; - width:31px; - height:32px; - float:right; - margin-left:25px; - margin-right:11px; -} - -.input label{ - color:#804561; -/* - font-size:20px; - font-weight:normal; - font-style:normal; - float:left; - margin-bottom:20px; - width:100%; -*/ -} - -#bookmarkForm label{ - margin-top:12px; - font-style:normal; -} - -#add h2{ - margin-bottom:20px; -} - -#adminActions li{ - list-style-type:none; - padding-bottom:15px; -} - -#adminActions li a{ - text-decoration:none; - color:#804561; - font-size:11px; - font-weight:bold; -} - -#labelsForm .list input{ - float: left; - clear:left; -} - -#labelsForm .list label { - float: left; -} - -#labelsForm .action { - float: left; - clear:left; -} diff --git a/bow-ui/src/main/less/variables/_all.less b/bow-ui/src/main/less/variables/_all.less deleted file mode 100644 index 07a3a31..0000000 --- a/bow-ui/src/main/less/variables/_all.less +++ /dev/null @@ -1,3 +0,0 @@ -// Import de tous les fichiers LESS du dossier -@import "_colors"; -@import "_globals"; -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch refonteUI-2017 in repository bow. See https://gitlab.nuiton.org/chorem/bow.git commit 8d16da1e5590aa852dbfaaede7474eebd9fdf5b2 Author: kaufmann <kaufmann@codelutin.com> Date: Tue Dec 19 17:38:23 2017 +0100 Refonte de l'UI: Utilisation d'une police pour gérer les icones --- bow-ui/src/main/less/common/_icons.less | 127 ++++++++++++++-------- bow-ui/src/main/webapp/font/Titillium-Bold.otf | Bin 0 -> 55568 bytes bow-ui/src/main/webapp/font/Titillium-Light.otf | Bin 0 -> 57068 bytes bow-ui/src/main/webapp/font/Titillium-Regular.otf | Bin 0 -> 57460 bytes bow-ui/src/main/webapp/font/bow-icons.eot | Bin 0 -> 8200 bytes bow-ui/src/main/webapp/font/bow-icons.svg | 41 +++++++ bow-ui/src/main/webapp/font/bow-icons.ttf | Bin 0 -> 8028 bytes bow-ui/src/main/webapp/font/bow-icons.woff | Bin 0 -> 8104 bytes bow-ui/src/main/webapp/font/icomoon.woff | Bin 2836 -> 0 bytes 9 files changed, 122 insertions(+), 46 deletions(-) diff --git a/bow-ui/src/main/less/common/_icons.less b/bow-ui/src/main/less/common/_icons.less index d023878..1be8c4b 100644 --- a/bow-ui/src/main/less/common/_icons.less +++ b/bow-ui/src/main/less/common/_icons.less @@ -1,19 +1,18 @@ @font-face { - font-family: 'icomoon'; - src: url('../font/icomoon.eot?7t5stk'); - src: url('../font/icomoon.eot?7t5stk#iefix') format('embedded-opentype'), - url('../font/icomoon.ttf?7t5stk') format('truetype'), - url('../font/icomoon.woff?7t5stk') format('woff'), - url('../font/icomoon.svg?7t5stk#icomoon') format('svg'); + font-family: 'bow-icons'; + src: url('../font/bow-icons.eot?7z7uw9'); + src: url('../font/bow-icons.eot?7z7uw9#iefix') format('embedded-opentype'), + url('../font/bow-icons.ttf?7z7uw9') format('truetype'), + url('../font/bow-icons.woff?7z7uw9') format('woff'), + url('../font/bow-icons.svg?7z7uw9#bow-icons') format('svg'); font-weight: normal; font-style: normal; } -[class^="icon-"], [class*=" icon-"] { +.icon { /* use !important to prevent issues with browser extensions that change fonts */ - font-family: 'icomoon' !important; + font-family: 'bow-icons' !important; speak: none; - font-size: 21px; font-style: normal; font-weight: normal; font-variant: normal; @@ -25,63 +24,99 @@ -moz-osx-font-smoothing: grayscale; } -.icon--huge { - font-size: 60px; +.icon-lock:before { + content: "\e91c"; } - -.icon--large { - font-size: 26px; +.icon-trashcan:before { + content: "\e91d"; } - -.icon--small { - font-size: 16px; +.icon-pencil:before { + content: "\e91e"; } - -.icon--mini { - font-size: 12px; +.icon-lutin:before { + content: "\e919"; } - -.icon-logout:before { - content: "\e907"; - //color: #979797; +.icon-menu:before { + content: "\e91a"; } -.icon-settings:before { - content: "\e908"; - //color: #979797; +.icon-heart:before { + content: "\e91b"; } .icon-grid:before { - content: "\e909"; - //color: #157efb; + content: "\e917"; } .icon-list:before { - content: "\e90a"; - //color: #157efb; + content: "\e918"; } -.icon-add:before { +.icon-stats:before { + content: "\e916"; +} +.icon-admin:before { + content: "\e915"; +} +.icon-bookmark-group:before { + content: "\e90e"; +} +.icon-group:before { + content: "\e911"; +} +.icon-signs:before { + content: "\e913"; +} +.icon-bow_letter_b:before { content: "\e900"; - //color: #929292; + //color: #804561; } -.icon-click:before { +.icon-bow_letter_o:before { content: "\e901"; - //color: #157efb; + //color: #7dbed2; } -.icon-lock:before { +.icon-bow_letter_w:before { content: "\e902"; - //color: #157efb; + //color: #7dbed2; } -.icon-search:before { +.icon-exit:before { content: "\e903"; - //color: #929292; } -.icon-star:before { +.icon-search:before { + content: "\e90d"; +} +.icon-bookmark:before { content: "\e904"; - //color: #157efb; } -.icon-tag:before { +.icon-bookmark-check:before { content: "\e905"; - //color: #157efb; } -.icon-trash:before { +.icon-bookmark-minus:before { content: "\e906"; - //color: #929292; -} \ No newline at end of file +} +.icon-bookmark-plus:before { + content: "\e907"; +} +.icon-bookmark-remove:before { + content: "\e908"; +} +.icon-link:before { + content: "\e909"; +} +.icon-mail:before { + content: "\e90a"; +} +.icon-camera:before { + content: "\e90b"; +} +.icon-settings:before { + content: "\e90c"; +} +.icon-tag:before { + content: "\e90f"; +} +.icon-tags:before { + content: "\e910"; +} +.icon-eject:before { + content: "\e912"; +} +.icon-star:before { + content: "\e914"; +} diff --git a/bow-ui/src/main/webapp/font/Titillium-Bold.otf b/bow-ui/src/main/webapp/font/Titillium-Bold.otf new file mode 100755 index 0000000..a92497b Binary files /dev/null and b/bow-ui/src/main/webapp/font/Titillium-Bold.otf differ diff --git a/bow-ui/src/main/webapp/font/Titillium-Light.otf b/bow-ui/src/main/webapp/font/Titillium-Light.otf new file mode 100755 index 0000000..79f6929 Binary files /dev/null and b/bow-ui/src/main/webapp/font/Titillium-Light.otf differ diff --git a/bow-ui/src/main/webapp/font/Titillium-Regular.otf b/bow-ui/src/main/webapp/font/Titillium-Regular.otf new file mode 100755 index 0000000..3243bc1 Binary files /dev/null and b/bow-ui/src/main/webapp/font/Titillium-Regular.otf differ diff --git a/bow-ui/src/main/webapp/font/bow-icons.eot b/bow-ui/src/main/webapp/font/bow-icons.eot new file mode 100644 index 0000000..293ce19 Binary files /dev/null and b/bow-ui/src/main/webapp/font/bow-icons.eot differ diff --git a/bow-ui/src/main/webapp/font/bow-icons.svg b/bow-ui/src/main/webapp/font/bow-icons.svg new file mode 100644 index 0000000..1f7ba06 --- /dev/null +++ b/bow-ui/src/main/webapp/font/bow-icons.svg @@ -0,0 +1,41 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata>Generated by IcoMoon</metadata> +<defs> +<font id="bow-icons" horiz-adv-x="1024"> +<font-face units-per-em="1024" ascent="960" descent="-64" /> +<missing-glyph horiz-adv-x="1024" /> +<glyph unicode=" " horiz-adv-x="512" d="" /> +<glyph unicode="" glyph-name="bow_letter_b" horiz-adv-x="858" d="M42.127 946.796l-0.825-0.13c-6.89-1.305-12.601-3.41-17.185-7.164-2.884-2.362-4.322-5.667-6.128-8.732h-4.792v-920.358l115.679 115.604v-176.817h416.648c103.724 0 179.728 26.674 228.965 78.944s69.871 127.649 69.871 219.892c0 104.801-48.383 181.687-114.52 216.027 28.805 15.758 51.579 39.209 67.144 66.987 23.176 41.36 32.972 90.755 32.972 137.117 0 71.759-18.855 140.548-65.413 191.548s-120.008 82.42-222.959 82.42h-275.25 [...] +<glyph unicode="" glyph-name="bow_letter_o" horiz-adv-x="501" d="M251.072 469.395c-82.706 0-143.41-14.164-182.485-57.453s-52.944-110.363-52.944-209.382c0-87.026 13.173-150.808 51.579-193.537s99.014-59.823 183.85-59.823c85.052 0 145.427 15.293 183.695 57.402s50.858 105.917 50.858 195.959c0 96.265-12.923 163.159-51.296 207.141s-99.048 59.695-183.258 59.695zM251.072 434.485c79.95 0 127.822-14.325 156.953-47.714s42.691-91.199 42.691-184.211c0-86.676-12.977-140.814-41.763-172.488s-76. [...] +<glyph unicode="" glyph-name="bow_letter_w" horiz-adv-x="739" d="M136.14 478.85l-122.945-107.074 2.989-10.615 115.757-411.962h171.020l43.798 140.103 57.633-140.103h166.099l152.186 412.143-57.582 53.151-70.464 57.582-113.67-309.629-73.942 172.308h-93.832l-84.969-171.664zM117.925 416.708l101.844-349.331 115.087 232.466h49.157l99.474-231.796 127.015 345.981 31.689-25.893 39.65-36.61-135.672-367.443h-118.41l-85.51 207.862-64.95-207.862h-118.925l-105.606 375.867 40.475 35.271z" /> +<glyph unicode="" glyph-name="exit" d="M741.125 892.719c-68.481 0-124.219-55.738-124.219-124.219s55.738-124.219 124.219-124.219c68.481 0 124.219 55.738 124.219 124.219s-55.738 124.219-124.219 124.219zM741.125 871.906c57.24 0 103.406-46.167 103.406-103.406s-46.167-103.438-103.406-103.438c-57.24 0-103.406 46.198-103.406 103.438s46.167 103.406 103.406 103.406zM470.938 678.562c-6.315 0.082-12.194-1.108-17.469-2.844-0.224-0.066-0.501-0.142-0.656-0.188l-0.25-0.062-0.281-0.094c-1.089-0. [...] +<glyph unicode="" glyph-name="bookmark" d="M272-70.624l240 240 240-240v1030.624h-480v-1030.624zM304 928h416v-921.376l-208 208-208-208v921.376z" /> +<glyph unicode="" glyph-name="bookmark-check" d="M512 169.376l240-240v1030.624h-480v-1030.624l240 240zM304 928h416v-921.376l-208 208-208-208v921.376zM676.688 715.312l-196.688-196.688-100.688 100.688-22.624-24.976 112-114.336h22.624l208 210.336z" /> +<glyph unicode="" glyph-name="bookmark-minus" d="M368 624h288v-32h-288v32zM512 169.376l240-240v1030.624h-480v-1030.624l240 240zM304 928h416v-921.376l-208 208-208-208v921.376z" /> +<glyph unicode="" glyph-name="bookmark-plus" d="M528 464v128h128v32h-128v128h-32v-128h-128v-32h128v-128zM512 169.376l240-240v1030.624h-480v-1030.624l240 240zM304 928h416v-921.376l-208 208-208-208v921.376z" /> +<glyph unicode="" glyph-name="bookmark-remove" d="M512 169.376l240-240v1030.624h-480v-1030.624l240 240zM304 928h416v-921.376l-208 208-208-208v921.376zM612.688 484.688l22.624 22.624-100.688 100.688 100.688 100.688-22.624 22.624-100.688-100.688-100.688 100.688-22.624-22.624 100.688-100.688-100.688-100.688 22.624-22.624 100.688 100.688z" /> +<glyph unicode="" glyph-name="link" d="M847.776 960c-0.048 0-0.096 0-0.128 0-38.416 0-74.928-12.128-105.584-35.152l-209.664-209.68c-33.888-34.592-52.528-78.336-52.496-123.232 0.016-24.464 4.976-48.176 14.72-70.4v0c0.944-2.16 1.92-4.288 2.96-6.4l28.72 14.144c-0.816 1.664-1.6 3.344-2.336 5.056l-14.672-6.384 14.656 6.416c-7.984 18.192-12.032 37.584-12.048 57.648-0.016 36.448 15.376 72.272 43.248 100.72l207.024 207.2c24.88 18.4 54.416 28.064 85.488 28.064 0.032 0 0.064 0 0.112 0 38.4 [...] +<glyph unicode="" glyph-name="mail" d="M1024 768h-1024v-624h1024v624zM953.68 736l-441.68-284.96-441.68 284.96h883.36zM32 176v546.64l480-309.68 480 309.68v-546.64h-960z" /> +<glyph unicode="" glyph-name="camera" d="M615.68 816h-207.36l-128-160h-280.32v-544h1024v544h-280.32l-128 160zM32 624h96v-480h-96v480zM992 144h-832v480h135.68l128 160h176.64l128-160h263.68v-480zM512 528c-79.392 0-144-64.592-144-144s64.608-144 144-144 144 64.592 144 144-64.608 144-144 144zM512 272c-61.76 0-112 50.256-112 112s50.24 112 112 112 112-50.256 112-112-50.24-112-112-112z" /> +<glyph unicode="" glyph-name="settings" d="M656 358.624l-66.4 66.4 120.944 118.976h57.456c80.304 0 176 37.472 176 216v25.168l-140.448-65.84-48.608 50.624 61.44 142.048h-24.384c-178.528 0-216-96.176-216-176v-57.44l-119.072-120.864-194.304 194.304 51.168 51.168-188.272 112.976-49.664-49.664 112.976-188.288 51.168 51.184 194.464-194.464-392.704-398.56-31.872-109.296 47.488-44.688 109.712 27.136 399.68 393.072 66.608-66.576-48-48 326.624-326.624 118.624 118.624-326.624 326.624-48-48z [...] +<glyph unicode="" glyph-name="search" d="M398.333 840.5c-153.524 0-278.833-125.31-278.833-278.833s125.31-278.833 278.833-278.833c62.447 0 119.992 21.007 166.569 55.938l283.268-283.268 56.327 56.327-283.268 283.268c34.931 46.576 55.938 104.122 55.938 166.569 0 153.524-125.31 278.833-278.833 278.833zM398.333 760.833c110.469 0 199.167-88.698 199.167-199.167s-88.698-199.167-199.167-199.167c-110.469 0-199.167 88.698-199.167 199.167s88.698 199.167 199.167 199.167z" /> +<glyph unicode="" glyph-name="bookmark-group" d="M272 960v-1030.625l240 240 240-240v1030.625h-480zM304 928h416v-921.375l-208 208-208-208v921.375zM416 733.688c-34.992 0-63.469-28.477-63.469-63.469 0-18.45 8.007-34.994 20.625-46.594-24.36-11.389-45.469-30.772-45.469-52.781v-44.281h11.156v44.281c0 28.959 48.197 52.313 77.156 52.313s77.156-23.354 77.156-52.313v-44.281h11.156v44.281c0 22.009-21.108 41.392-45.469 52.781 12.623 11.599 20.625 28.14 20.625 46.594 0 34.992-28.477 63.469-63 [...] +<glyph unicode="" glyph-name="tag" d="M624-70.624l-624 624v406.624h406.624l624-624-406.624-406.624zM32 566.624l592-592 361.376 361.376-592 592h-361.376v-361.376zM272 576c-61.76 0-112 50.24-112 112s50.24 112 112 112 112-50.24 112-112-50.24-112-112-112zM272 768c-44.112 0-80-35.888-80-80s35.888-80 80-80 80 35.888 80 80-35.888 80-80 80z" /> +<glyph unicode="" glyph-name="tags" d="M545.552-6.624l-545.552 545.552v357.072h357.072l545.552-545.552-357.072-357.072zM32 552.176l513.552-513.552 311.824 311.824-513.552 513.552h-311.824v-311.824zM684.864 4.688l-22.624 22.624 323.136 323.136-518.24 518.24 22.624 22.624 540.864-540.864zM224 576c-52.944 0-96 43.056-96 96s43.056 96 96 96 96-43.056 96-96-43.056-96-96-96zM224 736c-35.296 0-64-28.704-64-64s28.704-64 64-64 64 28.704 64 64-28.704 64-64 64z" /> +<glyph unicode="" glyph-name="group" d="M307.61 705.982c-74.5 0-135.129-60.629-135.129-135.129 0-39.281 17.046-74.504 43.912-99.201-51.864-24.249-96.806-65.516-96.806-112.375v-94.278h23.752v94.278c0 61.655 102.615 111.377 164.27 111.377s164.27-49.721 164.27-111.377v-94.278h23.752v94.278c0 46.859-44.941 88.126-96.806 112.375 26.876 24.695 43.912 59.913 43.912 99.201 0 74.5-60.629 135.129-135.129 135.129zM716.39 705.982c-74.5 0-135.129-60.629-135.129-135.129 0-39.281 17.046-74.504 [...] +<glyph unicode="" glyph-name="eject" d="M499.424 656l-176-227.056 12.576-28.944h352l12.576 28.944-176 227.056h-25.152zM368.928 432l143.072 182.096 143.072-182.096h-286.144zM352 336h320v-32h-320v32zM512 960c-136.768 0-265.328-53.28-362.032-150-96.72-96.672-149.984-225.248-149.984-362s53.264-265.328 149.984-362.016c96.704-96.72 225.264-149.984 362.032-149.984 136.752 0 265.328 53.28 362.032 150 96.72 96.688 149.984 225.264 149.984 362.016s-53.264 265.328-149.984 362.016c-96.704 96. [...] +<glyph unicode="" glyph-name="signs" d="M496 304v-336h-112v-32h256v32h-112v336h160v224h-160v32h357.92l130.656 112-130.656 112h-357.92v64h-32v-64h-160v-224h160v-32h-357.92l-130.656-112 130.656-112h357.92zM368 752h506.080l93.344-80-93.344-80h-506.080v160zM149.92 496h506.080v-160h-506.080l-93.344 80 93.344 80z" /> +<glyph unicode="" glyph-name="star" d="M512 992.704l-139.376-400.704h-387.264l315.872-245.68-140.624-421.856 351.392 263.536 351.376-263.536-140.624 421.856 315.888 245.68h-387.264l-139.376 400.704zM685.248 357.68l115.376-346.144-288.624 216.464-288.624-216.464 115.376 346.144-260.112 202.32h316.736l116.624 335.296 116.624-335.296h316.736l-260.112-202.32z" /> +<glyph unicode="" glyph-name="admin" d="M752.478 600.32v-123.618c-6.097 7.487-13.269 13.263-21.641 17.085-12.057 5.504-24.516 8.239-37.359 8.239-18.085 0-33.669-4.726-46.774-14.161s-23.182-21.739-30.259-36.941c-7.077-15.202-10.631-31.723-10.631-49.546 0-18.609 3.827-35.521 11.428-50.723 7.863-14.94 18.331-26.853 31.436-35.764 13.367-8.911 28.288-13.364 44.8-13.364 13.891 0 26.741 3.163 38.536 9.454 8.371 4.549 15.125 10.718 20.464 18.3l3.911-23.805h31.474v294.845zM313.513 502.026 [...] +<glyph unicode="" glyph-name="stats" d="M368-64h-224v576h224v-576zM176-32h160v512h-160v-512zM880-64h-224v416h224v-416zM688-32h160v352h-160v-352zM624-64h-224v1024h224v-1024zM432-32h160v960h-160v-960z" /> +<glyph unicode="" glyph-name="grid" d="M184 776v-80h80v80h-80zM376 776v-80h80v80h-80zM568 776v-80h80v80h-80zM760 776v-80h80v80h-80zM184 584v-80h80v80h-80zM376 584v-80h80v80h-80zM568 584v-80h80v80h-80zM760 584v-80h80v80h-80zM184 392v-80h80v80h-80zM376 392v-80h80v80h-80zM568 392v-80h80v80h-80zM760 392v-80h80v80h-80zM184 200v-80h80v80h-80zM376 200v-80h80v80h-80zM568 200v-80h80v80h-80zM760 200v-80h80v80h-80z" /> +<glyph unicode="" glyph-name="list" d="M107 733.969v-27.938h810v27.938h-810zM107 552.625v-27.937h810v27.937h-810zM107 371.312v-27.937h810v27.937h-810zM107 189.969v-27.938h810v27.938h-810z" /> +<glyph unicode="" glyph-name="lutin" horiz-adv-x="395" d="M280.592 64.171c-11.779-7.202-23.559-12.42-36.618-16.997-9.155-2.625-15.684-11.779-15.044-21.574 0.64-16.357 7.202-34.026 18.981-50.35 24.871-34.666 64.114-49.070 87.001-32.041 23.559 16.997 22.246 58.225-2.625 92.891-8.514 12.42-18.981 21.574-30.089 28.776-5.89 3.937-15.044 3.937-21.574-0.64zM119.042 61.547c-7.202 3.937-16.997 3.937-23.559-1.312-8.514-6.53-16.997-14.404-24.199-24.199-24.839-34.666-25.511-76.534-2.625-92.8 [...] +<glyph unicode="" glyph-name="menu" d="M512 883c-30.718 0-59.593-11.964-81.312-33.688-21.723-21.72-33.688-50.598-33.688-81.312s11.964-59.593 33.688-81.312c21.72-21.723 50.594-33.688 81.312-33.688 30.715 0 59.593 11.964 81.312 33.688 21.723 21.72 33.688 50.598 33.688 81.312s-11.964 59.593-33.688 81.312c-21.72 21.723-50.598 33.688-81.312 33.688zM512 563c-30.718 0-59.593-11.964-81.312-33.688-21.723-21.72-33.688-50.598-33.688-81.312s11.964-59.593 33.688-81.312c21.72-21.723 50.594-33. [...] +<glyph unicode="" glyph-name="heart" d="M768 896c-117.712 0-218.224-66.336-256-158.864-37.776 92.528-138.288 158.864-256 158.864-160.24 0-256-138.304-256-272 0-137.424 85.216-284.080 253.28-435.872 123.808-111.824 249.44-185.232 250.688-185.968l8.032-4.656 8.032 4.656c1.264 0.736 126.88 74.144 250.688 185.968 168.064 151.792 253.28 298.448 253.28 435.872 0 133.696-95.76 272-256 272zM768 864c-512-618.667-256-309.333 0 0z" /> +<glyph unicode="" glyph-name="lock" d="M784 688c0 149.984-122.016 272-272 272s-272-122.016-272-272v-240h-128v-512h800v512h-128v240zM272 688c0 132.336 107.664 240 240 240s240-107.664 240-240v-240h-480v240zM880-32h-736v448h736v-448zM496 129.632v-49.632h32v49.632c36.464 7.424 64 39.744 64 78.368 0 44.112-35.888 80-80 80s-80-35.888-80-80c0-38.624 27.536-70.96 64-78.368zM512 256c26.464 0 48-21.536 48-48s-21.536-48-48-48-48 21.536-48 48 21.536 48 48 48z" /> +<glyph unicode="" glyph-name="trashcan" d="M752 603.376l192.656-655.888 30.688 9.008-56.992 194.064 93.248 31.088-72.8 254.8-95.12-31.696-61.52 209.44-30.16-8.864v162.672h-37.344l-79.984 192h-210.336l-66.176-82.16-146.192 2.352-32.048-112.192h-35.92v-832h608v667.376zM917.2 395.536l55.2-193.2-63.088-21.024-56.608 192.72 64.496 21.504zM439.664 928h173.664l66.672-160h-268.256l-28.224 90.336 56.144 69.664zM236.016 847.808l117.872-1.904 24.368-77.904h-165.040l22.8 79.808zM720-32h-544v [...] +<glyph unicode="" glyph-name="pencil" d="M168.739 290.757l-46.522-232.54 232.54 46.522 547.026 547.026-186.018 186.018zM320.879 168.027l-111.048-22.196 22.196 111.048 380.661 380.661 88.852-88.852zM750.124 597.272l-88.852 88.852 54.493 54.493 88.852-88.852z" /> +</font></defs></svg> \ No newline at end of file diff --git a/bow-ui/src/main/webapp/font/bow-icons.ttf b/bow-ui/src/main/webapp/font/bow-icons.ttf new file mode 100644 index 0000000..12149d4 Binary files /dev/null and b/bow-ui/src/main/webapp/font/bow-icons.ttf differ diff --git a/bow-ui/src/main/webapp/font/bow-icons.woff b/bow-ui/src/main/webapp/font/bow-icons.woff new file mode 100644 index 0000000..93abdef Binary files /dev/null and b/bow-ui/src/main/webapp/font/bow-icons.woff differ diff --git a/bow-ui/src/main/webapp/font/icomoon.woff b/bow-ui/src/main/webapp/font/icomoon.woff deleted file mode 100644 index ab5b1dc..0000000 Binary files a/bow-ui/src/main/webapp/font/icomoon.woff and /dev/null differ -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch refonteUI-2017 in repository bow. See https://gitlab.nuiton.org/chorem/bow.git commit 82c8beeea69d0378811ed9021ce0c56a74b7652b Author: kaufmann <kaufmann@codelutin.com> Date: Tue Dec 19 17:39:18 2017 +0100 Refonte de l'UI: Remplacement du header par un menu latéral --- bow-ui/src/main/less/base/_sidebar.less | 49 ++++++++ bow-ui/src/main/webapp/WEB-INF/jsp/inc/sidebar.jsp | 136 +++++++++++++++++++++ 2 files changed, 185 insertions(+) diff --git a/bow-ui/src/main/less/base/_sidebar.less b/bow-ui/src/main/less/base/_sidebar.less new file mode 100644 index 0000000..d69ff2b --- /dev/null +++ b/bow-ui/src/main/less/base/_sidebar.less @@ -0,0 +1,49 @@ +#sidebar { + position: fixed; + left: 0; + + width: @default-sidebar-width; + height: 100%; + /* TMP */ overflow: hidden; +} + +.sidebar-logo { + position: fixed; + + width: @default-sidebar-width; + height: @default-sidebar-width; + padding: 20px; + + text-align: center; + + color: @color-text-on-color; + background-color: @color-main; + + font-size: 36px; +} + +.sidebar-menu { + display: flex; + flex-direction: column; + + height: 100%; + padding-top: @default-sidebar-width; + + background-color: @color-sidebar-background; +} + +.sidebar-menu-link { + flex: 1; + + padding-top: @default-marge--medium; + + text-align: center; + + .icon { + font-size: 30px; + color: @color-menu-link; + } + &:hover .icon { + color: @color-menu-link-hover; + } +} \ No newline at end of file diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/inc/sidebar.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/inc/sidebar.jsp new file mode 100644 index 0000000..be87bff --- /dev/null +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/inc/sidebar.jsp @@ -0,0 +1,136 @@ +<%-- +#%L + BOW UI + %% + Copyright (C) 2010 - 2011 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% +--%> +<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<%@taglib prefix="s" uri="/struts-tags" %> + +<div id="sidebar" + xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" + xmlns:jsp="http://java.sun.com/JSP/Page"> + + <s:if test="%{#session.BowSession.user != null}"> + <s:url var="homeToken" action="home"> + <s:param name="token" value="%{#session.BowSession.getPermanentToken()}" /> + </s:url> + </s:if> + + <div class="sidebar-logo"> + <span class="icon icon-bow_letter_b"></span> + </div> + + <div class="sidebar-menu"> + + <s:if test="!bowSession.user.extensionNames.contains('BowSharedUser')"> + <s:url var="editBookmark" action="editBookmark" escapeAmp="true"> + <s:param name="tagLine"><s:property value="%{tagLine}" /></s:param> + <s:param name="fullTextLine"><s:property value="%{fullTextLine}" /></s:param> + <s:param name="order" value="%{order}"/> + <s:param name="first" value="%{first}"/> + </s:url> + <s:text var="addUrlLabel" name="bow.rightMenu.addUrl.link" /> + <s:a href="%{editBookmark}" class="sidebar-menu-link" title="%{addUrlLabel}"> + <span class="icon icon-bookmark-plus"></span> + </s:a> + + <div class="sidebar-menu-link"> + <span class="header-search-label" title="Recherche"> + <i class="icon-search icon"></i> + </span> + + <div class="fullscreen-modal"> + <s:form action="home" theme="simple"> + <s:textfield name="tagLine" labelSeparator="" /> + <s:hidden name="order" value="%{order}"/> + <s:hidden name="token" value="%{#session.BowSession.getPermanentToken()}"/> + </s:form> + + <s:form action="home" theme="simple"> + <s:textfield name="fullTextLine" labelSeparator="" /> + <s:hidden name="order" value="%{order}"/> + <s:hidden name="token" value="%{#session.BowSession.getPermanentToken()}"/> + </s:form> + + <s:form action="openSearchResult" theme="simple"> + <s:hidden name="token" value="%{#session.BowSession.getPermanentToken()}"/> + <s:textfield name="q" labelSeparator="" /> + <s:submit key="bow.rightMenu.externSearchEngine" name="submit" /> + </s:form> + </div> + </div> + + <div class="sidebar-menu-link"> + <s:text var="groupLabel" name="bow.groupView.title" /> + <s:a action="groupView" title="%{groupLabel}"> + <i class="icon-bookmark-group icon"></i> + </s:a> + </div> + <div class="sidebar-menu-link"> + <s:text var="sharedUserLabel" name="bow.sharedUserView.title" /> + <s:a action="sharedUserView" title="%{sharedUserLabel}"> + <i class="icon-group icon"></i> + </s:a> + </div> + </s:if> + + <div class="sidebar-menu-link"> + <a href="http://maven-site.chorem.org/bow/" class="help" target="_blank" title="<s:text name='bow.rightMenu.help' />"> + <i class="icon-signs icon"></i> + </a> + </div> + + <s:if test="!bowSession.user.extensionNames.contains('BowSharedUser')"> + <div class="sidebar-menu-link"> + <s:a action="preferences"> + <i class="icon-settings icon"></i> + </s:a> + </div> + + <s:if test="bowSession.admin"> + <div class="sidebar-menu-link"> + <s:a action="fragment/callStatistic" title="CallStatistic"> + <i class="icon-stats icon"></i> + </s:a> + </div> + <div class="sidebar-menu-link"> + <s:text var="adminLabel" name="bow.rightMenu.admin" /> + <s:a action="admin" title="%{adminLabel}"> + <i class="icon-admin icon"></i> + </s:a> + </div> + </s:if> + + <div class="sidebar-menu-link"> + <s:url var="logout" action="logout" escapeAmp="true" /> + <s:a href="%{logout}" class="sidebar-menu-link" title="Deconnexion"> + <span class="icon icon-exit"></span> + </s:a> + </div> + </s:if> + </div> + + <div id="msg"> + <span id="actionmessageHeader"> + <s:actionmessage /> + </span> + <span id="actionerrorHeader"> + <s:actionerror /> + </span> + </div> +</div> -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch refonteUI-2017 in repository bow. See https://gitlab.nuiton.org/chorem/bow.git commit ecf8b31cc76b1099d182d66a8279b2d89fffd34f Author: kaufmann <kaufmann@codelutin.com> Date: Tue Dec 19 17:42:34 2017 +0100 Refonte de l'UI: Modification du style (Ajout d'une police, couleurs, boutons, ...) --- bow-ui/src/main/less/base/_footer.less | 19 +++-- bow-ui/src/main/less/base/_layout.less | 93 ++++--------------------- bow-ui/src/main/less/common/_button.less | 19 +++-- bow-ui/src/main/less/common/_font.less | 20 ++++++ bow-ui/src/main/less/common/_form.less | 52 ++++++++------ bow-ui/src/main/less/common/_modal.less | 3 + bow-ui/src/main/less/common/_notifications.less | 40 +++++++++++ bow-ui/src/main/less/common/_tools.less | 9 +++ bow-ui/src/main/less/components/connexion.less | 20 +++--- bow-ui/src/main/less/variables/_colors.less | 45 ++++++++---- bow-ui/src/main/less/variables/_globals.less | 12 ++-- 11 files changed, 185 insertions(+), 147 deletions(-) diff --git a/bow-ui/src/main/less/base/_footer.less b/bow-ui/src/main/less/base/_footer.less index 84457bb..806b396 100644 --- a/bow-ui/src/main/less/base/_footer.less +++ b/bow-ui/src/main/less/base/_footer.less @@ -1,14 +1,11 @@ - #footer{ - padding-top:30px; -} - -#footer a{ - color:#bf8a9c; + margin-top: -@default-footer-height; + height: @default-footer-height; + text-align: center; + color: #CCC; + + a { + color: #BBB; + } } -#footer p{ - font-size:14px; - text-align:center; - line-height:50px; -} diff --git a/bow-ui/src/main/less/base/_layout.less b/bow-ui/src/main/less/base/_layout.less index 72175a1..8cbb9e2 100644 --- a/bow-ui/src/main/less/base/_layout.less +++ b/bow-ui/src/main/less/base/_layout.less @@ -1,90 +1,25 @@ *{ - padding:0; margin:0; + padding:0; + vertical-align: baseline; + box-sizing: border-box; } body{ - font-size: @defaut-font-size; - font-family:Verdana, Arial, Helvetica, sans-serif; -} - - -#page-wrap{ - clear:both; - float:left; - overflow-x:hidden; - overflow-y:visible; - position:relative; - width:100%; -} - - - - -#main .menu{ - margin: 0 auto; - clear:both; - border-bottom: 2px solid #804561; - text-align: center; -} - - -#main .counter { - -} - -#main .menu form{ - color:#9edcf8; - font-size:12px; -} - -#import .input input{ - width:90%; - margin-bottom:10px; -} - -.error{ - float:left; - color:red; - font-size:medium; - background-color:white; - overflow:auto; - margin-bottom:25px; - padding:4px; -} + overflow-x: hidden; -.errorMessage{ - font-weight:normal; - font-size:12px; - color:red; -} + padding-left: @default-sidebar-width; -#actionmessageHeader{ - color:blue; - position:fixed; - left:25%; - top:12px; -} - -#actionerrorHeader{ - color:red; - position:relative; - left:25%; - top:12px; -} - -#actionmessageHeader ul, #actionerrorHeader ul{ - list-style-type:none; + background-color: @color-background; + font-family: @default-font, Verdana, Arial; + font-size: @defaut-font-size; } -.fond { - background: #E0EDF3; - - padding:10px; +#bow-main { + min-height: 100vh; + padding-bottom: @default-footer-height; } -form, .wwFormTable{ - color:#804561; - font-size:11px; - font-weight:bold; -} +h1 { + color: @color-main; +} \ No newline at end of file diff --git a/bow-ui/src/main/less/common/_button.less b/bow-ui/src/main/less/common/_button.less index 1fc2551..a100b91 100644 --- a/bow-ui/src/main/less/common/_button.less +++ b/bow-ui/src/main/less/common/_button.less @@ -1,4 +1,3 @@ - a { color: @color-link; text-decoration: none; @@ -8,14 +7,12 @@ a { } } -.button{ - margin-top:20px; - background:url('../img/fdboutonV.jpg') repeat-x; - height:31px; - line-height:31px; - color:#FFFFFF; - font-weight:bold; - border:none; - width:auto; - padding:2px; +.buttton, +.submit-button { + background-color: transparent; + border: 2px solid @color-main; + color: @color-main; + outline: none; + + padding: @default-marge--small / 2 @default-marge--small; } \ No newline at end of file diff --git a/bow-ui/src/main/less/common/_font.less b/bow-ui/src/main/less/common/_font.less new file mode 100644 index 0000000..47edd76 --- /dev/null +++ b/bow-ui/src/main/less/common/_font.less @@ -0,0 +1,20 @@ +@font-face { + font-family: 'Titillium'; + src: url('../font/Titillium-Regular.otf'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'Titillium'; + src: url('../font/Titillium-Bold.otf'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'Titillium'; + src: url('../font/Titillium-Light.otf'); + font-weight: lighter; + font-style: normal; +} \ No newline at end of file diff --git a/bow-ui/src/main/less/common/_form.less b/bow-ui/src/main/less/common/_form.less index 90b6b47..57c370e 100644 --- a/bow-ui/src/main/less/common/_form.less +++ b/bow-ui/src/main/less/common/_form.less @@ -1,26 +1,38 @@ - - - -.recherche .input { - float: left; -} - -.user { - background: #CCC; +.bow-form-wrapper { + text-align: center; + padding-top: @default-marge--large; } -.user a { - color: #888; - border-color: #888; +.bow-form { + display: table; + margin: @default-marge--small auto @default-marge--large auto; } -.user #logout { +.bow-form-row { + text-align: left; + border-bottom: 1px solid @color-separation-border; + padding-top: @default-marge--small; + padding-bottom: @default-marge--small; + display: flex; + + label { + display: block; float: left; -} - - - -textarea{ - height:100px; - width:200px; + font-style: normal; + font-weight: lighter; + margin-bottom: @default-marge--small; + margin-top: @default-marge--small; + font-size: 110%; + color: @color-form-label; + min-width: 25%; + } + input[type="text"], + input[type="password"], + input[type="number"], + textarea { + flex: 1; + border: 1px solid @color-separation-border; + border-radius: 3px; + padding: @default-marge--small @default-marge--small; + } } \ No newline at end of file diff --git a/bow-ui/src/main/less/common/_modal.less b/bow-ui/src/main/less/common/_modal.less new file mode 100644 index 0000000..7d4484d --- /dev/null +++ b/bow-ui/src/main/less/common/_modal.less @@ -0,0 +1,3 @@ +.fullscreen-modal { + display: none; +} \ No newline at end of file diff --git a/bow-ui/src/main/less/common/_notifications.less b/bow-ui/src/main/less/common/_notifications.less new file mode 100644 index 0000000..db82230 --- /dev/null +++ b/bow-ui/src/main/less/common/_notifications.less @@ -0,0 +1,40 @@ + +.error{ + float:left; + overflow:auto; + + margin-bottom:25px; + padding:4px; + + color:red; + background-color:white; + + font-size:medium; +} + +.errorMessage{ + color:red; + + font-size:12px; + font-weight:normal; +} + +#actionmessageHeader{ + position:fixed; + top:12px; + left:25%; + + color:blue; +} + +#actionerrorHeader{ + position:relative; + top:12px; + left:25%; + + color:red; +} + +#actionmessageHeader ul, #actionerrorHeader ul{ + list-style-type:none; +} diff --git a/bow-ui/src/main/less/common/_tools.less b/bow-ui/src/main/less/common/_tools.less index a979e46..6b42f71 100644 --- a/bow-ui/src/main/less/common/_tools.less +++ b/bow-ui/src/main/less/common/_tools.less @@ -25,4 +25,13 @@ left: 50%; top: 50%; transform: translate(-50%, -50%); +} + +.gradient(@color: #F5F5F5, @start: #EEE, @stop: #FFF) { + background: @color; + background: -webkit-gradient(linear,left bottom,left top,color-stop(0, @start),color-stop(1, @stop)); + background: -ms-linear-gradient(bottom,@start,@stop); + background: -moz-linear-gradient(center bottom,@start 0%,@stop 100%); + background: -o-linear-gradient(@stop,@start); + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@stop,@start)); } \ No newline at end of file diff --git a/bow-ui/src/main/less/components/connexion.less b/bow-ui/src/main/less/components/connexion.less index 10dbd1d..fd11ef2 100644 --- a/bow-ui/src/main/less/components/connexion.less +++ b/bow-ui/src/main/less/components/connexion.less @@ -1,12 +1,14 @@ -// out: ../../webapp/generated-css/components/connexion.css, sourcemap: true, compress: true +@import "../common/_tools"; +@import "../variables/_colors"; +@import "../variables/_globals"; -#header { - background:#FFFFFF; - height:30px; - box-shadow: 0px 2px 5px rgba(0,0,0,0.05); +#bow-login { + min-height: calc(~"100vh" - @default-footer-height); + .gradient(@color-main, @color-main, darken(@color-main, 15)); + color: #FFF; } -#header a.logo{ - background:transparent url('../img/logobow.png') no-repeat scroll 0 0; - height:25px; -} \ No newline at end of file +#bow-login-header { + background-color: @color-sidebar-background; + min-height: @default-sidebar-width; +} diff --git a/bow-ui/src/main/less/variables/_colors.less b/bow-ui/src/main/less/variables/_colors.less index 0c98e84..718ed55 100644 --- a/bow-ui/src/main/less/variables/_colors.less +++ b/bow-ui/src/main/less/variables/_colors.less @@ -1,18 +1,37 @@ -@color-purple : #804561; -@color-blue-1 : #7DBED2; -@color-blue-2 : darken(@color-blue-1, 25%); -@color-grey-1 : #DDD; -@color-grey-2 : #F5F5F5; +@col-purple : #804561; +@col-purple-bright : #f390bf; +@col-blue : #7DBED2; +@col-blue-dark : darken(@col-blue, 25%); +@col-blue-pale : #E9F2F5; +@col-grey-medium : #DDD; +@col-grey-pale : #f9f5f7; +@col-grey-dark : #999; +@col-dark : #1e2a2f; +@col-dark-pale : #777; +@col-white : #FFF; +@col-white-pale : #FAFBFC; -@color-white-1 : #FFF; -@color-white-2 : #FAFBFC; -@color-background : @color-white-1; -@color-background-user-infos : @color-grey-2; +@color-background : lighten(@color-sidebar-background, 75%); -@color-link : @color-blue-1; -@color-link-hover : @color-blue-2; +@color-sidebar-background : @col-dark; -@color-main : @color-purple; +@color-link : @col-blue; +@color-link-hover : @col-blue-dark; +@color-menu-link : @col-grey-dark; +@color-menu-link-hover : @col-purple-bright; -@color-separation-border : @color-grey-1; \ No newline at end of file +@color-text-on-color : @col-white; + +@color-main : @col-purple; + +@color-bookmark-background : @color-main; +@color-bookmark-title : @col-white; +@color-bookmark-text : @col-white-pale; +@color-bookmark-shadow : @col-dark; + +@color-form-label : @col-dark-pale; + +@color-tag-cloud-background : mix(@col-blue, #FFF, 70%); + +@color-separation-border : @col-grey-medium; \ No newline at end of file diff --git a/bow-ui/src/main/less/variables/_globals.less b/bow-ui/src/main/less/variables/_globals.less index 8f308c2..32e69a6 100644 --- a/bow-ui/src/main/less/variables/_globals.less +++ b/bow-ui/src/main/less/variables/_globals.less @@ -1,7 +1,11 @@ -@default-header-height: 50px; - -@defaut-font-size: 14px; +@default-footer-height: 100px; +@default-sidebar-width: 75px; @default-marge--small: 10px; @default-marge--medium: 30px; -@default-marge--large: 50px; \ No newline at end of file +@default-marge--large: 50px; + +@default-font: Titillium; +@defaut-font-size: 16px; + +@default-bookmark-radius: 5px; \ No newline at end of file -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch refonteUI-2017 in repository bow. See https://gitlab.nuiton.org/chorem/bow.git commit b77669f604dcea40d1f489fa26efdd6d61a6a3b2 Author: kaufmann <kaufmann@codelutin.com> Date: Tue Dec 19 17:43:03 2017 +0100 Refonte de l'UI: Modification de l'affichage des bookmarks --- bow-ui/src/main/less/common/_bookmark-list.less | 82 +++++++----------------- bow-ui/src/main/less/common/_bookmark.less | 85 +++++++++++++++---------- 2 files changed, 74 insertions(+), 93 deletions(-) diff --git a/bow-ui/src/main/less/common/_bookmark-list.less b/bow-ui/src/main/less/common/_bookmark-list.less index c2c9d7a..af64c63 100644 --- a/bow-ui/src/main/less/common/_bookmark-list.less +++ b/bow-ui/src/main/less/common/_bookmark-list.less @@ -1,89 +1,51 @@ -@default-screenshot-width: 100px; - @list-line-min-height: 75px; .bookmarks-list { .bookmark { - width:100%; - height:auto; - min-height: @list-line-min-height; - clear: both; - background-color: #f3f6f9; - margin-bottom: @default-marge--small; - margin-top: @default-marge--small; - position: relative; - } + display: flex; + flex-direction: row; + background-color: #FFF; - .bookmark-favicon { - width: 16px; - height: 16px; - float:left; - margin-right: @default-marge--small; + &:nth-child(2n+1) { + background-color: #FAFAFA; + } } - - .bookmark-link { - color: @color-link; + + .bookmark-favicon { } .bookmark-description { - margin:5px 5px; - color:#999999; - font-size:12px; - position: relative; - width: 100%; } - .bookmark-screenshot{ - float: left; - width: @default-screenshot-width; - height: @list-line-min-height; + .bookmark-title { + color: #555; } .bookmark-content { - margin-left: @default-screenshot-width + 15px; - - padding-top: @default-marge--small; - padding-right: 100px; - } - .bookmark-infos { - float: right; - width: 100px; - text-align: right; + color: #333; + padding: @default-marge--small @default-marge--small @default-marge--small @default-marge--medium; + flex: 1; } .bookmark-nb-click { } .bookmark-tags{ - color:#88516c; - font-size:12px; - height:auto; - width:100%; - line-height:28px; - padding-top:10px; - - & > a { - margin: 5px; - border: 1px solid #eee; - } } - + .bookmark-actions { - position: absolute; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - overflow: hidden; - width: 0; - height: 0; - background: rgba(0,0,0,0.2); - transition: all 1s 0s ease; + opacity: 0.4; + a { + float: left; + margin: @default-marge--small / 2 @default-marge--medium / 2; + } } .bookmark:hover { + box-shadow: 0px 1px 2px fade(@color-bookmark-shadow, 30%); .bookmark-actions { - //width: 100%; - //height: 100%; + opacity: 1; } } + } \ No newline at end of file diff --git a/bow-ui/src/main/less/common/_bookmark.less b/bow-ui/src/main/less/common/_bookmark.less index d9ccd10..6be27bb 100644 --- a/bow-ui/src/main/less/common/_bookmark.less +++ b/bow-ui/src/main/less/common/_bookmark.less @@ -1,23 +1,19 @@ #bookmarks-tags { padding-left: @default-marge--large; padding-right: @default-marge--large; + margin-bottom: @default-marge--small; - background: #E9F2F5; - position: relative; + border-bottom: 1px solid @color-separation-border; - .actions { - background: #F3F6F9; - width: 100px; - height: 100%; - position: absolute; - right: 0; - z-index: 99; - padding: 0 2em; - margin-right: 5%; - } + min-height: @default-sidebar-width; + + text-align: center; - .tag { - color: #7DBED2; + background: @color-tag-cloud-background; + color: #FFF; + + a { + color: inherit; } } @@ -31,15 +27,16 @@ color: @color-main; position: relative; text-align: center; + font-size: 130%; } -#bookmarks-display-mode { +#bookmarks-display-settings-mode { position: absolute; bottom: 0; left: @default-marge--small; } -#bookmarks-display-sort { +#bookmarks-display-settings-sort { position: absolute; bottom: 0; right: @default-marge--small; @@ -50,29 +47,51 @@ padding-right: @default-marge--large; } +.bookmark { + margin-bottom: @default-marge--small; + height: auto; + background-color: @color-bookmark-background; + padding: 0; + box-shadow: 0 0 2px 1px fade(@color-bookmark-shadow,2%); + border-radius: @default-bookmark-radius; +} +.bookmark-title { + color: @color-bookmark-title; + font-weight: bold; + font-size: 120%; +} -#bookmarks-tags { - margin-bottom: @default-marge--small; +.bookmark-link { + color: inherit; +} - border-bottom: 1px solid @color-separation-border; +.bookmark-favicon { + width: 16px; + height: 16px; + margin-right: @default-marge--small; +} +.bookmark-content { + color: @color-bookmark-text; +} - .cloud { - padding-bottom: @default-marge--small; - padding-top: @default-marge--small; - margin-right: 250px; - } - - #bookmarks-tags-edition { - padding-top: @default-marge--small; - background-color: rgba(255,255,255,0.3); - position: absolute; - width: 250px; - right: 0; - height: 100%; - } +.bookmark-metadata { + font-weight: lighter; + font-size: 90%; } +.bookmark-description { + padding: @default-marge--small 0; +} + +.bookmark-tags .tag { + border-bottom: 1px solid darken(@color-bookmark-text, 20%); + color: inherit; + padding: @default-marge--small / 3 @default-marge--small / 4; + background: rgba(255,255,255,0.1); +} + + .pagination { text-align: center; } -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch refonteUI-2017 in repository bow. See https://gitlab.nuiton.org/chorem/bow.git commit c55d89f0500ce7f5fb776666420794275f4b60f1 Author: kaufmann <kaufmann@codelutin.com> Date: Tue Dec 19 17:44:07 2017 +0100 Refonte de l'UI: Ajout d'un mode d'affichage des bookmarks en grille (Utilisation de la lib bricklayer, source incluse directement pour l'instant, pour tester) --- bow-ui/src/main/less/common/_bookmark-grid.less | 136 ++++++++++++++++-------- bow-ui/src/main/webapp/css/bricklayer.min.css | 1 + bow-ui/src/main/webapp/js/bricklayer.min.js | 1 + 3 files changed, 94 insertions(+), 44 deletions(-) diff --git a/bow-ui/src/main/less/common/_bookmark-grid.less b/bow-ui/src/main/less/common/_bookmark-grid.less index 241eca1..1f6852d 100644 --- a/bow-ui/src/main/less/common/_bookmark-grid.less +++ b/bow-ui/src/main/less/common/_bookmark-grid.less @@ -1,62 +1,110 @@ .bookmarks-grid { - display: flex; - .bookmark { - margin-left: 1%; - margin-right: 1%; - margin-bottom: @default-marge--small; - margin-top: @default-marge--small; - height:auto; - background-color: #f3f6f9; + margin-bottom: 2 * @default-marge--small; } - .bookmark-favicon { - width: 16px; - height: 16px; - float:left; + .bookmark-title { + padding: @default-marge--small; + text-align: center; } - - .bookmark-description{ - margin:5px 5px; - color:#999999; - font-size:12px; - position: relative; - width: 100%; + .bookmark-content { + padding: 0 @default-marge--small @default-marge--small @default-marge--small; + position: relative; } - .bookmark-screenshot{ - width:100%; + .bookmark-screenshot-image { + border-radius: @default-bookmark-radius - 1 @default-bookmark-radius - 1 0 0; // -1 to avoir display issues with two stacked elements with radius + width: 100%; + height: auto; + } - img { - width: 100%; - max-height: 150px; - } + .bookmark-metadata { + text-align: center; } - .bookmark-content { + .bookmark-tags { + padding-left: @default-marge--small; + padding-right: @default-marge--small; } - .bookmark-tags{ - color:#88516c; - background:url('../img/tag.jpg') no-repeat left center; - font-size:12px; - padding-left:30px; - height:auto; - width:100%; - line-height:28px; - padding-top:10px; + // FIXME LK TMP >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - & > a { - margin: 5px; - padding: 5px; - border: 1px solid #eee; - } + .bookmark-actions-menu { + margin: @default-marge--small / 2; + border-radius: 50%; + padding: 5px; + position: absolute; + right: 10px; + top: -17px; + background: #7DBED2; + border: 2px solid #fff; + color: #000; + + &:hover ~.bookmark-actions { + display: block; + } + } + .bookmark-actions { + display: none; + position: absolute; + left: 0; + top: 0; + background: @color-sidebar-background; + width: 100%; + height: 100%; + border-radius: 0 0 5px 5px; + text-align: center; + padding: 15px; + + &:hover { + display: block; + } } +} + +// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< - .bookmark-nb-click{ +.bricklayer-column { + padding-right: @default-marge--small; + padding-left: @default-marge--small; +} + +.bricklayer-column:nth-child(3n) .bookmark:nth-child(3n+1) { + background-color: lighten(@color-bookmark-background, 10%); +} +.bricklayer-column:nth-child(3n) .bookmark:nth-child(3n+2) { + background-color: darken(@color-bookmark-background, 20%); +} +.bricklayer-column:nth-child(3n) .bookmark:nth-child(3n+3) { + background-color: mix(@color-bookmark-background, @color-sidebar-background, 70%); +} +.bricklayer-column:nth-child(3n+1) .bookmark:nth-child(3n+1) { + background-color: mix(@color-bookmark-background, @color-sidebar-background); +} +.bricklayer-column:nth-child(3n+1) .bookmark:nth-child(3n+2) { + background-color: lighten(@color-bookmark-background, 20%); +} +.bricklayer-column:nth-child(3n+1) .bookmark:nth-child(3n+3) { + background-color: lighten(@color-bookmark-background, 15%); +} +.bricklayer-column:nth-child(3n+2) .bookmark:nth-child(3n+1) { + background-color: darken(@color-bookmark-background, 10%); +} +.bricklayer-column:nth-child(3n+2) .bookmark:nth-child(3n+2) { + background-color: mix(@color-bookmark-background, @color-sidebar-background, 30%); +} +.bricklayer-column:nth-child(3n+2) .bookmark:nth-child(3n+3) { + background-color: darken(@color-bookmark-background, 15%); +} + +@media screen and (min-width: 984px) { + .bricklayer-column-sizer { + width: 33.3%; } +} - .bookmark-actions { - display: none; +@media screen and (min-width: 1200px) { + .bricklayer-column-sizer { + width: 25%; } -} \ No newline at end of file +} diff --git a/bow-ui/src/main/webapp/css/bricklayer.min.css b/bow-ui/src/main/webapp/css/bricklayer.min.css new file mode 100644 index 0000000..f62e047 --- /dev/null +++ b/bow-ui/src/main/webapp/css/bricklayer.min.css @@ -0,0 +1 @@ +.bricklayer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.bricklayer-column-sizer{width:100%;display:none}@media screen and (min-width:640px){.bricklayer-column-sizer{width:50%}}@media screen and (min-width:9 [...] \ No newline at end of file diff --git a/bow-ui/src/main/webapp/js/bricklayer.min.js b/bow-ui/src/main/webapp/js/bricklayer.min.js new file mode 100644 index 0000000..5451c46 --- /dev/null +++ b/bow-ui/src/main/webapp/js/bricklayer.min.js @@ -0,0 +1 @@ +!function t(e,n,r){function o(s,u){if(!n[s]){if(!e[s]){var l="function"==typeof require&&require;if(!u&&l)return l(s,!0);if(i)return i(s,!0);var a=new Error("Cannot find module '"+s+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[s]={exports:{}};e[s][0].call(p.exports,function(t){var n=e[s][1][t];return o(n?n:t)},p,p.exports,t,e,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s<r.length;s++)o(r[s]);return o}({1:[function(t,e,n){var r,o=this&&this.__extends||func [...] \ No newline at end of file -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch refonteUI-2017 in repository bow. See https://gitlab.nuiton.org/chorem/bow.git commit 0095edc365b58fbae0daf9e2967056344acd8abb Author: kaufmann <kaufmann@codelutin.com> Date: Tue Dec 19 17:44:32 2017 +0100 Refonte de l'UI: Modification des jsp pour adapter le nouveau style --- bow-ui/src/main/webapp/WEB-INF/decorators/main.jsp | 11 +- bow-ui/src/main/webapp/WEB-INF/jsp/admin.jsp | 10 +- .../src/main/webapp/WEB-INF/jsp/editBookmark.jsp | 35 +- bow-ui/src/main/webapp/WEB-INF/jsp/groupView.jsp | 68 ++-- bow-ui/src/main/webapp/WEB-INF/jsp/home.jsp | 41 ++- .../src/main/webapp/WEB-INF/jsp/inc/bookmark.jsp | 140 ++++--- bow-ui/src/main/webapp/WEB-INF/jsp/inc/footer.jsp | 5 +- bow-ui/src/main/webapp/WEB-INF/jsp/login.jsp | 13 +- bow-ui/src/main/webapp/WEB-INF/jsp/preferences.jsp | 403 +++++++++++---------- .../src/main/webapp/WEB-INF/jsp/sharedUserView.jsp | 74 ++-- 10 files changed, 402 insertions(+), 398 deletions(-) diff --git a/bow-ui/src/main/webapp/WEB-INF/decorators/main.jsp b/bow-ui/src/main/webapp/WEB-INF/decorators/main.jsp index 4743a7c..7aa3459 100644 --- a/bow-ui/src/main/webapp/WEB-INF/decorators/main.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/decorators/main.jsp @@ -52,19 +52,16 @@ <s:url var="jqueryUiCSS" value="/css/jquery-ui-1.8.11.custom.bow.css" /> <s:url var="bowCSS" value="/generated-css/bow.css" /> <link href="${jqueryUiCSS}" rel="stylesheet" type="text/css" media="all" /> + <link href="/bow-ui/css/bricklayer.min.css" rel="stylesheet" type="text/css" media="all" /> <link href="${bowCSS}" rel="stylesheet" type="text/css" media="all" /> <s:url var="bookmarkJS" value="/js/bookmark.js" /> <script type="text/javascript" src="${bookmarkJS}"></script> </head> <body> - <div id="page-wrap"> - <div id="page"> - <%@include file="/WEB-INF/jsp/inc/header.jsp" %> - <div id="page-content"> - <decorator:body /> - </div> - </div> + <%@include file="/WEB-INF/jsp/inc/sidebar.jsp" %> + <div id="bow-main"> + <decorator:body /> </div> <%@include file="/WEB-INF/jsp/inc/footer.jsp" %> </body> diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/admin.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/admin.jsp index 77dbc32..115e216 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/admin.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/admin.jsp @@ -28,12 +28,10 @@ <head> </head> <body> - <div id="content"> - <div class="menu clearfix"> - <h2><s:text name="bow.admin.panel" /></h2> - </div> - <div class="formFrame fond"> - <br /><br /> + <div class="bow-form-wrapper"> + <h1><s:text name="bow.admin.panel" /></h1> + + <div class="bow-form"> <s:if test="#session.BowSession.isAdmin()"> <ul id="adminActions"> diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/editBookmark.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/editBookmark.jsp index 4bf32b9..53f4d34 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/editBookmark.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/editBookmark.jsp @@ -28,30 +28,37 @@ <head> </head> <body> - <div id="content"> - <div class="menu clearfix"> - <h2><s:text name="popup.addurl.title" /></h2> - </div> - <div class="formFrame fond"> - <s:form id="popupAddUrlForm" cssClass="pretty-form" action="addUrl" method="post"> - <s:hidden name="tagLine" value="%{tagLine}" /> - <s:hidden name="fullTextLine" value="%{fullTextLine}" /> - <s:hidden name="bookmarkId" value="%{bookmark.wikittyId}"/> - <s:hidden name="redirectLink" value="%{redirectLink}"/> + <div class="bow-form-wrapper"> + <s:form id="popupAddUrlForm" cssClass="bow-form" action="addUrl" method="post"> + <s:hidden name="tagLine" value="%{tagLine}" /> + <s:hidden name="fullTextLine" value="%{fullTextLine}" /> + <s:hidden name="bookmarkId" value="%{bookmark.wikittyId}"/> + <s:hidden name="redirectLink" value="%{redirectLink}"/> + <h1><s:text name="popup.addurl.title" /></h1> + + <div class="bow-form-row"> <s:textfield name="link" labelSeparator=" " key="popup.addurl.link" - value="%{bookmark.link}" /> + value="%{bookmark.link}"/> + </div> + <div class="bow-form-row"> <s:textarea name="name" labelSeparator=" " key="popup.addurl.name" value="%{bookmark.description}" /> + </div> + <div class="bow-form-row"> <s:textfield name="tags" labelSeparator=" " key="popup.addurl.tags" value="%{@org.chorem.bow.BookmarkUtils@getBookmarkTagsString(bookmark)}" /> + </div> + <div class="bow-form-row"> <s:textfield name="privateAlias" labelSeparator=" " key="popup.addurl.alias.private" value="%{bookmark.privateAlias}" /> + </div> + <div class="bow-form-row"> <s:textfield name="publicAlias" labelSeparator=" " key="popup.addurl.alias.public" value="%{bookmark.publicAlias}" /> - <s:submit cssClass="submit-button" key="popup.commons.submit" name="submit" /> - </s:form> - </div> + </div> + <s:submit cssClass="submit-button" key="popup.commons.submit" name="submit" /> + </s:form> </div> </body> </html> diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/groupView.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/groupView.jsp index 4a55b9d..ad639e3 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/groupView.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/groupView.jsp @@ -32,46 +32,44 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. <title><s:text name="bow.groupView.title"/></title> </head> <body> -<div id="content"> - <div class="menu clearfix"> - <h2><s:text name="bow.groupView.title"/></h2> - </div> - <s:actionerror/> + <div class="bow-form-wrapper"> + <h1><s:text name="bow.groupView.title"/></h1> + <s:actionerror/> - <div class="formFrame fond"> - <s:a action="groupEdit"><s:text name="bow.group.new" /></s:a> - <ul> - <s:iterator value="groups" var="group"> - <s:set name="group" value="group"/> - <li class="public-${u:isPublicGroup(group)}" title="${group.description}"> - <span class="group-name">${group.name}</span> - <span class="group-members">${group.members.size()} <s:text name="bow.group.members"/></span> + <div class="bow-form"> + <s:a action="groupEdit"><s:text name="bow.group.new" /></s:a> + <ul> + <s:iterator value="groups" var="group"> + <s:set name="group" value="group"/> + <li class="public-${u:isPublicGroup(group)}" title="${group.description}"> + <span class="group-name">${group.name}</span> + <span class="group-members">${group.members.size()} <s:text name="bow.group.members"/></span> - <span class="group-actions"> - <s:url var="groupEdit" action="groupEdit" escapeAmp="true"> - <s:param name="groupId" value="%{#group.wikittyId}" /> - </s:url> - <a class="edit" href="${groupEdit}">edit</a> + <span class="group-actions"> + <s:url var="groupEdit" action="groupEdit" escapeAmp="true"> + <s:param name="groupId" value="%{#group.wikittyId}" /> + </s:url> + <a class="edit" href="${groupEdit}">edit</a> - <s:url var="groupRemoveMe" action="groupRemoveMe" escapeAmp="true"> - <s:param name="groupId" value="%{#group.wikittyId}" /> - <s:param name="user" value="%{bowSession.user.wikittyId}" /> - </s:url> - <a class="removeMe" href="${groupRemoveMe}">removeMe</a> + <s:url var="groupRemoveMe" action="groupRemoveMe" escapeAmp="true"> + <s:param name="groupId" value="%{#group.wikittyId}" /> + <s:param name="user" value="%{bowSession.user.wikittyId}" /> + </s:url> + <a class="removeMe" href="${groupRemoveMe}">removeMe</a> - <s:url var="atom" action="atom" escapeAmp="true"> - <s:param name="token" value="%{bowSession.permanentToken}" /> - <s:param name="tagLine" value="%{'@' + #group.name}" /> - <s:param name="notmine" value="true" /> - </s:url> - <a class="atom" href="${atom}">atom</a> - </span> - </li> - </s:iterator> - </ul> + <s:url var="atom" action="atom" escapeAmp="true"> + <s:param name="token" value="%{bowSession.permanentToken}" /> + <s:param name="tagLine" value="%{'@' + #group.name}" /> + <s:param name="notmine" value="true" /> + </s:url> + <a class="atom" href="${atom}">atom</a> + </span> + </li> + </s:iterator> + </ul> - </div> + </div> -</div> + </div> </body> </html> diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/home.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/home.jsp index 5e17aba..a84fd43 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/home.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/home.jsp @@ -30,27 +30,16 @@ </head> <body> <div id="bookmarks-tags"> - <div id="bookmarks-tags-edition"> - <s:set name="bookmarksToDelete" value="%{searchResult.bookmarkCount}" /> - <s:if test="%{#bookmarksToDelete > 0}"> - <s:url var="deleteSearchResults" action="deleteSearchResults" escapeAmp="false"> - <s:param name="tagLine" value="%{tagLine}" /> - <s:param name="fullTextLine" value="%{fullTextLine}" /> - <s:param name="order" value="%{order}"/> - </s:url> - <s:a id="deleteSearchResultsButton" title="delete all" href="" onclick="deleteConfirmation('%{deleteSearchResults}', %{#bookmarksToDelete}); return(false);">Supprimer</s:a> - </s:if> - </div> <jsp:include page="inc/tagsCloud.jsp" flush="true"/> </div> <div id="bookmarks-display-settings" class="menu clearfix"> - <div id="bookmarks-display-mode"> - <i class="icon-grid"></i> - <i class="icon-list"></i> + <div id="bookmarks-display-settings-mode"> + <i class="icon icon-grid"></i> + <i class="icon icon-list"></i> </div> - <div id="bookmarks-display-sort"> + <div id="bookmarks-display-settings-sort"> <s:form action="home" method="get" theme="simple"> <label for="order"><s:text name="bow.search.orderby" /></label> <s:select id="order" name="order" list="possibleOrder"/> @@ -64,7 +53,8 @@ <b><s:property value="%{searchResult.bookmarkCount}"/></b> résultats </div> - <div id="bookmarks" class="bookmarks-grid"> + <div id="bookmarks" class="bookmarks-list"> + <!--div id="bookmarks" class="bookmarks-grid bricklayer"-->> <s:if test="searchResult.bookmarks.empty"> <p class="nobookmarks"><s:text name="bow.bookmarks.noBookmarks" /></p> </s:if> @@ -99,5 +89,24 @@ </s:url> </s:if> </div> + + <div id="bookmarks-tags-edition"> + <s:set name="bookmarksToDelete" value="%{searchResult.bookmarkCount}" /> + <s:if test="%{#bookmarksToDelete > 0}"> + <s:url var="deleteSearchResults" action="deleteSearchResults" escapeAmp="false"> + <s:param name="tagLine" value="%{tagLine}" /> + <s:param name="fullTextLine" value="%{fullTextLine}" /> + <s:param name="order" value="%{order}"/> + </s:url> + <s:a id="deleteSearchResultsButton" title="delete all" href="" onclick="deleteConfirmation('%{deleteSearchResults}', %{#bookmarksToDelete}); return(false);">Supprimer</s:a> + </s:if> + </div> + + <script src="/bow-ui/js/bricklayer.min.js"></script> + <script> + $(document).ready(function() { + var bricklayer = new Bricklayer(document.querySelector('.bricklayer')); + }); + </script> </body> </html> diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/inc/bookmark.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/inc/bookmark.jsp index ec23078..f0f86bf 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/inc/bookmark.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/inc/bookmark.jsp @@ -31,39 +31,22 @@ <div class="bookmark-screenshot"> <s:a title="%{#bookmark.link}" href="alias/%{#bookmark.wikittyId}.action" target="_blank"> - <div class="screenshot"> - <s:set var="screenshot" value="#bookmark.screenshot"/> - <c:if test="${fn:length(screenshot) > 0}"> - <img src="data:image/png;base64,${u:base64(screenshot)}"/> - </c:if> - </div> + <s:set var="screenshot" value="#bookmark.screenshot"/> + <c:if test="${fn:length(screenshot) > 0}"> + <img src="data:image/png;base64,${u:base64(screenshot)}" class="bookmark-screenshot-image"/> + </c:if> </s:a> </div> <div class="bookmark-content"> - <s:set var="favicon" value="#bookmark.favicon"/> - <c:if test="${fn:length(favicon) > 0}"> - <img class="bookmark-favicon" src="data:image/png;base64,${u:base64(favicon)}"/> - </c:if> - <s:a href="alias/%{#bookmark.wikittyId}.action" cssClass="bookmark-link"><s:property value="%{#bookmark.link}"/></s:a> + <div class="bookmark-title"> + <s:set var="favicon" value="#bookmark.favicon"/> + <c:if test="${fn:length(favicon) > 0}"> + <img class="bookmark-favicon" src="data:image/png;base64,${u:base64(favicon)}"/> + </c:if> - <div class="bookmark-tags"> - <s:iterator value="#bookmark.labels" var="tag"> - <s:url var="search" action="home"> - <s:param name="addTag" value="%{#tag}"/> - <s:param name="tagLine" value="%{tagLine}"/> - <s:param name="fullTextLine" value="%{fullTextLine}"/> - <s:param name="order" value="%{order}"/> - <%-- on ne met pas 'first', il faut repartir de 0 --%> - </s:url> - <s:a href="%{search}" cssClass="tag"><s:property value="%{#tag}"/></s:a> - </s:iterator> - </div> - - <div class="bookmark-infos"> - - <div class="bookmark-alias"> + <div class="bookmark-alias left"> <s:if test="%{!#bookmark.privateAlias.empty}"> <s:a cssClass="alias" href="%{config.aliasUrl + #bookmark.wikittyId}.action" title="%{#bookmark.link}" target="_blank"> @@ -78,12 +61,30 @@ </s:a> </s:if> </div> + + <s:a href="alias/%{#bookmark.wikittyId}.action" cssClass="bookmark-link"><s:property value="%{#bookmark.link}"/></s:a> + </div> + + <div class="bookmark-metadata"> <span class="bookmark-creation-date"><s:property value="#bookmark.creationDate"/></span> - <div class="bookmark-nb-click"><s:property value="%{#bookmark.click}" /></div> + <span class="bookmark-tags"> + <s:iterator value="#bookmark.labels" var="tag"> + <s:url var="search" action="home"> + <s:param name="addTag" value="%{#tag}"/> + <s:param name="tagLine" value="%{tagLine}"/> + <s:param name="fullTextLine" value="%{fullTextLine}"/> + <s:param name="order" value="%{order}"/> + <%-- on ne met pas 'first', il faut repartir de 0 --%> + </s:url> + <s:a href="%{search}" cssClass="tag"><s:property value="%{#tag}"/></s:a> + </s:iterator> + </span> + + <span class="bookmark-nb-click"><s:property value="%{#bookmark.click}" /></span> </div> - <div class="bookmark-description"> + <div class="bookmark-description clear"> ${u:toHtml(bookmark.description)} </div> @@ -109,51 +110,42 @@ </s:if> </s:iterator> </div> + </div> - <div class="bookmark-actions"> - <div class="centered-wrapper"> - <span> - <s:url var="editBookmark" action="editBookmark" escapeAmp="true"> - <s:param name="id" value="%{#bookmark.wikittyId}" /> - <s:param name="tagLine" value="%{tagLine}" /> - <s:param name="fullTextLine" value="%{fullTextLine}" /> - <s:param name="order" value="%{order}"/> - <s:param name="first" value="%{first}"/> - </s:url> - <s:a cssClass="edit" href="%{editBookmark}">Éditer</s:a> - </span> - <span> - <s:url var="screenshotBookmark" action="screenshotBookmark" escapeAmp="true"> - <s:param name="id" value="%{#bookmark.wikittyId}" /> - <s:param name="tagLine" value="%{tagLine}" /> - <s:param name="fullTextLine" value="%{fullTextLine}" /> - <s:param name="order" value="%{order}"/> - <s:param name="first" value="%{first}"/> - </s:url> - <s:a cssClass="screenshotLink" href="%{screenshotBookmark}">Screenshot</s:a> - </span> - <span> - <s:url var="authenticationEdit" action="authenticationEdit" escapeAmp="true"> - <s:param name="bookmarkId" value="%{#bookmark.wikittyId}" /> - <s:param name="tagLine" value="%{tagLine}" /> - <s:param name="fullTextLine" value="%{fullTextLine}" /> - <s:param name="order" value="%{order}"/> - <s:param name="first" value="%{first}"/> - </s:url> - <s:a cssClass="edit-authentication" href="%{authenticationEdit}">Authentification</s:a> - </span> - <span> - <s:url var="removeBookmark" action="removeBookmark" escapeAmp="true"> - <s:param name="bookmarkId" value="%{#bookmark.wikittyId}" /> - <s:param name="tagLine" value="%{tagLine}" /> - <s:param name="fullTextLine" value="%{fullTextLine}" /> - <s:param name="order" value="%{order}"/> - <s:param name="first" value="%{first}"/> - </s:url> - <s:a cssClass="supprim" href="%{removeBookmark}" - onclick="return deleteConfirmation('%{#removeBookmark}','%{#bookmark.link}');">Supprimer</s:a> - </span> - </div> - </div> + <!--i class="icon icon-menu bookmark-actions-menu"></i--> + <div class="bookmark-actions"> + <s:url var="editBookmark" action="editBookmark" escapeAmp="true"> + <s:param name="id" value="%{#bookmark.wikittyId}" /> + <s:param name="tagLine" value="%{tagLine}" /> + <s:param name="fullTextLine" value="%{fullTextLine}" /> + <s:param name="order" value="%{order}"/> + <s:param name="first" value="%{first}"/> + </s:url> + <s:a cssClass="edit" href="%{editBookmark}"><i class="icon-pencil icon"></i> Éditer</s:a> + <s:url var="screenshotBookmark" action="screenshotBookmark" escapeAmp="true"> + <s:param name="id" value="%{#bookmark.wikittyId}" /> + <s:param name="tagLine" value="%{tagLine}" /> + <s:param name="fullTextLine" value="%{fullTextLine}" /> + <s:param name="order" value="%{order}"/> + <s:param name="first" value="%{first}"/> + </s:url> + <s:a cssClass="screenshotLink" href="%{screenshotBookmark}"><i class="icon-camera icon"></i> Screenshot</s:a> + <s:url var="authenticationEdit" action="authenticationEdit" escapeAmp="true"> + <s:param name="bookmarkId" value="%{#bookmark.wikittyId}" /> + <s:param name="tagLine" value="%{tagLine}" /> + <s:param name="fullTextLine" value="%{fullTextLine}" /> + <s:param name="order" value="%{order}"/> + <s:param name="first" value="%{first}"/> + </s:url> + <s:a cssClass="edit-authentication" href="%{authenticationEdit}"><i class="icon-lock icon"></i> Authentification</s:a> + <s:url var="removeBookmark" action="removeBookmark" escapeAmp="true"> + <s:param name="bookmarkId" value="%{#bookmark.wikittyId}" /> + <s:param name="tagLine" value="%{tagLine}" /> + <s:param name="fullTextLine" value="%{fullTextLine}" /> + <s:param name="order" value="%{order}"/> + <s:param name="first" value="%{first}"/> + </s:url> + <s:a cssClass="supprim" href="%{removeBookmark}" + onclick="return deleteConfirmation('%{#removeBookmark}','%{#bookmark.link}');"><i class="icon-trashcan icon"></i> Supprimer</s:a> </div> </div> diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/inc/footer.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/inc/footer.jsp index 7f4a24a..476b27d 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/inc/footer.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/inc/footer.jsp @@ -25,11 +25,14 @@ xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" xmlns:jsp="http://java.sun.com/JSP/Page"> <p> + Fait avec <i class="icon icon-heart"></i> par + <a shape="rect" href="http://www.codelutin.com" title="Code Lutin"><i class="icon icon-lutin"></i></a> + </p> + <p> <a shape="rect" href="http://www.chorem.org/projects/bow">bow</a> <a shape="rect" href="http://www.chorem.org/projects/bow/files"></a> - <a shape="rect" href="http://www.gnu.org/licenses/agpl.html"><s:text name="bow.footer.license" /></a> - <span title="Copyright">©2010-2017</span> - <a shape="rect" href="http://www.codelutin.com">Code Lutin</a> - <a shape="rect" href="http://www.chorem.org/projects/bow/issues"><s:text name="bow.footer.bugreport" /></a> - <a shape="rect" href="http://list.chorem.org/cgi-bin/mailman/listinfo/bow-users"><s:text name="bow.footer.userSupport" /></a> - <s:url var="localeEN"> diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/login.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/login.jsp index 46df375..8d79f53 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/login.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/login.jsp @@ -24,16 +24,17 @@ <html xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" xmlns:jsp="http://java.sun.com/JSP/Page"> <head> - <title><s:text name="bow.login.title" /></title> - <s:url var="css" value="/css/connexion.css" /> + <s:url var="css" value="/generated-css/components/connexion.css" /> <link href="${css}" rel="stylesheet" type="text/css" /> </head> + <title><s:text name="bow.login.title" /></title> <body> - <div id="content"> - <div id="formFrame" class="fond"> + <div id="bow-login"> + <div id="bow-login-header"> + </div> + + <div class="centered-wrapper"> <h1><s:text name="bow.login.title" /></h1> - <br/> - <br/> <s:actionerror /> <s:form action="login"> <s:textfield key="bow.login.email" name="email" labelposition="top" labelSeparator=" :" /> diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/preferences.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/preferences.jsp index a227e2b..ee5709a 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/preferences.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/preferences.jsp @@ -27,238 +27,239 @@ <title><s:text name="bow.preferences.title"/></title> </head> <body> -<div id="content"> - <div class="menu clearfix"> - <h2><s:text name="bow.preferences.title"/></h2> - </div> +<div class="bow-form-wrapper"> + <h1><s:text name="bow.preferences.title"/></h1> <s:actionerror/> - <div class="formFrame fond"> - <s:set var="bowUrl" value="config.bowUrl" /> - <s:set var="permanentToken" value="bowSession.getPermanentToken()" /> - <s:set var="temporaryToken" value="bowSession.getTemporaryToken()" /> - <ul> - <li> - <s:a title="%{getText('bow.temporary.link.searchDescription')}" - href="openSearchResult.action?token=%{temporaryToken}&q={searchTerms}"> - <s:text name="bow.temporary.link.search" /> - </s:a> - </li> - <li> - <s:a title="%{getText('bow.permanent.link.searchDescription')}" - href="openSearchResult.action?token=%{permanentToken}&q={searchTerms}"> - <s:text name="bow.permanent.link.search" /> - </s:a> - </li> - <li> - <s:a title="%{getText('bow.temporary.link.suggestionDescription')}" - href="openSearchSuggestion.action?token=%{temporaryToken}&q={searchTerms}"> - <s:text name="bow.temporary.link.suggestion" /> - </s:a> - </li> - <li> - <s:a title="%{getText('bow.permanent.link.suggestionDescription')}" - href="openSearchSuggestion.action?token=%{permanentToken}&q={searchTerms}"> - <s:text name="bow.permanent.link.suggestion" /> - </s:a> - </li> - <li> - <s:text name="bow.rightMenu.bookmark.temporaryLink" /> - <a href="${u:scriptletAdd(bowUrl, temporaryToken)}">BowAddTemp</a> - </li> - <li> - <s:text name="bow.rightMenu.bookmark.permanentLink" /> - <a href="${u:scriptletAdd(bowUrl, permanentToken)}">BowAdd</a> - </li> - <li> - <a href="extensions/bow4chromium.crx"> - <img src="img/chromium.png" alt="Chromium" class="extensionIcon" /> - <s:text name="bow.rightMenu.chromiumExtension" /> - </a> - </li> - <li> - <strong><s:text name="bow.rightMenu.token.permanent"/> :</strong> - <s:property value="%{#permanentToken}"/> - </li> - <li> - <strong><s:text name="bow.rightMenu.token.temporary"/> :</strong> - <s:property value="%{#temporaryToken}"/> - </li> - </ul> - - <s:url var="regenPermToken" action="generateToken"/> - <s:a href="%{regenPermToken}" id="regenPermToken"> - <s:text name="bow.preferences.regenPermToken"/> - </s:a> + <div class="bow-form"> + <div class="bow-form-row"> + <s:set var="bowUrl" value="config.bowUrl" /> + <s:set var="permanentToken" value="bowSession.getPermanentToken()" /> + <s:set var="temporaryToken" value="bowSession.getTemporaryToken()" /> + <ul> + <li> + <s:a title="%{getText('bow.temporary.link.searchDescription')}" + href="openSearchResult.action?token=%{temporaryToken}&q={searchTerms}"> + <s:text name="bow.temporary.link.search" /> + </s:a> + </li> + <li> + <s:a title="%{getText('bow.permanent.link.searchDescription')}" + href="openSearchResult.action?token=%{permanentToken}&q={searchTerms}"> + <s:text name="bow.permanent.link.search" /> + </s:a> + </li> + <li> + <s:a title="%{getText('bow.temporary.link.suggestionDescription')}" + href="openSearchSuggestion.action?token=%{temporaryToken}&q={searchTerms}"> + <s:text name="bow.temporary.link.suggestion" /> + </s:a> + </li> + <li> + <s:a title="%{getText('bow.permanent.link.suggestionDescription')}" + href="openSearchSuggestion.action?token=%{permanentToken}&q={searchTerms}"> + <s:text name="bow.permanent.link.suggestion" /> + </s:a> + </li> + <li> + <s:text name="bow.rightMenu.bookmark.temporaryLink" /> + <a href="${u:scriptletAdd(bowUrl, temporaryToken)}">BowAddTemp</a> + </li> + <li> + <s:text name="bow.rightMenu.bookmark.permanentLink" /> + <a href="${u:scriptletAdd(bowUrl, permanentToken)}">BowAdd</a> + </li> + <li> + <a href="extensions/bow4chromium.crx"> + <img src="img/chromium.png" alt="Chromium" class="extensionIcon" /> + <s:text name="bow.rightMenu.chromiumExtension" /> + </a> + </li> + <li> + <strong><s:text name="bow.rightMenu.token.permanent"/> :</strong> + <s:property value="%{#permanentToken}"/> + </li> + <li> + <strong><s:text name="bow.rightMenu.token.temporary"/> :</strong> + <s:property value="%{#temporaryToken}"/> + </li> + <li> + <s:url var="regenPermToken" action="generateToken"/> + <s:a href="%{regenPermToken}" id="regenPermToken"> + <s:text name="bow.preferences.regenPermToken"/> + </s:a> + </li> + </ul> + </div> </div> - <div class="formFrame fond"> - <h3><s:text name="bow.preferences.userInfo"/></h3> - <br/> - <s:form action="updateUserPref" theme="simple"> - <s:text name="bow.login.email"/><br/> + <s:form action="updateUserPref" cssClass="bow-form" theme="simple"> + <h2><s:text name="bow.preferences.userInfo"/></h2> + + <div class="bow-form-row"> + <label><s:text name="bow.login.email"/></label> <s:textfield name="email" - labelposition="top"/><br/> + labelposition="top"/> + </div> - <s:text name="bow.preferences.currentPassword"/><br/> + <div class="bow-form-row"> + <label><s:text name="bow.preferences.currentPassword"/></label> <s:password name="currentPassword" - labelposition="top"/><br/> + labelposition="top"/> + </div> - <s:text name="bow.preferences.newPassword"/><br/> + <div class="bow-form-row"> + <label><s:text name="bow.preferences.newPassword"/></label> <s:password name="newPassword" - labelposition="top"/><br/> + labelposition="top"/> + </div> - <s:text name="bow.preferences.confirmNewPassword"/><br/> + <div class="bow-form-row"> + <label><s:text name="bow.preferences.confirmNewPassword"/></label> <s:password name="confirmNewPassword" - labelposition="top"/><br/> - <s:hidden name="update" value="user"/> - <s:submit key="bow.preferences.submit" name="submit"/> - </s:form> - </div> - - <div class="formFrame fond"> - <h3> - <s:text name="bow.preferences.authentication"/> - <a class="scriptlet" href="${u:scriptletPassword(bowAuth)}">BowPwd</a> - <a class="script" href="${u:scriptPassword(bowAuth)}" download="BowPwd.sh">BowPwd.sh</a> - </h3> - <br/> - <s:form action="updateAuthenticationPref" cssClass="pretty-form" method="post"> + labelposition="top"/> + </div> + <s:hidden name="update" value="user"/> + <s:submit key="bow.preferences.submit" name="submit"/> + </s:form> + + <s:form action="updateAuthenticationPref" cssClass="bow-form" method="post"> + <h2><s:text name="bow.preferences.authentication"/></h2> + + <a class="scriptlet" href="${u:scriptletPassword(bowAuth)}">BowPwd</a> + <a class="script" href="${u:scriptPassword(bowAuth)}" download="BowPwd.sh">BowPwd.sh</a> + + <div class="bow-form-row"> <s:textarea name="bowAuth.description" key="bow.authenticationEdit.description" labelposition="top" tooltip="bow.authenticationEdit.description.tooltip"/> - + </div> + <div class="bow-form-row"> <s:textfield name="bowAuth.login" key="bow.authenticationEdit.login" labelposition="top" tooltip="bow.authenticationEdit.login.tooltip"/> - + </div> + <div class="bow-form-row"> <s:textfield name="bowAuth.maxLength" key="bow.authenticationEdit.maxLength" labelposition="top" tooltip="bow.authenticationEdit.maxLength.tooltip"/> - + </div> + <div class="bow-form-row"> <s:textfield name="bowAuth.include" key="bow.authenticationEdit.include" labelposition="top" tooltip="bow.authenticationEdit.include.tooltip"/> - + </div> + <div class="bow-form-row"> <s:textfield name="bowAuth.exclude" key="bow.authenticationEdit.exclude" labelposition="top" tooltip="bow.authenticationEdit.exclude.tooltip"/> - + </div> + <div class="bow-form-row"> <s:textfield name="bowAuth.prefix" key="bow.authenticationEdit.prefix" labelposition="top" tooltip="bow.authenticationEdit.prefix.tooltip"/> - + </div> + <div class="bow-form-row"> <s:textfield name="bowAuth.suffix" key="bow.authenticationEdit.suffix" labelposition="top" tooltip="bow.authenticationEdit.suffix.tooltip"/> - - <s:hidden name="update" value="authentication"/> - <s:submit key="bow.preferences.submit" name="submit"/> - </s:form> - </div> - - - <div class="formFrame fond"> - <h3><s:text name="bow.preferences.siteLook"/></h3> - <br/> - - <script type="text/javascript"> - function setRemoveIndex(removeIndex) { - $('input[name="removedPrefix"]').val(removeIndex); - document.updateSitePref.submit(); - return false; - } - </script> - - <s:form name="updateSitePref" action="updateSitePref" theme="simple"> - <s:hidden name="removedPrefix" value="-1"/> - - <s:text name="bow.preferences.screenshot"/><br/> - <s:checkbox name="screenshot" labelposition="left"/><br/> - - <s:text name="bow.preferences.favicon"/><br/> - <s:checkbox name="favicon" labelposition="left"/><br/> - - <s:text name="bow.preferences.tagsNb"/><br/> - <s:textfield name="tagsNb" labelposition="top"/><br/> - - <s:text name="bow.preferences.bookmarksHomePage"/><br/> - <s:textfield name="bookmarksHomePage" labelposition="top"/><br/> - - <table> - <tr> - <th><s:text name="bow.preferences.opensearch.prefix"/></th> - <th><s:text name="bow.preferences.opensearch.value"/></th> - <th><s:text name="bow.preferences.searchEngineUrlSuggestions"/></th> - </tr> - - <s:iterator value="searchPrefix" status="stat"> - <tr> - <td><s:textfield name="searchPrefix[%{#stat.index}].prefix" value="%{prefix}"/></td> - <td><s:textfield name="searchPrefix[%{#stat.index}].search" value="%{search}"/></td> - <td><s:textfield name="searchPrefix[%{#stat.index}].suggestion" value="%{suggestion}"/></td> - <td><s:submit action="removePrefix" value="X" onclick="return setRemoveIndex(%{#stat.index})"></s:submit></td> - </tr> - </s:iterator> - </table> - <s:submit action="addPrefix" value="add prefix"></s:submit> - - <s:hidden name="update" value="site"/> - <s:submit key="bow.preferences.submit" name="submit"/> - </s:form> - </div> - - <div class="menu clearfix"> + </div> + + <s:hidden name="update" value="authentication"/> + <s:submit key="bow.preferences.submit" name="submit"/> + </s:form> + + <script type="text/javascript"> + function setRemoveIndex(removeIndex) { + $('input[name="removedPrefix"]').val(removeIndex); + document.updateSitePref.submit(); + return false; + } + </script> + + <s:form name="updateSitePref" action="updateSitePref" cssClass="bow-form" theme="simple"> + <s:hidden name="removedPrefix" value="-1"/> + + <h2><s:text name="bow.preferences.siteLook"/></h2> + + <div class="bow-form-row"> + <label><s:text name="bow.preferences.screenshot"/></label> + <s:checkbox name="screenshot" labelposition="left"/> + </div> + <div class="bow-form-row"> + <label><s:text name="bow.preferences.favicon"/></label> + <s:checkbox name="favicon" labelposition="left"/> + </div> + <div class="bow-form-row"> + <label><s:text name="bow.preferences.tagsNb"/></label> + <s:textfield name="tagsNb" labelposition="top"/> + </div> + <div class="bow-form-row"> + <label><s:text name="bow.preferences.bookmarksHomePage"/></label> + <s:textfield name="bookmarksHomePage" labelposition="top"/> + </div> + + <table> + <tr> + <th><s:text name="bow.preferences.opensearch.prefix"/></th> + <th><s:text name="bow.preferences.opensearch.value"/></th> + <th><s:text name="bow.preferences.searchEngineUrlSuggestions"/></th> + </tr> + + <s:iterator value="searchPrefix" status="stat"> + <tr> + <td><s:textfield name="searchPrefix[%{#stat.index}].prefix" value="%{prefix}"/></td> + <td><s:textfield name="searchPrefix[%{#stat.index}].search" value="%{search}"/></td> + <td><s:textfield name="searchPrefix[%{#stat.index}].suggestion" value="%{suggestion}"/></td> + <td><s:submit action="removePrefix" value="X" onclick="return setRemoveIndex(%{#stat.index})"></s:submit></td> + </tr> + </s:iterator> + </table> + <s:submit action="addPrefix" value="add prefix"></s:submit> + + <s:hidden name="update" value="site"/> + <s:submit key="bow.preferences.submit" name="submit"/> + </s:form> + + <s:form id="labelsForm" action="adminlabels" method="post" cssClass="bow-form" theme="simple"> <h2><s:text name="bow.preferences.tagsManagement"/></h2> - </div> - - <div class="formFrame fond"> <h3><s:text name="bow.preferences.labels"/>(<s:property value="labels.size()"/>)</h3> - <br/> - <s:form id="labelsForm" action="adminlabels" method="post" theme="simple"> - <div class="list"> - <s:checkboxlist name="selectedLabels" list="labels" - listKey="topicName" listValue="%{topicName+'('+count+')'}"/> - </div> - <div class="action"> - <s:text name="bow.preferences.labels.name.field"/><s:textfield name="newLabel" /> - <s:submit name="rename" key="bow.preferences.labels.rename.submit" /> - <s:submit name="delete" key="bow.preferences.labels.delete.submit" /> - </div> - </s:form> - </div> - - <div class="menu clearfix"> + + <div class="list"> + <s:checkboxlist name="selectedLabels" list="labels" + listKey="topicName" listValue="%{topicName+'('+count+')'}"/> + </div> + <div class="action"> + <s:text name="bow.preferences.labels.name.field"/><s:textfield name="newLabel" /> + <s:submit name="rename" key="bow.preferences.labels.rename.submit" /> + <s:submit name="delete" key="bow.preferences.labels.delete.submit" /> + </div> + </s:form> + + <s:form action="importBookmarks" method="post" enctype="multipart/form-data" theme="simple"> <h2><s:text name="bow.preferences.importExport"/></h2> - </div> - - <div class="formFrame fond"> <s:a action="exportBookmarks"><s:text name="bow.preferences.export.bookmarks"/></s:a> - <br/> - + <h3><s:text name="bow.preferences.import.bookmarks"/></h3> - <br/> - <s:form action="importBookmarks" method="post" enctype="multipart/form-data" theme="simple"> - <s:file name="upfile" labelSeparator=""/> - <s:hidden name="tagLine" value="%{tagLine}"/> - <s:hidden name="fullTextLine" value="%{fullTextLine}"/> - <s:submit key="bow.preferences.import.submit" name="submit"/> - </s:form> - <br/><br/> - <s:if test="bookmarksImportDate != null"> - <s:iterator value="bookmarksImportDate"> - <s:set name="date" value="%{key}"/> - <s:set name="nb" value="%{value}"/> - <s:date name="%{stringToDate(#date)}" var="dateString"/> - <div class="deleteImport"> - <span><s:property value="dateString"/> (<s:property value="#nb"/> bookmarks)</span> - <s:url var="deleteImport" action="deleteImport"> - <s:param name="date" value="#date"/> - </s:url> - <s:a cssClass="deleteImportButton" href="%{deleteImport}" - onclick="return deleteConfirmation('%{deleteImport}','%{nb}','%{dateString}');"> - </s:a> - </div> - </s:iterator> - </s:if> - <s:else> - <span><s:text name="bow.preferences.noImportedBookmarks"/></span> - </s:else> - </div> + <s:file name="upfile" labelSeparator=""/> + <s:hidden name="tagLine" value="%{tagLine}"/> + <s:hidden name="fullTextLine" value="%{fullTextLine}"/> + <s:submit key="bow.preferences.import.submit" name="submit"/> + </s:form> + + <s:if test="bookmarksImportDate != null"> + <s:iterator value="bookmarksImportDate"> + <s:set name="date" value="%{key}"/> + <s:set name="nb" value="%{value}"/> + <s:date name="%{stringToDate(#date)}" var="dateString"/> + <div class="deleteImport"> + <span><s:property value="dateString"/> (<s:property value="#nb"/> bookmarks)</span> + <s:url var="deleteImport" action="deleteImport"> + <s:param name="date" value="#date"/> + </s:url> + <s:a cssClass="deleteImportButton" href="%{deleteImport}" + onclick="return deleteConfirmation('%{deleteImport}','%{nb}','%{dateString}');"> + </s:a> + </div> + </s:iterator> + </s:if> + <s:else> + <span><s:text name="bow.preferences.noImportedBookmarks"/></span> + </s:else> </div> </body> diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/sharedUserView.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/sharedUserView.jsp index bc4eec3..44e9638 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/sharedUserView.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/sharedUserView.jsp @@ -33,49 +33,47 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. <title><s:text name="bow.sharedUserView.title"/></title> </head> <body> -<div id="content"> - <div class="menu clearfix"> - <h2><s:text name="bow.sharedUserView.title"/></h2> - </div> - <s:actionerror/> - <div class="formFrame fond"> - <div class="documentation"><s:text name="bow.sharedUserView.documentation"/></div> - <s:a action="sharedUserEdit"><s:text name="bow.sharedUser.new" /></s:a> - <ul> - <s:iterator value="sharedUsers" var="sharedUser"> - <s:set name="sharedUser" value="sharedUser"/> - <li title="${sharedUser.description}"> - <span class="sharedUser-name">${sharedUser.login}</span> + <div class="bow-form-wrapper"> + <h1><s:text name="bow.sharedUserView.title"/></h1> + <s:actionerror/> + <div class="bow-form"> + <div class="documentation"><s:text name="bow.sharedUserView.documentation"/></div> + <s:a action="sharedUserEdit"><s:text name="bow.sharedUser.new" /></s:a> + <ul> + <s:iterator value="sharedUsers" var="sharedUser"> + <s:set name="sharedUser" value="sharedUser"/> + <li title="${sharedUser.description}"> + <span class="sharedUser-name">${sharedUser.login}</span> - <span class="sharedUser-actions"> - <s:url var="sharedUserEdit" action="sharedUserEdit" escapeAmp="true"> - <s:param name="sharedUserId" value="%{#sharedUser.wikittyId}" /> - </s:url> - <a class="edit" href="${sharedUserEdit}">edit</a> + <span class="sharedUser-actions"> + <s:url var="sharedUserEdit" action="sharedUserEdit" escapeAmp="true"> + <s:param name="sharedUserId" value="%{#sharedUser.wikittyId}" /> + </s:url> + <a class="edit" href="${sharedUserEdit}">edit</a> - <s:url var="sharedUserDelete" action="sharedUserDelete" escapeAmp="true"> - <s:param name="sharedUserId" value="%{#sharedUser.wikittyId}" /> - </s:url> - <a class="delete" href="${sharedUserDelete}">delete</a> + <s:url var="sharedUserDelete" action="sharedUserDelete" escapeAmp="true"> + <s:param name="sharedUserId" value="%{#sharedUser.wikittyId}" /> + </s:url> + <a class="delete" href="${sharedUserDelete}">delete</a> - <s:url var="atom" action="atom" escapeAmp="true"> - <s:param name="token" value="%{#sharedUser.permanentToken}" /> - <s:param name="tagLine" value="%{'#' + #sharedUser.login}" /> - </s:url> - <a class="atom" href="${atom}">atom</a> + <s:url var="atom" action="atom" escapeAmp="true"> + <s:param name="token" value="%{#sharedUser.permanentToken}" /> + <s:param name="tagLine" value="%{'#' + #sharedUser.login}" /> + </s:url> + <a class="atom" href="${atom}">atom</a> - <s:url var="web" action="home" escapeAmp="true"> - <s:param name="token" value="%{#sharedUser.permanentToken}" /> - <s:param name="tagLine" value="%{'#' + #sharedUser.login}" /> - </s:url> - <a class="web" href="${web}">web</a> - </span> - </li> - </s:iterator> - </ul> + <s:url var="web" action="home" escapeAmp="true"> + <s:param name="token" value="%{#sharedUser.permanentToken}" /> + <s:param name="tagLine" value="%{'#' + #sharedUser.login}" /> + </s:url> + <a class="web" href="${web}">web</a> + </span> + </li> + </s:iterator> + </ul> - </div> + </div> -</div> + </div> </body> </html> -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm