Merge pull request #2069 from freifunk-gluon/web-theme-cleanup

gluon-config-mode-theme: cleanup and select box theming
This commit is contained in:
Matthias Schiffer 2020-08-10 21:33:40 +02:00 committed by GitHub
commit e06081c3fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 369 additions and 463 deletions

File diff suppressed because one or more lines are too long

View File

@ -1,13 +1,13 @@
/* /*
ATTENTION: This file is not compiled when building gluon. ATTENTION: This file is not compiled when building gluon.
The compiled version is at ../files/lib/gluon/config-mode/www/static/gluon.css The compiled version is at ../files/lib/gluon/config-mode/www/static/gluon.css
Use sass like this to update it: Use sass like this to update it:
sass --sourcemap=none -C -t compressed sass/gluon.scss files/lib/gluon/config-mode/www/static/gluon.css sass --sourcemap=none -C -t compressed sass/gluon.scss files/lib/gluon/config-mode/www/static/gluon.css
When commiting changes to this file make sure to commit the respective When commiting changes to this file make sure to commit the respective
changes to the compilid version within the same commit! changes to the compilid version within the same commit!
*/ */
@charset "utf-8"; @charset "utf-8";
@ -18,624 +18,530 @@ $ffzusatz: #009ee0;
$red: #ee3300; $red: #ee3300;
@mixin button { @mixin button {
&::-moz-focus-inner { &::-moz-focus-inner {
padding: 0; padding: 0;
border: 0; border: 0;
} }
display: inline-block; display: inline-block;
zoom: 1; line-height: normal;
line-height: normal; white-space: nowrap;
white-space: nowrap; vertical-align: baseline;
vertical-align: baseline; text-align: center;
text-align: center; cursor: pointer;
cursor: pointer; user-select: none;
user-select: none;
font-size: 100%; font-size: 100%;
padding: 0.5em 1em; padding: 0.5em 1em;
color: rgba(0, 0, 0, 0.80); color: rgba(0, 0, 0, 0.80);
border: none rgba(0, 0, 0, 0); background-color: #E6E6E6;
background-color: #E6E6E6; border: none;
text-decoration: none; text-decoration: none;
border-radius: 2px; border-radius: 2px;
/* Transitions */ /* Transitions */
transition: 0.1s linear box-shadow; transition: 0.1s linear box-shadow;
&:active { &:active {
box-shadow: 0 0 0 1px rgba(0,0,0, 0.15) inset, 0 0 6px rgba(0,0,0, 0.20) inset; box-shadow: 0 0 0 1px rgba(0,0,0, 0.15) inset, 0 0 6px rgba(0,0,0, 0.20) inset;
} }
&:focus { &:focus {
outline: 0; outline: 0;
} }
&:hover, &:focus { &:hover, &:focus {
background-image: linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10)); background-image: linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10));
} }
&[disabled] { &[disabled] {
border: none; border: none;
background-image: none; background-image: none;
opacity: 0.40; opacity: 0.40;
cursor: not-allowed; cursor: not-allowed;
box-shadow: none; box-shadow: none;
} }
}
@mixin button-primary {
background-color: $ffzusatz;
color: #fff;
}
.lang_he {
direction: RTL;
unicode-bidi: embed;
}
.hidden {
display: none;
} }
html { html {
min-height: 100%; min-height: 100%;
height: auto; height: auto;
position:relative; position: relative;
} }
body, input, select, option { body, input, select, option {
font-family: 'Open Sans', Arial, sans-serif; font-family: 'Open Sans', Arial, sans-serif;
font-size: 12pt; font-size: 12pt;
} }
body { body {
color: rgb(77, 78, 83); color: rgb(77, 78, 83);
line-height: 1.5em; line-height: 1.5em;
margin: 0; margin: 0;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
min-height: 100vh; min-height: 100vh;
background-color: #f3f3f3; background-color: #f3f3f3;
}
a img {
border: none;
text-decoration: none;
} }
.tabmenu1 { .tabmenu1 {
text-align: center; text-align: center;
} }
ul.tabmenu { ul.tabmenu {
list-style: none; list-style: none;
padding: 0; padding: 0;
margin: 2em 0; margin: 2em 0;
display: inline-flex; display: inline-flex;
} }
ul.tabmenu li { ul.tabmenu li {
white-space: nowrap; white-space: nowrap;
margin: 0 0.5em; margin: 0 0.5em;
padding: 0; padding: 0;
text-align: center; text-align: center;
a { a {
display: block; display: block;
text-decoration: none; text-decoration: none;
padding: 1em; padding: 1em;
margin: 0; margin: 0;
color: #333; color: #333;
border-radius: 2em; border-radius: 2em;
&:hover { &:hover {
background: lighten($ffyellow, 35); background: lighten($ffyellow, 35);
} }
} }
&.active a { &.active a {
font-weight: bold; font-weight: bold;
background: white; background: white;
color: #333; color: #333;
} }
}
abbr,
acronym {
font-style: normal;
font-variant: normal;
}
abbr[title],
acronym[title] {
border-bottom: 1px dotted;
cursor: help;
}
a:link abbr[title],
a:visited abbr[title],
a:link acronym[title],
a:visited acronym[title] {
cursor: pointer;
}
code {
font-family: monospace;
white-space: pre;
} }
#maincontent ul { #maincontent ul {
margin-left: 2em; margin-left: 2em;
}
.clear {
clear: both;
} }
.error { .error {
color: #ff0000; color: #ff0000;
background-color: white; background-color: white;
} }
#menubar { #menubar {
display: flex; display: flex;
background: $ffmagenta; background: $ffmagenta;
color: #ffffff; color: #ffffff;
} }
#menubar a:link.topcat, #menubar a:link.topcat,
#menubar a:visited.topcat { #menubar a:visited.topcat {
position: relative; position: relative;
display: block; display: block;
padding: 0.5em; padding: 0.5em;
text-decoration: none; text-decoration: none;
font-size: 80%; font-size: 80%;
font-weight: normal; font-weight: normal;
color: white; color: white;
&:hover, &:focus { &:hover, &:focus {
background: $ffyellow; background: $ffyellow;
color: black; color: black;
} }
&.active { &.active {
background: $ffyellow; background: $ffyellow;
color: black; color: black;
font-weight: bold; font-weight: bold;
} }
} }
#menubar div.hostinfo { #menubar .hostinfo {
position: relative; position: relative;
margin: 0; margin: 0;
padding: 0.5em; padding: 0.5em;
flex: 1; flex: 1;
font-weight: bold; font-weight: bold;
font-size: 80%; font-size: 80%;
} }
#menubar div.hostinfo a { #menubar .hostinfo a {
&:link, &:visited { &:link, &:visited {
text-decoration: none; text-decoration: none;
font-weight: bold; font-weight: bold;
color: white; color: white;
&:hover, &:focus { &:hover, &:focus {
text-decoration: underline; text-decoration: underline;
} }
} }
} }
#topmenu { #topmenu {
list-style: none; list-style: none;
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
#topmenu li { #topmenu li {
display: inline-block; display: inline-block;
} }
#maincontent { #maincontent {
padding: 0 1em 2em; padding: 0 1em 2em;
max-width: 60em; max-width: 60em;
min-width: 40em; min-width: 40em;
margin: 1em auto; margin: 1em auto;
} }
#maincontent p { #maincontent p {
margin-bottom: 1em; margin-bottom: 1em;
} }
.gluon-section { .gluon-section {
margin: 0; margin: 0;
padding: 0; padding: 0;
border: none; border: none;
margin-bottom: 1.3em; margin-bottom: 1.3em;
} }
.gluon-section:last-child { .gluon-section:last-child {
margin-bottom: 0.7em; margin-bottom: 0.7em;
} }
.gluon-section legend { .gluon-section legend {
font-size: 1.4em; font-size: 1.4em;
font-weight: bold; font-weight: bold;
position: relative; position: relative;
padding: 0; padding: 0;
margin-bottom: 0.5em; margin-bottom: 0.5em;
} }
.gluon-section h2 { .gluon-section h2 {
margin: 0em 0 0.5em -0.5em !important; margin: 0em 0 0.5em -0.5em;
} }
.gluon-section h3 { .gluon-section h3 {
text-decoration: none !important; text-decoration: none;
font-weight: bold !important; font-weight: bold;
color: #555555 !important; color: #555555;
margin: 0.25em !important; margin: 0.25em;
font-size: 100% !important; font-size: 100%;
} }
.gluon-section-descr { .gluon-section-descr {
margin-bottom: 2em; margin-bottom: 2em;
} }
.gluon-osm-map { .gluon-osm-map {
width: 100%; width: 100%;
height: 40em; height: 40em;
margin-bottom: 1em; margin-bottom: 1em;
} }
input:placeholder { input::placeholder {
color: #aaaaaa; color: #aaaaaa;
} }
input:-webkit-input-placeholder { input::-webkit-input-placeholder {
color: #aaaaaa; color: #aaaaaa;
}
input:-moz-placeholder {
color: #aaaaaa;
}
input:-ms-input-placeholder {
color: #aaaaaa;
} }
input[type=checkbox] { input[type=checkbox] {
display: none; display: none;
& + label { & + label {
display: inline-block; display: inline-block;
position: relative; position: relative;
width: 1em; width: 1em;
height: 1em; height: 1em;
margin: 0; margin: 0;
} }
&:checked + label:after { &:checked + label::after {
content: ''; content: '';
color: $ffmagenta; color: $ffmagenta;
vertical-align: middle; vertical-align: middle;
position: absolute; position: absolute;
top: 50%; top: 50%;
left: 0; left: 0;
margin-top: -0.5em; margin-top: -0.5em;
width: 100%; width: 100%;
text-align: center; text-align: center;
font-size: 1.7em; font-size: 1.7em;
} }
} }
input[type=radio] { input[type=radio] {
display: none; display: none;
& + label { & + label {
display: inline-block; display: inline-block;
position: relative; position: relative;
width: 0.8em; width: 0.8em;
height: 0.8em; height: 0.8em;
padding: 0.5em; padding: 0.5em;
margin: 0.2em 0.2em 0.2em 0.1em; margin: 0.2em 0.2em 0.2em 0.1em;
border: none; border: none;
background: lighten($ffyellow, 30); background: lighten($ffyellow, 30);
vertical-align: middle; vertical-align: middle;
border-radius: 50%; border-radius: 50%;
} }
&:checked + label:after { &:checked + label::after {
content: ''; content: '';
color: $ffmagenta; color: $ffmagenta;
vertical-align: middle; vertical-align: middle;
position: absolute; position: absolute;
top: 50%; top: 50%;
left: 0; left: 0;
margin-top: -0.4em; margin-top: -0.4em;
width: 100%; width: 100%;
text-align: center; text-align: center;
font-size: 2em; font-size: 2em;
} }
} }
input[type=submit], input[type=submit],
input[type=reset], input[type=reset],
input[type=image],
input[type=button] { input[type=button] {
cursor: pointer; cursor: pointer;
} }
select, select,
input, input,
textarea, textarea,
input[type=checkbox] + label { input[type=checkbox] + label {
color: darken($ffzusatz, 30); color: darken($ffzusatz, 30);
border: none; border: none;
background: lighten($ffyellow, 30); background: lighten($ffyellow, 30);
border-radius: 3pt; border-radius: 3pt;
padding: 0.5em; padding: 0.5em;
margin-top: 1px; margin-top: 1px;
margin-bottom: 2px; margin-bottom: 2px;
box-sizing: content-box; box-sizing: content-box;
outline: 0; outline: 0;
}
.select-wrapper {
position: relative;
display: inline-block;
&::before {
position: absolute;
z-index: 1;
right: 0.05em;
top: calc(2px + 0.1em);
bottom: calc(2px + 0.1em);
width: 1.4em;
border-left: 0.05em solid rgba(0, 0, 0, 0.25);
pointer-events: none;
background:
url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="8" height="5"><path fill="none" stroke="black" stroke-linejoin="bevel" d="M1,1L4,4L7,1"/></svg>')
center / 0.8em 0.5em
no-repeat
;
content: '';
}
select {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
cursor: pointer;
}
} }
option { option {
color: darken($ffzusatz, 30); color: darken($ffzusatz, 30);
background: lighten($ffyellow, 30); background: lighten($ffyellow, 30);
}
input[type=image] {
border: none;
} }
select, select,
input[type=text], input[type=text],
input[type=password] { input[type=password] {
min-width: 20em; min-width: 20em;
} }
input.gluon-button { .gluon-button {
@include button; @include button;
margin-left: 0.5em; margin-left: 0.5em;
background-repeat: no-repeat; background-repeat: no-repeat;
} }
input.gluon-button-reset { .gluon-button-reset {
background-color: $red; background-color: $red;
color: #fff; color: #fff;
}
input.gluon-button-submit {
@include button-primary;
} }
input.gluon-button-submit:active { .gluon-button-submit {
background: grey; background-color: $ffzusatz;
color: #fff;
}
.gluon-button-submit:active {
background: grey;
} }
.gluon-input-invalid { .gluon-input-invalid {
background: $red !important; background: $red !important;
color: white; color: white;
}
div.gluon-section-remove input {
border-bottom: none;
} }
textarea { textarea {
margin-left: -1px; margin-left: -1px;
margin-bottom: 0.5em; margin-bottom: 0.5em;
} }
.gluon-section .gluon-rowstyle-1 h3 { .gluon-value {
background-color: #eeeeff; display: flex;
color: #555555; flex-direction: row;
} margin-bottom: 0.5em;
.gluon-rowstyle-2 {
color: #000000;
}
div.gluon-value {
display: flex;
flex-direction: row;
margin-bottom: 0.5em;
} }
.gluon-section-node .gluon-value:last-child { .gluon-section-node .gluon-value:last-child {
margin-bottom: 0; margin-bottom: 0;
} }
.gluon-value-title { .gluon-value-title {
flex: 2; flex: 2;
text-align: right; text-align: right;
padding-top: 0.39em; padding-top: 0.39em;
padding-right: 1em; padding-right: 1em;
font-weight: bold; font-weight: bold;
} }
div.gluon-value-field { .gluon-value-field {
flex: 3; flex: 3;
position: relative; position: relative;
input, select, input + label { input, select, input + label {
position: relative; position: relative;
} }
} }
div.gluon-value-field-text { .gluon-value-field-text {
flex: 3; flex: 3;
padding-top: 0.39em; padding-top: 0.39em;
} }
div.gluon-value-field-long { .gluon-value-field-long {
flex: 10; flex: 10;
position: relative; position: relative;
margin-top: 0.65em; margin-top: 0.65em;
input, select, input + label { input, select, input + label {
position: relative; position: relative;
} }
} }
div.gluon-value-field-long-after { .gluon-value-field-long-after {
flex: 2; flex: 2;
} }
div.gluon-value-description { .gluon-value-description {
font-size: 8pt; font-size: 8pt;
} }
div.gluon-section-create { .gluon-form-descr {
clear: left; margin-bottom: 1em;
white-space: nowrap;
vertical-align: top;
}
div.gluon-section-create .gluon-button {
margin: 0.25em;
}
input.gluon-section-create-name {
margin-right: -0.25em;
}
div.gluon-form-descr {
margin-bottom: 1em;
} }
.gluon-form-descr:empty, .gluon-section-descr:empty { .gluon-form-descr:empty, .gluon-section-descr:empty {
display: none; display: none;
} }
.gluon-form-descr, .gluon-section-descr, .gluon-page-actions { .gluon-form-descr, .gluon-section-descr, .gluon-page-actions {
padding: 1em; padding: 1em;
background: #ececec; background: #ececec;
} }
.gluon-page-actions { .gluon-page-actions {
text-align: right; text-align: right;
display: flex; display: flex;
flex-flow: row-reverse; flex-flow: row-reverse;
}
div.gluon-optionals {
padding: 0.25em;
border-bottom: 1px dotted #bbbbbb;
}
div.gluon-section-remove {
float: right;
} }
.gluon-section-node { .gluon-section-node {
clear: both; clear: both;
position: relative; position: relative;
border: none; border: none;
}
.gluon-section-node-tabbed {
border-top-left-radius: 0;
}
div.gluon-error {
font-size: 95%;
font-weight: bold;
color: #ff0000;
background-color: #ffffff;
} }
.gluon-value-error input, .gluon-value-error input,
.gluon-value-error select { .gluon-value-error select {
background-color: #ffcccc; background-color: #ffcccc;
} }
.gluon-value-field var { .gluon-add::after, .gluon-remove::after {
color: #2222FF; cursor: pointer;
} display: inline-block;
text-align: center;
.gluon-add:after, .gluon-remove:after { vertical-align: middle;
cursor: pointer; font-size: 180%;
display: inline-block; width: 1.2em;
text-align: center; height: 1em;
vertical-align: middle;
font-size: 180%;
width: 1.2em;
height: 1em;
} }
.gluon-add { .gluon-add {
color: #008000; color: #008000;
position: relative; position: relative;
left: 21em; left: 21em;
input + & { input + & {
left: 0; left: 0;
top: 0.04em; top: 0.04em;
} }
&:first-child { &:first-child {
top: 0.53em; top: 0.53em;
left: -0.08em; left: -0.08em;
} }
&:after { &::after {
content: '+'; content: '+';
} }
} }
.gluon-remove { .gluon-remove {
color: #800000; color: #800000;
position: relative; position: relative;
top: -0.03em; top: -0.03em;
&:after { &::after {
content: ''; content: '';
} }
}
.left {
text-align: left !important;
}
.right {
text-align: right !important;
}
.inline {
display: inline;
} }
.error500 { .error500 {
border: 1px dotted #ff0000; border: 1px dotted #ff0000;
background-color: #ffffff; background-color: #ffffff;
color: #000000; color: #000000;
padding: 0.5em; padding: 0.5em;
} }
.errorbox { .errorbox {
border: 1px solid #FF0000; border: 1px solid #FF0000;
background-color: #FFCCCC; background-color: #FFCCCC;
padding: 5px; padding: 5px;
margin-bottom: 5px; margin-bottom: 5px;
} }
.errorbox a { .errorbox a {
color: #000000 !important; color: #000000 !important;
} }
.the-key { .the-key {
text-align: left; text-align: left;
font-size: 1.4em; font-size: 1.4em;
background: lighten($ffyellow, 35); background: lighten($ffyellow, 35);
border: 3pt dashed $ffmagenta; border: 3pt dashed $ffmagenta;
margin-bottom: 0.5em; margin-bottom: 0.5em;
padding: 0.5em padding: 0.5em
} }

View File

@ -26,7 +26,7 @@ $Id$
<%:Firmware image%> <%:Firmware image%>
</label> </label>
<div class="gluon-value-field"> <div class="gluon-value-field">
<input class="gluon-input-file" type="file" name="image" /> <input type="file" name="image" />
</div> </div>
</div> </div>
@ -36,13 +36,13 @@ $Id$
</label> </label>
<div class="gluon-value-field"> <div class="gluon-value-field">
<input id="keepcfg" class="gluon-input-checkbox" type="checkbox" name="keepcfg" value="1" checked="checked" /> <input id="keepcfg" type="checkbox" name="keepcfg" value="1" checked="checked" />
<label for="keepcfg"></label> <label for="keepcfg"></label>
</div> </div>
</div> </div>
</div> </div>
<div class="gluon-page-actions right"> <div class="gluon-page-actions">
<input type="hidden" name="step" value="2" /> <input type="hidden" name="step" value="2" />
<input type="hidden" name="token" value="<%=token%>" /> <input type="hidden" name="token" value="<%=token%>" />
<input class="gluon-button gluon-button-submit" type="submit" value="<%:Upload image%>" /> <input class="gluon-button gluon-button-submit" type="submit" value="<%:Upload image%>" />

View File

@ -1,6 +1,6 @@
<div class="gluon-value"> <div class="gluon-value">
<div class="gluon-value-title"> <div class="gluon-value-title">
<input class="gluon-input-radio" data-update="change" type="radio" value="security"<%= attr("id", id..'.1') .. attr("name", id) .. attr("checked", ((self:cfgvalue() or self.default) == "security") and "checked") %> /> <input data-update="change" type="radio" value="security"<%= attr("id", id..'.1') .. attr("name", id) .. attr("checked", ((self:cfgvalue() or self.default) == "security") and "checked") %> />
<label<%= attr("for", id..'.1')%>></label> <label<%= attr("for", id..'.1')%>></label>
</div> </div>
<div class="gluon-value-field-long"> <div class="gluon-value-field-long">
@ -18,7 +18,7 @@
<div class="gluon-value gluon-value-last"> <div class="gluon-value gluon-value-last">
<div class="gluon-value-title"> <div class="gluon-value-title">
<input class="gluon-input-radio" data-update="change" type="radio" value="performance"<%= attr("id", id..'.2') .. attr("name", id) .. attr("checked", ((self:cfgvalue() or self.default) == "performance") and "checked") %> /> <input data-update="change" type="radio" value="performance"<%= attr("id", id..'.2') .. attr("name", id) .. attr("checked", ((self:cfgvalue() or self.default) == "performance") and "checked") %> />
<label<%= attr("for", id..'.2')%>></label> <label<%= attr("for", id..'.2')%>></label>
</div> </div>
<div class="gluon-value-field-long"> <div class="gluon-value-field-long">

View File

@ -10,7 +10,7 @@
<% <%
for i, val in ipairs(self:cfgvalue()) do for i, val in ipairs(self:cfgvalue()) do
%> %>
<input class="gluon-input-text" value="<%|val%>" data-update="change" type="text"<%= <input value="<%|val%>" data-update="change" type="text"<%=
attr("id", id .. "." .. i) .. attr("id", id .. "." .. i) ..
attr("name", id) .. attr("name", id) ..
attr("size", self.size) .. attr("size", self.size) ..

View File

@ -1,4 +1,4 @@
<input class="gluon-input-checkbox" data-update="click change" type="checkbox" value="1"<%= <input data-update="click change" type="checkbox" value="1"<%=
attr("id", id) .. attr("name", id) .. attr("id", id) .. attr("name", id) ..
attr("checked", self:cfgvalue() and "checked") attr("checked", self:cfgvalue() and "checked")
%> /> %> />

View File

@ -4,23 +4,25 @@
%> %>
<% if self.widget == "select" then %> <% if self.widget == "select" then %>
<select class="gluon-input-select" data-update="change"<%= <div class="select-wrapper">
attr("id", id) .. <select data-update="change"<%=
attr("name", id) .. attr("id", id) ..
attr("size", self.size) .. attr("name", id) ..
attr("data-type", "minlength(1)") .. attr("size", self.size) ..
attr("data-optional", self.optional) attr("data-type", "minlength(1)") ..
%>> attr("data-optional", self.optional)
<% for i, entry in pairs(entries) do -%> %>>
<option<%= <% for i, entry in pairs(entries) do -%>
attr("id", id.."."..entry.key) .. <option<%=
attr("value", entry.key) .. attr("id", id.."."..entry.key) ..
attr("data-index", i) .. attr("value", entry.key) ..
attr("data-depends", self:deplist(entry.deps)) .. attr("data-index", i) ..
attr("selected", (self:cfgvalue() == entry.key) and "selected") attr("data-depends", self:deplist(entry.deps)) ..
%>><%|entry.value%></option> attr("selected", (self:cfgvalue() == entry.key) and "selected")
<%- end %> %>><%|entry.value%></option>
</select> <%- end %>
</select>
</div>
<% elseif self.widget == "radio" then %> <% elseif self.widget == "radio" then %>
<div> <div>
<% for i, entry in pairs(entries) do %> <% for i, entry in pairs(entries) do %>
@ -28,7 +30,7 @@
attr("data-index", i) .. attr("data-index", i) ..
attr("data-depends", self:deplist(entry.deps)) attr("data-depends", self:deplist(entry.deps))
%>> %>>
<input class="gluon-input-radio" data-update="click change" type="radio"<%= <input data-update="click change" type="radio"<%=
attr("id", id.."."..entry.key) .. attr("id", id.."."..entry.key) ..
attr("name", id) .. attr("name", id) ..
attr("value", entry.key) .. attr("value", entry.key) ..

