Merge branch 'master-redesign' of https://github.com/sharelatex/web-sharelatex into master-redesign

This commit is contained in:
Henry Oswald 2014-07-16 15:53:12 +01:00
commit 4f91e40875
11 changed files with 489 additions and 1061 deletions

View file

@ -1,113 +0,0 @@
#archiveEntityModal(style='display: none')
.modal
.modal-header
h3 Delete Project
.modal-body
span.message Are you sure you want to delete
strong.name Project
| ?
.modal-footer
button.btn.btn-danger.confirm Delete
button.btn.cancel No
#deleteEntityModal(style='display: none')
.modal
.modal-header
h3 Delete Project
.modal-body
p Are you sure you want to delete
strong.name Project
| ?
p
strong It will not be possible to recover your project once deleted.
.modal-footer
button.btn.btn-danger.confirm Delete Forever
button.btn.cancel No
#renameProjectModal(style='display: none')
.modal
.modal-header
h3 Rename Project
.modal-body
form.form-horizontal(onkeydown="if (event.keyCode == 13){event.preventDefault(); document.getElementById('confirmRename').click()}")
input.inputmodal#projectNewName(placeholder='name')
.modal-footer
button.btn.btn-primary#confirmRename Rename
button.btn.cancel Cancel
#leaveProjectModal(style='display: none')
.modal
.modal-header
h3 Leave Project
.modal-body
span.message Are you sure you want to leave
strong.name Project
| ?
.modal-footer
button.btn.btn-danger.confirm Leave
button.btn.cancel No
#deleteUserAccountModal(style='display: none')
.modal
.modal-header
h3 Delete Account
.modal-body
span.message Type
strong Delete
| below to confirm you want to delete your account forever
div  
input.inputmodal(placeholder='')
.modal-footer
button.btn.btn-danger#confirmDeleteUser Delete Forever
button.btn.cancel Cancel
#cloneProjectModal(style='display: none')
.modal
.modal-header
h3 Clone Project
.modal-body
form.form-horizontal(onkeydown="if (event.keyCode == 13){event.preventDefault(); document.getElementById('confirmCloneProject').click()}")
input.inputmodal#newProjectName(placeholder='New Name')
.modal-footer
button.btn.btn-primary#confirmCloneProject Create
button.btn.cancel Cancel
#newProjectModal(style='display: none')
.modal
.modal-header
h3 New Project
.modal-body
form.form-horizontal(onkeydown="if (event.keyCode == 13){event.preventDefault(); document.getElementById('confirmNewProject').click()}")
input.inputmodal#newProjectName(placeholder='name')
.modal-footer
button.btn.btn-primary#confirmNewProject Create
button.btn.cancel Cancel
#newEntityModal(style='display: none')
.modal
.modal-header
h3
.modal-body
form.form-horizontal(onkeydown="if (event.keyCode == 13){event.preventDefault(); $('.in button#genericSave').click()}")
input.inputmodal.span3(placeholder='name')
.modal-footer
button.btn.btn-primary#genericSave.confirm Save
button.btn.cancel Cancel
#errorModal(style='display: none')
.modal
.modal-header
h3
.modal-body
span.message
#projectUploadModal(style='display: none')
.modal
.modal-header
h3 Upload Zipped Project
.modal-body#projectFileUpload
span Upload a zipped project
.modal-footer
button.btn.cancel Cancel

View file

