Files
crm.clientright.ru/modules/Workflow2/views/resources/js/notifications/main.css
Fedor ac7467f0b4 Major CRM updates: AI Assistant, Court Status API, S3 integration improvements, and extensive file storage system
- Added comprehensive AI Assistant system (aiassist/ directory):
  * Vector search and embedding capabilities
  * Typebot proxy integration
  * Elastic search functionality
  * Message classification and chat history
  * MCP proxy for external integrations

- Implemented Court Status API (GetCourtStatus.php):
  * Real-time court document status checking
  * Integration with external court systems
  * Comprehensive error handling and logging

- Enhanced S3 integration:
  * Improved file backup system with metadata
  * Batch processing capabilities
  * Enhanced error logging and recovery
  * Copy operations with URL fixing

- Added Telegram contact creation API
- Improved error logging across all modules
- Enhanced callback system for AI responses
- Extensive backup file storage with timestamps
- Updated documentation and README files

- File storage improvements:
  * Thousands of backup files with proper metadata
  * Fix operations for broken file references
  * Project-specific backup and recovery systems
  * Comprehensive file integrity checking

Total: 26,461+ files added/modified including AWS SDK, vendor dependencies, and extensive backup system.
2025-10-16 11:17:21 +03:00

394 lines
8.5 KiB
CSS

