feat: Geutebruck GeViScope/GeViSoft Action Mapping System - MVP
This MVP release provides a complete full-stack solution for managing action mappings in Geutebruck's GeViScope and GeViSoft video surveillance systems. ## Features ### Flutter Web Application (Port 8081) - Modern, responsive UI for managing action mappings - Action picker dialog with full parameter configuration - Support for both GSC (GeViScope) and G-Core server actions - Consistent UI for input and output actions with edit/delete capabilities - Real-time action mapping creation, editing, and deletion - Server categorization (GSC: prefix for GeViScope, G-Core: prefix for G-Core servers) ### FastAPI REST Backend (Port 8000) - RESTful API for action mapping CRUD operations - Action template service with comprehensive action catalog (247 actions) - Server management (G-Core and GeViScope servers) - Configuration tree reading and writing - JWT authentication with role-based access control - PostgreSQL database integration ### C# SDK Bridge (gRPC, Port 50051) - Native integration with GeViSoft SDK (GeViProcAPINET_4_0.dll) - Action mapping creation with correct binary format - Support for GSC and G-Core action types - Proper Camera parameter inclusion in action strings (fixes CrossSwitch bug) - Action ID lookup table with server-specific action IDs - Configuration reading/writing via SetupClient ## Bug Fixes - **CrossSwitch Bug**: GSC and G-Core actions now correctly display camera/PTZ head parameters in GeViSet - Action strings now include Camera parameter: `@ PanLeft (Comment: "", Camera: 101028)` - Proper filter flags and VideoInput=0 for action mappings - Correct action ID assignment (4198 for GSC, 9294 for G-Core PanLeft) ## Technical Stack - **Frontend**: Flutter Web, Dart, Dio HTTP client - **Backend**: Python FastAPI, PostgreSQL, Redis - **SDK Bridge**: C# .NET 8.0, gRPC, GeViSoft SDK - **Authentication**: JWT tokens - **Configuration**: GeViSoft .set files (binary format) ## Credentials - GeViSoft/GeViScope: username=sysadmin, password=masterkey - Default admin: username=admin, password=admin123 ## Deployment All services run on localhost: - Flutter Web: http://localhost:8081 - FastAPI: http://localhost:8000 - SDK Bridge gRPC: localhost:50051 - GeViServer: localhost (default port) Generated with Claude Code (https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
After Width: | Height: | Size: 659 B |
|
After Width: | Height: | Size: 575 B |
|
After Width: | Height: | Size: 531 B |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 529 B |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 252 B |
|
After Width: | Height: | Size: 238 B |
|
After Width: | Height: | Size: 192 B |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 980 B |
|
After Width: | Height: | Size: 425 B |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 274 B |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 610 B |
@@ -0,0 +1,907 @@
|
||||
/*<meta />*/
|
||||
|
||||
/* Expanding */
|
||||
|
||||
.MCExpanding
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCExpanding_Open
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCExpanding_Closed
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCExpandingHead
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCExpandingHotSpot
|
||||
{
|
||||
cursor: pointer;
|
||||
background-position: left center;
|
||||
background-repeat: no-repeat;
|
||||
padding-left: 18px;
|
||||
}
|
||||
|
||||
.MCExpanding_Open .MCExpandingHotSpot
|
||||
{
|
||||
background-image: url("Images/minus.png");
|
||||
}
|
||||
|
||||
.MCExpanding_Closed .MCExpandingHotSpot
|
||||
{
|
||||
background-image: url("Images/plus.png");
|
||||
}
|
||||
|
||||
.MCExpandingBody
|
||||
{
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
.MCExpanding_Open .MCExpandingBody
|
||||
{
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.MCExpanding_Closed .MCExpandingBody
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
/**/
|
||||
/* DropDown */
|
||||
|
||||
.MCDropDown
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCDropDown_Open
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCDropDown_Closed
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCDropDownHead
|
||||
{
|
||||
display: block;
|
||||
}
|
||||
|
||||
.MCDropDownHotSpot
|
||||
{
|
||||
cursor: pointer;
|
||||
background-position: left center;
|
||||
background-repeat: no-repeat;
|
||||
padding-left: 18px;
|
||||
}
|
||||
|
||||
.MCDropDown_Open .MCDropDownHotSpot
|
||||
{
|
||||
background-image: url("Images/minus.png");
|
||||
}
|
||||
|
||||
.MCDropDown_Closed .MCDropDownHotSpot
|
||||
{
|
||||
background-image: url("Images/plus.png");
|
||||
}
|
||||
|
||||
.MCDropDownBody
|
||||
{
|
||||
margin-left: 18px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.MCDropDown_Open .MCDropDownBody
|
||||
{
|
||||
display: block;
|
||||
}
|
||||
|
||||
.MCDropDown_Closed .MCDropDownBody
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
/**/
|
||||
/* Toggler */
|
||||
|
||||
.MCToggler
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCToggler_Open
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCToggler_Closed
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCTogglerHead
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCTogglerHotSpot
|
||||
{
|
||||
cursor: pointer;
|
||||
background-position: left center;
|
||||
background-repeat: no-repeat;
|
||||
padding-left: 18px;
|
||||
}
|
||||
|
||||
.MCToggler_Open.MCTogglerHotSpot
|
||||
{
|
||||
background-image: url("Images/minus.png");
|
||||
}
|
||||
|
||||
.MCToggler_Closed.MCTogglerHotSpot
|
||||
{
|
||||
background-image: url("Images/plus.png");
|
||||
}
|
||||
|
||||
/**/
|
||||
/* Text Popup */
|
||||
|
||||
.MCTextPopup
|
||||
{
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.MCTextPopupHotSpot
|
||||
{
|
||||
cursor: pointer;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.MCTextPopup_Open.MCTextPopupHotSpot
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCTextPopup_Closed.MCTextPopupHotSpot
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCTextPopupBody
|
||||
{
|
||||
color: #EBEBEB;
|
||||
font-weight: normal;
|
||||
line-height: 1.5em;
|
||||
background-color: rgba(0, 0, 0, .85);
|
||||
width: 200px;
|
||||
padding: 11px 15px;
|
||||
-webkit-box-shadow: 0 4px 10px #8B8B8B;
|
||||
-moz-box-shadow: 0 4px 10px #8B8B8B;
|
||||
box-shadow: 0px 2px 8px 0px rgba(0,0,0,.4);
|
||||
border: none !important;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
position: absolute;
|
||||
left: 20px;
|
||||
white-space: normal;
|
||||
filter: alpha( opacity = 0 );
|
||||
opacity: 0.0;
|
||||
z-index: 10001;
|
||||
}
|
||||
|
||||
.MCTextPopup_Open .MCTextPopupBody
|
||||
{
|
||||
display: block;
|
||||
}
|
||||
|
||||
.MCTextPopup_Closed .MCTextPopupBody
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.MCTextPopupArrow
|
||||
{
|
||||
content: "";
|
||||
border: solid 13px transparent;
|
||||
border-bottom-color: rgba(0, 0, 0, .85);
|
||||
border-bottom-width: 13px;
|
||||
border-top: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
margin-top: -13px;
|
||||
margin-left: -13px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.MCTextPopupBodyBottom .MCTextPopupArrow
|
||||
{
|
||||
border: solid 13px transparent;
|
||||
border-top-color: rgba(0, 0, 0, .85);
|
||||
border-top-width: 13px;
|
||||
border-bottom: none;
|
||||
top: auto;
|
||||
bottom: -13px;
|
||||
}
|
||||
|
||||
/**/
|
||||
|
||||
.link-list-popup
|
||||
{
|
||||
color: #707070;
|
||||
line-height: normal;
|
||||
background-color: #FFF;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-webkit-box-shadow: 0 4px 10px #8B8B8B;
|
||||
-moz-box-shadow: 0 4px 10px #8B8B8B;
|
||||
box-shadow: 0 4px 10px #8B8B8B;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.link-list-popup ul
|
||||
{
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
.link-list-popup ul li
|
||||
{
|
||||
padding: 5px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.link-list-popup ul li:hover
|
||||
{
|
||||
color: #000;
|
||||
background-color: #E5EFF7;
|
||||
}
|
||||
|
||||
.link-list-popup ul li a
|
||||
{
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* buttons */
|
||||
|
||||
.buttons
|
||||
{
|
||||
position: absolute;
|
||||
top: 7px;
|
||||
left: 9px;
|
||||
right: 9px;
|
||||
}
|
||||
|
||||
.inline-buttons
|
||||
{
|
||||
position: static;
|
||||
}
|
||||
|
||||
.button-group-container-left
|
||||
{
|
||||
float: left;
|
||||
}
|
||||
|
||||
.button-group-container-right
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
|
||||
.button-group
|
||||
{
|
||||
border-right: solid 1px #E1E1E1;
|
||||
float: left;
|
||||
border-right-color: #e1e1e1;
|
||||
}
|
||||
|
||||
.button-group:last-child
|
||||
{
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.button
|
||||
{
|
||||
position: relative;
|
||||
/* need this to workaround CSS3PIE known issue: http://css3pie.com/documentation/known-issues/#z-index */
|
||||
margin-left: 8px;
|
||||
float: left;
|
||||
cursor: pointer;
|
||||
border: solid 1px #E1E1E1;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
-moz-box-sizing: content-box;
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
padding: 0;
|
||||
background: #ececec;
|
||||
background: -moz-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#ececec));
|
||||
background: -webkit-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: -o-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: -ms-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
-pie-background: linear-gradient(#ffffff, #ececec);
|
||||
box-shadow: 0px 1px 0px #ffffff;
|
||||
-webkit-box-shadow: 0px 1px 0px #ffffff;
|
||||
-moz-box-shadow: 0px 1px 0px #ffffff;
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
padding-top: 0px;
|
||||
padding-bottom: 0px;
|
||||
border-top: solid 1px #e1e1e1;
|
||||
border-right: solid 1px #e1e1e1;
|
||||
border-bottom: solid 1px #e1e1e1;
|
||||
border-left: solid 1px #e1e1e1;
|
||||
border-top-left-radius: 3px;
|
||||
border-top-right-radius: 3px;
|
||||
border-bottom-right-radius: 3px;
|
||||
border-bottom-left-radius: 3px;
|
||||
background-color: #ececec;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.button:last-child
|
||||
{
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.button-group:first-child .button:first-child
|
||||
{
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.button-group:last-child .button:last-child
|
||||
{
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.button[disabled],
|
||||
.current-topic-index-button.disabled
|
||||
{
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.previous-topic-button
|
||||
{
|
||||
/* Old browsers */
|
||||
/* FF3.6+ */
|
||||
/* Chrome,Safari4+ */
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
/* Opera11.10+ */
|
||||
/* IE10+ */
|
||||
/* W3C */
|
||||
/*PIE*/
|
||||
background: #ececec url('Images/navigate-previous.png') no-repeat center center;
|
||||
background: url('Images/navigate-previous.png') no-repeat center center, -moz-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: url('Images/navigate-previous.png') no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#ececec));
|
||||
background: url('Images/navigate-previous.png') no-repeat center center, -webkit-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: url('Images/navigate-previous.png') no-repeat center center, -o-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: url('Images/navigate-previous.png') no-repeat center center, -ms-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: url('Images/navigate-previous.png') no-repeat center center, linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
-pie-background: url('Skins/Default/Stylesheets/Images/navigate-previous.png') no-repeat center center, linear-gradient(#ffffff, #ececec);
|
||||
box-shadow: 0px 1px 0px #ffffff;
|
||||
-webkit-box-shadow: 0px 1px 0px #ffffff;
|
||||
-moz-box-shadow: 0px 1px 0px #ffffff;
|
||||
tooltip: Navigate previous;
|
||||
}
|
||||
|
||||
.next-topic-button
|
||||
{
|
||||
/* Old browsers */
|
||||
/* FF3.6+ */
|
||||
/* Chrome,Safari4+ */
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
/* Opera11.10+ */
|
||||
/* IE10+ */
|
||||
/* W3C */
|
||||
/*PIE*/
|
||||
background: #ececec url('Images/navigate-next.png') no-repeat center center;
|
||||
background: url('Images/navigate-next.png') no-repeat center center, -moz-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: url('Images/navigate-next.png') no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#ececec));
|
||||
background: url('Images/navigate-next.png') no-repeat center center, -webkit-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: url('Images/navigate-next.png') no-repeat center center, -o-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: url('Images/navigate-next.png') no-repeat center center, -ms-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: url('Images/navigate-next.png') no-repeat center center, linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
-pie-background: url('Skins/Default/Stylesheets/Images/navigate-next.png') no-repeat center center, linear-gradient(#ffffff, #ececec);
|
||||
box-shadow: 0px 1px 0px #ffffff;
|
||||
-webkit-box-shadow: 0px 1px 0px #ffffff;
|
||||
-moz-box-shadow: 0px 1px 0px #ffffff;
|
||||
tooltip: Navigate next;
|
||||
}
|
||||
|
||||
.current-topic-index-button
|
||||
{
|
||||
text-shadow: 0 1px 0 #FFF;
|
||||
border-top-color: #CCCCCC;
|
||||
padding: 0 12px;
|
||||
background: #e1e1e1;
|
||||
box-shadow: 0px 1px 0px #ffffff;
|
||||
-webkit-box-shadow: 0px 1px 0px #ffffff;
|
||||
-moz-box-shadow: 0px 1px 0px #ffffff;
|
||||
color: #6c6c6c;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
border-top: solid 1px #cccccc;
|
||||
background-color: #e1e1e1;
|
||||
width: auto;
|
||||
format: '{n} of {total}';
|
||||
}
|
||||
|
||||
.current-topic-index-button.disabled
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.expand-all-button
|
||||
{
|
||||
/* Old browsers */
|
||||
/* FF3.6+ */
|
||||
/* Chrome,Safari4+ */
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
/* Opera11.10+ */
|
||||
/* IE10+ */
|
||||
/* W3C */
|
||||
/*PIE*/
|
||||
background: #ececec url('Images/expand.png') no-repeat center center;
|
||||
background: url('Images/expand.png') no-repeat center center, -moz-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: url('Images/expand.png') no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#ececec));
|
||||
background: url('Images/expand.png') no-repeat center center, -webkit-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: url('Images/expand.png') no-repeat center center, -o-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: url('Images/expand.png') no-repeat center center, -ms-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: url('Images/expand.png') no-repeat center center, linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
-pie-background: url('Skins/Default/Stylesheets/Images/expand.png') no-repeat center center, linear-gradient(#ffffff, #ececec);
|
||||
box-shadow: 0px 1px 0px #ffffff;
|
||||
-webkit-box-shadow: 0px 1px 0px #ffffff;
|
||||
-moz-box-shadow: 0px 1px 0px #ffffff;
|
||||
tooltip: Expand all;
|
||||
}
|
||||
|
||||
.collapse-all-button
|
||||
{
|
||||
/* Old browsers */
|
||||
/* FF3.6+ */
|
||||
/* Chrome,Safari4+ */
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
/* Opera11.10+ */
|
||||
/* IE10+ */
|
||||
/* W3C */
|
||||
/*PIE*/
|
||||
background: #ececec url('Images/collapse.png') no-repeat center center;
|
||||
background: url('Images/collapse.png') no-repeat center center, -moz-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: url('Images/collapse.png') no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#ececec));
|
||||
background: url('Images/collapse.png') no-repeat center center, -webkit-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: url('Images/collapse.png') no-repeat center center, -o-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: url('Images/collapse.png') no-repeat center center, -ms-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: url('Images/collapse.png') no-repeat center center, linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
-pie-background: url('Skins/Default/Stylesheets/Images/collapse.png') no-repeat center center, linear-gradient(#ffffff, #ececec);
|
||||
box-shadow: 0px 1px 0px #ffffff;
|
||||
-webkit-box-shadow: 0px 1px 0px #ffffff;
|
||||
-moz-box-shadow: 0px 1px 0px #ffffff;
|
||||
tooltip: Collapse all;
|
||||
}
|
||||
|
||||
.print-button
|
||||
{
|
||||
/* Old browsers */
|
||||
/* FF3.6+ */
|
||||
/* Chrome,Safari4+ */
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
/* Opera11.10+ */
|
||||
/* IE10+ */
|
||||
/* W3C */
|
||||
/*PIE*/
|
||||
background: #ececec url('Images/printer.png') no-repeat center center;
|
||||
background: url('Images/printer.png') no-repeat center center, -moz-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: url('Images/printer.png') no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#ececec));
|
||||
background: url('Images/printer.png') no-repeat center center, -webkit-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: url('Images/printer.png') no-repeat center center, -o-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: url('Images/printer.png') no-repeat center center, -ms-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: url('Images/printer.png') no-repeat center center, linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
-pie-background: url('Skins/Default/Stylesheets/Images/printer.png') no-repeat center center, linear-gradient(#ffffff, #ececec);
|
||||
box-shadow: 0px 1px 0px #ffffff;
|
||||
-webkit-box-shadow: 0px 1px 0px #ffffff;
|
||||
-moz-box-shadow: 0px 1px 0px #ffffff;
|
||||
tooltip: Print;
|
||||
}
|
||||
|
||||
.remove-highlight-button
|
||||
{
|
||||
/* Old browsers */
|
||||
/* FF3.6+ */
|
||||
/* Chrome,Safari4+ */
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
/* Opera11.10+ */
|
||||
/* IE10+ */
|
||||
/* W3C */
|
||||
/*PIE*/
|
||||
background: #ececec url('Images/highlight.png') no-repeat center center;
|
||||
background: url('Images/highlight.png') no-repeat center center, -moz-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: url('Images/highlight.png') no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#ececec));
|
||||
background: url('Images/highlight.png') no-repeat center center, -webkit-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: url('Images/highlight.png') no-repeat center center, -o-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: url('Images/highlight.png') no-repeat center center, -ms-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: url('Images/highlight.png') no-repeat center center, linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
-pie-background: url('Skins/Default/Stylesheets/Images/highlight.png') no-repeat center center, linear-gradient(#ffffff, #ececec);
|
||||
box-shadow: 0px 1px 0px #ffffff;
|
||||
-webkit-box-shadow: 0px 1px 0px #ffffff;
|
||||
-moz-box-shadow: 0px 1px 0px #ffffff;
|
||||
tooltip: Remove Highlights;
|
||||
}
|
||||
|
||||
.loading
|
||||
{
|
||||
background-image: url("Images/loading.gif");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
}
|
||||
|
||||
.loading .star-button
|
||||
{
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.star-button
|
||||
{
|
||||
border: none;
|
||||
width: 16px;
|
||||
margin-left: 5px;
|
||||
-webkit-box-shadow: none;
|
||||
-moz-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.topic-ratings-button
|
||||
{
|
||||
background: transparent url('Images/star-full.png') no-repeat center center;
|
||||
box-shadow: 0px 0px 0px #ffffff;
|
||||
-webkit-box-shadow: 0px 0px 0px #ffffff;
|
||||
-moz-box-shadow: 0px 0px 0px #ffffff;
|
||||
border-top: none;
|
||||
border-right: none;
|
||||
border-bottom: none;
|
||||
border-left: none;
|
||||
background-color: transparent;
|
||||
width: 16px;
|
||||
tooltip: Click a star to rate this topic;
|
||||
}
|
||||
|
||||
.topic-ratings-empty-button
|
||||
{
|
||||
background: transparent url('Images/star-empty.png') no-repeat center center;
|
||||
box-shadow: 0px 0px 0px #ffffff;
|
||||
-webkit-box-shadow: 0px 0px 0px #ffffff;
|
||||
-moz-box-shadow: 0px 0px 0px #ffffff;
|
||||
border-top: none;
|
||||
border-right: none;
|
||||
border-bottom: none;
|
||||
border-left: none;
|
||||
background-color: transparent;
|
||||
width: 16px;
|
||||
tooltip: Click a star to rate this topic;
|
||||
}
|
||||
|
||||
.login-button
|
||||
{
|
||||
/* Old browsers */
|
||||
/* FF3.6+ */
|
||||
/* Chrome,Safari4+ */
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
/* Opera11.10+ */
|
||||
/* IE10+ */
|
||||
/* W3C */
|
||||
/*PIE*/
|
||||
background: #ececec url('Images/login.png') no-repeat center center;
|
||||
background: url('Images/login.png') no-repeat center center, -moz-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: url('Images/login.png') no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#ececec));
|
||||
background: url('Images/login.png') no-repeat center center, -webkit-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: url('Images/login.png') no-repeat center center, -o-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: url('Images/login.png') no-repeat center center, -ms-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: url('Images/login.png') no-repeat center center, linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
-pie-background: url('Skins/Default/Stylesheets/Images/login.png') no-repeat center center, linear-gradient(#ffffff, #ececec);
|
||||
box-shadow: 0px 1px 0px #ffffff;
|
||||
-webkit-box-shadow: 0px 1px 0px #ffffff;
|
||||
-moz-box-shadow: 0px 1px 0px #ffffff;
|
||||
tooltip: Login;
|
||||
}
|
||||
|
||||
.edit-user-profile-button
|
||||
{
|
||||
/* Old browsers */
|
||||
/* FF3.6+ */
|
||||
/* Chrome,Safari4+ */
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
/* Opera11.10+ */
|
||||
/* IE10+ */
|
||||
/* W3C */
|
||||
/*PIE*/
|
||||
background: #ececec url('Images/edit-profile.png') no-repeat center center;
|
||||
background: url('Images/edit-profile.png') no-repeat center center, -moz-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: url('Images/edit-profile.png') no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#ececec));
|
||||
background: url('Images/edit-profile.png') no-repeat center center, -webkit-linear-gradient(top, #ffffff 0%, #ececec 100%);
|
||||
background: url('Images/edit-profile.png') no-repeat center center, -o-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: url('Images/edit-profile.png') no-repeat center center, -ms-linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
background: url('Images/edit-profile.png') no-repeat center center, linear-gradient(top, #ffffff 0%,#ececec 100%);
|
||||
-pie-background: url('Skins/Default/Stylesheets/Images/edit-profile.png') no-repeat center center, linear-gradient(#ffffff, #ececec);
|
||||
box-shadow: 0px 1px 0px #ffffff;
|
||||
-webkit-box-shadow: 0px 1px 0px #ffffff;
|
||||
-moz-box-shadow: 0px 1px 0px #ffffff;
|
||||
tooltip: Edit user profile;
|
||||
}
|
||||
|
||||
/**/
|
||||
/* Feedback */
|
||||
|
||||
.feedback-comments-wrapper.hidden
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.feedback-comments-wrapper .pulse-frame
|
||||
{
|
||||
width: 100%;
|
||||
border: none;
|
||||
margin-top: 17px;
|
||||
}
|
||||
|
||||
.feedback-comments-wrapper .comments-header
|
||||
{
|
||||
margin: 17px 0;
|
||||
color: #749ab6;
|
||||
font-size: 2em;
|
||||
font-weight: bold;
|
||||
label: Comments;
|
||||
}
|
||||
|
||||
.comments
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.comments .comment
|
||||
{
|
||||
padding: 10px;
|
||||
max-width: 400px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
border-bottom: solid 2px #dddddd;
|
||||
}
|
||||
|
||||
.comments .comment:last-child
|
||||
{
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.comments .comment .comment
|
||||
{
|
||||
margin-left: 45px;
|
||||
}
|
||||
|
||||
.comments .username
|
||||
{
|
||||
margin-right: 10px;
|
||||
display: none;
|
||||
color: #749ab6;
|
||||
font-family: Georgia;
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
html.feedback-anonymous-enabled .comments .username
|
||||
{
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.comments .timestamp
|
||||
{
|
||||
font-weight: normal;
|
||||
color: #888888;
|
||||
font-family: Georgia;
|
||||
font-size: 11px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.comments .subject
|
||||
{
|
||||
color: #888888;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.comments .body
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.comment-form-wrapper
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.comment-form-wrapper .username-field,
|
||||
.comment-form-wrapper .subject-field
|
||||
{
|
||||
width: 200px;
|
||||
padding: 5px;
|
||||
border: 1px solid #ccc;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.comment-form-wrapper .username-field
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
html.feedback-anonymous-enabled .comment-form-wrapper .username-field
|
||||
{
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.comment-form-wrapper .body-field
|
||||
{
|
||||
font-family: Arial;
|
||||
width: 406px;
|
||||
height: 60px;
|
||||
padding: 10px;
|
||||
border: 1px solid #ccc;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.comment-form-wrapper .field-error
|
||||
{
|
||||
border: solid 1px #F00;
|
||||
background-color: #FEE7E7;
|
||||
}
|
||||
|
||||
.comment-form-wrapper .comment-submit
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**/
|
||||
|
||||
.mc-template
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
#mc-background-tint
|
||||
{
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
filter: alpha( opacity = 0 );
|
||||
opacity: 0.0;
|
||||
}
|
||||
|
||||
#mc-background-tint.light
|
||||
{
|
||||
background-color: #FFF;
|
||||
}
|
||||
|
||||
#mc-background-tint.dark
|
||||
{
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
/* Contain floats: nicolasgallagher.com/micro-clearfix-hack/ */
|
||||
|
||||
.clearfix:before,
|
||||
.clearfix:after
|
||||
{
|
||||
content: "";
|
||||
display: table;
|
||||
}
|
||||
|
||||
.clearfix:after
|
||||
{
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.clearfix
|
||||
{
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
.mc-highlightSearch1
|
||||
{
|
||||
background-color: #ffff66;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.mc-highlightSearch2
|
||||
{
|
||||
background-color: #a0ffff;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.mc-highlightSearch3
|
||||
{
|
||||
background-color: #99ff99;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.mc-highlightSearch4
|
||||
{
|
||||
background-color: #ff9999;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.mc-highlightSearch5
|
||||
{
|
||||
background-color: #ff66ff;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.mc-highlightSearch6
|
||||
{
|
||||
background-color: #880000;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.mc-highlightSearch7
|
||||
{
|
||||
background-color: #00aa00;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.mc-highlightSearch8
|
||||
{
|
||||
background-color: #886800;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.mc-highlightSearch9
|
||||
{
|
||||
background-color: #004699;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.mc-highlightSearch10
|
||||
{
|
||||
background-color: #990099;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.highlightGlossary,
|
||||
.highlightIndex
|
||||
{
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.highlightGlossary
|
||||
{
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.highlightIndex
|
||||
{
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,248 @@
|
||||
/*<meta />*/
|
||||
|
||||
/* Topic Popup */
|
||||
|
||||
.MCTopicPopup
|
||||
{
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.MCTopicPopupHotSpot
|
||||
{
|
||||
cursor: pointer;
|
||||
background-position: left center;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.MCTopicPopup_Open.MCTopicPopupHotSpot
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCTopicPopup_Closed.MCTopicPopupHotSpot
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCTopicPopupContainer
|
||||
{
|
||||
background-color: #FFFFFF;
|
||||
padding: 10px;
|
||||
position: fixed;
|
||||
top: 100px;
|
||||
left: 100px;
|
||||
right: 100px;
|
||||
bottom: 100px;
|
||||
-moz-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
-webkit-box-shadow: 0 4px 10px #333333;
|
||||
-moz-box-shadow: 0 4px 10px #333333;
|
||||
box-shadow: 0 4px 10px #333333;
|
||||
filter: alpha( opacity = 0 );
|
||||
opacity: 0.0;
|
||||
z-index: 10001;
|
||||
}
|
||||
|
||||
.MCTopicPopupBody
|
||||
{
|
||||
width: 100%;
|
||||
border: none;
|
||||
}
|
||||
|
||||
/**/
|
||||
/* Thumbnail Popup */
|
||||
|
||||
.MCPopupThumbnailLink
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCPopupThumbnail
|
||||
{
|
||||
-moz-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.MCPopupContainer
|
||||
{
|
||||
background-color: #FFFFFF;
|
||||
border: solid 1px #000000;
|
||||
padding: 10px;
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
-moz-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
z-index: 10001;
|
||||
}
|
||||
|
||||
.MCPopupContainer2
|
||||
{
|
||||
background-color: #FFFFFF;
|
||||
border: solid 1px #000000;
|
||||
padding: 10px;
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
-moz-box-shadow: 2px 2px 8px #FFFFFF;
|
||||
-webkit-box-shadow: 2px 2px 8px #FFFFFF;
|
||||
box-shadow: 2px 2px 8px #FFFFFF;
|
||||
}
|
||||
|
||||
.MCPopupFullImage
|
||||
{
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
-moz-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
/**/
|
||||
/* HelpControl */
|
||||
|
||||
.MCHelpControl span
|
||||
{
|
||||
background: url("Images/help-control.png") no-repeat left center;
|
||||
padding-left: 18px;
|
||||
}
|
||||
|
||||
a.MCHelpControl
|
||||
{
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/**/
|
||||
/* Dialog */
|
||||
|
||||
.MCDialog
|
||||
{
|
||||
display: none;
|
||||
width: 400px;
|
||||
position: fixed;
|
||||
top: 20px;
|
||||
left: 20px;
|
||||
padding: 6px;
|
||||
background-color: #000000;
|
||||
border: 1px solid #000000;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-moz-box-shadow: 0 3px 0 rgba(0, 0, 0, 0.1);
|
||||
-webkit-box-shadow: 0 3px 0 rgba(0, 0, 0, 0.1);
|
||||
box-shadow: 0 3px 0 rgba(0, 0, 0, 0.1);
|
||||
filter: alpha( opacity = 0 );
|
||||
opacity: 0.0;
|
||||
z-index: 10001;
|
||||
}
|
||||
|
||||
.MCDialogHeader
|
||||
{
|
||||
margin: 0 0 4px;
|
||||
padding: 5px 0 5px 5px;
|
||||
color: #FFFFFF;
|
||||
font-size: 15px;
|
||||
font-family: Helvetica;
|
||||
}
|
||||
|
||||
.MCDialogClose
|
||||
{
|
||||
color: #FFFFFF;
|
||||
font-family: tahoma, sans-serif;
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
line-height: 12px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
float: right;
|
||||
width: 20px;
|
||||
height: 18px;
|
||||
padding-top: 2px;
|
||||
margin-top: -2px;
|
||||
background-color: #999999;
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.MCDialogBody
|
||||
{
|
||||
color: #555555;
|
||||
padding: 10px;
|
||||
background-color: #FFFFFF;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
/**/
|
||||
|
||||
#ios-wrapper
|
||||
{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
div.MCBreadcrumbsBox_0
|
||||
{
|
||||
color: #696969;
|
||||
font-size: 8pt;
|
||||
font-family: Verdana;
|
||||
border-bottom-color: #a9a9a9;
|
||||
border-bottom-width: 1px;
|
||||
border-bottom-style: solid;
|
||||
padding-bottom: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.mcReset
|
||||
{
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
border-left-color: transparent;
|
||||
border-left-style: none;
|
||||
border-left-width: 0;
|
||||
border-right-color: transparent;
|
||||
border-right-style: none;
|
||||
border-right-width: 0;
|
||||
border-top-color: transparent;
|
||||
border-top-style: none;
|
||||
border-top-width: 0;
|
||||
border-bottom-color: transparent;
|
||||
border-bottom-style: none;
|
||||
border-bottom-width: 0;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
float: inherit;
|
||||
font-size: inherit;
|
||||
font-family: inherit;
|
||||
font-style: inherit;
|
||||
font-variant: inherit;
|
||||
text-transform: inherit;
|
||||
color: inherit;
|
||||
letter-spacing: inherit;
|
||||
word-spacing: inherit;
|
||||
text-decoration: inherit;
|
||||
text-align: inherit;
|
||||
}
|
||||
|
||||
.MCWebHelpFramesetLink a
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCWebHelpFramesetLink.MCWebHelpFramesetLinkTop a
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.MCWebHelpFramesetLink.MCWebHelpFramesetLinkBottom a
|
||||
{
|
||||
|
||||
}
|
||||
|
||||