@ -19,449 +19,9 @@ block content
.container
.row
.col-md-2
.dropdown
a.btn.btn-primary.dropdown-toggle(
href="#",
data-toggle="dropdown"
) New Project
ul.dropdown-menu(role="menu")
li
a(
href,
ng-click="openCreateProjectModal()"
) Blank Project
li
a(
href,
ng-click="openCreateProjectModal('example')"
) Example Project
li
a(
href,
ng-click="openUploadProjectModal()"
) Upload Project
li.divider
li.dropdown-header Templates
li
a.menu-indent(href="/templates/cv") CV or Resume
li
a.menu-indent(href="/templates/cover-letters") Cover Letter
li
a.menu-indent(href="/templates/journals") Journal Article
li
a.menu-indent(href="/templates/presentations") Presentation
li
a.menu-indent(href="/templates/thesis") Thesis
li
a.menu-indent(href="/templates/bibliographies") Bibliographies
li
a.menu-indent(href="/templates") View All »
.row-spaced(ng-if="projects.length > 0", ng-cloak)
ul.list-unstyled.folders-menu(
ng-controller="TagListController"
)
li(ng-class="{active: (filter == 'all')}")
a(href, ng-click="filterProjects('all')") All projects
li(ng-class="{active: (filter == 'owned')}")
a(href, ng-click="filterProjects('owned')") Your projects
li(ng-class="{active: (filter == 'shared')}")
a(href, ng-click="filterProjects('shared')") Shared projects
li(ng-class="{active: (filter == 'archived')}")
a(href, ng-click="filterProjects('archived')") Deleted projects
li(ng-if="tags.length > 0")
h2 Folders
li(
ng-repeat="tag in tags | filter:nonEmpty",
ng-controller="TagListItemController",
ng-class="{active: tag.selected}",
ng-cloak
)
a(href="#", ng-click="selectTag()")
i.icon.fa(
ng-class="{\
'fa-folder-open-o': tag.selected,\
'fa-folder-o': !tag.selected\
}"
)
| {{tag.name}}
span.subdued ({{tag.project_ids.length}})
.row-spaced(ng-if="projects.length == 0", ng-cloak)
.first-project
div
i.fa.fa-arrow-up.fa-2x
div
strong Create your first project!
- if (showUserDetailsArea)
.row-spaced#userProfileInformation(ng-if="projects.length > 0", ng-cloak)
div(ng-controller="UserProfileController")
hr(ng-show="percentComplete < 100")
.text-centered.user-profile(ng-show="percentComplete < 100")
.progress
.progress-bar.progress-bar-info(ng-style="{'width' : (percentComplete+'%')}")
p.small
| Your profile is
strong {{percentComplete}}%
| complete
button#completeUserProfileInformation.btn.btn-info(
ng-hide="formVisable",
ng-click="openUserProfileModal()"
) Complete
-if (settings.enableSubscriptions && !hasSubscription)
.row-spaced(ng-if="projects.length > 0", ng-cloak).text-centered
hr
p.small You are using the free version of ShareLaTeX.
p
a(href="/user/subscription/plans").btn.btn-primary Upgrade
p.small
| or unlock some free bonus features by
a(href="/user/bonus") sharing ShareLaTeX.
include ./list/side-bar
.col-md-10
.container-fluid
.row
.col-md-12
form.project-search.form-horizontal(role="form")
.form-group.has-feedback.has-feedback-left.col-md-7
input.form-control.col-md-7(
placeholder='Search projects…',
autofocus='autofocus',
ng-model="searchText",
focus-on='search:clear'
)
i.fa.fa-search.form-control-feedback-left
i.fa.fa-times.form-control-feedback(
ng-click="clearSearchText()",
style="cursor: pointer;",
ng-show="searchText.length > 0"
)
//- i.fa.fa-remove
include ./list/project-list
.project-tools(ng-cloak)
.btn-toolbar(ng-show="filter != 'archived'")
.btn-group(ng-hide="selectedProjects.length < 1")
a.btn.btn-default(
href='#',
tooltip="Download",
tooltip-placement="bottom",
ng-click="downloadSelectedProjects()"
)
i.fa.fa-cloud-download
a.btn.btn-default(
href='#',
tooltip="Delete",
tooltip-placement="bottom",
ng-click="openArchiveProjectsModal()"
)
i.fa.fa-trash-o
.btn-group.dropdown(ng-hide="selectedProjects.length < 1")
a.btn.btn-default.dropdown-toggle(
href="#",
data-toggle="dropdown",
tooltip="Add to folders",
tooltip-placement="bottom"
)
i.fa.fa-folder-open-o
|
span.caret
ul.dropdown-menu.dropdown-menu-right.js-tags-dropdown-menu(
role="menu"
ng-controller="TagListController"
)
li.dropdown-header Add to folder
li(
ng-repeat="tag in tags | filter:nonEmpty | orderBy:'name'",
ng-controller="TagDropdownItemController"
)
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") Create New Folder
.btn-group(ng-hide="selectedProjects.length != 1").dropdown
a.btn.btn-default.dropdown-toggle(
href='#',
data-toggle="dropdown"
) More
span.caret
ul.dropdown-menu.dropdown-menu-right(role="menu")
li(ng-show="getFirstSelectedProject().accessLevel == 'owner'")
a(
href='#',
ng-click="openRenameProjectModal()"
) Rename
li
a(
href='#',
ng-click="openCloneProjectModal()"
) Make a 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()"
) 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()"
) Delete Forever
.row.row-spaced
.col-md-12
.card.card-thin
ul.list-unstyled.project-list.structured-list(
select-all-list,
ng-if="projects.length > 0",
max-height="windowHeight - 290",
ng-cloak
)
li.container-fluid
.row
.col-md-6
input.select-all(
select-all,
type="checkbox"
)
span.header Title
.col-md-2
span.header Owner
.col-md-4
span.header Last Modified
li.project_entry.container-fluid(
ng-repeat="project in visibleProjects | orderBy:'lastUpdated':true",
ng-controller="ProjectListItemController"
)
.row
.col-md-6
input.select-item(
select-individual,
type="checkbox",
ng-model="project.selected"
)
span
a.projectName(href="/project/{{project.id}}") {{project.name}}
span.label.label-default.tag-label(ng-repeat='tag in project.tags')
| {{tag.name}}
.col-md-2
span.owner {{ownerName()}}
.col-md-4
span.last-modified {{project.lastUpdated | formatDate}}
li(
ng-if="visibleProjects.length == 0",
ng-cloak
)
.row
.col-md-12.text-centered
small No projects
div.welcome.text-centered(ng-if="projects.length == 0", ng-cloak)
h2 Welcome to ShareLaTeX!
p New to LaTeX? Start by having a look at our
a(href="/templates") templates
| or
a(href="/learn") help guides
| ,
br
| or create your first project on the left.
script(type='text/ng-template', id='newTagModalTemplate')
.modal-header
h3 Create New Folder
.modal-body
form(name="newTagForm", novalidate)
input.form-control(
type="text",
placeholder="New Folder Name",
required,
ng-model="inputs.newTagName",
on-enter="create()",
focus-on="open"
)
.modal-footer
button.btn.btn-default(ng-click="cancel()") Cancel
button.btn.btn-primary(
ng-disabled="newTagForm.$invalid"
ng-click="create()"
) Create
script(type='text/ng-template', id='renameProjectModalTemplate')
.modal-header
h3 Rename Project
.modal-body
form(name="renameProjectForm", novalidate)
input.form-control(
type="text",
placeholder="Project Name",
ng-model="inputs.projectName",
required,
on-enter="rename()",
focus-on="open"
)
.modal-footer
button.btn.btn-default(ng-click="cancel()") Cancel
button.btn.btn-primary(
ng-click="rename()",
ng-disabled="renameProjectForm.$invalid"
) Rename
script(type='text/ng-template', id='cloneProjectModalTemplate')
.modal-header
h3 Copy Project
.modal-body
form(name="cloneProjectForm", novalidate)
.form-group
label New Name
input.form-control(
type="text",
placeholder="New Project Name",
required,
ng-model="inputs.projectName",
on-enter="clone()",
focus-on="open"
)
.modal-footer
button.btn.btn-default(
ng-disabled="state.inflight"
ng-click="cancel()"
) Cancel
button.btn.btn-primary(
ng-disabled="cloneProjectForm.$invalid || state.inflight"
ng-click="clone()"
)
span(ng-hide="state.inflight") Copy
span(ng-show="state.inflight") Copying...
script(type='text/ng-template', id='newProjectModalTemplate')
.modal-header
h3 New Project
.modal-body
form(novalidate, name="newProjectForm")
input.form-control(
type="text",
placeholder="Project Name",
required,
ng-model="inputs.projectName",
on-enter="create()",
focus-on="open"
)
.modal-footer
button.btn.btn-default(
ng-disabled="state.inflight"
ng-click="cancel()"
) Cancel
button.btn.btn-primary(
ng-disabled="newProjectForm.$invalid || state.inflight"
ng-click="create()"
)
span(ng-hide="state.inflight") Create
span(ng-show="state.inflight") Creating...
script(type='text/ng-template', id='deleteProjectsModalTemplate')
.modal-header
h3 {{action}} Projects
.modal-body
div(ng-show="projectsToDelete.length > 0")
p You are about to delete the following projects:
ul
li(ng-repeat="project in projectsToDelete | orderBy:'name'")
strong {{project.name}}
div(ng-show="projectsToLeave.length > 0")
p You are about to leave the following projects:
ul
li(ng-repeat="project in projectsToLeave | orderBy:'name'")
strong {{project.name}}
.modal-footer
button.btn.btn-default(
ng-click="cancel()"
) Cancel
button.btn.btn-danger(
ng-click="delete()"
) {{action}}
script(type="text/ng-template", id="uploadProjectModalTemplate")
.modal-header
h3 Upload Zipped Project
.modal-body(
fine-upload
endpoint="/project/new/upload"
waiting-for-response-text="Creating project..."
failed-upload-text="Upload failed. Is it a valid zip file?"
upload-button-text="Select a .zip file"
drag-area-text="drag .zip file"
multiple="false"
allowed-extensions="['zip']"
on-complete-callback="onComplete"
)
span Upload a zipped project
.modal-footer
button.btn.btn-default(ng-click="cancel()") Cancel
script(type="text/ng-template", id="userProfileModalTemplate")
.modal-header
h3 Your Profile
.modal-body
form(enctype='multipart/form-data', method='post')
.form-group
label(for="first_name") First Name
input.form-control(
type='text',
name='first_name',
ng-model="userInfoForm.first_name",
ng-blur="sendUpdate()",
placeholder="First Name",
select-when="formVisable"
)
.form-group
label(for="last_name") Last Name
input.form-control(
type='text',
name='last_name',
ng-model="userInfoForm.last_name",
ng-blur="sendUpdate()",
placeholder='Last Name'
)
.form-group#institution_auto_complete
label(for="institution") Institution
autocomplete(
ng-model="userInfoForm.institution",
name="institution",
data="institutions",
ng-blur="sendUpdate()",
on-type="updateInstitutionsList",
attr-placeholder="Institution",
attr-inputclass="form-control"
)
.form-group
label(for="role") Role
input.form-control(
type='text',
name='role',
ng-model="userInfoForm.role",
placeholder='Role',
ng-blur="sendUpdate()",
typeahead="role for role in roles | filter:$viewValue"
)
.modal-footer
button.btn.btn-info(ng-click="done()") Done
include ./list/modals

