Stylesheets: Aufräumaktion
authorSven Schöling <s.schoeling@linet-services.de>
Tue, 18 Nov 2014 14:11:13 +0000 (15:11 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Tue, 18 Nov 2014 14:11:13 +0000 (15:11 +0100)
- gemeinsame stylesheets aus den kivitendo/lx-office-erp Verzeichnissen
  genommen
- README aktualisiert
- rp/bwa nicht mehr hartcodiert in kivitendo laden

23 files changed:
SL/Form.pm
bin/mozilla/rp.pl
css/README.stylesheets
css/background_jobs.css [new file with mode: 0644]
css/bwa.css [new file with mode: 0644]
css/common.css [new file with mode: 0644]
css/csshover.htc [new file with mode: 0644]
css/jquery.autocomplete.css [new file with mode: 0644]
css/jquery.contextMenu.css [changed mode: 0755->0644]
css/jquery.multiselect2side.css [new file with mode: 0644]
css/kivitendo/background_jobs.css [deleted symlink]
css/kivitendo/bwa.css [deleted file]
css/kivitendo/csshover.htc [deleted file]
css/kivitendo/jquery.autocomplete.css [deleted symlink]
css/kivitendo/jquery.multiselect2side.css [deleted symlink]
css/kivitendo/main.css
css/lx-office-erp/background_jobs.css [deleted file]
css/lx-office-erp/csshover.htc [deleted file]
css/lx-office-erp/jquery.autocomplete.css [deleted file]
css/lx-office-erp/jquery.multiselect2side.css [deleted file]
css/lx-office-erp/main.css
css/lx-office-erp/menu.css
templates/webpages/rp/bwa.html

index 171b5ff..e35464a 100644 (file)
@@ -467,7 +467,7 @@ sub header {
   # standard css for all
   # this should gradually move to the layouts that need it
   $layout->use_stylesheet("$_.css") for qw(
-    main menu list_accounts jquery.autocomplete
+    main menu common list_accounts jquery.autocomplete
     jquery.multiselect2side
     ui-lightness/jquery-ui
     jquery-ui.custom
index c2ca693..02023f5 100644 (file)
@@ -1849,6 +1849,7 @@ sub generate_bwa {
 
   $form->{title} = $locale->text('BWA');
 
+  $::request->layout->add_stylesheets('bwa.css');
   $form->header;
   print $form->parse_html_template('rp/bwa');
 
index 388672a..5478cea 100644 (file)
@@ -1,16 +1,33 @@
-2012-03-02 - Stylesheet normalization
+Some notes about stylesheets:
 
-After this, the stylesheets follow these conventions:
+* NOT every directory in css/ is considered a style to be chosen. The available
+  stylesheets are hardcoded in at least 3 places:
+  - SL/Auth.pm:read_user
+  - SL/Controller/Admin.pm:init_stylesheets
+  - bin/mozilla/am.pl:config
+  yes it sucks. change it, if you like.
 
-* Every directory in css/ is considered a style to be chosen.
-* lx-office-erp is used as the fallback style if no style was found or the
-  style chosen was invalid.
-* Missing stylesheets for the other styles have been
-  linked from lx-office-erp, so that they will used like before.
-* If you edit a file, make sure it's not a symlink.
-* The previous named stylesheets are now main.css in their respective directories.
-* menuv3 and menuv4 are now distict so that it's possible to include both
-  without overriding each other.
-* All relative image links needed to get bumped an additional ../
-* If you add another style, be sure to test tabs, calendars, all menus,
-  autocompletion, charts, and multiselect.
+* If a stylesheet is requests from controller code, it is searched in this order:
+  - css/<stylesheet_of_current_user>/<path>
+  - css/<path>
+  - <path>
+
+  so common libraries can be put higher here, to be included by any stylesheet
+
+* 'kivitendo' is used as the fallback style if no style was found or the style
+  chosen was invalid.
+
+* Pay attention to the position of relative image urls. Most should not be
+  included in css anyway but should use the generated icon maps. For the rest,
+  a couple of ../ may be needed to get the right path.
+
+* If you edit another styles, these are things that are known to get broken.
+  Be sure to test them thoroughly:
+  - tabs
+  - calendars
+  - all menus
+  - autocompletion (parts/customers)
+  - charts of accounts
+  - multiselect
+  - ckeeditor
+  - jquery-ui widgets (i hate those things)
diff --git a/css/background_jobs.css b/css/background_jobs.css
new file mode 100644 (file)
index 0000000..e390bb5
--- /dev/null
@@ -0,0 +1,14 @@
+/* Jobverwaltung */
+.background_job_list    tbody pre,
+.background_job_details tbody pre {
+  margin: 0px;
+}
+
+.background_job_details tbody th {
+  text-align: right;
+  vertical-align: top;
+}
+
+.background_job_details tbody td {
+  vertical-align: top;
+}
diff --git a/css/bwa.css b/css/bwa.css
new file mode 100644 (file)
index 0000000..4357a97
--- /dev/null
@@ -0,0 +1,64 @@
+/* Allgemeine Schriftdefinition */
+th,td {
+       font-family: Arial, Verdana, Helvetica, Sans-serif;
+       font-size:small;
+}
+
+@page {
+       size: landscape;
+       margin: 0.5cm;
+}
+
+/* Definition Tabellenueberschrift */
+
+.left  { text-align:left; }
+.center        { text-align:center; }
+.right { text-align:right; }
+
+tr.headline    { border:0; }
+tr.headline td { border:0; }
+h3 { font-size:120%; }
+h3 { font-size:100%; }
+
+/* Tabellenkopf */
+th {
+       font-weight: bold;
+       border-bottom: solid thin black;
+       padding:0 10px;
+       text-align:right;
+}
+
+th.left  { border-left:  solid thin black; }
+th.right { border-right: solid thin black; }
+
+.querkopf th.right { text-align:center; }
+.querkopf th {
+       border-top: solid thin black;
+       border-bottom:0;
+}
+
+/* Tabelleninhalt */
+td {
+       text-align:right;
+       padding:0 0.5em;
+}
+td.left  { border-left:  solid thin black; }
+td.right { border-right: solid thin black; }
+
+
+/* jede zweite Zeile grau hinterlegen */
+tr.grey {
+       background:#f0f0f0;
+}
+
+/* letzte Zeile in der Tabelle */
+#last td{ border-bottom: solid thin black; }
+
+/* Zwischensumme/-ueberschriften */
+tr.subtotal td { font-weight: bold; }
+
+/* Fusszeile unter der Tabelle */
+td.footer {
+       text-align:right;
+       font-size:smaller;
+}
diff --git a/css/common.css b/css/common.css
new file mode 100644 (file)
index 0000000..ffb5e18
--- /dev/null
@@ -0,0 +1,52 @@
+
+/* class for numeric columns in tables */
+.numeric { text-align: right }
+
+/* various oneshot decoration for legacy purpose. dont use */
+.small-text { font-size: 70% }
+.bold       { font-weight: bold }
+
+.float-left  { float: left  }
+.float-right { float: right }
+
+/* quirk to force certain constructs to block context */
+.block-context { overflow: hidden }
+
+/* position */
+.position-relative { position: relative }
+.position-absolute { position: absolute }
+
+
+/* media stuff */
+@media screen {   .noscreen { display: none } }
+@media print {    .noprint  { display: none } }
+@media handheld { .nomobile { display: none } }
+
+body { behavior:url("csshover.htc") }
+
+/* class to fix container around floats */
+.clearfix:after {
+  clear:both;
+  content:".";
+  display:block;
+  font-size:0;
+  height:0;
+  visibility:hidden;
+}
+
+/* CTI */
+a.cti_call_action {
+  display: inline-block;
+  padding-left: 18px;
+  height: 16px;
+  position: relative;
+  top: 2px;
+  vertical-align: center;
+  background-image: url(../../image/icons/16x16/phone.png);
+  background-repeat: no-repeat;
+}
+
+/* the cvars table in the 2. row */
+.row2-cvars-table tr { vertical-align: top }
+.row2-cvars-table th { text-align: right; padding-left: 15px; padding-right: 0 }
+.row2-cvars-table td, .row2-cvars-table th { padding-top: 10px }
diff --git a/css/csshover.htc b/css/csshover.htc
new file mode 100644 (file)
index 0000000..e2dcced
--- /dev/null
@@ -0,0 +1,121 @@
+<attach event="ondocumentready" handler="parseStylesheets" />\r
+<script>\r
+/**\r
+ *     Whatever:hover - V2.02.060206 - hover, active & focus\r
+ *     ------------------------------------------------------------\r
+ *     (c) 2005 - Peter Nederlof\r
+ *     Peterned - http://www.xs4all.nl/~peterned/\r
+ *     License  - http://creativecommons.org/licenses/LGPL/2.1/\r
+ *\r
+ *     Whatever:hover is free software; you can redistribute it and/or\r
+ *     modify it under the terms of the GNU Lesser General Public\r
+ *     License as published by the Free Software Foundation; either\r
+ *     version 2.1 of the License, or (at your option) any later version.\r
+ *\r
+ *     Whatever:hover is distributed in the hope that it will be useful,\r
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
+ *     Lesser General Public License for more details.\r
+ *\r
+ *     Credits and thanks to:\r
+ *     Arnoud Berendsen, Martin Reurings, Robert Hanson\r
+ *\r
+ *     howto: body { behavior:url("csshover.htc"); }\r
+ *     ------------------------------------------------------------\r
+ */\r
+\r
+var csshoverReg = /(^|\s)((([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active))|((a|input|textarea)([#.][^ ]+)?:unknown)/i,\r
+currentSheet, doc = window.document, hoverEvents = [], activators = {\r
+       onhover:{on:'onmouseover', off:'onmouseout'},\r
+       onactive:{on:'onmousedown', off:'onmouseup'},\r
+       onunknown:{on:'onfocus', off:'onblur'}\r
+}\r
+\r
+function parseStylesheets() {\r
+       if(!/MSIE (5|6)/.test(navigator.userAgent)) return;\r
+       window.attachEvent('onunload', unhookHoverEvents);\r
+       var sheets = doc.styleSheets, l = sheets.length;\r
+       for(var i=0; i<l; i++) \r
+               parseStylesheet(sheets[i]);\r
+}\r
+       function parseStylesheet(sheet) {\r
+               if(sheet.imports) {\r
+                       try {\r
+                               var imports = sheet.imports, l = imports.length;\r
+                               for(var i=0; i<l; i++) parseStylesheet(sheet.imports[i]);\r
+                       } catch(securityException){}\r
+               }\r
+\r
+               try {\r
+                       var rules = (currentSheet = sheet).rules, l = rules.length;\r
+                       for(var j=0; j<l; j++) parseCSSRule(rules[j]);\r
+               } catch(securityException){}\r
+       }\r
+\r
+       function parseCSSRule(rule) {\r
+               var select = rule.selectorText, style = rule.style.cssText;\r
+               if(!csshoverReg.test(select) || !style) return;\r
+               \r
+               var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, 'on$1');\r
+               var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2' + pseudo);\r
+               var className = (/\.([a-z0-9_-]*on(hover|active|unknown))/i).exec(newSelect)[1];\r
+               var affected = select.replace(/:(hover|active|unknown).*$/, '');\r
+               var elements = getElementsBySelect(affected);\r
+               if(elements.length == 0) return;\r
+\r
+               currentSheet.addRule(newSelect, style);\r
+               for(var i=0; i<elements.length; i++)\r
+                       new HoverElement(elements[i], className, activators[pseudo]);\r
+       }\r
+\r
+function HoverElement(node, className, events) {\r
+       if(!node.hovers) node.hovers = {};\r
+       if(node.hovers[className]) return;\r
+       node.hovers[className] = true;\r
+       hookHoverEvent(node, events.on, function() { node.className += ' ' + className; });\r
+       hookHoverEvent(node, events.off, function() { node.className = node.className.replace(new RegExp('\\s+'+className, 'g'),''); });\r
+}\r
+       function hookHoverEvent(node, type, handler) {\r
+               node.attachEvent(type, handler);\r
+               hoverEvents[hoverEvents.length] = { \r
+                       node:node, type:type, handler:handler \r
+               };\r
+       }\r
+\r
+       function unhookHoverEvents() {\r
+               for(var e,i=0; i<hoverEvents.length; i++) {\r
+                       e = hoverEvents[i]; \r
+                       e.node.detachEvent(e.type, e.handler);\r
+               }\r
+       }\r
+\r
+function getElementsBySelect(rule) {\r
+       var parts, nodes = [doc];\r
+       parts = rule.split(' ');\r
+       for(var i=0; i<parts.length; i++) {\r
+               nodes = getSelectedNodes(parts[i], nodes);\r
+       }       return nodes;\r
+}\r
+       function getSelectedNodes(select, elements) {\r
+               var result, node, nodes = [];\r
+               var identify = (/\#([a-z0-9_-]+)/i).exec(select);\r
+               if(identify) {\r
+                       var element = doc.getElementById(identify[1]);\r
+                       return element? [element]:nodes;\r
+               }\r
+               \r
+               var classname = (/\.([a-z0-9_-]+)/i).exec(select);\r
+               var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, '');\r
+               var classReg = classname? new RegExp('\\b' + classname[1] + '\\b'):false;\r
+               for(var i=0; i<elements.length; i++) {\r
+                       result = tagName? elements[i].all.tags(tagName):elements[i].all; \r
+                       for(var j=0; j<result.length; j++) {\r
+                               node = result[j];\r
+                               if(classReg && !classReg.test(node.className)) continue;\r
+                               nodes[nodes.length] = node;\r
+                       }\r
+               }       \r
+               \r
+               return nodes;\r
+       }\r
+</script>
\ No newline at end of file
diff --git a/css/jquery.autocomplete.css b/css/jquery.autocomplete.css
new file mode 100644 (file)
index 0000000..91b6228
--- /dev/null
@@ -0,0 +1,48 @@
+.ac_results {
+       padding: 0px;
+       border: 1px solid black;
+       background-color: white;
+       overflow: hidden;
+       z-index: 99999;
+}
+
+.ac_results ul {
+       width: 100%;
+       list-style-position: outside;
+       list-style: none;
+       padding: 0;
+       margin: 0;
+}
+
+.ac_results li {
+       margin: 0px;
+       padding: 2px 5px;
+       cursor: default;
+       display: block;
+       /* 
+       if width will be 100% horizontal scrollbar will apear 
+       when scroll mode will be used
+       */
+       /*width: 100%;*/
+       font: menu;
+       font-size: 12px;
+       /* 
+       it is very important, if line-height not setted or setted 
+       in relative units scroll will be broken in firefox
+       */
+       line-height: 16px;
+       overflow: hidden;
+}
+
+.ac_loading {
+       background: white url('indicator.gif') right center no-repeat;
+}
+
+.ac_odd {
+       background-color: #eee;
+}
+
+.ac_over {
+       background-color: #0A246A;
+       color: white;
+}
old mode 100755 (executable)
new mode 100644 (file)
diff --git a/css/jquery.multiselect2side.css b/css/jquery.multiselect2side.css
new file mode 100644 (file)
index 0000000..53352fc
--- /dev/null
@@ -0,0 +1,57 @@
+/* multiselect2side plugin */
+.ms2side__div {
+       clear: left;
+       width: 100%;
+       padding: 1px;
+       float: left;
+       background : url('') repeat-x; /* HACK FOR CHROME */
+}
+
+.ms2side__select {
+       float: left;
+}
+
+.ms2side__header {
+       color: blue;
+       background-color: #EEEEFF;
+}
+
+.ms2side__options, .ms2side__updown {
+       float: left;
+       font-size: 10pt;
+       margin: 0;
+       padding: 0 8px;
+       width: 40px;
+       color: black;
+       text-align: center;
+       overflow: hidden;
+}
+
+.ms2side__updown {
+       font-size: 9pt;
+}
+
+.ms2side__options p, .ms2side__updown p {
+       margin: 2px 0;
+       padding: 0;
+       cursor: pointer;
+       border: 1px solid black;
+}
+
+.ms2side__options p.ms2side_hover, .ms2side__updown p.ms2side_hover {
+       background-color: #F0F0FF;
+       border-color: #0000FF;
+       cursor: pointer;
+}
+
+.ms2side__options p.ms2side__hide, .ms2side__updown p.ms2side__hide {
+       cursor: default;
+       color: grey;
+       border: 1px solid grey;
+       background-color: #F0F0F0;
+}
+
+.ms2side__div select {
+       width: 400px;
+       float: left;
+}
diff --git a/css/kivitendo/background_jobs.css b/css/kivitendo/background_jobs.css
deleted file mode 120000 (symlink)
index 8031c94..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../lx-office-erp/background_jobs.css
\ No newline at end of file
diff --git a/css/kivitendo/bwa.css b/css/kivitendo/bwa.css
deleted file mode 100644 (file)
index 4357a97..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Allgemeine Schriftdefinition */
-th,td {
-       font-family: Arial, Verdana, Helvetica, Sans-serif;
-       font-size:small;
-}
-
-@page {
-       size: landscape;
-       margin: 0.5cm;
-}
-
-/* Definition Tabellenueberschrift */
-
-.left  { text-align:left; }
-.center        { text-align:center; }
-.right { text-align:right; }
-
-tr.headline    { border:0; }
-tr.headline td { border:0; }
-h3 { font-size:120%; }
-h3 { font-size:100%; }
-
-/* Tabellenkopf */
-th {
-       font-weight: bold;
-       border-bottom: solid thin black;
-       padding:0 10px;
-       text-align:right;
-}
-
-th.left  { border-left:  solid thin black; }
-th.right { border-right: solid thin black; }
-
-.querkopf th.right { text-align:center; }
-.querkopf th {
-       border-top: solid thin black;
-       border-bottom:0;
-}
-
-/* Tabelleninhalt */
-td {
-       text-align:right;
-       padding:0 0.5em;
-}
-td.left  { border-left:  solid thin black; }
-td.right { border-right: solid thin black; }
-
-
-/* jede zweite Zeile grau hinterlegen */
-tr.grey {
-       background:#f0f0f0;
-}
-
-/* letzte Zeile in der Tabelle */
-#last td{ border-bottom: solid thin black; }
-
-/* Zwischensumme/-ueberschriften */
-tr.subtotal td { font-weight: bold; }
-
-/* Fusszeile unter der Tabelle */
-td.footer {
-       text-align:right;
-       font-size:smaller;
-}
diff --git a/css/kivitendo/csshover.htc b/css/kivitendo/csshover.htc
deleted file mode 100644 (file)
index e2dcced..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-<attach event="ondocumentready" handler="parseStylesheets" />\r
-<script>\r
-/**\r
- *     Whatever:hover - V2.02.060206 - hover, active & focus\r
- *     ------------------------------------------------------------\r
- *     (c) 2005 - Peter Nederlof\r
- *     Peterned - http://www.xs4all.nl/~peterned/\r
- *     License  - http://creativecommons.org/licenses/LGPL/2.1/\r
- *\r
- *     Whatever:hover is free software; you can redistribute it and/or\r
- *     modify it under the terms of the GNU Lesser General Public\r
- *     License as published by the Free Software Foundation; either\r
- *     version 2.1 of the License, or (at your option) any later version.\r
- *\r
- *     Whatever:hover is distributed in the hope that it will be useful,\r
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- *     Lesser General Public License for more details.\r
- *\r
- *     Credits and thanks to:\r
- *     Arnoud Berendsen, Martin Reurings, Robert Hanson\r
- *\r
- *     howto: body { behavior:url("csshover.htc"); }\r
- *     ------------------------------------------------------------\r
- */\r
-\r
-var csshoverReg = /(^|\s)((([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active))|((a|input|textarea)([#.][^ ]+)?:unknown)/i,\r
-currentSheet, doc = window.document, hoverEvents = [], activators = {\r
-       onhover:{on:'onmouseover', off:'onmouseout'},\r
-       onactive:{on:'onmousedown', off:'onmouseup'},\r
-       onunknown:{on:'onfocus', off:'onblur'}\r
-}\r
-\r
-function parseStylesheets() {\r
-       if(!/MSIE (5|6)/.test(navigator.userAgent)) return;\r
-       window.attachEvent('onunload', unhookHoverEvents);\r
-       var sheets = doc.styleSheets, l = sheets.length;\r
-       for(var i=0; i<l; i++) \r
-               parseStylesheet(sheets[i]);\r
-}\r
-       function parseStylesheet(sheet) {\r
-               if(sheet.imports) {\r
-                       try {\r
-                               var imports = sheet.imports, l = imports.length;\r
-                               for(var i=0; i<l; i++) parseStylesheet(sheet.imports[i]);\r
-                       } catch(securityException){}\r
-               }\r
-\r
-               try {\r
-                       var rules = (currentSheet = sheet).rules, l = rules.length;\r
-                       for(var j=0; j<l; j++) parseCSSRule(rules[j]);\r
-               } catch(securityException){}\r
-       }\r
-\r
-       function parseCSSRule(rule) {\r
-               var select = rule.selectorText, style = rule.style.cssText;\r
-               if(!csshoverReg.test(select) || !style) return;\r
-               \r
-               var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, 'on$1');\r
-               var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2' + pseudo);\r
-               var className = (/\.([a-z0-9_-]*on(hover|active|unknown))/i).exec(newSelect)[1];\r
-               var affected = select.replace(/:(hover|active|unknown).*$/, '');\r
-               var elements = getElementsBySelect(affected);\r
-               if(elements.length == 0) return;\r
-\r
-               currentSheet.addRule(newSelect, style);\r
-               for(var i=0; i<elements.length; i++)\r
-                       new HoverElement(elements[i], className, activators[pseudo]);\r
-       }\r
-\r
-function HoverElement(node, className, events) {\r
-       if(!node.hovers) node.hovers = {};\r
-       if(node.hovers[className]) return;\r
-       node.hovers[className] = true;\r
-       hookHoverEvent(node, events.on, function() { node.className += ' ' + className; });\r
-       hookHoverEvent(node, events.off, function() { node.className = node.className.replace(new RegExp('\\s+'+className, 'g'),''); });\r
-}\r
-       function hookHoverEvent(node, type, handler) {\r
-               node.attachEvent(type, handler);\r
-               hoverEvents[hoverEvents.length] = { \r
-                       node:node, type:type, handler:handler \r
-               };\r
-       }\r
-\r
-       function unhookHoverEvents() {\r
-               for(var e,i=0; i<hoverEvents.length; i++) {\r
-                       e = hoverEvents[i]; \r
-                       e.node.detachEvent(e.type, e.handler);\r
-               }\r
-       }\r
-\r
-function getElementsBySelect(rule) {\r
-       var parts, nodes = [doc];\r
-       parts = rule.split(' ');\r
-       for(var i=0; i<parts.length; i++) {\r
-               nodes = getSelectedNodes(parts[i], nodes);\r
-       }       return nodes;\r
-}\r
-       function getSelectedNodes(select, elements) {\r
-               var result, node, nodes = [];\r
-               var identify = (/\#([a-z0-9_-]+)/i).exec(select);\r
-               if(identify) {\r
-                       var element = doc.getElementById(identify[1]);\r
-                       return element? [element]:nodes;\r
-               }\r
-               \r
-               var classname = (/\.([a-z0-9_-]+)/i).exec(select);\r
-               var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, '');\r
-               var classReg = classname? new RegExp('\\b' + classname[1] + '\\b'):false;\r
-               for(var i=0; i<elements.length; i++) {\r
-                       result = tagName? elements[i].all.tags(tagName):elements[i].all; \r
-                       for(var j=0; j<result.length; j++) {\r
-                               node = result[j];\r
-                               if(classReg && !classReg.test(node.className)) continue;\r
-                               nodes[nodes.length] = node;\r
-                       }\r
-               }       \r
-               \r
-               return nodes;\r
-       }\r
-</script>
\ No newline at end of file
diff --git a/css/kivitendo/jquery.autocomplete.css b/css/kivitendo/jquery.autocomplete.css
deleted file mode 120000 (symlink)
index dc11231..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../lx-office-erp/jquery.autocomplete.css
\ No newline at end of file
diff --git a/css/kivitendo/jquery.multiselect2side.css b/css/kivitendo/jquery.multiselect2side.css
deleted file mode 120000 (symlink)
index 270f1a2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../lx-office-erp/jquery.multiselect2side.css
\ No newline at end of file
index c11c5fe..c66187e 100644 (file)
@@ -309,19 +309,6 @@ fieldset {
        color: black;
        font-weight: bolder;
 }
-/* media stuff */
-@media screen {
-.noscreen {
-/* items with this class won't display */
-       display: none;
-}
-}
-@media print {
-.noprint {
-/* items with this class won't print */
-       display: none;
-}
-}
 .filecontent {
        border: 1px solid blue;
        padding-left: 2px;
@@ -334,13 +321,6 @@ label {
 .unbalanced_ledger {
        background-color: #ffa0a0;
 }
-.clearfix:after {
-       clear: both;
-       content: ".";
-       display: block;
-       height: 0;
-       visibility: hidden;
-}
 .flash_message_error {
        background-color: #FFD6D6;
        border: 1px solid #AE0014;
@@ -377,33 +357,6 @@ label {
   margin-right: 6px;
 }
 
-.small-text {
-  font-size: 0.75em;
-}
-
-.float-left {
-  float: left;
-}
-.float-right {
-  float: right;
-}
-
-.block-context {
-  overflow: hidden;
-}
-
-.position-relative {
-  position: relative;
-}
-
-.position-absolute {
-  position: absolute;
-}
-
-.part_picker {
-  padding-right: 16px;
-}
-
 .customer-vendor-picker-undefined,
 .partpicker-undefined {
   color: red;
@@ -449,20 +402,3 @@ div.ppp_line span.ppp_block_sellprice {
 span.toggle_selected {
   font-weight: bold;
 }
-
-/* CTI */
-a.cti_call_action {
-  display: inline-block;
-  padding-left: 18px;
-  height: 16px;
-  position: relative;
-  top: 2px;
-  vertical-align: center;
-  background-image: url(../../image/icons/16x16/phone.png);
-  background-repeat: no-repeat;
-}
-
-/* the cvars table in the 2. row */
-.row2-cvars-table tr {vertical-align: top;}
-.row2-cvars-table th {text-align: right; padding-left: 15px; padding-right: 0;}
-.row2-cvars-table td, .row2-cvars-table th {padding-top: 10px;}
diff --git a/css/lx-office-erp/background_jobs.css b/css/lx-office-erp/background_jobs.css
deleted file mode 100644 (file)
index e390bb5..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Jobverwaltung */
-.background_job_list    tbody pre,
-.background_job_details tbody pre {
-  margin: 0px;
-}
-
-.background_job_details tbody th {
-  text-align: right;
-  vertical-align: top;
-}
-
-.background_job_details tbody td {
-  vertical-align: top;
-}
diff --git a/css/lx-office-erp/csshover.htc b/css/lx-office-erp/csshover.htc
deleted file mode 100644 (file)
index e2dcced..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-<attach event="ondocumentready" handler="parseStylesheets" />\r
-<script>\r
-/**\r
- *     Whatever:hover - V2.02.060206 - hover, active & focus\r
- *     ------------------------------------------------------------\r
- *     (c) 2005 - Peter Nederlof\r
- *     Peterned - http://www.xs4all.nl/~peterned/\r
- *     License  - http://creativecommons.org/licenses/LGPL/2.1/\r
- *\r
- *     Whatever:hover is free software; you can redistribute it and/or\r
- *     modify it under the terms of the GNU Lesser General Public\r
- *     License as published by the Free Software Foundation; either\r
- *     version 2.1 of the License, or (at your option) any later version.\r
- *\r
- *     Whatever:hover is distributed in the hope that it will be useful,\r
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- *     Lesser General Public License for more details.\r
- *\r
- *     Credits and thanks to:\r
- *     Arnoud Berendsen, Martin Reurings, Robert Hanson\r
- *\r
- *     howto: body { behavior:url("csshover.htc"); }\r
- *     ------------------------------------------------------------\r
- */\r
-\r
-var csshoverReg = /(^|\s)((([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active))|((a|input|textarea)([#.][^ ]+)?:unknown)/i,\r
-currentSheet, doc = window.document, hoverEvents = [], activators = {\r
-       onhover:{on:'onmouseover', off:'onmouseout'},\r
-       onactive:{on:'onmousedown', off:'onmouseup'},\r
-       onunknown:{on:'onfocus', off:'onblur'}\r
-}\r
-\r
-function parseStylesheets() {\r
-       if(!/MSIE (5|6)/.test(navigator.userAgent)) return;\r
-       window.attachEvent('onunload', unhookHoverEvents);\r
-       var sheets = doc.styleSheets, l = sheets.length;\r
-       for(var i=0; i<l; i++) \r
-               parseStylesheet(sheets[i]);\r
-}\r
-       function parseStylesheet(sheet) {\r
-               if(sheet.imports) {\r
-                       try {\r
-                               var imports = sheet.imports, l = imports.length;\r
-                               for(var i=0; i<l; i++) parseStylesheet(sheet.imports[i]);\r
-                       } catch(securityException){}\r
-               }\r
-\r
-               try {\r
-                       var rules = (currentSheet = sheet).rules, l = rules.length;\r
-                       for(var j=0; j<l; j++) parseCSSRule(rules[j]);\r
-               } catch(securityException){}\r
-       }\r
-\r
-       function parseCSSRule(rule) {\r
-               var select = rule.selectorText, style = rule.style.cssText;\r
-               if(!csshoverReg.test(select) || !style) return;\r
-               \r
-               var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, 'on$1');\r
-               var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2' + pseudo);\r
-               var className = (/\.([a-z0-9_-]*on(hover|active|unknown))/i).exec(newSelect)[1];\r
-               var affected = select.replace(/:(hover|active|unknown).*$/, '');\r
-               var elements = getElementsBySelect(affected);\r
-               if(elements.length == 0) return;\r
-\r
-               currentSheet.addRule(newSelect, style);\r
-               for(var i=0; i<elements.length; i++)\r
-                       new HoverElement(elements[i], className, activators[pseudo]);\r
-       }\r
-\r
-function HoverElement(node, className, events) {\r
-       if(!node.hovers) node.hovers = {};\r
-       if(node.hovers[className]) return;\r
-       node.hovers[className] = true;\r
-       hookHoverEvent(node, events.on, function() { node.className += ' ' + className; });\r
-       hookHoverEvent(node, events.off, function() { node.className = node.className.replace(new RegExp('\\s+'+className, 'g'),''); });\r
-}\r
-       function hookHoverEvent(node, type, handler) {\r
-               node.attachEvent(type, handler);\r
-               hoverEvents[hoverEvents.length] = { \r
-                       node:node, type:type, handler:handler \r
-               };\r
-       }\r
-\r
-       function unhookHoverEvents() {\r
-               for(var e,i=0; i<hoverEvents.length; i++) {\r
-                       e = hoverEvents[i]; \r
-                       e.node.detachEvent(e.type, e.handler);\r
-               }\r
-       }\r
-\r
-function getElementsBySelect(rule) {\r
-       var parts, nodes = [doc];\r
-       parts = rule.split(' ');\r
-       for(var i=0; i<parts.length; i++) {\r
-               nodes = getSelectedNodes(parts[i], nodes);\r
-       }       return nodes;\r
-}\r
-       function getSelectedNodes(select, elements) {\r
-               var result, node, nodes = [];\r
-               var identify = (/\#([a-z0-9_-]+)/i).exec(select);\r
-               if(identify) {\r
-                       var element = doc.getElementById(identify[1]);\r
-                       return element? [element]:nodes;\r
-               }\r
-               \r
-               var classname = (/\.([a-z0-9_-]+)/i).exec(select);\r
-               var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, '');\r
-               var classReg = classname? new RegExp('\\b' + classname[1] + '\\b'):false;\r
-               for(var i=0; i<elements.length; i++) {\r
-                       result = tagName? elements[i].all.tags(tagName):elements[i].all; \r
-                       for(var j=0; j<result.length; j++) {\r
-                               node = result[j];\r
-                               if(classReg && !classReg.test(node.className)) continue;\r
-                               nodes[nodes.length] = node;\r
-                       }\r
-               }       \r
-               \r
-               return nodes;\r
-       }\r
-</script>
\ No newline at end of file
diff --git a/css/lx-office-erp/jquery.autocomplete.css b/css/lx-office-erp/jquery.autocomplete.css
deleted file mode 100644 (file)
index 91b6228..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-.ac_results {
-       padding: 0px;
-       border: 1px solid black;
-       background-color: white;
-       overflow: hidden;
-       z-index: 99999;
-}
-
-.ac_results ul {
-       width: 100%;
-       list-style-position: outside;
-       list-style: none;
-       padding: 0;
-       margin: 0;
-}
-
-.ac_results li {
-       margin: 0px;
-       padding: 2px 5px;
-       cursor: default;
-       display: block;
-       /* 
-       if width will be 100% horizontal scrollbar will apear 
-       when scroll mode will be used
-       */
-       /*width: 100%;*/
-       font: menu;
-       font-size: 12px;
-       /* 
-       it is very important, if line-height not setted or setted 
-       in relative units scroll will be broken in firefox
-       */
-       line-height: 16px;
-       overflow: hidden;
-}
-
-.ac_loading {
-       background: white url('indicator.gif') right center no-repeat;
-}
-
-.ac_odd {
-       background-color: #eee;
-}
-
-.ac_over {
-       background-color: #0A246A;
-       color: white;
-}
diff --git a/css/lx-office-erp/jquery.multiselect2side.css b/css/lx-office-erp/jquery.multiselect2side.css
deleted file mode 100644 (file)
index 53352fc..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/* multiselect2side plugin */
-.ms2side__div {
-       clear: left;
-       width: 100%;
-       padding: 1px;
-       float: left;
-       background : url('') repeat-x; /* HACK FOR CHROME */
-}
-
-.ms2side__select {
-       float: left;
-}
-
-.ms2side__header {
-       color: blue;
-       background-color: #EEEEFF;
-}
-
-.ms2side__options, .ms2side__updown {
-       float: left;
-       font-size: 10pt;
-       margin: 0;
-       padding: 0 8px;
-       width: 40px;
-       color: black;
-       text-align: center;
-       overflow: hidden;
-}
-
-.ms2side__updown {
-       font-size: 9pt;
-}
-
-.ms2side__options p, .ms2side__updown p {
-       margin: 2px 0;
-       padding: 0;
-       cursor: pointer;
-       border: 1px solid black;
-}
-
-.ms2side__options p.ms2side_hover, .ms2side__updown p.ms2side_hover {
-       background-color: #F0F0FF;
-       border-color: #0000FF;
-       cursor: pointer;
-}
-
-.ms2side__options p.ms2side__hide, .ms2side__updown p.ms2side__hide {
-       cursor: default;
-       color: grey;
-       border: 1px solid grey;
-       background-color: #F0F0F0;
-}
-
-.ms2side__div select {
-       width: 400px;
-       float: left;
-}
index 09ba804..812879a 100644 (file)
@@ -296,10 +296,6 @@ div.admin {
   color: green;
 }
 
-td.numeric { /* class for numeric columns in tables */
-  text-align: right
-}
-
 h2.confirm {
   color: blue;
   font-size: 14pt;
@@ -316,19 +312,6 @@ fieldset {
   font-weight: bolder;
 }
 
-/* media stuff */
-
-@media screen {
-  .noscreen {   /* items with this class won't display */
-    display: none;
-  }
-}
-
-@media print {
-  .noprint {   /* items with this class won't print */
-    display: none;
-  }
-}
 
 .filecontent {
   border: 1px solid blue;
@@ -344,15 +327,6 @@ label {
   background-color: #ffa0a0;
 }
 
-.clearfix:after {
-  clear:both;
-  content:".";
-  display:block;
-  font-size:0;
-  height:0;
-  visibility:hidden;
-}
-
 .flash_message_error {
   background-color:#FFD6D6;
   border: 1px solid #AE0014;
@@ -429,29 +403,6 @@ label {
   margin-right: 6px;
 }
 
-.small-text {
-  font-size: 0.75em;
-}
-
-.float-left {
-  float: left;
-}
-.float-right {
-  float: right;
-}
-
-.block-context {
-  overflow: hidden;
-}
-
-.position-relative {
-  position: relative;
-}
-
-.position-absolute {
-  position: absolute;
-}
-
 .part_picker {
   padding-right: 16px;
 }
@@ -498,20 +449,3 @@ div.ppp_line span.ppp_block_sellprice {
 span.toggle_selected {
   font-weight: bold;
 }
-
-/* CTI */
-a.cti_call_action {
-  display: inline-block;
-  padding-left: 18px;
-  height: 16px;
-  position: relative;
-  top: 2px;
-  vertical-align: center;
-  background-image: url(../../image/icons/16x16/phone.png);
-  background-repeat: no-repeat;
-}
-
-/* the cvars table in the 2. row */
-.row2-cvars-table tr {vertical-align: top;}
-.row2-cvars-table th {text-align: right; padding-left: 15px; padding-right: 0;}
-.row2-cvars-table td, .row2-cvars-table th {padding-top: 10px;}
index 42eb844..5ebbd85 100644 (file)
@@ -25,10 +25,6 @@ body.menunew {
   margin:0px;
 }
 
-body {
-behavior:url("csshover.htc");
-}
-
 #menuv3 {
 width:99.8%;
 float:left;
index 52d291e..50c323f 100644 (file)
@@ -2,8 +2,6 @@
 [%- USE HTML %]
 [%- USE LxERP %]
 
-<link rel="stylesheet" type="text/css" href="css/kivitendo/bwa.css">
-
 <table border=0 cellpadding=0 cellspacing=0>
 <tr class="headline">
   <td class="left">[% company %]</td>