From ed85909d00de414897ca8e2f8738d5378852eb5f Mon Sep 17 00:00:00 2001 From: jendib Date: Thu, 15 Aug 2013 00:43:06 +0200 Subject: [PATCH] Init share app, client refactoring --- .../sismics/docs/core/dao/jpa/ShareDao.java | 2 +- docs-parent/TODO | 1 + .../src/main/webapp/{js => app/docs}/app.js | 34 ++-- .../{js => app/docs}/controller/Document.js | 0 .../docs}/controller/DocumentDefault.js | 0 .../docs}/controller/DocumentEdit.js | 0 .../app/docs/controller/DocumentView.js | 157 ++++++++++++++++++ .../{js => app/docs}/controller/FileView.js | 2 +- .../{js => app/docs}/controller/Login.js | 0 .../{js => app/docs}/controller/Main.js | 0 .../{js => app/docs}/controller/Navigation.js | 0 .../{js => app/docs}/controller/Settings.js | 0 .../docs}/controller/SettingsAccount.js | 0 .../docs}/controller/SettingsDefault.js | 0 .../docs}/controller/SettingsLog.js | 0 .../docs}/controller/SettingsSession.js | 0 .../docs}/controller/SettingsUser.js | 0 .../docs}/controller/SettingsUserEdit.js | 0 .../webapp/{js => app/docs}/controller/Tag.js | 10 +- .../webapp/{js => app/docs}/directive/File.js | 0 .../{js => app/docs}/directive/InlineEdit.js | 0 .../{js => app/docs}/directive/SelectTag.js | 2 +- .../webapp/{js => app/docs}/filter/Newline.js | 0 .../webapp/{js => app/docs}/filter/Shorten.js | 0 .../webapp/{js => app/docs}/service/Tag.js | 0 .../webapp/{js => app/docs}/service/User.js | 0 docs-web/src/main/webapp/app/share/app.js | 85 ++++++++++ .../main/webapp/app/share/controller/Share.js | 22 +++ docs-web/src/main/webapp/index.html | 48 +++--- .../main/webapp/js/controller/DocumentView.js | 84 ---------- .../main/webapp/lib/angular.ui-bootstrap.js | 2 +- .../src/main/webapp/lib/angular/angular.js | 3 +- .../{ => docs}/directive.selecttag.html | 0 .../partial/{ => docs}/document.default.html | 0 .../partial/{ => docs}/document.edit.html | 0 .../webapp/partial/{ => docs}/document.html | 0 .../webapp/partial/docs/document.share.html | 13 ++ .../partial/{ => docs}/document.view.html | 4 + .../webapp/partial/{ => docs}/file.view.html | 0 .../main/webapp/partial/{ => docs}/login.html | 0 .../main/webapp/partial/{ => docs}/main.html | 0 .../partial/{ => docs}/settings.account.html | 0 .../partial/{ => docs}/settings.default.html | 0 .../webapp/partial/{ => docs}/settings.html | 0 .../partial/{ => docs}/settings.log.html | 0 .../partial/{ => docs}/settings.session.html | 0 .../{ => docs}/settings.user.edit.html | 0 .../partial/{ => docs}/settings.user.html | 0 .../main/webapp/partial/{ => docs}/tag.html | 0 .../src/main/webapp/partial/share/main.html | 0 .../src/main/webapp/partial/share/share.html | 1 + docs-web/src/main/webapp/share.html | 35 ++++ docs-web/src/main/webapp/style/main.less | 5 + 53 files changed, 377 insertions(+), 133 deletions(-) rename docs-web/src/main/webapp/{js => app/docs}/app.js (83%) rename docs-web/src/main/webapp/{js => app/docs}/controller/Document.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/controller/DocumentDefault.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/controller/DocumentEdit.js (100%) create mode 100644 docs-web/src/main/webapp/app/docs/controller/DocumentView.js rename docs-web/src/main/webapp/{js => app/docs}/controller/FileView.js (97%) rename docs-web/src/main/webapp/{js => app/docs}/controller/Login.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/controller/Main.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/controller/Navigation.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/controller/Settings.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/controller/SettingsAccount.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/controller/SettingsDefault.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/controller/SettingsLog.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/controller/SettingsSession.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/controller/SettingsUser.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/controller/SettingsUserEdit.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/controller/Tag.js (90%) rename docs-web/src/main/webapp/{js => app/docs}/directive/File.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/directive/InlineEdit.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/directive/SelectTag.js (95%) rename docs-web/src/main/webapp/{js => app/docs}/filter/Newline.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/filter/Shorten.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/service/Tag.js (100%) rename docs-web/src/main/webapp/{js => app/docs}/service/User.js (100%) create mode 100644 docs-web/src/main/webapp/app/share/app.js create mode 100644 docs-web/src/main/webapp/app/share/controller/Share.js delete mode 100644 docs-web/src/main/webapp/js/controller/DocumentView.js rename docs-web/src/main/webapp/partial/{ => docs}/directive.selecttag.html (100%) rename docs-web/src/main/webapp/partial/{ => docs}/document.default.html (100%) rename docs-web/src/main/webapp/partial/{ => docs}/document.edit.html (100%) rename docs-web/src/main/webapp/partial/{ => docs}/document.html (100%) create mode 100644 docs-web/src/main/webapp/partial/docs/document.share.html rename docs-web/src/main/webapp/partial/{ => docs}/document.view.html (81%) rename docs-web/src/main/webapp/partial/{ => docs}/file.view.html (100%) rename docs-web/src/main/webapp/partial/{ => docs}/login.html (100%) rename docs-web/src/main/webapp/partial/{ => docs}/main.html (100%) rename docs-web/src/main/webapp/partial/{ => docs}/settings.account.html (100%) rename docs-web/src/main/webapp/partial/{ => docs}/settings.default.html (100%) rename docs-web/src/main/webapp/partial/{ => docs}/settings.html (100%) rename docs-web/src/main/webapp/partial/{ => docs}/settings.log.html (100%) rename docs-web/src/main/webapp/partial/{ => docs}/settings.session.html (100%) rename docs-web/src/main/webapp/partial/{ => docs}/settings.user.edit.html (100%) rename docs-web/src/main/webapp/partial/{ => docs}/settings.user.html (100%) rename docs-web/src/main/webapp/partial/{ => docs}/tag.html (100%) create mode 100644 docs-web/src/main/webapp/partial/share/main.html create mode 100644 docs-web/src/main/webapp/partial/share/share.html create mode 100644 docs-web/src/main/webapp/share.html diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/ShareDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/ShareDao.java index 32ecf291..8ed8e6dc 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/ShareDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/ShareDao.java @@ -103,7 +103,7 @@ public class ShareDao { // The share is linked to the document if (shareId != null) { Share share = getShare(shareId); - if (share.getDocumentId().equals(document.getId())) { + if (share != null && share.getDocumentId().equals(document.getId())) { return true; } } diff --git a/docs-parent/TODO b/docs-parent/TODO index 3d6dead4..26d801f6 100644 --- a/docs-parent/TODO +++ b/docs-parent/TODO @@ -1 +1,2 @@ - Share a document with a link (client) +- Advanced search: shared documents (client/server) \ No newline at end of file diff --git a/docs-web/src/main/webapp/js/app.js b/docs-web/src/main/webapp/app/docs/app.js similarity index 83% rename from docs-web/src/main/webapp/js/app.js rename to docs-web/src/main/webapp/app/docs/app.js index 80b5d779..b86b40e1 100644 --- a/docs-web/src/main/webapp/js/app.js +++ b/docs-web/src/main/webapp/app/docs/app.js @@ -1,7 +1,7 @@ 'use strict'; /** - * Trackino application. + * Sismics Docs application. */ var App = angular.module('docs', // Dependencies @@ -19,7 +19,7 @@ var App = angular.module('docs', url: '', views: { 'page': { - templateUrl: 'partial/main.html', + templateUrl: 'partial/docs/main.html', controller: 'Main' } } @@ -28,7 +28,7 @@ var App = angular.module('docs', url: '/tag', views: { 'page': { - templateUrl: 'partial/tag.html', + templateUrl: 'partial/docs/tag.html', controller: 'Tag' } } @@ -38,7 +38,7 @@ var App = angular.module('docs', abstract: true, views: { 'page': { - templateUrl: 'partial/settings.html', + templateUrl: 'partial/docs/settings.html', controller: 'Settings' } } @@ -47,7 +47,7 @@ var App = angular.module('docs', url: '', views: { 'settings': { - templateUrl: 'partial/settings.default.html', + templateUrl: 'partial/docs/settings.default.html', controller: 'SettingsDefault' } } @@ -56,7 +56,7 @@ var App = angular.module('docs', url: '/account', views: { 'settings': { - templateUrl: 'partial/settings.account.html', + templateUrl: 'partial/docs/settings.account.html', controller: 'SettingsAccount' } } @@ -65,7 +65,7 @@ var App = angular.module('docs', url: '/session', views: { 'settings': { - templateUrl: 'partial/settings.session.html', + templateUrl: 'partial/docs/settings.session.html', controller: 'SettingsSession' } } @@ -74,7 +74,7 @@ var App = angular.module('docs', url: '/log', views: { 'settings': { - templateUrl: 'partial/settings.log.html', + templateUrl: 'partial/docs/settings.log.html', controller: 'SettingsLog' } } @@ -83,7 +83,7 @@ var App = angular.module('docs', url: '/user', views: { 'settings': { - templateUrl: 'partial/settings.user.html', + templateUrl: 'partial/docs/settings.user.html', controller: 'SettingsUser' } } @@ -92,7 +92,7 @@ var App = angular.module('docs', url: '/edit/:username', views: { 'user': { - templateUrl: 'partial/settings.user.edit.html', + templateUrl: 'partial/docs/settings.user.edit.html', controller: 'SettingsUserEdit' } } @@ -101,7 +101,7 @@ var App = angular.module('docs', url: '/add', views: { 'user': { - templateUrl: 'partial/settings.user.edit.html', + templateUrl: 'partial/docs/settings.user.edit.html', controller: 'SettingsUserEdit' } } @@ -111,7 +111,7 @@ var App = angular.module('docs', abstract: true, views: { 'page': { - templateUrl: 'partial/document.html', + templateUrl: 'partial/docs/document.html', controller: 'Document' } } @@ -120,7 +120,7 @@ var App = angular.module('docs', url: '', views: { 'document': { - templateUrl: 'partial/document.default.html', + templateUrl: 'partial/docs/document.default.html', controller: 'DocumentDefault' } } @@ -129,7 +129,7 @@ var App = angular.module('docs', url: '/add', views: { 'document': { - templateUrl: 'partial/document.edit.html', + templateUrl: 'partial/docs/document.edit.html', controller: 'DocumentEdit' } } @@ -138,7 +138,7 @@ var App = angular.module('docs', url: '/edit/:id', views: { 'document': { - templateUrl: 'partial/document.edit.html', + templateUrl: 'partial/docs/document.edit.html', controller: 'DocumentEdit' } } @@ -147,7 +147,7 @@ var App = angular.module('docs', url: '/view/:id', views: { 'document': { - templateUrl: 'partial/document.view.html', + templateUrl: 'partial/docs/document.view.html', controller: 'DocumentView' } } @@ -164,7 +164,7 @@ var App = angular.module('docs', url: '/login', views: { 'page': { - templateUrl: 'partial/login.html', + templateUrl: 'partial/docs/login.html', controller: 'Login' } } diff --git a/docs-web/src/main/webapp/js/controller/Document.js b/docs-web/src/main/webapp/app/docs/controller/Document.js similarity index 100% rename from docs-web/src/main/webapp/js/controller/Document.js rename to docs-web/src/main/webapp/app/docs/controller/Document.js diff --git a/docs-web/src/main/webapp/js/controller/DocumentDefault.js b/docs-web/src/main/webapp/app/docs/controller/DocumentDefault.js similarity index 100% rename from docs-web/src/main/webapp/js/controller/DocumentDefault.js rename to docs-web/src/main/webapp/app/docs/controller/DocumentDefault.js diff --git a/docs-web/src/main/webapp/js/controller/DocumentEdit.js b/docs-web/src/main/webapp/app/docs/controller/DocumentEdit.js similarity index 100% rename from docs-web/src/main/webapp/js/controller/DocumentEdit.js rename to docs-web/src/main/webapp/app/docs/controller/DocumentEdit.js diff --git a/docs-web/src/main/webapp/app/docs/controller/DocumentView.js b/docs-web/src/main/webapp/app/docs/controller/DocumentView.js new file mode 100644 index 00000000..250bee8d --- /dev/null +++ b/docs-web/src/main/webapp/app/docs/controller/DocumentView.js @@ -0,0 +1,157 @@ +'use strict'; + +/** + * Document view controller. + */ +App.controller('DocumentView', function ($scope, $state, $stateParams, $location, $dialog, Restangular) { + // Load data from server + Restangular.one('document', $stateParams.id).get().then(function(data) { + $scope.document = data; + }); + + /** + * Configuration for file sorting. + */ + $scope.fileSortableOptions = { + forceHelperSize: true, + forcePlaceholderSize: true, + tolerance: 'pointer', + handle: '.handle', + stop: function (e, ui) { + // Send new positions to server + $scope.$apply(function () { + Restangular.one('file').post('reorder', { + id: $stateParams.id, + order: _.pluck($scope.files, 'id') + }); + }); + } + }; + + /** + * Load files from server. + */ + $scope.loadFiles = function () { + Restangular.one('file').getList('list', { id: $stateParams.id }).then(function (data) { + $scope.files = data.files; + }); + }; + $scope.loadFiles(); + + /** + * Navigate to the selected file. + */ + $scope.openFile = function (file) { + $state.transitionTo('document.view.file', { id: $stateParams.id, fileId: file.id }) + }; + + /** + * Delete a document. + */ + $scope.deleteDocument = function (document) { + var title = 'Delete document'; + var msg = 'Do you really want to delete this document?'; + var btns = [ + {result: 'cancel', label: 'Cancel'}, + {result: 'ok', label: 'OK', cssClass: 'btn-primary'} + ]; + + $dialog.messageBox(title, msg, btns) + .open() + .then(function (result) { + if (result == 'ok') { + Restangular.one('document', document.id).remove().then(function () { + $scope.loadDocuments(); + $state.transitionTo('document.default'); + }); + } + }); + }; + + /** + * Delete a file. + */ + $scope.deleteFile = function (file) { + var title = 'Delete file'; + var msg = 'Do you really want to delete this file?'; + var btns = [ + {result: 'cancel', label: 'Cancel'}, + {result: 'ok', label: 'OK', cssClass: 'btn-primary'} + ]; + + $dialog.messageBox(title, msg, btns) + .open() + .then(function (result) { + if (result == 'ok') { + Restangular.one('file', file.id).remove().then(function () { + $scope.loadFiles(); + }); + } + }); + }; + + /** + * Open the share dialog. + */ + $scope.share = function () { + $dialog.dialog({ + backdrop: false, + keyboard: true, + templateUrl: 'partial/docs/document.share.html', + controller: function ($scope, dialog) { + $scope.name = ''; + $scope.close = function (name) { + dialog.close(name); + } + } + }).open().then(function (name) { + if (name == null) { + return; + } + + // Share the document + Restangular.one('share').put({ + name: name, + id: $stateParams.id + }).then(function (data) { + var share = { + name: name, + id: data.id + }; + + // Display the new share and add it to the local shares + $scope.showShare(share); + $scope.document.shares.push(share); + }) + }); + }; + + /** + * Display a share. + */ + $scope.showShare = function(share) { + // Show the link + var link = $location.absUrl().replace($location.path(), '').replace('#', '') + 'share.html#/share/' + $stateParams.id + '/' + share.id; + var title = 'Shared document'; + var msg = 'You can share this document by giving this link. ' + + 'Note that everyone having this link can see the document.
' + + ''; + var btns = [ + {result: 'unshare', label: 'Unshare', cssClass: 'btn-danger'}, + {result: 'close', label: 'Close'} + ]; + + $dialog.messageBox(title, msg, btns) + .open() + .then(function (result) { + if (result == 'unshare') { + // Unshare this document and update the local shares + Restangular.one('share', share.id).remove().then(function () { + $scope.document.shares = _.reject($scope.document.shares, function(s) { + return share.id == s.id; + }); + }); + } + }); + }; +}); \ No newline at end of file diff --git a/docs-web/src/main/webapp/js/controller/FileView.js b/docs-web/src/main/webapp/app/docs/controller/FileView.js similarity index 97% rename from docs-web/src/main/webapp/js/controller/FileView.js rename to docs-web/src/main/webapp/app/docs/controller/FileView.js index 9bbd4fe0..0f6ff16e 100644 --- a/docs-web/src/main/webapp/js/controller/FileView.js +++ b/docs-web/src/main/webapp/app/docs/controller/FileView.js @@ -6,7 +6,7 @@ App.controller('FileView', function($dialog, $state, $stateParams) { var dialog = $dialog.dialog({ keyboard: true, - templateUrl: 'partial/file.view.html', + templateUrl: 'partial/docs/file.view.html', controller: function($scope, $state, $stateParams, Restangular, dialog) { $scope.id = $stateParams.fileId; diff --git a/docs-web/src/main/webapp/js/controller/Login.js b/docs-web/src/main/webapp/app/docs/controller/Login.js similarity index 100% rename from docs-web/src/main/webapp/js/controller/Login.js rename to docs-web/src/main/webapp/app/docs/controller/Login.js diff --git a/docs-web/src/main/webapp/js/controller/Main.js b/docs-web/src/main/webapp/app/docs/controller/Main.js similarity index 100% rename from docs-web/src/main/webapp/js/controller/Main.js rename to docs-web/src/main/webapp/app/docs/controller/Main.js diff --git a/docs-web/src/main/webapp/js/controller/Navigation.js b/docs-web/src/main/webapp/app/docs/controller/Navigation.js similarity index 100% rename from docs-web/src/main/webapp/js/controller/Navigation.js rename to docs-web/src/main/webapp/app/docs/controller/Navigation.js diff --git a/docs-web/src/main/webapp/js/controller/Settings.js b/docs-web/src/main/webapp/app/docs/controller/Settings.js similarity index 100% rename from docs-web/src/main/webapp/js/controller/Settings.js rename to docs-web/src/main/webapp/app/docs/controller/Settings.js diff --git a/docs-web/src/main/webapp/js/controller/SettingsAccount.js b/docs-web/src/main/webapp/app/docs/controller/SettingsAccount.js similarity index 100% rename from docs-web/src/main/webapp/js/controller/SettingsAccount.js rename to docs-web/src/main/webapp/app/docs/controller/SettingsAccount.js diff --git a/docs-web/src/main/webapp/js/controller/SettingsDefault.js b/docs-web/src/main/webapp/app/docs/controller/SettingsDefault.js similarity index 100% rename from docs-web/src/main/webapp/js/controller/SettingsDefault.js rename to docs-web/src/main/webapp/app/docs/controller/SettingsDefault.js diff --git a/docs-web/src/main/webapp/js/controller/SettingsLog.js b/docs-web/src/main/webapp/app/docs/controller/SettingsLog.js similarity index 100% rename from docs-web/src/main/webapp/js/controller/SettingsLog.js rename to docs-web/src/main/webapp/app/docs/controller/SettingsLog.js diff --git a/docs-web/src/main/webapp/js/controller/SettingsSession.js b/docs-web/src/main/webapp/app/docs/controller/SettingsSession.js similarity index 100% rename from docs-web/src/main/webapp/js/controller/SettingsSession.js rename to docs-web/src/main/webapp/app/docs/controller/SettingsSession.js diff --git a/docs-web/src/main/webapp/js/controller/SettingsUser.js b/docs-web/src/main/webapp/app/docs/controller/SettingsUser.js similarity index 100% rename from docs-web/src/main/webapp/js/controller/SettingsUser.js rename to docs-web/src/main/webapp/app/docs/controller/SettingsUser.js diff --git a/docs-web/src/main/webapp/js/controller/SettingsUserEdit.js b/docs-web/src/main/webapp/app/docs/controller/SettingsUserEdit.js similarity index 100% rename from docs-web/src/main/webapp/js/controller/SettingsUserEdit.js rename to docs-web/src/main/webapp/app/docs/controller/SettingsUserEdit.js diff --git a/docs-web/src/main/webapp/js/controller/Tag.js b/docs-web/src/main/webapp/app/docs/controller/Tag.js similarity index 90% rename from docs-web/src/main/webapp/js/controller/Tag.js rename to docs-web/src/main/webapp/app/docs/controller/Tag.js index 9ab54e1e..51909bb0 100644 --- a/docs-web/src/main/webapp/js/controller/Tag.js +++ b/docs-web/src/main/webapp/app/docs/controller/Tag.js @@ -42,7 +42,10 @@ App.controller('Tag', function($scope, $dialog, $state, Tag, Restangular) { $scope.deleteTag = function(tag) { var title = 'Delete tag'; var msg = 'Do you really want to delete this tag?'; - var btns = [{result:'cancel', label: 'Cancel'}, {result:'ok', label: 'OK', cssClass: 'btn-primary'}]; + var btns = [ + {result: 'cancel', label: 'Cancel'}, + {result: 'ok', label: 'OK', cssClass: 'btn-primary'} + ]; $dialog.messageBox(title, msg, btns) .open() @@ -67,7 +70,10 @@ App.controller('Tag', function($scope, $dialog, $state, Tag, Restangular) { var stat = _.find($scope.stats, function (t) { return tag.id == t.id; }); - _.extend(stat, tag); + + if (stat) { + _.extend(stat, tag); + } }); }; }); \ No newline at end of file diff --git a/docs-web/src/main/webapp/js/directive/File.js b/docs-web/src/main/webapp/app/docs/directive/File.js similarity index 100% rename from docs-web/src/main/webapp/js/directive/File.js rename to docs-web/src/main/webapp/app/docs/directive/File.js diff --git a/docs-web/src/main/webapp/js/directive/InlineEdit.js b/docs-web/src/main/webapp/app/docs/directive/InlineEdit.js similarity index 100% rename from docs-web/src/main/webapp/js/directive/InlineEdit.js rename to docs-web/src/main/webapp/app/docs/directive/InlineEdit.js diff --git a/docs-web/src/main/webapp/js/directive/SelectTag.js b/docs-web/src/main/webapp/app/docs/directive/SelectTag.js similarity index 95% rename from docs-web/src/main/webapp/js/directive/SelectTag.js rename to docs-web/src/main/webapp/app/docs/directive/SelectTag.js index 7afc7d8c..3cffede4 100644 --- a/docs-web/src/main/webapp/js/directive/SelectTag.js +++ b/docs-web/src/main/webapp/app/docs/directive/SelectTag.js @@ -6,7 +6,7 @@ App.directive('selectTag', function() { return { restrict: 'E', - templateUrl: 'partial/directive.selecttag.html', + templateUrl: 'partial/docs/directive.selecttag.html', replace: true, scope: { tags: '=', diff --git a/docs-web/src/main/webapp/js/filter/Newline.js b/docs-web/src/main/webapp/app/docs/filter/Newline.js similarity index 100% rename from docs-web/src/main/webapp/js/filter/Newline.js rename to docs-web/src/main/webapp/app/docs/filter/Newline.js diff --git a/docs-web/src/main/webapp/js/filter/Shorten.js b/docs-web/src/main/webapp/app/docs/filter/Shorten.js similarity index 100% rename from docs-web/src/main/webapp/js/filter/Shorten.js rename to docs-web/src/main/webapp/app/docs/filter/Shorten.js diff --git a/docs-web/src/main/webapp/js/service/Tag.js b/docs-web/src/main/webapp/app/docs/service/Tag.js similarity index 100% rename from docs-web/src/main/webapp/js/service/Tag.js rename to docs-web/src/main/webapp/app/docs/service/Tag.js diff --git a/docs-web/src/main/webapp/js/service/User.js b/docs-web/src/main/webapp/app/docs/service/User.js similarity index 100% rename from docs-web/src/main/webapp/js/service/User.js rename to docs-web/src/main/webapp/app/docs/service/User.js diff --git a/docs-web/src/main/webapp/app/share/app.js b/docs-web/src/main/webapp/app/share/app.js new file mode 100644 index 00000000..2347b571 --- /dev/null +++ b/docs-web/src/main/webapp/app/share/app.js @@ -0,0 +1,85 @@ +'use strict'; + +/** + * Share application. + */ +var App = angular.module('share', + // Dependencies + ['ui.state', 'ui.bootstrap', 'ui.route', 'restangular', 'ngSanitize', 'ngMobile'] + ) + +/** + * Configuring modules. + */ +.config(function($stateProvider, $httpProvider, $routeProvider, RestangularProvider) { + // Configuring UI Router + $stateProvider + .state('main', { + url: '', + views: { + 'page': { + templateUrl: 'partial/share/main.html', + controller: 'Main' + } + } + }) + .state('share', { + url: '/share/:documentId/:shareId', + views: { + 'page': { + templateUrl: 'partial/share/share.html', + controller: 'Share' + } + } + }); + + // Configuring Restangular + RestangularProvider.setBaseUrl('api'); + + // Configuring $http to act like jQuery.ajax + $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'; + $httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'; + $httpProvider.defaults.transformRequest = [function(data) { + var param = function(obj) { + var query = ''; + var name, value, fullSubName, subName, subValue, innerObj, i; + + for(name in obj) { + value = obj[name]; + + if(value instanceof Array) { + for(i=0; i - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + \n" + "
\n" + - "

{{ message }}

\n" + + "

\n" + "
\n" + "
\n" + " \n" + diff --git a/docs-web/src/main/webapp/lib/angular/angular.js b/docs-web/src/main/webapp/lib/angular/angular.js index d32e9462..bf29afed 100644 --- a/docs-web/src/main/webapp/lib/angular/angular.js +++ b/docs-web/src/main/webapp/lib/angular/angular.js @@ -9895,8 +9895,7 @@ function $HttpProvider() { * - **withCredentials** - `{boolean}` - whether to to set the `withCredentials` flag on the * XHR object. See {@link https://developer.mozilla.org/en/http_access_control#section_5 * requests with credentials} for more information. - * - **responseType** - `{string}` - see {@link - * https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType requestType}. + * - **responseType** - `{string}` - see {@link https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType requestType}. * * @returns {HttpPromise} Returns a {@link ng.$q promise} object with the * standard `then` method and two http specific methods: `success` and `error`. The `then` diff --git a/docs-web/src/main/webapp/partial/directive.selecttag.html b/docs-web/src/main/webapp/partial/docs/directive.selecttag.html similarity index 100% rename from docs-web/src/main/webapp/partial/directive.selecttag.html rename to docs-web/src/main/webapp/partial/docs/directive.selecttag.html diff --git a/docs-web/src/main/webapp/partial/document.default.html b/docs-web/src/main/webapp/partial/docs/document.default.html similarity index 100% rename from docs-web/src/main/webapp/partial/document.default.html rename to docs-web/src/main/webapp/partial/docs/document.default.html diff --git a/docs-web/src/main/webapp/partial/document.edit.html b/docs-web/src/main/webapp/partial/docs/document.edit.html similarity index 100% rename from docs-web/src/main/webapp/partial/document.edit.html rename to docs-web/src/main/webapp/partial/docs/document.edit.html diff --git a/docs-web/src/main/webapp/partial/document.html b/docs-web/src/main/webapp/partial/docs/document.html similarity index 100% rename from docs-web/src/main/webapp/partial/document.html rename to docs-web/src/main/webapp/partial/docs/document.html diff --git a/docs-web/src/main/webapp/partial/docs/document.share.html b/docs-web/src/main/webapp/partial/docs/document.share.html new file mode 100644 index 00000000..9653afed --- /dev/null +++ b/docs-web/src/main/webapp/partial/docs/document.share.html @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/docs-web/src/main/webapp/partial/document.view.html b/docs-web/src/main/webapp/partial/docs/document.view.html similarity index 81% rename from docs-web/src/main/webapp/partial/document.view.html rename to docs-web/src/main/webapp/partial/docs/document.view.html index 70620642..4fbad6c8 100644 --- a/docs-web/src/main/webapp/partial/document.view.html +++ b/docs-web/src/main/webapp/partial/docs/document.view.html @@ -7,6 +7,10 @@