View file

@ -0,0 +1,186 @@
script(type='text/ng-template', id='newTagModalTemplate')
.modal-header
h3 Create New Folder
.modal-body
form(name="newTagForm", novalidate)
input.form-control(
type="text",
placeholder="New Folder Name",
required,
ng-model="inputs.newTagName",
on-enter="create()",
focus-on="open",
stop-propagation="click"
)
.modal-footer
//- We stop propagation to stop the clicks from closing the
//- 'move to folder' menu.
button.btn.btn-default(
ng-click="cancel()"
stop-propagation="click"
) Cancel
button.btn.btn-primary(
ng-disabled="newTagForm.$invalid"
ng-click="create()"
stop-propagation="click"
) Create
script(type='text/ng-template', id='renameProjectModalTemplate')
.modal-header
h3 Rename Project
.modal-body
form(name="renameProjectForm", novalidate)
input.form-control(
type="text",
placeholder="Project Name",
ng-model="inputs.projectName",
required,
on-enter="rename()",
focus-on="open"
)
.modal-footer
button.btn.btn-default(ng-click="cancel()") Cancel
button.btn.btn-primary(
ng-click="rename()",
ng-disabled="renameProjectForm.$invalid"
) Rename
script(type='text/ng-template', id='cloneProjectModalTemplate')
.modal-header
h3 Copy Project
.modal-body
form(name="cloneProjectForm", novalidate)
.form-group
label New Name
input.form-control(
type="text",
placeholder="New Project Name",
required,
ng-model="inputs.projectName",
on-enter="clone()",
focus-on="open"
)
.modal-footer
button.btn.btn-default(
ng-disabled="state.inflight"
ng-click="cancel()"
) Cancel
button.btn.btn-primary(
ng-disabled="cloneProjectForm.$invalid || state.inflight"
ng-click="clone()"
)
span(ng-hide="state.inflight") Copy
span(ng-show="state.inflight") Copying...
script(type='text/ng-template', id='newProjectModalTemplate')
.modal-header
h3 New Project
.modal-body
form(novalidate, name="newProjectForm")
input.form-control(
type="text",
placeholder="Project Name",
required,
ng-model="inputs.projectName",
on-enter="create()",
focus-on="open"
)
.modal-footer
button.btn.btn-default(
ng-disabled="state.inflight"
ng-click="cancel()"
) Cancel
button.btn.btn-primary(
ng-disabled="newProjectForm.$invalid || state.inflight"
ng-click="create()"
)
span(ng-hide="state.inflight") Create
span(ng-show="state.inflight") Creating...
script(type='text/ng-template', id='deleteProjectsModalTemplate')
.modal-header
h3 {{action}} Projects
.modal-body
div(ng-show="projectsToDelete.length > 0")
p You are about to delete the following projects:
ul
li(ng-repeat="project in projectsToDelete | orderBy:'name'")
strong {{project.name}}
div(ng-show="projectsToLeave.length > 0")
p You are about to leave the following projects:
ul
li(ng-repeat="project in projectsToLeave | orderBy:'name'")
strong {{project.name}}
.modal-footer
button.btn.btn-default(
ng-click="cancel()"
) Cancel
button.btn.btn-danger(
ng-click="delete()"
) {{action}}
script(type="text/ng-template", id="uploadProjectModalTemplate")
.modal-header
h3 Upload Zipped Project
.modal-body(
fine-upload
endpoint="/project/new/upload"
waiting-for-response-text="Creating project..."
failed-upload-text="Upload failed. Is it a valid zip file?"
upload-button-text="Select a .zip file"
drag-area-text="drag .zip file"
multiple="false"
allowed-extensions="['zip']"
on-complete-callback="onComplete"
)
span Upload a zipped project
.modal-footer
button.btn.btn-default(ng-click="cancel()") Cancel
script(type="text/ng-template", id="userProfileModalTemplate")
.modal-header
h3 Your Profile
.modal-body
form(enctype='multipart/form-data', method='post')
.form-group
label(for="first_name") First Name
input.form-control(
type='text',
name='first_name',
ng-model="userInfoForm.first_name",
ng-blur="sendUpdate()",
placeholder="First Name",
select-when="formVisable"
)
.form-group
label(for="last_name") Last Name
input.form-control(
type='text',
name='last_name',
ng-model="userInfoForm.last_name",
ng-blur="sendUpdate()",
placeholder='Last Name'
)
.form-group#institution_auto_complete
label(for="institution") Institution
autocomplete(
ng-model="userInfoForm.institution",
name="institution",
data="institutions",
ng-blur="sendUpdate()",
on-type="updateInstitutionsList",
attr-placeholder="Institution",
attr-inputclass="form-control"
)
.form-group
label(for="role") Role
input.form-control(
type='text',
name='role',
ng-model="userInfoForm.role",
placeholder='Role',
ng-blur="sendUpdate()",
typeahead="role for role in roles | filter:$viewValue"
)
.modal-footer
button.btn.btn-info(ng-click="done()") Done

