Commit fb1bbf83f5320a2c9dde6043c1964b832d9e8732

Authored by kevin_fourie
1 parent daab6041

Merged in from DEV trunk...

KTS-2153
"CLONE(SUP-299) -Super sluggish web interface after upgrade to 3.4a"
In Progress. Reverted all dashlets and portlets to old css rules.

Committed By: Jalaloedien Abrahams
Reviewed By: Kevin Fourie

KTS-2153
"CLONE(SUP-299) -Super sluggish web interface after upgrade to 3.4a"
In Progress. Reverted all dashlets and portlets to old css rules. Commited rest of files.

Committed By: Jalaloedien Abrahams
Reviewed By: Kevin Fourie

KTS-2153
"CLONE(SUP-299) -Super sluggish web interface after upgrade to 3.4a"
In Progress. Fixed dashlet overflows.

Committed By: Jalaloedien Abrahams
Reviewed By: Kevin Fourie

KTS-2136
"UI issue with Workflow portlet in document view"
Fixed. Updated CSS rules around viewlets.

Committed By: Jalaloedien Abrahams
Reviewed By: Conrad Vermeulen

KTS-2169
"Bulk Export causes Warnings"
Fixed. return value from pexec() was erroneous

Reviewed By: Kevin Fourie

git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/STABLE/trunk@6893 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing 81 changed files with 883 additions and 194 deletions
plugins/ktstandard/KTBulkExportPlugin.php
... ... @@ -6,7 +6,7 @@
6 6 * License Version 1.1.2 ("License"); You may not use this file except in
7 7 * compliance with the License. You may obtain a copy of the License at
8 8 * http://www.knowledgetree.com/KPL
9   - *
  9 + *
10 10 * Software distributed under the License is distributed on an "AS IS"
11 11 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
12 12 * See the License for the specific language governing rights and
... ... @@ -17,9 +17,9 @@
17 17 * (ii) the KnowledgeTree copyright notice
18 18 * in the same form as they appear in the distribution. See the License for
19 19 * requirements.
20   - *
  20 + *
21 21 * The Original Code is: KnowledgeTree Open Source
22   - *
  22 + *
23 23 * The Initial Developer of the Original Code is The Jam Warehouse Software
24 24 * (Pty) Ltd, trading as KnowledgeTree.
25 25 * Portions created by The Jam Warehouse Software (Pty) Ltd are Copyright
... ... @@ -42,7 +42,7 @@ class KTBulkExportPlugin extends KTPlugin {
42 42 $res = parent::KTPlugin($sFilename);
43 43 $this->sFriendlyName = _kt('Bulk Export Plugin');
44 44 return $res;
45   - }
  45 + }
