aside#file-tree(ng-controller="FileTreeController").full-size .toolbar.toolbar-small.toolbar-alt(ng-if="permissions.write") a( href, ng-click="openNewDocModal()", tooltip-html="'#{translate('new_file').replace(' ', '
')}'", tooltip-placement="bottom" ) i.fa.fa-file a( href, ng-click="openNewFolderModal()", tooltip-html="'#{translate('new_folder').replace(' ', '
')}'", tooltip-placement="bottom" ) i.fa.fa-folder a( href, ng-click="openUploadFileModal()", tooltip="#{translate('upload')}", tooltip-placement="bottom" ) i.fa.fa-upload .toolbar-right a( href, ng-click="startRenamingSelected()", tooltip="#{translate('rename')}", tooltip-placement="bottom" ) i.fa.fa-pencil a( href, ng-click="openDeleteModalForSelected()", tooltip="#{translate('delete')}", tooltip-placement="bottom", tooltip-append-to-body="true" ) i.fa.fa-trash-o .file-tree-inner( ng-if="rootFolder", 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" ) file-entity( entity="entity", permissions="permissions", ng-repeat="entity in rootFolder.children | orderBy:[orderByFoldersFirst, 'name']" ) div(ng-show="deletedDocs.length > 0 && ui.view == 'track-changes'") h3 #{translate("deleted_files")} ul.list-unstyled.file-tree-list.deleted-docs li( ng-class="{ 'selected': entity.selected }", ng-repeat="entity in deletedDocs | orderBy:'name'", ng-controller="FileTreeEntityController" ) .entity .entity-name( ng-click="select()" ) //- Just a spacer to align with folders i.fa.fa-fw.toggle i.fa.fa-fw.fa-file span {{ entity.name }} script(type='text/ng-template', id='entityListItemTemplate') li( ng-class="{ 'selected': entity.selected }", ng-controller="FileTreeEntityController" ) .entity(ng-if="entity.type != 'folder'") .entity-name( ng-click="select()" ng-dblclick="permissions.write && startRenaming()" draggable="permissions.write" context-menu data-target="context-menu-{{ entity.id }}" context-menu-container="body" context-menu-disabled="!permissions.write" ) //- Just a spacer to align with folders i.fa.fa-fw.toggle(ng-if="entity.type != 'folder'") i.fa.fa-fw.fa-file(ng-if="entity.type == 'doc'") i.fa.fa-fw.fa-image(ng-if="entity.type == 'file'") span( ng-hide="entity.renaming" ) {{ entity.name }} span.rename-input input( ng-if="permissions.write", ng-show="entity.renaming", ng-model="inputs.name", ng-blur="finishRenaming()", select-name-when="entity.renaming", on-enter="finishRenaming()" ) span.dropdown( dropdown, ng-show="entity.selected", ng-if="permissions.write" ) a.dropdown-toggle(href, dropdown-toggle) i.fa.fa-chevron-down ul.dropdown-menu.dropdown-menu-right li a( href ng-click="startRenaming()" right-click="startRenaming()" ) #{translate("rename")} li a( href ng-click="openDeleteModal()" right-click="openDeleteModal()" ) #{translate("delete")} div.dropdown.context-menu( id="context-menu-{{ entity.id }}", ng-if="permissions.write" ) ul.dropdown-menu li a( href ng-click="startRenaming()" right-click="startRenaming()" ) #{translate("rename")} li a( href ng-click="openDeleteModal()" right-click="openDeleteModal()" ) #{translate("delete")} .entity(ng-if="entity.type == 'folder'", ng-controller="FileTreeFolderController") .entity-name( ng-click="select()" ng-dblclick="permissions.write && startRenaming()" draggable="permissions.write" droppable="permissions.write" accept=".entity-name" on-drop-callback="onDrop" ) div( context-menu data-target="context-menu-{{ entity.id }}" context-menu-container="body" context-menu-disabled="!permissions.write" ) i.fa.fa-fw.toggle( ng-if="entity.type == 'folder'" ng-class="{'fa-chevron-right': !expanded, 'fa-chevron-down': expanded}" ng-click="toggleExpanded()" ) i.fa.fa-fw( ng-if="entity.type == 'folder'" ng-class="{\ 'fa-folder': !expanded, \ 'fa-folder-open': expanded \ }" ng-click="select()" ) span( ng-hide="entity.renaming" ) {{ entity.name }} span.rename-input input( ng-if="permissions.write", ng-show="entity.renaming", ng-model="inputs.name", ng-blur="finishRenaming()", select-name-when="entity.renaming", on-enter="finishRenaming()" ) span.dropdown( dropdown, ng-if="permissions.write" ng-show="entity.selected" ) a.dropdown-toggle(href, dropdown-toggle) i.fa.fa-chevron-down ul.dropdown-menu.dropdown-menu-right li a( href ng-click="startRenaming()" right-click="startRenaming()" ) #{translate("rename")} li a( href ng-click="openDeleteModal()" right-click="openDeleteModal()" ) #{translate("delete")} li.divider li a( href ng-click="openNewDocModal()" right-click="openNewDocModal()" ) #{translate("new_file")} li a( href ng-click="openNewFolderModal()" right-click="openNewFolderModal()" ) #{translate("new_folder")} li a( href ng-click="openUploadFileModal()" right-click="openUploadFileModal()" ) #{translate("upload_file")} .dropdown.context-menu( ng-if="permissions.write" id="context-menu-{{ entity.id }}" ) ul.dropdown-menu li a( href ng-click="startRenaming()" right-click="startRenaming()" ) #{translate("rename")} li a( href ng-click="openDeleteModal()" right-click="openDeleteModal()" ) #{translate("delete")} li.divider li a( href ng-click="openNewDocModal()" right-click="openNewDocModal()" ) #{translate("new_file")} li a( href ng-click="openNewFolderModal()" right-click="openNewFolderModal()" ) #{translate("new_folder")} li a( href ng-click="openUploadFileModal()" right-click="openUploadFileModal()" ) #{translate("upload_file")} ul.list-unstyled( ng-if="entity.type == 'folder'" ng-show="expanded" droppable="permissions.write" accept=".entity-name" on-drop-callback="onDrop" ) file-entity( entity="child", permissions="permissions", ng-repeat="child in entity.children | orderBy:[orderByFoldersFirst, 'name']" ) script(type='text/ng-template', id='newDocModalTemplate') .modal-header h3 #{translate("new_file")} .modal-body form(novalidate, name="newDocForm") input.form-control( type="text", placeholder="File Name", required, ng-model="inputs.name", on-enter="create()", select-name-on="open" ) .modal-footer button.btn.btn-default( ng-disabled="state.inflight" ng-click="cancel()" ) #{translate("cancel")} button.btn.btn-primary( ng-disabled="newDocForm.$invalid || state.inflight" ng-click="create()" ) span(ng-hide="state.inflight") #{translate("create")} span(ng-show="state.inflight") #{translate("creating")}... script(type='text/ng-template', id='newFolderModalTemplate') .modal-header h3 #{translate("new_folder")} .modal-body form(novalidate, name="newFolderForm") input.form-control( type="text", placeholder="Folder Name", required, ng-model="inputs.name", on-enter="create()", select-name-on="open" ) .modal-footer button.btn.btn-default( ng-disabled="state.inflight" ng-click="cancel()" ) #{translate("cancel")} button.btn.btn-primary( ng-disabled="newFolderForm.$invalid || state.inflight" ng-click="create()" ) span(ng-hide="state.inflight") #{translate("create")} span(ng-show="state.inflight") #{translate("creating")}... script(type="text/ng-template", id="uploadFileModalTemplate") .modal-header h3 #{translate("upload_files")} span   .alert.alert-warning.small(ng-if="tooManyFiles") #{translate("maximum_files_uploaded_together", {max:"{{max_files}}"})} .alert.alert-warning.small(ng-if="rateLimitHit") Too many files uploaded, your uploads have been throttled for short period. .modal-body( fine-upload endpoint="/project/{{ project_id }}/upload" waiting-for-response-text="{{inserting_files}}" failed-upload-text="{{upload_failed_sorry}}" upload-button-text="{{select_files}}" drag-area-text="{{drag_files}}" hint-text="{{hint_press_and_hold_control_key}}" multiple="true" on-complete-callback="onComplete" on-upload-callback="onUpload" on-validate-batch="onValidateBatch" on-error-callback="onError" params="{'folder_id': parent_folder_id}" ) span #{translate("upload_files")} .modal-footer button.btn.btn-default(ng-click="cancel()") #{translate("cancel")} script(type='text/ng-template', id='deleteEntityModalTemplate') .modal-header h3 #{translate("delete")} {{ entity.name }} .modal-body p !{translate("sure_you_want_to_delete")} .modal-footer button.btn.btn-default( ng-disabled="state.inflight" ng-click="cancel()" ) #{translate("cancel")} button.btn.btn-danger( ng-disabled="state.inflight" ng-click="delete()" ) span(ng-hide="state.inflight") #{translate("delete")} span(ng-show="state.inflight") #{translate("deleting")}...