Răsfoiți Sursa

Add missed lines from rebase

James Allen 8 ani în urmă
părinte
comite
225d30ffd2

+ 93 - 81
services/web/app/views/project/list/item.pug

@@ -1,89 +1,101 @@
 td.selectProject
-	input.select-item(
-		select-individual,
-		type="checkbox",
-		ng-disabled="shouldDisableCheckbox(project)",
-		ng-model="project.selected"
-		stop-propagation="click"
-		aria-label=translate('select_project') + " '{{ project.name }}'"
-	)
+  input.select-item(
+    select-individual,
+    type="checkbox",
+    ng-disabled="shouldDisableCheckbox(project)",
+    ng-model="project.selected"
+    stop-propagation="click"
+    aria-label=translate('select_project') + " '{{ project.name }}'"
+  )
 td.projectName
-	a.projectName(
-		ng-href="{{projectLink(project)}}"
-		stop-propagation="click"
-	) {{project.name}}
-	span(
-		ng-controller="TagListController"
-	)
-		.tag-label(
-			ng-repeat='tag in project.tags'
-			stop-propagation="click"
-		)
-			a.label.label-default.tag-label-name(
-				href,
-				ng-click="selectTag(tag)"
-			) {{tag.name}}
-			a.label.label-default.tag-label-remove(
-				href
-				ng-click="removeProjectFromTag(project, tag)"
-			) ×
+  a.projectName(
+    ng-href="{{projectLink(project)}}"
+    stop-propagation="click"
+  ) {{project.name}}
+  span(
+    ng-controller="TagListController"
+  )
+    .tag-label(
+      ng-repeat='tag in project.tags'
+      stop-propagation="click"
+    )
+      a.label.label-default.tag-label-name(
+        href,
+        ng-click="selectTag(tag)"
+      ) {{tag.name}}
+      a.label.label-default.tag-label-remove(
+        href
+        ng-click="removeProjectFromTag(project, tag)"
+      ) ×
 
 td
-	span.owner {{userDisplayName(project.owner)}}
-	span(ng-if="isLinkSharingProject(project)")
-		|  
-		i.fa.fa-link.small(
-			tooltip=translate("link_sharing")
-			tooltip-placement="right"
-			tooltip-append-to-body="true"
-		)
+  span.owner {{userDisplayName(project.owner)}}
+  span(ng-if="isLinkSharingProject(project)")
+    |  
+    i.fa.fa-link.small(
+      tooltip=translate("link_sharing")
+      tooltip-placement="right"
+      tooltip-append-to-body="true"
+    )
 
 td
-	span.last-modified(tooltip="{{project.lastUpdated | formatDate}}")
-		| {{project.lastUpdated | fromNowDate}}
-	span(ng-show='project.lastUpdatedBy')
-		|
-		| by {{userDisplayName(project.lastUpdatedBy)}}
+  span.last-modified(tooltip="{{project.lastUpdated | formatDate}}")
+    | {{project.lastUpdated | fromNowDate}}
+  span(ng-show='project.lastUpdatedBy')
+    |
+    | by {{userDisplayName(project.lastUpdatedBy)}}
 
 td.text-right
