This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository coselmar. See http://git.forge.codelutin.com/coselmar.git commit c81c165554221072d6a185fc5263fc15c749b400 Author: Léo Kaufmann <kaufmann@codelutin.com> Date: Wed Feb 24 10:42:36 2016 +0100 Meilleur gestion des liens externes d'un document pour éviter les liens corrompus --- .../src/main/webapp/js/coselmar-controllers.js | 34 +++++++++++++++++++--- .../main/webapp/views/documents/editDocument.html | 18 ++++++------ .../webapp/views/documents/modalDocumentEdit.html | 17 ++++++----- .../main/webapp/views/documents/newdocument.html | 17 ++++++----- .../main/webapp/views/documents/viewDocument.html | 2 +- .../src/main/webapp/views/links/modalLinkEdit.html | 9 ++---- 6 files changed, 61 insertions(+), 36 deletions(-) diff --git a/coselmar-ui/src/main/webapp/js/coselmar-controllers.js b/coselmar-ui/src/main/webapp/js/coselmar-controllers.js index 567d35d..164614c 100644 --- a/coselmar-ui/src/main/webapp/js/coselmar-controllers.js +++ b/coselmar-ui/src/main/webapp/js/coselmar-controllers.js @@ -354,9 +354,18 @@ coselmarControllers.controller("NewDocumentCtrl", ['$scope', '$location', 'notif $scope.createNewDocument = function(){ - if (angular.isDate($scope.document.publicationDate)) { - $scope.document.publicationDate = $scope.document.publicationDate.getTime(); + // Adapt publicationDate to send a timestamp + if (angular.isDate($scope.document.publicationDate)) { + $scope.document.publicationDate = $scope.document.publicationDate.getTime(); + } + + // Adapt external link format if protocol is not set + if ($scope.document.externalUrl) { + var urlPattern = /^http[s]?:\/\/.*$/; + if (!urlPattern.test($scope.document.externalUrl)) { + $scope.document.externalUrl = 'http://' + $scope.document.externalUrl; } + } if ($scope.document.keywords.length == 0) { $scope.keywordsError = true; @@ -562,6 +571,14 @@ coselmarControllers.controller("DocumentViewCtrl", $scope.document.publicationDate = $scope.document.publicationDate.getTime(); } + // Adapt external link format if protocol is not set + if ($scope.document.externalUrl) { + var urlPattern = /^http[s]?:\/\/.*$/; + if (!urlPattern.test($scope.document.externalUrl)) { + $scope.document.externalUrl = 'http://' + $scope.document.externalUrl; + } + } + documentService.saveDocument($scope.document, function() { if ($scope.upload.file) { var documentId = $scope.document.id; @@ -1862,9 +1879,18 @@ coselmarControllers.controller('ModalCreateDocumentsCtrl', function ($scope, $ui $scope.create = function (isValidForm) { - if (angular.isDate($scope.document.publicationDate)) { - $scope.document.publicationDate = $scope.document.publicationDate.getTime(); + // Adapt publicationDate to send a timestamp + if (angular.isDate($scope.document.publicationDate)) { + $scope.document.publicationDate = $scope.document.publicationDate.getTime(); + } + + // Adapt external link format if protocol is not set + if ($scope.document.externalUrl) { + var urlPattern = /^http[s]?:\/\/.*$/; + if (!urlPattern.test($scope.document.externalUrl)) { + $scope.document.externalUrl = 'http://' + $scope.document.externalUrl; } + } if ($scope.document.keywords.length == 0) { $scope.keywordsError = true; diff --git a/coselmar-ui/src/main/webapp/views/documents/editDocument.html b/coselmar-ui/src/main/webapp/views/documents/editDocument.html index 9465065..916d246 100644 --- a/coselmar-ui/src/main/webapp/views/documents/editDocument.html +++ b/coselmar-ui/src/main/webapp/views/documents/editDocument.html @@ -170,17 +170,17 @@ <label class="col-md-2 control-label">{{ 'document.metadata.externalUrl' | translate }}</label> <div class="col-md-4"> - <div class="input-group"> - <span class="input-group-addon">http://</span> - <input type="input" class="form-control" name="externalUrl" - placeholder="{{ 'placeholder.website' | translate }}" - ng-model="document.externalUrl" /> - </div> - + <input type="input" class="form-control" name="externalUrl" + placeholder="{{ 'placeholder.website' | translate }}" + ng-model="document.externalUrl" /> + </div> + </div> + <div class="clear" ng-show="!document.externalUrl && !document.fileName && !upload.file && context.currentUser.role != 'ADMIN'"> + <div class="col-md-2"> </div> + <div class="col-md-10 info-panel"> + <p class="help-block text-center clear">{{ 'document.message.requiredExternalUrlOrFile' | translate }}</p> </div> </div> - <p ng-show="!document.externalUrl && !document.fileName && !upload.file && context.currentUser.role != 'ADMIN'" - class="help-block text-center clear">{{ 'document.message.requiredExternalUrlOrFile' | translate }}</p> </div> <!-- Line with Keywords --> diff --git a/coselmar-ui/src/main/webapp/views/documents/modalDocumentEdit.html b/coselmar-ui/src/main/webapp/views/documents/modalDocumentEdit.html index 8bd2919..3c9633f 100644 --- a/coselmar-ui/src/main/webapp/views/documents/modalDocumentEdit.html +++ b/coselmar-ui/src/main/webapp/views/documents/modalDocumentEdit.html @@ -141,16 +141,17 @@ <label class="col-md-2 control-label">{{ 'document.metadata.externalUrl' | translate }}</label> <div class="col-md-4"> - <div class="input-group"> - <span class="input-group-addon">http://</span> - <input type="input" class="form-control" name="externalUrl" - placeholder="{{ 'placeholder.website' | translate }}" - ng-model="document.externalUrl" ng-minlength="6"/> - </div> + <input type="input" class="form-control" name="externalUrl" + placeholder="{{ 'placeholder.website' | translate }}" + ng-model="document.externalUrl" ng-minlength="6"/> + </div> + </div> + <div class="clear" ng-show="!document.externalUrl && !file.upload"> + <div class="col-md-2"> </div> + <div class="col-md-10 info-panel"> + <p class="help-block text-center clear">{{ 'document.message.requiredExternalUrlOrFile' | translate }}</p> </div> </div> - <p ng-show="!document.externalUrl && !file.upload" - class="help-block text-center clear">{{ 'document.message.requiredExternalUrlOrFile' | translate }}</p> </div> <!-- End Line with file and externalURL --> diff --git a/coselmar-ui/src/main/webapp/views/documents/newdocument.html b/coselmar-ui/src/main/webapp/views/documents/newdocument.html index 20c41fb..eb53280 100644 --- a/coselmar-ui/src/main/webapp/views/documents/newdocument.html +++ b/coselmar-ui/src/main/webapp/views/documents/newdocument.html @@ -162,17 +162,18 @@ <label class="col-md-2 control-label">{{ 'document.metadata.externalUrl' | translate }}</label> <div class="col-md-4"> - <div class="input-group"> - <span class="input-group-addon">http://</span> - <input type="input" class="form-control" name="externalUrl" - placeholder="{{ 'placeholder.website' | translate }}" - ng-model="document.externalUrl" /> - </div> + <input type="input" class="form-control" name="externalUrl" + placeholder="{{ 'placeholder.website' | translate }}" + ng-model="document.externalUrl" /> </div> </div> - <p ng-show="!document.externalUrl && !upload.file" - class="help-block text-center clear">{{ 'document.message.requiredExternalUrlOrFile' | translate }}</p> + <div class="clear" ng-show="!document.externalUrl && !upload.file"> + <div class="col-md-2"> </div> + <div class="col-md-10 info-panel"> + <p class="help-block text-center clear">{{ 'document.message.requiredExternalUrlOrFile' | translate }}</p> + </div> + </div> </div> <!-- Line with Keywords --> diff --git a/coselmar-ui/src/main/webapp/views/documents/viewDocument.html b/coselmar-ui/src/main/webapp/views/documents/viewDocument.html index 62ab54e..b35d2d0 100644 --- a/coselmar-ui/src/main/webapp/views/documents/viewDocument.html +++ b/coselmar-ui/src/main/webapp/views/documents/viewDocument.html @@ -154,7 +154,7 @@ <a href="{{container.baseUrl}}/documents/{{document.id}}/file" class="btn btn-action btn-success" ng-if="document.withFile"> <span class="fa fa-download" aria-hidden="true"></span>{{ 'document.button.download' | translate }} </a> - <a href="http://{{document.externalUrl}}" target="_blank" class="btn btn-action btn-success" ng-if="document.externalUrl"> + <a href="{{document.externalUrl}}" target="_blank" class="btn btn-action btn-success" ng-if="document.externalUrl"> <span class="fa fa-external-link" aria-hidden="true"></span>{{ 'document.button.openLink' | translate }} </a> <a class="btn btn-action btn-disable" ng-if="context.currentUser.role == 'ADMIN'" diff --git a/coselmar-ui/src/main/webapp/views/links/modalLinkEdit.html b/coselmar-ui/src/main/webapp/views/links/modalLinkEdit.html index c12541e..bf6aa19 100644 --- a/coselmar-ui/src/main/webapp/views/links/modalLinkEdit.html +++ b/coselmar-ui/src/main/webapp/views/links/modalLinkEdit.html @@ -47,12 +47,9 @@ </label> <div class="col-md-8"> - <div class="input-group"> - <span class="input-group-addon">http://</span> - <input type="text" class="form-control" id="linkUrl" - placeholder="{{ 'placeholder.website' | translate }}" - ng-model="link.url" required /> - </div> + <input type="text" class="form-control" id="linkUrl" + placeholder="{{ 'placeholder.website' | translate }}" + ng-model="link.url" required /> <p ng-show="linkForm.linkUrl.$invalid && !linkForm.linkUrl.$pristine" class="help-block">{{ 'link.message.requiredUrl' | translate }}</p> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.