View file

@ -0,0 +1,167 @@
.row
.col-md-12
form.project-search.form-horizontal(role="form")
.form-group.has-feedback.has-feedback-left.col-md-7
input.form-control.col-md-7(
placeholder='Search projects…',
autofocus='autofocus',
ng-model="searchText",
focus-on='search:clear'
)
i.fa.fa-search.form-control-feedback-left
i.fa.fa-times.form-control-feedback(
ng-click="clearSearchText()",
style="cursor: pointer;",
ng-show="searchText.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="Download",
tooltip-placement="bottom",
ng-click="downloadSelectedProjects()"
)
i.fa.fa-cloud-download
a.btn.btn-default(
href='#',
tooltip="Delete",
tooltip-placement="bottom",
ng-click="openArchiveProjectsModal()"
)
i.fa.fa-trash-o
.btn-group.dropdown(ng-hide="selectedProjects.length < 1")
a.btn.btn-default.dropdown-toggle(
href="#",
data-toggle="dropdown",
tooltip="Add to folders",
tooltip-placement="bottom"
)
i.fa.fa-folder-open-o
|
span.caret
ul.dropdown-menu.dropdown-menu-right.js-tags-dropdown-menu(
role="menu"
ng-controller="TagListController"
)
li.dropdown-header Add to folder
li(
ng-repeat="tag in tags | filter:nonEmpty | orderBy:'name'",
ng-controller="TagDropdownItemController"
)
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") Create New Folder
.btn-group(ng-hide="selectedProjects.length != 1").dropdown
a.btn.btn-default.dropdown-toggle(
href='#',
data-toggle="dropdown"
) More
span.caret
ul.dropdown-menu.dropdown-menu-right(role="menu")
li(ng-show="getFirstSelectedProject().accessLevel == 'owner'")
a(
href='#',
ng-click="openRenameProjectModal()"
) Rename
li
a(
href='#',
ng-click="openCloneProjectModal()"
) Make a 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()"
) 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()"
) Delete Forever
.row.row-spaced
.col-md-12
.card.card-thin
ul.list-unstyled.project-list.structured-list(
select-all-list,
ng-if="projects.length > 0",
max-height="windowHeight - 290",
ng-cloak
)
li.container-fluid
.row
.col-md-6
input.select-all(
select-all,
type="checkbox"
)
span.header Title
.col-md-2
span.header Owner
.col-md-4
span.header Last Modified
li.project_entry.container-fluid(
ng-repeat="project in visibleProjects | orderBy:'lastUpdated':true",
ng-controller="ProjectListItemController"
)
.row
.col-md-6
input.select-item(
select-individual,
type="checkbox",
ng-model="project.selected"
)
span
a.projectName(href="/project/{{project.id}}") {{project.name}}
span(
ng-controller="TagListController"
)
a.label.label-default.tag-label(
href,
ng-repeat='tag in project.tags',
ng-click="selectTag(tag)"
) {{tag.name}}
.col-md-2
span.owner {{ownerName()}}
.col-md-4
span.last-modified {{project.lastUpdated | formatDate}}
li(
ng-if="visibleProjects.length == 0",
ng-cloak
)
.row
.col-md-12.text-centered
small No projects
div.welcome.text-centered(ng-if="projects.length == 0", ng-cloak)
h2 Welcome to ShareLaTeX!
p New to LaTeX? Start by having a look at our
a(href="/templates") templates
| or
a(href="/learn") help guides
| ,
br
| or create your first project on the left.

