Fix private response css
This commit is contained in:
parent
72a7200e77
commit
621c44e28c
|
@ -5,6 +5,7 @@ server/composer.lock
|
||||||
server/vendor
|
server/vendor
|
||||||
server/files/
|
server/files/
|
||||||
!server/files/.gitkeep
|
!server/files/.gitkeep
|
||||||
|
!server/files/.htaccess
|
||||||
server/.dbdata
|
server/.dbdata
|
||||||
server/.fakemail
|
server/.fakemail
|
||||||
server/apidoc
|
server/apidoc
|
||||||
|
|
|
@ -6,6 +6,7 @@ import API from 'lib-app/api-call';
|
||||||
|
|
||||||
import DateTransformer from 'lib-core/date-transformer';
|
import DateTransformer from 'lib-core/date-transformer';
|
||||||
import Icon from 'core-components/icon';
|
import Icon from 'core-components/icon';
|
||||||
|
import Tooltip from 'core-components/tooltip';
|
||||||
|
|
||||||
class TicketEvent extends React.Component {
|
class TicketEvent extends React.Component {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
|
@ -84,8 +85,10 @@ class TicketEvent extends React.Component {
|
||||||
<span className="ticket-event__comment-pointer" />
|
<span className="ticket-event__comment-pointer" />
|
||||||
<div className="ticket-event__comment-author">
|
<div className="ticket-event__comment-author">
|
||||||
<span className="ticket-event__comment-author-name">{this.props.author.name}</span>
|
<span className="ticket-event__comment-author-name">{this.props.author.name}</span>
|
||||||
<span className="ticket-event__comment-author-type">{i18n((this.props.author.staff) ? 'STAFF' : 'CUSTOMER')}</span>
|
<span className="ticket-event__comment-badge-container">
|
||||||
{(this.props.private*1) ? <span className="ticket-event__comment-author-type">{i18n('PRIVATE')}</span> : null}
|
<span className="ticket-event__comment-badge">{i18n((this.props.author.staff) ? 'STAFF' : 'CUSTOMER')}</span>
|
||||||
|
</span>
|
||||||
|
{(this.props.private*1) ? this.renderPrivateBadge() : null}
|
||||||
</div>
|
</div>
|
||||||
<div className="ticket-event__comment-date">{DateTransformer.transformToString(this.props.date)}</div>
|
<div className="ticket-event__comment-date">{DateTransformer.transformToString(this.props.date)}</div>
|
||||||
<div className="ticket-event__comment-content" dangerouslySetInnerHTML={{__html: this.props.content}}></div>
|
<div className="ticket-event__comment-content" dangerouslySetInnerHTML={{__html: this.props.content}}></div>
|
||||||
|
@ -172,6 +175,16 @@ class TicketEvent extends React.Component {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
renderPrivateBadge() {
|
||||||
|
return (
|
||||||
|
<span className="ticket-event__comment-badge-container">
|
||||||
|
<Tooltip content={i18n('PRIVATE_DESCRIPTION')} openOnHover>
|
||||||
|
<span className="ticket-event__comment-badge">{i18n('PRIVATE')}</span>
|
||||||
|
</Tooltip>
|
||||||
|
</span>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
renderFileRow(file) {
|
renderFileRow(file) {
|
||||||
let node = null;
|
let node = null;
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
|
|
||||||
&__comment {
|
&__comment {
|
||||||
position: relative;
|
position: relative;
|
||||||
word-break: break-all;
|
word-wrap: break-word;
|
||||||
|
|
||||||
&-pointer {
|
&-pointer {
|
||||||
right: 100%;
|
right: 100%;
|
||||||
|
@ -64,17 +64,19 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 12px;
|
padding: 12px;
|
||||||
color: $primary-black;
|
color: $primary-black;
|
||||||
|
}
|
||||||
|
|
||||||
&-type {
|
&-badge-container {
|
||||||
font-size: 10.6px;
|
margin-left: 12px;
|
||||||
padding-left: 10px;
|
}
|
||||||
color: $secondary-blue;
|
|
||||||
background-color: very-light-grey;
|
&-badge {
|
||||||
border: 2px solid;
|
font-size: 10.6px;
|
||||||
border-radius: 4px;
|
font-weight: bold;
|
||||||
padding: 4px;
|
color: $primary-blue;
|
||||||
margin-left: 12px;
|
background-color: $very-light-grey;
|
||||||
}
|
padding: 6px;
|
||||||
|
width: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-date {
|
&-date {
|
||||||
|
@ -109,10 +111,6 @@
|
||||||
.ticket-event__icon {
|
.ticket-event__icon {
|
||||||
background-color: $primary-blue;
|
background-color: $primary-blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ticket-event__comment-author-type {
|
|
||||||
color: $primary-blue;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&_circled {
|
&_circled {
|
||||||
|
@ -190,16 +188,9 @@
|
||||||
background-color: $light-yellow;
|
background-color: $light-yellow;
|
||||||
border-color: $light-yellow;
|
border-color: $light-yellow;
|
||||||
}
|
}
|
||||||
.ticket-event__comment-content {
|
|
||||||
background-color: $very-light-yellow;
|
|
||||||
border-color: $very-light-yellow;
|
|
||||||
}
|
|
||||||
.ticket-event__staff-pic {
|
.ticket-event__staff-pic {
|
||||||
background-color: $light-yellow;
|
background-color: $light-yellow;
|
||||||
border-color: $light-yellow;
|
border-color: $light-yellow;
|
||||||
}
|
}
|
||||||
.ticket-event__file {
|
|
||||||
background-color: $light-yellow;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ import Button from 'core-components/button';
|
||||||
import Message from 'core-components/message';
|
import Message from 'core-components/message';
|
||||||
import Icon from 'core-components/icon';
|
import Icon from 'core-components/icon';
|
||||||
import TextEditor from 'core-components/text-editor';
|
import TextEditor from 'core-components/text-editor';
|
||||||
|
import InfoTooltip from 'core-components/info-tooltip';
|
||||||
|
|
||||||
class TicketViewer extends React.Component {
|
class TicketViewer extends React.Component {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
|
@ -214,9 +215,11 @@ class TicketViewer extends React.Component {
|
||||||
<div className="ticket-viewer__response">
|
<div className="ticket-viewer__response">
|
||||||
<Form {...this.getCommentFormProps()}>
|
<Form {...this.getCommentFormProps()}>
|
||||||
<div className="ticket-viewer__response-title row">{i18n('RESPOND')}</div>
|
<div className="ticket-viewer__response-title row">{i18n('RESPOND')}</div>
|
||||||
<div className="ticket-viewer__actions row">
|
<div className="row">
|
||||||
{this.renderCustomResponses()}
|
<div className="ticket-viewer__response-actions">
|
||||||
{this.renderPrivate()}
|
{this.renderCustomResponses()}
|
||||||
|
{this.renderPrivate()}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="ticket-viewer__response-field row">
|
<div className="ticket-viewer__response-field row">
|
||||||
<FormField name="content" validation="TEXT_AREA" required field="textarea" fieldProps={{allowImages: this.props.allowAttachments}}/>
|
<FormField name="content" validation="TEXT_AREA" required field="textarea" fieldProps={{allowImages: this.props.allowAttachments}}/>
|
||||||
|
@ -256,17 +259,12 @@ class TicketViewer extends React.Component {
|
||||||
return customResponsesNode;
|
return customResponsesNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
renderCommentError() {
|
|
||||||
return (
|
|
||||||
<Message className="ticket-viewer__message" type="error">{i18n('TICKET_COMMENT_ERROR')}</Message>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
renderPrivate() {
|
renderPrivate() {
|
||||||
if (this.props.userStaff) {
|
if (this.props.userStaff) {
|
||||||
return (
|
return (
|
||||||
<div className="ticket-viewer__private">
|
<div className="ticket-viewer__response-private">
|
||||||
<FormField label={i18n('PRIVATE')} name="private" field="checkbox"/>
|
<FormField label={i18n('PRIVATE')} name="private" field="checkbox"/>
|
||||||
|
<InfoTooltip className="ticket-viewer__response-private-info" text={i18n('PRIVATE_DESCRIPTION')} />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
@ -274,6 +272,12 @@ class TicketViewer extends React.Component {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
renderCommentError() {
|
||||||
|
return (
|
||||||
|
<Message className="ticket-viewer__message" type="error">{i18n('TICKET_COMMENT_ERROR')}</Message>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
getCommentFormProps() {
|
getCommentFormProps() {
|
||||||
return {
|
return {
|
||||||
onSubmit: this.onSubmit.bind(this),
|
onSubmit: this.onSubmit.bind(this),
|
||||||
|
|
|
@ -10,9 +10,6 @@
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
padding: 6px 0;
|
padding: 6px 0;
|
||||||
}
|
}
|
||||||
&__private {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
&__number {
|
&__number {
|
||||||
color: white;
|
color: white;
|
||||||
|
@ -74,12 +71,25 @@
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-custom {
|
&-actions {
|
||||||
background-color: $very-light-grey;
|
background-color: $very-light-grey;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-custom {
|
||||||
padding: 20px 0 0 20px;
|
padding: 20px 0 0 20px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&-private {
|
||||||
|
padding: 20px 20px 0 0;
|
||||||
|
|
||||||
|
&-info {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
&-buttons {
|
&-buttons {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
@ -87,11 +97,4 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
&__actions {
|
|
||||||
background-color: $very-light-grey;
|
|
||||||
|
|
||||||
display:flex;
|
|
||||||
align-items:center;justify-content: space-between;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
border: 1px solid $grey;
|
border: 1px solid $grey;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
|
|
||||||
.ql-container {
|
.ql-editor {
|
||||||
min-height: 200px;
|
min-height: 200px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -184,7 +184,7 @@ export default {
|
||||||
'HIMSELF': 'himself',
|
'HIMSELF': 'himself',
|
||||||
'ADD_USER': 'Add user',
|
'ADD_USER': 'Add user',
|
||||||
'UPLOAD_FILE': 'Upload file',
|
'UPLOAD_FILE': 'Upload file',
|
||||||
'PRIVATE': 'private',
|
'PRIVATE': 'Private',
|
||||||
'ENABLE_USER': 'Enable User',
|
'ENABLE_USER': 'Enable User',
|
||||||
'DISABLE_USER': 'Disable User',
|
'DISABLE_USER': 'Disable User',
|
||||||
|
|
||||||
|
@ -301,6 +301,7 @@ export default {
|
||||||
'SMTP_SERVER_DESCRIPTION': 'The configuration of the SMTP server allows the application to send mails. If you do not configure it, no emails will be sent by OpenSupports.',
|
'SMTP_SERVER_DESCRIPTION': 'The configuration of the SMTP server allows the application to send mails. If you do not configure it, no emails will be sent by OpenSupports.',
|
||||||
'ENABLE_USER_DESCRIPTION': 'This action allows the user to sign in and create tickets.',
|
'ENABLE_USER_DESCRIPTION': 'This action allows the user to sign in and create tickets.',
|
||||||
'DISABLE_USER_DESCRIPTION': 'User will be disabled and will not be able to sign in and create tickets.',
|
'DISABLE_USER_DESCRIPTION': 'User will be disabled and will not be able to sign in and create tickets.',
|
||||||
|
'PRIVATE_DESCRIPTION': 'This response will only be seen by staff members',
|
||||||
|
|
||||||
//ERRORS
|
//ERRORS
|
||||||
'EMAIL_OR_PASSWORD': 'Email or password invalid',
|
'EMAIL_OR_PASSWORD': 'Email or password invalid',
|
||||||
|
|
|
@ -6,7 +6,7 @@ $primary-blue: #414A59;
|
||||||
$secondary-blue: #20B8c5;
|
$secondary-blue: #20B8c5;
|
||||||
|
|
||||||
$primary-yellow: #E5D151;
|
$primary-yellow: #E5D151;
|
||||||
$light-yellow: rgba(229,209,81,0.6);
|
$light-yellow: #fff19c;
|
||||||
$very-light-yellow: #ffffe0;
|
$very-light-yellow: #ffffe0;
|
||||||
|
|
||||||
$primary-green: #82CA9C;
|
$primary-green: #82CA9C;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
RewriteEngine on
|
RewriteEngine on
|
||||||
RewriteCond %{REQUEST_FILENAME} !-f
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
RewriteCond %{REQUEST_FILENAME} !-d
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
RewriteRule .* index.php [PT,L]
|
RewriteRule .* index.php [PT,L]
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Deny from all
|
Loading…
Reference in New Issue