PPM2: select

This commit is contained in:
darthsandmann
2016-12-12 22:20:21 +01:00
parent f0db62320a
commit 1b35f02647
141 changed files with 3986 additions and 1313 deletions

View File

@ -1,148 +1 @@
/* template.css */
/* allgemeine Vorgaben */
body {
font-family: "Open Sans", sans-serif;
font-size: 12pt;
padding: 0;
margin: 0;
}
/* Basislayout */
.clSiteHeader {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 100px;
line-height: 100px;
margin: 0;
padding: 5px;
font-size: 40pt;
text-align: center;
text-shadow:black 3px 2px;
font-family: cursive, fantasy;
color: #920B19;
background-color: #B6B6B7;
}
.clContent {
position: absolute;
top: 110px; /* height, padding, border, margin von idSiteHeader beachten */
left: 0;
right: 0;
bottom: 0;
margin: 0;
padding: 5px;
}
/* Elemente im Content-Bereich */
.clContentHeader {
position: absolute;
top: 20px;
left: 0;
right: 0;
height: 30px;
line-height: 30px;
margin: 0;
padding: 5px;
font-size: 18pt;
text-align: center;
}
.clContentArea {
position: absolute;
top: 80px; /* height, padding, border, margin von idContentHeader beachten */
left: 0;
right: 0;
bottom: 40px; /* height, padding, border, margin von idButtonArea beachten */
margin: 10px 0;
margin-left: 10px;
padding: 5px;
}
.clButtonArea {
position: absolute;
left: 0;
right: 0;
/*float: left; width: 10px:*/
bottom: 0;
height: 80px;
line-height: 80px;
margin: 0;
padding: 5px;
text-align: center;
background-color: #B6B6B7;
}
/* Links und Submit-Schalter im Buttonbereich gestalten */
.clButtonArea a, input[type="submit"] {
margin: 0 5px;
padding: 3px 6px;
font-size: 14pt;
text-decoration: none;
border: 2px solid;
color: black;
background-color: buttonface;
}
/* unterschiedliche Kennzeichnungen je nach Bedienung vermeiden */
.clButtonArea a:hover, a:visited, a:active {
color: black;
}
/* Gestaltung von Tabellen */
#idList {
table-layout: fixed;
width: auto;
border: 2px solid;
border-collapse: collapse;
margin:auto;
}
#idList th {
text-align: center;
padding-left: 5px;
background-color: #FFFFFF;
}
#idList th, #idList td {
padding: 3px;
border: 2px solid;
}
/* Gestaltung von Formularen */
/* das Formular nochmals zusätzlich gestalten */
#idForm .clContentArea {
width: 500px;
margin: auto;
}
.clFormRow {
position: relative; /* damit das Element in jedem Fall "positioniert" ist und damit als Bezugspunkt geeignet ist */
height: 30px;
margin-bottom: 10px;
}
.clFormRow label {
position: absolute;
top: 0;
left: 0;
width: 240px;
text-align: center;
}
.clFormRow input {
position: absolute;
top: 0;
left: 250px;
width: 250px;
}
/* EOF */
body{font-family:"Open Sans",sans-serif;font-size:12pt;padding:0;margin:0;}.clSiteHeader{position:absolute;top:0;left:0;right:0;height:100px;line-height:100px;margin:0;padding:5px;font-size:40pt;text-align:center;text-shadow:black 3px 2px;font-family:cursive,fantasy;color:#920B19;background-color:#B6B6B7;}.clContent{position:absolute;top:110px;left:0;right:0;bottom:0;margin:0;padding:5px;}.clContentHeader{position:absolute;top:20px;left:0;right:0;height:30px;line-height:30px;margin:0;padding:5px;font-size:18pt;text-align:center;}.clContentArea{position:absolute;top:80px;left:0;right:0;bottom:40px;margin:10px 0;margin-left:10px;padding:5px;}.clButtonArea{position:absolute;left:0;right:0;bottom:0;height:80px;line-height:80px;margin:0;padding:5px;text-align:center;background-color:#B6B6B7;}.clButtonArea a,input[type="submit"]{margin:0 5px;padding:3px 6px;font-size:14pt;text-decoration:none;border:2px solid;color:black;background-color:buttonface;}.clButtonArea a:hover,a:visited,a:active{color:black;}#idList{table-layout:fixed;width:auto;border:2px solid;border-collapse:collapse;margin:auto;}#idList th{text-align:center;padding-left:5px;background-color:#FFFFFF;}#idList th,#idList td{padding:3px;border:2px solid;}#idForm .clContentArea{width:500px;margin:auto;}.clFormRow{position:relative;height:30px;margin-bottom:10px;}.clFormRow label{position:absolute;top:0;left:0;width:240px;text-align:center;}.clFormRow input{position:absolute;top:0;left:250px;width:250px;}

View File

@ -1,148 +1 @@
/* template.css */
/* allgemeine Vorgaben */
body {
font-family: "Open Sans", sans-serif;
font-size: 12pt;
padding: 0;
margin: 0;
}
/* Basislayout */
.clSiteHeader {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 100px;
line-height: 100px;
margin: 0;
padding: 5px;
font-size: 40pt;
text-align: center;
text-shadow:black 3px 2px;
font-family: cursive, fantasy;
color: #920B19;
background-color: #B6B6B7;
}
.clContent {
position: absolute;
top: 110px; /* height, padding, border, margin von idSiteHeader beachten */
left: 0;
right: 0;
bottom: 0;
margin: 0;
padding: 5px;
}
/* Elemente im Content-Bereich */
.clContentHeader {
position: absolute;
top: 20px;
left: 0;
right: 0;
height: 30px;
line-height: 30px;
margin: 0;
padding: 5px;
font-size: 18pt;
text-align: center;
}
.clContentArea {
position: absolute;
top: 80px; /* height, padding, border, margin von idContentHeader beachten */
left: 0;
right: 0;
bottom: 40px; /* height, padding, border, margin von idButtonArea beachten */
margin: 10px 0;
margin-left: 10px;
padding: 5px;
}
.clButtonArea {
position: absolute;
left: 0;
right: 0;
/*float: left; width: 10px:*/
bottom: 0;
height: 80px;
line-height: 80px;
margin: 0;
padding: 5px;
text-align: center;
background-color: #B6B6B7;
}
/* Links und Submit-Schalter im Buttonbereich gestalten */
.clButtonArea a, input[type="submit"] {
margin: 0 5px;
padding: 3px 6px;
font-size: 14pt;
text-decoration: none;
border: 2px solid;
color: black;
background-color: buttonface;
}
/* unterschiedliche Kennzeichnungen je nach Bedienung vermeiden */
.clButtonArea a:hover, a:visited, a:active {
color: black;
}
/* Gestaltung von Tabellen */
#idList {
table-layout: fixed;
width: auto;
border: 2px solid;
border-collapse: collapse;
margin:auto;
}
#idList th {
text-align: center;
padding-left: 5px;
background-color: #FFFFFF;
}
#idList th, #idList td {
padding: 3px;
border: 2px solid;
}
/* Gestaltung von Formularen */
/* das Formular nochmals zusätzlich gestalten */
#idForm .clContentArea {
width: 500px;
margin: auto;
}
.clFormRow {
position: relative; /* damit das Element in jedem Fall "positioniert" ist und damit als Bezugspunkt geeignet ist */
height: 30px;
margin-bottom: 10px;
}
.clFormRow label {
position: absolute;
top: 0;
left: 0;
width: 240px;
text-align: center;
}
.clFormRow input {
position: absolute;
top: 0;
left: 250px;
width: 250px;
}
/* EOF */
body{font-family:"Open Sans",sans-serif;font-size:12pt;padding:0;margin:0;}.clSiteHeader{position:absolute;top:0;left:0;right:0;height:100px;line-height:100px;margin:0;padding:5px;font-size:40pt;text-align:center;text-shadow:black 3px 2px;font-family:cursive,fantasy;color:#920B19;background-color:#B6B6B7;}.clContent{position:absolute;top:110px;left:0;right:0;bottom:0;margin:0;padding:5px;}.clContentHeader{position:absolute;top:20px;left:0;right:0;height:30px;line-height:30px;margin:0;padding:5px;font-size:18pt;text-align:center;}.clContentArea{position:absolute;top:80px;left:0;right:0;bottom:40px;margin:10px 0;margin-left:10px;padding:5px;}.clButtonArea{position:absolute;left:0;right:0;bottom:0;height:80px;line-height:80px;margin:0;padding:5px;text-align:center;background-color:#B6B6B7;}.clButtonArea a,input[type="submit"]{margin:0 5px;padding:3px 6px;font-size:14pt;text-decoration:none;border:2px solid;color:black;background-color:buttonface;}.clButtonArea a:hover,a:visited,a:active{color:black;}#idList{table-layout:fixed;width:auto;border:2px solid;border-collapse:collapse;margin:auto;}#idList th{text-align:center;padding-left:5px;background-color:#FFFFFF;}#idList th,#idList td{padding:3px;border:2px solid;}#idForm .clContentArea{width:500px;margin:auto;}.clFormRow{position:relative;height:30px;margin-bottom:10px;}.clFormRow label{position:absolute;top:0;left:0;width:240px;text-align:center;}.clFormRow input{position:absolute;top:0;left:250px;width:250px;}

View File

@ -1,9 +1 @@
figure, figure img {
margin-left: auto;
margin-right: auto;
text-align: center; /* zur Zentrierung des img-Elements */
width: 15cm;
}
figcaption {
text-align: center;
}
figure,figure img{margin-left:auto;margin-right:auto;text-align:center;width:15cm;}figcaption{text-align:center;}

View File

@ -1,9 +1 @@
figure, figure img {
margin-left: auto;
margin-right: auto;
text-align: center; /* zur Zentrierung des img-Elements */
width: 15cm;
}
figcaption {
text-align: center;
}
figure,figure img{margin-left:auto;margin-right:auto;text-align:center;width:15cm;}figcaption{text-align:center;}

View File

@ -1,66 +1 @@
#canvas{
position: absolute;
top: 0;
left: 500px;
width: 300px;
margin: 0;
height: 300px;
}
#aktuelleAuktion{
position: absolute;
top: 410px;
left: 500px;
width: 300px;
margin: 0px;
height: 150px;
background-color: #f9802f;
border-radius: 10px;
border-style: solid;
border-width: 1px;
}
#naechsteAuktion{
position: absolute;
top: 410px;
left: 150px;
width: 300px;
margin: 0;
height: 150px;
background-color: #2fdbf9;
border-radius: 10px;
border-style: solid;
border-width: 1px;
}
#letzteAuktion{
position: absolute;
top: 410px;
left: 850px;
width: 300px;
margin: 0;
height: 150px;
background-color: #dbdad9;
border-radius: 10px;
border-style: solid;
border-width: 1px;
}
#kaufen{
position: absolute;
top: 310px;
height :80px;
width: 200px;
left: 550px;
background-color: green;
border-radius: 10px;
}
#simManager{
position: absolute;
top: 20px;
right: 0;
width: 100px;
}
button{
width: 100px;
background-color: #dbdad9;
}
#canvas{position:absolute;top:0;left:500px;width:300px;margin:0;height:300px;}#aktuelleAuktion{position:absolute;top:410px;left:500px;width:300px;margin:0px;height:150px;background-color:#f9802f;border-radius:10px;border-style:solid;border-width:1px;}#naechsteAuktion{position:absolute;top:410px;left:150px;width:300px;margin:0;height:150px;background-color:#2fdbf9;border-radius:10px;border-style:solid;border-width:1px;}#letzteAuktion{position:absolute;top:410px;left:850px;width:300px;margin:0;height:150px;background-color:#dbdad9;border-radius:10px;border-style:solid;border-width:1px;}#kaufen{position:absolute;top:310px;height: 80px;width:200px;left:550px;background-color:green;border-radius:10px;}#simManager{position:absolute;top:20px;right:0;width:100px;}button{width:100px;background-color:#dbdad9;}

