[pollen] branch feature/createPreviewRessource updated (10984f3 -> e55300d)
This is an automated email from the git hooks/post-receive script. New change to branch feature/createPreviewRessource in repository pollen. See http://git.chorem.org/pollen.git from 10984f3 Set good header for preview, and improve getPreviewResource new 7cd7ff9 remove spin.js, add font-awesome. add icon for no image picture new e55300d replace glyphicon by fa The 2 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 e55300d45d9a80cf1bf791789152c58a69bfc2e7 Author: Adrien Garandel <a.garandel@dralagen.fr> Date: Wed Aug 13 17:01:22 2014 +0200 replace glyphicon by fa commit 7cd7ff9dc920b320551367264a558a2ee7732779 Author: Adrien Garandel <a.garandel@dralagen.fr> Date: Wed Aug 13 14:55:59 2014 +0200 remove spin.js, add font-awesome. add icon for no image picture Summary of changes: pollen-ui-angular/bower.json | 4 +- pollen-ui-angular/src/main/webapp/index.html | 6 +-- .../src/main/webapp/js/controllers/alertCtrl.js | 8 +-- pollen-ui-angular/src/main/webapp/js/directives.js | 57 +++++++++++++++----- pollen-ui-angular/src/main/webapp/less/style.less | 30 +++++------ .../src/main/webapp/less/variables.less | 15 +++++- .../src/main/webapp/partials/alerts.html | 4 +- .../src/main/webapp/partials/big-poll.html | 2 +- .../src/main/webapp/partials/dateTimePicker.html | 4 +- .../main/webapp/partials/favoriteList-edit.html | 8 +-- .../main/webapp/partials/favoriteList-list.html | 2 +- .../src/main/webapp/partials/home.html | 4 +- .../src/main/webapp/partials/inline-poll.html | 14 ++--- .../src/main/webapp/partials/poll-comment.html | 16 +++--- .../src/main/webapp/partials/poll-link.html | 18 +++---- .../src/main/webapp/partials/poll-list.html | 8 +-- .../main/webapp/partials/poll-listParticipant.html | 12 ++--- .../src/main/webapp/partials/poll-popupChoice.html | 6 +-- .../src/main/webapp/partials/poll-settings.html | 2 +- .../src/main/webapp/partials/poll.html | 2 +- .../src/main/webapp/partials/printResource.html | 16 +++++- .../src/main/webapp/partials/user-admin-list.html | 6 +-- .../src/main/webapp/partials/user-edit.html | 62 +++++++++------------- .../src/main/webapp/partials/user-login.html | 2 +- .../main/webapp/partials/user-lostPassword.html | 2 +- .../src/main/webapp/partials/user-register.html | 4 +- 26 files changed, 176 insertions(+), 138 deletions(-) -- 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 feature/createPreviewRessource in repository pollen. See http://git.chorem.org/pollen.git commit 7cd7ff9dc920b320551367264a558a2ee7732779 Author: Adrien Garandel <a.garandel@dralagen.fr> Date: Wed Aug 13 14:55:59 2014 +0200 remove spin.js, add font-awesome. add icon for no image picture --- pollen-ui-angular/bower.json | 4 +- pollen-ui-angular/src/main/webapp/index.html | 6 +-- pollen-ui-angular/src/main/webapp/js/directives.js | 47 ++++++++++++++++------ pollen-ui-angular/src/main/webapp/less/style.less | 30 +++++++------- .../src/main/webapp/partials/printResource.html | 16 +++++++- 5 files changed, 68 insertions(+), 35 deletions(-) diff --git a/pollen-ui-angular/bower.json b/pollen-ui-angular/bower.json index 5fdb1e0..b75909f 100644 --- a/pollen-ui-angular/bower.json +++ b/pollen-ui-angular/bower.json @@ -20,9 +20,9 @@ "ckeditor": "4.4.2", "less": "1.7.3", "jqplot-bower": "1.0.8", - "spin.js": "2.0.1", "moment": "2.8.1", - "bootstrap-datetimepicker": "dralagen/bootstrap-datetimepicker#development" + "bootstrap-datetimepicker": "dralagen/bootstrap-datetimepicker#development", + "font-awesome": "4.1.0" }, "devDependencies": { "angular-mocks": "1.2.21" diff --git a/pollen-ui-angular/src/main/webapp/index.html b/pollen-ui-angular/src/main/webapp/index.html index ee23285..ecf2891 100644 --- a/pollen-ui-angular/src/main/webapp/index.html +++ b/pollen-ui-angular/src/main/webapp/index.html @@ -26,7 +26,8 @@ <link rel="stylesheet" type="text/css" href="lib/bootstrap/dist/css/bootstrap.min.css" /> <link rel="stylesheet" type="text/css" href="lib/bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css" /> - <link rel="stylesheet" type="text/css" href="lib/jqplot-bower/dist//jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="lib/jqplot-bower/dist/jquery.jqplot.min.css" /> + <link rel="stylesheet" type="text/css" href="lib/font-awesome/css/font-awesome.min.css" /> <!-- TODO : compile less to css $ lessc -x less/style.less css/style.css ou @@ -46,9 +47,6 @@ <script language="javascript" type="text/javascript" src="lib/jqplot-bower/dist//plugins/jqplot.pointLabels.min.js"></script> <script language="javascript" type="text/javascript" src="lib/jqplot-bower/dist//plugins/jqplot.highlighter.min.js"></script> - <script language="javascript" type="text/javascript" src="lib/spin.js/spin.js"></script> - <script language="javascript" type="text/javascript" src="lib/spin.js/jquery.spin.js"></script> - <script language="javascript" type="text/javascript" src="lib/ckeditor/ckeditor.js"></script> <script language="javascript" type="text/javascript" src="lib/angular/angular.min.js"></script> diff --git a/pollen-ui-angular/src/main/webapp/js/directives.js b/pollen-ui-angular/src/main/webapp/js/directives.js index 4adb593..7421341 100644 --- a/pollen-ui-angular/src/main/webapp/js/directives.js +++ b/pollen-ui-angular/src/main/webapp/js/directives.js @@ -485,17 +485,16 @@ angular.module('pollenDirective', []) } scope.isImage = isImage(scope.meta.contentType); - - $(element).find('div').spin(false); } else { - scope.resourceURL = ""; - scope.previewURL = ""; - $(element).find('.preview').spin({ - position:'relative', - top:'32px', - left:'50%' - }); + scope.resourceURL = null; + scope.previewURL = null; + } + }); + + scope.$watch('meta', function(newVal) { + if (angular.isDefined(newVal)) { + scope.isImage = isImage(newVal.contentType); } }); }); @@ -507,13 +506,37 @@ angular.module('pollenDirective', []) }; var isImage = function (type) { - var allTypeAccepted = ["image/jpeg", "image/png", "image/gif"]; + if (type === undefined || type === null) { + scope.meta.class = "fa-spin fa-spinner"; + return false; + } + var allTypeImage = ["image/jpeg", "image/png", "image/gif"]; - for (var i in allTypeAccepted) { - if (allTypeAccepted[i] == type) { + for (var i in allTypeImage) { + if (allTypeImage[i] == type) { return true; } } + + if (type == "application/pdf") { + scope.meta.class = "fa-file-pdf-o"; + } + else if (type == "text/plain") { + scope.meta.class = "fa-file-text-o" + } + else if (type.split("/")[0] == "text") { + scope.meta.class = "fa-file-code-o"; + } + else if (type.split("/")[0] == "audio") { + scope.meta.class = "fa-file-audio-o"; + } + else if (type.split("/")[0] == "video") { + scope.meta.class = "fa-file-video-o"; + } + else { + scope.meta.class = "fa-file-archive-o"; + } + return false; }; diff --git a/pollen-ui-angular/src/main/webapp/less/style.less b/pollen-ui-angular/src/main/webapp/less/style.less index bef8bdf..764d2ae 100644 --- a/pollen-ui-angular/src/main/webapp/less/style.less +++ b/pollen-ui-angular/src/main/webapp/less/style.less @@ -307,17 +307,20 @@ body { .btn-large { height:60px; width:80px; + font-size: 1.5em; } - img { - max-width: @preview-size; - max-height: @preview-size; - } + .preview { + img { + max-width: @preview-size; + max-height: @preview-size; + } - .spinner { - height:64px; - width:150x !important; - z-index:1000 !important; + .fa { + font-size: @preview-size/2; + width: @preview-size/2; + height: @preview-size/2; + } } } } @@ -384,13 +387,6 @@ body { } } -.right-inner-addon .glyphicon-input { - position: absolute; - right: 30px; - top:10px; - pointer-events: none; -} - .fixe-input .ng-hide { display:inline-block !important; visibility:hidden; @@ -525,6 +521,10 @@ label.label-block { color : @help-color; } +.control-group { + margin-top: 5px; +} + footer { position: absolute; right: 0; diff --git a/pollen-ui-angular/src/main/webapp/partials/printResource.html b/pollen-ui-angular/src/main/webapp/partials/printResource.html index 3261fd8..c761212 100644 --- a/pollen-ui-angular/src/main/webapp/partials/printResource.html +++ b/pollen-ui-angular/src/main/webapp/partials/printResource.html @@ -1,5 +1,17 @@ -<div class="preview" ng-if="isImage"><img ng-attr-src="{{previewURL}}" /></div> -<div class="preview" ng-if="!isImage"><a ng-attr-href="{{resourceURL}}"><img ng-attr-src="{{previewURL}}" /></a></div> +<div class="preview" ng-if="isImage && resourceURL"> + <img ng-attr-src="{{previewURL}}" /> +</div> + +<div class="preview" ng-if="!isImage && resourceURL"> + <a ng-attr-href="{{resourceURL}}" target="_blank"> + <span ng-attr-class="fa {{meta.class}}"></span> + </a> +</div> + +<div class="preview" ng-if="!resourceURL"> + <span class="fa fa-spin fa-spinner"></span> +</div> + <div ng-if="isImage && showImage" class="full"> <div class="full-content"> <span>{{meta.name}}</span> -- 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 feature/createPreviewRessource in repository pollen. See http://git.chorem.org/pollen.git commit e55300d45d9a80cf1bf791789152c58a69bfc2e7 Author: Adrien Garandel <a.garandel@dralagen.fr> Date: Wed Aug 13 17:01:22 2014 +0200 replace glyphicon by fa --- .../src/main/webapp/js/controllers/alertCtrl.js | 8 +-- pollen-ui-angular/src/main/webapp/js/directives.js | 10 +++- .../src/main/webapp/less/variables.less | 15 +++++- .../src/main/webapp/partials/alerts.html | 4 +- .../src/main/webapp/partials/big-poll.html | 2 +- .../src/main/webapp/partials/dateTimePicker.html | 4 +- .../main/webapp/partials/favoriteList-edit.html | 8 +-- .../main/webapp/partials/favoriteList-list.html | 2 +- .../src/main/webapp/partials/home.html | 4 +- .../src/main/webapp/partials/inline-poll.html | 14 ++--- .../src/main/webapp/partials/poll-comment.html | 16 +++--- .../src/main/webapp/partials/poll-link.html | 18 +++---- .../src/main/webapp/partials/poll-list.html | 8 +-- .../main/webapp/partials/poll-listParticipant.html | 12 ++--- .../src/main/webapp/partials/poll-popupChoice.html | 6 +-- .../src/main/webapp/partials/poll-settings.html | 2 +- .../src/main/webapp/partials/poll.html | 2 +- .../src/main/webapp/partials/user-admin-list.html | 6 +-- .../src/main/webapp/partials/user-edit.html | 62 +++++++++------------- .../src/main/webapp/partials/user-login.html | 2 +- .../main/webapp/partials/user-lostPassword.html | 2 +- .../src/main/webapp/partials/user-register.html | 4 +- 22 files changed, 108 insertions(+), 103 deletions(-) diff --git a/pollen-ui-angular/src/main/webapp/js/controllers/alertCtrl.js b/pollen-ui-angular/src/main/webapp/js/controllers/alertCtrl.js index 06bf08f..8493e41 100644 --- a/pollen-ui-angular/src/main/webapp/js/controllers/alertCtrl.js +++ b/pollen-ui-angular/src/main/webapp/js/controllers/alertCtrl.js @@ -32,7 +32,7 @@ angular.module('alertControllers', []) $scope.data.persistentAlerts = []; $scope.$on('newError', function (event, error, timeout) { - var alert = {msg:error, type:'danger', glyphicon:'glyphicon-remove'}; + var alert = {msg:error, type:'danger', icon:'fa fa-remove'}; if (angular.isDefined(timeout)) { $scope.addAlert(alert, timeout); } else { @@ -41,7 +41,7 @@ angular.module('alertControllers', []) }); $scope.$on('newWarning', function (event, warning, timeout) { - var alert = {msg:warning, type:'warning', glyphicon:'glyphicon-warning-sign'}; + var alert = {msg:warning, type:'warning', icon:'fa fa-warning'}; if (angular.isDefined(timeout)) { $scope.addAlert(alert, timeout); } else { @@ -51,7 +51,7 @@ angular.module('alertControllers', []) $scope.$on('newSuccess', function (event, success, timeout) { - var alert = {msg:success, type:'success', glyphicon:'glyphicon-ok'}; + var alert = {msg:success, type:'success', icon:'fa fa-check'}; if (angular.isDefined(timeout)) { $scope.addAlert(alert, timeout); } else { @@ -60,7 +60,7 @@ angular.module('alertControllers', []) }); $scope.$on('newInfo', function (event, info, timeout) { - var alert = {msg:info, type:'info', glyphicon:'glyphicon-info-sign'}; + var alert = {msg:info, type:'info', icon:'fa fa-info-circle'}; if (angular.isDefined(timeout)) { $scope.addAlert(alert, timeout); } else { diff --git a/pollen-ui-angular/src/main/webapp/js/directives.js b/pollen-ui-angular/src/main/webapp/js/directives.js index 7421341..751a7a4 100644 --- a/pollen-ui-angular/src/main/webapp/js/directives.js +++ b/pollen-ui-angular/src/main/webapp/js/directives.js @@ -133,7 +133,7 @@ angular.module('pollenDirective', []) error: '=', forData: '=data' }, - template: '<span class="glyphicon glyphicon-exclamation-sign danger" tooltip="{{error}}" ng-if="error"></span>', + template: '<span class="fa fa-exclamation-circle danger" tooltip="{{error}}" ng-if="error"></span>', link: function (scope) { scope.$watch('forData', function (newVal, oldVal) { if (newVal != oldVal) { @@ -568,7 +568,13 @@ angular.module('pollenDirective', []) scope.dateTimePicker = $(element).find(".datetimepicker"); scope.dateTimePicker.datetimepicker({ language: SessionStorage.get().locale, - showPickOnFocus: true + showPickOnFocus: true, + icons: { + time: "fa fa-clock-o", + date: "fa fa-calendar", + up: "fa fa-chevron-up", + down: "fa fa-chevron-down" + } }); var setDate = function () { diff --git a/pollen-ui-angular/src/main/webapp/less/variables.less b/pollen-ui-angular/src/main/webapp/less/variables.less index fc204ab..d819187 100644 --- a/pollen-ui-angular/src/main/webapp/less/variables.less +++ b/pollen-ui-angular/src/main/webapp/less/variables.less @@ -21,6 +21,7 @@ @import "../lib/bootstrap/less/variables.less"; @import "../lib/bootstrap/less/mixins.less"; +@import "../lib/font-awesome/less/variables.less"; @time-transition : 0.8s; @short-time-transition : 0.2s; @@ -86,7 +87,7 @@ .transition(opacity @short-time-transition ease); } - .glyphicon { + .fa { display:inline-block; font-size:1.4em; top:5px; @@ -97,8 +98,18 @@ .alert-message { margin-right:20px; margin-left: 30px; - margin-top: -12px; + margin-top: -20px; } } } + +/* override fa-save */ +.@{fa-css-prefix}-save:before { + content: @fa-var-download; +} + +/* override fa-save */ +.@{fa-css-prefix}-remove:before { + content: @fa-var-times; +} diff --git a/pollen-ui-angular/src/main/webapp/partials/alerts.html b/pollen-ui-angular/src/main/webapp/partials/alerts.html index 0509336..3c8e854 100644 --- a/pollen-ui-angular/src/main/webapp/partials/alerts.html +++ b/pollen-ui-angular/src/main/webapp/partials/alerts.html @@ -3,7 +3,7 @@ type="{{alert.type}}" ng-mouseenter="hoverAlert(alert)" ng-mouseleave="leaveAlert(alert)" - close="hideAlert(alert)"><span class="glyphicon" ng-class="alert.glyphicon"></span> <div class="alert-message" ng-bind-html="toHTML(alert.msg)"></div> </alert> + close="hideAlert(alert)"><span ng-attr-class="{{alert.icon}}"></span> <div class="alert-message" ng-bind-html="toHTML(alert.msg)"></div> </alert> </div> @@ -12,6 +12,6 @@ type="{{alert.type}}" ng-mouseenter="hoverAlert(alert)" ng-mouseleave="leaveAlert(alert)" - close="hideAlert(alert)"><span class="glyphicon" ng-class="alert.glyphicon"></span> <div class="alert-message" ng-bind-html="toHTML(alert.msg)"></div> </alert> + close="hideAlert(alert)"><span ng-attr-class="{{alert.icon}}"></span> <div class="alert-message" ng-bind-html="toHTML(alert.msg)"></div> </alert> </div> diff --git a/pollen-ui-angular/src/main/webapp/partials/big-poll.html b/pollen-ui-angular/src/main/webapp/partials/big-poll.html index bdb698f..12cee35 100644 --- a/pollen-ui-angular/src/main/webapp/partials/big-poll.html +++ b/pollen-ui-angular/src/main/webapp/partials/big-poll.html @@ -61,7 +61,7 @@ <div class="row pollBigChoice"> <div class="col-sm-10"> - <button class="btn btn-info" ng-click="addChoice()" ng-if="globalVariables.editMode" ><span class="glyphicon glyphicon-plus"></span> Ajouter un choix</button> + <button class="btn btn-info" ng-click="addChoice()" ng-if="globalVariables.editMode" ><span class="fa fa-plus"></span> Ajouter un choix</button> </div> <div class="col-sm-2"> <button ng-click="inlineVersion()" class="btn btn-default">inline version</button> diff --git a/pollen-ui-angular/src/main/webapp/partials/dateTimePicker.html b/pollen-ui-angular/src/main/webapp/partials/dateTimePicker.html index a4d7693..140decc 100644 --- a/pollen-ui-angular/src/main/webapp/partials/dateTimePicker.html +++ b/pollen-ui-angular/src/main/webapp/partials/dateTimePicker.html @@ -1,10 +1,10 @@ <div class="input-group date datetimepicker"> <input type="text" class="form-control" focus-me="focus" ng-exit="exit()" id="{{forId}}" /> <span class="input-group-addon datepickerbutton"> - <span class="glyphicon glyphicon-calendar"></span> + <span></span> </span> <span class="input-group-addon" ng-click="remove()"> - <span class="glyphicon glyphicon-remove"></span> + <span class="fa fa-remove"></span> </span> </div> diff --git a/pollen-ui-angular/src/main/webapp/partials/favoriteList-edit.html b/pollen-ui-angular/src/main/webapp/partials/favoriteList-edit.html index 0e9e581..6ad4fd6 100644 --- a/pollen-ui-angular/src/main/webapp/partials/favoriteList-edit.html +++ b/pollen-ui-angular/src/main/webapp/partials/favoriteList-edit.html @@ -53,7 +53,7 @@ <input type="text" ng-model="member.email" class="form-control" auto-save="saveMember(member)" /> </input-error> </td> - <td class="action"><button class="btn btn-danger" ng-click="deleteMember(member);" tooltip="{{ 'action.favoriteList.deleteMember' | translate }} "><span class="glyphicon glyphicon-trash"></span></button></td> + <td class="action"><button class="btn btn-danger" ng-click="deleteMember(member);" tooltip="{{ 'action.favoriteList.deleteMember' | translate }} "><span class="fa fa-trash-o"></span></button></td> </tr> <tr> @@ -66,13 +66,13 @@ <tr> <th colspan="3"> - <button class="btn btn-info" ng-click="addMember();"><span class="glyphicon glyphicon-plus"></span> {{ 'action.favoriteList.addMember' | translate }} </button> - <button class="btn btn-danger" ng-click="deleteFavoriteList();"><span class="glyphicon glyphicon-trash"></span> {{ 'action.favoriteList.delete' | translate }} </button> + <button class="btn btn-info" ng-click="addMember();"><span class="fa fa-plus"></span> {{ 'action.favoriteList.addMember' | translate }} </button> + <button class="btn btn-danger" ng-click="deleteFavoriteList();"><span class="fa fa-trash-o"></span> {{ 'action.favoriteList.delete' | translate }} </button> </th> </tr> </table> <div class="text-right"> - <button class="btn btn-info" ng-click="newFavoriteList()"><span class="glyphicon glyphicon-plus"></span> {{ 'action.favoriteList.add' | translate }}</button> + <button class="btn btn-info" ng-click="newFavoriteList()"><span class="fa fa-plus"></span> {{ 'action.favoriteList.add' | translate }}</button> </div> </div> \ No newline at end of file diff --git a/pollen-ui-angular/src/main/webapp/partials/favoriteList-list.html b/pollen-ui-angular/src/main/webapp/partials/favoriteList-list.html index 3995423..79ed4b6 100644 --- a/pollen-ui-angular/src/main/webapp/partials/favoriteList-list.html +++ b/pollen-ui-angular/src/main/webapp/partials/favoriteList-list.html @@ -22,7 +22,7 @@ <h1> {{ 'user.favoriteList' | translate }} </h1> <div> - <a href="#/favoriteList/new"><button class="btn btn-info"><span class="glyphicon glyphicon-plus"></span> {{ 'action.favoriteList.add' | translate }}</button></a> + <a href="#/favoriteList/new"><button class="btn btn-info"><span class="fa fa-plus"></span> {{ 'action.favoriteList.add' | translate }}</button></a> <div ng-repeat="favList in data.favoriteList"> <h2> <a href="#/favoriteList/{{favList.id}}">{{ favList.name }}</a></h2> <hr/> diff --git a/pollen-ui-angular/src/main/webapp/partials/home.html b/pollen-ui-angular/src/main/webapp/partials/home.html index 61ea157..ab0d19d 100644 --- a/pollen-ui-angular/src/main/webapp/partials/home.html +++ b/pollen-ui-angular/src/main/webapp/partials/home.html @@ -28,8 +28,8 @@ {{ 'home.description' | translate }} </p> <p class=""> - <a href="#/poll/create" class="btn btn-primary btn-lg"><span class="glyphicon glyphicon-plus-sign"></span> {{ 'home.newPoll' | translate }}</a> - <a href="#/user/register" class="btn btn-default btn-lg"><span class="glyphicon glyphicon-user"></span> {{ 'home.register' | translate }} </a> + <a href="#/poll/create" class="btn btn-primary btn-lg"><span class="fa fa-plus-circle"></span> {{ 'home.newPoll' | translate }}</a> + <a href="#/user/register" class="btn btn-default btn-lg"><span class="fa fa-users"></span> {{ 'home.register' | translate }} </a> </p> </div> </div> diff --git a/pollen-ui-angular/src/main/webapp/partials/inline-poll.html b/pollen-ui-angular/src/main/webapp/partials/inline-poll.html index e8b6da4..17cb380 100644 --- a/pollen-ui-angular/src/main/webapp/partials/inline-poll.html +++ b/pollen-ui-angular/src/main/webapp/partials/inline-poll.html @@ -60,7 +60,7 @@ </div> </td> - <td ng-if="data.poll.choiceAddAllowed || globalVariables.editMode"><button class="btn btn-default btn-large" ng-click="addChoice()"> <span class="glyphicon glyphicon-plus"></span> </button></td> + <td ng-if="data.poll.choiceAddAllowed || globalVariables.editMode"><button class="btn btn-default btn-large" ng-click="addChoice()"> <span class="fa fa-plus"></span> </button></td> </tr> <!-- end print choice --> @@ -108,14 +108,14 @@ <div ng-hide="vote.onEdit"> <div ng-show="choice.id"> <div ng-show="data.voteCountingType.renderType == 'checkbox'" > - <span class="glyphicon glyphicon-ok text-success" ng-show="choice.voteValue"></span> + <span class="fa fa-check text-success" ng-show="choice.voteValue"></span> </div> <div ng-show="data.voteCountingType.renderType != 'checkbox'"> {{choice.voteValue}} </div> </div> <div ng-hide="choice.id"> - <span class="glyphicon glyphicon-eye-close text-danger" tooltip="{{ 'poll.info.vote.noViewChoice' | translate }}"></span> + <span class="fa fa-eye-slash text-danger" tooltip="{{ 'poll.info.vote.noViewChoice' | translate }}"></span> </div> </div> <div ng-show="vote.onEdit"> @@ -130,16 +130,16 @@ <td> <div ng-if="!data.poll.isClosed"> <button class="btn btn-primary" ng-if="vote.permission && !globalVariables.editMode && vote.onEdit" ng-click="saveVote(vote)"> - <span class="glyphicon glyphicon-ok"></span> + <span class="fa fa-check"></span> </button> <button class="btn btn-default" ng-if="vote.permission && !globalVariables.editMode && vote.onEdit" ng-click="cancelVote(vote)"> - <span class="glyphicon glyphicon-remove"></span> + <span class="fa fa-remove"></span> </button> <button class="btn btn-info" ng-if="vote.permission && !globalVariables.editMode && !vote.onEdit" ng-click="editVote(vote)"> - <span class="glyphicon glyphicon-pencil"></span> + <span class="fa fa-edit"></span> </button> <button class="btn btn-danger" ng-if="vote.permission && !globalVariables.editMode && !vote.onEdit" ng-click="deleteVote(vote)"> - <span class="glyphicon glyphicon-trash"></span> + <span class="fa fa-trash-o"></span> </button> </div> </td> diff --git a/pollen-ui-angular/src/main/webapp/partials/poll-comment.html b/pollen-ui-angular/src/main/webapp/partials/poll-comment.html index 9aa9aba..2ff9034 100644 --- a/pollen-ui-angular/src/main/webapp/partials/poll-comment.html +++ b/pollen-ui-angular/src/main/webapp/partials/poll-comment.html @@ -45,13 +45,13 @@ <div class="form-group"> <div class="col-sm-3"> <div ng-show="data.comments"> - <a class="fakeLink" ng-click="toggleOrder()" ng-show="desc" tooltip="{{ 'comment.order.toAsc' | translate }}"><span class="glyphicon glyphicon-sort-by-attributes"></span></a> - <a class="fakeLink" ng-click="toggleOrder()" ng-hide="desc" tooltip="{{ 'comment.order.toDesc' | translate }}"><span class="glyphicon glyphicon-sort-by-attributes-alt"></span></a> + <a class="fakeLink" ng-click="toggleOrder()" ng-show="desc" tooltip="{{ 'comment.order.toAsc' | translate }}"><span class="fa fa-sort-amount-asc"></span></a> + <a class="fakeLink" ng-click="toggleOrder()" ng-hide="desc" tooltip="{{ 'comment.order.toDesc' | translate }}"><span class="fa fa-sort-amount-desc"></span></a> </div> </div> <div class="col-sm-9"> - <button type="submit" class="btn btn-primary" ng-hide="comment.id"><span class="glyphicon glyphicon-save"></span> {{ 'action.comment' | translate }}</button> - <button type="submit" class="btn btn-primary" ng-show="comment.id"><span class="glyphicon glyphicon-save"></span> {{ 'action.edit' | translate }}</button> + <button type="submit" class="btn btn-primary" ng-hide="comment.id"><span class="fa fa-comment"></span> {{ 'action.comment' | translate }}</button> + <button type="submit" class="btn btn-primary" ng-show="comment.id"><span class="fa fa-pencil-square-o"></span> {{ 'action.edit' | translate }}</button> </div> </div> </form> @@ -61,10 +61,10 @@ <table id="comments"> <tr ng-repeat="comment in data.comments"> <td> - <span class="glyphicon glyphicon-user"></span>{{comment.authorName}}<br/> - <span class="glyphicon glyphicon-calendar"></span>{{comment.postDate | date:globalVariables.dateTimeFormat}}<br/> - <a class="fakeLink" ng-click="editPost(comment)" ng-if="comment.permission"><span class="glyphicon glyphicon-pencil" ng-show="comment.id"></span></a> - <a class="fakeLink" ng-click="deletePost(comment)" ng-if="comment.permission"><span class="glyphicon glyphicon-trash danger" ng-show="comment.id"></span></a> + <span class="fa fa-user"></span> {{comment.authorName}}<br/> + <span class="fa fa-calendar"></span> {{comment.postDate | date:globalVariables.dateTimeFormat}}<br/> + <a class="fakeLink" ng-click="editPost(comment)" ng-if="comment.permission"><span class="fa fa-pencil-square-o" ng-show="comment.id"></span></a> + <a class="fakeLink" ng-click="deletePost(comment)" ng-if="comment.permission"><span class="fa fa-trash-o danger" ng-show="comment.id"></span></a> </td> <td> <div ng-bind-html="toHTML(comment.text)"></div> diff --git a/pollen-ui-angular/src/main/webapp/partials/poll-link.html b/pollen-ui-angular/src/main/webapp/partials/poll-link.html index 4f8428b..7f84692 100644 --- a/pollen-ui-angular/src/main/webapp/partials/poll-link.html +++ b/pollen-ui-angular/src/main/webapp/partials/poll-link.html @@ -21,13 +21,13 @@ <ul> <li class="toMini" ng-click="toggleMinify()"> - <a class="fakeLink" ng-show="globalVariables.minify"><span class="glyphicon glyphicon-chevron-right"></span></a> - <a class="fakeLink" ng-hide="globalVariables.minify"><span class="glyphicon glyphicon-chevron-left"></span></a> + <a class="fakeLink" ng-show="globalVariables.minify"><span class="fa fa-chevron-right"></span></a> + <a class="fakeLink" ng-hide="globalVariables.minify"><span class="fa fa-chevron-left"></span></a> </li> <li ng-if="! data.poll.isClosed"> <a href="{{globalVariables.linkVote}}"> - <span class="glyphicon glyphicon-link" title="{{ 'poll.link.vote' | translate }}"></span> + <span class="fa fa-link" title="{{ 'poll.link.vote' | translate }}"></span> <span class="text">{{ 'poll.link.vote' | translate }}</span> </a> <input type="text" select-on-click value="{{globalVariables.linkVote}}" readonly class="form-control input-mini"/> @@ -35,7 +35,7 @@ <li ng-if="data.poll.resultIsVisible"> <a href="{{globalVariables.linkResult}}"> - <span class="glyphicon glyphicon-stats" title="{{ 'poll.link.result' | translate }}"></span> + <span class="fa fa-bar-chart-o" title="{{ 'poll.link.result' | translate }}"></span> <span class="text">{{ 'poll.link.result' | translate }}</span> </a> <input type="text" select-on-click value="{{globalVariables.linkResult}}" readonly class="form-control input-mini"/> @@ -45,7 +45,7 @@ <ul ng-if="data.poll.permission"> <li> <a href="{{globalVariables.linkEdit}}"> - <span class="glyphicon glyphicon-pencil" title="{{ 'poll.link.edit' | translate }}"></span> + <span class="fa fa-pencil-square-o" title="{{ 'poll.link.edit' | translate }}"></span> <span class="text">{{ 'poll.link.edit' | translate }}</span> </a> <input type="text" select-on-click value="{{globalVariables.linkEdit}}" readonly class="form-control input-mini"/> @@ -53,14 +53,14 @@ <li> <a class="fakeLink" ng-click="clonePoll()" href=""> - <span class="glyphicon glyphicon-transfer" title="{{ 'poll.link.clone' | translate }}"></span> + <span class="fa fa-share" title="{{ 'poll.link.clone' | translate }}"></span> <span class="text">{{ 'poll.link.clone' | translate }}</span> </a> </li> <li> <a class="fakeLink"> - <span class="glyphicon glyphicon-export" title="{{ 'poll.link.export' | translate }}"></span> + <span class="fa fa-upload" title="{{ 'poll.link.export' | translate }}"></span> <span class="text">{{ 'poll.link.export' | translate }} (disabled)</span> </a> </li> @@ -69,14 +69,14 @@ <ul ng-if="data.poll.permission"> <li ng-if="!data.poll.isClosed"> <a class="fakeLink danger" href="" ng-click="closePoll()"> - <span class="glyphicon glyphicon-remove" title="{{ 'poll.link.close' | translate }}"></span> + <span class="fa fa-remove" title="{{ 'poll.link.close' | translate }}"></span> <span class="text">{{ 'poll.link.close' | translate }}</span> </a> </li> <li> <a class="fakeLink danger" href="" ng-click="deletePoll()"> - <span class="glyphicon glyphicon-trash" title="{{ 'poll.link.delete' | translate }}"></span> + <span class="fa fa-trash-o" title="{{ 'poll.link.delete' | translate }}"></span> <span class="text">{{ 'poll.link.delete' | translate }}</span> </a> </li> diff --git a/pollen-ui-angular/src/main/webapp/partials/poll-list.html b/pollen-ui-angular/src/main/webapp/partials/poll-list.html index dd5b175..79bb9d7 100644 --- a/pollen-ui-angular/src/main/webapp/partials/poll-list.html +++ b/pollen-ui-angular/src/main/webapp/partials/poll-list.html @@ -35,10 +35,10 @@ </tr> <tr ng-show="data.polls.length > 0"> <td colspan="3"> - <button class="btn btn-default" ng-click="selectAll()"><span class="glyphicon glyphicon-check"></span> {{ 'action.selectAll' | translate }}</button> - <button class="btn btn-default" ng-click="unselectAll()"><span class="glyphicon glyphicon-unchecked"></span> {{ 'action.unselectAll' | translate }}</button> - <button class="btn btn-default" ng-click="toggleSelectAll()"><span class="glyphicon glyphicon-transfer"></span> {{ 'action.toggleSelectAll' | translate }}</button> - <button class="btn btn-danger" ng-click="deleteSelected()" ng-if="globalVariables.hasAllRight"><span class="glyphicon glyphicon-trash"></span> {{ 'action.deleteSelected' | translate }}</button> + <button class="btn btn-default" ng-click="selectAll()"><span class="fa fa-check-square-o"></span> {{ 'action.selectAll' | translate }}</button> + <button class="btn btn-default" ng-click="unselectAll()"><span class="fa fa-square-o"></span> {{ 'action.unselectAll' | translate }}</button> + <button class="btn btn-default" ng-click="toggleSelectAll()"><span class="fa fa-check-square"></span> {{ 'action.toggleSelectAll' | translate }}</button> + <button class="btn btn-danger" ng-click="deleteSelected()" ng-if="globalVariables.hasAllRight"><span class="fa fa-trash-o"></span> {{ 'action.deleteSelected' | translate }}</button> </td> </tr> </table> diff --git a/pollen-ui-angular/src/main/webapp/partials/poll-listParticipant.html b/pollen-ui-angular/src/main/webapp/partials/poll-listParticipant.html index 4264be7..187da71 100644 --- a/pollen-ui-angular/src/main/webapp/partials/poll-listParticipant.html +++ b/pollen-ui-angular/src/main/webapp/partials/poll-listParticipant.html @@ -43,8 +43,8 @@ <hr/> <div class="row"> - <button class="btn btn-info" ng-show="data.poll.pollType == 'GROUP'" ng-click="addGroup()"><span class="glyphicon glyphicon-plus"></span> {{ 'action.restricted.addGroup' | translate }}</button> - <button class="btn btn-warning" disabled><span class="glyphicon glyphicon-envelope"></span> {{ 'action.restricted.notify' | translate }}</button> + <button class="btn btn-info" ng-show="data.poll.pollType == 'GROUP'" ng-click="addGroup()"><span class="fa fa-plus"></span> {{ 'action.restricted.addGroup' | translate }}</button> + <button class="btn btn-warning" disabled><span class="fa fa-envelope"></span> {{ 'action.restricted.notify' | translate }}</button> </div> <div class="row" ng-if="data.favoriteList"> @@ -104,15 +104,15 @@ </input-error> </td> <td class="action"> - <button class="btn btn-danger" ng-click="deleteVoterListMember(member, voterList);" tooltip="{{ 'action.restricted.deleteVoter' | translate }}"><span class="glyphicon glyphicon-trash"></span></button> + <button class="btn btn-danger" ng-click="deleteVoterListMember(member, voterList);" tooltip="{{ 'action.restricted.deleteVoter' | translate }}"><span class="fa fa-trash-o"></span></button> </td> </tr> <tr> <th colspan="4"> - <button class="btn btn-info" ng-click="addVoter($index);"> <span class="glyphicon glyphicon-plus"></span> {{ 'action.restricted.addVoter' | translate }} </button> - <button class="btn btn-danger" ng-click="deleteVoterList(voterList);"> <span class="glyphicon glyphicon-trash"></span> {{ 'action.restricted.deleteGroup' | translate }} </button> - <button class="btn btn-info" ng-click="importFavoriteList(voterList)" ng-if="data.favoriteList"><span class="glyphicon glyphicon-plus"></span> {{ 'action.favoriteList.import.inGroup' | translate }}</button> + <button class="btn btn-info" ng-click="addVoter($index);"> <span class="fa fa-plus"></span> {{ 'action.restricted.addVoter' | translate }} </button> + <button class="btn btn-danger" ng-click="deleteVoterList(voterList);"> <span class="fa fa-trash-o"></span> {{ 'action.restricted.deleteGroup' | translate }} </button> + <button class="btn btn-info" ng-click="importFavoriteList(voterList)" ng-if="data.favoriteList"><span class="fa fa-save"></span> {{ 'action.favoriteList.import.inGroup' | translate }}</button> </th> </tr> </table> diff --git a/pollen-ui-angular/src/main/webapp/partials/poll-popupChoice.html b/pollen-ui-angular/src/main/webapp/partials/poll-popupChoice.html index 86f7dd8..15c617f 100644 --- a/pollen-ui-angular/src/main/webapp/partials/poll-popupChoice.html +++ b/pollen-ui-angular/src/main/webapp/partials/poll-popupChoice.html @@ -69,8 +69,8 @@ </div> </div> <div class="modal-footer"> - <button type="button" class="btn btn-danger" ng-if="choice.choiceIsDeletable" ng-click="deleteChoice(choice)"><span class="glyphicon glyphicon-trash"></span> Supprimer</button> - <button type="button" class="btn btn-default" ng-click="cancelChoice()"><span class="glyphicon glyphicon-remove"></span> Annuler</button> - <button type="button" class="btn btn-primary" ng-click="saveChoice()"><span class="glyphicon glyphicon-save"></span> Sauvegarder</button> + <button type="button" class="btn btn-danger" ng-if="choice.choiceIsDeletable" ng-click="deleteChoice(choice)"><span class="fa fa-trash-o"></span> Supprimer</button> + <button type="button" class="btn btn-default" ng-click="cancelChoice()"><span class="fa fa-remove"></span> Annuler</button> + <button type="button" class="btn btn-primary" ng-click="saveChoice()"><span class="fa fa-save"></span> Sauvegarder</button> </div> </form> \ No newline at end of file diff --git a/pollen-ui-angular/src/main/webapp/partials/poll-settings.html b/pollen-ui-angular/src/main/webapp/partials/poll-settings.html index 7bd7a89..552abbb 100644 --- a/pollen-ui-angular/src/main/webapp/partials/poll-settings.html +++ b/pollen-ui-angular/src/main/webapp/partials/poll-settings.html @@ -181,7 +181,7 @@ {{ 'poll.config.label.limitedVote' | translate }} </label> <div class="col-sm-6"> - <input type="number" min="0" step="1" id="formLimitedVote" ng-model="data.poll.limitedVote" auto-save="autoSavePoll()" /> + <input type="number" min="0" step="1" class="form-control" id="formLimitedVote" ng-model="data.poll.limitedVote" auto-save="autoSavePoll()" /> </div> <div class="col-sm-2"></div> </div> diff --git a/pollen-ui-angular/src/main/webapp/partials/poll.html b/pollen-ui-angular/src/main/webapp/partials/poll.html index cb99bc0..b3e7fcc 100644 --- a/pollen-ui-angular/src/main/webapp/partials/poll.html +++ b/pollen-ui-angular/src/main/webapp/partials/poll.html @@ -55,7 +55,7 @@ <div> <hr/> - <button class="btn btn-primary" ng-click="savePoll()"><span class="glyphicon glyphicon-save"></span> {{ 'action.save' | translate }}</button> + <button class="btn btn-primary" ng-click="savePoll()"><span class="fa fa-save"></span> {{ 'action.save' | translate }}</button> </div> </div> diff --git a/pollen-ui-angular/src/main/webapp/partials/user-admin-list.html b/pollen-ui-angular/src/main/webapp/partials/user-admin-list.html index 86a92c6..fc8e7d5 100644 --- a/pollen-ui-angular/src/main/webapp/partials/user-admin-list.html +++ b/pollen-ui-angular/src/main/webapp/partials/user-admin-list.html @@ -43,9 +43,9 @@ <input type="checkbox" ng-model="user.administrator" auto-save="saveUser(user)"/> </td> <td class="action"> - <button class="btn btn-warning" ng-click="generatePassword(user)" title="{{ 'user.generatePassword' | translate}}"> <span class="glyphicon glyphicon-refresh"></span> </button> - <button class="btn btn-warning" ng-click="banUser(user)" ng-disabled="user.isDisabled" title="{{ 'user.disableUser' | translate}}"> <span class="glyphicon glyphicon-ban-circle"></span> </button> - <button class="btn btn-danger" ng-click="deleteUser(user)" title="{{ 'action.delete' | translate}}"> <span class="glyphicon glyphicon-trash"></span> </button> + <button class="btn btn-warning" ng-click="generatePassword(user)" title="{{ 'user.generatePassword' | translate}}"> <span class="fa fa-refresh"></span> </button> + <button class="btn btn-warning" ng-click="banUser(user)" ng-disabled="user.isDisabled" title="{{ 'user.disableUser' | translate}}"> <span class="fa fa-ban"></span> </button> + <button class="btn btn-danger" ng-click="deleteUser(user)" title="{{ 'action.delete' | translate}}"> <span class="fa fa-trash-o"></span> </button> </td> </tr> <tr> diff --git a/pollen-ui-angular/src/main/webapp/partials/user-edit.html b/pollen-ui-angular/src/main/webapp/partials/user-edit.html index 7a24223..acc7662 100644 --- a/pollen-ui-angular/src/main/webapp/partials/user-edit.html +++ b/pollen-ui-angular/src/main/webapp/partials/user-edit.html @@ -22,14 +22,14 @@ <form class="horizontal-form"> <div class="control-group row"> - <label for="formName" class="col-sm-5 text-right control-label"> - {{ 'user.name' | translate }} - </label> - <div class="col-sm-6"> - <input type="text" id="formName" class="form-control" ng-model="data.user.name" auto-save="editUser()" /> - </div> - <div class="col-sm-1"> - </div> + <label for="formName" class="col-sm-5 text-right control-label"> + {{ 'user.name' | translate }} + </label> + <div class="col-sm-6"> + <input type="text" id="formName" class="form-control" ng-model="data.user.name" auto-save="editUser()" /> + </div> + <div class="col-sm-1"> + </div> </div> <div class="control-group row"> @@ -46,18 +46,6 @@ </div> </div> - <div class="control-group row"> - <label for="formPassword" class="col-sm-5 text-right control-label"> - {{ 'user.passwordCurrent' | translate }} - </label> - <div class="col-sm-6"> - <input type="password" id="formPassword" class="form-control" ng-model="data.user.password" auto-save="editUser()" /> - </div> - <div class="col-sm-1"> - <info-error error="restError.password[0]" data="data.user.password"></info-error> - </div> - </div> - </form> @@ -68,19 +56,7 @@ </div> <form class="horizontal-form"> - <div class="control-group"> - <label for="formCurrentPassword" class="col-sm-5 text-right control-label"> - {{ 'user.passwordCurrent' | translate }} - </label> - <div class="col-sm-6"> - <input type="password" id="formCurrentPassword" class="form-control" ng-model="data.user.password" auto-save="editPassword()" /> - </div> - <div class="col-sm-1"> - <info-error error="restError.password[0]" data="data.user.password"></info-error> - </div> - </div> - - <div class="control-group"> + <div class="control-group row"> <label for="formNewPassword" class="col-sm-5 text-right control-label"> {{ 'user.passwordNew' | translate }} </label> @@ -92,7 +68,7 @@ </div> </div> - <div class="control-group"> + <div class="control-group row"> <label for="formNewPassword2" class="col-sm-5 text-right control-label"> {{ 'user.password2' | translate }} </label> @@ -100,7 +76,7 @@ <input type="password" id="formNewPassword2" class="form-control" ng-model="data.user.newPassword2" auto-save="editPassword()"/> </div> <div class="col-sm-1"> - <span class="glyphicon glyphicon-exclamation-sign danger" tooltip="{{ 'user.error.password.diff' | translate }}" ng-if="data.user.newPassword != data.user.newPassword2"></span> + <span class="fa fa-exclamation-circle danger" tooltip="{{ 'user.error.password.diff' | translate }}" ng-if="data.user.newPassword != data.user.newPassword2"></span> </div> </div> @@ -110,10 +86,22 @@ <div class="col-sm-1"></div> </div> - <div class="row"> + <div class="control-group row"> + <label for="formCurrentPassword" class="col-sm-5 text-right control-label"> + {{ 'user.passwordCurrent' | translate }} + </label> + <div class="col-sm-6"> + <input type="password" id="formCurrentPassword" class="form-control" ng-model="data.user.password" auto-save="editPassword()" /> + </div> + <div class="col-sm-1"> + <info-error error="restError.password[0]" data="data.user.password"></info-error> + </div> + </div> + + <div class="control-group row"> <div class="col-sm-5"></div> <div class="col-sm-7"> - <button class="btn btn-warning" ng-click="disableUser()"><span class="glyphicon glyphicon-ban-circle"></span> {{ 'user.disableMe' | translate }}</button> + <button class="btn btn-warning" ng-click="disableUser()"><span class="fa fa-ban"></span> {{ 'user.disableMe' | translate }}</button> </div> </div> diff --git a/pollen-ui-angular/src/main/webapp/partials/user-login.html b/pollen-ui-angular/src/main/webapp/partials/user-login.html index 9745533..d3b68c4 100644 --- a/pollen-ui-angular/src/main/webapp/partials/user-login.html +++ b/pollen-ui-angular/src/main/webapp/partials/user-login.html @@ -44,7 +44,7 @@ </div> <div class="form-actions"> - <button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-log-in"></span> {{ 'action.login' | translate }}</button> + <button type="submit" class="btn btn-primary"><span class="fa fa-sign-in"></span> {{ 'action.login' | translate }}</button> <hr/> <a href="#/user/lostpassword"> {{ 'user.forgotPassword' | translate }}</a> </div> diff --git a/pollen-ui-angular/src/main/webapp/partials/user-lostPassword.html b/pollen-ui-angular/src/main/webapp/partials/user-lostPassword.html index 3c8b57d..0fdff8c 100644 --- a/pollen-ui-angular/src/main/webapp/partials/user-lostPassword.html +++ b/pollen-ui-angular/src/main/webapp/partials/user-lostPassword.html @@ -38,7 +38,7 @@ <div class="control-group row"> <div class="col-sm-5"></div> <div class="col-sm-6"> - <button class="btn btn-primary" type="submit"><span class="glyphicon glyphicon-envelope"></span> {{ 'action.recovered' | translate }}</button> + <button class="btn btn-primary" type="submit"><span class="fa fa-envelope"></span> {{ 'action.recovered' | translate }}</button> </div> <div class="col-sm-1"></div> </div> diff --git a/pollen-ui-angular/src/main/webapp/partials/user-register.html b/pollen-ui-angular/src/main/webapp/partials/user-register.html index d52e1de..5eecc92 100644 --- a/pollen-ui-angular/src/main/webapp/partials/user-register.html +++ b/pollen-ui-angular/src/main/webapp/partials/user-register.html @@ -73,14 +73,14 @@ <input type="password" id="formPassword2" name="password2" class="form-control" ng-model="data.user.password2"/> </div> <div class="col-sm-1"> - <span class="glyphicon glyphicon-exclamation-sign danger" tooltip="{{ 'user.error.password.diff' | translate }}" ng-if="data.user.password != data.user.password2"></span> + <span class="fa fa-exclamation-circle danger" tooltip="{{ 'user.error.password.diff' | translate }}" ng-if="data.user.password != data.user.password2"></span> </div> </div> <div class="control-group row"> <div class="col-sm-5"></div> <div class="col-sm-6"> - <button class="btn btn-primary" type="submit"><span class="glyphicon glyphicon-log-in"></span> {{ 'action.register' | translate }}</button> + <button class="btn btn-primary" type="submit"><span class="fa fa-sign-in"></span> {{ 'action.register' | translate }}</button> </div> <div class="col-sm-1"></div> </div> -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm