| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395 |
- aside.file-tree(ng-controller="FileTreeController", ng-class="{ 'multi-selected': multiSelectedCount > 0 }", ng-show="ui.view != 'history' || !history.isV2").full-size
- .toolbar.toolbar-filetree(ng-if="permissions.write")
- a(
- href,
- ng-click="openNewDocModal()",
- tooltip-html="'"+translate('new_file').replace(' ', '<br>')+"'",
- tooltip-placement="bottom"
- )
- i.fa.fa-fw.fa-file
- a(
- href,
- ng-click="openNewFolderModal()",
- tooltip-html="'"+translate('new_folder').replace(' ', '<br>')+"'",
- tooltip-placement="bottom"
- )
- i.fa.fa-fw.fa-folder
- a(
- href,
- ng-click="openUploadFileModal()",
- tooltip=translate('upload'),
- tooltip-placement="bottom"
- )
- i.fa.fa-fw.fa-upload
- .toolbar-right
- a(
- href,
- ng-click="startRenamingSelected()",
- tooltip=translate('rename'),
- tooltip-placement="bottom",
- ng-show="multiSelectedCount == 0"
- )
- i.fa.fa-fw.fa-pencil
- a(
- href,
- ng-click="openDeleteModalForSelected()",
- tooltip=translate('delete'),
- tooltip-placement="bottom",
- tooltip-append-to-body="true"
- )
- i.fa.fa-fw.fa-trash-o
- .file-tree-inner(
- ng-if="rootFolder",
- ng-controller="FileTreeRootFolderController",
- ng-class="{ 'no-toolbar': !permissions.write }"
- )
- 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",
- ng-repeat="entity in rootFolder.children | orderBy:[orderByFoldersFirst, 'name']"
- )
- li(ng-show="deletedDocs.length > 0 && ui.view == 'history'")
- h3 #{translate("deleted_files")}
- li(
- ng-class="{ 'selected': entity.selected }",
- ng-repeat="entity in deletedDocs | orderBy:'name'",
- ng-controller="FileTreeEntityController",
- ng-show="ui.view == 'history'"
- )
- .entity
- .entity-name(
- ng-click="select($event)"
- )
- //- Just a spacer to align with folders
- i.fa.fa-fw.toggle
- i.fa.fa-fw.fa-file
- span {{ entity.name }}
- if user.alphaProgram
- .outline-container(
- ng-controller="OutlineController"
- )
- outline-pane(
- is-tex-file="isTexFile"
- outline="outline"
- jump-to-line="jumpToLine"
- )
- script(type='text/ng-template', id='entityListItemTemplate')
- li(
- ng-class="{ 'selected': entity.selected, 'multi-selected': entity.multiSelected }",
- ng-controller="FileTreeEntityController"
- )
- .entity(ng-if="entity.type != 'folder'")
- .entity-name(
- ng-click="select($event)"
- ng-dblclick="permissions.write && startRenaming()"
- draggable="permissions.write"
- draggable-helper="draggableHelper"
- 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(ng-if="entity.type != 'folder'", ng-class="'fa-' + iconTypeFromName(entity.name)")
- i.fa.fa-external-link-square.fa-rotate-180.linked-file-highlight(
- ng-if="entity.linkedFileData.provider"
- )
- span(
- ng-hide="entity.renaming"
- ) {{ entity.renamingToName || 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()"
- valid-file
- )
- span.dropdown.entity-menu-toggle(
- dropdown,
- ng-if="permissions.write"
- )
- a.dropdown-toggle(href, dropdown-toggle, stop-propagation="click")
- i.fa.fa-chevron-down
- ul.dropdown-menu.dropdown-menu-right
- li
- a(
- href
- ng-click="startRenaming()"
- right-click="startRenaming()"
- ng-show="!entity.multiSelected"
- ) #{translate("rename")}
- li
- a(
- href
- ng-click="openDeleteModal()"
- right-click="openDeleteModal()"
- stop-propagation="click"
- ) #{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()"
- ng-show="!entity.multiSelected"
- ) #{translate("rename")}
- li
- a(
- href
- ng-click="openDeleteModal()"
- right-click="openDeleteModal()"
- stop-propagation="click"
- ) #{translate("delete")}
- .entity(ng-if="entity.type == 'folder'", ng-controller="FileTreeFolderController")
- .entity-name(
- ng-click="select($event)"
- ng-dblclick="permissions.write && startRenaming()"
- draggable="permissions.write"
- draggable-helper="draggableHelper"
- 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($event)"
- )
- span(
- ng-hide="entity.renaming"
- ) {{ entity.renamingToName || 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()"
- valid-file
- )
- span.dropdown.entity-menu-toggle(
- dropdown,
- ng-if="permissions.write"
- )
- a.dropdown-toggle(href, dropdown-toggle, stop-propagation="click")
- i.fa.fa-chevron-down
- ul.dropdown-menu.dropdown-menu-right
- li
- a(
- href
- ng-click="startRenaming()"
- right-click="startRenaming()"
- ng-show="!entity.multiSelected"
- ) #{translate("rename")}
- li
- a(
- href
- ng-click="openDeleteModal()"
- right-click="openDeleteModal()"
- stop-propagation="click"
- ) #{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()"
- ng-show="!entity.multiSelected"
- ) #{translate("rename")}
- li
- a(
- href
- ng-click="openDeleteModal()"
- right-click="openDeleteModal()"
- stop-propagation="click"
- ) #{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='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",
- valid-file,
- name="name"
- )
- div.alert.alert-danger.row-spaced-small(ng-show="newFolderForm.name.$error.validFile")
- | #{translate('files_cannot_include_invalid_characters')}
- div.alert.alert-danger.row-spaced-small(ng-if="error")
- div(ng-switch="error")
- span(ng-switch-when="already exists") #{translate("file_already_exists")}
- span(ng-switch-default) {{error}}
- .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='duplicateFileModalTemplate')
- .modal-header
- h3 #{translate("duplicate_file")}
- .modal-body
- p #{translate("file_already_exists_in_this_location", { fileName: "'{{ fileName }}'" })}
- .modal-footer
- button.btn.btn-default(
- ng-click="cancel()"
- ) #{translate("dismiss")}
- include ./new-file-modal
- script(type='text/ng-template', id='deleteEntityModalTemplate')
- .modal-header
- h3 #{translate("delete")} {{ entity.name }}
- .modal-body
- p !{translate("sure_you_want_to_delete")}
- ul
- li(ng-repeat="entity in entities") {{entity.name}}
- .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")}…
- script(type='text/ng-template', id='invalidFileNameModalTemplate')
- .modal-header
- h3 #{translate('invalid_file_name')}
- .modal-body
- p #{translate('files_cannot_include_invalid_characters')}
- .modal-footer
- button.btn.btn-default(
- ng-click="$close()"
- ) #{translate('ok')}
|