View File

@ -1,11 +1 @@
.botButtonActiveStyle{
background-color: green;
}
.botButtonInactiveStyle{
background-color: #dbdad9;
}
.botButtonBuyActionStyle{
background-color: yellow;
}
.botButtonActiveStyle{background-color:green;}.botButtonInactiveStyle{background-color:#dbdad9;}.botButtonBuyActionStyle{background-color:yellow;}

View File

@ -1,71 +1 @@
#canvas{
position: absolute;
top: 0;
left: 500px;
width: 300px;
margin: 0;
height: 300px;
}
#aktuelleAuktion{
position: absolute;
top: 410px;
left: 500px;
width: 300px;
margin: 0px;
height: 150px;
background-color: #f9802f;
border-radius: 10px;
border-style: solid;
border-width: 1px;
}
#naechsteAuktion{
position: absolute;
top: 410px;
left: 150px;
width: 300px;
margin: 0;
height: 150px;
background-color: #2fdbf9;
border-radius: 10px;
border-style: solid;
border-width: 1px;
}
#letzteAuktion{
position: absolute;
top: 410px;
left: 850px;
width: 300px;
margin: 0;
height: 150px;
background-color: #dbdad9;
border-radius: 10px;
border-style: solid;
border-width: 1px;
}
#kaufen{
position: absolute;
top: 310px;
height :80px;
width: 200px;
left: 550px;
background-color: green;
border-radius: 10px;
}
#simManager{
position: absolute;
top: 20px;
right: 0;
width: 100px;
}
button{
width: 100px;
background-color: #dbdad9;
}
.bigbutton{
height: 50px;
width: 100px;
background-color: #dbdad9;
}
#canvas{position:absolute;top:0;left:500px;width:300px;margin:0;height:300px;}#aktuelleAuktion{position:absolute;top:410px;left:500px;width:300px;margin:0px;height:150px;background-color:#f9802f;border-radius:10px;border-style:solid;border-width:1px;}#naechsteAuktion{position:absolute;top:410px;left:150px;width:300px;margin:0;height:150px;background-color:#2fdbf9;border-radius:10px;border-style:solid;border-width:1px;}#letzteAuktion{position:absolute;top:410px;left:850px;width:300px;margin:0;height:150px;background-color:#dbdad9;border-radius:10px;border-style:solid;border-width:1px;}#kaufen{position:absolute;top:310px;height: 80px;width:200px;left:550px;background-color:green;border-radius:10px;}#simManager{position:absolute;top:20px;right:0;width:100px;}button{width:100px;background-color:#dbdad9;}.bigbutton{height:50px;width:100px;background-color:#dbdad9;}