-	div(
-		ng-if="!project.isTableActionInflight"
-	)
-		button.btn.btn-link.action-btn(
-			tooltip=translate('copy'),
-			tooltip-placement="top",
-			tooltip-append-to-body="true",
-			ng-click="clone($event)"
-		)
-			i.icon.fa.fa-files-o
-		button.btn.btn-link.action-btn(
-			tooltip=translate('download'),
-			tooltip-placement="top",
-			tooltip-append-to-body="true",
-			ng-click="download($event)"
-		)
-			i.icon.fa.fa-cloud-download
-		button.btn.btn-link.action-btn(
-			ng-if="!project.archived && isOwner()"
-			tooltip=translate('archive'),
-			tooltip-placement="top",
-			tooltip-append-to-body="true",
-			ng-click="archiveOrLeave($event)"
-		)
-			i.icon.fa.fa-inbox
-		button.btn.btn-link.action-btn(
-			ng-if="!project.archived && !isOwner()"
-			tooltip=translate('leave'),
-			tooltip-placement="top",
-			tooltip-append-to-body="true",
-			ng-click="archiveOrLeave($event)"
-		)
-			i.icon.fa.fa-sign-out
-		button.btn.btn-link.action-btn(
-			ng-if="project.archived"
-			tooltip=translate('unarchive'),
-			tooltip-placement="top",
-			tooltip-append-to-body="true",
-			ng-click="restore($event)"
-		)
-			i.icon.fa.fa-reply
+  div(
+    ng-if="!project.isTableActionInflight"
+  )
+    button.btn.btn-link.action-btn(
+      tooltip=translate('copy'),
+      tooltip-placement="top",
+      tooltip-append-to-body="true",
+      ng-click="clone($event)"
+    )
+      i.icon.fa.fa-files-o
+    button.btn.btn-link.action-btn(
+      tooltip=translate('download'),
+      tooltip-placement="top",
+      tooltip-append-to-body="true",
+      ng-click="download($event)"
+    )
+      i.icon.fa.fa-cloud-download
+    button.btn.btn-link.action-btn(
+      ng-if="!project.archived && isOwner()"
+      tooltip=translate('archive'),
+      tooltip-placement="top",
+      tooltip-append-to-body="true",
+      ng-click="archiveOrLeave($event)"
+    )
+      i.icon.fa.fa-inbox
+    button.btn.btn-link.action-btn(
+      ng-if="!project.archived && !isOwner()"
+      tooltip=translate('leave'),
+      tooltip-placement="top",
+      tooltip-append-to-body="true",
+      ng-click="archiveOrLeave($event)"
+    )
+      i.icon.fa.fa-sign-out
+    button.btn.btn-link.action-btn(
+      ng-if="project.archived"
+      tooltip=translate('unarchive'),
+      tooltip-placement="top",
+      tooltip-append-to-body="true",
+      ng-click="restore($event)"
+    )
+      i.icon.fa.fa-reply
+    button.btn.btn-link.action-btn(
+      ng-if="project.archived && isOwner()"
+      tooltip=translate('delete_forever'),
+      tooltip-placement="top",
+      tooltip-append-to-body="true",
+      ng-click="deleteProject($event)"
+    )
+      i.icon.fa.fa-trash
+  div(
+    ng-if="project.isTableActionInflight"
+  )
+    i.fa.fa-spinner.fa-spin

+ 169 - 161
services/web/app/views/project/list/project-list.pug

@@ -1,175 +1,183 @@
 .row
-	.col-xs-12(ng-cloak)
+  .col-xs-12(ng-cloak)
 
 
 
-		form.project-search.form-horizontal(role="form")
-			.form-group.has-feedback.has-feedback-left.col-md-7.col-xs-12
-				input.form-control.col-md-7.col-xs-12(
-					placeholder=translate('search_projects')+"…",
-					aria-label=translate('search_projects')+"…",
-					autofocus='autofocus',
-					ng-model="searchText.value",
-					focus-on='search:clear',
-					ng-keyup="searchProjects()"
-				)
-				i.fa.fa-search.form-control-feedback-left
-				i.fa.fa-times.form-control-feedback(
-					ng-click="clearSearchText()",
-					style="cursor: pointer;",
-					ng-show="searchText.value.length > 0"
-				)
-			//- i.fa.fa-remove
+    form.project-search.form-horizontal(role="form")
+      .form-group.has-feedback.has-feedback-left.col-md-7.col-xs-12
+        input.form-control.col-md-7.col-xs-12(
+          placeholder=translate('search_projects')+"…",
+          aria-label=translate('search_projects')+"…",
+          autofocus='autofocus',
+          ng-model="searchText.value",
+          focus-on='search:clear',
+          ng-keyup="searchProjects()"
+        )
+        i.fa.fa-search.form-control-feedback-left
+        i.fa.fa-times.form-control-feedback(
+          ng-click="clearSearchText()",
+          style="cursor: pointer;",
+          ng-show="searchText.value.length > 0"
+        )
+      //- i.fa.fa-remove
 