View file

@ -0,0 +1,105 @@
.dropdown
a.btn.btn-primary.dropdown-toggle(
href="#",
data-toggle="dropdown"
) New Project
ul.dropdown-menu(role="menu")
li
a(
href,
ng-click="openCreateProjectModal()"
) Blank Project
li
a(
href,
ng-click="openCreateProjectModal('example')"
) Example Project
li
a(
href,
ng-click="openUploadProjectModal()"
) Upload Project
li.divider
li.dropdown-header Templates
li
a.menu-indent(href="/templates/cv") CV or Resume
li
a.menu-indent(href="/templates/cover-letters") Cover Letter
li
a.menu-indent(href="/templates/journals") Journal Article
li
a.menu-indent(href="/templates/presentations") Presentation
li
a.menu-indent(href="/templates/thesis") Thesis
li
a.menu-indent(href="/templates/bibliographies") Bibliographies
li
a.menu-indent(href="/templates") View All »
.row-spaced(ng-if="projects.length > 0", ng-cloak)
ul.list-unstyled.folders-menu(
ng-controller="TagListController"
)
li(ng-class="{active: (filter == 'all')}")
a(href, ng-click="filterProjects('all')") All projects
li(ng-class="{active: (filter == 'owned')}")
a(href, ng-click="filterProjects('owned')") Your projects
li(ng-class="{active: (filter == 'shared')}")
a(href, ng-click="filterProjects('shared')") Shared with you
li(ng-class="{active: (filter == 'archived')}")
a(href, ng-click="filterProjects('archived')") Deleted projects
li
h2 Folders
li(
ng-repeat="tag in tags | filter:nonEmpty",
ng-class="{active: tag.selected}",
ng-cloak
)
a.tag(href, ng-click="selectTag(tag)")
i.icon.fa.fa-fw(
ng-class="{\
'fa-folder-open-o': tag.selected,\
'fa-folder-o': !tag.selected\
}"
)
span.name {{tag.name}}
span.subdued ({{tag.project_ids.length}})
li(ng-cloak)
a(href, ng-click="openNewTagModal()")
i.fa.fa-fw.fa-plus
| New Folder
.row-spaced(ng-if="projects.length == 0", ng-cloak)
.first-project
div
i.fa.fa-arrow-up.fa-2x
div
strong Create your first project!
- if (showUserDetailsArea)
.row-spaced#userProfileInformation(ng-if="projects.length > 0", ng-cloak)
div(ng-controller="UserProfileController")
hr(ng-show="percentComplete < 100")
.text-centered.user-profile(ng-show="percentComplete < 100")
.progress
.progress-bar.progress-bar-info(ng-style="{'width' : (percentComplete+'%')}")
p.small
| Your profile is
strong {{percentComplete}}%
| complete
button#completeUserProfileInformation.btn.btn-info(
ng-hide="formVisable",
ng-click="openUserProfileModal()"
) Complete
-if (settings.enableSubscriptions && !hasSubscription)
.row-spaced(ng-if="projects.length > 0", ng-cloak).text-centered
hr
p.small You are using the free version of ShareLaTeX.
p
a(href="/user/subscription/plans").btn.btn-primary Upgrade
p.small
| or unlock some free bonus features by
a(href="/user/bonus") sharing ShareLaTeX.

View file