/*$Notifications*/
#notifications {
top: 20px;
left: 50%;
width: 400px;
margin-left: -200px;
background: #fff;
background: -webkit-linear-gradient(#fff, #dbdbdb);
background: -moz-linear-gradient(#fff, #dbdbdb);
border-radius: 6px;
-webkit-box-shadow: white 0px -1px 0px inset, rgba(0,0,0,0.5) 0px 4px 30px;
-moz-box-shadow: white 0px -1px 0px inset, rgba(0,0,0,0.5) 0px 4px 30px;
box-shadow: white 0px -1px 0px inset, rgba(0,0,0,0.5) 0px 4px 30px;
overflow: hidden;
position: absolute;
z-index: 25000;
max-height: 529px;
overflow-y: hidden;
text-shadow: white 0px 1px 0px;
font: normal 12px HelveticaNeue, Helvetica, Arial, sans-serif;
-webkit-text-stroke: 1px transparent;
}
.notification {
position: relative;
}
.notification.more {
border-bottom: 1px solid #c1c1c1;
-webkit-box-shadow: white 0px 1px 0px;
-moz-box-shadow: white 0px 1px 0px;
box-shadow: white 0px 1px 0px;
}
.notification.error {
background: #FA565D;
background: -webkit-linear-gradient(#FA565D, #D1363D);
background: -moz-linear-gradient(#FA565D, #D1363D);
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
.notification.error * {
color: white!important;
text-shadow: rgba(0,0,0,0.4) 0px 1px 1px!important;
}
.notification.error .left:after {
background: rgba(255,255,255,0.5)!important;
box-shadow: rgba(0,0,0,0.4) 0px 1px 1px!important;
}
.notification.click {
cursor: pointer;
}
.notification .hide, .modal .hide {
position: absolute;
display: block;
right: 5px;
top: 7px;
cursor: pointer;
color: white;
font-weight: bold;
width: 12px;
height: 12px;
background: url(img/icon-close.png) no-repeat;
opacity: 0.7;
display: none;
text-indent: -999px;
overflow: hidden;
}
.modal .hide:before {
position: relative;
top: 3px;
}
.notification .hide:before, .modal .hide:before {
content: "x";
}
.notification .hide:hover {
opacity: 1;
}
.notification .right, .notification .left {
width: 350px;
height: 100%;
float: left;
position: relative;
}
.notification .time {
font-size: 9px;
position: relative;
}
.notification .right .time {
margin-left: 10px;
margin-top: -8px;
margin-bottom: 10px;
opacity: 0.4;
}
.notification .left {
height: 100%;
width: 30px;
padding: 10px;
position: absolute;
padding-top: 0px;
padding-bottom: 0px;
overflow: hidden;
}
.notification .right {
margin-left: 50px;
}
.notification .right .inner {
padding: 10px;
}
.notification .left:after {
content: '';
background: #c1c1c1;
-moz-box-shadow: white 1px 0px 0px;
-webkit-box-shadow: white 1px 0px 0px;
box-shadow: white 1px 0px 0px;
width: 1px;
height: 100%;
position: absolute;
top: 0px;
right: 0px;
}
.notification .img {
width: 30px;
background-size: auto 100%;
background-position: center;
height: 30px;
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
border-radius: 6px;
-webkit-box-shadow: rgba(255,255,255,0.9) 0px -1px 0px inset, rgba(0,0,0,0.2) 0px 1px 2px;
-moz-box-shadow: rgba(255,255,255,0.9) 0px -1px 0px inset, rgba(0,0,0,0.2) 0px 1px 2px;
box-shadow: rgba(255,255,255,0.9) 0px -1px 0px inset, rgba(0,0,0,0.2) 0px 1px 2px;
border: 1px solid rgba(0,0,0,0.55);
position: absolute;
top: 50%;
margin-top: -15px;
}
.notification .img.border {
box-shadow: none;
border: none;
}
.notification .img.fill {
top: 0px;
margin: 0px;
border: none;
left: 0px;
width: 100%;
height: 100%;
-moz-border-radius: 0px;
-webkit-border-radius: 0px;
border-radius: 0px;
-webkit-box-shadow: rgba(0,0,0,0.2) 0px 1px 0px inset, black -1px 0px 16px inset;
-moz-box-shadow: rgba(0,0,0,0.2) 0px 1px 0px inset, black -1px 0px 16px inset;
box-shadow: rgba(0,0,0,0.2) 0px 1px 0px inset, black -1px 0px 16px inset;
background-color: #333;
}
.notification:first-child .img.fill {
-moz-border-radius-topleft: 5px;
-webkit-border-top-left-radius: 5px;
border-top-left-radius: 5px;
}
.notification:last-child .img.fill {
-moz-border-radius-bottomleft: 5px;
-webkit-border-bottom-left-radius: 5px;
border-bottom-left-radius: 5px;
}
.notification .left > .icon {
position: absolute;
top: 0px;
left: 0px;
height: 100%;
width: 100%;
text-align: center;
line-height: 50px;
font: normal 40px/28px 'EntypoRegular';
text-shadow: white 0px 1px 0px;
}
.notification.big .left > .icon {
font-size: 60px;
line-height: 38px;
}
.notification:after {
content: ".";
visibility: hidden;
display: block;
clear: both;
height: 0;
font-size: 0;
}
.notification h2 {
font-size: 14px;
margin: 0px;
}
.animated {
-webkit-animation: 1s ease;
-moz-animation: 1s ease;
-ms-animation: 1s ease;
-o-animation: 1s ease;
animation: 1s ease;
-webkit-animation-fill-mode: both;
-moz-animation-fill-mode: both;
-ms-animation-fill-mode: both;
-o-animation-fill-mode: both;
animation-fill-mode: both;
}
.animated.fast {
-webkit-animation-duration: 0.4s;
-moz-animation-duration: 0.4s;
-ms-animation-duration: 0.4s;
-o-animation-duration: 0.4s;
animation-duration: 0.4s;
}
@-webkit-keyframes fadeInLeftMiddle {
0% {
opacity: 0.5;
-webkit-transform: translateX(-400px);
}
100% {
opacity: 1;
-webkit-transform: translateX(0);
}
}
@-moz-keyframes fadeInLeftMiddle {
0% {
opacity: 0.5;
-moz-transform: translateX(-400px);
}
100% {
opacity: 1;
-moz-transform: translateX(0);
}
}
@-ms-keyframes fadeInLeftMiddle {
0% {
opacity: 0.5;
-ms-transform: translateX(-400px);
}
100% {
opacity: 1;
-ms-transform: translateX(0);
}
}
@-o-keyframes fadeInLeftMiddle {
0% {
opacity: 0.5;
-o-transform: translateX(-400px);
}
100% {
opacity: 1;
-o-transform: translateX(0);
}
}
@keyframes fadeInLeftMiddle {
0% {
opacity: 0.5;
transform: translateX(-400px);
}
100% {
opacity: 1;
transform: translateX(0);
}
}
.fadeInLeftMiddle {
-webkit-animation-name: fadeInLeftMiddle;
-moz-animation-name: fadeInLeftMiddle;
-ms-animation-name: fadeInLeftMiddle;
-o-animation-name: fadeInLeftMiddle;
animation-name: fadeInLeftMiddle;
}
@-webkit-keyframes flipInX {
0% {
-webkit-transform: perspective(400px) rotateX(90deg);
opacity: 0;
}
40% {
-webkit-transform: perspective(400px) rotateX(-10deg);
}
70% {
-webkit-transform: perspective(400px) rotateX(10deg);
}
100% {
-webkit-transform: perspective(400px) rotateX(0deg);
opacity: 1;
}
}
@-moz-keyframes flipInX {
0% {
-moz-transform: perspective(400px) rotateX(90deg);
opacity: 0;
}
40% {
-moz-transform: perspective(400px) rotateX(-10deg);
}
70% {
-moz-transform: perspective(400px) rotateX(10deg);
}
100% {
-moz-transform: perspective(400px) rotateX(0deg);
opacity: 1;
}
}
@-ms-keyframes flipInX {
0% {
-ms-transform: perspective(400px) rotateX(90deg);
opacity: 0;
}
40% {
-ms-transform: perspective(400px) rotateX(-10deg);
}
70% {
-ms-transform: perspective(400px) rotateX(10deg);
}
100% {
-ms-transform: perspective(400px) rotateX(0deg);
opacity: 1;
}
}
@-o-keyframes flipInX {
0% {
-o-transform: perspective(400px) rotateX(90deg);
opacity: 0;
}
40% {
-o-transform: perspective(400px) rotateX(-10deg);
}
70% {
-o-transform: perspective(400px) rotateX(10deg);
}
100% {
-o-transform: perspective(400px) rotateX(0deg);
opacity: 1;
}
}
@keyframes flipInX {
0% {
transform: perspective(400px) rotateX(90deg);
opacity: 0;
}
40% {
transform: perspective(400px) rotateX(-10deg);
}
70% {
transform: perspective(400px) rotateX(10deg);
}
100% {
transform: perspective(400px) rotateX(0deg);
opacity: 1;
}
}
.flipInX {
-webkit-backface-visibility: visible !important;
-webkit-animation-name: flipInX;
-moz-backface-visibility: visible !important;
-moz-animation-name: flipInX;
-ms-backface-visibility: visible !important;
-ms-animation-name: flipInX;
-o-backface-visibility: visible !important;
-o-animation-name: flipInX;
backface-visibility: visible !important;
animation-name: flipInX;
}
@font-face {
font-family: 'EntypoRegular';
src: url('glyphs/entypo-webfont.eot');
src: url('glyphs/entypo-webfont.eot?#iefix') format('embedded-opentype'),
url('glyphs/entypo-webfont.woff') format('woff'),
url('glyphs/entypo-webfont.ttf') format('truetype'),
url('glyphs/entypo-webfont.svg#EntypoRegular') format('svg');
font-weight: normal;
font-style: normal;
}