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 f77095acc073ff5b47a0d1b969eea822ebcfc5d5 Author: Léo Kaufmann <kaufmann@codelutin.com> Date: Wed Sep 6 19:17:09 2017 +0200 Refonte de l'UI : reprise de la refonte dans une nouvelle branche --- .gitignore | 1 + bow-ui/pom.xml | 25 ++ bow-ui/src/main/less/base/_all.less | 4 + bow-ui/src/main/less/base/_footer.less | 14 + bow-ui/src/main/less/base/_header.less | 80 ++++ bow-ui/src/main/less/base/_layout.less | 90 +++++ bow-ui/src/main/less/bow.less | 14 + bow-ui/src/main/less/common/_all.less | 10 + bow-ui/src/main/less/common/_bookmark-grid.less | 62 +++ bow-ui/src/main/less/common/_bookmark-list.less | 89 +++++ bow-ui/src/main/less/common/_bookmark.less | 78 ++++ bow-ui/src/main/less/common/_button.less | 21 ++ bow-ui/src/main/less/common/_dropdown.less | 19 + bow-ui/src/main/less/common/_form.less | 26 ++ bow-ui/src/main/less/common/_icons.less | 87 +++++ bow-ui/src/main/less/common/_tags.less | 8 + bow-ui/src/main/less/common/_tools.less | 28 ++ bow-ui/src/main/less/components/bookmark.less | 418 +++++++++++++++++++++ bow-ui/src/main/less/components/connexion.less | 12 + bow-ui/src/main/less/variables/_all.less | 3 + bow-ui/src/main/less/variables/_colors.less | 18 + bow-ui/src/main/less/variables/_globals.less | 7 + bow-ui/src/main/webapp/WEB-INF/decorators/main.jsp | 15 +- bow-ui/src/main/webapp/WEB-INF/jsp/home.jsp | 99 ++--- .../src/main/webapp/WEB-INF/jsp/inc/bookmark.jsp | 225 ++++++----- bow-ui/src/main/webapp/WEB-INF/jsp/inc/header.jsp | 115 ++++-- .../src/main/webapp/WEB-INF/jsp/inc/rightMenu.jsp | 75 ---- .../src/main/webapp/WEB-INF/jsp/inc/tagsCloud.jsp | 4 +- bow-ui/src/main/webapp/font/icomoon.woff | Bin 0 -> 2836 bytes bow-ui/src/main/webapp/img/logobow.png | Bin 0 -> 1548 bytes 30 files changed, 1371 insertions(+), 276 deletions(-) diff --git a/.gitignore b/.gitignore index 233f4da..eb3f5d5 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ target/* */*.iws */*.iml */.idea +bow-ui/src/main/webapp/generated-css/ diff --git a/bow-ui/pom.xml b/bow-ui/pom.xml index 9fd76c5..67bb555 100644 --- a/bow-ui/pom.xml +++ b/bow-ui/pom.xml @@ -413,6 +413,31 @@ </executions> </plugin> + <!-- Les CSS sont générés à partir de LESS dans le dossier src/main/webapp/resources/generated-css --> + <plugin> + <groupId>org.lesscss</groupId> + <artifactId>lesscss-maven-plugin</artifactId> + <version>1.7.0.1.1</version> + <configuration> + <sourceDirectory>${project.basedir}/src/main/less</sourceDirectory> + <outputDirectory>${project.basedir}/src/main/webapp/generated-css</outputDirectory> + <compress>false</compress> + <includes> + <include>**/*.less</include> + </includes> + <excludes> + <exclude>**/_*.less</exclude> + </excludes> + </configuration> + <executions> + <execution> + <goals> + <goal>compile</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> </build> diff --git a/bow-ui/src/main/less/base/_all.less b/bow-ui/src/main/less/base/_all.less new file mode 100644 index 0000000..fdb1d2e --- /dev/null +++ b/bow-ui/src/main/less/base/_all.less @@ -0,0 +1,4 @@ +// Import de tous les fichiers LESS du dossier +@import "_footer"; +@import "_header"; +@import "_layout"; diff --git a/bow-ui/src/main/less/base/_footer.less b/bow-ui/src/main/less/base/_footer.less new file mode 100644 index 0000000..84457bb --- /dev/null +++ b/bow-ui/src/main/less/base/_footer.less @@ -0,0 +1,14 @@ + +#footer{ + padding-top:30px; +} + +#footer a{ + color:#bf8a9c; +} + +#footer p{ + font-size:14px; + text-align:center; + line-height:50px; +} diff --git a/bow-ui/src/main/less/base/_header.less b/bow-ui/src/main/less/base/_header.less new file mode 100644 index 0000000..f91e087 --- /dev/null +++ b/bow-ui/src/main/less/base/_header.less @@ -0,0 +1,80 @@ +#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/base/_layout.less b/bow-ui/src/main/less/base/_layout.less new file mode 100644 index 0000000..72175a1 --- /dev/null +++ b/bow-ui/src/main/less/base/_layout.less @@ -0,0 +1,90 @@ +*{ + padding:0; + margin:0; +} + +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; +} + +.errorMessage{ + font-weight:normal; + font-size:12px; + color:red; +} + +#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; +} + +.fond { + background: #E0EDF3; + + padding:10px; +} + +form, .wwFormTable{ + color:#804561; + font-size:11px; + font-weight:bold; +} diff --git a/bow-ui/src/main/less/bow.less b/bow-ui/src/main/less/bow.less new file mode 100644 index 0000000..a7e61e9 --- /dev/null +++ b/bow-ui/src/main/less/bow.less @@ -0,0 +1,14 @@ +// out: ../webapp/generated-css/bow.css, sourcemap: true, compress: true + + +// Structure de fichiers pour organiser les fichiers LESS +// - base : Structure HTML, layout, classes utiles +// - components : Style pour chaque composant global +// - modules : Style pour chaque module indépendant +// - variables : Règles css globales (couleurs, police, ...) +// - 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"; diff --git a/bow-ui/src/main/less/common/_all.less b/bow-ui/src/main/less/common/_all.less new file mode 100644 index 0000000..66b9101 --- /dev/null +++ b/bow-ui/src/main/less/common/_all.less @@ -0,0 +1,10 @@ +// 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/_bookmark-grid.less b/bow-ui/src/main/less/common/_bookmark-grid.less new file mode 100644 index 0000000..241eca1 --- /dev/null +++ b/bow-ui/src/main/less/common/_bookmark-grid.less @@ -0,0 +1,62 @@ +.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; + } + + .bookmark-favicon { + width: 16px; + height: 16px; + float:left; + } + + .bookmark-description{ + margin:5px 5px; + color:#999999; + font-size:12px; + position: relative; + width: 100%; + } + + .bookmark-screenshot{ + width:100%; + + img { + width: 100%; + max-height: 150px; + } + } + + .bookmark-content { + } + + .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; + + & > a { + margin: 5px; + padding: 5px; + border: 1px solid #eee; + } + } + + .bookmark-nb-click{ + } + + .bookmark-actions { + display: none; + } +} \ No newline at end of file diff --git a/bow-ui/src/main/less/common/_bookmark-list.less b/bow-ui/src/main/less/common/_bookmark-list.less new file mode 100644 index 0000000..c2c9d7a --- /dev/null +++ b/bow-ui/src/main/less/common/_bookmark-list.less @@ -0,0 +1,89 @@ +@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; + } + + .bookmark-favicon { + width: 16px; + height: 16px; + float:left; + margin-right: @default-marge--small; + } + + .bookmark-link { + color: @color-link; + } + + .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-content { + margin-left: @default-screenshot-width + 15px; + + padding-top: @default-marge--small; + padding-right: 100px; + } + .bookmark-infos { + float: right; + width: 100px; + text-align: right; + } + + .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; + } + + .bookmark:hover { + .bookmark-actions { + //width: 100%; + //height: 100%; + } + } +} \ 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 new file mode 100644 index 0000000..d9ccd10 --- /dev/null +++ b/bow-ui/src/main/less/common/_bookmark.less @@ -0,0 +1,78 @@ +#bookmarks-tags { + padding-left: @default-marge--large; + padding-right: @default-marge--large; + + background: #E9F2F5; + position: relative; + + .actions { + background: #F3F6F9; + width: 100px; + height: 100%; + position: absolute; + right: 0; + z-index: 99; + padding: 0 2em; + margin-right: 5%; + } + + .tag { + color: #7DBED2; + } +} + +#bookmarks-display-settings { + margin-left: @default-marge--large; + margin-right: @default-marge--large; + margin-bottom: @default-marge--small; + margin-top: @default-marge--medium; + + border-bottom: 1px solid @color-main; + color: @color-main; + position: relative; + text-align: center; +} + +#bookmarks-display-mode { + position: absolute; + bottom: 0; + left: @default-marge--small; +} + +#bookmarks-display-sort { + position: absolute; + bottom: 0; + right: @default-marge--small; +} + +#bookmarks { + padding-left: @default-marge--large; + padding-right: @default-marge--large; +} + + + +#bookmarks-tags { + margin-bottom: @default-marge--small; + + border-bottom: 1px solid @color-separation-border; + + .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%; + } +} + +.pagination { + text-align: center; +} diff --git a/bow-ui/src/main/less/common/_button.less b/bow-ui/src/main/less/common/_button.less new file mode 100644 index 0000000..1fc2551 --- /dev/null +++ b/bow-ui/src/main/less/common/_button.less @@ -0,0 +1,21 @@ + +a { + color: @color-link; + text-decoration: none; + + &:hover { + color: @color-link-hover; + } +} + +.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; +} \ No newline at end of file diff --git a/bow-ui/src/main/less/common/_dropdown.less b/bow-ui/src/main/less/common/_dropdown.less new file mode 100644 index 0000000..43f741e --- /dev/null +++ b/bow-ui/src/main/less/common/_dropdown.less @@ -0,0 +1,19 @@ +.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/_form.less b/bow-ui/src/main/less/common/_form.less new file mode 100644 index 0000000..90b6b47 --- /dev/null +++ b/bow-ui/src/main/less/common/_form.less @@ -0,0 +1,26 @@ + + + +.recherche .input { + float: left; +} + +.user { + background: #CCC; +} + +.user a { + color: #888; + border-color: #888; +} + +.user #logout { + float: left; +} + + + +textarea{ + height:100px; + width:200px; +} \ No newline at end of file diff --git a/bow-ui/src/main/less/common/_icons.less b/bow-ui/src/main/less/common/_icons.less new file mode 100644 index 0000000..d023878 --- /dev/null +++ b/bow-ui/src/main/less/common/_icons.less @@ -0,0 +1,87 @@ +@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-weight: normal; + font-style: normal; +} + +[class^="icon-"], [class*=" icon-"] { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'icomoon' !important; + speak: none; + font-size: 21px; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon--huge { + font-size: 60px; +} + +.icon--large { + font-size: 26px; +} + +.icon--small { + font-size: 16px; +} + +.icon--mini { + font-size: 12px; +} + +.icon-logout:before { + content: "\e907"; + //color: #979797; +} +.icon-settings:before { + content: "\e908"; + //color: #979797; +} +.icon-grid:before { + content: "\e909"; + //color: #157efb; +} +.icon-list:before { + content: "\e90a"; + //color: #157efb; +} +.icon-add:before { + content: "\e900"; + //color: #929292; +} +.icon-click:before { + content: "\e901"; + //color: #157efb; +} +.icon-lock:before { + content: "\e902"; + //color: #157efb; +} +.icon-search:before { + content: "\e903"; + //color: #929292; +} +.icon-star:before { + content: "\e904"; + //color: #157efb; +} +.icon-tag:before { + content: "\e905"; + //color: #157efb; +} +.icon-trash:before { + content: "\e906"; + //color: #929292; +} \ 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 new file mode 100644 index 0000000..a524f4b --- /dev/null +++ b/bow-ui/src/main/less/common/_tags.less @@ -0,0 +1,8 @@ +.cloud { + + +} + +.cloud-tag { + padding: 5px; +} \ No newline at end of file diff --git a/bow-ui/src/main/less/common/_tools.less b/bow-ui/src/main/less/common/_tools.less new file mode 100644 index 0000000..a979e46 --- /dev/null +++ b/bow-ui/src/main/less/common/_tools.less @@ -0,0 +1,28 @@ + +.clearfix:before, +.clearfix:after { + content:""; + display:table; +} +.clearfix:after { + clear:both; +} + +.clear { + clear: both; +} + +.left{ + float:left; +} + +.right{ + float:right; +} + +.centered-wrapper { + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); +} \ 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 new file mode 100644 index 0000000..7b6acce --- /dev/null +++ b/bow-ui/src/main/less/components/bookmark.less @@ -0,0 +1,418 @@ +#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/components/connexion.less b/bow-ui/src/main/less/components/connexion.less new file mode 100644 index 0000000..10dbd1d --- /dev/null +++ b/bow-ui/src/main/less/components/connexion.less @@ -0,0 +1,12 @@ +// out: ../../webapp/generated-css/components/connexion.css, sourcemap: true, compress: true + +#header { + background:#FFFFFF; + height:30px; + box-shadow: 0px 2px 5px rgba(0,0,0,0.05); +} + +#header a.logo{ + background:transparent url('../img/logobow.png') no-repeat scroll 0 0; + height:25px; +} \ No newline at end of file diff --git a/bow-ui/src/main/less/variables/_all.less b/bow-ui/src/main/less/variables/_all.less new file mode 100644 index 0000000..07a3a31 --- /dev/null +++ b/bow-ui/src/main/less/variables/_all.less @@ -0,0 +1,3 @@ +// Import de tous les fichiers LESS du dossier +@import "_colors"; +@import "_globals"; diff --git a/bow-ui/src/main/less/variables/_colors.less b/bow-ui/src/main/less/variables/_colors.less new file mode 100644 index 0000000..0c98e84 --- /dev/null +++ b/bow-ui/src/main/less/variables/_colors.less @@ -0,0 +1,18 @@ +@color-purple : #804561; +@color-blue-1 : #7DBED2; +@color-blue-2 : darken(@color-blue-1, 25%); +@color-grey-1 : #DDD; +@color-grey-2 : #F5F5F5; + +@color-white-1 : #FFF; +@color-white-2 : #FAFBFC; + +@color-background : @color-white-1; +@color-background-user-infos : @color-grey-2; + +@color-link : @color-blue-1; +@color-link-hover : @color-blue-2; + +@color-main : @color-purple; + +@color-separation-border : @color-grey-1; \ 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 new file mode 100644 index 0000000..8f308c2 --- /dev/null +++ b/bow-ui/src/main/less/variables/_globals.less @@ -0,0 +1,7 @@ +@default-header-height: 50px; + +@defaut-font-size: 14px; + +@default-marge--small: 10px; +@default-marge--medium: 30px; +@default-marge--large: 50px; \ No newline at end of file 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 c87825e..4743a7c 100644 --- a/bow-ui/src/main/webapp/WEB-INF/decorators/main.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/decorators/main.jsp @@ -49,26 +49,21 @@ <s:head /> <sj:head/> - <s:url var="bookmarkCSS" value="/css/bookmark.css" /> <s:url var="jqueryUiCSS" value="/css/jquery-ui-1.8.11.custom.bow.css" /> - <s:url var="globalCSS" value="/css/global.css" /> - <link href="${bookmarkCSS}" rel="stylesheet" type="text/css"/> + <s:url var="bowCSS" value="/generated-css/bow.css" /> <link href="${jqueryUiCSS}" rel="stylesheet" type="text/css" media="all" /> - <link href="${globalCSS}" 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 id="page-home"> - <div id="wrap"> + <body> + <div id="page-wrap"> <div id="page"> <%@include file="/WEB-INF/jsp/inc/header.jsp" %> - <div id="main"> + <div id="page-content"> <decorator:body /> </div> - <s:if test="%{#session.BowSession.user != null}"> - <jsp:include page="/WEB-INF/jsp/inc/rightMenu.jsp" /> - </s:if> </div> </div> <%@include file="/WEB-INF/jsp/inc/footer.jsp" %> 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 db4b961..5e17aba 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/home.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/home.jsp @@ -29,60 +29,75 @@ <title><s:text name="bow.search.title" /></title> </head> <body> - <div class="menu clearfix"> - <h2> - <s:if test="first - bowSession.user.bookmarks >= 0"> - <s:url var="prev" action="home"> + <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:param name="first" value="%{first - bowSession.user.bookmarks}"/> </s:url> - <s:a href="%{prev}"><<</s:a> + <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> - <s:property value="%{first+1}"/>-<s:property value="%{first + bowSession.user.bookmarks}"/>/<s:property value="%{searchResult.bookmarkCount}"/> + <div id="bookmarks-display-settings" class="menu clearfix"> + <div id="bookmarks-display-mode"> + <i class="icon-grid"></i> + <i class="icon-list"></i> + </div> - <s:if test="first + bowSession.user.bookmarks < searchResult.bookmarkCount"> - <s:url var="next" action="home"> - <s:param name="tagLine" value="%{tagLine}" /> - <s:param name="fullTextLine" value="%{fullTextLine}" /> - <s:param name="order" value="%{order}"/> - <s:param name="first" value="%{first + bowSession.user.bookmarks}"/> - </s:url> - <s:a href="%{next}">>></s:a> - </s:if> - </h2> - - <s:set name="bookmarksToDelete" value="%{searchResult.bookmarkCount}" /> - <s:if test="%{#bookmarksToDelete > 0}"> - <s:url var="deleteSearchResults" action="deleteSearchResults" escapeAmp="false"> + <div id="bookmarks-display-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"/> + <s:submit key="bow.search.submit" name="submit" /> + <s:hidden name="tagLine" value="%{tagLine}" /> + <s:hidden name="fullTextLine" value="%{fullTextLine}" /> + <s:hidden name="first" value="%{first}" /> + </s:form> + </div> + + <b><s:property value="%{searchResult.bookmarkCount}"/></b> résultats + </div> + + <div id="bookmarks" class="bookmarks-grid"> + <s:if test="searchResult.bookmarks.empty"> + <p class="nobookmarks"><s:text name="bow.bookmarks.noBookmarks" /></p> + </s:if> + <s:else> + <s:iterator value="searchResult.bookmarks" var="bookmark"> + <s:set name="bookmark" value="bookmark"/> + <s:set name="auths" value="searchResult.getAuthentication(#bookmark)"/> + <jsp:include page="inc/bookmark.jsp" flush="true"/> + </s:iterator> + </s:else> + </div> + + <div class="pagination"> + <s:if test="first - bowSession.user.bookmarks >= 0"> + <s:url var="prev" action="home"> + <s:param name="tagLine" value="%{tagLine}" /> + <s:param name="fullTextLine" value="%{fullTextLine}" /> + <s:param name="order" value="%{order}"/> + <s:param name="first" value="%{first - bowSession.user.bookmarks}"/> + </s:url> + <s:a href="%{prev}"><<</s:a> + </s:if> + + <s:property value="%{first+1}"/>-<s:property value="%{first + bowSession.user.bookmarks}"/> + + <s:if test="first + bowSession.user.bookmarks < searchResult.bookmarkCount"> + <s:url var="next" action="home"> <s:param name="tagLine" value="%{tagLine}" /> <s:param name="fullTextLine" value="%{fullTextLine}" /> <s:param name="order" value="%{order}"/> + <s:param name="first" value="%{first + bowSession.user.bookmarks}"/> </s:url> - <s:a id="deleteSearchResultsButton" title="delete all" href="" onclick="deleteConfirmation('%{deleteSearchResults}', %{#bookmarksToDelete}); return(false);"></s:a> </s:if> - <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"/> - <s:submit key="bow.search.submit" name="submit" /> - <s:hidden name="tagLine" value="%{tagLine}" /> - <s:hidden name="fullTextLine" value="%{fullTextLine}" /> - <s:hidden name="first" value="%{first}" /> - </s:form> </div> - <div class="content"> - <s:if test="searchResult.bookmarks.empty"> - <p class="nobookmarks"><s:text name="bow.bookmarks.noBookmarks" /></p> - </s:if> - <s:else> - <s:iterator value="searchResult.bookmarks" var="bookmark"> - <s:set name="bookmark" value="bookmark"/> - <s:set name="auths" value="searchResult.getAuthentication(#bookmark)"/> - <jsp:include page="inc/bookmark.jsp" flush="true"/> - </s:iterator> - </s:else> - </div> </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 248cc28..ec23078 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 @@ -25,136 +25,135 @@ <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> <%@taglib uri="/WEB-INF/bowutils" prefix="u" %> -<div class="bookmark"bow +<div class="bookmark clearfix" xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" xmlns:jsp="http://java.sun.com/JSP/Page"> - <div class="bookmarkhead"> - <span class="left"> - <s:set var="favicon" value="#bookmark.favicon"/> - <c:if test="${fn:length(favicon) > 0}"> - <img class="favicon" src="data:image/png;base64,${u:base64(favicon)}"/> - </c:if> - <c:if test="${fn:length(favicon) <= 0}"> - <img src="img/ptit-livre.jpg"/> - </c:if> - </span> - <span class="left date"><s:property value="#bookmark.creationDate"/></span> - <span class="left"> + <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: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-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"> <s:if test="%{!#bookmark.privateAlias.empty}"> <s:a cssClass="alias" href="%{config.aliasUrl + #bookmark.wikittyId}.action" title="%{#bookmark.link}" target="_blank"> a:<s:property value="%{#bookmark.privateAlias}" /> </s:a> </s:if> - </span> - <span class="left"> + <s:if test="%{!#bookmark.publicAlias.empty}"> <s:a cssClass="alias" href="%{config.aliasUrl + #bookmark.publicAlias}.action" title="%{#bookmark.link}" target="_blank"> a:<s:property value="%{#bookmark.publicAlias}" /> </s:a> </s:if> - </span> - <span class="spacemax"></span> - <span class="right"> - <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}"/> - </span> - <span class="right"> - <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}"/> - </span> - <span class="right"> - <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}"/> - </span> - <span class="right"> - <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}');"></s:a> - </span> + </div> + <span class="bookmark-creation-date"><s:property value="#bookmark.creationDate"/></span> + + <div class="bookmark-nb-click"><s:property value="%{#bookmark.click}" /></div> </div> - <div class="bookmarkcontenu"> - <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> - <c:if test="${fn:length(screenshot) <= 0}"> - <img src="img/livreG.jpg"/> - </c:if> - </div> - </s:a> - <div class="click"><s:property value="%{#bookmark.click}" /></div> - <div class="description"> - <p> - <s:a href="alias/%{#bookmark.wikittyId}.action"><s:property value="%{#bookmark.link}"/></s:a> - </p> - <h3><s:text name="bow.bookmark.description" /> :</h3> - <div class="markdown"> - ${u:toHtml(bookmark.description)} - </div> - <s:iterator value="#auths" var="auth"> - <s:set name="auth" value="auth"/> - <s:if test="#auth != null"> - <h3> - <s:text name="bow.bookmark.authentication" /> : - <a class="scriptlet" href="${u:scriptletPassword(auth)}">BowPwd${bookmark.privateAlias}</a> - <a class="script" href="${u:scriptPassword(auth)}" download="BowPwd${bookmark.privateAlias}.sh">BowPwd${bookmark.privateAlias}.sh</a> - </h3> - <s:if test="!#auth.description.empty"> - <div class="markdown"> - ${u:toHtml(auth.description)} - </div> - </s:if> - <s:if test="!#auth.form.empty"> - <div class="markdown"> - ${u:toHtml(auth.form)} - </div> - </s:if> - </s:if> - </s:iterator> - <p class="tags"> - <strong><s:text name="bow.bookmark.tags" /> :</strong> - <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> - </p> - </div> + <div class="bookmark-description"> + ${u:toHtml(bookmark.description)} + </div> + + <div class="bookmark-authentification"> + <s:iterator value="#auths" var="auth"> + <s:set name="auth" value="auth"/> + <s:if test="#auth != null"> + <h3> + <s:text name="bow.bookmark.authentication" /> : + <a class="scriptlet" href="${u:scriptletPassword(auth)}">BowPwd${bookmark.privateAlias}</a> + <a class="script" href="${u:scriptPassword(auth)}" download="BowPwd${bookmark.privateAlias}.sh">BowPwd${bookmark.privateAlias}.sh</a> + </h3> + <s:if test="!#auth.description.empty"> + <div class="markdown"> + ${u:toHtml(auth.description)} + </div> + </s:if> + <s:if test="!#auth.form.empty"> + <div class="markdown"> + ${u:toHtml(auth.form)} + </div> + </s:if> + </s:if> + </s:iterator> </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> + </div> </div> diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/inc/header.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/inc/header.jsp index be54286..06f331e 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/inc/header.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/inc/header.jsp @@ -24,45 +24,92 @@ <div id="header" xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" xmlns:jsp="http://java.sun.com/JSP/Page"> - <div> - <s:if test="%{#session.BowSession.user != null}"> - <s:url var="homeToken" action="home"> - <s:param name="token" value="%{#session.BowSession.getPermanentToken()}" /> - </s:url> - <s:a cssClass="logo" href="%{homeToken}">bow</s:a> - </s:if> - <s:else> - <s:a cssClass="logo" action="home">bow</s:a> - </s:else> - </div> + <s:if test="%{#session.BowSession.user != null}"> - <div class="recherche right"> - <h3><s:text name="bow.rightMenu.search" /></h3> - <div class="input"> - <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:submit key="bow.rightMenu.search.tags" name="submit" /> - </s:form> - </div> - <div class="input"> - <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:submit key="bow.rightMenu.fullTextSearch" name="submit" /> - </s:form> + <s:url var="homeToken" action="home"> + <s:param name="token" value="%{#session.BowSession.getPermanentToken()}" /> + </s:url> + <s:a cssClass="header-logo" action="home"> + <img src="img/logobow.png" alt="Bow" /> + </s:a> + </s:if> + <s:else> + <s:a cssClass="header-logo" action="home"> + <img src="img/logobow.png" alt="Bow" /> + </s:a> + </s:else> + + <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:a href="%{editBookmark}" class="header-link"> + <i class="icon-add icon--large"></i> + <s:text name="bow.rightMenu.addUrl.link" /> + </s:a> + + <s:if test="%{#session.BowSession.user != null}"> + <div id="header-user-infos"> + <div class="dropdown-menu header-link"> + <i class="icon-settings"></i> + <ul> + <li> + <a href="http://maven-site.chorem.org/bow/" class="help" target="_blank"> + <s:text name="bow.rightMenu.help" /> + </a> + </li> + <s:if test="!bowSession.user.extensionNames.contains('BowSharedUser')"> + <li><s:a action="groupView"><s:text name="bow.groupView.title" /></s:a></li> + <li><s:a action="sharedUserView"><s:text name="bow.sharedUserView.title" /></s:a></li> + </s:if> + <s:if test="bowSession.admin"> + <li><s:a action="fragment/callStatistic">CallStatistic</s:a></li> + <li><s:a action="admin"><s:text name="bow.rightMenu.admin" /></s:a></li> + </s:if> + </ul> </div> - <div class="input"> - <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:if test="!bowSession.user.extensionNames.contains('BowSharedUser')"> + <s:a action="preferences" cssClass="header-link">${bowSession.user.login}</s:a> + <s:form action="logout" theme="simple" class="logout"> + <s:submit key="bow.rightMenu.logout" name="submit" cssClass="icon-logout" /> </s:form> - </div> + + <s:a href="" class="header-link"> + <i class="icon-logout icon"></i> + </s:a> + </s:if> </div> </s:if> + + <div id="header-search"> + <span class="header-search-label"> + <i class="icon-search icon"></i> Recherche + </span> + <select> + <option value="tag">Par tag</option> + <option value="fulltext">Full text</option> + </select> + <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> --> + <!--div class="search-tag"> + <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 id="msg"> <span id="actionmessageHeader"> <s:actionmessage /> diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/inc/rightMenu.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/inc/rightMenu.jsp deleted file mode 100644 index 255c79d..0000000 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/inc/rightMenu.jsp +++ /dev/null @@ -1,75 +0,0 @@ -<%-- - #%L - BOW UI - %% - Copyright (C) 2010 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" %> -<%@taglib prefix="sj" uri="/struts-jquery-tags" %> - -<sj:dialog id="editBookmark" - title="Ajout/Modification d'un bookmark" - modal="true" - autoOpen="false" /> - -<div id="logoutDiv" 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="!bowSession.user.extensionNames.contains('BowSharedUser')"> - ${bowSession.user.login} - <s:form action="logout" theme="simple"> - <div class="input"> - <s:submit key="bow.rightMenu.logout" name="submit" /> - </div> - </s:form> - </s:if> - <a href="http://maven-site.chorem.org/bow/" class="help" target="_blank"> - <s:text name="bow.rightMenu.help" /> - </a> -</div> - -<div id="side" xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" - xmlns:jsp="http://java.sun.com/JSP/Page"> - <div id="colonneD"> - <ul class="droite"> - <s:if test="!bowSession.user.extensionNames.contains('BowSharedUser')"> - <s:if test="bowSession.admin"> - <li><s:a action="fragment/callStatistic">CallStatistic</s:a></li> - <li><s:a action="admin"><s:text name="bow.rightMenu.admin" /></s:a></li> - </s:if> - <li><s:a action="preferences"><s:text name="bow.preferences.title" /></s:a></li> - <li> - <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:a href="%{editBookmark}"> - <s:text name="bow.rightMenu.addUrl.link" /> - </s:a> - </li> - <li><s:a action="groupView"><s:text name="bow.groupView.title" /></s:a></li> - <li><s:a action="sharedUserView"><s:text name="bow.sharedUserView.title" /></s:a></li> - </s:if> - </ul> - <!--div id="nuage"--> - <jsp:include page="tagsCloud.jsp" flush="true"/> - <!--/div--> - <div class="colonnebas"> - <img src="img/piedmenu.jpg" width="401" height="77" alt="Pied de menu" /> - </div> - </div> -</div> diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/inc/tagsCloud.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/inc/tagsCloud.jsp index 45b24b9..da7bcca 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/inc/tagsCloud.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/inc/tagsCloud.jsp @@ -21,7 +21,7 @@ <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@taglib prefix="s" uri="/struts-tags" %> -<div id="nuage" +<div class="cloud" xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" xmlns:jsp="http://java.sun.com/JSP/Page"> <s:iterator value="%{searchResult.tagsCloud}" status="tagStatus" var="tag"> @@ -33,7 +33,7 @@ <%-- on ne met pas 'first', il faut repartir de 0 --%> </s:url> <!-- --> - <s:a href="%{search}" title="%{#tag.count} results" cssClass="tag" + <s:a href="%{search}" title="%{#tag.count} results" cssClass="cloud-tag" cssStyle="font-size: %{searchResult.getFont(#tag.count)}px"> <s:property value="%{#tag.topicName}" /> </s:a> diff --git a/bow-ui/src/main/webapp/font/icomoon.woff b/bow-ui/src/main/webapp/font/icomoon.woff new file mode 100644 index 0000000..ab5b1dc Binary files /dev/null and b/bow-ui/src/main/webapp/font/icomoon.woff differ diff --git a/bow-ui/src/main/webapp/img/logobow.png b/bow-ui/src/main/webapp/img/logobow.png new file mode 100644 index 0000000..19e350b Binary files /dev/null and b/bow-ui/src/main/webapp/img/logobow.png differ -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.