-		.project-tools(ng-cloak)
-			.btn-toolbar(ng-show="filter != 'archived'")
-				.btn-group(ng-hide="selectedProjects.length < 1")
-					a.btn.btn-default(
-						href,
-						tooltip=translate('download'),
-						tooltip-placement="bottom",
-						tooltip-append-to-body="true",
-						ng-click="downloadSelectedProjects()"
-					)
-						i.fa.fa-cloud-download
-					- var archiveButtonString = settings.overleaf ? translate("archive") : translate("delete")
-					- var archiveButtonIcon = settings.overleaf ? "fa-inbox" : "fa-trash-o"
-					a.btn.btn-default(
-						href,
-						tooltip=`{{ isArchiveableProjectSelected ? '${archiveButtonString}' : '${translate("leave")}' }}`,
-						tooltip-placement="bottom",
-						tooltip-append-to-body="true",
-						ng-click="openArchiveProjectsModal()"
-					)
-						i.fa(ng-class=`isArchiveableProjectSelected ? '${archiveButtonIcon}' : 'fa-sign-out'`)
+    .project-tools(ng-cloak)
+      .btn-toolbar(ng-show="filter != 'archived'")
+        .btn-group(ng-hide="selectedProjects.length < 1")
+          a.btn.btn-default(
+            href,
+            tooltip=translate('download'),
+            tooltip-placement="bottom",
+            tooltip-append-to-body="true",
+            ng-click="downloadSelectedProjects()"
+          )
+            i.fa.fa-cloud-download
+          - var archiveButtonString = settings.overleaf ? translate("archive") : translate("delete")
+          - var archiveButtonIcon = settings.overleaf ? "fa-inbox" : "fa-trash-o"
+          a.btn.btn-default(
+            href,
+            tooltip=`{{ isArchiveableProjectSelected ? '${archiveButtonString}' : '${translate("leave")}' }}`,
+            tooltip-placement="bottom",
+            tooltip-append-to-body="true",
+            ng-click="openArchiveProjectsModal()"
+          )
+            i.fa(ng-class=`isArchiveableProjectSelected ? '${archiveButtonIcon}' : 'fa-sign-out'`)
 
-				.btn-group.dropdown(ng-hide="selectedProjects.length < 1", dropdown)
-					a.btn.btn-default.dropdown-toggle(
-						href,
-						data-toggle="dropdown",
-						dropdown-toggle,
-						tooltip=translate('add_to_folders'),
-						tooltip-append-to-body="true",
-						tooltip-placement="bottom"
-					)
-						i.fa.fa-folder-open-o
-						|  
-						span.caret
-					ul.dropdown-menu.dropdown-menu-right.js-tags-dropdown-menu.tags-dropdown-menu(
-						role="menu"
-						ng-controller="TagListController"
-					)
-						li.dropdown-header #{translate("add_to_folder")}
-						li(
-							ng-repeat="tag in tags | orderBy:'name'",
-							ng-controller="TagDropdownItemController"
-							ng-if="!tag.isV1"
-						)
-							a(href="#", ng-click="addOrRemoveProjectsFromTag()", stop-propagation="click")
-								i.fa(
-									ng-class="{\
-										'fa-check-square-o': areSelectedProjectsInTag == true,\
-										'fa-square-o': areSelectedProjectsInTag == false,\
-										'fa-minus-square-o': areSelectedProjectsInTag == 'partial'\
-									}"
-								)
-								|  {{tag.name}}
-						li.divider
-						li
-							a(href, ng-click="openNewTagModal()", stop-propagation="click") #{translate("create_new_folder")}
+        .btn-group.dropdown(ng-hide="selectedProjects.length < 1", dropdown)
+          a.btn.btn-default.dropdown-toggle(
+            href,
+            data-toggle="dropdown",
+            dropdown-toggle,
+            tooltip=translate('add_to_folders'),
+            tooltip-append-to-body="true",
+            tooltip-placement="bottom"
+          )
+            i.fa.fa-folder-open-o
+            |
+            span.caret
+          ul.dropdown-menu.dropdown-menu-right.js-tags-dropdown-menu.tags-dropdown-menu(
+            role="menu"
+            ng-controller="TagListController"
+          )
+            li.dropdown-header #{translate("add_to_folder")}
+            li(
+              ng-repeat="tag in tags | orderBy:'name'",
+              ng-controller="TagDropdownItemController"
+              ng-if="!tag.isV1"
+            )
+              a(href="#", ng-click="addOrRemoveProjectsFromTag()", stop-propagation="click")
+                i.fa(
+                  ng-class="{\
+                    'fa-check-square-o': areSelectedProjectsInTag == true,\
+                    'fa-square-o': areSelectedProjectsInTag == false,\
+                    'fa-minus-square-o': areSelectedProjectsInTag == 'partial'\
+                  }"
+                )
+                |  {{tag.name}}
+            li.divider
+            li
+              a(href, ng-click="openNewTagModal()", stop-propagation="click") #{translate("create_new_folder")}
 
