first commit

This commit is contained in:
CHIEFSOFT\ameye
2024-06-08 17:09:23 -04:00
commit df3a033196
17887 changed files with 8637778 additions and 0 deletions
@@ -0,0 +1,92 @@
/**
* @defgroup pkp_controllers_extrasOnDemand
*/
/**
* @file styles/controllers/extrasOnDemand.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup pkp_controllers_extrasOnDemand
*
* @brief Styles for pkp_controllers_extrasOnDemand
*/
.pkp_controllers_extrasOnDemand {
display: inline-block;
> a {
position: relative;
display: block;
padding: 0 1rem 0 (4rem);
border: @bg-border;
line-height: 3rem;
text-decoration: none;
.fa {
position: absolute;
top: 0;
left: 0;
line-height: 3rem;
width: 3rem;
text-align: center;
border-right: @bg-border;
&:before {
display: inline-block;
transition: transform 0.3s;
}
}
}
> .container {
padding: 0 1rem;
max-height: 0;
transition: padding 0.3s;
overflow: hidden;
}
.toggleExtras-active {
display: none;
}
&.active {
.toggleExtras-active {
display: block;
}
.toggleExtras-inactive {
display: none;
}
> a .fa:before {
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
> .container {
padding: 1rem;
max-height: none;
border: @bg-border;
border-top: none;
overflow: auto;
}
}
> a:hover,
> a:focus,
&.active > a {
color: #fff;
background: @primary;
border-color: @primary;
.fa {
border-color: rgba(255,255,255,0.2);
}
}
}
@@ -0,0 +1,39 @@
/**
* @file styles/controllers/grid/files/grid.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup pkp_controllers_grid_files
*
* @brief Classes for files grid structure
*/
.pkp_controllers_grid_files {
.pkp_controllers_grid_files_possibleRevision {
padding: 10px;
margin: 10px;
border: 2px solid black;
background-color: #FFFFDD;
text-align: left; /* FIXME: Necessary? */
#revisedFileId, p, h5 {
margin-bottom: 10px;
}
h5 {
padding-top: 0px;
}
}
#revisionWarningIcon {
height: 30px;
width: 30px;
float: left;
}
#revisionWarningText {
margin-left: 35px;
}
}
@@ -0,0 +1,18 @@
/**
* @defgroup pkp_controllers_grid_files
*/
/**
* @file styles/controllers/grid/files/index.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup pkp_controllers_grid_files
*
* @brief Wrapper for pkp_controllers_grid_files
*/
/* File Grid Styles */
@import "lib/pkp/styles/controllers/grid/files/grid.less";
+648
View File
@@ -0,0 +1,648 @@
/**
* @file styles/controllers/grid/grid.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup pkp_controllers_grid
*
* @brief Classes for grid structure
*/
.pkp_controllers_grid {
position: relative;
font-size: @font-sml;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
border-radius: @radius;
background: @lift;
.header,
.footer {
.pkp_helpers_clear;
}
// Header
.header {
position: relative;
padding: 0 0.5rem 0 1rem;
border-bottom: @grid-border;
border-top-left-radius: @radius;
border-top-right-radius: @radius;
h4 {
display: inline-block;
font-size: @font-base;
margin: 0;
padding-top: 0.5rem;
padding-bottom: 0.5rem;
line-height: 2rem;
}
}
// Footer
.footer {
border-top: @grid-border;
padding: 0rem 0.5rem 0.5rem 1rem;
}
// Actions (header + footer )
.actions {
display: inline-block;
float: right;
margin: 0;
padding: 7px 0;
list-style: none;
li {
display: inline-block;
}
a {
&:extend(.pkp_button);
}
}
// Search filter
.pkp_linkaction_search {
padding: 0 1px; // 1px prevents aliased icon from getting clipped at the edge
&:before {
.fa();
content: @fa-var-search;
margin-right: 0.5em;
}
&.is_open {
background: @lift;
border-color: @primary;
&:before {
content: @fa-var-caret-up;
}
}
}
// Search filter
.filter {
padding: 1rem;
font-size: @font-sml;
label {
font-size: @font-sml;
font-weight: @normal;
font-style: italic;
}
.section {
margin-bottom: 0.5rem;
&:last-child {
margin-bottom: 0;
}
}
.pkp_controllers_extrasOnDemand {
> a {
line-height: 2rem;
padding-left: 3rem;
}
> a .fa {
line-height: 2rem;
width: 2rem;
height: 2rem;
}
}
.pkp_spinner {
float: right;
}
}
// Grid rows
table {
width: 100%;
border-collapse: collapse;
}
tr {
position: static;
}
// Content rows only
.gridRow:not(:first-child) {
border-top: @grid-border;
}
th,
td {
padding-left: 1rem;
padding-right: 1rem;
vertical-align: top;
}
thead {
font-size: @font-tiny;
line-height: 16px;
color: @text-light-rgba;
th {
box-shadow: inset 0 -1px 0 @grid-border-color;
padding-top: 0.5rem;
padding-bottom: 0.5rem;
font-weight: @normal;
}
// Go ahead and remove header columns when there's only one column
// per header
th:first-child:last-child {
&:extend(.pkp_screen_reader all);
}
}
td {
position: relative;
padding-top: 0.5rem;
padding-bottom: calc(~"0.5rem - 1px");
line-height: @line-base;
}
// Empty row
.empty td {
padding: 0.5rem 0;
font-size: @font-sml;
font-style: italic;
line-height: @line-base;
color: @text-light;
color: @text-light-rgba;
text-align: center;
}
// Expand/collapse row actions
.has_extras td:first-child,
.row_controls td:first-child {
padding-left: 2rem;
}
.show_extras,
.hide_extras {
position: absolute;
top: 0.5rem; // matches td padding
left: 0;
width: 2rem;
height: @line-base; // matches td line-height
line-height: @line-base;
text-align: center;
cursor: pointer;
text-decoration: none;
}
.show_extras:before {
&:extend(.pkp_caret);
&:extend(.pkp_caret_right);
margin-top: -4px;
}
.hide_extras:before {
&:extend(.pkp_caret);
&:extend(.pkp_caret_down);
}
// Ordering items
.pkp_linkaction_moveItem {
.fa();
&:before {
content: @fa-var-sort;
}
}
.ordering {
&.gridRow {
border-top: 1px dashed #ddd;
}
&:hover {
background: @grid-border-color;
}
.show_extras,
.hide_extras {
display: none;
}
.row_actions {
right: auto;
left: 0;
}
}
.order_finish_controls {
padding: 0.5rem;
text-align: right;
.saveButton {
&:extend(.pkp_button all);
}
.cancelFormButton {
&:extend(.pkp_button_offset all);
}
}
.order_message {
position: absolute;
background-color: lightGrey;
padding: 0.5em 0.5em;
display: inline-table;
top: 2em;
width: 15em;
z-index: 2;
}
// Labels within a grid cell which appear before a link action in the cell
// This is designed for submission and file IDs.
[id^="component-grid-submissions"] .first_column .label,
[id^="component-grid-pubids"] .first_column + .pkp_helpers_text_left .label,
.gridCellContainer .label.before_actions {
display: inline-block;
margin-right: 0.5em;
padding: 0 0.5em;
border: @bg-border-light;
border-radius: @radius;
font-size: @font-tiny; // extra small
}
// Additional handling of file ID labels to display file type icons
.gridCellContainer > .label .file_extension {
position: relative;
display: block;
margin: 0 -0.5em;
padding: 0 0.5em 0 2rem;
line-height: @line-sml;
&:before {
.fa();
content: @fa-var-file-o;
display: block;
position: absolute;
left: 0;
width: @line-sml;
height: @line-sml;
border-right: @bg-border-light;
line-height: @line-sml;
text-align: center;
color: @text-light;
}
&.doc:before,
&.docm:before,
&.docx:before,
&.dot:before,
&.dotm:before,
&.dotx:before {
content: @fa-var-file-word-o;
}
&.rtf:before,
&.txt:before,
&.odt:before {
content: @fa-var-file-text-o;
}
&.gif:before,
&.jpg:before,
&.jpeg:before,
&.png:before {
content: @fa-var-file-image-o;
}
&.xml:before,
&.htm:before,
&.html:before,
&.shtml:before {
content: @fa-var-file-code-o;
}
&.pdf:before {
content: @fa-var-file-pdf-o;
}
&.avi:before,
&.mov:before,
&.mkv:before {
content: @fa-var-file-video-o;
}
&.odp:before,
&.pot:before,
&.potm:before,
&.potx:before,
&.ppa:before,
&.ppam:before,
&.pps:before,
&.ppsm:before,
&.ppsmx:before,
&.ppt:before,
&.pptm:before,
&.pptx:before {
content: @fa-var-file-powerpoint-o;
}
&.mp3:before,
&.mp4:before,
&.ogg:before,
&.wma:before {
content: @fa-var-file-audio-o;
}
&.csv:before,
&.xls:before,
&.ods:before,
&.xlsb:before,
&.xlsm:before,
&.xlsx:before,
&.xlt:before,
&.xltm:before,
&.xltx:before {
content: @fa-var-file-excel-o;
}
&.zip:before {
content: @fa-var-file-archive-o;
}
}
// Infinite scroll
.scrollable {
position: relative;
max-height: 150px;
overflow: auto;
}
// Actions inline with the row
.row_actions {
position: absolute;
top: 0.5rem;
right: 0;
> a {
.fa();
width: 24px;
height: 24px;
line-height: 24px;
text-align: center;
text-decoration: none;
}
}
// Secondary row of actions
.row_controls {
display: none;
td {
line-height: @line-base;
padding-top: 3px;
padding-bottom: 3px;
}
a {
display: inline-block;
margin-right: 1em;
padding-left: 0.5em;
padding-right: 0.5em;
font-size: @font-tiny;
font-weight: @bold;
text-decoration: none;
}
}
.pkp_linkaction_disable,
.pkp_linkaction_delete,
.pkp_linkaction_remove_item ,
.pkp_linkaction_deleteFile,
.pkp_linkaction_remove,
.pkp_linkaction_deleteSection,
.pkp_linkaction_deleteGenre,
.pkp_linkaction_deleteSubmissionChecklist,
.pkp_linkaction_resetAll,
.pkp_linkaction_resetEmail,
.pkp_linkaction_removeUserGroup,
.pkp_linkaction_deleteAuthor,
.pkp_linkaction_deleteQuery,
.pkp_linkaction_deleteNote,
.pkp_linkaction_deleteGalley {
color: @no;
}
// Icons
.checked,
.notChecked {
.fa();
}
.checked:after {
content: @fa-var-check-square-o;
color: @yes;
}
.notChecked:after {
content: @fa-var-ban;
color: @no;
}
// Pagination
.gridPaging {
.pkp_helpers_clear;
padding: 0.5rem 1rem;
color: @text-light-rgba;
border-top: @grid-border;
.gridItemsPerPage {
float: left;
select {
display: inline-block;
width: auto;
height: @line-sml;
margin-left: 0.5em;
}
}
.gridPages {
float: right;
a {
&:extend(.pkp_button all);
}
}
}
// Items shown for infinite scrolling
.gridPagingScrolling {
position: relative;
color: @text-light-rgba;
text-align: center;
height: 3rem;
line-height: 3rem;
background: @grid-border-color;
border-bottom-right-radius: @radius;
border-bottom-left-radius: @radius;
.item_count {
position: absolute;
right: 1rem;
}
.pkp_linkaction_icon_more_items {
&:extend(.pkp_button_link all);
&:before {
&:extend(.pkp_caret);
&:extend(.pkp_caret_down);
position: absolute;
bottom: 6px;
left: 50%;
margin-left: -2px;
border-top-width: 4px;
}
}
.pkp_loading {
visibility: hidden;
position: absolute;
top: 0;
width: 100%;
background: @grid-border-color;
line-height: 3rem;
opacity: 0;
transition: 0.3s opacity, 0.3s visibility;
}
}
&.loading {
.gridPagingScrolling {
.pkp_loading {
visibility: visible;
opacity: 1;
}
}
}
}
// Categorized grids
.pkp_grid_category {
.gridRow:not(:first-child) {
border-top: none;
}
.gridRow.category,
.category_controls {
.label {
font-weight: @bold;
}
}
}
// Listbuilder grids
.pkp_controllers_listbuilder {
.gridRow {
.pkp_linkaction_delete {
&:before {
.fa();
content: @fa-var-times;
}
}
}
}
// File grids
[id^="component-grid-files"] {
// Headers aren't needed in file grids
thead {
&:extend(.pkp_screen_reader all);
}
.pkp_linkaction_downloadFile {
text-decoration: none;
}
[id^="component-grid-files"] td:not(.first_column),
[id^="component-grid-files"] th:not(.first_column) {
color: @text-light-rgba;
width: 50px;
}
}
// Grids without titles
.pkp_grid_no_title {
box-shadow: none;
border-bottom: @grid-border;
.header {
background: transparent;
}
thead {
background: transparent;
}
}
// Make emails wrap rather than overflow table column in the users grid
[id^="component-grid-settings-user-usergrid-"] .gridRow td:last-child .label {
word-break: break-word;
}
/* Fix strange grid float issue when placed inside subtabs */
.pkpTabs--side .pkpTab .pkp_controllers_grid .header {
max-height: 3rem;
}
// TODO check if these styles can be removed
.pkp_controllers_grid {
// See TODO at lib/pkp/templates/controllers/grid.tpl:54
.options {
float: right;
line-height: 24px;
height: 24px;
vertical-align: middle;
}
.options a {
font-size: 90%;
}
.options a:before {
margin-left: 20px;
}
// See TODO at /var/www/html/ojs/lib/pkp/templates/controllers/grid/common/cell/statusCell.tpl
a.task {
width: 100%;
text-indent: -1500px;
overflow: hidden;
display: block;
background-position: 50% 50%;
background-repeat: no-repeat;
margin: 0;
height: 24px;
}
}
// Space between two grids
div:not(:last-child) > .pkp_controllers_grid {
margin-bottom: 1rem;
}
@@ -0,0 +1,27 @@
/**
* @defgroup pkp_controllers_grid
*/
/**
* @file styles/controllers/grid/index.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup pkp_controllers_grid
*
* @brief Wrapper for pkp_controllers_grid
*/
/* Grid Styles */
@import "lib/pkp/styles/controllers/grid/grid.less";
/* Plugin grid styles */
@import "lib/pkp/styles/controllers/grid/plugins.less";
/* Query grid styles */
@import "lib/pkp/styles/controllers/grid/queries.less";
/* Notifications grid styles */
@import "lib/pkp/styles/controllers/grid/notifications.less";
@@ -0,0 +1,112 @@
/**
* @file styles/controllers/grid/notifications.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup pkp_controllers_grid_notifications
*
* @brief Classes for notification grid structure
*/
#notificationsGrid {
table {
// Prevents table from overflowing parent div
table-layout: fixed;
}
a {
font-weight: @normal;
text-decoration: none;
}
// Leave the header for screen readers but don't show it
thead {
position: absolute;
top: 0;
left: -9999px;
}
// No top border on the first task
.gridRow:first-child {
border-top: none;
}
.gridRow td:first-child {
line-height: 2rem;
}
.gridRow td:nth-child(2) {
transform: translateX(1rem); // prevent column from overlapping clickable area of checkbox
padding-left: 0;
padding-right: 0;
}
.footer {
background: transparent;
padding: 0;
}
// Override <ul> styles attached to navigation menu
.actions.btm {
float: none;
padding-left: 38px; // aligns with text of each task
text-align: left;
a {
font-weight: @bold;
}
.pkp_linkaction_deleteNotifications {
color: @offset;
}
}
.pkp_grid_no_title {
border-bottom: none;
}
.task {
.message {
display: block;
line-height: 20px;
max-height: 3em;
overflow: hidden;
}
.details {
position: relative;
display: block;
margin-right: 1.5rem;
font-size: @font-tiny;
line-height: 24px;
color: @text;
}
.acronym {
background: @lift;
padding: 0 0.5em;
border: @bg-border;
border-radius: @radius;
box-shadow: -10px 0 10px @lift;
line-height: 22px;
color: @text-light;
}
.submission {
display: block;
white-space: nowrap;
overflow: hidden;
}
&.unread {
.message {
font-weight: @bold;
}
}
}
}
@@ -0,0 +1,137 @@
/**
* @file styles/controllers/grid/plugins.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup pkp_controllers_grid
*
* @brief Classes for the plugin grid and gallery
*/
#pluginGridContainer .gridRow.category {
background: @bg;
}
#pluginGridContainer .pkp_controllers_grid .gridRow td {
word-break: break-word;
}
.pkp_plugin_details {
.pkp_helpers_clear;
.status {
float: right;
margin-left: 2rem;
margin-bottom: 2rem;
width: 40%;
border: @bg-border-light;
border-radius: @radius;
font-size: @font-tiny;
line-height: @line-tiny;
> * {
margin: 0;
padding: 1rem;
border-bottom: @bg-border-light;
&:last-child {
border-bottom: none;
}
}
}
.action_button a {
&:extend(.pkp_button all);
display: block;
text-align: center;
}
.status_notice {
font-weight: @bold;
}
.status.newer,
.status.newest {
.status_notice {
color: @yes;
}
}
.status.incompatible .status_notice {
color: @no;
}
.certifications {
&:extend(.pkp_unstyled_list all);
.label {
display: block;
font-weight: @bold;
}
}
> .maintainer,
> .url,
> .description,
> .installation {
font-size: @font-sml;
line-height: @line-sml;
}
.url {
margin-top: 1rem;
}
.description,
.installation {
margin-top: 2rem;
}
.author,
.url {
position: relative;
padding-left: 2rem;
&:before {
.fa();
position: absolute;
top: 50%;
left: 1rem;
transform: translate(-50%, -50%);
color: @text-light-rgba;
}
}
.author {
font-weight: @bold;
a {
text-decoration: none;
}
&:before {
content: @fa-var-user;
}
}
.institution {
padding-left: 2rem;
color: @text-light;
}
.url {
a {
text-decoration: none;
}
&:before {
content: @fa-var-link;
}
}
}
@@ -0,0 +1,118 @@
/**
* @file styles/controllers/grid/queries.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup pkp_controllers_query
*
* @brief Styles for the query view/edit interfaces
*/
// Viewing a query
.pkp_controllers_query {
> h4 {
margin: 0;
}
.participants {
&:extend(.pkp_unstyled_list);
margin-bottom: 2rem;
font-size: @font-sml;
}
.pkp_controllers_grid {
margin-bottom: 2rem;
}
.queryEditButtons {
> div {
display: inline-block;
}
.pkp_spinner {
opacity: 0;
}
&.is_loading {
.pkp_spinner {
opacity: 1;
}
}
}
.leave_query {
a {
&:extend(.pkp_button_offset all);
}
}
.add_note {
a {
&:extend(.pkp_button all);
}
}
#queryNotesGrid {
.first_column:not(.no_actions) {
padding-left: 32px;
}
tbody {
p:first-child {
margin-top: 0;
}
p:last-child {
margin-bottom: 0;
}
td:nth-child(2) {
font-size: @font-sml;
color: @text-light;
}
}
.label.before_actions {
display: block;
font-size: @font-base;
line-height: @line-base;
background: none;
margin: 0;
padding: 0;
border: none;
}
.pkp_linkaction_downloadFile {
position: relative;
display: inline-block;
margin: 1rem 2rem 0 1.25rem;
font-size: @font-sml;
line-height: @line-sml;
text-decoration: none;
&:before {
.fa();
content: @fa-var-file-o;
position: absolute;
top: 0;
left: -18px;
line-height: 24px;
color: @text-light-rgba;
}
}
}
}
// Adding/editing a query
#queryForm {
.pkp_controllers_grid {
margin-bottom: 0;
}
}
+191
View File
@@ -0,0 +1,191 @@
/**
* @defgroup pkp_help_panel
*/
/**
* @file styles/controllers/helpPanel.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup pkp_help_panel
*
* @brief Styles for pkp_help_panel
*/
// Hides the outer scrollbar when the help panel is visible
// Assigned to the <body> when the help panel is visible
.help_panel_is_visible {
overflow: hidden !important;
}
.pkp_help_panel {
&:extend(.pkp_modal);
background: rgba(0, 0, 0, 0.3);
z-index: 1001; // Always sit on top of other modals
&.is_visible {
&:extend(.pkp_modal.is_visible);
.panel {
.transform(translate3d(0,0,0));
}
}
.panel {
position: fixed;
right: 0;
width: 30em;
height: 100%;
max-width: 100%;
background: @lift;
cursor: auto;
overflow-y: scroll;
.transform(translate3d(100%,0,0));
-webkit-transition-property: -webkit-transform;
-moz-transition-property: -moz-transform;
transition-property: transform;
-webkit-transition-duration: 0.3s;
-moz-transition-duration: 0.3s;
transition-duration: 0.3s;
}
.header, .footer {
.pkp_helpers_clear();
font-size: @font-sml;
line-height: @line-sml;
padding: 0.75rem 1rem; // 3rem height
> a {
text-decoration: none;
}
}
.header {
background: @yes;
a {
color: rgba(255,255,255,0.8);
&:hover,
&:focus {
color: #fff;
}
}
}
.close {
float: right;
&:after {
.fa();
content: @fa-var-times;
margin-left: 0.25em;
}
}
.home {
float: left;
&:before {
.fa();
content: @fa-var-bars;
margin-right: 0.25em;
}
}
.previous {
float: left;
&:before {
.fa();
content: @fa-var-long-arrow-left;
margin-right: 0.25em;
}
}
.next {
float: right;
&:after {
.fa();
content: @fa-var-long-arrow-right;
margin-left: 0.25em;
}
}
.content {
padding: 0 1rem 2rem;
font-size: @font-sml;
line-height: 2rem;
}
.footer {
border-top: @bg-border;
}
h1,
h2 {
margin: 0 -1rem;
padding: 1rem;
background: @bg;
}
h1 {
padding: 24px 1rem; // 80px height for 1-line titles
font-size: @font-lead;
line-height: @line-lead;
font-weight: @normal;
}
h2,
h3 {
font-size: @font-base;
line-height: @line-base;
}
h4,
h5 {
font-size: @font-sml;
line-height: @line-sml;
}
h5 {
font-weight: @normal;
font-style: italic;
}
h2,
h3,
h4,
h5 {
margin-top: 2em;
}
// Quick-links within each article
h1 + ol {
padding-left: 1em;
}
&.is_loading {
&:after {
&:extend(.pkp_spinner:after);
position: absolute;
top: 50%;
right: 225px;
opacity: 1;
}
.content {
opacity: 0.6;
}
.pkp_loading {
padding: 300px 0;
text-align: center;
text-indent: -9999px;
}
}
}
+22
View File
@@ -0,0 +1,22 @@
/**
* @file styles/controllers/index.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Controllers stylesheet wrapper
*
*/
@import "lib/pkp/styles/form/index.less";
@import "lib/pkp/styles/controllers/grid/index.less";
@import "lib/pkp/styles/controllers/extrasOnDemand.less";
@import "lib/pkp/styles/controllers/informationCenter.less";
@import "lib/pkp/styles/controllers/listbuilder.less";
@import "lib/pkp/styles/controllers/modal.less";
@import "lib/pkp/styles/controllers/helpPanel.less";
@import "lib/pkp/styles/controllers/notification.less";
@import "lib/pkp/styles/controllers/plupload.less";
@import "lib/pkp/styles/controllers/revealMore.less";
@import "lib/pkp/styles/controllers/tab.less";
@@ -0,0 +1,76 @@
/**
* @file styles/controllers/informationCenter.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup pkp_controllers_informationCenter
*
* @brief Information Center styles
*/
.pkp_controllers_informationCenter {
.pkp_notes_list {
margin-bottom: 2rem;
p:first-child {
margin-top: 0;
}
p:last-child {
margin-bottom: 0;
}
}
.note {
margin-bottom: 2rem;
font-size: @font-sml;
line-height: @line-sml;
&:last-child {
margin-bottom: 0;
}
.details {
.pkp_helpers_clear;
margin-bottom: 1rem;
border-bottom: @bg-border;
line-height: 3rem - 1;
.user {
margin-right: 0.5em;
font-weight: @bold;
}
.date {
color: @text-light;
}
.actions {
float: right;
> * {
display: inline-block;
margin-left: 1rem;
}
}
}
// Unread notes
&.new {
.message {
font-weight: @bold;
}
}
}
.no_notes {
font-size: @font-sml;
}
.pkp_controllers_extrasOnDemand {
margin-bottom: 2rem;
}
}
@@ -0,0 +1,64 @@
/**
* @file styles/controllers/listbuilder/listbuilder.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup pkp_controllers_listbuilder
*
* @brief Classes for listbuilder structure
*/
.pkp_controllers_listbuilder {
thead,
tr.empty {
border-bottom: @grid-border-color;
}
.wrapper {
.pkp_helpers_clear;
}
.list_wrapper {
float: left;
padding-right: 1rem;
// Make room for sorting icon
tr:not(.empty) td:first-child {
padding-left: 2rem;
}
}
.list_header {
margin-right: -1rem;
padding: 0 1em;
background: @grid-border-color;
color: @text-light-rgba;
}
// Ensure grid cells are clickable to enter edit mode even if empty
.gridCellDisplay {
min-height: @line-base;
cursor: pointer;
}
// Editable grid row styles
// Default: Edit not displayed
.gridCellEdit {
display: none;
}
.gridRowEdit {
.gridCellEdit {
display: block;
}
.row_actions,
.gridCellDisplay {
display: none;
}
}
}
+202
View File
@@ -0,0 +1,202 @@
/**
* @defgroup pkp_modal
*/
/**
* @file styles/controllers/modal.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup pkp_modal
*
* @brief Styles for pkp_modal
*/
// Hides the outer scrollbar when a modal is visible
// Assigned to the <body> when a modal is visible
.modal_is_visible {
overflow: hidden !important;
}
// Screen behind modal
.pkp_modal {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
z-index: 1000;
overflow-y: auto;
cursor: pointer;
visibility: hidden;
opacity: 0;
-webkit-transition: opacity 0.3s, visibility 0.3s;
-moz-transition: opacity 0.3s, visibility 0.3s;
transition: opacity 0.3s, visibility 0.3s;
&.is_visible {
visibility: visible;
opacity: 1;
}
}
// Modal
.pkp_modal_panel {
position: relative;
width: 90%;
max-width: 50em;
background: @lift;
margin: 1rem auto;
cursor: auto;
border-radius: 3px;
.transform(translateY(-30px));
-webkit-transition-property: -webkit-transform;
-moz-transition-property: -moz-transform;
transition-property: transform;
-webkit-transition-duration: 0.3s;
-moz-transition-duration: 0.3s;
transition-duration: 0.3s;
}
// Modal when visible
.is_visible .pkp_modal_panel {
-webkit-transform: translateY(0);
-moz-transform: translateY(0);
-ms-transform: translateY(0);
-o-transform: translateY(0);
transform: translateY(0);
}
.pkp_modal_panel {
// Height and width of the close button (matches height of header)
@pkp_modal_panel_close_box_len: 4rem;
> .header,
> .content {
padding: 1rem;
}
> .header {
min-height: 3rem;
border-top-left-radius: @radius;
border-top-right-radius: @radius;
font-weight: @bold;
line-height: 3rem;
padding: 0 3rem 0 1rem;
}
> .close {
position: absolute;
top: 0.5rem;
right: 0.5rem;
width: 2rem;
height: 2rem;
line-height: 2rem;
font-size: 24px;
border-top-right-radius: @radius;
text-align: center;
text-decoration: none;
color: @text;
border: 1px solid transparent;
&:hover {
color: @primary;
}
&:focus {
outline: 0;
border-radius: @radius;
border: 1px solid @primary;
}
}
> .footer {
padding: 1rem;
border-bottom-left-radius: @radius;
border-bottom-right-radius: @radius;
text-align: right;
.ok {
&:extend(.pkp_button all);
}
.cancel {
&:extend(.pkp_button_offset all);
margin-inline-start: 0.5rem;
}
}
}
// Confirmation modals
.pkp_modal_confirmation {
max-width: 30em;
.content {
font-size: @font-sml;
line-height: @line-sml;
}
}
// Tabs
.pkp_modal {
.ui-tabs-nav {
margin: -1rem -1rem 0;
padding: 1rem 1rem 0;
background: transparent;
border-bottom: 1px solid @bg-border-color-light;
a {
position: relative;
top: 1px;
border: 1px solid transparent;
border-bottom: none;
background: transparent;
}
.ui-state-active a {
border-left-color: @bg-border-color-light;
border-right-color: @bg-border-color-light;
background: @lift;
}
}
.ui-tabs-panel .pkp_help_tab {
border: 1px solid @bg-border-color-light;
border-bottom: none;
top: calc(~"(2rem - 1px) * -1");
}
}
.pkp_modal .ui-tabs-panel {
padding: 2rem 0 0;
border: none;
}
.modal_buttons {
margin-top: 2rem;
.pkp_spinner {
&:extend(.pkp_form .pkp_spinner);
}
.cancel {
&:extend(.pkp_button_offset);
margin-left: 0.5em;
}
}
// Help link inside modals
.pkp_modal_panel > .content > .pkp_help_link {
top: 0.5rem;
}
// Vue.js forms inside modals
.pkp_modal .pkpForm {
margin: -1rem;
}
@@ -0,0 +1,77 @@
/**
* @defgroup pkp_controllers_notification
*/
/**
* @file styles/controllers/notification.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup pkp_controllers_notification
*
* @brief Styles for pkp_controllers_notification
*/
.pkp_notification {
position: relative;
.title {
display: block;
font-weight: @bold;
}
// Override .pkp_form .description
.description {
color: @text;
color: @text-rgba;
}
> div {
position: relative;
margin-bottom: 2rem;
padding: 1rem;
padding-left: 1.5rem;
border: @bg-border;
font-size: @font-sml;
line-height: @line-sml;
&:before {
content: '';
display: block;
position: absolute;
top: -1px;
bottom: -1px;
left: -1px;
width: 0.5rem;
background: @primary;
}
}
> .notifySuccess:before {
background: @yes;
}
> .notifyWarning:before {
background: @warn;
}
> .notifyError:before,
> .notifyFormError:before,
> .notifyForbidden:before {
background: @no;
}
}
// in-place notifications that appear above the main page content
// example: upgrade notices
.pkp_structure_main > .pkp_notification {
padding: 0 2rem 2rem;
background: @bg;
> div {
margin-bottom: 0;
background: @lift;
}
}
+137
View File
@@ -0,0 +1,137 @@
/**
* @file styles/plupload.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Styles for the plupload plugin used in the file upload handler
*/
.pkp_controller_fileUpload {
&.loading {
.pkp_uploader_drop_zone {
display: none;
}
}
&:not(.loading) {
.pkp_uploader_loading {
display: none;
}
}
.pkp_uploader_drop_zone_label,
.pkp_uploader_details,
.pkpUploaderError,
.pkpUploaderFilename,
&.complete .pkpUploaderProgress,
&.complete .pkpUploaderFilename,
&:not(.complete) .pkp_uploader_button_change,
&.complete .pkp_uploader_progress_bar_wrapper,
&.uploading .pkp_uploader_button,
&.complete .pkp_uploader_button_add {
display: none;
opacity: 0;
.transform(opacity 0.3s);
}
&.complete .pkpUploaderFilename,
&.complete .pkp_uploader_button_change {
display: block;
opacity: 1;
}
&.error .pkpUploaderError,
&.uploading .pkp_uploader_details,
&.complete .pkp_uploader_details,
&.waiting .pkp_uploader_drop_zone_label {
display: inline-block;
opacity: 1;
}
}
.pkp_uploader_drop_zone {
padding: 11px 1rem;
border: 2px dashed @bg;
font-size: @font-sml;
line-height: @line-sml;
color: @text-light;
min-height: 34px; // button height
}
.pkpUploaderError,
.pkp_uploader_details,
.pkp_uploader_drop_zone_label {
padding: 5px 0;
}
.pkp_uploader_button {
float: right;
&.in_focus {
&:extend(.pkp_button:hover all);
}
}
.pkpUploaderProgress {
display: inline-block;
min-width: 3rem;
text-align: right;
}
.pkp_uploader_progress_bar_wrapper {
position: absolute;
top: 50%;
left: 1rem;
right: 1rem;
transform: translateY(-50%);
height: 0.5rem;
background: @bg;
border-radius: 0.25rem;
}
.pkpUploaderProgressBar {
position: absolute;
top: 0;
left: 0;
min-width: 0.5rem;
height: 0.5rem;
background: @primary;
border-radius: 0.25rem;
}
.pkpUploaderError {
color: @no;
}
.complete {
.pkp_uploader_drop_zone {
border-style: solid;
background: @bg;
color: @text;
}
.pkpUploaderFilename:before {
.fa();
content: @fa-var-check;
margin-right: 1em;
color: @yes;
}
}
.uploading {
.pkp_uploader_drop_zone {
border-style: solid;
}
}
// plupload's input element that's placed over the upload button
.moxie-shim input {
cursor: pointer;
}
@@ -0,0 +1,58 @@
/**
* @file styles/controllers/revealMore.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup pkp_controllers_revealMore
*
* @brief Reveal more widget styles
*/
.pkp_controllers_revealMore {
position: relative;
.reveal_more_wrapper {
display: none;
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 2rem;
width: 100%;
background: #fff;
border-top: @bg-border;
text-align: center;
button {
border: none;
background: #fff;
color: @primary;
font-size: @font-sml;
line-height: @line-sml;
font-weight: @bold;
&:hover,
&:focus {
color: @bg-anchor;
}
&:before {
&:extend(.pkp_caret);
&:extend(.pkp_caret_down);
position: relative;
top: 1px;
margin-right: 0.5em;
}
}
}
&.isHidden {
overflow-y: hidden;
.reveal_more_wrapper {
display: block;
}
}
}
+172
View File
@@ -0,0 +1,172 @@
/**
* @file styles/controllers/tab.less
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup pkp_controllers_tab
*
* @brief Styles for pkp_controllers_tab
*/
.ui-tabs-nav {
&:extend(.pkp_unstyled_list);
padding: 0 96px 0 0; // 96 = space for help tab
background: @bg;
font-size: @font-sml;
li {
position: relative;
display: inline-block;
a {
display: block;
padding: 0 1rem;
line-height: 3rem;
font-weight: @bold;
text-decoration: none;
&:before {
content: '';
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
width: 25%;
height: 2px;
background: transparent;
transition: all 0.2s;
}
}
&:focus,
&:focus a,
a:hover,
a:focus {
outline: 0;
}
&:focus a:before,
a:hover:before,
a:focus:before {
background: @primary-lift;
width: 100%;
}
}
.ui-state-active {
background: @lift;
a {
color: @text-light-rgba;
cursor: default;
&:before {
width: 100%;
background: @primary;
border-top-left-radius: @radius;
border-top-right-radius: @radius;
}
}
}
// Close button
.close {
.fa();
position: absolute;
top: 50%;
left: 100%;
width: 2rem;
height: 2rem;
overflow: hidden;
margin-top: -1rem;
padding: 0;
line-height: 2rem;
color: @no;
text-decoration: none;
&:before {
content: @fa-var-minus-circle;
display: block;
width: 2rem;
height: 2rem;
text-align: center;
}
&:hover {
border: none;
}
}
// Win a specificity battle
.ui-state-active .close {
color: @no;
cursor: pointer;
}
}
.ui-tabs-panel {
.pkp_helpers_clear;
position: relative;
padding: 2rem;
background: @lift;
}
/**
* Nested tabs
*
* If tabs appear inside of a tab panel, use a different visual paradigm to
* better distinguish the hierarchy.
*/
@pkp_nested_tab_line_height: calc(~"3rem - 2px"); // account for border
.ui-tabs-panel {
.ui-tabs-nav {
margin-left: -2rem;
margin-right: -2rem;
margin-bottom: 2rem;
padding-left: 2rem;
border-bottom: @bg-border;
font-size: @font-sml;
line-height: @pkp_nested_tab_line_height;
background: transparent;
li {
top: 1px;
border: 1px solid transparent;
border-top: none;
a {
padding: 0 1rem;
line-height: @pkp_nested_tab_line_height;
&:before {
top: -2px;
}
}
}
.ui-state-active {
border-color: @bg-border-color;
border-bottom-color: transparent;
border-top: none;
a {
&:before {
left: -1px;
right: -1px;
transform: none;
width: auto;
}
}
}
}
.ui-tabs-panel {
padding: 0;
border: none;
background: transparent;
}
}