View File

@ -1,14 +1 @@
.botButtonActiveStyle{
height: 50px;
background-color: green;
}
.botButtonInactiveStyle{
height: 50px;
background-color: #dbdad9;
}
.botButtonBuyActionStyle{
height: 50px;
background-color: yellow;
}
.botButtonActiveStyle{height:50px;background-color:green;}.botButtonInactiveStyle{height:50px;background-color:#dbdad9;}.botButtonBuyActionStyle{height:50px;background-color:yellow;}

View File

@ -1,8 +1 @@
.wizardButtonNeu{
height: 50px;
background-color: yellow;
}
.wizardButtonFertig{
height: 50px;
background-color: green;
}
.wizardButtonNeu{height:50px;background-color:yellow;}.wizardButtonFertig{height:50px;background-color:green;}

View File

@ -1,9 +1 @@
figure, figure img {
margin-left: auto;
margin-right: auto;
text-align: center; /* zur Zentrierung des img-Elements */
width: 15cm;
}
figcaption {
text-align: center;
}
figure,figure img{margin-left:auto;margin-right:auto;text-align:center;width:15cm;}figcaption{text-align:center;}

View File

@ -1,287 +1 @@
/* main.css */
/* allgemeine Vorgaben */
body {
font-family: "Open Sans", sans-serif;
font-size: 12pt;
padding: 0;
margin: 0;
}
/* Basislayout */
.clSiteHeader {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 80px;
line-height: 80px;
margin: 0;
padding: 5px;
font-size: 12pt;
color: #efc9a0;
background-color: #40200d;
text-align: center;
}
.clLoggedInText {
position: absolute;
right: 50px;
height: 80px;
line-height: 48px;
margin: 0;
padding: 5px;
font-size: 12pt;
color: #efc9a0;
background-color: #40200d;
text-align: right;
font-weight: bold;
}
.clNav {
position: absolute;
left: 0;
width: 150px;
margin: 0;
padding: 10px;
}
.clNav a, a:hover, a:visited, a:active{
display: block;
text-decoration: none;
margin-bottom: 10px;
}
.clNav a:hover {
font-weight: bold;
}
.clContentOuter {
position: absolute;
top: 80px;
left: 0;
right: 0;
bottom: 0;
margin: 0;
padding: 0;
}
.clContent {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: 0;
padding: 5px;
background-color: #efc9a0;
}
/* Elemente im Content-Bereich */
.clContentHeader {
position: absolute;
top: 20px;
left: 0;
right: 0;
height: 30px;
line-height: 30px;
margin: 0;
padding: 5px;
font-size: 14pt;
text-align: center;
}
.clContentArea {
position: absolute;
top: 60px;
left: 0;
right: 0;
bottom: 40px;
margin: 0;
padding: 0px;
overflow-y: auto;
}
.clSelected{
color: white;
font-weight: bold;
}
.clButtonArea {
position: fixed;
left: 0;
right: 0;
bottom: 0;
height: 50px;
line-height: 50px;
margin: 0;
padding: 5px;
text-align: center;
background-color: #40200d;
}
/* Links und Submit-Schalter im Buttonbereich gestalten */
.clButtonArea button, a, input[type="submit"] {
margin: 0 5px;
padding: 3px 6px;
font-size: 10pt;
text-decoration: none;
border: 1px solid;
color: black;
background-color: #efc9a0;
}
.clButtonArea button:disabled {
color: graytext;
}
.clButtonArea button:enabled {
font-weight: bold;
}
/* Gestaltung von Tabellen */
#idTopicList, #idDiscussionList {
table-layout: fixed;
width: 66%;
border: 1px solid;
border-collapse: collapse;
margin:auto;
}
#idTopicList th, #idDiscussionList th {
text-align: left;
padding-left: 6px;
}
#idTopicList th, #idTopicList td, #idDiscussionList th, #idDiscussionList td{
padding: 3px;
border: 1px solid #000;
}
#idPostList {
width: 80%;
border: 1px solid;
border-collapse: collapse;
margin:auto;
padding: 0px;
}
.listheader th{
color:#efc9a0;
background-color:#40200d;
}
#idTopicList tr, #idDiscussionList tr{
background-color:#F4C484
}
#idTopicList tr:nth-of-type(even), #idDiscussionList tr:nth-of-type(even){
background-color:#E4A454;
}
/* Gestaltung von Formularen */
/* das Formular nochmals zusätzlich gestalten */
#idForm .clContentArea {
width: 500px;
margin-left: auto;
margin-right: auto;
}
.clFormRow {
position: relative; /* damit das Element in jedem Fall "positioniert" ist und damit als Bezugspunkt geeignet ist */
height: 25px;
margin-bottom: 10px;
}
.clFormRow label {
position: absolute;
top: 0;
left: 0;
width: 150px;
text-align: right;
}
.clFormRow input, .clFormRow textarea {
position: absolute;
top: 0;
left: 160px;
width: 250px;
margin: auto;
}
/********************************************************************STYLES für einzelne Posts der Postliste*/
#idPostList li {
border: 1px solid;
border-collapse: collapse;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.clMetaDataContainer {
width: 15%;
height: 100%;
margin: 0px;
left: 0;
right: 80%;
color: #efc9a0;
background-color: #40200D;
}
.clPostContainer{
position: relative;
}
.clPostDataContainer{
position: absolute;
width: 85%;
left: 15%;
height: 100%;
top: 0;
}
#idPostList .clOwner {
margin: 0px;
}
#idPostList .clTime {
margin: 0px;
}
#idPostList .clTitle {
margin: 0;
position: relative;
width: 100%;
text-align: center;
color: #efc9a0;
background-color: #40200d;
}
#idPostList .clText {
margin: 0;
margin-left: 3px;
bottom: 0;
position: relative;
width: 100%;
}
/* EOF */
body{font-family:"Open Sans",sans-serif;font-size:12pt;padding:0;margin:0;}.clSiteHeader{position:absolute;top:0;left:0;right:0;height:80px;line-height:80px;margin:0;padding:5px;font-size:12pt;color:#efc9a0;background-color:#40200d;text-align:center;}.clLoggedInText{position:absolute;right:50px;height:80px;line-height:48px;margin:0;padding:5px;font-size:12pt;color:#efc9a0;background-color:#40200d;text-align:right;font-weight:bold;}.clNav{position:absolute;left:0;width:150px;margin:0;padding:10px;}.clNav a,a:hover,a:visited,a:active{display:block;text-decoration:none;margin-bottom:10px;}.clNav a:hover{font-weight:bold;}.clContentOuter{position:absolute;top:80px;left:0;right:0;bottom:0;margin:0;padding:0;}.clContent{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:5px;background-color:#efc9a0;}.clContentHeader{position:absolute;top:20px;left:0;right:0;height:30px;line-height:30px;margin:0;padding:5px;font-size:14pt;text-align:center;}.clContentArea{position:absolute;top:60px;left:0;right:0;bottom:40px;margin:0;padding:0px;overflow-y:auto;}.clSelected{color:white;font-weight:bold;}.clButtonArea{position:fixed;left:0;right:0;bottom:0;height:50px;line-height:50px;margin:0;padding:5px;text-align:center;background-color:#40200d;}.clButtonArea button,a,input[type="submit"]{margin:0 5px;padding:3px 6px;font-size:10pt;text-decoration:none;border:1px solid;color:black;background-color:#efc9a0;}.clButtonArea button:disabled{color:graytext;}.clButtonArea button:enabled{font-weight:bold;}#idTopicList,#idDiscussionList{table-layout:fixed;width:66%;border:1px solid;border-collapse:collapse;margin:auto;}#idTopicList th,#idDiscussionList th{text-align:left;padding-left:6px;}#idTopicList th,#idTopicList td,#idDiscussionList th,#idDiscussionList td{padding:3px;border:1px solid #000;}#idPostList{width:80%;border:1px solid;border-collapse:collapse;margin:auto;padding:0px;}.listheader th{color:#efc9a0;background-color:#40200d;}#idTopicList tr,#idDiscussionList tr{background-color:#F4C484}#idTopicList tr:nth-of-type(even),#idDiscussionList tr:nth-of-type(even){background-color:#E4A454;}#idForm .clContentArea{width:500px;margin-left:auto;margin-right:auto;}.clFormRow{position:relative;height:25px;margin-bottom:10px;}.clFormRow label{position:absolute;top:0;left:0;width:150px;text-align:right;}.clFormRow input,.clFormRow textarea{position:absolute;top:0;left:160px;width:250px;margin:auto;}#idPostList li{border:1px solid;border-collapse:collapse;padding:0px;margin:0px;list-style-type:none;}.clMetaDataContainer{width:15%;height:100%;margin:0px;left:0;right:80%;color:#efc9a0;background-color:#40200D;}.clPostContainer{position:relative;}.clPostDataContainer{position:absolute;width:85%;left:15%;height:100%;top:0;}#idPostList .clOwner{margin:0px;}#idPostList .clTime{margin:0px;}#idPostList .clTitle{margin:0;position:relative;width:100%;text-align:center;color:#efc9a0;background-color:#40200d;}#idPostList .clText{margin:0;margin-left:3px;bottom:0;position:relative;width:100%;}

View File

@ -1 +1 @@
{"1": {"name": "Ich bin das erste Test-Thema", "discs": [], "deleted": true, "owner": "Test"}, "5": {"name": "test", "deleted": false, "discs": [], "owner": "test"}, "4": {"name": "TestThema", "discs": ["9"], "deleted": false, "owner": "Florian"}, "2": {"name": "Und ich das zweite!", "discs": ["8", "10"], "deleted": false, "owner": "Test"}, "nextID": "6", "3": {"name": "Web-Engineering", "discs": [], "deleted": true, "owner": "Florian"}}
{"4": {"owner": "Florian", "deleted": false, "name": "TestThema", "discs": ["9"]}, "2": {"owner": "Test", "deleted": false, "name": "Und ich das zweite!", "discs": ["8", "10"]}, "3": {"owner": "Florian", "deleted": true, "name": "Web-Engineering", "discs": []}, "5": {"owner": "test", "discs": [], "name": "test", "deleted": false}, "1": {"owner": "Test", "deleted": true, "name": "Ich bin das erste Test-Thema", "discs": []}, "nextID": "7", "6": {"discs": [], "owner": "Kai", "name": "test", "deleted": false}}

View File

@ -149,6 +149,8 @@ FORUM.Application_cl = Class.create({
setContent_p: function (newContent_opl, data_opl) {
if (this.content_o != null) {
if (this.content_o.canClose_px()) {
console.log(newContent_opl);
console.log(data_opl);
this.content_o.close_px();
this.content_o = newContent_opl;
this.content_o.render_px(data_opl);

View File

@ -41,6 +41,8 @@ TELIB.TemplateManager_cl = Class.create({
},
execute_px: function (name_spl, data_opl) {
var compiled_o = null;
console.log(this.compiled_o);
console.log(this.templates_o);
if (name_spl in this.compiled_o) {
compiled_o = this.compiled_o[name_spl];
} else {

View File

@ -1,194 +1 @@
/* main.css */
/* allgemeine Vorgaben */
body {
font-family: "Open Sans", sans-serif;
font-size: 12pt;
padding: 0;
margin: 0;
}
/* Basislayout */
.clSiteHeader {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 50px;
line-height: 50px;
margin: 0;
padding: 5px;
font-size: 12pt;
color: white;
background-color: #0000AA;
}
.clNav {
position: absolute;
top: 60px; /* height, padding, border, margin von idSiteHeader beachten */
left: 0;
bottom: 0;
width: 140px;
border-right: 1px solid;
margin: 0;
padding: 5px;
}
.clNav a, a:hover, a:visited, a:active{
display: block;
text-decoration: none;
margin-bottom: 10px;
}
.clNav a:hover {
font-weight: bold;
}
.clContentOuter {
position: absolute;
top: 60px; /* height, padding, border, margin von idSiteHeader beachten */
left: 151px;
right: 0;
bottom: 0;
margin: 0;
padding: 0;
}
.clContent {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: 0;
padding: 5px;
}
/* Elemente im Content-Bereich */
.clContentHeader {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 30px;
line-height: 30px;
margin: 0;
padding: 5px;
font-size: 14pt;
text-align: center;
}
.clContentArea {
position: absolute;
top: 40px; /* height, padding, border, margin von idContentHeader beachten */
left: 0;
right: 0;
bottom: 40px; /* height, padding, border, margin von idButtonArea beachten */
margin: 0;
padding: 0px;
overflow-y: auto;
}
.clButtonArea {
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 30px;
line-height: 30px;
margin: 0;
padding: 5px;
text-align: center;
background-color: #EEEEEE;
}
/* Links und Submit-Schalter im Buttonbereich gestalten */
.clButtonArea button, a, input[type="submit"] {
margin: 0 5px;
padding: 3px 6px;
font-size: 10pt;
text-decoration: none;
border: 1px solid;
color: black;
background-color: buttonface;
}
.clButtonArea button:disabled {
color: graytext;
}
/* unterschiedliche Kennzeichnungen je nach Bedienung vermeiden */
.clButtonArea a:hover, a:visited, a:active {
color: black;
}
/* Gestaltung von Tabellen */
#idList {
table-layout: fixed;
width: 80%;
border: 1px solid;
border-collapse: collapse;
margin:auto;
}
#idList th {
text-align: left;
padding-left: 6px;
}
#idList th, #idList td {
padding: 3px;
border: 1px solid;
}
/* damit wird jede ungerade Zeile in Tabellen mit einer anderen Hintergrundfarbe ausgegeben */
/* den Effekt nennt man auch "Zebra"-Tables */
tr:nth-of-type(odd) {
background-color:#ccc;
}
#idList tr.clSelected {
background-color: blue;
color: white;
}
/* Gestaltung von Formularen */
/* das Formular nochmals zusätzlich gestalten */
#idForm .clContentArea {
width: 500px;
margin: auto;
}
.clFormRow {
position: relative; /* damit das Element in jedem Fall "positioniert" ist und damit als Bezugspunkt geeignet ist */
height: 25px;
margin-bottom: 10px;
}
.clFormRow label {
position: absolute;
top: 0;
left: 0;
width: 150px;
text-align: right;
}
.clFormRow input {
position: absolute;
top: 0;
left: 160px;
width: 250px;
}
label span.clRequired {
color: red;
content: '*';
}
/* EOF */
body{font-family:"Open Sans",sans-serif;font-size:12pt;padding:0;margin:0;}.clSiteHeader{position:absolute;top:0;left:0;right:0;height:50px;line-height:50px;margin:0;padding:5px;font-size:12pt;color:white;background-color:#0000AA;}.clNav{position:absolute;top:60px;left:0;bottom:0;width:140px;border-right:1px solid;margin:0;padding:5px;}.clNav a,a:hover,a:visited,a:active{display:block;text-decoration:none;margin-bottom:10px;}.clNav a:hover{font-weight:bold;}.clContentOuter{position:absolute;top:60px;left:151px;right:0;bottom:0;margin:0;padding:0;}.clContent{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:5px;}.clContentHeader{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;margin:0;padding:5px;font-size:14pt;text-align:center;}.clContentArea{position:absolute;top:40px;left:0;right:0;bottom:40px;margin:0;padding:0px;overflow-y:auto;}.clButtonArea{position:absolute;left:0;right:0;bottom:0;height:30px;line-height:30px;margin:0;padding:5px;text-align:center;background-color:#EEEEEE;}.clButtonArea button,a,input[type="submit"]{margin:0 5px;padding:3px 6px;font-size:10pt;text-decoration:none;border:1px solid;color:black;background-color:buttonface;}.clButtonArea button:disabled{color:graytext;}.clButtonArea a:hover,a:visited,a:active{color:black;}#idList{table-layout:fixed;width:80%;border:1px solid;border-collapse:collapse;margin:auto;}#idList th{text-align:left;padding-left:6px;}#idList th,#idList td{padding:3px;border:1px solid;}tr:nth-of-type(odd){background-color:#ccc;}#idList tr.clSelected{background-color:blue;color:white;}#idForm .clContentArea{width:500px;margin:auto;}.clFormRow{position:relative;height:25px;margin-bottom:10px;}.clFormRow label{position:absolute;top:0;left:0;width:150px;text-align:right;}.clFormRow input{position:absolute;top:0;left:160px;width:250px;}label span.clRequired{color:red;content:'*';}

View File

@ -1,148 +1 @@
/* template.css */
/* allgemeine Vorgaben */
body {
font-family: "Open Sans", sans-serif;
font-size: 12pt;
padding: 0;
margin: 0;
}
/* Basislayout */
.clSiteHeader {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 100px;
line-height: 100px;
margin: 0;
padding: 5px;
font-size: 40pt;
text-align: center;
text-shadow:black 3px 2px;
font-family: cursive, fantasy;
color: #920B19;
background-color: #B6B6B7;
}
.clContent {
position: absolute;
top: 110px; /* height, padding, border, margin von idSiteHeader beachten */
left: 0;
right: 0;
bottom: 0;
margin: 0;
padding: 5px;
}
/* Elemente im Content-Bereich */
.clContentHeader {
position: absolute;
top: 20px;
left: 0;
right: 0;
height: 30px;
line-height: 30px;
margin: 0;
padding: 5px;
font-size: 18pt;
text-align: center;
}
.clContentArea {
position: absolute;
top: 80px; /* height, padding, border, margin von idContentHeader beachten */
left: 0;
right: 0;
bottom: 40px; /* height, padding, border, margin von idButtonArea beachten */
margin: 10px 0;
margin-left: 10px;
padding: 5px;
}
.clButtonArea {
position: absolute;
left: 0;
right: 0;
/*float: left; width: 10px:*/
bottom: 0;
height: 80px;
line-height: 80px;
margin: 0;
padding: 5px;
text-align: center;
background-color: #B6B6B7;
}
/* Links und Submit-Schalter im Buttonbereich gestalten */
.clButtonArea a, input[type="submit"] {
margin: 0 5px;
padding: 3px 6px;
font-size: 14pt;
text-decoration: none;
border: 2px solid;
color: black;
background-color: buttonface;
}
/* unterschiedliche Kennzeichnungen je nach Bedienung vermeiden */
.clButtonArea a:hover, a:visited, a:active {
color: black;
}
/* Gestaltung von Tabellen */
#idList {
table-layout: fixed;
width: auto;
border: 2px solid;
border-collapse: collapse;
margin:auto;
}
#idList th {
text-align: center;
padding-left: 5px;
background-color: #FFFFFF;
}
#idList th, #idList td {
padding: 3px;
border: 2px solid;
}
/* Gestaltung von Formularen */
/* das Formular nochmals zusätzlich gestalten */
#idForm .clContentArea {
width: 500px;
margin: auto;
}
.clFormRow {
position: relative; /* damit das Element in jedem Fall "positioniert" ist und damit als Bezugspunkt geeignet ist */
height: 30px;
margin-bottom: 10px;
}
.clFormRow label {
position: absolute;
top: 0;
left: 0;
width: 240px;
text-align: center;
}
.clFormRow input {
position: absolute;
top: 0;
left: 250px;
width: 250px;
}
/* EOF */
body{font-family:"Open Sans",sans-serif;font-size:12pt;padding:0;margin:0;}.clSiteHeader{position:absolute;top:0;left:0;right:0;height:100px;line-height:100px;margin:0;padding:5px;font-size:40pt;text-align:center;text-shadow:black 3px 2px;font-family:cursive,fantasy;color:#920B19;background-color:#B6B6B7;}.clContent{position:absolute;top:110px;left:0;right:0;bottom:0;margin:0;padding:5px;}.clContentHeader{position:absolute;top:20px;left:0;right:0;height:30px;line-height:30px;margin:0;padding:5px;font-size:18pt;text-align:center;}.clContentArea{position:absolute;top:80px;left:0;right:0;bottom:40px;margin:10px 0;margin-left:10px;padding:5px;}.clButtonArea{position:absolute;left:0;right:0;bottom:0;height:80px;line-height:80px;margin:0;padding:5px;text-align:center;background-color:#B6B6B7;}.clButtonArea a,input[type="submit"]{margin:0 5px;padding:3px 6px;font-size:14pt;text-decoration:none;border:2px solid;color:black;background-color:buttonface;}.clButtonArea a:hover,a:visited,a:active{color:black;}#idList{table-layout:fixed;width:auto;border:2px solid;border-collapse:collapse;margin:auto;}#idList th{text-align:center;padding-left:5px;background-color:#FFFFFF;}#idList th,#idList td{padding:3px;border:2px solid;}#idForm .clContentArea{width:500px;margin:auto;}.clFormRow{position:relative;height:30px;margin-bottom:10px;}.clFormRow label{position:absolute;top:0;left:0;width:240px;text-align:center;}.clFormRow input{position:absolute;top:0;left:250px;width:250px;}

Binary file not shown.

266
Sammlung/te_tm/te.js Normal file
View File

@ -0,0 +1,266 @@
//------------------------------------------------------------------------------
// Template-Engine
//------------------------------------------------------------------------------
'use strict'
class Generator_cl {
constructor () {
this.reset_px();
}
reset_px () {
this.code_a = ['var result_a = [];\n'];
}
write_px (text_spl) {
// Escape-Zeichen bei Strings ergänzen
var text_s = text_spl.replace(/"/g, '\\"');
text_s = text_s.replace(/'/g, "\\'");
this.code_a.push('result_a.push("' + text_s + '");\n');
}
code_px (code_spl) {
if (code_spl.startsWith('if')) {
this.code_a.push('if (' + code_spl.substr(2) + ') {\n');
} else if (code_spl.startsWith('else')) {
this.code_a.push('} else {\n');
} else if (code_spl.startsWith('endif')) {
this.code_a.push('}\n');
} else if (code_spl.startsWith('for')) {
this.code_a.push('for (' + code_spl.substr(3) + ') {\n');
} else if (code_spl.startsWith('endfor')) {
this.code_a.push('}\n');
} else {
this.code_a.push(code_spl + '\n');
}
}
substitute_px (subst_spl) {
let value_s = subst_spl == null ? '' : String(subst_spl);
this.code_a.push('result_a.push(' + value_s + ');\n');
}
generate_px () {
var result_s = this.code_a.join('') + ' return result_a.join("");';
var f_o = new Function ('context', result_s);
return f_o;
}
}
class TemplateCompiler_cl {
constructor () {
this.gen_o = new Generator_cl();
this.reset_px();
}
reset_px () {
this.gen_o.reset_px();
this.preservePreWS_b = false;
this.preservePostWS_b = false;
}
setPreWS_px (on_bpl) {
if ((on_bpl == undefined) || (on_bpl == false)) {
this.preservePreWS_b = false;
} else {
this.preservePreWS_b = true;
}
}
setPostWS_px (on_bpl) {
if ((on_bpl == undefined) || (on_bpl == false)) {
this.preservePostWS_b = false;
} else {
this.preservePostWS_b = true;
}
}
compile_px (source_spl) {
var state_i = 0;
var pos_i = 0;
var len_i = source_spl.length;
var text_s = '';
var code_s = '';
var subst_s = '';
this.gen_o.reset_px();
var doubletest_f = function (char_spl) {
var status_b = false;
if ((pos_i + 1) < len_i) {
if ((source_spl[pos_i] == char_spl) && (source_spl[pos_i+1] == char_spl)) {
status_b = true;
}
}
return status_b;
}
while (pos_i < len_i) {
switch (state_i) {
case 0:
// outside
if (source_spl[pos_i] == '@') { // ECMA 5!
if (doubletest_f('@') == false) {
state_i = 2;
code_s = '';
} else {
// als normales Zeichen verarbeiten, ein Zeichen überlesen
state_i = 1;
text_s = '@';
pos_i++;
}
} else if (source_spl[pos_i] == '#') {
if (doubletest_f('#') == false) {
state_i = 3;
subst_s = '';
} else {
// als normales Zeichen verarbeiten, ein Zeichen überlesen
state_i = 1;
text_s = '#';
pos_i++;
}
} else if ((source_spl[pos_i] == ' ') || (source_spl[pos_i] == '\t')) {
state_i = 4;
text_s = '';
pos_i--; // Zeichen erneut verarbeiten
} else {
state_i = 1;
text_s = '';
pos_i--; // Zeichen erneut verarbeiten
}
break;
case 1:
// inText
if (source_spl[pos_i] == '@') {
if (doubletest_f('@') == false) {
// Textende, neuer Code
state_i = 0;
this.gen_o.write_px(text_s);
pos_i--; // Zeichen erneut verarbeiten
} else {
// als normales Zeichen verarbeiten, ein Zeichen überlesen
text_s += '@';
pos_i++;
}
} else if (source_spl[pos_i] == '#') {
if (doubletest_f('#') == false) {
// Textende, neue Substitution
state_i = 0;
this.gen_o.write_px(text_s);
pos_i--; // Zeichen erneut verarbeiten
// Textende, neuer Code
} else {
// als normales Zeichen verarbeiten, ein Zeichen überlesen
text_s += '#';
pos_i++;
}
} else if ((source_spl[pos_i] == ' ') || (source_spl[pos_i] == '\t')) {
// Textende
state_i = 0;
this.gen_o.write_px(text_s);
pos_i--; // Zeichen erneut verarbeiten
} else {
// sammeln
if ((source_spl[pos_i] != '\n') && (source_spl[pos_i] != '\r')) {
text_s += source_spl[pos_i];
} else if (source_spl[pos_i] == '\n') {
text_s += '\\n';
} else {
text_s += '\\r';
}
}
break;
case 2:
// inCode
if (source_spl[pos_i] == '@') {
if (doubletest_f('@') == false) {
// zu Ende, erzeugen
this.gen_o.code_px(code_s);
state_i = 5; //0
} else {
// als normales Zeichen verarbeiten, ein Zeichen überlesen
code_s += '@';
pos_i++;
}
} else {
// sammeln
code_s += source_spl[pos_i];
}
break;
case 3:
// inSubst
// Verdopplung # hier nicht zulässig!
if (source_spl[pos_i] == '#') {
// zu Ende, erzeugen
this.gen_o.substitute_px(subst_s);
state_i = 0;
} else {
// sammeln
subst_s += source_spl[pos_i];
}
break;
case 4:
// pre-code-whitespace
switch (source_spl[pos_i]) {
case ' ':
case '\t':
// sammeln
text_s += source_spl[pos_i];
break;
default:
state_i = 0;
if (source_spl[pos_i] != '@') {
this.gen_o.write_px(text_s);
} else {
if (doubletest_f('@') == false) {
// Whitespace vor Code-Beginn erkannt
if (this.preservePreWS_b == true) {
// trotzdem ausgeben
this.gen_o.write_px(text_s);
}
} // ansonsten wie normales Zeichen behandeln
}
pos_i--; // Zeichen erneut verarbeiten
}
break;
case 5:
// post-code-whitespace
switch (source_spl[pos_i]) {
case '\n':
text_s += '\\n';
state_i = 0;
break;
case '\r':
text_s += '\\r';
state_i = 0;
break;
case ' ':
case '\t':
// ggf. sammeln
text_s += source_spl[pos_i];
break;
default:
// Whitespace nach Code erkannt
if (this.preservePostWS_b == true) {
// trotzdem ausgeben
this.gen_o.write_px(text_s);
}
state_i = 0;
pos_i--; // Zeichen erneut verarbeiten
}
break;
}
pos_i++;
}
// welcher Zustand liegt abschließend vor?
if (state_i == 1) {
this.gen_o.write_px(text_s);
} else if (state_i == 2) {
this.gen_o.code_px(code_s);
} else if (state_i == 3) {
this.gen_o.substitute_px(subst_s);
} else if (state_i == 4) {
if (this.preservePreWS_b == true) {
this.gen_o.write_px(text_s);
}
} else if (state_i == 5) {
if (this.preservePostWS_b == true) {
this.gen_o.write_px(text_s);
}
}
return this.gen_o.generate_px();
}
}
// EOF

59
Sammlung/te_tm/tm.js Normal file
View File

@ -0,0 +1,59 @@
//------------------------------------------------------------------------------
// Template-Manager
// - Laden und Bereitstellen von Template-Quellen
//------------------------------------------------------------------------------
// depends-on:
// jquery
// te
//------------------------------------------------------------------------------
'use strict'
class TemplateManager_cl {
constructor () {
this.templates_o = {};
this.compiled_o = {};
this.teCompiler_o = new TemplateCompiler_cl();
// Templates als Ressource anfordern und speichern
var path_s = "/templates/";
$.ajax({
dataType: "json",
url: path_s,
type: 'GET',
context: this
})
.done(function (data_opl) {
this.templates_o = data_opl['templates'];
})
.fail(function(jqXHR_opl, textStatus_spl) {
alert( "[tm] Fehler bei Anforderung: " + textStatus_spl );
});
}
get_px (name_spl) {
if (name_spl in this.templates_o) {
return this.templates_o[name_spl];
} else {
return null;
}
}
execute_px (name_spl, data_opl) {
var compiled_o = null;
if (name_spl in this.compiled_o) {
compiled_o = this.compiled_o[name_spl];
} else {
// Übersetzen und ausführen
if (name_spl in this.templates_o) {
this.teCompiler_o.reset_px();
compiled_o = this.teCompiler_o.compile_px(this.templates_o[name_spl]);
this.compiled_o[name_spl] = compiled_o;
}
}
if (compiled_o != null) {
return compiled_o(data_opl);
} else {
return null;
}
}
}
// EOF

View File

@ -1,118 +1 @@
/* background-grey: #EFEFEF */
header {
display: block;
background-color: #FFFFFF;
}
section {
background-color: #EFEFEF; /*#F8F8F8;*/
border-top-right-radius: 40px;
}
footer {
background-color: #EFEFEF;
border-bottom-left-radius: 30px;
border-bottom-right-radius: 30px;
padding-top: 1%;
padding-left: 1%;
}
body {
background-color:#FFFFFF;
margin-left: auto;
margin-right: auto;
width: 65%;
}
h1 {
color: black;
}
h2 {
color: grey;
}
a:link {
color: black;
text-decoration: none;
/*background-color: black;*/
}
a:hover {
color: #ADFF2F;
}
.form {
width: 40%;
}
.alert {
color: #FF6E6E;
}
#mainNav li {
display: inline;
padding-right: 10px;
padding-left: 10px;
cursor: pointer;
}
li+li {
border-left: 2px solid grey;
}
#mainNav {
background-color: #424242;
color: white;
width: 60%;
border-top-left-radius: 10px;
}
#navButton1 {
color: #FCFCFC;
text-decoration: none;
font-weight: bold;
font-size: 110%;
padding-left: 2%;
padding-right: 2%;
}
#divideSection {
width: 30%;
border-bottom: 1px solid #000000;
}
#subSection2 {
padding-left: 1%;
}
#subSection1 {
padding-left: 1%;
padding-top: 5px;
}
#table1 {
width: 25%;
}
#verticalLineLeft {
border-left: 1px solid #000000;
}
/*
#footerBottomLine {
margin-left: auto;
width: 40%;
border-bottom: 1px solid #000000;
}
*/
tr.attendendee:hover, .selected {
background-color: #ADFF2F;
cursor: pointer;
}
header{display:block;background-color:#FFFFFF;}section{background-color:#EFEFEF;border-top-right-radius:40px;}footer{background-color:#EFEFEF;border-bottom-left-radius:30px;border-bottom-right-radius:30px;padding-top:1%;padding-left:1%;}body{background-color:#FFFFFF;margin-left:auto;margin-right:auto;width:65%;}h1{color:black;}h2{color:grey;}a:link{color:black;text-decoration:none;}a:hover{color:#ADFF2F;}.form{width:40%;}.alert{color:#FF6E6E;}#mainNav li{display:inline;padding-right:10px;padding-left:10px;cursor:pointer;}li+li{border-left:2px solid grey;}#mainNav{background-color:#424242;color:white;width:60%;border-top-left-radius:10px;}#navButton1{color:#FCFCFC;text-decoration:none;font-weight:bold;font-size:110%;padding-left:2%;padding-right:2%;}#divideSection{width:30%;border-bottom:1px solid #000000;}#subSection2{padding-left:1%;}#subSection1{padding-left:1%;padding-top:5px;}#table1{width:25%;}#verticalLineLeft{border-left:1px solid #000000;}tr.attendendee:hover,.selected{background-color:#ADFF2F;cursor:pointer;}