project-list.pug 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. .row
  2. .col-xs-12(ng-cloak)
  3. form.project-search.form-horizontal(role="form")
  4. .form-group.has-feedback.has-feedback-left.col-md-7.col-xs-12
  5. input.form-control.col-md-7.col-xs-12(
  6. placeholder=translate('search_projects')+"…",
  7. aria-label=translate('search_projects')+"…",
  8. autofocus='autofocus',
  9. ng-model="searchText.value",
  10. focus-on='search:clear',
  11. ng-keyup="searchProjects()"
  12. )
  13. i.fa.fa-search.form-control-feedback-left
  14. i.fa.fa-times.form-control-feedback(
  15. ng-click="clearSearchText()",
  16. style="cursor: pointer;",
  17. ng-show="searchText.value.length > 0"
  18. )
  19. //- i.fa.fa-remove
  20. .project-tools(ng-cloak)
  21. .btn-toolbar(ng-show="filter != 'archived'")
  22. .btn-group(ng-hide="selectedProjects.length < 1")
  23. a.btn.btn-default(
  24. href,
  25. tooltip=translate('download'),
  26. tooltip-placement="bottom",
  27. tooltip-append-to-body="true",
  28. ng-click="downloadSelectedProjects()"
  29. )
  30. i.fa.fa-cloud-download
  31. a.btn.btn-default(
  32. href,
  33. tooltip=translate('delete'),
  34. tooltip-placement="bottom",
  35. tooltip-append-to-body="true",
  36. ng-click="openArchiveProjectsModal()"
  37. )
  38. i.fa.fa-trash-o
  39. .btn-group.dropdown(ng-hide="selectedProjects.length < 1", dropdown)
  40. a.btn.btn-default.dropdown-toggle(
  41. href,
  42. data-toggle="dropdown",
  43. dropdown-toggle,
  44. tooltip=translate('add_to_folders'),
  45. tooltip-append-to-body="true",
  46. tooltip-placement="bottom"
  47. )
  48. i.fa.fa-folder-open-o
  49. |
  50. span.caret
  51. ul.dropdown-menu.dropdown-menu-right.js-tags-dropdown-menu.tags-dropdown-menu(
  52. role="menu"
  53. ng-controller="TagListController"
  54. )
  55. li.dropdown-header #{translate("add_to_folder")}
  56. li(
  57. ng-repeat="tag in tags | orderBy:'name'",
  58. ng-controller="TagDropdownItemController"
  59. )
  60. a(href="#", ng-click="addOrRemoveProjectsFromTag()", stop-propagation="click")
  61. i.fa(
  62. ng-class="{\
  63. 'fa-check-square-o': areSelectedProjectsInTag == true,\
  64. 'fa-square-o': areSelectedProjectsInTag == false,\
  65. 'fa-minus-square-o': areSelectedProjectsInTag == 'partial'\
  66. }"
  67. )
  68. | {{tag.name}}
  69. li.divider
  70. li
  71. a(href, ng-click="openNewTagModal()", stop-propagation="click") #{translate("create_new_folder")}
  72. .btn-group(ng-hide="selectedProjects.length != 1", dropdown).dropdown
  73. a.btn.btn-default.dropdown-toggle(
  74. href,
  75. data-toggle="dropdown",
  76. dropdown-toggle
  77. ) #{translate("more")}
  78. span.caret
  79. ul.dropdown-menu.dropdown-menu-right(role="menu")
  80. li(ng-show="getFirstSelectedProject().accessLevel == 'owner'")
  81. a(
  82. href,
  83. ng-click="openRenameProjectModal()"
  84. ) #{translate("rename")}
  85. li
  86. a(
  87. href,
  88. ng-click="openCloneProjectModal()"
  89. ) #{translate("make_copy")}
  90. .btn-toolbar(ng-show="filter == 'archived'")
  91. .btn-group(ng-hide="selectedProjects.length < 1")
  92. a.btn.btn-default(
  93. href,
  94. data-original-title="Restore",
  95. data-toggle="tooltip",
  96. data-placement="bottom",
  97. ng-click="restoreSelectedProjects()"
  98. ) #{translate("restore")}
  99. .btn-group(ng-hide="selectedProjects.length < 1")
  100. a.btn.btn-danger(
  101. href,
  102. data-original-title="Delete Forever",
  103. data-toggle="tooltip",
  104. data-placement="bottom",
  105. ng-click="openDeleteProjectsModal()"
  106. ) #{translate("delete_forever")}
  107. .row.row-spaced
  108. if noV1Connection
  109. .col-xs-12
  110. .alert.alert-warning No V1 Connection
  111. .col-xs-12
  112. .card.card-thin.project-list-card
  113. ul.list-unstyled.project-list.structured-list(
  114. select-all-list,
  115. ng-if="projects.length > 0",
  116. max-height="projectListHeight - 25",
  117. ng-cloak
  118. )
  119. li.container-fluid
  120. .row
  121. .col-xs-6
  122. input.select-all(
  123. select-all,
  124. type="checkbox"
  125. aria-label=translate('select_all_projects')
  126. )
  127. span.header.clickable(ng-click="changePredicate('name')") #{translate("title")}
  128. i.tablesort.fa(ng-class="getSortIconClass('name')")
  129. .col-xs-2
  130. span.header.clickable(ng-click="changePredicate('accessLevel')") #{translate("owner")}
  131. i.tablesort.fa(ng-class="getSortIconClass('accessLevel')")
  132. .col-xs-4
  133. span.header.clickable(ng-click="changePredicate('lastUpdated')") #{translate("last_modified")}
  134. i.tablesort.fa(ng-class="getSortIconClass('lastUpdated')")
  135. li.project_entry.container-fluid(
  136. ng-repeat="project in visibleProjects | orderBy:predicate:reverse",
  137. ng-controller="ProjectListItemController"
  138. )
  139. .row(
  140. ng-if="!project.isV1Project"
  141. select-row
  142. )
  143. include ./item
  144. .row(
  145. ng-if="project.isV1Project"
  146. )
  147. include ./v1-item
  148. li(
  149. ng-if="visibleProjects.length == 0",
  150. ng-cloak
  151. )
  152. .row
  153. .col-xs-12.text-centered
  154. small #{translate("no_projects")}
  155. div.welcome.text-centered(ng-if="projects.length == 0", ng-cloak)
  156. h2 #{translate("welcome_to_sl")}
  157. p #{translate("new_to_latex_look_at")}
  158. a(href="/templates") #{translate("templates").toLowerCase()}
  159. | #{translate("or")}
  160. a(href="/learn") #{translate("latex_help_guide")}
  161. | ,
  162. br
  163. | #{translate("or_create_project_left")}