-				.btn-group(ng-hide="selectedProjects.length != 1", dropdown).dropdown
-					a.btn.btn-default.dropdown-toggle(
-						href,
-						data-toggle="dropdown",
-						dropdown-toggle
-					) #{translate("more")} 
-						span.caret
-					ul.dropdown-menu.dropdown-menu-right(role="menu")
-						li(ng-show="getFirstSelectedProject().accessLevel == 'owner'")
-							a(
-								href,
-								ng-click="openRenameProjectModal()"
-							) #{translate("rename")}
-						li
-							a(
-								href,
-								ng-click="openCloneProjectModal()"
-							) #{translate("make_copy")}
+        .btn-group(ng-hide="selectedProjects.length != 1", dropdown).dropdown
+          a.btn.btn-default.dropdown-toggle(
+            href,
+            data-toggle="dropdown",
+            dropdown-toggle
+          ) #{translate("more")}
+            span.caret
+          ul.dropdown-menu.dropdown-menu-right(role="menu")
+            li(ng-show="getFirstSelectedProject().accessLevel == 'owner'")
+              a(
+                href,
+                ng-click="openRenameProjectModal()"
+              ) #{translate("rename")}
+            li
+              a(
+                href,
+                ng-click="openCloneProjectModal()"
+              ) #{translate("make_copy")}
 
-			.btn-toolbar(ng-show="filter == 'archived'")
-				.btn-group(ng-hide="selectedProjects.length < 1")
-					a.btn.btn-default(
-						href,
-						data-original-title="Restore",
-						data-toggle="tooltip",
-						data-placement="bottom",
-						ng-click="restoreSelectedProjects()"
-					) #{translate("restore")}
+      .btn-toolbar(ng-show="filter == 'archived'")
+        .btn-group(ng-hide="selectedProjects.length < 1")
+          a.btn.btn-default(
+            href,
+            data-original-title="Restore",
+            data-toggle="tooltip",
+            data-placement="bottom",
+            ng-click="restoreSelectedProjects()"
+          ) #{translate("restore")}
 
-				.btn-group(ng-hide="selectedProjects.length < 1")
-					a.btn.btn-danger(
-						href,
-						data-original-title="Delete Forever",
-						data-toggle="tooltip",
-						data-placement="bottom",
-						ng-click="openDeleteProjectsModal()"
-					) #{translate("delete_forever")}
+        .btn-group(ng-hide="selectedProjects.length < 1")
+          a.btn.btn-danger(
+            href,
+            data-original-title="Delete Forever",
+            data-toggle="tooltip",
+            data-placement="bottom",
+            ng-click="openDeleteProjectsModal()"
+          ) #{translate("delete_forever")}
 
 .row.row-spaced
-	each warning in warnings
-		.col-xs-12
-			.alert.alert-warning(role="alert")= warning
+  each warning in warnings
+    .col-xs-12
+      .alert.alert-warning(role="alert")= warning
 