46 46  
47 47 function setup() {
48 48 $this->registerAction('folderaction', 'KTBulkExportAction', 'ktstandard.bulkexport.action');
... ... @@ -105,7 +105,7 @@ class KTBulkExportAction extends KTFolderAction {
105 105 $aQuery = $this->buildQuery();
106 106 $this->oValidator->notError($aQuery);
107 107 $aDocumentIds = DBUtil::getResultArrayKey($aQuery, 'id');
108   -
  108 +
109 109 $this->startTransaction();
110 110  
111 111 $oKTConfig =& KTConfig::getSingleton();
... ... @@ -138,17 +138,17 @@ class KTBulkExportAction extends KTFolderAction {
138 138 $aReplaceValues = array_values($aReplace);
139 139 foreach ($aDocumentIds as $iId) {
140 140 $oDocument = Document::get($iId);
141   -
  141 +
142 142 if ($bNoisy) {
143 143 $oDocumentTransaction = & new DocumentTransaction($oDocument, "Document part of bulk export", 'ktstandard.transactions.bulk_export', array());
144   - $oDocumentTransaction->create();
  144 + $oDocumentTransaction->create();
145 145 }
146   -
  146 +
147 147 $sParentFolder = sprintf('%s/%s', $sTmpPath, $oDocument->getFullPath());
148 148 $newDir = $this->sTmpPath;
149 149 $sFullPath = $this->_convertEncoding($oDocument->getFullPath(), true);
150   - foreach (split('/', $sFullPath) as $dirPart) {
151   - $newDir = sprintf("%s/%s", $newDir, $dirPart);
  150 + foreach (split('/', $sFullPath) as $dirPart) {
  151 + $newDir = sprintf("%s/%s", $newDir, $dirPart);
152 152 if (!file_exists($newDir)) {
153 153 mkdir($newDir, 0700);
154 154 }
... ... @@ -181,9 +181,10 @@ class KTBulkExportAction extends KTFolderAction {
181 181 );
182 182 $sOldPath = getcwd();
183 183 chdir($this->sTmpPath);
  184 + // Note that the popen means that pexec will return a file descriptor
184 185 $aOptions = array('popen' => 'r');
185   - $aRet = KTUtil::pexec($aCmd, $aOptions);
186   - $fh = $aRet['ret'];
  186 + $fh = KTUtil::pexec($aCmd, $aOptions);
  187 +
187 188 $last_beat = time();
188 189 while(!feof($fh)) {
189 190 if ($i % 1000 == 0) {
... ... @@ -221,8 +222,8 @@ class KTBulkExportAction extends KTFolderAction {
221 222 callLater(1, kt_bulkexport_redirect);
222 223  
223 224 </script>', $url);
224   -
225   - $this->commitTransaction();
  225 +
  226 + $this->commitTransaction();
226 227 exit(0);
227 228 }
228 229  
... ... @@ -277,13 +278,13 @@ class KTBulkExportAction extends KTFolderAction {
277 278 $aData = KTUtil::arrayGet($_SESSION['bulkexport'], $sCode);
278 279 $this->oValidator->notEmpty($aData);
279 280 $sZipFile = $aData['file'];
280   -
  281 +
281 282 if (!file_exists($sZipFile)) {
282 283 $this->addErrorMessage(_kt('The ZIP can only be downloaded once - if you cancel the download, you will need to reload the Bulk Export page.'));
283 284 redirect(generateControllerUrl("browse", "fBrowseType=folder&fFolderId=" . $this->oFolder->getId()));
284 285 exit(0);
285   - }
286   -
  286 + }
  287 +
287 288 header("Content-Type: application/zip");
288 289 header("Content-Length: ". filesize($sZipFile));
289 290 header("Content-Disposition: attachment; filename=\"" . $this->oFolder->getName() . ".zip" . "\"");
... ...
resources/css/kt-framing.css
... ... @@ -239,29 +239,193 @@ a.main_nav_item {
239 239 .noportlets #portletbar { display: none; }
240 240  
241 241 #portletbar .portlet {
  242 + position: relative;
242 243 margin: 0 0 1.5em 0;
243   - background: #ffffff url(../../resources/graphics/portlet_bg_collapsed.png) top left repeat-x;
244   - border: 1px solid #B7B7B7;
  244 + background: url(../../resources/graphics/portlet_corner_topleft_collapsed.png) top left no-repeat;
245 245 padding: 0 0 0 0;
  246 + border: 0;
246 247 z-index: 2;
247 248 }
248 249  
  250 +#portletbar .portlet .portletTopRepeat {
  251 + position: absolute;
  252 + background: url(../../resources/graphics/portlet_bg_collapsed.png) top left repeat-x;
  253 + top: 0;
  254 + left: 30px;
  255 + height: 30px;
  256 + width: 80%;
  257 + z-index: -1;
  258 + border:0;
  259 +}
  260 +
  261 +#portletbar .portlet .portletTopRight {
  262 + position: absolute;
  263 + background: url(../../resources/graphics/portlet_corner_topright_collapsed.png) top right no-repeat;
  264 + top: 0;
  265 + right: 0px;
  266 + height: 30px;
  267 + width: 60%;
  268 + z-index: -1;
  269 + border: 0;
  270 +}
  271 +
249 272 #portletbar .portlet.expanded {
  273 + position: relative;
250 274 margin: 0 0 1.5em 0;
251 275 padding: 0 0 0 0;
252   - border: 1px solid #B7B7B7;
253   - background: #ffffff url(../../resources/graphics/portlet_bg.png) top left repeat-x;
  276 + background: url(../../resources/graphics/portlet_corner_topleft.png) top left no-repeat;
  277 + border: 0;
254 278 z-index: 2;
255 279 }
256 280  
  281 +#portletbar .portlet.expanded .portletTopRepeat {
  282 + position: absolute;
  283 + background: url(../../resources/graphics/portlet_bg.png) top left repeat-x;
  284 + top: 0px;
  285 + left: 30px;
  286 + height: 28px;
  287 + width: 80%;
  288 + z-index: -1;
  289 + border: 0;
  290 +}
  291 +
  292 +#portletbar .portlet.expanded .portletTopRight {
  293 + position: absolute;
  294 + background: url(../../resources/graphics/portlet_corner_topright.png) top right no-repeat;
  295 + top: 0;
  296 + right: 0px;
  297 + height: 28px;
  298 + width: 60%;
  299 + z-index: -1;
  300 + border: 0;
  301 +}
  302 +
257 303 #portletbar .portlet .portletbody {
  304 + background: url(../../resources/graphics/portlet_borderright.png) top right repeat-y;
258 305 padding: 0 0 1em 0;
259 306 margin-right: 1px;
260 307 background-color: white;
  308 + border-bottom: 1px solid #ccc;
  309 + border-left: 1px solid #ccc;
261 310 width: 99%;
262 311 height: 100%;
263 312 }
264 313  
  314 +/* Attempt to contain side portlet containers in MORE containers*/
  315 +/*
  316 +#portletbar .portlet.expanded .portletBodyDoubleTop {
  317 + position: relative;
  318 + width: 100%;
  319 + height: 1px;
  320 + top:0px;
  321 + right:0px;
  322 + border: 1px solid red;
  323 +}
  324 +
  325 +#portletbar .portlet.expanded .portletBodyDoubleMiddle {
  326 + position: relative;
  327 + width: 100%;
  328 + height: 1px;
  329 + top:0px;
  330 + right:0px;
  331 + border: 1px solid blue;
  332 +}
  333 +
  334 +#portletbar .portlet.expanded .portletBodyDoubleBottom {
  335 + position: relative;
  336 + width: 100%;
  337 + height: 1px;
  338 + bottom:0px;
  339 + right:0px;
  340 + border: 1px solid red;
  341 +}*/
  342 +
  343 +/* Bottom Portlet borders */
  344 +/*
  345 +#portletbar .portlet .portletbodyBottomLeft {
  346 + position: absolute;
  347 + bottom: 0px;
  348 + left: 0px;
  349 + width: 10px;
  350 + height: 10px;
  351 + background: url(../../resources/graphics/portlet_corner_bottomleft.png) bottom left no-repeat;
  352 +}
  353 +
  354 +#portletbar .portlet .portletbodyBottomRight {
  355 + position: absolute;
  356 + bottom: 0px;
  357 + right: 0px;
  358 + width: 10px;
  359 + height: 10px;
  360 + background: url(../../resources/graphics/portlet_corner_bottomright.png) bottom right no-repeat;
  361 +}
  362 +
  363 +#portletbar .portlet .portletbodyBottom {
  364 + position: absolute;
  365 + bottom: 0px;
  366 + left: 5px;
  367 + height: 3px;
  368 + width: 95%;
  369 + background: url(../../resources/graphics/portlet_borderbottom.png) bottom left repeat-x;
  370 +}*/
  371 +
  372 +/* Right-hand side portlet borders */
  373 +/*
  374 +#portletbar .portlet .portletbodyRightTop {
  375 + position: absolute;
  376 + background: url(../../resources/graphics/portlet_borderright.png) top right repeat-y;
  377 + top: 0px;
  378 + right: 0px;
  379 + width: 5px;
  380 + height: 76px;
  381 +}
  382 +
  383 +#portletbar .portlet .portletbodyRightBottom {
  384 + position: absolute;
  385 + background: url(../../resources/graphics/portlet_borderright.png) top right repeat-y;
  386 + bottom: 0px;
  387 + right: 0px;
  388 + width: 5px;
  389 + height: 80px;
  390 +}
  391 +
  392 +
  393 +#portletbar .portlet .portletbodyRightMiddleTop {
  394 + position: absolute;
  395 + background: url(../../resources/graphics/portlet_borderright.png) top right repeat-y;
  396 + top: 50%;
  397 + right: 0px;
  398 + width: 5px;
  399 + height: 36px;
  400 +}
  401 +
  402 +#portletbar .portlet .portletbodyRightMiddleBottom {
  403 + position: absolute;
  404 + background: url(../../resources/graphics/portlet_borderright.png) top right repeat-y;
  405 + bottom: 50%;
  406 + right: 0px;
  407 + width: 5px;
  408 + height: 63px;
  409 +}
  410 +
  411 +#portletbar .portlet .portletbodyRightQuartTop {
  412 + position: absolute;
  413 + background: url(../../resources/graphics/portlet_borderright.png) top right repeat-y;
  414 + top: 15%;
  415 + right: 0px;
  416 + width: 5px;
  417 + height: 60px;
  418 +}
  419 +
  420 +#portletbar .portlet .portletbodyRightQuartBottom {
  421 + position: absolute;
  422 + background: url(../../resources/graphics/portlet_borderright.png) top right repeat-y;
  423 + bottom: 25%;
  424 + right: 0px;
  425 + width: 5px;
  426 + height: 68px;
  427 +}*/
  428 +
265 429 #portletbar .portlet a {
266 430 color: #344a6a;
267 431 text-decoration: none;
... ... @@ -278,9 +442,8 @@ a.main_nav_item {
278 442  
279 443 #portletbar .portlet h4
280 444 {
281   - margin: 0;
282   - padding-top: 0;
283   - padding-bottom: 0.4em;
  445 + padding-top: 0.35em;
  446 + padding-bottom: 0.7em;
284 447 padding-left: 30px;
285 448 background: url(../graphics/plus.gif) 10px 45% no-repeat;
286 449 text-align: left;
... ... @@ -294,8 +457,8 @@ a.main_nav_item {
294 457 border-width: 0 0 1px 0;
295 458 border-style: solid;
296 459 border-color: #eee;
297   - padding-top: 0;
298   - padding-bottom: 0.4em;
  460 + padding-top: 0.35em;
  461 + padding-bottom: 0.50em;
299 462 padding-left: 30px;
300 463 text-align: left;
301 464 background: url(../graphics/minus.gif) 10px 45% no-repeat;
... ... @@ -311,6 +474,57 @@ a.main_nav_item {
311 474 display: block;
312 475 }
313 476  
  477 +#portletbar .portlet .portletbodyRightTop {
  478 + display: none;
  479 +}
  480 +
  481 +#portletbar .portlet .portletbodyRightBottom {
  482 + display: none;
  483 +}
  484 +
  485 +#portletbar .portlet .portletbodyRightMiddleTop {
  486 + display: none;
  487 +}
  488 +
  489 +#portletbar .portlet .portletbodyRightMiddleBottom {
  490 + display: none;
  491 +}
  492 +
  493 +#portletbar .portlet .portletbodyRightQuartTop {
  494 + display: none;
  495 +}
  496 +
  497 +#portletbar .portlet .portletbodyRightQuartBottom {
  498 + display: none;
  499 +}
  500 +
  501 +
  502 +#portletbar .portlet.expanded .portletbodyRightTop {
  503 + display: block;
  504 +}
  505 +
  506 +#portletbar .portlet.expanded .portletbodyRightBottom {
  507 + display: block;
  508 +}
  509 +
  510 +
  511 +#portletbar .portlet.expanded .portletbodyRightMiddleTop {
  512 + display: block;
  513 +}
  514 +
  515 +#portletbar .portlet.expanded .portletbodyRightMiddleBottom {
  516 + display: block;
  517 +}
  518 +
  519 +#portletbar .portlet.expanded .portletbodyRightQuartTop {
  520 + display: block;
  521 +}
  522 +
  523 +#portletbar .portlet.expanded .portletbodyRightQuartBottom {
  524 + display: block;
  525 +}
  526 +
  527 +