@ -1,495 +0,0 @@
#templates(style='display : none')
script(type="text/template")#editorLayoutTemplate
div#mainSplitter
aside#sidebar.ui-layout-west
//input#search-field(type='search', placeholder='Filter Files by Name')
// Position:relative is to get scrolling while dragging to work:
// http://stackoverflow.com/questions/1718547/jquery-draggable-scroll-not-working-when-helper-clone-is-used
#sections(style="position: relative;")
#options
span#saving-area
#content.content.ui-layout-center
#loading.fullEditorArea
#disconnect(style='display: none;').fullEditorArea
#mainAreaMessage Sorry, your browser has lost the connection to our server. Please try refreshing the page.
#projectDeleted(style='display: none;').fullEditorArea
#mainAreaMessage This project has been renamed or deleted.
#folderArea(style='display: none;').fullEditorArea
#imageArea(style='display: none;').fullEditorArea
iframe
script(type="text/template")#tabTemplate
li(id="{{ id }}-tab-li")
a(href="#", data-toggle="tab", data-target="\\#{{ show }}-tab", class="tab-link {{ id }}-tab")
.content {{ name }}
script(type="text/template")#tabContentTemplate
div.tab-pane(id="{{ id }}-tab")
script(type="text/template")#fileTreeTemplate
.file-tree.js-file-tree
script(type="text/template")#fileTreeActionsTemplate
.actions
.new-entity.dropdown.js-new-entity-menu
a.dropdown-toggle(href="#", data-toggle="dropdown", title="New file, folder or upload")
i.icon-plus
span.text New
ul.dropdown-menu
li
a.js-new-file(href="#")
img(src="/img/nide/doc.png")
| New File
li
a.js-new-folder(href="#")
img(src="/img/nide/folder.png")
| New Folder
li
a.js-upload-file(href="#")
img(src="/img/upload-file.png")
| Upload file(s)
.js-rename-btn.rename-btn
a(href="#", title="Rename")
i.icon-pencil
.js-delete-btn.delete-btn
a(href="#", title="Delete")
i.icon-trash
script(type="text/template")#rootDocListEntity
option {{name}}
script(type="text/template")#entityTemplate
.entity-list-item(class="entity-{{ type }}", entity-type="{{ type }}", id="{{ id }}")
.clickable.js-clickable
i(class="sprite-{{ type }}")
span.name {{ name }}
input.rename.js-rename
.dropdown-caret
i.icon-chevron-down
.entity-label.label.label-success
script(type="text/template")#folderTemplate
.entity-list-item(class="entity-{{ type }}", entity-type="{{ type }}", id="{{ id }}")
.toggle.js-toggle
img(src="/img/nide/right-arrow.png").js-closed
img(src="/img/nide/down-arrow.png").js-open
.clickable.js-clickable
i(class="sprite-{{ type }}")
span.name {{ name }}
input.rename.js-rename
.dropdown-caret
i.icon-chevron-down
.entity-label.label.label-success
script(type="text/template")#deletedDocsFolderTemplate
.entity-list-item.entity-deleted-docs-folder(class="entity-{{ type }}", entity-type="{{ type }}", id="{{ id }}")
.clickable.js-clickable
span.name {{ name }}
.entity-label.label.label-success
script(type="text/template")#entityListTemplate
.contents
.entity-list(id="{{ id }}-file-list")
script(type="text/template")#newEntityModalTemplate
div
input.inputmodal(placeholder="name")
script(type="text/template")#messageTemplate
.chatMessage
span.name {{name}}
span :
span.message {{message}}
script(type="text/template")#spellingMenuTemplate
div.btn-group.spell-check-menu
a.btn.dropdown-toggle(data-toggle="dropdown", href="#")
span.underlined Ab
ul.dropdown-menu.pull-right
li.divider
li
a#learnWord(href="#") Learn word
script(type="text/template")#spellingMenuEntryTemplate
li.spelling-suggestion
a(href="#") {{word}}
script(type="text/template")#contextMenuTemplate
ul.dropdown-menu.context-menu
script(type="text/template")#contextMenuEntryTemplate
li
a(href="#") {{text}}
script(type="text/template")#contextMenuDividerTemplate
li.divider
script(type="text/template")#genericModalTemplate
.modal
.modal-header
h3 {{ title }}
.modal-body
.message {{{ message }}}
.creditCardFreeTrialModal
.modal-footer
script(type="text/template")#creditCardFreeTrialModal
.modal
.modal-header
h3 {{ title }}
.modal-body
#subscribeForm
.modal-footer
script(type="text/template")#genericModalButtonTemplate
button(class="btn {{ class }}") {{ text }}
script(type="text/template")#editorPanelTemplate
#editorArea(style='display: none;')
#editorSplitter
#leftEditorPanel.ui-layout-center
#editorWrapper
#editor
#undoConflictWarning(style="display: none")
| <strong>Watch out!</strong> We had to undo some of your collaborators changes before we could undo yours.
a(href="#").js-hide Hide
#rightEditorPanel.ui-layout-east
script(type="text/template")#loadingIndicatorTemplate
.loading
script(type="text/template")#pdfSideBarLinkTemplate
ul
li.root.project#pdf(title='Show PDF', alt='pdf')
img(src='/img/pdf.png')
span PDF
script(type="text/template")#helpLinkTemplate
div
a(href="#", title="LaTeX Help") LaTeX Help
script(type="text/template")#editorTourTemplate
div
a(href="#", title="Editor Tour")#editorTourLink Editor Tour
script(type="text/template")#pdfPanelTemplate
#pdfArea(style='display: none;').fullEditorArea
#pdfToolBar.btn-toolbar
.btn-group
button#recompilePdf.btn.btn-success(type='button') Recompile
.btn-group#showLogGroup
button#showLog.btn Logs
.btn-group#showPdfGroup
button#showPdf.btn Back to PDF
.btn-group
button#downloadPdf.btn Download
button#downloadLinksButton.btn.dropdown-toggle(data-toggle="dropdown")
span.caret
ul.dropdown-menu
#downloadLinks
li.divider
li.delete-cached-files
a(href="#") Clear cached files
.btn-group.pull-right(data-toggle="buttons-radio")
button(type="button", title="Flat view")#flatViewButton.btn
i.icon-flatview
button(type="button", title="Split view")#splitViewButton.btn
i.icon-splitview
#pdfAreaContent
.not-compiled-yet-message
| Click here to preview your work as a PDF.
.compiling-message(style='display: none;') Compiling...
#logArea(style='display: none;')
ul
button.btn.btn-info.btn-large#showRawLog Show Raw Logs
#rawLogArea(style='display: none;')
pre
script(type="text/template")#syncButtonsTemplate
div.sync-buttons
button.btn.sync-code-to-pdf &rarr;
button.btn.sync-pdf-to-code &larr;
script(type="text/template")#outputFileLinkTemplate
li
a(href="/project/{{ project_id }}/output/{{ path }}", target="_blank") Download {{ name }}
script(type="text/template")#pdfjsViewerTemplate
.pdfjs-viewer
.pdfjs-list-view
.btn-group
button.btn.btn-info.js-fit-height
img(src="/img/iconshock/fit-to-height.png")
button.btn.btn-info.js-fit-width
img(src="/img/iconshock/fit-to-width.png")
button.btn.btn-info.js-zoom-out
img(src="/img/iconshock/zoom-out.png")
button.btn.btn-info.js-zoom-in
img(src="/img/iconshock/zoom-in.png")
.progress.progress-info
.bar
span Loading
script(type="text/template")#compileSuccessTemplate
li.alert.alert-success
strong No errors.
span Great Job!
script(type="text/template")#compileErrorTemplate
li.alert.alert-error
p
strong Server Error.
span Sorry, something went wrong and the project could not be compiled. Please try again in a few moments.
p
| If the problem persists, try
a(href='#').js-clear-cache clearing the cache.
| If that doesn't work, please contact support.
script(type="text/template")#compileFailedTemplate
li.alert.alert-error
p
strong Compile Error.
span Sorry, your LaTeX code couldn't compile for some reason. Please check the errors below for details, or view the raw log.
p
| If the problem persists, try
a(href='#').js-clear-cache clearing the cache.
script(type="text/template")#compileTimeoutTemplate
li.alert.alert-error
strong Timed out.
span Sorry, your compile was taking too long and timed out.
| This may be due to a large number of high-res images, or lots of complicated diagrams.
| Please try to make your document simpler, or contact support for help.
script(type="text/template")#compileLogEntryTemplate
li.alert.clickable(class="alert-{{ type }}")
strong {{ title }}:
span {{ message }}
.small {{ content }}
script(type="text/template")#projectMemberListTemplate
table.table
thead
tr
th Email
th Privileges
th
tbody
!= '{{#showAdminControls}}'
form.well.form-inline.addUserForm
input(type="email",placeholder="someone@email.com")#newEmail.email.input-large
select.privileges.input-medium
option(value="readAndWrite") Read and write
option(value="readOnly") Read Only
button.btn.btn-primary.addUser Add New Collaborator
!= '{{/showAdminControls}}'
script(type="text/template")#projectMemberListItemTemplate
tr.projectMember
td.email!= '{{ email }}'
td.privileges!= '{{ privileges }}'
td
!= '{{#showRemove}}'
button(href="#").btn.btn-danger.removeUser Remove
!= '{{/showRemove}}'
script(type="text/template")#socialSharingTemplate
.box
.page-header
h2 Share Publicly
div.share-button
a.btn.btn-twitter.btn-large(href="#")
i.icon-twitter
| &nbsp; Share on Twitter
div.share-button
.btn.btn-facebook.btn-large
i.icon-facebook
| &nbsp; Share on Facebook
div.share-button
.btn.btn-google-plus.btn-large
i.icon-google-plus
| &nbsp; Share on Google+
div.share-button
.btn.btn-large.btn-url
i.icon-link
| &nbsp; Share URL
script(type="text/template")#publishProjectTemplate
.box
.page-header
h2 Publish project as template
#publishedAsTemplateArea.show-when-published.alert.alert-success
p
.btn.btn-warning#unPublishProjectAsTemplate.pull-right Unpublish
i.icon-ok
| Your project is currently published.
a#templateLink(href='{{canonicalUrl}}') View in template gallery.
p
| Lastest version: {{publishedDate}}.
#problemWithPublishingArea
p There is a problem with our publishing service, please try again in a few minutes.
#publishWorkingArea
p Working...
div.show-when-published.show-when-unpublished.project-description
label(for="project-description") Description
.row-fluid
textarea(placeholder="Template description", name="project-description").span12#projectDescription {{description}}
#unpublishedAsTemplateArea.show-when-unpublished
.btn.btn-success#publishProjectAsTemplate Publish
p.show-when-published
button.btn.btn-success#republishProjectAsTemplate Re-Publish
script(type="text/template")#settingsPanelTemplate
.fullEditorArea.projectSettings
include project/partials/manage
script(type="text/template")#userPanelTemplate
.fullEditorArea.projectSettings
.box
.page-header
h2 Share Privately (via email)
#projectMembersList
#socialSharing
#publishProject
script(type='text/template')#fileViewTemplate
!= '{{#image}}'
div
img(src='{{ previewUrl }}')
!= '{{/image}}'
!= '{{^image}}'
.no-preview No preview available :(
!= '{{/image}}'
a(href='{{ downloadUrl }}', target="_blank").download.btn.btn-large!= 'Download {{ name }}'
script(type='text/template')#hotKeysLinkTemplate
div
a(href="#", title='Show Hot Keys List')#hotkeysLink Hot keys
script(type='text/template')#DebugLinkTemplate
div
a(href="#", title='Show Debug Information')#debugLink Debug
script(type='text/template')#trackChangesPanelTemplate
#trackChangesPanel
.track-changes-side-bar
.track-changes-header
h3 Recent changes
a(href="#").track-changes-close
i.icon-remove
.change-list-area
.track-changes-diff
.track-changes-upgrade-popup(style="display: none;")
.message.show-when-owner
p You need to upgrade your plan to use the History feature.
button.btn.btn-primary.start-free-trial Start free trial
.message.show-when-not-owner
p Please ask the project owner to upgrade to use the History feature.
script(type='text/template')#trackChangesDiffTemplate
.track-changes-diff-toolbar.btn-toolbar
.change-info
.number-of-changes {{ changes }} in <strong>{{ name }}</strong>
a(href="#").restore.btn.btn-small.btn-danger Restore to before these changes
.deleted-info(style="display:none;")
strong {{ name }}
.controls
span This file has been deleted
a(href="#").restore-deleted.btn.btn-small.btn-success Restore
.track-changes-diff-editor
script(type='text/template')#changeListItemTemplate
div.track-changes-date-header {{ day }}
div.change-selectors
div.range
input(type="radio",name="fromVersion").change-selector-from
input(type="radio",name="toVersion").change-selector-to
div.change-description
div.change-time {{time}}
div.changed-docs {{docs}}
div {{{users}}}
script(type='text/template')#changeListItemUserTemplate
div(class='change-name')
div.color-square(style="background-color: hsl({{hue}}, 100%, 70%);")
span {{name}}
script(type='text/template')#changeListTemplate
ul.change-list.nav.nav-pills.nav-stacked
li.loading-changes Loading...
li.empty-message You haven't made any changes yet!
script(type='text/template')#hotKeysListTemplate
.hotkeys
h3 Common
.hotkeys-column
.hotkey
span.combination.win Ctrl + F
span.combination.mac Cmd + F
span.description Find (and replace)
.hotkey
span.combination.win Ctrl + Enter
span.combination.mac Cmd + Enter
span.description Compile
.hotkey
span.combination.win Ctrl + /
span.combination.mac Cmd + /
span.description Toggle Comment
.hotkeys-column
.hotkey
span.combination.win Ctrl + Z
span.combination.mac Cmd + Z
span.description Undo
.hotkey
span.combination.win Ctrl + Y
span.combination.mac Cmd + Y
span.description Redo
.clear
h3 Navigation
.hotkeys-column
.hotkey
span.combination.win Ctrl + Home
span.combination.mac Cmd + Home
span.description Beginning of document
.hotkey
span.combination.win Ctrl + End
span.combination.mac Cmd + End
span.description End of document
.hotkeys-column
.hotkey
span.combination.win Ctrl + L
span.combination.mac Cmd + L
span.description Go To Line
.clear
h3 Editing
.hotkeys-column
.hotkey
span.combination.win Ctrl + D
span.combination.mac Cmd + D
span.description Delete Current Line
.hotkey
span.combination.win Ctrl + A
span.combination.mac Cmd + A
span.description Select All
.hotkey
span.combination.win Tab
span.combination.mac Tab
span.description Indent Selection
.hotkeys-column
.hotkey
span.combination.win Ctrl + U
span.combination.mac Ctrl + U
span.description To Uppercase
.hotkey
span.combination.win Ctrl + Shift + U
span.combination.mac Ctrl + Shift + U
span.description To Lowercase
.clear

View file

@ -456,11 +456,10 @@ define [
# modified during this session. Otherwise, tags which are empty
# when loading the page are not shown.
tag.project_ids.length > 0 or !!tag.showWhenEmpty
App.controller "TagListItemController", ($scope) ->
$scope.selectTag = () ->
$scope.selectTag = (tag) ->
$scope._clearTags()
$scope.tag.selected = true
tag.selected = true
$scope.setFilter("tag")
App.controller "TagDropdownItemController", ($scope) ->

View file

@ -58,10 +58,6 @@
width: 400px;
margin-left: -200px;
}
.progress {
background-color: white;
border: 1px solid @toolbar-border-color;
}
}
.loading-panel {

View file

@ -40,7 +40,7 @@ ul.folders-menu {
color: #333;
padding: (@line-height-computed / 4);
}
}
}
li.active {
//border-right: 4px solid @red;
a {
@ -53,6 +53,9 @@ ul.folders-menu {
}
}
}
li > a.small {
color: @gray;
}
h2 {
margin-top: @line-height-computed / 2;
margin-bottom: @line-height-computed / 4;
@ -60,6 +63,21 @@ ul.folders-menu {
font-weight: 500;
font-family: @font-family-sans-serif;
}
a.tag {
padding: 2px (@line-height-computed / 4);
display: inline-block;
position: relative;
i {
position: absolute;
top: 7px;
left: 6px;
}
span.name {
display: inline-block;
padding-left: 22px;
line-height: 1.4;
}
}
}
form.project-search {
@ -125,6 +143,9 @@ ul.project-list {
margin-left: @line-height-computed / 4;
position: relative;
top: -2px;
padding-top: 0.25em;
display: inline-block;
color: white;
}
}
}

View file

@ -30,6 +30,7 @@
margin-bottom: @line-height-computed;
background-color: @progress-bg;
border-radius: @border-radius-base;
border: 1px solid @progress-border-color;
.box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
}

View file

@ -599,7 +599,8 @@
//##
//** Background color of the whole progress component
@progress-bg: #f5f5f5;
@progress-bg: white;
@progress-border-color: @gray-lighter;
//** Progress bar text color
@progress-bar-color: #fff;