From f21aa0dd94f3c833a0df00c97619c62ad9e3d9cd Mon Sep 17 00:00:00 2001 From: James Allen Date: Tue, 23 Feb 2016 15:00:04 +0000 Subject: [PATCH 1/4] Don't allow project names to be blank --- .../settings/controllers/ProjectNameController.coffee | 10 ++++++---- .../coffee/main/project-list/project-list.coffee | 6 ++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/services/web/public/coffee/ide/settings/controllers/ProjectNameController.coffee b/services/web/public/coffee/ide/settings/controllers/ProjectNameController.coffee index 01f441b603..0741fbc862 100644 --- a/services/web/public/coffee/ide/settings/controllers/ProjectNameController.coffee +++ b/services/web/public/coffee/ide/settings/controllers/ProjectNameController.coffee @@ -1,6 +1,7 @@ define [ "base" ], (App) -> + MAX_PROJECT_NAME_LENGTH = 150 App.controller "ProjectNameController", ["$scope", "settings", "ide", ($scope, settings, ide) -> $scope.state = renaming: false @@ -12,11 +13,12 @@ define [ $scope.$emit "project:rename:start" $scope.finishRenaming = () -> - newName = $scope.inputs.name - if newName.length < 150 - $scope.project.name = newName - settings.saveProjectSettings({name: $scope.project.name}) $scope.state.renaming = false + newName = $scope.inputs.name + if !newName? or newName.length == 0 or newName.length > MAX_PROJECT_NAME_LENGTH + return + $scope.project.name = newName + settings.saveProjectSettings({name: $scope.project.name}) ide.socket.on "projectNameUpdated", (name) -> $scope.$apply () -> diff --git a/services/web/public/coffee/main/project-list/project-list.coffee b/services/web/public/coffee/main/project-list/project-list.coffee index 4c4c1daf03..a528c0b96f 100644 --- a/services/web/public/coffee/main/project-list/project-list.coffee +++ b/services/web/public/coffee/main/project-list/project-list.coffee @@ -257,9 +257,11 @@ define [ modalInstance.result.then (project_id) -> window.location = "/project/#{project_id}" + MAX_PROJECT_NAME_LENGTH = 150 $scope.renameProject = (project, newName) -> - if newName.length < 150 - project.name = newName + if !newName? or newName.length == 0 or newName.length > MAX_PROJECT_NAME_LENGTH + return + project.name = newName queuedHttp.post "/project/#{project.id}/rename", { newProjectName: project.name _csrf: window.csrfToken From fde7efbb9f557f2564301cbb1a36f0fbc6dfd065 Mon Sep 17 00:00:00 2001 From: James Allen Date: Tue, 23 Feb 2016 15:00:15 +0000 Subject: [PATCH 2/4] Fix rename button styling in editor --- services/web/public/stylesheets/app/editor.less | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/services/web/public/stylesheets/app/editor.less b/services/web/public/stylesheets/app/editor.less index eea5ee5e77..c38f2a1a0f 100644 --- a/services/web/public/stylesheets/app/editor.less +++ b/services/web/public/stylesheets/app/editor.less @@ -109,6 +109,15 @@ } a.rename { visibility: hidden; + display: inline-block; + color: @gray-light; + padding: 5px; + border-radius: @border-radius-small; + &:hover { + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + color: @gray-dark; + text-decoration: none; + } } &:hover { a.rename { From ff7632d6c77fda71c9542e3ec7b11eacfbb9fa97 Mon Sep 17 00:00:00 2001 From: James Allen Date: Tue, 23 Feb 2016 15:21:22 +0000 Subject: [PATCH 3/4] Don't reload editor with file tree or PDF viewer hidden --- services/web/app/views/project/editor.jade | 8 +++++++- services/web/app/views/project/editor/editor.jade | 1 + services/web/public/coffee/ide/directives/layout.coffee | 8 ++++++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/services/web/app/views/project/editor.jade b/services/web/app/views/project/editor.jade index b30301c0cc..e666724b09 100644 --- a/services/web/app/views/project/editor.jade +++ b/services/web/app/views/project/editor.jade @@ -53,7 +53,13 @@ block content include ./editor/share - #ide-body(ng-cloak, layout="main", ng-hide="state.loading", resize-on="layout:chat:resize") + #ide-body( + ng-cloak, + layout="main", + ng-hide="state.loading", + resize-on="layout:chat:resize", + minimum-restore-size-west="130" + ) .ui-layout-west include ./editor/file-tree diff --git a/services/web/app/views/project/editor/editor.jade b/services/web/app/views/project/editor/editor.jade index 2241eb3cd2..59399e2aae 100644 --- a/services/web/app/views/project/editor/editor.jade +++ b/services/web/app/views/project/editor/editor.jade @@ -6,6 +6,7 @@ div.full-size( resize-on="layout:main:resize" resize-proportionally="true" initial-size-east="'50%'" + minimum-restore-size-east="300" ) .ui-layout-center .loading-panel(ng-show="!editor.sharejs_doc || editor.opening") diff --git a/services/web/public/coffee/ide/directives/layout.coffee b/services/web/public/coffee/ide/directives/layout.coffee index 3421b0a613..146952dc23 100644 --- a/services/web/public/coffee/ide/directives/layout.coffee +++ b/services/web/public/coffee/ide/directives/layout.coffee @@ -37,8 +37,12 @@ define [ # Restore previously recorded state if (state = ide.localStorage("layout.#{name}"))? - options.west = state.west - options.east = state.east + if state.east? + if !attrs.minimumRestoreSizeEast? or (state.east.size >= attrs.minimumRestoreSizeEast and !state.east.initClosed) + options.east = state.east + if state.west? + if !attrs.minimumRestoreSizeWest? or (state.west.size >= attrs.minimumRestoreSizeWest and !state.west.initClosed) + options.west = state.west repositionControls = () -> state = element.layout().readState() From 2c20b7d16ff56cf43d341360fe3189ae52c3d006 Mon Sep 17 00:00:00 2001 From: James Allen Date: Tue, 23 Feb 2016 15:25:04 +0000 Subject: [PATCH 4/4] Bring full screen PDF icon into scrollable div --- .../app/views/project/editor/file-tree.jade | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/services/web/app/views/project/editor/file-tree.jade b/services/web/app/views/project/editor/file-tree.jade index 3cf3e6076d..69b2e2aed3 100644 --- a/services/web/app/views/project/editor/file-tree.jade +++ b/services/web/app/views/project/editor/file-tree.jade @@ -46,26 +46,24 @@ aside#file-tree(ng-controller="FileTreeController", ng-class="{ 'multi-selected' ng-controller="FileTreeRootFolderController", ng-class="{ 'no-toolbar': !permissions.write }" ) - - div(ng-show="ui.pdfLayout == 'flat' && (ui.view == 'editor' || ui.view == 'pdf' || ui.view == 'file')") - ul.list-unstyled.file-tree-list - li( - ng-class="{ 'selected': ui.view == 'pdf' }" - ng-controller="PdfViewToggleController" - ) - .entity - .entity-name( - ng-click="togglePdfView()" - ) - i.fa.fa-fw.toggle - i.fa.fa-fw.fa-file-pdf-o - | PDF - ul.list-unstyled.file-tree-list( droppable="permissions.write" accept=".entity-name" on-drop-callback="onDrop" ) + li( + ng-show="ui.pdfLayout == 'flat' && (ui.view == 'editor' || ui.view == 'pdf' || ui.view == 'file')" + ng-class="{ 'selected': ui.view == 'pdf' }" + ng-controller="PdfViewToggleController" + ) + .entity + .entity-name( + ng-click="togglePdfView()" + ) + i.fa.fa-fw.toggle + i.fa.fa-fw.fa-file-pdf-o + | PDF + file-entity( entity="entity", permissions="permissions",