314 528 #portletbar .portlet .actionlist
315 529 {
316 530 list-style: none;
... ... @@ -538,7 +752,6 @@ a.main_nav_item {
538 752 {
539 753 font-family: "Lucida Grande", "Bitstream Vera Sans", Tahoma, sans-serif;
540 754 padding-bottom: 0.25em;
541   - margin-top: 0;
542 755 border-width: 0 0 0 0;
543 756 border-style: solid;
544 757 border-color: #eee;
... ... @@ -806,85 +1019,37 @@ a.main_nav_item {
806 1019  
807 1020 /* block level. */
808 1021 .ktError {
809   - background: #ffdd80 url(../../resources/graphics/error_toprepeat.png) top left repeat-x;
810   - border: 1px solid #FFC21E;
811   - margin: 20px auto;
  1022 + padding: 0.1em 1em;
  1023 + margin: 1em 0 0 0.5em;
812 1024 }
813 1025  
814 1026 .ktError p {
815   - margin-left: 20px;
816   - padding-left: 25px;
817   - background: #ffdd80 url(../../thirdparty/icon-theme/16x16/status/dialog-warning.png) center left no-repeat;
818   -}
819   -
820   -.ktError span {
821   - margin-left: 20px;
822   - padding-left: 25px;
823   - background: #ffdd80 url(../../thirdparty/icon-theme/16x16/status/dialog-warning.png) center left no-repeat;
824   -}
825   -
826   -.ktErrorMessage {
827   - background-color: #ffdd80;
828   - border: 1px solid #FFC21E;
829   - margin: 20px auto;
830   -}
831   -
832   -.ktErrorMessage p {
833   - margin-left: 20px;
834   - padding-left: 25px;
835   - background: #ffdd80 url(../../thirdparty/icon-theme/16x16/status/dialog-warning.png) center left no-repeat;
836   -}
837   -
838   -.ktErrorMessage span {
839   - margin-left: 20px;
840 1027 padding-left: 25px;
841 1028 background: #ffdd80 url(../../thirdparty/icon-theme/16x16/status/dialog-warning.png) center left no-repeat;
  1029 + margin-top: 20px;
842 1030 }
843 1031  
844 1032 /* block level. */
845 1033 .ktInfo {
846   - background: #DEDEDE url(../../resources/graphics/info_toprepeat.png) top left repeat-x;
847   - border: 1px solid #C5C5C5;
848   - margin: 20px auto;
849   -}
850   -
851   -.ktInfoMessage{
852   - background-color: #DEDEDE;
853   - border: 1px solid #C5C5C5;
854   - margin: 20px auto;
  1034 + padding: 0.1em 1em;
  1035 + margin: 1em 0 0 0.5em;
855 1036 }
856 1037  
857 1038 .ktInfo p {
858   - margin-left: 20px;
859   - padding-left: 25px;
860   - background: #DEDEDE url(../../thirdparty/icon-theme/16x16/status/dialog-information.png) center left no-repeat;
861   -}
862   -
863   -.ktInfoMessage p {
864   - margin-left: 20px;
865   - padding-left: 25px;
866   - background: #DEDEDE url(../../thirdparty/icon-theme/16x16/status/dialog-information.png) center left no-repeat;
867   -}
868   -
869   -.ktInfo span {
870   - margin-left: 20px;
871 1039 padding-left: 25px;
872 1040 background: #DEDEDE url(../../thirdparty/icon-theme/16x16/status/dialog-information.png) center left no-repeat;
  1041 + margin-top: 20px;
873 1042 }
874 1043  
875   -.ktInfoMessage span {
876   - margin-left: 20px;
877   - padding-left: 25px;
878   - background: #DEDEDE url(../../thirdparty/icon-theme/16x16/status/dialog-information.png) center left no-repeat;
879   -}
880 1044  
881 1045 .ktBlock {
882   - background: #ffffff url(../../resources/graphics/dashlet_toprepeat.png) top left repeat-x;
883   - border: 1px solid #C5C5C5;
884   - margin: 20px auto;
  1046 + position: relative;
  1047 + padding: 0.1em 1em;
  1048 + margin: 1em 0 0 0.5em;
885 1049 }
886 1050  
887   -.ktBlock, .ktInfo, .ktError, .ktInfoMessage, .ktErrorMessage{
  1051 +
  1052 +.ktInfo, .ktError {
888 1053 position: relative;
889 1054 }
890 1055  
... ... @@ -1030,8 +1195,6 @@ The text will be hidden for screen view. The generic fahrner-ish approach comes
1030 1195 padding-bottom: 2em;
1031 1196 height: 100%;
1032 1197 min-height: 5em;
1033   - padding-left: 20px;
1034   - padding-top: 25px;
1035 1198 /* background-color: #dfd; */
1036 1199 }
1037 1200  
... ... @@ -1043,10 +1206,135 @@ The text will be hidden for screen view. The generic fahrner-ish approach comes
1043 1206 padding-bottom: 2em;
1044 1207 height: 100%;
1045 1208 min-height: 5em;
1046   - padding-top: 25px;
1047 1209 /* background-color: #ddf; */
1048 1210 }
1049 1211  
  1212 +.dashboard_block_topleft {
  1213 + position: absolute;
  1214 + width: 35px;
  1215 + height: 36px;
  1216 + top: 0px;
  1217 + left: 0px;
  1218 + background: url(../graphics/dashlet_topleft.png) top left no-repeat;
  1219 + z-index:-1;
  1220 +}
  1221 +
  1222 +.dashboard_block_toprepeat {
  1223 + position: absolute;
  1224 + width: 90%;
  1225 + height: 36px;
  1226 + top: 0px;
  1227 + left: 30px;
  1228 + background: white url(../graphics/dashlet_toprepeat.png) top left repeat-x;
  1229 + z-index:-1;
  1230 +}
  1231 +
  1232 +.dashboard_block_topright {
  1233 + position: absolute;
  1234 + width: 35px;
  1235 + height: 36px;
  1236 + top: 0px;
  1237 + right: 0px;
  1238 + background: url(../graphics/dashlet_topright.png) top right no-repeat;
  1239 + z-index:-1;
  1240 +}
  1241 +
  1242 +.dashboard_block_leftrepeat_top {
  1243 + position: absolute;
  1244 + width: 13px;
  1245 + height: 50%;
  1246 + top: 5px;
  1247 + left: 0px;
  1248 + background: white url(../graphics/dashlet_leftrepeat.png) top left repeat-y;
  1249 + z-index:-1;
  1250 +}
  1251 +
  1252 +.dashboard_block_leftrepeat_bottom {
  1253 + position: absolute;
  1254 + width: 13px;
  1255 + height: 50%;
  1256 + bottom: 10px;
  1257 + left: 0px;
  1258 + background: white url(../graphics/dashlet_leftrepeat.png) top left repeat-y;
  1259 + z-index:-1;
  1260 +}
  1261 +
  1262 +.dashboard_block_bottomleft {
  1263 + position: absolute;
  1264 + width: 40px;
  1265 + height: 40px;
  1266 + bottom: 0px;
  1267 + left: 0px;
  1268 + background: url(../graphics/dashlet_bottomleft.png) bottom left no-repeat;
  1269 + z-index:-1;
  1270 +}
  1271 +
  1272 +.dashboard_block_bottomrepeat {
  1273 + position: absolute;
  1274 + width: 92%;
  1275 + height: 13px;
  1276 + bottom: 0px;
  1277 + left: 30px;
  1278 + background: white url(../graphics/dashlet_bottomrepeat.png) bottom left repeat-x;
  1279 + z-index:-1;
  1280 +}
  1281 +
  1282 +.dashboard_block_bottomright {
  1283 + position: absolute;
  1284 + width: 40px;
  1285 + height: 40px;
  1286 + bottom: 0px;
  1287 + right: 0px;
  1288 + background: url(../graphics/dashlet_bottomright.png) bottom right no-repeat;
  1289 + z-index:-1;
  1290 +}
  1291 +
  1292 +.dashboard_block_rightrepeat_top {
  1293 + position: absolute;
  1294 + width: 13px;
  1295 + height: 50%;
  1296 + top: 5px;
  1297 + right: 0px;
  1298 + background: white url(../graphics/dashlet_rightrepeat.png) top right repeat-y;
  1299 + z-index:-1;
  1300 + overflow:hidden;
  1301 +}
  1302 +
  1303 +.dashboard_block_rightrepeat_bottom {
  1304 + position: absolute;
  1305 + width: 13px;
  1306 + height: 50%;
  1307 + bottom: 10px;
  1308 + right: 0px;
  1309 + background: white url(../graphics/dashlet_rightrepeat.png) bottom right repeat-y;
  1310 + z-index:-1;
  1311 + overflow:hidden;
  1312 +}
  1313 +
  1314 +.dashboard_block_rightrepeat_top {
  1315 + min-height: 70px;
  1316 +}
  1317 +
  1318 +.dashboard_block.rolled-up .dashboard_block_rightrepeat_top
  1319 +{
  1320 + display: none;
  1321 +}
  1322 +
  1323 +.dashboard_block.rolled-up .dashboard_block_rightrepeat_bottom
  1324 +{
  1325 + display: none;
  1326 +}
  1327 +
  1328 +.dashboard_block.rolled-up .dashboard_block_leftrepeat_top
  1329 +{
  1330 + display: none;
  1331 +}
  1332 +
  1333 +.dashboard_block.rolled-up .dashboard_block_leftrepeat_bottom
  1334 +{
  1335 + display: none;
  1336 +}
  1337 +
1050 1338 .dashboard_block {
1051 1339 width: 100%;
1052 1340 }
... ... @@ -1055,6 +1343,361 @@ The text will be hidden for screen view. The generic fahrner-ish approach comes
1055 1343 border:none;
1056 1344 }
1057 1345  
  1346 +.error_dashlet_topleft {
  1347 + position: absolute;
  1348 + width: 35px;
  1349 + height: 36px;
  1350 + top: 0px;
  1351 + left: 0px;
  1352 + background: url(../graphics/error_topleft.png) top left no-repeat;
  1353 + z-index:-1;
  1354 +}
  1355 +
  1356 +.error_dashlet_topleft_small {
  1357 + position: absolute;
  1358 + width: 35px;
  1359 + height: 22px;
  1360 + top: 0px;
  1361 + left: 0px;
  1362 + background: url(../graphics/error_topleft_small.png) top left no-repeat;
  1363 + z-index:-1;
  1364 +}
  1365 +
  1366 +.error_dashlet_toprepeat {
  1367 + position: absolute;
  1368 + width: 95%;
  1369 + height: 55px;
  1370 + top: 0px;
  1371 + left: 13px;
  1372 + background: #ffdd80 url(../graphics/error_toprepeat.png) top left repeat-x;
  1373 + z-index:-1;
  1374 +}
  1375 +
  1376 +.error_dashlet_toprepeat_small {
  1377 + position: absolute;
  1378 + width: 97%;
  1379 + height: 21px;
  1380 + top: 0px;
  1381 + left: 13px;
  1382 + background: #ffdd80 url(../graphics/error_toprepeat.png) bottom left repeat-x;
  1383 + z-index:-1;
  1384 + border-top: 1px solid #FFC21E;
  1385 +}
  1386 +
  1387 +.error_dashlet_topright {
  1388 + position: absolute;
  1389 + width: 35px;
  1390 + height: 36px;
  1391 + top: 0px;
  1392 + right: 0px;
  1393 + background: url(../graphics/error_topright.png) top right no-repeat;
  1394 + z-index:-1;
  1395 +}
  1396 +
  1397 +.error_dashlet_topright_small {
  1398 + position: absolute;
  1399 + width: 35px;
  1400 + height: 22px;
  1401 + top: 0px;
  1402 + right: 0px;
  1403 + background: url(../graphics/error_topright_small.png) top right no-repeat;
  1404 + z-index:-1;
  1405 +}
  1406 +
  1407 +.error_dashlet_leftrepeat_top {
  1408 + position: absolute;
  1409 + width: 13px;
  1410 + height: 50%;
  1411 + top: 5px;
  1412 + left: 0px;
  1413 + background: #ffdd80 url(../graphics/error_leftrepeat.png) top left repeat-y;
  1414 + z-index:-1;
  1415 +}
  1416 +
  1417 +.error_dashlet_leftrepeat_bottom {
  1418 + position: absolute;
  1419 + width: 13px;
  1420 + height: 50%;
  1421 + bottom: 10px;
  1422 + left: 0px;
  1423 + background: #ffdd80 url(../graphics/error_leftrepeat.png) top left repeat-y;
  1424 + z-index:-1;
  1425 +}
  1426 +
  1427 +.error_dashlet_bottomleft {
  1428 + position: absolute;
  1429 + width: 40px;
  1430 + height: 45px;
  1431 + bottom: 0px;
  1432 + left: 0px;
  1433 + background: url(../graphics/error_bottomleft.png) bottom left no-repeat;
  1434 + z-index:-1;
  1435 +}
  1436 +
  1437 +.error_dashlet_bottomrepeat {
  1438 + position: absolute;
  1439 + width: 95%;
  1440 + height: 30px;
  1441 + bottom: 0px;
  1442 + left: 10x;
  1443 + background: #ffdd80 url(../graphics/error_bottomrepeat.png) bottom left repeat-x;
  1444 + z-index:-1;
  1445 +}
  1446 +
  1447 +.error_dashlet_bottomrepeat_small {
  1448 + position: absolute;
  1449 + width: 97%;
  1450 + height: 21px;
  1451 + bottom: 0px;
  1452 + left: 10x;
  1453 + background: #ffdd80 url(../graphics/error_bottomrepeat.png) bottom left repeat-x;
  1454 + z-index:-1;
  1455 +}
  1456 +
  1457 +.error_dashlet_bottomright {
  1458 + position: absolute;
  1459 + width: 40px;
  1460 + height: 40px;
  1461 + bottom: 0px;
  1462 + right: 0px;
  1463 + background: url(../graphics/error_bottomright.png) bottom right no-repeat;
  1464 + z-index:-1;
  1465 +}
  1466 +
  1467 +.error_dashlet_rightrepeat_top {
  1468 + position: absolute;
  1469 + width: 30px;
  1470 + height: 50%;
  1471 + top: 5px;
  1472 + right: 0px;
  1473 + background: #ffdd80 url(../graphics/error_rightrepeat.png) top right repeat-y;
  1474 + z-index:-1;
  1475 + overflow:hidden;
  1476 +}
  1477 +
  1478 +.error_dashlet_rightrepeat_bottom {
  1479 + position: absolute;
  1480 + width: 30px;
  1481 + height: 50%;
  1482 + bottom: 10px;
  1483 + right: 0px;
  1484 + background: #ffdd80 url(../graphics/error_rightrepeat.png) bottom right repeat-y;
  1485 + z-index:-1;
  1486 + overflow:hidden;
  1487 +}
  1488 +
  1489 +.error_dashlet_rightrepeat_top {
  1490 + min-height: 70px;
  1491 +}
  1492 +
  1493 +.dashboard_block.rolled-up .error_dashlet_toprepeat
  1494 +{
  1495 + height: 38px;
  1496 +}
  1497 +
  1498 +.dashboard_block.rolled-up .error_dashlet_bottomrepeat
  1499 +{
  1500 + height: 20px;
  1501 +}
  1502 +
  1503 +.dashboard_block.rolled-up .error_dashlet_rightrepeat_top
  1504 +{
  1505 + display: none;
  1506 +}
  1507 +
  1508 +.dashboard_block.rolled-up .error_dashlet_rightrepeat_bottom
  1509 +{
  1510 + display: none;
  1511 +}
  1512 +
  1513 +.dashboard_block.rolled-up .error_dashlet_leftrepeat_top
  1514 +{
  1515 + display: none;
  1516 +}
  1517 +
  1518 +.dashboard_block.rolled-up .error_dashlet_leftrepeat_bottom
  1519 +{
  1520 + display: none;
  1521 +}
  1522 +
  1523 +.info_dashlet_topleft {
  1524 + position: absolute;
  1525 + width: 35px;
  1526 + height: 36px;
  1527 + top: 0px;
  1528 + left: 0px;
  1529 + background: url(../graphics/info_topleft.png) top left no-repeat;
  1530 + z-index:-1;
  1531 +}
  1532 +
  1533 +.info_dashlet_topleft_small {
  1534 + position: absolute;
  1535 + width: 35px;
  1536 + height: 22px;
  1537 + top: 0px;
  1538 + left: 0px;
  1539 + background: url(../graphics/info_topleft_small.png) top left no-repeat;
  1540 + z-index:-1;
  1541 +}
  1542 +
  1543 +.info_dashlet_toprepeat {
  1544 + position: absolute;
  1545 + width: 95%;
  1546 + height: 55px;
  1547 + top: 0px;
  1548 + left: 13px;
  1549 + background: #DEDEDE url(../graphics/info_toprepeat.png) top left repeat-x;
  1550 + z-index:-1;
  1551 +}
  1552 +
  1553 +.info_dashlet_toprepeat_small {
  1554 + position: absolute;
  1555 + width: 97%;
  1556 + height: 21px;
  1557 + top: 0px;
  1558 + left: 13px;
  1559 + background: #DEDEDE url(../graphics/info_toprepeat.png) bottom left repeat-x;
  1560 + z-index:-1;
  1561 + border-top: 1px solid #C5C5C5;
  1562 +}
  1563 +
  1564 +.info_dashlet_topright {
  1565 + position: absolute;
  1566 + width: 35px;
  1567 + height: 36px;
  1568 + top: 0px;
  1569 + right: 0px;
  1570 + background: url(../graphics/info_topright.png) top right no-repeat;
  1571 + z-index:-1;
  1572 +}
  1573 +
  1574 +.info_dashlet_topright_small {
  1575 + position: absolute;
  1576 + width: 35px;
  1577 + height: 22px;
  1578 + top: 0px;
  1579 + right: 0px;
  1580 + background: url(../graphics/info_topright_small.png) top right no-repeat;
  1581 + z-index:-1;
  1582 +}
  1583 +
  1584 +.info_dashlet_leftrepeat_top {
  1585 + position: absolute;
  1586 + width: 13px;
  1587 + height: 50%;
  1588 + top: 5px;
  1589 + left: 0px;
  1590 + background: #DEDEDE url(../graphics/info_leftrepeat.png) top left repeat-y;
  1591 + z-index:-1;
  1592 +}
  1593 +
  1594 +.info_dashlet_leftrepeat_bottom {
  1595 + position: absolute;
  1596 + width: 13px;
  1597 + height: 50%;
  1598 + bottom: 10px;
  1599 + left: 0px;
  1600 + background: #DEDEDE url(../graphics/info_leftrepeat.png) top left repeat-y;
  1601 + z-index:-1;
  1602 +}
  1603 +
  1604 +.info_dashlet_bottomleft {
  1605 + position: absolute;
  1606 + width: 40px;
  1607 + height: 45px;
  1608 + bottom: 0px;
  1609 + left: 0px;
  1610 + background: url(../graphics/info_bottomleft.png) bottom left no-repeat;
  1611 + z-index:-1;
  1612 +}
  1613 +
  1614 +.info_dashlet_bottomrepeat {
  1615 + position: absolute;
  1616 + width: 95%;
  1617 + height: 30px;
  1618 + bottom: 0px;
  1619 + left: 10x;
  1620 + background: #DEDEDE url(../graphics/info_bottomrepeat.png) bottom left repeat-x;
  1621 + z-index:-1;
  1622 +}
  1623 +
  1624 +.info_dashlet_bottomrepeat_small {
  1625 + position: absolute;
  1626 + width: 97%;
  1627 + height: 21px;
  1628 + bottom: 0px;
  1629 + left: 10x;
  1630 + background: #DEDEDE url(../graphics/info_bottomrepeat.png) bottom left repeat-x;
  1631 + z-index:-1;
  1632 +}
  1633 +
  1634 +.info_dashlet_bottomright {
  1635 + position: absolute;
  1636 + width: 40px;
  1637 + height: 40px;
  1638 + bottom: 0px;
  1639 + right: 0px;
  1640 + background: url(../graphics/info_bottomright.png) bottom right no-repeat;
  1641 + z-index:-1;
  1642 +}
  1643 +
  1644 +.info_dashlet_rightrepeat_top {
  1645 + position: absolute;
  1646 + width: 30px;
  1647 + height: 50%;
  1648 + top: 5px;
  1649 + right: 0px;
  1650 + background: #DEDEDE url(../graphics/info_rightrepeat.png) top right repeat-y;
  1651 + z-index:-1;
  1652 + overflow:hidden;
  1653 +}
  1654 +
  1655 +.info_dashlet_rightrepeat_bottom {
  1656 + position: absolute;
  1657 + width: 30px;
  1658 + height: 50%;
  1659 + bottom: 10px;
  1660 + right: 0px;
  1661 + background: #DEDEDE url(../graphics/info_rightrepeat.png) bottom right repeat-y;
  1662 + z-index:-1;
  1663 + overflow:hidden;
  1664 +}
  1665 +
  1666 +.info_dashlet_rightrepeat_top {
  1667 + min-height: 70px;
  1668 +}
  1669 +
  1670 +.dashboard_block.rolled-up .info_dashlet_toprepeat
  1671 +{
  1672 + height: 38px;
  1673 +}
  1674 +
  1675 +.dashboard_block.rolled-up .info_dashlet_bottomrepeat
  1676 +{
  1677 + height: 20px;
  1678 +}
  1679 +
  1680 +.dashboard_block.rolled-up .info_dashlet_rightrepeat_top
  1681 +{
  1682 + display: none;
  1683 +}
  1684 +
  1685 +.dashboard_block.rolled-up .info_dashlet_rightrepeat_bottom
  1686 +{
  1687 + display: none;
  1688 +}
  1689 +
  1690 +.dashboard_block.rolled-up .info_dashlet_leftrepeat_top
  1691 +{
  1692 + display: none;
  1693 +}
  1694 +
  1695 +.dashboard_block.rolled-up .info_dashlet_leftrepeat_bottom
  1696 +{
  1697 + display: none;
  1698 +}
  1699 +
  1700 +
1058 1701 #copyrightbarBorder {
1059 1702 margin-top: 40px;
1060 1703 margin-bottom: 50px;
... ... @@ -1078,7 +1721,7 @@ hr {
1078 1721  
1079 1722 #document-views {
1080 1723 position: absolute;
1081   - top: 0;
  1724 + top: 200px;
1082 1725 right: 0;
1083 1726 width: 19em;
1084 1727 z-index: 2;
... ... @@ -1263,15 +1906,15 @@ hr {
1263 1906 {
1264 1907 position: absolute;
1265 1908 top: 0px;
1266   - right: 8px;
  1909 + right: 10px;
1267 1910 text-align: right;
1268   - margin: -2px 0 0 0;
  1911 + margin: 0.2em 0em 0 0;
1269 1912 }
1270 1913  
1271 1914 .dashboard_block_handle
1272 1915 {
1273 1916 cursor: pointer;
1274   - margin: -2px -0.5em 0.5em 0.5em;
  1917 + margin: 0.2em -0.5em 0.5em 0;
1275 1918 font-size:small;
1276 1919 }
1277 1920  
... ... @@ -1283,18 +1926,15 @@ hr {
1283 1926 .ktBlock .dashboard_block_body
1284 1927 {
1285 1928 z-index:99;
1286   - margin: 8px 5px 10px 5px;
  1929 + margin: 8px 0 10px 0;
1287 1930 background-color:#FFFFFF;
1288   - padding-left: 15px;
1289   - padding-right: 15px;
1290   - padding-bottom: 5px;
1291 1931 overflow: auto;
1292 1932 }
1293 1933  
1294 1934 .ktError .dashboard_block_body
1295 1935 {
1296 1936 z-index:99;
1297   - margin-top: -8px;
  1937 + margin: 0;
1298 1938 background-color: #ffdd80;
1299 1939 overflow: auto;
1300 1940 }
... ... @@ -1302,7 +1942,7 @@ hr {
1302 1942 .ktInfo .dashboard_block_body
1303 1943 {
1304 1944 z-index:99;
1305   - margin-top: -8px;
  1945 + margin: 0;
1306 1946 background-color: #DEDEDE;
1307 1947 overflow: auto;
1308 1948 }
... ...
resources/graphics/dashlet_bottomleft.gif 0 โ†’ 100644

953 Bytes

resources/graphics/dashlet_bottomleft.png 0 โ†’ 100644

292 Bytes

resources/graphics/dashlet_bottomrepeat.gif 0 โ†’ 100644

809 Bytes

resources/graphics/dashlet_bottomrepeat.png 0 โ†’ 100644

210 Bytes

resources/graphics/dashlet_bottomright.gif 0 โ†’ 100644

989 Bytes

resources/graphics/dashlet_bottomright.png 0 โ†’ 100644

368 Bytes

resources/graphics/dashlet_leftrepeat.gif 0 โ†’ 100644

807 Bytes

resources/graphics/dashlet_leftrepeat.png 0 โ†’ 100644

199 Bytes

resources/graphics/dashlet_rightrepeat.gif 0 โ†’ 100644

809 Bytes

resources/graphics/dashlet_rightrepeat.png 0 โ†’ 100644

208 Bytes

resources/graphics/dashlet_topleft.gif 0 โ†’ 100644

1.37 KB

resources/graphics/dashlet_topleft.png 0 โ†’ 100644

798 Bytes

resources/graphics/dashlet_toprepeat.gif

841 Bytes | W: | H:

842 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
resources/graphics/dashlet_toprepeat.png

268 Bytes | W: | H:

271 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
resources/graphics/dashlet_topright.gif 0 โ†’ 100644

1.33 KB

resources/graphics/dashlet_topright.png 0 โ†’ 100644

950 Bytes

resources/graphics/error_bottomleft.gif 0 โ†’ 100644

945 Bytes

resources/graphics/error_bottomleft.png 0 โ†’ 100644

277 Bytes

resources/graphics/error_bottomrepeat.gif 0 โ†’ 100644

809 Bytes

resources/graphics/error_bottomrepeat.png 0 โ†’ 100644

154 Bytes

resources/graphics/error_bottomright.gif 0 โ†’ 100644

980 Bytes

resources/graphics/error_bottomright.png 0 โ†’ 100644

365 Bytes

resources/graphics/error_leftrepeat.gif 0 โ†’ 100644

807 Bytes

resources/graphics/error_leftrepeat.png 0 โ†’ 100644

143 Bytes

resources/graphics/error_rightrepeat.gif 0 โ†’ 100644

809 Bytes

resources/graphics/error_rightrepeat.png 0 โ†’ 100644

131 Bytes

resources/graphics/error_topleft.gif 0 โ†’ 100644

1.16 KB

resources/graphics/error_topleft.png 0 โ†’ 100644

356 Bytes

resources/graphics/error_topleft_small.gif 0 โ†’ 100644

1.01 KB

resources/graphics/error_topleft_small.png 0 โ†’ 100644

279 Bytes

resources/graphics/error_toprepeat.gif

845 Bytes | W: | H:

846 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
resources/graphics/error_toprepeat.png

252 Bytes | W: | H:

256 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
resources/graphics/error_topright.gif 0 โ†’ 100644

1.18 KB

resources/graphics/error_topright.png 0 โ†’ 100644

432 Bytes

resources/graphics/error_topright_small.gif 0 โ†’ 100644

1.02 KB

resources/graphics/error_topright_small.png 0 โ†’ 100644

331 Bytes

resources/graphics/info_bottomleft.gif 0 โ†’ 100644

945 Bytes

resources/graphics/info_bottomleft.png 0 โ†’ 100644

272 Bytes

resources/graphics/info_bottomrepeat.gif 0 โ†’ 100644

809 Bytes

resources/graphics/info_bottomrepeat.png 0 โ†’ 100644

154 Bytes

resources/graphics/info_bottomright.gif 0 โ†’ 100644

980 Bytes

resources/graphics/info_bottomright.png 0 โ†’ 100644

358 Bytes

resources/graphics/info_leftrepeat.gif 0 โ†’ 100644

807 Bytes

resources/graphics/info_leftrepeat.png 0 โ†’ 100644

143 Bytes

resources/graphics/info_rightrepeat.gif 0 โ†’ 100644

809 Bytes

resources/graphics/info_rightrepeat.png 0 โ†’ 100644

130 Bytes

resources/graphics/info_topleft.gif 0 โ†’ 100644

1.13 KB

resources/graphics/info_topleft.png 0 โ†’ 100644

315 Bytes

resources/graphics/info_topleft_small.gif 0 โ†’ 100644

1017 Bytes

resources/graphics/info_topleft_small.png 0 โ†’ 100644

248 Bytes

resources/graphics/info_toprepeat.gif

845 Bytes | W: | H:

846 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
resources/graphics/info_toprepeat.png

244 Bytes | W: | H:

249 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
resources/graphics/info_topright.gif 0 โ†’ 100644

1.16 KB

resources/graphics/info_topright.png 0 โ†’ 100644

400 Bytes

resources/graphics/info_topright_small.gif 0 โ†’ 100644

1.01 KB

resources/graphics/info_topright_small.png 0 โ†’ 100644

306 Bytes

resources/graphics/portlet_bg.gif

836 Bytes | W: | H:

837 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
resources/graphics/portlet_bg.png

299 Bytes | W: | H:

302 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
resources/graphics/portlet_bg_collapsed.gif

820 Bytes | W: | H:

816 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
resources/graphics/portlet_bg_collapsed.png

209 Bytes | W: | H:

193 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
resources/graphics/portlet_borderbottom.png 0 โ†’ 100644

190 Bytes

resources/graphics/portlet_borderrepeat.png 0 โ†’ 100644

179 Bytes

resources/graphics/portlet_borderright.png 0 โ†’ 100644

112 Bytes

resources/graphics/portlet_borderright_future.png 0 โ†’ 100644

188 Bytes

resources/graphics/portlet_corner_bottomleft.gif 0 โ†’ 100644

896 Bytes

resources/graphics/portlet_corner_bottomleft.png 0 โ†’ 100644

265 Bytes

resources/graphics/portlet_corner_bottomright.gif 0 โ†’ 100644

923 Bytes

resources/graphics/portlet_corner_bottomright.png 0 โ†’ 100644

301 Bytes

resources/graphics/portlet_corner_topleft.gif 0 โ†’ 100644

1.63 KB

resources/graphics/portlet_corner_topleft.png 0 โ†’ 100644

1.13 KB

resources/graphics/portlet_corner_topleft_collapsed.gif 0 โ†’ 100644

1.14 KB

resources/graphics/portlet_corner_topleft_collapsed.png 0 โ†’ 100644

518 Bytes

resources/graphics/portlet_corner_topright.gif 0 โ†’ 100644

1.27 KB

resources/graphics/portlet_corner_topright.png 0 โ†’ 100644

785 Bytes

resources/graphics/portlet_corner_topright_collapsed.gif 0 โ†’ 100644

958 Bytes

resources/graphics/portlet_corner_topright_collapsed.png 0 โ†’ 100644

299 Bytes

resources/js/loader.js
... ... @@ -9,14 +9,6 @@ window.onload = function()
9 9 autoPad: false
10 10 }
11 11  
12   - settings_dashlets = {
13   - tl: { radius: 8 },
14   - tr: { radius: 8 },
15   - bl: { radius: 8 },
16   - br: { radius: 8 },
17   - antiAlias: true,
18   - autoPad: false
19   - }
20 12 var browser = $T.getBrowserAgent();
21 13  
22 14 // pageBody
... ... @@ -29,56 +21,4 @@ window.onload = function()
29 21 var footer = document.getElementById("copyrightbarBorder");
30 22 var footerBlock = new curvyCorners(settings, footer);
31 23 footerBlock.applyCornersToAll();
32   -
33   - // standard dashlets
34   - var dashBlock = new curvyCorners(settings_dashlets, "ktBlock");
35   - dashBlock.applyCornersToAll();
36   - var dashboardBlocks = getElementsByClass("ktBlock");
37   - for(var t = 0; t < dashboardBlocks.length; t++){
38   - dashboardBlocks[t].style.margin="0 0 26px 0";
39   - }
40   -
41   - //info dashlets
42   - var infoBlock = new curvyCorners(settings_dashlets, "ktInfo");
43   - infoBlock.applyCornersToAll();
44   - var infodashlets = getElementsByClass("ktInfo");
45   - for(var q = 0; q < infodashlets.length; q++){
46   - infodashlets[q].style.margin="0 0 26px 0";
47   - }
48   -
49   - //info message popups
50   - var infoMessage = new curvyCorners(settings_dashlets, "ktInfoMessage");
51   - infoMessage.applyCornersToAll();
52   - var infoMessages = getElementsByClass("ktInfoMessage");
53   -
54   - //error message dashlets
55   - var errorBlock = new curvyCorners(settings_dashlets, "ktError");
56   - errorBlock.applyCornersToAll();
57   - var errordashlets = getElementsByClass("ktError");
58   - for(var r = 0; r < errordashlets.length; r++){
59   - errordashlets[r].style.margin="0 0 26px 0";
60   - }
61   -
62   - //error message popups
63   - var errorMessage = new curvyCorners(settings_dashlets, "ktErrorMessage");
64   - errorMessage.applyCornersToAll();
65   - var errorMessages = getElementsByClass("ktErrorMessage");
66   -
67   - if(getElementsByClass("noportlets").length != '1'){
68   - //portlets
69   - var portletBlock = new curvyCorners(settings_dashlets, "portlet");
70   - portletBlock.applyCornersToAll();
71   - var portlets = getElementsByClass("portlet");
72   - for(var t = 0; t < portlets.length; t++){
73   - portlets[t].style.margin="0 0 26px 0";
74   - }
75   -
76   - //portlets
77   - var exp_portletBlock = new curvyCorners(settings_dashlets, "portlet expanded");
78   - exp_portletBlock.applyCornersToAll();
79   - var exp_portlets = getElementsByClass("portlet expanded");
80   - for(var u = 0; u < exp_portlets.length; u++){
81   - exp_portlets[u].style.margin="0 0 26px 0";
82   - }
83   - }
84 24 }
85 25 \ No newline at end of file
... ...
templates/kt3/dashboard.smarty
1 1 <div id="dashboard-container-left">
2 2 {foreach item=oDashlet from=$dashlets_left}
3 3 <div class="dashboard_block" id="{$context->_getDashletId($oDashlet)}">
4   - <div class="{$oDashlet->sClass}" id="{$oDashlet->sClass}">
5   -
  4 + <div class="{$oDashlet->sClass}">
  5 + {if $oDashlet->sClass === "ktBlock"}
  6 + <div class="dashboard_block_rightrepeat_top"></div>
  7 + <div class="dashboard_block_rightrepeat_bottom"></div>
  8 + <div class="dashboard_block_leftrepeat_top"></div>
  9 + <div class="dashboard_block_leftrepeat_bottom"></div>
  10 + {/if}
  11 +
  12 + {if $oDashlet->sClass === "ktError"}
  13 + <div class="error_dashlet_rightrepeat_top"></div>
  14 + <div class="error_dashlet_rightrepeat_bottom"></div>
  15 + <div class="error_dashlet_leftrepeat_top"></div>
  16 + <div class="error_dashlet_leftrepeat_bottom"></div>
  17 + {/if}
  18 +
  19 + {if $oDashlet->sClass === "ktInfo"}
  20 + <div class="info_dashlet_rightrepeat_top"></div>
  21 + <div class="info_dashlet_rightrepeat_bottom"></div>
  22 + <div class="info_dashlet_leftrepeat_top"></div>
  23 + <div class="info_dashlet_leftrepeat_bottom"></div>
  24 + {/if}
6 25 <div class="dashboard_block_icons">
7 26 <a href="#" class="action action_rollup">&nbsp;</a>
8 27 <a href="#" class="action action_close">&nbsp;</a>
... ... @@ -13,7 +32,33 @@
13 32 <div class="dashboard_block_body">
14 33 {$oDashlet->render()}
15 34 </div>
16   -
  35 + {if $oDashlet->sClass === "ktBlock"}
  36 + <div class="dashboard_block_topleft"></div>
  37 + <div class="dashboard_block_toprepeat"></div>
  38 + <div class="dashboard_block_topright"></div>
  39 +
  40 + <div class="dashboard_block_bottomleft"></div>
  41 + <div class="dashboard_block_bottomrepeat"></div>
  42 + <div class="dashboard_block_bottomright"></div>
  43 + {/if}
  44 + {if $oDashlet->sClass === "ktError"}
  45 + <div class="error_dashlet_topleft"></div>
  46 + <div class="error_dashlet_toprepeat"></div>
  47 + <div class="error_dashlet_topright"></div>
  48 +
  49 + <div class="error_dashlet_bottomleft"></div>
  50 + <div class="error_dashlet_bottomrepeat"></div>
  51 + <div class="error_dashlet_bottomright"></div>
  52 + {/if}
  53 + {if $oDashlet->sClass === "ktInfo"}
  54 + <div class="info_dashlet_topleft"></div>
  55 + <div class="info_dashlet_toprepeat"></div>
  56 + <div class="info_dashlet_topright"></div>
  57 +
  58 + <div class="info_dashlet_bottomleft"></div>
  59 + <div class="info_dashlet_bottomrepeat"></div>
  60 + <div class="info_dashlet_bottomright"></div>
  61 + {/if}
17 62 </div>
18 63 </div>
19 64 {/foreach}
... ... @@ -23,8 +68,25 @@
23 68 <div id="dashboard-container-right">
24 69 {foreach item=oDashlet from=$dashlets_right}
25 70 <div class="dashboard_block" id="{$context->_getDashletId($oDashlet)}">
26   - <div class="{$oDashlet->sClass}" id="{$oDashlet->sClass}">
27   -
  71 + <div class="{$oDashlet->sClass}">
  72 + {if $oDashlet->sClass === "ktBlock"}
  73 + <div class="dashboard_block_rightrepeat_top"></div>
  74 + <div class="dashboard_block_rightrepeat_bottom"></div>
  75 + <div class="dashboard_block_leftrepeat_top"></div>
  76 + <div class="dashboard_block_leftrepeat_bottom"></div>
  77 + {/if}
  78 + {if $oDashlet->sClass === "ktError"}
  79 + <div class="error_dashlet_rightrepeat_top"></div>
  80 + <div class="error_dashlet_rightrepeat_bottom"></div>
  81 + <div class="error_dashlet_leftrepeat_top"></div>
  82 + <div class="error_dashlet_leftrepeat_bottom"></div>
  83 + {/if}
  84 + {if $oDashlet->sClass === "ktInfo"}
  85 + <div class="info_dashlet_rightrepeat_top"></div>
  86 + <div class="info_dashlet_rightrepeat_bottom"></div>
  87 + <div class="info_dashlet_leftrepeat_top"></div>
  88 + <div class="info_dashlet_leftrepeat_bottom"></div>
  89 + {/if}
28 90 <div class="dashboard_block_icons">
29 91 <a href="#" class="action action_rollup">&nbsp;</a>
30 92 <a href="#" class="action action_close">&nbsp;</a>
... ... @@ -35,7 +97,33 @@
35 97 {$oDashlet->render()}
36 98 </div>
37 99  
38   -
  100 + {if $oDashlet->sClass === "ktBlock"}
  101 + <div class="dashboard_block_topleft"></div>
  102 + <div class="dashboard_block_toprepeat"></div>
  103 + <div class="dashboard_block_topright"></div>
  104 +
  105 + <div class="dashboard_block_bottomleft"></div>
  106 + <div class="dashboard_block_bottomrepeat"></div>
  107 + <div class="dashboard_block_bottomright"></div>
  108 + {/if}
  109 + {if $oDashlet->sClass === "ktError"}
  110 + <div class="error_dashlet_topleft"></div>
  111 + <div class="error_dashlet_toprepeat"></div>
  112 + <div class="error_dashlet_topright"></div>
  113 +
  114 + <div class="error_dashlet_bottomleft"></div>
  115 + <div class="error_dashlet_bottomrepeat"></div>
  116 + <div class="error_dashlet_bottomright"></div>
  117 + {/if}
  118 + {if $oDashlet->sClass === "ktInfo"}
  119 + <div class="info_dashlet_topleft"></div>
  120 + <div class="info_dashlet_toprepeat"></div>
  121 + <div class="info_dashlet_topright"></div>
  122 +
  123 + <div class="info_dashlet_bottomleft"></div>
  124 + <div class="info_dashlet_bottomrepeat"></div>
  125 + <div class="info_dashlet_bottomright"></div>
  126 + {/if}
39 127 </div>
40 128 </div>
41 129 {/foreach}
... ...
templates/kt3/standard_page.smarty
1 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3   -<html>
  3 +<html>
4 4 <head>
5 5 <title>{$page->title}{if ($page->secondary_title != null)} &mdash; {$page->secondary_title}{/if} | {$page->systemName}</title>
6 6  
... ... @@ -152,18 +152,20 @@
152 152 <tr align="left" align="left">
153 153 <td valign="top">
154 154 <div id="portletbar">
155   - {foreach item=oPortlet from=$page->portlets}
156   - {assign var=portlet_output value=$oPortlet->render() }
157   - {if $portlet_output}
158   - <div class="portlet{if $oPortlet->getActive()} expanded{/if}" id="portlet{if $oPortlet->getActive()} expanded{/if}">
159   - <h4 onclick="toggleElementClass('expanded', this.parentNode)">{$oPortlet->getTitle()}</h4>
160   - <div class="portletbody">
161   - {$portlet_output}
162   - </div>
163   - </div>
164   - {/if}
165   - {/foreach}
166   - <div class="floatClear"></div>
  155 + {foreach item=oPortlet from=$page->portlets}
  156 + {assign var=portlet_output value=$oPortlet->render() }
  157 + {if $portlet_output}
  158 + <div class="portlet {if $oPortlet->getActive()}expanded{/if}">
  159 + <h4 onclick="toggleElementClass('expanded',this.parentNode)">{$oPortlet->getTitle()}</h4>
  160 + <div class="portletTopRepeat"></div>
  161 + <div class="portletTopRight"></div>
  162 + <div class="portletbody">
  163 + {$portlet_output}
  164 + </div>
  165 + </div>
  166 + {/if}
  167 + {/foreach}
  168 + <div class="floatClear"></div>
167 169 </div>
168 170 </td>
169 171 <td valign="top" width="100%">
... ... @@ -175,22 +177,40 @@
175 177 {/if}
176 178  
177 179 <!-- any status / error messages get added here. -->
178   - {if (!empty($page->errStack))}
179   - <div class="ktErrorMessage">
180   - {foreach item=sError from=$page->errStack}
181   - <span>{$sError}</span>
182   - {/foreach}
183   - </div>
184   - {/if}
185   -
186   - {if (!empty($page->infoStack))}
187   - <div class="ktInfoMessage">
188   - {foreach item=sInfo from=$page->infoStack}
189   - <span>{$sInfo}</span>
190   - {/foreach}
191   - </div>
192   - {/if}
193   - <!-- and finally, the content. -->
  180 + {if (!empty($page->errStack))}
  181 + <div class="ktError">
  182 + <div class="error_dashlet_rightrepeat_bottom"></div>
  183 + <div class="error_dashlet_leftrepeat_bottom"></div>
  184 + {foreach item=sError from=$page->errStack}
  185 + <p>{$sError}</p>
  186 + {/foreach}
  187 + <div class="error_dashlet_topleft_small"></div>
  188 + <div class="error_dashlet_toprepeat_small"></div>
  189 + <div class="error_dashlet_topright_small"></div>
  190 +
  191 + <div class="error_dashlet_bottomleft"></div>
  192 + <div class="error_dashlet_bottomrepeat_small"></div>
  193 + <div class="error_dashlet_bottomright"></div>
  194 + </div>
  195 + {/if}
  196 +
  197 + {if (!empty($page->infoStack))}
  198 + <div class="ktInfo">
  199 + <div class="info_dashlet_rightrepeat_bottom"></div>
  200 + <div class="info_dashlet_leftrepeat_bottom"></div>
  201 + {foreach item=sInfo from=$page->infoStack}
  202 + <p>{$sInfo}</p>
  203 + {/foreach}
  204 + <div class="info_dashlet_topleft_small"></div>
  205 + <div class="info_dashlet_toprepeat_small"></div>
  206 + <div class="info_dashlet_topright_small"></div>
  207 +
  208 + <div class="info_dashlet_bottomleft"></div>
  209 + <div class="info_dashlet_bottomrepeat_small"></div>
  210 + <div class="info_dashlet_bottomright"></div>
  211 + </div>
  212 + {/if}
  213 + <!-- and finally, the content. -->
194 214 {$page->contents}
195 215 <div class="floatClear"></div>
196 216 </div>
... ...