Merge branch 'develop' of https://github.com/tainacan/tainacan into develop

This commit is contained in:
rondelly 2018-05-10 16:34:51 -03:00
commit beca0011cf
20 changed files with 6899 additions and 52 deletions

View File

@ -22,6 +22,7 @@ class Admin {
add_filter( 'admin_body_class', array( &$this, 'admin_body_class' ) ); add_filter( 'admin_body_class', array( &$this, 'admin_body_class' ) );
add_action( 'init', array( &$this, 'register_user_meta' ) ); add_action( 'init', array( &$this, 'register_user_meta' ) );
add_action( 'after_setup_theme', array( &$this, 'load_icon_font'));
} }
@ -43,6 +44,7 @@ class Admin {
add_action( 'admin_enqueue_scripts', array( &$this, 'add_admin_js' ), 90 ); add_action( 'admin_enqueue_scripts', array( &$this, 'add_admin_js' ), 90 );
} }
function login_styles_reset( $style ) { function login_styles_reset( $style ) {
if ( strpos( $style, 'wp-admin-css' ) !== false ) { if ( strpos( $style, 'wp-admin-css' ) !== false ) {
$style = null; $style = null;
@ -50,6 +52,16 @@ class Admin {
return $style; return $style;
} }
function load_icon_font() {
add_action( 'wp_enqueue_scripts', array(&$this, 'add_material_design_icon_css') );
}
function add_material_design_icon_css() {
global $TAINACAN_BASE_URL;
wp_enqueue_style( 'style', $TAINACAN_BASE_URL . '/assets/css/fonts/materialdesignicons.css' );
}
function add_admin_css() { function add_admin_css() {
global $TAINACAN_BASE_URL; global $TAINACAN_BASE_URL;

View File

@ -2,7 +2,7 @@
<div <div
class="tainacan-page-title" class="tainacan-page-title"
id="title-row"> id="title-row">
<h1>{{ pageTitle }} <span class="has-text-weight-bold">{{ isRepositoryLevel ? '' : entityName }}</span></h1> <h1>{{ pageTitle }} <span class="is-italic">{{ isRepositoryLevel ? '' : entityName }}</span></h1>
<a <a
@click="$router.go(-1)" @click="$router.go(-1)"
class="back-link is-secondary"> class="back-link is-secondary">
@ -118,7 +118,8 @@ export default {
}, },
created() { created() {
this.isRepositoryLevel = (this.$route.params.collectionId == undefined); this.isRepositoryLevel = (this.$route.params.collectionId == undefined);
this.pageTitle = this.$route.meta.title; document.title = this.$route.meta.title;
this.pageTitle = document.title;
this.arrayRealPath = this.$route.path.split("/"); this.arrayRealPath = this.$route.path.split("/");
this.arrayRealPath = this.arrayRealPath.filter((item) => item.length != 0); this.arrayRealPath = this.arrayRealPath.filter((item) => item.length != 0);

View File

@ -12,15 +12,17 @@
:key="key"> :key="key">
<p/> <p/>
<div class="has-text-weight-bold is-capitalized">{{ `${key.replace('_', ' ')}:` }}</div> <div class="has-text-weight-bold is-capitalized">
{{ `${key.replace(/_/g, ' ')}:` }}
</div>
<div v-if="key === 'thumbnail'"> <div v-if="key === 'thumbnail'">
<div class="image is-128x128"> <div class="image is-128x128">
<img :src="diff.old"> <img :src="diff.old">
</div> </div>
</div> </div>
<div <div
v-else-if="!Array.isArray(diff.old)" v-else-if="diff.old.constructor.name !== 'Array' && diff.old.constructor.name !== 'Object'"
class="content is-inline"> class="is-inline">
{{ diff.old }} {{ diff.old }}
</div> </div>
<div <div
@ -29,7 +31,6 @@
:key="ind"> :key="ind">
<div v-if="o.hasOwnProperty('mime_type') && o.mime_type.includes('image') && key === 'attachments'"> <div v-if="o.hasOwnProperty('mime_type') && o.mime_type.includes('image') && key === 'attachments'">
<article class="media"> <article class="media">
<div class="media-left bottom-space-tainacan"> <div class="media-left bottom-space-tainacan">
<p class="image is-64x64"><img :src="o.url"></p> <p class="image is-64x64"><img :src="o.url"></p>
@ -49,17 +50,18 @@
<div <div
v-else-if="key === 'fields_order' || key === 'filters_order'" v-else-if="key === 'fields_order' || key === 'filters_order'"
class="is-capitalized" class="is-capitalized">
:class="{ 'back-hlight': diff.diff_with_index.hasOwnProperty(i) }">
{{ `ID: ${o.id} Enabled: ${o.enabled ? o.enabled : 'false'}` }} {{ `ID: ${o.id} Enabled: ${o.enabled ? o.enabled : 'false'}` }}
</div> </div>
<div <div
v-else v-else
class="content is-inline is-capitalized" v-for="(e, i2) in o"
v-for="(o2, ind2) in o" :key="i2"
:key="ind2"> class="is-inline">
<div class="is-inline is-capitalized">{{ `${ind2 ? ind2.replace('_', ' ')+':' : ''} ${o2} ` }}</div> <div class="is-capitalized">
{{ `${i2.replace(/_/g, ' ')}: ${e} ` }}
</div>
</div> </div>
</div> </div>
</div> </div>
@ -79,7 +81,7 @@
<div <div
class="has-text-weight-bold is-capitalized" class="has-text-weight-bold is-capitalized"
:class="{ 'has-text-success': !diff.old, 'back-hlight': !diff.old }"> :class="{ 'has-text-success': !diff.old, 'back-hlight': !diff.old }">
{{ `${key.replace('_', ' ')}:` }} {{ `${key.replace(/_/g, ' ')}:` }}
</div> </div>
<div v-if="key === 'thumbnail'"> <div v-if="key === 'thumbnail'">
<div class="image is-128x128"> <div class="image is-128x128">
@ -135,7 +137,7 @@
<div <div
class="is-capitalized" class="is-capitalized"
:class="{ 'back-hlight': diff.diff_with_index.hasOwnProperty(i) }"> :class="{ 'back-hlight': diff.diff_with_index.hasOwnProperty(i) }">
{{ `${i2.replace('_', ' ')}: ${e} ` }} {{ `${i2.replace(/_/g, ' ')}: ${e} ` }}
</div> </div>
</div> </div>

View File

@ -13,18 +13,19 @@
:key="key"> :key="key">
<p/> <p/>
<div class="has-text-weight-bold is-capitalized">{{ `${key.replace('_', ' ')}:` }}</div> <div class="has-text-weight-bold is-capitalized">
{{ `${key.replace(/_/g, ' ')}:` }}
</div>
<div v-if="key === 'thumbnail'"> <div v-if="key === 'thumbnail'">
<div class="image is-128x128"> <div class="image is-128x128">
<img :src="diff.old"> <img :src="diff.old">
</div> </div>
</div> </div>
<div <div
v-else-if="!Array.isArray(diff.old)" v-else-if="diff.old.constructor.name !== 'Array' && diff.old.constructor.name !== 'Object'"
class="content is-inline"> class="is-inline">
{{ diff.old }} {{ diff.old }}
</div> </div>
<div <div
v-else v-else
v-for="(o, ind) in diff.old" v-for="(o, ind) in diff.old"
@ -52,17 +53,18 @@
<div <div
v-else-if="key === 'fields_order' || key === 'filters_order'" v-else-if="key === 'fields_order' || key === 'filters_order'"
class="is-capitalized" class="is-capitalized">
:class="{ 'back-hlight': diff.diff_with_index.hasOwnProperty(i) }">
{{ `ID: ${o.id} Enabled: ${o.enabled ? o.enabled : 'false'}` }} {{ `ID: ${o.id} Enabled: ${o.enabled ? o.enabled : 'false'}` }}
</div> </div>
<div <div
v-else v-else
class="content is-inline is-capitalized" v-for="(e, i2) in o"
v-for="(o2, ind2) in o" :key="i2"
:key="ind2"> class="is-inline">
<div class="is-inline is-capitalized">{{ `${ind2 ? ind2.replace('_', ' ')+':' : ''} ${o2} ` }}</div> <div class="is-capitalized">
{{ `${i2.replace(/_/g, ' ')}: ${e} ` }}
</div>
</div> </div>
</div> </div>
</div> </div>
@ -77,7 +79,7 @@
<div <div
class="has-text-weight-bold is-capitalized" class="has-text-weight-bold is-capitalized"
:class="{ 'has-text-success': !diff.old, 'back-hlight': !diff.old }"> :class="{ 'has-text-success': !diff.old, 'back-hlight': !diff.old }">
{{ `${key.replace('_', ' ')}:` }} {{ `${key.replace(/_/g, ' ')}:` }}
</div> </div>
<div v-if="key === 'thumbnail'"> <div v-if="key === 'thumbnail'">
<div class="image is-128x128"> <div class="image is-128x128">
@ -134,7 +136,7 @@
<div <div
class="is-capitalized" class="is-capitalized"
:class="{ 'back-hlight': diff.diff_with_index.hasOwnProperty(i) }"> :class="{ 'back-hlight': diff.diff_with_index.hasOwnProperty(i) }">
{{ `${i2.replace('_', ' ')}: ${e} ` }} {{ `${i2.replace(/_/g, ' ')}: ${e} ` }}
</div> </div>
</div> </div>

View File

@ -1,10 +1,9 @@
<template> <template>
<span> <span>
<div class="header-item"> <div
class="header-item"
<b-dropdown v-if="!isOnTheme">
v-if="!isOnTheme" <b-dropdown id="item-creation-options-dropdown">
id="item-creation-options-dropdown">
<button <button
class="button is-secondary" class="button is-secondary"
slot="trigger"> slot="trigger">

View File

@ -76,7 +76,7 @@ Vue.component('items-page', ItemsPage);
Vue.use(eventBusSearch, { store: store, router: routerTheme}); Vue.use(eventBusSearch, { store: store, router: routerTheme});
import ThemeItemsList from '../theme-items-list.vue' import ThemeItemsList from '../theme-items-list.vue';
new Vue({ new Vue({
el: '#tainacan-items-page', el: '#tainacan-items-page',

View File

@ -369,6 +369,10 @@
display: block; display: block;
transition: visibility ease 0.5s, display ease 0.5s; transition: visibility ease 0.5s, display ease 0.5s;
h3 {
font-size: 100%;
}
.label { .label {
font-size: 12px; font-size: 12px;
font-weight: normal; font-weight: normal;

View File

@ -2,6 +2,7 @@
<div> <div>
<div class="is-fullheight"> <div class="is-fullheight">
<div class="page-container primary-page"> <div class="page-container primary-page">
<tainacan-title />
<div class="title">{{ event.description }}</div> <div class="title">{{ event.description }}</div>
<div <div
class="level" class="level"
@ -43,6 +44,8 @@
import Split from '../../components/other/event/diff-exhibition/event-split.vue'; import Split from '../../components/other/event/diff-exhibition/event-split.vue';
import Unified from '../../components/other/event/diff-exhibition/event-unified.vue'; import Unified from '../../components/other/event/diff-exhibition/event-unified.vue';
import NoDiff from '../../components/other/event/unique-exhibition/event-nodiff.vue'; import NoDiff from '../../components/other/event/unique-exhibition/event-nodiff.vue';
import TainacanTitle from '../../components/navigation/tainacan-title.vue';
export default { export default {
name: 'EventPage', name: 'EventPage',
@ -68,7 +71,8 @@
components: { components: {
Split, Split,
Unified, Unified,
NoDiff NoDiff,
TainacanTitle,
}, },
created() { created() {
this.eventId = parseInt(this.$route.params.eventId); this.eventId = parseInt(this.$route.params.eventId);

View File

@ -81,8 +81,6 @@ $link-focus-border: $secondary;
// Placeholder // Placeholder
$text-light: $tainacan-placeholder-color; $text-light: $tainacan-placeholder-color;
// Bulma Inputs
// Table // Table
$table-head-cell-color: $gray-light; $table-head-cell-color: $gray-light;
$table-head-cell-border-width: 0 0 1px !important; $table-head-cell-border-width: 0 0 1px !important;

View File

@ -267,6 +267,9 @@ a:hover {
background-color: white; background-color: white;
border-color: $gray-light !important; border-color: $gray-light !important;
} }
&:focus {
outline: 0px;
}
} }
.button.is-small { .button.is-small {
height: 26px !important; height: 26px !important;

View File

@ -1,3 +0,0 @@
.teste {
background-color: tomato !important;
}

View File

@ -0,0 +1,4 @@
@import "../../../node_modules/bulma/sass/utilities/_all.sass"
@import "../../../node_modules/bulma/sass/elements/form.sass"
@import "../../../node_modules/bulma/sass/components/pagination.sass"
@import "../../../node_modules/bulma/sass/elements/icon.sass"

View File

@ -12,11 +12,466 @@ export default {
<style lang="scss"> <style lang="scss">
@import "./scss/theme-basics.sass";
/* Rules for sizing the icon. */
.material-icons.md-18 { font-size: 18px; }
.material-icons.md-24 { font-size: 24px; }
.material-icons.md-36 { font-size: 36px; }
.material-icons.md-48 { font-size: 48px; }
/* Rules for using icons as black on a light background. */
.material-icons.md-dark { color: rgba(0, 0, 0, 0.54); }
.material-icons.md-dark.md-inactive { color: rgba(0, 0, 0, 0.26); }
/* Rules for using icons as white on a dark background. */
.material-icons.md-light { color: rgba(255, 255, 255, 1); }
.material-icons.md-light.md-inactive { color: rgba(255, 255, 255, 0.3); }
// Tainacan custom colors
$primary: #2cb4c1;
$primary-invert: findColorInvert($primary);
$secondary: #298596;
$secondary-invert: findColorInvert($secondary);
$tertiary: #01295c;
$tertiary-invert: findColorInvert($tertiary);
$primary-light:#c1dae0;
$primary-lighter: #e6f6f8;
$primary-dark: #55A0AF;
$primary-darker: darken($primary-dark, 5%);
$success: #25a189;
$success-invert: findColorInvert($success);
$separator-color: #2b98a4;
$tainacan-input-color: #1d1d1d;
$tainacan-input-background: #e5e5e5;
$tainacan-placeholder-color: #898d8f;
$draggable-border-color: #d8d8d8;
$gray: #b1b1b1;
$gray-invert: findColorInvert($gray);
$gray-light: #898d8f;
$gray-light-invert: findColorInvert($gray-light);
$danger: #a23939;
$danger-invert: findColorInvert($danger);
.theme-items-list { .theme-items-list {
a{ color: $secondary !important }
a:hover {
cursor: pointer;
color: $secondary !important;
}
// Some components have a different style in listing pages
.button {
border-radius: 6px !important;
font-weight: normal;
padding: 2px 15px !important;
margin-top: 0px !important;
margin-bottom: 0px !important;
height: inherit !important;
box-shadow: none !important;
display: inline-flex !important;
&.is-secondary:hover, &.is-secondary:focus {
background: $secondary !important;
}
&.is-primary:hover, &.is-primary:focus {
background: $primary !important;
}
&.is-success:hover, &.is-success:focus {
background: $success !important;
}
&.is-white:hover, &.is-white:focus, &.is-outlined:hover, &.is-outlined:focus {
background: $white !important;
}
&:active {
-webkit-transform: none !important;
transform: none !important;
}
&.is-outlined {
color: #150e38 !important;
background-color: white;
border-color: $gray-light !important;
}
&:focus {
outline: 0px;
}
}
.button.is-small {
height: 26px !important;
line-height: 12px;
}
.button:not(.is-small):not(.is-medium):not(.is-large) {
height: 30px !important;
line-height: 20px !important;
font-size: 14px !important;
}
.select {
padding-top: 0px !important;
select {
border: none;
border-radius: 1px !important;
font-weight: normal;
font-size: 14px !important;
height: 30px !important;
padding: 2px 25px 2px 15px!important;
margin-top: 0px !important;
margin-bottom: 0px !important;
color: $tainacan-input-color;
option:checked, option:hover {
background-color: $primary-lighter !important;
}
&:focus, &:active {
box-shadow: none !important;
text-decoration: none !important;
}
}
&:not(.is-multiple)::after {
content: "\F35D" !important;
font: normal normal normal 24px/1 "Material Design Icons" !important;
border: none !important;
transform: none !important;
margin-top: -15px !important;
right: 10px !important;
color: $primary;
display: flex !important;
align-items: initial;
}
}
.dropdown, .autocomplete {
.dropdown-trigger{
.button {
border: none;
.icon {
color: $secondary;
align-items: start;
}
}
.button.is-primary, .button.is-secondary, .button.is-success {
.icon {
color: $white;
}
}
}
.dropdown-menu {
.dropdown-content {
border-radius: 0px !important;
.dropdown-item {
.b-checkbox { width: 100% };
&:hover {
background-color: $primary-lighter;
}
.is-small {
color: gray;
}
}
}
}
}
.taginput-container {
padding: 0 !important;
background-color: white !important;
&:focus, &:active {
border: none !important;
}
.input { margin-bottom: 0px !important; }
.input.has-selected, .input:focus, .input:active {
background-color: white;
border: 1px solid $tainacan-input-background !important;
}
.tag {
background: white;
padding-right: 0;
padding-left: 0.5em;
&.is-delete {
color: $gray-light;
&::after {
height: 30% !important;
width: 1px !important;
}
&::before {
width: 30% !important;
height: 1px !important;
}
&:hover, &:focus {
background-color: white;
color: black;
}
}
}
}
.selected-list-box {
padding: 4px 0px;
border: 1px solid $tainacan-input-background;
display: flex;
.tags {
margin-right: 8px;
}
.tag {
background: white;
padding-right: 0;
padding-left: 0.5em;
&.is-delete {
color: $gray-light;
&::after {
height: 30% !important;
width: 1px !important;
}
&::before {
width: 30% !important;
height: 1px !important;
}
&:hover, &:focus {
background-color: white;
color: black;
}
}
}
}
.switch {
input[type="checkbox"] + .check {
background-color: $gray-light;
border: 2px solid $gray-light;
width: 2.7em;
height: 1.7em;
&::before {
background-color: white;
box-shadow: none;
}
}
&:hover input[type="checkbox"]:checked + .check {
background-color: $primary-light;
}
input[type="checkbox"]:checked + .check {
border: 2px solid $secondary;
background-color: transparent;
&::before {
background-color: $secondary;
transform: translate3d(78%, 0, 0);
}
}
&:hover input[type="checkbox"] + .check {
background-color: $gray-light;
}
&:focus input[type="checkbox"] + .check,
&:focus input[type="checkbox"]:checked + .check {
box-shadow: none;
}
&.is-small {
font-size: 9px;
input[type="checkbox"] + .check {
border: 1.5px solid $gray-light;
width: 2.55em;
height: 1.7em;
&::before {
width: 1.0em;
height: 1.0em;
}
}
input[type="checkbox"]:checked + .check {
border: 1.5px solid $secondary;
&::before {
transform: translate3d(84%, 0, 0);
}
}
}
}
// .b-checkbox.checkbox {
// input[type="checkbox"] {
// box-shadow: none !important;
// }
// input[type="checkbox"] + .check {
// width: 1.0em;
// height: 1.0em;
// flex-shrink: 0;
// border-radius: 0;
// border: 1px solid $gray-light;
// transition: background 150ms ease-out;
// box-shadow: none !important;
// }
// &:focus input[type="checkbox"] + .check,
// &:active input[type="checkbox"] + .check,
// &:hover input[type="checkbox"] + .check {
// box-shadow: none !important;
// border-color: $gray-light !important;
// }
// input[type="checkbox"]:checked + .check {
// background: white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1 1'%3E%3Cpath style='fill:%23000' d='M 0.04038059,0.6267767 0.14644661,0.52071068 0.42928932,0.80355339 0.3232233,0.90961941 z M 0.21715729,0.80355339 0.85355339,0.16715729 0.95961941,0.2732233 0.3232233,0.90961941 z'%3E%3C/path%3E%3C/svg%3E") no-repeat center center !important;
// border-color: $gray-light !important;
// }
// }
// .b-radio.radio {
// input[type="radio"] + .check {
// width: 13px !important;
// height: 13px !important;
// border: 1px solid $gray-light !important;
// }
// input[type="radio"] + .check::before {
// background: black !important;
// width: 7px !important;
// height: 7px !important;
// }
// &:focus input[type="radio"] + .check,
// &:active input[type="radio"] + .check,
// &:hover input[type="radio"] + .check {
// box-shadow: none !important;
// }
// input[type="radio"]:checked + .check {
// border-color: $gray-light !important;
// }
// &:focus input[type="radio"]:checked + .check {
// box-shadow: none !important;
// }
// }
.collapse-all {
font-size: 0.75rem;
}
.collapse .collapse-trigger {
display: inline;
cursor: pointer;
.label {
vertical-align: middle;
margin-bottom: 0px;
}
}
// Tables
.table-wrapper {
.table {
tbody {
td { border-bottom: 0px solid $gray-light !important; }
}
.b-checkbox.checkbox input[type="checkbox"] + .check {
width: 0.85em !important;
height: 0.85em !important;
border-radius: 2px !important;
border: 1px solid #7a7a7a !important;
}
.th-wrap {
font-size: 12px !important;
font-weight: normal !important;
}
}
margin-bottom: 0px !important;
}
.pagination-area {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 0.85em !important;
font-weight: normal !important;
border-top: 1px solid $gray;
padding: 0em 1.0em;
color: $gray-light;
.shown-items {
flex-grow: 1;
}
.items-per-page {
flex-grow: 3;
margin-top: 0.35em;
.field-label {
flex-grow: 5;
margin-right: 0.5em;
.label {
font-size: 1em !important;
font-weight: normal !important;
color: $gray-light;
}
}
select {
font-size: 0.85em;
}
}
.pagination {
flex-grow: 1;
ul {
list-style: none;
margin-bottom: 0px;
padding: 0px;
}
&.is-small {
font-size: 0.85em;
}
a[disabled="disabled"] {
color: $gray-light;
}
.pagination-link, .pagination-previous, .pagination-next {
background-color: transparent;
color: $secondary;
border: none;
}
.pagination-link.is-current {
color: $gray-light;
}
.pagination-link::after:not(:last-child) {
content: ',';
color: $gray-light;
}
.mdi-chevron-left::before {
content: "\F40A";
font-size: 17px;
transform: rotate(180deg);
}
.mdi-chevron-right::before {
content: "\F40A";
font-size: 17px;
}
}
}
// Tabs
.tabs {
a {
font-size: 13px;
margin-bottom: -3px;
&:hover{
border-bottom-color: transparent;
}
}
li.is-active a {
border-bottom: 5px solid $primary;
color: $primary;
}
}
.button { .button {
border: none; border: none;
border-radius: 1; border-radius: 6px;
padding: 4px 16px; padding: 2px 15px;
margin-top: 0px;
margin-bottom: 0px;
display: inline-flex;
color: #1d1d1d; color: #1d1d1d;
font-size: 1.0em; font-size: 1.0em;
font-weight: normal; font-weight: normal;
@ -33,14 +488,11 @@ export default {
cursor: pointer; cursor: pointer;
background-color: white; background-color: white;
} }
.sub-header { .dropdown {
display: inline-flex;
} position: relative;
.filters-menu { vertical-align: top;
}
.table-container {
} }
} }
</style> </style>

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

View File

@ -182,8 +182,8 @@ class Collections extends Repository {
], ],
'_thumbnail_id' => [ '_thumbnail_id' => [
'map' => 'meta', 'map' => 'meta',
'title' => __( 'Featured image ID', 'tainacan' ), 'title' => __( 'Thumbnail', 'tainacan' ),
'description' => __( 'Featured image ID', 'tainacan' ) 'description' => __( 'Squared reduced-size version of a picture that helps recognizing and organizing files', 'tainacan' )
] ]
] ); ] );

View File

@ -103,8 +103,8 @@ class Items extends Repository {
], ],
'_thumbnail_id' => [ '_thumbnail_id' => [
'map' => 'meta', 'map' => 'meta',
'title' => __( 'Featured image ID', 'tainacan' ), 'title' => __( 'Thumbnail', 'tainacan' ),
'description' => __( 'Featured image ID', 'tainacan' ) 'description' => __( 'Squared reduced-size version of a picture that helps recognizing and organizing files', 'tainacan' )
] ]
] ); ] );
} }