-	.col-xs-12
-		.card.card-thin.project-list-card
-			.table-wrapper(max-height="projectListHeight - 25",)
-				table.table.table-hover.project-list(
-					select-all-list,
-					ng-if="projects.length > 0",
-					ng-cloak
-				)
-					thead
-						tr
-							th.selectProject
-								input.select-all(
-									select-all,
-									type="checkbox"
-									aria-label=translate('select_all_projects')
-								)
-							th.projectName
-								span.header.clickable(ng-click="changePredicate('name')") #{translate("title")}
-									i.tablesort.fa(ng-class="getSortIconClass('name')")
-							th
-								span.header.clickable(ng-click="changePredicate('accessLevel')") #{translate("owner")}
-									i.tablesort.fa(ng-class="getSortIconClass('accessLevel')")
-							th
-								span.header.clickable(ng-click="changePredicate('lastUpdated')") #{translate("last_modified")}
-									i.tablesort.fa(ng-class="getSortIconClass('lastUpdated')")
-							if settings.overleaf
-								th.text-right
-									span.header #{translate("actions")}
-					tbody
-						tr.project_entry(
-							ng-repeat="project in visibleProjects | orderBy:predicate:reverse",
-							ng-controller="ProjectListItemController"
-						)
-							include ./item
-						tr(
-							ng-if="visibleProjects.length == 0",
-							ng-cloak
-						)
-							td(colspan=5).text-center
-								small #{translate("no_projects")}
+  .col-xs-12
+    .card.card-thin.project-list-card
+      .table-wrapper(max-height="projectListHeight - 25",)
+        table.table.table-hover.project-list(
+          select-all-list,
+          ng-if="projects.length > 0",
+          ng-cloak
+        )
+          thead
+            tr
+              th.selectProject
+                input.select-all(
+                  select-all,
+                  type="checkbox"
+                  aria-label=translate('select_all_projects')
+                )
+              th.projectName
+                span.header.clickable(ng-click="changePredicate('name')") #{translate("title")}
+                  i.tablesort.fa(ng-class="getSortIconClass('name')")
+              th
+                span.header.clickable(ng-click="changePredicate('accessLevel')") #{translate("owner")}
+                  i.tablesort.fa(ng-class="getSortIconClass('accessLevel')")
+              th
+                span.header.clickable(ng-click="changePredicate('lastUpdated')") #{translate("last_modified")}
+                  i.tablesort.fa(ng-class="getSortIconClass('lastUpdated')")
+              if settings.overleaf
+                th.text-right
+                  span.header #{translate("actions")}
+          tbody
+            tr.project_entry(
+              ng-repeat="project in visibleProjects | orderBy:predicate:reverse",
+              ng-controller="ProjectListItemController"
+            )
+              .row(
+                ng-if="!project.isV1Project"
+                select-row
+              )
+                include ./item
+              .row(
+                ng-if="project.isV1Project"
+              )
+                include ./v1-item
+            tr(
+              ng-if="visibleProjects.length == 0",
+              ng-cloak
+            )
+              td(colspan=5).text-center
+                small #{translate("no_projects")}
+
+      div.welcome.text-centered(ng-if="projects.length == 0", ng-cloak)
+        h2 #{translate("welcome_to_sl")}
+        p #{translate("new_to_latex_look_at")}
+          a(href="/templates") #{translate("templates").toLowerCase()}
+          |   #{translate("or")}
+          a(href="/learn")  #{translate("latex_help_guide")}
+          | ,
+          br
+          |  #{translate("or_create_project_left")}
 
-			div.welcome.text-centered(ng-if="projects.length == 0", ng-cloak)
-				h2 #{translate("welcome_to_sl")}
-				p #{translate("new_to_latex_look_at")} 
-					a(href="/templates") #{translate("templates").toLowerCase()}
-					|   #{translate("or")}
-					a(href="/learn")  #{translate("latex_help_guide")}
-					| ,
-					br 
-					|  #{translate("or_create_project_left")}
 
-							

+ 26 - 22
services/web/app/views/project/list/v1-item.pug

@@ -1,25 +1,29 @@
-.col-xs-6.col-sm-4.col-md-6
-	.select-item
-		span.v1-badge(
-			aria-label=translate("v1_badge")
-			tooltip-template="'v1ProjectTooltipTemplate'"
-			tooltip-append-to-body="true"
-		)
-	span
-		if settings.overleaf && settings.overleaf.host
-			button.btn.btn-link.projectName(
-				ng-click="openV1ImportModal(project)"
-				stop-propagation="click"
-				ng-show="project.accessLevel == 'owner'"
-			) {{project.name}}
-			a.projectName(
-				href=settings.overleaf.host + "/{{project.id}}"
-				target="_blank"
-				ng-hide="project.accessLevel == 'owner'"
-			) {{project.name}}
+td
 
-.col-xs-2
+td.selectProject
+	span.v1-badge(
+		aria-label=translate("v1_badge")
+		tooltip-template="'v1ProjectTooltipTemplate'"
+		tooltip-append-to-body="true"
+	)
+
+td.projectName
+	if settings.overleaf && settings.overleaf.host
+		button.btn.btn-link.projectName(
+			ng-click="openV1ImportModal(project)"
+			stop-propagation="click"
+			ng-show="project.accessLevel == 'owner'"
+		) {{project.name}}
+		a.projectName(
+			href=settings.overleaf.host + "/{{project.id}}"
+			target="_blank"
+			ng-hide="project.accessLevel == 'owner'"
+		) {{project.name}}
+
+td
 	span.owner {{userDisplayName(project.owner)}}
 
-.col-xs-4.col-sm-3.col-md-2
-	span.last-modified(tooltip="{{project.lastUpdated | formatDate}}") {{project.lastUpdated | fromNowDate}}
+td
+	span.last-modified(tooltip="{{project.lastUpdated | formatDate}}") {{project.lastUpdated | fromNowDate}}
+
+td