View File

@ -1,3 +1,3 @@
<textarea class="gluon-input-textarea" <% if not self.size then %> style="width: 100%"<% else %> cols="<%=self.size%>"<% end %> data-update="change"<%= attr("name", id) .. attr("id", id) .. attr("rows", self.rows) .. attr("wrap", self.wrap) %>> <textarea <% if not self.size then %> style="width: 100%"<% else %> cols="<%=self.size%>"<% end %> data-update="change"<%= attr("name", id) .. attr("id", id) .. attr("rows", self.rows) .. attr("wrap", self.wrap) %>>
<%-|self:cfgvalue()-%> <%-|self:cfgvalue()-%>
</textarea> </textarea>

View File

@ -2,7 +2,6 @@
attr("id", id) .. attr("id", id) ..
attr("name", id) .. attr("name", id) ..
attr("type", self.password and "password" or "text") .. attr("type", self.password and "password" or "text") ..
attr("class", self.password and "gluon-input-password" or "gluon-input-text") ..
attr("value", self:cfgvalue()) .. attr("value", self:cfgvalue()) ..
attr("size", self.size) .. attr("size", self.size) ..
attr("placeholder", self.placeholder) .. attr("placeholder", self.placeholder) ..

File diff suppressed because one or more lines are too long

View File

@ -276,7 +276,6 @@
t.value = values[i-1]; t.value = values[i-1];
t.type = 'text'; t.type = 'text';
t.index = i; t.index = i;
t.className = 'gluon-input-text';
if (attr.size) if (attr.size)
t.size = attr.size; t.size = attr.size;