list.jade 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. extends ../layout
  2. block content
  3. mixin formatAccessLevel(accessLevel)
  4. -if (accessLevel == "owner")
  5. span Owner
  6. -else if (accessLevel == "readWrite")
  7. span Read and Write
  8. -else if (accessLevel == "readOnly")
  9. span Read Only
  10. -else
  11. span Unknown?
  12. mixin tag(project_id, tagName, showDeleteIcon)
  13. span.label.label-info.tag-label(data-project-id=project_id, data-tag=tagName)
  14. span.text #{tagName}
  15. - if (showDeleteIcon)
  16. i.icon-remove.icon-white.delete-tag(data-project-id=project_id, data-tag=tagName)
  17. mixin projectList(projects)
  18. -each project in projects
  19. - project_id = project._id.toString()
  20. .project_entry(id=project_id)
  21. .btn-group.project-actions
  22. a.btn.dropdown-toggle(data-toggle="dropdown", href="#") Actions
  23. span.caret
  24. ul.dropdown-menu.pull-right(role="menu")
  25. li
  26. a(href='/project/'+project_id+'/clone', data-csrf=csrfToken).cloneProject Clone Project
  27. -if (project.accessLevel == "owner")
  28. li
  29. a(href='/project/'+project_id, data-name=project.name, data-id=project_id, data-csrf=csrfToken).deleteProject Delete Project
  30. -else
  31. li
  32. a(href='/project/'+project_id+'/leave', data-name=project.name, data-id=project._id, data-csrf=csrfToken).leaveProject Leave Project
  33. li
  34. a(href='/project/'+project._id+'/download/zip').downloadZip Download Zip
  35. a.projectName(href="/project/#{project._id}") #{project.name}
  36. .projectDetails
  37. span Last modified on
  38. span.isoDate #{project.lastUpdated.toISOString()}
  39. span   -  
  40. span #{formatPrivlageLevel(project.publicAccesLevel)}
  41. span   -  
  42. mixin formatAccessLevel(project.accessLevel)
  43. .project-tags(data-project-id=project_id)
  44. - each tag in project.tags
  45. mixin tag(project_id, tag.name, true)
  46. span.new-tags
  47. span.newTagLocation
  48. span.label.addTagButton(data-project-id=project_id) Add Tag
  49. i.icon-plus.icon-white
  50. div
  51. input(placeholder='Tag Name', name='tags', style="display: none;", data-project-id=project_id).tags-input
  52. include ../general/sidebar
  53. .content-with-navigation-sidebar
  54. .box#projectListArea
  55. .row-fluid
  56. .span12
  57. .page-header
  58. .btn-group.pull-right#newProject
  59. a.btn.btn-success.dropdown-toggle(data-toggle="dropdown", href="#") New Project
  60. span.caret
  61. ul.dropdown-menu.pull-right(role="menu")
  62. li
  63. a.normalText#blankNewProject(href="#", data-csrf=csrfToken) Blank Project
  64. li
  65. a.normalText#newProjectExample(href="#", data-csrf=csrfToken) Example Project
  66. li
  67. a.normalText#uploadNewProject(href="#", data-csrf=csrfToken) Upload Zipped Project
  68. li.divider
  69. li
  70. .normalText.menu-header From Template
  71. li
  72. a.normalText.menu-indent(href="/templates/cv") CV or Resume
  73. li
  74. a.normalText.menu-indent(href="/templates/cover-letters") Cover Letter
  75. li
  76. a.normalText.menu-indent(href="/templates/journals") Journal Article
  77. li
  78. a.normalText.menu-indent(href="/templates/presentations") Presentation
  79. li
  80. a.normalText.menu-indent(href="/templates/thesis") Thesis
  81. li
  82. a.normalText.menu-indent(href="/templates/bibliographies") Bibliographies
  83. h1 Projects
  84. - if (projects.length > 0)
  85. .row-fluid
  86. .span9
  87. form.search
  88. input#projectFilter(placeholder='Search Projects', autofocus='autofocus').span6.projectSearch.search-query
  89. i.icon-search
  90. i.icon-remove
  91. ul#projectList
  92. mixin projectList(projects)
  93. .span3
  94. .tag-list
  95. h2 Tags
  96. #allProjectTagsArea
  97. ul
  98. - each tag in tags
  99. -if (tag.project_ids.length > 0)
  100. li
  101. mixin tag("", tag.name, false)
  102. span.number x #{tag.project_ids.length}
  103. - else
  104. .row-fluid
  105. .span12
  106. .sharelatex-intro
  107. .create-project-arrow Create your first project
  108. .welcome
  109. h2 Welcome to ShareLaTeX!
  110. p New to LaTeX? Then have a look at our
  111. a(href="/templates") templates
  112. | or
  113. a(href="/learn") help guides
  114. | .
  115. if freeTrial && freeTrial.expired == false
  116. .row-fluid
  117. .span12
  118. .alert.alert-info.alert-free-trial
  119. p You are currently using a free trial which expires on #{freeTrial.expiresAt}.
  120. p
  121. a(href="/user/subscription").btn.btn-primary Upgrade now
  122. if freeTrial && freeTrial.expired == true
  123. .row-fluid
  124. .span12
  125. .alert.alert-danger.alert-free-trial
  126. p Your free trial has expired! Upgrade now to continue using ShareLaTeX uninterrupted.
  127. p
  128. a(href="/user/subscription").btn.btn-danger Upgrade now
  129. include ../general/small-footer
  130. script(type="text/template")#tagTemplate
  131. mixin tag('{{ project_id }}', '{{ tagName }}', true)
  132. - locals.supressDefaultJs = true
  133. script
  134. window.requirejs = {
  135. "paths" : {
  136. "moment": "libs/moment"
  137. }
  138. };
  139. script(
  140. data-main=jsPath+'list.js?fingerprint='+fingerprint(jsPath + 'list.js'),
  141. baseurl=jsPath,
  142. src=jsPath+'libs/require.js?fingerprint='+fingerprint(jsPath + 'libs/require.js')
  143. )