Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 7ee5fab8

Von Sven Schöling vor etwa 10 Jahren hinzugefügt

  • ID 7ee5fab89c8ef14f442e686a23635e4a6fd3f2ee
  • Vorgänger 317601e4
  • Nachfolger ca86a307

Stylesheets: Aufräumaktion

- gemeinsame stylesheets aus den kivitendo/lx-office-erp Verzeichnissen
genommen
- README aktualisiert
- rp/bwa nicht mehr hartcodiert in kivitendo laden

Unterschiede anzeigen:

SL/Form.pm
467 467
  # standard css for all
468 468
  # this should gradually move to the layouts that need it
469 469
  $layout->use_stylesheet("$_.css") for qw(
470
    main menu list_accounts jquery.autocomplete
470
    main menu common list_accounts jquery.autocomplete
471 471
    jquery.multiselect2side
472 472
    ui-lightness/jquery-ui
473 473
    jquery-ui.custom
bin/mozilla/rp.pl
1849 1849

  
1850 1850
  $form->{title} = $locale->text('BWA');
1851 1851

  
1852
  $::request->layout->add_stylesheets('bwa.css');
1852 1853
  $form->header;
1853 1854
  print $form->parse_html_template('rp/bwa');
1854 1855

  
css/README.stylesheets
1
2012-03-02 - Stylesheet normalization
1
Some notes about stylesheets:
2 2

  
3
After this, the stylesheets follow these conventions:
3
* NOT every directory in css/ is considered a style to be chosen. The available
4
  stylesheets are hardcoded in at least 3 places:
5
  - SL/Auth.pm:read_user
6
  - SL/Controller/Admin.pm:init_stylesheets
7
  - bin/mozilla/am.pl:config
8
  yes it sucks. change it, if you like.
4 9

  
5
* Every directory in css/ is considered a style to be chosen.
6
* lx-office-erp is used as the fallback style if no style was found or the
7
  style chosen was invalid.
8
* Missing stylesheets for the other styles have been
9
  linked from lx-office-erp, so that they will used like before.
10
* If you edit a file, make sure it's not a symlink.
11
* The previous named stylesheets are now main.css in their respective directories.
12
* menuv3 and menuv4 are now distict so that it's possible to include both
13
  without overriding each other.
14
* All relative image links needed to get bumped an additional ../
15
* If you add another style, be sure to test tabs, calendars, all menus,
16
  autocompletion, charts, and multiselect.
10
* If a stylesheet is requests from controller code, it is searched in this order:
11
  - css/<stylesheet_of_current_user>/<path>
12
  - css/<path>
13
  - <path>
14

  
15
  so common libraries can be put higher here, to be included by any stylesheet
16

  
17
* 'kivitendo' is used as the fallback style if no style was found or the style
18
  chosen was invalid.
19

  
20
* Pay attention to the position of relative image urls. Most should not be
21
  included in css anyway but should use the generated icon maps. For the rest,
22
  a couple of ../ may be needed to get the right path.
23

  
24
* If you edit another styles, these are things that are known to get broken.
25
  Be sure to test them thoroughly:
26
  - tabs
27
  - calendars
28
  - all menus
29
  - autocompletion (parts/customers)
30
  - charts of accounts
31
  - multiselect
32
  - ckeeditor
33
  - jquery-ui widgets (i hate those things)
css/background_jobs.css
1
/* Jobverwaltung */
2
.background_job_list    tbody pre,
3
.background_job_details tbody pre {
4
  margin: 0px;
5
}
6

  
7
.background_job_details tbody th {
8
  text-align: right;
9
  vertical-align: top;
10
}
11

  
12
.background_job_details tbody td {
13
  vertical-align: top;
14
}
css/bwa.css
1
/* Allgemeine Schriftdefinition */
2
th,td {
3
	font-family: Arial, Verdana, Helvetica, Sans-serif;
4
	font-size:small;
5
}
6

  
7
@page {
8
	size: landscape;
9
	margin: 0.5cm;
10
}
11

  
12
/* Definition Tabellenueberschrift */
13

  
14
.left	{ text-align:left; }
15
.center	{ text-align:center; }
16
.right	{ text-align:right; }
17

  
18
tr.headline    { border:0; }
19
tr.headline td { border:0; }
20
h3 { font-size:120%; }
21
h3 { font-size:100%; }
22

  
23
/* Tabellenkopf */
24
th {
25
	font-weight: bold;
26
	border-bottom: solid thin black;
27
	padding:0 10px;
28
	text-align:right;
29
}
30

  
31
th.left  { border-left:  solid thin black; }
32
th.right { border-right: solid thin black; }
33

  
34
.querkopf th.right { text-align:center; }
35
.querkopf th {
36
	border-top: solid thin black;
37
	border-bottom:0;
38
}
39

  
40
/* Tabelleninhalt */
41
td {
42
	text-align:right;
43
	padding:0 0.5em;
44
}
45
td.left  { border-left:  solid thin black; }
46
td.right { border-right: solid thin black; }
47

  
48

  
49
/* jede zweite Zeile grau hinterlegen */
50
tr.grey {
51
	background:#f0f0f0;
52
}
53

  
54
/* letzte Zeile in der Tabelle */
55
#last td{ border-bottom: solid thin black; }
56

  
57
/* Zwischensumme/-ueberschriften */
58
tr.subtotal td { font-weight: bold; }
59

  
60
/* Fusszeile unter der Tabelle */
61
td.footer {
62
	text-align:right;
63
	font-size:smaller;
64
}
css/common.css
1

  
2
/* class for numeric columns in tables */
3
.numeric { text-align: right }
4

  
5
/* various oneshot decoration for legacy purpose. dont use */
6
.small-text { font-size: 70% }
7
.bold       { font-weight: bold }
8

  
9
.float-left  { float: left  }
10
.float-right { float: right }
11

  
12
/* quirk to force certain constructs to block context */
13
.block-context { overflow: hidden }
14

  
15
/* position */
16
.position-relative { position: relative }
17
.position-absolute { position: absolute }
18

  
19

  
20
/* media stuff */
21
@media screen {   .noscreen { display: none } }
22
@media print {    .noprint  { display: none } }
23
@media handheld { .nomobile { display: none } }
24

  
25
body { behavior:url("csshover.htc") }
26

  
27
/* class to fix container around floats */
28
.clearfix:after {
29
  clear:both;
30
  content:".";
31
  display:block;
32
  font-size:0;
33
  height:0;
34
  visibility:hidden;
35
}
36

  
37
/* CTI */
38
a.cti_call_action {
39
  display: inline-block;
40
  padding-left: 18px;
41
  height: 16px;
42
  position: relative;
43
  top: 2px;
44
  vertical-align: center;
45
  background-image: url(../../image/icons/16x16/phone.png);
46
  background-repeat: no-repeat;
47
}
48

  
49
/* the cvars table in the 2. row */
50
.row2-cvars-table tr { vertical-align: top }
51
.row2-cvars-table th { text-align: right; padding-left: 15px; padding-right: 0 }
52
.row2-cvars-table td, .row2-cvars-table th { padding-top: 10px }
css/csshover.htc
1
<attach event="ondocumentready" handler="parseStylesheets" />
2
<script>
3
/**
4
 *	Whatever:hover - V2.02.060206 - hover, active & focus
5
 *	------------------------------------------------------------
6
 *	(c) 2005 - Peter Nederlof
7
 *	Peterned - http://www.xs4all.nl/~peterned/
8
 *	License  - http://creativecommons.org/licenses/LGPL/2.1/
9
 *
10
 *	Whatever:hover is free software; you can redistribute it and/or
11
 *	modify it under the terms of the GNU Lesser General Public
12
 *	License as published by the Free Software Foundation; either
13
 *	version 2.1 of the License, or (at your option) any later version.
14
 *
15
 *	Whatever:hover is distributed in the hope that it will be useful,
16
 *	but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18
 *	Lesser General Public License for more details.
19
 *
20
 *	Credits and thanks to:
21
 *	Arnoud Berendsen, Martin Reurings, Robert Hanson
22
 *
23
 *	howto: body { behavior:url("csshover.htc"); }
24
 *	------------------------------------------------------------
25
 */
26

  
27
var csshoverReg = /(^|\s)((([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active))|((a|input|textarea)([#.][^ ]+)?:unknown)/i,
28
currentSheet, doc = window.document, hoverEvents = [], activators = {
29
	onhover:{on:'onmouseover', off:'onmouseout'},
30
	onactive:{on:'onmousedown', off:'onmouseup'},
31
	onunknown:{on:'onfocus', off:'onblur'}
32
}
33

  
34
function parseStylesheets() {
35
	if(!/MSIE (5|6)/.test(navigator.userAgent)) return;
36
	window.attachEvent('onunload', unhookHoverEvents);
37
	var sheets = doc.styleSheets, l = sheets.length;
38
	for(var i=0; i<l; i++) 
39
		parseStylesheet(sheets[i]);
40
}
41
	function parseStylesheet(sheet) {
42
		if(sheet.imports) {
43
			try {
44
				var imports = sheet.imports, l = imports.length;
45
				for(var i=0; i<l; i++) parseStylesheet(sheet.imports[i]);
46
			} catch(securityException){}
47
		}
48

  
49
		try {
50
			var rules = (currentSheet = sheet).rules, l = rules.length;
51
			for(var j=0; j<l; j++) parseCSSRule(rules[j]);
52
		} catch(securityException){}
53
	}
54

  
55
	function parseCSSRule(rule) {
56
		var select = rule.selectorText, style = rule.style.cssText;
57
		if(!csshoverReg.test(select) || !style) return;
58
		
59
		var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, 'on$1');
60
		var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2' + pseudo);
61
		var className = (/\.([a-z0-9_-]*on(hover|active|unknown))/i).exec(newSelect)[1];
62
		var affected = select.replace(/:(hover|active|unknown).*$/, '');
63
		var elements = getElementsBySelect(affected);
64
		if(elements.length == 0) return;
65

  
66
		currentSheet.addRule(newSelect, style);
67
		for(var i=0; i<elements.length; i++)
68
			new HoverElement(elements[i], className, activators[pseudo]);
69
	}
70

  
71
function HoverElement(node, className, events) {
72
	if(!node.hovers) node.hovers = {};
73
	if(node.hovers[className]) return;
74
	node.hovers[className] = true;
75
	hookHoverEvent(node, events.on, function() { node.className += ' ' + className; });
76
	hookHoverEvent(node, events.off, function() { node.className = node.className.replace(new RegExp('\\s+'+className, 'g'),''); });
77
}
78
	function hookHoverEvent(node, type, handler) {
79
		node.attachEvent(type, handler);
80
		hoverEvents[hoverEvents.length] = { 
81
			node:node, type:type, handler:handler 
82
		};
83
	}
84

  
85
	function unhookHoverEvents() {
86
		for(var e,i=0; i<hoverEvents.length; i++) {
87
			e = hoverEvents[i]; 
88
			e.node.detachEvent(e.type, e.handler);
89
		}
90
	}
91

  
92
function getElementsBySelect(rule) {
93
	var parts, nodes = [doc];
94
	parts = rule.split(' ');
95
	for(var i=0; i<parts.length; i++) {
96
		nodes = getSelectedNodes(parts[i], nodes);
97
	}	return nodes;
98
}
99
	function getSelectedNodes(select, elements) {
100
		var result, node, nodes = [];
101
		var identify = (/\#([a-z0-9_-]+)/i).exec(select);
102
		if(identify) {
103
			var element = doc.getElementById(identify[1]);
104
			return element? [element]:nodes;
105
		}
106
		
107
		var classname = (/\.([a-z0-9_-]+)/i).exec(select);
108
		var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, '');
109
		var classReg = classname? new RegExp('\\b' + classname[1] + '\\b'):false;
110
		for(var i=0; i<elements.length; i++) {
111
			result = tagName? elements[i].all.tags(tagName):elements[i].all; 
112
			for(var j=0; j<result.length; j++) {
113
				node = result[j];
114
				if(classReg && !classReg.test(node.className)) continue;
115
				nodes[nodes.length] = node;
116
			}
117
		}	
118
		
119
		return nodes;
120
	}
121
</script>
css/jquery.autocomplete.css
1
.ac_results {
2
	padding: 0px;
3
	border: 1px solid black;
4
	background-color: white;
5
	overflow: hidden;
6
	z-index: 99999;
7
}
8

  
9
.ac_results ul {
10
	width: 100%;
11
	list-style-position: outside;
12
	list-style: none;
13
	padding: 0;
14
	margin: 0;
15
}
16

  
17
.ac_results li {
18
	margin: 0px;
19
	padding: 2px 5px;
20
	cursor: default;
21
	display: block;
22
	/* 
23
	if width will be 100% horizontal scrollbar will apear 
24
	when scroll mode will be used
25
	*/
26
	/*width: 100%;*/
27
	font: menu;
28
	font-size: 12px;
29
	/* 
30
	it is very important, if line-height not setted or setted 
31
	in relative units scroll will be broken in firefox
32
	*/
33
	line-height: 16px;
34
	overflow: hidden;
35
}
36

  
37
.ac_loading {
38
	background: white url('indicator.gif') right center no-repeat;
39
}
40

  
41
.ac_odd {
42
	background-color: #eee;
43
}
44

  
45
.ac_over {
46
	background-color: #0A246A;
47
	color: white;
48
}
css/jquery.multiselect2side.css
1
/* multiselect2side plugin */
2
.ms2side__div {
3
	clear: left;
4
	width: 100%;
5
	padding: 1px;
6
	float: left;
7
	background : url('') repeat-x; /* HACK FOR CHROME */
8
}
9

  
10
.ms2side__select {
11
	float: left;
12
}
13

  
14
.ms2side__header {
15
	color: blue;
16
	background-color: #EEEEFF;
17
}
18

  
19
.ms2side__options, .ms2side__updown {
20
	float: left;
21
	font-size: 10pt;
22
	margin: 0;
23
	padding: 0 8px;
24
	width: 40px;
25
	color: black;
26
	text-align: center;
27
	overflow: hidden;
28
}
29

  
30
.ms2side__updown {
31
	font-size: 9pt;
32
}
33

  
34
.ms2side__options p, .ms2side__updown p {
35
	margin: 2px 0;
36
	padding: 0;
37
	cursor: pointer;
38
	border: 1px solid black;
39
}
40

  
41
.ms2side__options p.ms2side_hover, .ms2side__updown p.ms2side_hover {
42
	background-color: #F0F0FF;
43
	border-color: #0000FF;
44
	cursor: pointer;
45
}
46

  
47
.ms2side__options p.ms2side__hide, .ms2side__updown p.ms2side__hide {
48
	cursor: default;
49
	color: grey;
50
	border: 1px solid grey;
51
	background-color: #F0F0F0;
52
}
53

  
54
.ms2side__div select {
55
	width: 400px;
56
	float: left;
57
}
css/kivitendo/background_jobs.css
1
../lx-office-erp/background_jobs.css
css/kivitendo/bwa.css
1
/* Allgemeine Schriftdefinition */
2
th,td {
3
	font-family: Arial, Verdana, Helvetica, Sans-serif;
4
	font-size:small;
5
}
6

  
7
@page {
8
	size: landscape;
9
	margin: 0.5cm;
10
}
11

  
12
/* Definition Tabellenueberschrift */
13

  
14
.left	{ text-align:left; }
15
.center	{ text-align:center; }
16
.right	{ text-align:right; }
17

  
18
tr.headline    { border:0; }
19
tr.headline td { border:0; }
20
h3 { font-size:120%; }
21
h3 { font-size:100%; }
22

  
23
/* Tabellenkopf */
24
th {
25
	font-weight: bold;
26
	border-bottom: solid thin black;
27
	padding:0 10px;
28
	text-align:right;
29
}
30

  
31
th.left  { border-left:  solid thin black; }
32
th.right { border-right: solid thin black; }
33

  
34
.querkopf th.right { text-align:center; }
35
.querkopf th {
36
	border-top: solid thin black;
37
	border-bottom:0;
38
}
39

  
40
/* Tabelleninhalt */
41
td {
42
	text-align:right;
43
	padding:0 0.5em;
44
}
45
td.left  { border-left:  solid thin black; }
46
td.right { border-right: solid thin black; }
47

  
48

  
49
/* jede zweite Zeile grau hinterlegen */
50
tr.grey {
51
	background:#f0f0f0;
52
}
53

  
54
/* letzte Zeile in der Tabelle */
55
#last td{ border-bottom: solid thin black; }
56

  
57
/* Zwischensumme/-ueberschriften */
58
tr.subtotal td { font-weight: bold; }
59

  
60
/* Fusszeile unter der Tabelle */
61
td.footer {
62
	text-align:right;
63
	font-size:smaller;
64
}
css/kivitendo/csshover.htc
1
<attach event="ondocumentready" handler="parseStylesheets" />
2
<script>
3
/**
4
 *	Whatever:hover - V2.02.060206 - hover, active & focus
5
 *	------------------------------------------------------------
6
 *	(c) 2005 - Peter Nederlof
7
 *	Peterned - http://www.xs4all.nl/~peterned/
8
 *	License  - http://creativecommons.org/licenses/LGPL/2.1/
9
 *
10
 *	Whatever:hover is free software; you can redistribute it and/or
11
 *	modify it under the terms of the GNU Lesser General Public
12
 *	License as published by the Free Software Foundation; either
13
 *	version 2.1 of the License, or (at your option) any later version.
14
 *
15
 *	Whatever:hover is distributed in the hope that it will be useful,
16
 *	but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18
 *	Lesser General Public License for more details.
19
 *
20
 *	Credits and thanks to:
21
 *	Arnoud Berendsen, Martin Reurings, Robert Hanson
22
 *
23
 *	howto: body { behavior:url("csshover.htc"); }
24
 *	------------------------------------------------------------
25
 */
26

  
27
var csshoverReg = /(^|\s)((([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active))|((a|input|textarea)([#.][^ ]+)?:unknown)/i,
28
currentSheet, doc = window.document, hoverEvents = [], activators = {
29
	onhover:{on:'onmouseover', off:'onmouseout'},
30
	onactive:{on:'onmousedown', off:'onmouseup'},
31
	onunknown:{on:'onfocus', off:'onblur'}
32
}
33

  
34
function parseStylesheets() {
35
	if(!/MSIE (5|6)/.test(navigator.userAgent)) return;
36
	window.attachEvent('onunload', unhookHoverEvents);
37
	var sheets = doc.styleSheets, l = sheets.length;
38
	for(var i=0; i<l; i++) 
39
		parseStylesheet(sheets[i]);
40
}
41
	function parseStylesheet(sheet) {
42
		if(sheet.imports) {
43
			try {
44
				var imports = sheet.imports, l = imports.length;
45
				for(var i=0; i<l; i++) parseStylesheet(sheet.imports[i]);
46
			} catch(securityException){}
47
		}
48

  
49
		try {
50
			var rules = (currentSheet = sheet).rules, l = rules.length;
51
			for(var j=0; j<l; j++) parseCSSRule(rules[j]);
52
		} catch(securityException){}
53
	}
54

  
55
	function parseCSSRule(rule) {
56
		var select = rule.selectorText, style = rule.style.cssText;
57
		if(!csshoverReg.test(select) || !style) return;
58
		
59
		var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, 'on$1');
60
		var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2' + pseudo);
61
		var className = (/\.([a-z0-9_-]*on(hover|active|unknown))/i).exec(newSelect)[1];
62
		var affected = select.replace(/:(hover|active|unknown).*$/, '');
63
		var elements = getElementsBySelect(affected);
64
		if(elements.length == 0) return;
65

  
66
		currentSheet.addRule(newSelect, style);
67
		for(var i=0; i<elements.length; i++)
68
			new HoverElement(elements[i], className, activators[pseudo]);
69
	}
70

  
71
function HoverElement(node, className, events) {
72
	if(!node.hovers) node.hovers = {};
73
	if(node.hovers[className]) return;
74
	node.hovers[className] = true;
75
	hookHoverEvent(node, events.on, function() { node.className += ' ' + className; });
76
	hookHoverEvent(node, events.off, function() { node.className = node.className.replace(new RegExp('\\s+'+className, 'g'),''); });
77
}
78
	function hookHoverEvent(node, type, handler) {
79
		node.attachEvent(type, handler);
80
		hoverEvents[hoverEvents.length] = { 
81
			node:node, type:type, handler:handler 
82
		};
83
	}
84

  
85
	function unhookHoverEvents() {
86
		for(var e,i=0; i<hoverEvents.length; i++) {
87
			e = hoverEvents[i]; 
88
			e.node.detachEvent(e.type, e.handler);
89
		}
90
	}
91

  
92
function getElementsBySelect(rule) {
93
	var parts, nodes = [doc];
94
	parts = rule.split(' ');
95
	for(var i=0; i<parts.length; i++) {
96
		nodes = getSelectedNodes(parts[i], nodes);
97
	}	return nodes;
98
}
99
	function getSelectedNodes(select, elements) {
100
		var result, node, nodes = [];
101
		var identify = (/\#([a-z0-9_-]+)/i).exec(select);
102
		if(identify) {
103
			var element = doc.getElementById(identify[1]);
104
			return element? [element]:nodes;
105
		}
106
		
107
		var classname = (/\.([a-z0-9_-]+)/i).exec(select);
108
		var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, '');
109
		var classReg = classname? new RegExp('\\b' + classname[1] + '\\b'):false;
110
		for(var i=0; i<elements.length; i++) {
111
			result = tagName? elements[i].all.tags(tagName):elements[i].all; 
112
			for(var j=0; j<result.length; j++) {
113
				node = result[j];
114
				if(classReg && !classReg.test(node.className)) continue;
115
				nodes[nodes.length] = node;
116
			}
117
		}	
118
		
119
		return nodes;
120
	}
121
</script>
css/kivitendo/jquery.autocomplete.css
1
../lx-office-erp/jquery.autocomplete.css
css/kivitendo/jquery.multiselect2side.css
1
../lx-office-erp/jquery.multiselect2side.css
css/kivitendo/main.css
309 309
	color: black;
310 310
	font-weight: bolder;
311 311
}
312
/* media stuff */
313
@media screen {
314
.noscreen {
315
/* items with this class won't display */
316
	display: none;
317
}
318
}
319
@media print {
320
.noprint {
321
/* items with this class won't print */
322
	display: none;
323
}
324
}
325 312
.filecontent {
326 313
	border: 1px solid blue;
327 314
	padding-left: 2px;
......
334 321
.unbalanced_ledger {
335 322
	background-color: #ffa0a0;
336 323
}
337
.clearfix:after {
338
	clear: both;
339
	content: ".";
340
	display: block;
341
	height: 0;
342
	visibility: hidden;
343
}
344 324
.flash_message_error {
345 325
	background-color: #FFD6D6;
346 326
	border: 1px solid #AE0014;
......
377 357
  margin-right: 6px;
378 358
}
379 359

  
380
.small-text {
381
  font-size: 0.75em;
382
}
383

  
384
.float-left {
385
  float: left;
386
}
387
.float-right {
388
  float: right;
389
}
390

  
391
.block-context {
392
  overflow: hidden;
393
}
394

  
395
.position-relative {
396
  position: relative;
397
}
398

  
399
.position-absolute {
400
  position: absolute;
401
}
402

  
403
.part_picker {
404
  padding-right: 16px;
405
}
406

  
407 360
.customer-vendor-picker-undefined,
408 361
.partpicker-undefined {
409 362
  color: red;
......
449 402
span.toggle_selected {
450 403
  font-weight: bold;
451 404
}
452

  
453
/* CTI */
454
a.cti_call_action {
455
  display: inline-block;
456
  padding-left: 18px;
457
  height: 16px;
458
  position: relative;
459
  top: 2px;
460
  vertical-align: center;
461
  background-image: url(../../image/icons/16x16/phone.png);
462
  background-repeat: no-repeat;
463
}
464

  
465
/* the cvars table in the 2. row */
466
.row2-cvars-table tr {vertical-align: top;}
467
.row2-cvars-table th {text-align: right; padding-left: 15px; padding-right: 0;}
468
.row2-cvars-table td, .row2-cvars-table th {padding-top: 10px;}
css/lx-office-erp/background_jobs.css
1
/* Jobverwaltung */
2
.background_job_list    tbody pre,
3
.background_job_details tbody pre {
4
  margin: 0px;
5
}
6

  
7
.background_job_details tbody th {
8
  text-align: right;
9
  vertical-align: top;
10
}
11

  
12
.background_job_details tbody td {
13
  vertical-align: top;
14
}
css/lx-office-erp/csshover.htc
1
<attach event="ondocumentready" handler="parseStylesheets" />
2
<script>
3
/**
4
 *	Whatever:hover - V2.02.060206 - hover, active & focus
5
 *	------------------------------------------------------------
6
 *	(c) 2005 - Peter Nederlof
7
 *	Peterned - http://www.xs4all.nl/~peterned/
8
 *	License  - http://creativecommons.org/licenses/LGPL/2.1/
9
 *
10
 *	Whatever:hover is free software; you can redistribute it and/or
11
 *	modify it under the terms of the GNU Lesser General Public
12
 *	License as published by the Free Software Foundation; either
13
 *	version 2.1 of the License, or (at your option) any later version.
14
 *
15
 *	Whatever:hover is distributed in the hope that it will be useful,
16
 *	but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18
 *	Lesser General Public License for more details.
19
 *
20
 *	Credits and thanks to:
21
 *	Arnoud Berendsen, Martin Reurings, Robert Hanson
22
 *
23
 *	howto: body { behavior:url("csshover.htc"); }
24
 *	------------------------------------------------------------
25
 */
26

  
27
var csshoverReg = /(^|\s)((([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active))|((a|input|textarea)([#.][^ ]+)?:unknown)/i,
28
currentSheet, doc = window.document, hoverEvents = [], activators = {
29
	onhover:{on:'onmouseover', off:'onmouseout'},
30
	onactive:{on:'onmousedown', off:'onmouseup'},
31
	onunknown:{on:'onfocus', off:'onblur'}
32
}
33

  
34
function parseStylesheets() {
35
	if(!/MSIE (5|6)/.test(navigator.userAgent)) return;
36
	window.attachEvent('onunload', unhookHoverEvents);
37
	var sheets = doc.styleSheets, l = sheets.length;
38
	for(var i=0; i<l; i++) 
39
		parseStylesheet(sheets[i]);
40
}
41
	function parseStylesheet(sheet) {
42
		if(sheet.imports) {
43
			try {
44
				var imports = sheet.imports, l = imports.length;
45
				for(var i=0; i<l; i++) parseStylesheet(sheet.imports[i]);
46
			} catch(securityException){}
47
		}
48

  
49
		try {
50
			var rules = (currentSheet = sheet).rules, l = rules.length;
51
			for(var j=0; j<l; j++) parseCSSRule(rules[j]);
52
		} catch(securityException){}
53
	}
54

  
55
	function parseCSSRule(rule) {
56
		var select = rule.selectorText, style = rule.style.cssText;
57
		if(!csshoverReg.test(select) || !style) return;
58
		
59
		var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, 'on$1');
60
		var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2' + pseudo);
61
		var className = (/\.([a-z0-9_-]*on(hover|active|unknown))/i).exec(newSelect)[1];
62
		var affected = select.replace(/:(hover|active|unknown).*$/, '');
63
		var elements = getElementsBySelect(affected);
64
		if(elements.length == 0) return;
65

  
66
		currentSheet.addRule(newSelect, style);
67
		for(var i=0; i<elements.length; i++)
68
			new HoverElement(elements[i], className, activators[pseudo]);
69
	}
70

  
71
function HoverElement(node, className, events) {
72
	if(!node.hovers) node.hovers = {};
73
	if(node.hovers[className]) return;
74
	node.hovers[className] = true;
75
	hookHoverEvent(node, events.on, function() { node.className += ' ' + className; });
76
	hookHoverEvent(node, events.off, function() { node.className = node.className.replace(new RegExp('\\s+'+className, 'g'),''); });
77
}
78
	function hookHoverEvent(node, type, handler) {
79
		node.attachEvent(type, handler);
80
		hoverEvents[hoverEvents.length] = { 
81
			node:node, type:type, handler:handler 
82
		};
83
	}
84

  
85
	function unhookHoverEvents() {
86
		for(var e,i=0; i<hoverEvents.length; i++) {
87
			e = hoverEvents[i]; 
88
			e.node.detachEvent(e.type, e.handler);
89
		}
90
	}
91

  
92
function getElementsBySelect(rule) {
93
	var parts, nodes = [doc];
94
	parts = rule.split(' ');
95
	for(var i=0; i<parts.length; i++) {
96
		nodes = getSelectedNodes(parts[i], nodes);
97
	}	return nodes;
98
}
99
	function getSelectedNodes(select, elements) {
100
		var result, node, nodes = [];
101
		var identify = (/\#([a-z0-9_-]+)/i).exec(select);
102
		if(identify) {
103
			var element = doc.getElementById(identify[1]);
104
			return element? [element]:nodes;
105
		}
106
		
107
		var classname = (/\.([a-z0-9_-]+)/i).exec(select);
108
		var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, '');
109
		var classReg = classname? new RegExp('\\b' + classname[1] + '\\b'):false;
110
		for(var i=0; i<elements.length; i++) {
111
			result = tagName? elements[i].all.tags(tagName):elements[i].all; 
112
			for(var j=0; j<result.length; j++) {
113
				node = result[j];
114
				if(classReg && !classReg.test(node.className)) continue;
115
				nodes[nodes.length] = node;
116
			}
117
		}	
118
		
119
		return nodes;
120
	}
121
</script>
css/lx-office-erp/jquery.autocomplete.css
1
.ac_results {
2
	padding: 0px;
3
	border: 1px solid black;
4
	background-color: white;
5
	overflow: hidden;
6
	z-index: 99999;
7
}
8

  
9
.ac_results ul {
10
	width: 100%;
11
	list-style-position: outside;
12
	list-style: none;
13
	padding: 0;
14
	margin: 0;
15
}
16

  
17
.ac_results li {
18
	margin: 0px;
19
	padding: 2px 5px;
20
	cursor: default;
21
	display: block;
22
	/* 
23
	if width will be 100% horizontal scrollbar will apear 
24
	when scroll mode will be used
25
	*/
26
	/*width: 100%;*/
27
	font: menu;
28
	font-size: 12px;
29
	/* 
30
	it is very important, if line-height not setted or setted 
31
	in relative units scroll will be broken in firefox
32
	*/
33
	line-height: 16px;
34
	overflow: hidden;
35
}
36

  
37
.ac_loading {
38
	background: white url('indicator.gif') right center no-repeat;
39
}
40

  
41
.ac_odd {
42
	background-color: #eee;
43
}
44

  
45
.ac_over {
46
	background-color: #0A246A;
47
	color: white;
48
}
css/lx-office-erp/jquery.multiselect2side.css
1
/* multiselect2side plugin */
2
.ms2side__div {
3
	clear: left;
4
	width: 100%;
5
	padding: 1px;
6
	float: left;
7
	background : url('') repeat-x; /* HACK FOR CHROME */
8
}
9

  
10
.ms2side__select {
11
	float: left;
12
}
13

  
14
.ms2side__header {
15
	color: blue;
16
	background-color: #EEEEFF;
17
}
18

  
19
.ms2side__options, .ms2side__updown {
20
	float: left;
21
	font-size: 10pt;
22
	margin: 0;
23
	padding: 0 8px;
24
	width: 40px;
25
	color: black;
26
	text-align: center;
27
	overflow: hidden;
28
}
29

  
30
.ms2side__updown {
31
	font-size: 9pt;
32
}
33

  
34
.ms2side__options p, .ms2side__updown p {
35
	margin: 2px 0;
36
	padding: 0;
37
	cursor: pointer;
38
	border: 1px solid black;
39
}
40

  
41
.ms2side__options p.ms2side_hover, .ms2side__updown p.ms2side_hover {
42
	background-color: #F0F0FF;
43
	border-color: #0000FF;
44
	cursor: pointer;
45
}
46

  
47
.ms2side__options p.ms2side__hide, .ms2side__updown p.ms2side__hide {
48
	cursor: default;
49
	color: grey;
50
	border: 1px solid grey;
51
	background-color: #F0F0F0;
52
}
53

  
54
.ms2side__div select {
55
	width: 400px;
56
	float: left;
57
}
css/lx-office-erp/main.css
296 296
  color: green;
297 297
}
298 298

  
299
td.numeric { /* class for numeric columns in tables */
300
  text-align: right
301
}
302

  
303 299
h2.confirm {
304 300
  color: blue;
305 301
  font-size: 14pt;
......
316 312
  font-weight: bolder;
317 313
}
318 314

  
319
/* media stuff */
320

  
321
@media screen {
322
  .noscreen {   /* items with this class won't display */
323
    display: none;
324
  }
325
}
326

  
327
@media print {
328
  .noprint {   /* items with this class won't print */
329
    display: none;
330
  }
331
}
332 315

  
333 316
.filecontent {
334 317
  border: 1px solid blue;
......
344 327
  background-color: #ffa0a0;
345 328
}
346 329

  
347
.clearfix:after {
348
  clear:both;
349
  content:".";
350
  display:block;
351
  font-size:0;
352
  height:0;
353
  visibility:hidden;
354
}
355

  
356 330
.flash_message_error {
357 331
  background-color:#FFD6D6;
358 332
  border: 1px solid #AE0014;
......
429 403
  margin-right: 6px;
430 404
}
431 405

  
432
.small-text {
433
  font-size: 0.75em;
434
}
435

  
436
.float-left {
437
  float: left;
438
}
439
.float-right {
440
  float: right;
441
}
442

  
443
.block-context {
444
  overflow: hidden;
445
}
446

  
447
.position-relative {
448
  position: relative;
449
}
450

  
451
.position-absolute {
452
  position: absolute;
453
}
454

  
455 406
.part_picker {
456 407
  padding-right: 16px;
457 408
}
......
498 449
span.toggle_selected {
499 450
  font-weight: bold;
500 451
}
501

  
502
/* CTI */
503
a.cti_call_action {
504
  display: inline-block;
505
  padding-left: 18px;
506
  height: 16px;
507
  position: relative;
508
  top: 2px;
509
  vertical-align: center;
510
  background-image: url(../../image/icons/16x16/phone.png);
511
  background-repeat: no-repeat;
512
}
513

  
514
/* the cvars table in the 2. row */
515
.row2-cvars-table tr {vertical-align: top;}
516
.row2-cvars-table th {text-align: right; padding-left: 15px; padding-right: 0;}
517
.row2-cvars-table td, .row2-cvars-table th {padding-top: 10px;}
css/lx-office-erp/menu.css
25 25
  margin:0px;
26 26
}
27 27

  
28
body {
29
behavior:url("csshover.htc");
30
}
31

  
32 28
#menuv3 {
33 29
width:99.8%;
34 30
float:left;
templates/webpages/rp/bwa.html
2 2
[%- USE HTML %]
3 3
[%- USE LxERP %]
4 4

  
5
<link rel="stylesheet" type="text/css" href="css/kivitendo/bwa.css">
6

  
7 5
<table border=0 cellpadding=0 cellspacing=0>
8 6
<tr class="headline">
9 7
  <td class="left">[% company %]</td>

Auch abrufbar als: Unified diff