overleaf/services/web/app/views/project/list.jade
2014-06-16 16:22:45 +01:00

180 lines
6.3 KiB
Text

extends ../layout
block content
mixin formatAccessLevel(accessLevel)
-if (accessLevel == "owner")
span Owner
-else if (accessLevel == "readWrite")
span Read and Write
-else if (accessLevel == "readOnly")
span Read Only
-else
span Unknown?
mixin tag(project_id, tagName, showDeleteIcon)
span.label.label-info.tag-label(data-project-id=project_id, data-tag=tagName)
span.text #{tagName}
- if (showDeleteIcon)
i.icon-remove.icon-white.delete-tag(data-project-id=project_id, data-tag=tagName)
mixin projectList(projects)
-each project in projects
- project_id = project._id.toString()
.project_entry(id=project_id)
.btn-group.project-actions
a.btn.dropdown-toggle(data-toggle="dropdown", href="#") Actions
span.caret
ul.dropdown-menu.pull-right(role="menu")
li
a(href='/project/'+project_id+'/clone', data-csrf=csrfToken).cloneProject Clone
li
a(href='/project/'+project._id+'/download/zip').downloadZip Download Zip
-if (project.accessLevel == "owner")
li
a(href='/project/'+project_id+'/rename', data-name=project.name, data-id=project_id, data-csrf=csrfToken).renameProject Rename
li
a(href='/project/'+project_id, data-name=project.name, data-id=project_id, data-csrf=csrfToken).archiveProject Delete
-else
li
a(href='/project/'+project_id+'/leave', data-name=project.name, data-id=project_id, data-csrf=csrfToken).leaveProject Leave
a.projectName(href="/project/#{project._id}") #{project.name}
.projectDetails
span Last modified on
span.isoDate #{project.lastUpdated.toISOString()}
span   -  
span #{formatProjectPublicAccessLevel(project.publicAccesLevel)}
span   -  
mixin formatAccessLevel(project.accessLevel)
.project-tags(data-project-id=project_id)
- each tag in project.tags
mixin tag(project_id, tag.name, true)
span.new-tags
span.newTagLocation
span.label.addTagButton(data-project-id=project_id) Add Tag
i.icon-plus.icon-white
div
input(placeholder='Tag Name', name='tags', style="display: none;", data-project-id=project_id).tags-input
include ../general/sidebar
.content-with-navigation-sidebar
.box#projectListArea
.row-fluid
.span12
.page-header
.btn-group.pull-right#newProject
a.btn.btn-success.dropdown-toggle(data-toggle="dropdown", href="#") New Project
span.caret
ul.dropdown-menu.pull-right(role="menu")
li
a.normalText#blankNewProject(href="#", data-csrf=csrfToken) Blank Project
li
a.normalText#newProjectExample(href="#", data-csrf=csrfToken) Example Project
li
a.normalText#uploadNewProject(href="#", data-csrf=csrfToken) Upload Zipped Project
li.divider
li
.normalText.menu-header From Template
li
a.normalText.menu-indent(href="/templates/cv") CV or Resume
li
a.normalText.menu-indent(href="/templates/cover-letters") Cover Letter
li
a.normalText.menu-indent(href="/templates/journals") Journal Article
li
a.normalText.menu-indent(href="/templates/presentations") Presentation
li
a.normalText.menu-indent(href="/templates/thesis") Thesis
li
a.normalText.menu-indent(href="/templates/bibliographies") Bibliographies
a(href="/project/archived").pull-right.archived-projects Archived Projects
h1 Projects
- if (projects.length > 0)
.row-fluid
.span9
form.search
input#projectFilter(placeholder='Search Projects', autofocus='autofocus').span6.projectSearch.search-query
i.icon-search
i.icon-remove
ul#projectList
mixin projectList(projects)
.span3#userProfileInformation(ng-cloak)
div(ng-controller="UpdateForm").userProfileInformationArea
div(ng-hide="hidePersonalInfoSection").alert.alert-info
div(ng-show="percentComplete >= 100")
h4 100% complete, well done!
div(ng-hide="percentComplete >= 100")
h4 Your account is
strong {{percentComplete}}%
| complete
.progress
.bar.bar-success(ng-style="{'width' : (percentComplete+'%')}")
button#completeUserProfileInformation.btn.btn-primary(ng-hide="formVisable", ng-click="showForm()") Complete now
div(ng-show="formVisable")
form(enctype='multipart/form-data', method='post')
.input
input(type='text', name='first_name', ng-model="userInfoForm.first_name", ng-blur="sendUpdate()", placeholder="First Name", focus-input="formVisable")
.input
input(type='text', name='last_name', ng-model="userInfoForm.last_name", ng-blur="sendUpdate()", placeholder='Last Name')
.input#institution_auto_complete
autocomplete(ng-model="userInfoForm.institution", data="institutions", ng-blur="sendUpdate()", on-type="updateInstitutionsList", attr-placeholder="Institution")
.input
input(type='text', name='role', ng-model="userInfoForm.role", placeholder='Role', ng-blur="sendUpdate()", list="_roles")
datalist#_roles
option(ng-repeat='role in roles') {{role}}
.span3
.tag-list
h2 Tags
#allProjectTagsArea
ul
- each tag in tags
-if (tag.project_ids.length > 0)
li
mixin tag("", tag.name, false)
span.number x #{tag.project_ids.length}
- else
.row-fluid
.span12
.sharelatex-intro
.create-project-arrow Create your first project
.welcome
h2 Welcome to ShareLaTeX!
p New to LaTeX? Then have a look at our
a(href="/templates") templates
| or
a(href="/learn") help guides
| .
include ../general/small-footer
script(type="text/template")#tagTemplate
mixin tag('{{ project_id }}', '{{ tagName }}', true)
- locals.supressDefaultJs = true
script
window.requirejs = {
"paths" : {
"moment": "libs/moment",
"angular":"libs/angular"
},
shim: {
'angular' : {'exports' : 'angular'}
},
priority: [
"angular"
]
};
script(
data-main=jsPath+'list.js?fingerprint='+fingerprint(jsPath + 'list.js'),
baseurl=jsPath,
src=jsPath+'libs/require.js?fingerprint='+fingerprint(jsPath + 'libs/require.js')
)