mirror of
https://github.com/lxsang/antd-web-apps
synced 2024-11-20 02:18:20 +01:00
use afx in blog
This commit is contained in:
parent
073337eabe
commit
6a64670786
@ -1,126 +1,135 @@
|
|||||||
var scheme = undefined;
|
var scheme = undefined;
|
||||||
String.prototype.__ = function()
|
OS.GUI.workspace = undefined;
|
||||||
{
|
String.prototype.__ = function () {
|
||||||
return this
|
return this;
|
||||||
}
|
};
|
||||||
function subscribe(prefix)
|
function subscribe(prefix) {
|
||||||
{
|
if (!OS.GUI.workspace) OS.GUI.workspace = $("body");
|
||||||
if(scheme) return;
|
if (scheme) return;
|
||||||
// get scheme
|
// get scheme
|
||||||
$.get(prefix+"/rst/subscribe.html")
|
$.get(prefix + "/rst/subscribe.html")
|
||||||
.done(function(d) {
|
.done(function (d) {
|
||||||
scheme = $.parseHTML(d)
|
scheme = $.parseHTML(d);
|
||||||
var obs = riot.observable()
|
var obs = new OS.API.Announcer();
|
||||||
$(scheme).css("visibility","hidden")
|
$(scheme).css("visibility", "hidden");
|
||||||
$("#desktop" ).append(scheme)
|
$("body").append(scheme);
|
||||||
obs.on("exit", function(){
|
obs.on("exit", function () {
|
||||||
$(scheme).remove()
|
$(scheme).remove();
|
||||||
scheme = undefined
|
scheme = undefined;
|
||||||
})
|
});
|
||||||
obs.on("rendered", function(d){
|
obs.on("rendered", function (d) {
|
||||||
$(".afx-window-title", scheme).html("Subscribe")
|
console.log("rednered");
|
||||||
$("[data-id='send']", scheme).click(function(){
|
$(".afx-window-title", scheme).html("Subscribe");
|
||||||
var status = $("[data-id='status']", scheme)
|
$("[data-id='send']", scheme).click(function () {
|
||||||
status.html("");
|
var status = $("[data-id='status']", scheme);
|
||||||
var els = $("[data-class='data']", scheme)
|
status.html("");
|
||||||
var data = {}
|
var els = $("[data-class='data']", scheme);
|
||||||
|
var data = {};
|
||||||
|
|
||||||
for(var i = 0; i < els.length; i++)
|
for (var i = 0; i < els.length; i++)
|
||||||
data[els[i].name] = $(els[i]).val()
|
data[els[i].name] = $(els[i]).val();
|
||||||
if(data.email == "" || data.subject == "" || data.content == "" || data.name == "")
|
if (
|
||||||
return status.html("Please enter all the fields");
|
data.email == "" ||
|
||||||
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
data.subject == "" ||
|
||||||
if(!re.test(String(data.email).toLowerCase()))
|
data.content == "" ||
|
||||||
return status.html("Email is not correct");
|
data.name == ""
|
||||||
|
)
|
||||||
|
return status.html("Please enter all the fields");
|
||||||
|
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
||||||
|
if (!re.test(String(data.email).toLowerCase()))
|
||||||
|
return status.html("Email is not correct");
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: "POST",
|
||||||
url: prefix + "/service/subscribe",
|
url: prefix + "/service/subscribe",
|
||||||
contentType: 'application/json',
|
contentType: "application/json",
|
||||||
data: JSON.stringify(data),
|
data: JSON.stringify(data),
|
||||||
dataType: 'json',
|
dataType: "json",
|
||||||
success: null
|
success: null,
|
||||||
}).done(function(r){
|
})
|
||||||
if(r.error)
|
.done(function (r) {
|
||||||
{
|
if (r.error) {
|
||||||
console.log(r.error)
|
console.log(r.error);
|
||||||
alert(r.error)
|
alert(r.error);
|
||||||
}
|
} else {
|
||||||
else
|
obs.trigger("exit");
|
||||||
{
|
alert("You have been subscribed. Thanks");
|
||||||
obs.trigger("exit")
|
}
|
||||||
alert("You have been subscribed. Thanks")
|
})
|
||||||
}
|
.fail(function (e, s) {
|
||||||
}).fail(function(e, s){
|
console.log(e);
|
||||||
console.log(e)
|
alert("Error: " + e);
|
||||||
alert("Error: " + e)
|
});
|
||||||
})
|
});
|
||||||
})
|
$(scheme).css("visibility", "visible");
|
||||||
$(scheme).css("visibility","visible")
|
});
|
||||||
|
scheme[0].uify(obs, true);
|
||||||
})
|
})
|
||||||
riot.mount(scheme, {observable:obs})
|
.fail(function () {
|
||||||
})
|
alert("Cannot get the form");
|
||||||
.fail(function() {
|
});
|
||||||
alert( "Cannot get the form" );
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
function mailtoMe(prefix)
|
function mailtoMe(prefix) {
|
||||||
{
|
if (!OS.GUI.workspace) OS.GUI.workspace = $("body");
|
||||||
if(scheme) return;
|
if (scheme) return;
|
||||||
// get scheme
|
// get scheme
|
||||||
$.get(prefix+"/rst/sendto.html")
|
$.get(prefix + "/rst/sendto.html")
|
||||||
.done(function(d) {
|
.done(function (d) {
|
||||||
scheme = $.parseHTML(d)
|
scheme = $.parseHTML(d);
|
||||||
var obs = riot.observable()
|
var obs = new OS.API.Announcer();
|
||||||
$(scheme).css("visibility","hidden")
|
$(scheme).css("visibility", "hidden");
|
||||||
$("#desktop" ).append(scheme)
|
$("body").append(scheme);
|
||||||
obs.on("exit", function(){
|
obs.on("exit", function () {
|
||||||
$(scheme).remove()
|
$(scheme).remove();
|
||||||
scheme = undefined
|
scheme = undefined;
|
||||||
})
|
});
|
||||||
obs.on("rendered", function(d){
|
obs.on("rendered", function (d) {
|
||||||
$(".afx-window-title", scheme).html("Send me an email")
|
$(".afx-window-title", scheme).html("Send me an email");
|
||||||
$("[data-id='send']", scheme).click(function(){
|
$("[data-id='send']", scheme).click(function () {
|
||||||
var status = $("[data-id='status']", scheme)
|
var status = $("[data-id='status']", scheme);
|
||||||
status.html("");
|
status.html("");
|
||||||
var els = $("[data-class='data']", scheme)
|
var els = $("[data-class='data']", scheme);
|
||||||
var data = {}
|
var data = {};
|
||||||
|
|
||||||
for(var i = 0; i < els.length; i++)
|
for (var i = 0; i < els.length; i++)
|
||||||
data[els[i].name] = $(els[i]).val()
|
data[els[i].name] = $(els[i]).val();
|
||||||
if(data.email == "" || data.subject == "" || data.content == "" || data.name == "")
|
if (
|
||||||
return status.html("Please enter all the fields");
|
data.email == "" ||
|
||||||
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
data.subject == "" ||
|
||||||
if(!re.test(String(data.email).toLowerCase()))
|
data.content == "" ||
|
||||||
return status.html("Email is not correct");
|
data.name == ""
|
||||||
|
)
|
||||||
|
return status.html("Please enter all the fields");
|
||||||
|
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
||||||
|
if (!re.test(String(data.email).toLowerCase()))
|
||||||
|
return status.html("Email is not correct");
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: "POST",
|
||||||
url: prefix + "/service/sendmail",
|
url: prefix + "/service/sendmail",
|
||||||
contentType: 'application/json',
|
contentType: "application/json",
|
||||||
data: JSON.stringify(data),
|
data: JSON.stringify(data),
|
||||||
dataType: 'json',
|
dataType: "json",
|
||||||
success: null
|
success: null,
|
||||||
}).done(function(r){
|
})
|
||||||
if(r.error)
|
.done(function (r) {
|
||||||
{
|
if (r.error) {
|
||||||
console.log(r.error)
|
console.log(r.error);
|
||||||
alert(r.error)
|
alert(r.error);
|
||||||
}
|
} else {
|
||||||
else
|
obs.trigger("exit");
|
||||||
{
|
alert("Email sent. Thank");
|
||||||
obs.trigger("exit")
|
}
|
||||||
alert("Email sent. Thank")
|
})
|
||||||
}
|
.fail(function () {
|
||||||
}).fail(function(){
|
alert("Service unavailable at the moment");
|
||||||
alert("Service unavailable at the moment")
|
});
|
||||||
})
|
});
|
||||||
})
|
$(scheme).css("visibility", "visible");
|
||||||
$(scheme).css("visibility","visible")
|
});
|
||||||
|
scheme[0].uify(obs, true);
|
||||||
})
|
})
|
||||||
riot.mount(scheme, {observable:obs})
|
.fail(function () {
|
||||||
})
|
alert("Cannot get the form");
|
||||||
.fail(function() {
|
});
|
||||||
alert( "Cannot get the form" );
|
|
||||||
})
|
|
||||||
}
|
}
|
@ -1,4 +1,5 @@
|
|||||||
html,body{
|
html,
|
||||||
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
font-family: "Ubuntu";
|
font-family: "Ubuntu";
|
||||||
@ -8,7 +9,7 @@ html,body{
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
#desktop{
|
#desktop {
|
||||||
/*width:100%;
|
/*width:100%;
|
||||||
min-height:100%;
|
min-height:100%;
|
||||||
overflow:hidden;
|
overflow:hidden;
|
||||||
@ -18,7 +19,7 @@ html,body{
|
|||||||
color: #414339;*/
|
color: #414339;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
#top{
|
#top {
|
||||||
background-color: #2c2c2c;
|
background-color: #2c2c2c;
|
||||||
color: white;
|
color: white;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
@ -26,67 +27,67 @@ html,body{
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
}
|
}
|
||||||
#top ul{
|
#top ul {
|
||||||
padding:0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding-top: 16px;
|
padding-top: 16px;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
}
|
||||||
#top ul li{
|
#top ul li {
|
||||||
float: left;
|
float: left;
|
||||||
padding-left:10px;
|
padding-left: 10px;
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
}
|
}
|
||||||
#top ul li i{
|
#top ul li i {
|
||||||
margin-right: 3px;
|
margin-right: 3px;
|
||||||
}
|
}
|
||||||
#top ul li a{
|
#top ul li a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
#top ul li a:hover{
|
#top ul li a:hover {
|
||||||
border-bottom: 1px dashed white;
|
border-bottom: 1px dashed white;
|
||||||
}
|
}
|
||||||
#bottom{
|
#bottom {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color:#878887;
|
color: #878887;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding:5px;
|
padding: 5px;
|
||||||
border-top: 1px solid #878887;
|
border-top: 1px solid #878887;
|
||||||
}
|
}
|
||||||
#desktop{
|
#desktop {
|
||||||
height: calc(100% - 80px);
|
height: calc(100% - 80px);
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
padding-left: 15px;
|
padding-left: 15px;
|
||||||
padding-right: 15px;
|
padding-right: 15px;
|
||||||
}
|
}
|
||||||
#navbar{
|
#navbar {
|
||||||
margin:0 auto;
|
margin: 0 auto;
|
||||||
max-width: 960px;
|
max-width: 960px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content:flex-end;
|
justify-content: flex-end;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
#navbar.navmobile{
|
#navbar.navmobile {
|
||||||
margin:0 auto;
|
margin: 0 auto;
|
||||||
max-width: 960px;
|
max-width: 960px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content:flex-start;
|
justify-content: flex-start;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
#container{
|
#container {
|
||||||
margin:0 auto;
|
margin: 0 auto;
|
||||||
max-width: 960px;
|
max-width: 960px;
|
||||||
text-align: justify;
|
text-align: justify;
|
||||||
}
|
}
|
||||||
|
|
||||||
textarea{
|
textarea {
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
border: 0;
|
border: 0;
|
||||||
@ -101,85 +102,85 @@ input {
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
height: 17px;
|
height: 17px;
|
||||||
}
|
}
|
||||||
div.label{
|
div.label {
|
||||||
color: #899aae;
|
color: #899aae;
|
||||||
}
|
}
|
||||||
button{
|
button {
|
||||||
outline: none;
|
outline: none;
|
||||||
background-color: #5fa6cf;
|
background-color: #5fa6cf;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: white;
|
color: white;
|
||||||
border: 0;
|
border: 0;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
padding:5px;
|
padding: 5px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
box-shadow: 1px 1px 1px #9f9F9F;
|
box-shadow: 1px 1px 1px #9f9f9f;
|
||||||
}
|
}
|
||||||
#container .card{
|
#container .card {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
|
||||||
}
|
}
|
||||||
#container .mobile {
|
#container .mobile {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
#container .card .side{
|
#container .card .side {
|
||||||
padding-top:28px;
|
padding-top: 28px;
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
display: block;
|
display: block;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
width: 120px;
|
width: 120px;
|
||||||
flex: 1 0 auto;
|
flex: 1 0 auto;
|
||||||
color:#3170B2;
|
color: #3170b2;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
#container .card .side .fb-like{
|
#container .card .side .fb-like {
|
||||||
border-right: 1px solid #cccccc;
|
border-right: 1px solid #cccccc;
|
||||||
display: block;
|
display: block;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
}
|
}
|
||||||
#container .card .side .twitter-share-button{
|
#container .card .side .twitter-share-button {
|
||||||
display: inline;
|
display: inline;
|
||||||
padding:5px;
|
padding: 5px;
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
border-right: 1px solid #cccccc;
|
border-right: 1px solid #cccccc;
|
||||||
}
|
}
|
||||||
#container .mobile .side{
|
#container .mobile .side {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
#container .mobile .side .fb-like, #container .mobile .side .twitter-share-button {
|
#container .mobile .side .fb-like,
|
||||||
border:0;
|
#container .mobile .side .twitter-share-button {
|
||||||
|
border: 0;
|
||||||
}
|
}
|
||||||
#container .card .side .date{
|
#container .card .side .date {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
color: #662702;
|
color: #662702;
|
||||||
padding-right: 5px;
|
padding-right: 5px;
|
||||||
padding-bottom: 7px;
|
padding-bottom: 7px;
|
||||||
border-right: 1px solid #cccccc;
|
border-right: 1px solid #cccccc;
|
||||||
}
|
}
|
||||||
#container .mobile .side .date{
|
#container .mobile .side .date {
|
||||||
border: 0;
|
border: 0;
|
||||||
}
|
}
|
||||||
#container .card .side .tags{
|
#container .card .side .tags {
|
||||||
display: block;
|
display: block;
|
||||||
padding-right: 5px;
|
padding-right: 5px;
|
||||||
line-height: 1.1;
|
line-height: 1.1;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color:#878887;
|
color: #878887;
|
||||||
border-right: 1px solid #cccccc;
|
border-right: 1px solid #cccccc;
|
||||||
}
|
}
|
||||||
#container .mobile .side .tags{
|
#container .mobile .side .tags {
|
||||||
border: 0;
|
border: 0;
|
||||||
}
|
}
|
||||||
#container .card .side .tags a{
|
#container .card .side .tags a {
|
||||||
color:#878887;
|
color: #878887;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
#container .card .side .tags a:hover{
|
#container .card .side .tags a:hover {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
text-decoration-color: #cccccc;
|
text-decoration-color: #cccccc;
|
||||||
}
|
}
|
||||||
@ -190,8 +191,8 @@ button{
|
|||||||
padding-right: 3px;
|
padding-right: 3px;
|
||||||
color: #cccccc;
|
color: #cccccc;
|
||||||
}*/
|
}*/
|
||||||
#container .blogentry{
|
#container .blogentry {
|
||||||
padding-top:20px;
|
padding-top: 20px;
|
||||||
/*border-bottom: 1px solid #cccccc;
|
/*border-bottom: 1px solid #cccccc;
|
||||||
padding-bottom: 20px;*/
|
padding-bottom: 20px;*/
|
||||||
}
|
}
|
||||||
@ -199,40 +200,41 @@ button{
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
#container .blogentry img{
|
#container .blogentry img {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
display: block;
|
display: block;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
}
|
}
|
||||||
#container .blogentry pre {
|
#container .blogentry pre {
|
||||||
white-space: pre-wrap; /* Since CSS 2.1 */
|
white-space: pre-wrap; /* Since CSS 2.1 */
|
||||||
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
|
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
|
||||||
white-space: -pre-wrap; /* Opera 4-6 */
|
white-space: -pre-wrap; /* Opera 4-6 */
|
||||||
white-space: -o-pre-wrap; /* Opera 7 */
|
white-space: -o-pre-wrap; /* Opera 7 */
|
||||||
word-wrap: break-word; /* Internet Explorer 5.5+ */
|
word-wrap: break-word; /* Internet Explorer 5.5+ */
|
||||||
}
|
}
|
||||||
#container .blogentry a{
|
#container .blogentry a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color:#3170B2;
|
color: #3170b2;
|
||||||
}
|
}
|
||||||
#container .blogentry hr{
|
#container .blogentry hr {
|
||||||
display: block;
|
display: block;
|
||||||
height: 1px;
|
height: 1px;
|
||||||
border: 0;
|
border: 0;
|
||||||
border-top: 1px solid #878887;
|
border-top: 1px solid #878887;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
#container .blogentry table{
|
#container .blogentry table {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
}
|
}
|
||||||
#container .blogentry table th,#container .blogentry table td{
|
#container .blogentry table th,
|
||||||
|
#container .blogentry table td {
|
||||||
border: 1px solid #878787;
|
border: 1px solid #878787;
|
||||||
padding:3px;
|
padding: 3px;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
}
|
}
|
||||||
@ -240,9 +242,10 @@ button{
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
#container .blogentry pre table td, #container .blogentry pre table td{
|
#container .blogentry pre table td,
|
||||||
border:0;
|
#container .blogentry pre table td {
|
||||||
padding:0;
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
#
|
#
|
||||||
@ -254,37 +257,37 @@ button{
|
|||||||
background-color: #878787;
|
background-color: #878787;
|
||||||
padding:3px;
|
padding:3px;
|
||||||
}*/
|
}*/
|
||||||
#container .blogentry h1{
|
#container .blogentry h1 {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
padding:0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
#container .blogentry .title_link {
|
#container .blogentry .title_link {
|
||||||
color:#2c2c2c;
|
color: #2c2c2c;
|
||||||
}
|
}
|
||||||
#container .blogentry h2{
|
#container .blogentry h2 {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
#container .blogentry h3{
|
#container .blogentry h3 {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
#container .blogentry h4{
|
#container .blogentry h4 {
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
#container .blogentry .embeded-video{
|
#container .blogentry .embeded-video {
|
||||||
display: block;
|
display: block;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
}
|
}
|
||||||
input.search-box{
|
input.search-box {
|
||||||
flex:1;
|
flex: 1;
|
||||||
padding:0;
|
padding: 0;
|
||||||
margin:0;
|
margin: 0;
|
||||||
padding-top:13px;
|
padding-top: 13px;
|
||||||
height: 25px;
|
height: 25px;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
border-bottom: 1px solid #878887;
|
border-bottom: 1px solid #878887;
|
||||||
@ -293,21 +296,21 @@ input.search-box{
|
|||||||
line-height: 0.5;
|
line-height: 0.5;
|
||||||
color: #878887;
|
color: #878887;
|
||||||
}
|
}
|
||||||
div.search-icon:before{
|
div.search-icon:before {
|
||||||
padding-top:13px;
|
padding-top: 13px;
|
||||||
content: "\f002";
|
content: "\f002";
|
||||||
color:#878887;
|
color: #878887;
|
||||||
display: block;
|
display: block;
|
||||||
width:20px;
|
width: 20px;
|
||||||
height: 25px;
|
height: 25px;
|
||||||
font-family: "FontAwesome";
|
font-family: "FontAwesome";
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
border-bottom: 1px solid #878887;
|
border-bottom: 1px solid #878887;
|
||||||
}
|
}
|
||||||
div.logo{
|
div.logo {
|
||||||
display: block;
|
display: block;
|
||||||
width: 122px;
|
width: 122px;
|
||||||
height:50px;
|
height: 50px;
|
||||||
background-image: url(mrsang.min.png);
|
background-image: url(mrsang.min.png);
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: right;
|
background-position: right;
|
||||||
@ -316,13 +319,13 @@ div.logo{
|
|||||||
#navbar.navmobile div.logo {
|
#navbar.navmobile div.logo {
|
||||||
display: block;
|
display: block;
|
||||||
width: 50px;
|
width: 50px;
|
||||||
height:50px;
|
height: 50px;
|
||||||
background-image: url(mrsang.min.png);
|
background-image: url(mrsang.min.png);
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: right;
|
background-position: right;
|
||||||
background-size: 85% 85%;
|
background-size: 85% 85%;
|
||||||
}
|
}
|
||||||
div.logo a{
|
div.logo a {
|
||||||
display: block;
|
display: block;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -331,15 +334,15 @@ div.logo a{
|
|||||||
div.detail {
|
div.detail {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
margin-top:20px;
|
margin-top: 20px;
|
||||||
}
|
}
|
||||||
div.detail span{
|
div.detail span {
|
||||||
display: block;
|
display: block;
|
||||||
height: 16px;
|
height: 16px;
|
||||||
border-bottom: 1px solid #cccccc;
|
border-bottom: 1px solid #cccccc;
|
||||||
flex:1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
div.detail a{
|
div.detail a {
|
||||||
width: 32px;
|
width: 32px;
|
||||||
display: block;
|
display: block;
|
||||||
|
|
||||||
@ -350,82 +353,82 @@ div.detail a{
|
|||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
div.detail a:before{
|
div.detail a:before {
|
||||||
font-size:16px;
|
font-size: 16px;
|
||||||
content:"\f039";
|
content: "\f039";
|
||||||
font-family: "FontAwesome";
|
font-family: "FontAwesome";
|
||||||
line-height: 2.0;
|
line-height: 2;
|
||||||
padding-left:8px;
|
padding-left: 8px;
|
||||||
color: #878887;
|
color: #878887;
|
||||||
}
|
}
|
||||||
div.notfound {
|
div.notfound {
|
||||||
max-width: 400px;
|
max-width: 400px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
}
|
}
|
||||||
div.notfound p{
|
div.notfound p {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
margin-top:20px;
|
margin-top: 20px;
|
||||||
color: #662702;
|
color: #662702;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
padding:0;
|
padding: 0;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
}
|
}
|
||||||
div.notfound p:before{
|
div.notfound p:before {
|
||||||
font-size:16px;
|
font-size: 16px;
|
||||||
content:"\f06a";
|
content: "\f06a";
|
||||||
font-family: "FontAwesome";
|
font-family: "FontAwesome";
|
||||||
line-height: 2.0;
|
line-height: 2;
|
||||||
padding-right:8px;
|
padding-right: 8px;
|
||||||
}
|
}
|
||||||
div.notfound blockquote{
|
div.notfound blockquote {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
div.notfound blockquote span{
|
div.notfound blockquote span {
|
||||||
display: block;
|
display: block;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
td.hljs-ln-numbers {
|
td.hljs-ln-numbers {
|
||||||
-webkit-touch-callout: none;
|
-webkit-touch-callout: none;
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
-khtml-user-select: none;
|
-khtml-user-select: none;
|
||||||
-moz-user-select: none;
|
-moz-user-select: none;
|
||||||
-ms-user-select: none;
|
-ms-user-select: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
font-size: 14;
|
font-size: 14;
|
||||||
/* your custom style here */
|
/* your custom style here */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* for block of code */
|
/* for block of code */
|
||||||
#container .blogentry .hljs-ln td.hljs-ln-code {
|
#container .blogentry .hljs-ln td.hljs-ln-code {
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
}
|
}
|
||||||
div.commentform .inputbox{
|
div.commentform .inputbox {
|
||||||
display:flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
border-bottom: 1px solid #ccc;
|
border-bottom: 1px solid #ccc;
|
||||||
}
|
}
|
||||||
div.commentform .inputbox input{
|
div.commentform .inputbox input {
|
||||||
margin-top:3px;
|
margin-top: 3px;
|
||||||
flex:1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
div.commentform .inputbox .label{
|
div.commentform .inputbox .label {
|
||||||
padding-right: 5px;
|
padding-right: 5px;
|
||||||
}
|
}
|
||||||
div.commentform .inputboxbt{
|
div.commentform .inputboxbt {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row-reverse;
|
flex-direction: row-reverse;
|
||||||
}
|
}
|
||||||
div.commentform textarea{
|
div.commentform textarea {
|
||||||
min-height: 120px;
|
min-height: 120px;
|
||||||
flex:1;
|
flex: 1;
|
||||||
margin:0;
|
margin: 0;
|
||||||
margin-top:7px;
|
margin-top: 7px;
|
||||||
width: calc( 100% - 20px );
|
width: calc(100% - 20px);
|
||||||
}
|
}
|
||||||
div.commentform {
|
div.commentform {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
@ -435,14 +438,14 @@ div.commentform {
|
|||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#container h1.commentsec{
|
#container h1.commentsec {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border-top: 1px dashed #3170B2;
|
border-top: 1px dashed #3170b2;
|
||||||
color:#3170B2;
|
color: #3170b2;
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
}
|
}
|
||||||
div.time-travel{
|
div.time-travel {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
@ -450,93 +453,21 @@ div.time-travel{
|
|||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.time-travel a{
|
div.time-travel a {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
flex:1;
|
flex: 1;
|
||||||
color:#3170B2;
|
color: #3170b2;
|
||||||
}
|
}
|
||||||
afx-app-window div.afx-window-wrapper{
|
div[data-id="status"] {
|
||||||
border:1px solid #a6a6a6;
|
padding-left: 10px;
|
||||||
/*box-shadow: 1px 1px 1px #cbcbcb;*/
|
padding-top: 5px;
|
||||||
box-shadow: 1px 1px 1px #9f9F9F;
|
color: #724841;
|
||||||
border-radius: 5px;
|
|
||||||
background-color:#dfdfdf;
|
|
||||||
padding:0;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
}
|
||||||
afx-app-window.unactive > div.afx-window-wrapper{
|
img {
|
||||||
background-color: #f6f6f6;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
afx-hbox.inputbox {
|
||||||
afx-app-window ul.afx-window-top{
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
width: 100%;
|
|
||||||
padding:0;
|
|
||||||
height: 20px;
|
|
||||||
border-bottom: 1px solid #a6a6a6;
|
|
||||||
}
|
|
||||||
afx-app-window ul.afx-window-top li{
|
|
||||||
list-style: none;
|
|
||||||
margin-left: 3px;
|
|
||||||
margin-top:4px;
|
|
||||||
|
|
||||||
}
|
|
||||||
afx-app-window ul.afx-window-top .afx-window-close,.afx-window-minimize,.afx-window-maximize{
|
|
||||||
width: 11px;
|
|
||||||
height: 11px;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
afx-app-window ul li.afx-window-close{
|
|
||||||
background-color: #Fc605b;
|
|
||||||
float:left;
|
|
||||||
}
|
|
||||||
afx-app-window ul li.afx-window-minimize{
|
|
||||||
background-color: #fec041;
|
|
||||||
float:left;
|
|
||||||
}
|
|
||||||
afx-app-window ul li.afx-window-maximize{
|
|
||||||
background-color: #35cc4b;
|
|
||||||
float:left;
|
|
||||||
}
|
|
||||||
|
|
||||||
afx-app-window ul li.afx-window-title{
|
|
||||||
margin-top:1px;
|
|
||||||
float:none;
|
|
||||||
overflow: hidden;
|
|
||||||
padding-left: 5px;
|
|
||||||
padding-right: 5px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
afx-app-window div.afx-window-content
|
|
||||||
{
|
|
||||||
overflow: hidden;
|
|
||||||
width: 100%;
|
|
||||||
background-color: white;
|
|
||||||
flex-grow: 1;
|
|
||||||
border-bottom-left-radius: 5px;
|
|
||||||
border-bottom-right-radius: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
afx-app-window div.afx-window-grip{
|
|
||||||
height: 10px;
|
|
||||||
width: 10px;
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
afx-hbox.inputbox{
|
|
||||||
margin-left: 10px;
|
|
||||||
margin-right: 10px;
|
|
||||||
border-bottom: 1px solid #e5e5e5;
|
border-bottom: 1px solid #e5e5e5;
|
||||||
}
|
}
|
||||||
div[data-id="status"]{
|
|
||||||
padding-left: 10px;
|
|
||||||
padding-top:5px;
|
|
||||||
color:#724841;
|
|
||||||
}
|
|
||||||
img {max-width:100%}
|
|
||||||
|
@ -19,9 +19,9 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="stylesheet" type="text/css" href="<?=HTTP_ROOT?>/rst/ubuntu-regular.css" />
|
<link rel="stylesheet" type="text/css" href="<?=HTTP_ROOT?>/rst/ubuntu-regular.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="<?=HTTP_ROOT?>/rst/font-awesome.css" />
|
<link rel="stylesheet" type="text/css" href="<?=HTTP_ROOT?>/rst/font-awesome.css" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="<?=HTTP_ROOT?>/rst/afx.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="<?=HTTP_ROOT?>/assets/style.css" />
|
<link rel="stylesheet" type="text/css" href="<?=HTTP_ROOT?>/assets/style.css" />
|
||||||
<script src="<?=HTTP_ROOT?>/rst/gscripts/riot.min.js"> </script>
|
<script src="<?=HTTP_ROOT?>/rst/afx.js"> </script>
|
||||||
<script src="<?=HTTP_ROOT?>/rst/resources/antos_tags.js"></script>
|
|
||||||
<script src="<?=HTTP_ROOT?>/rst/gscripts/jquery-3.2.1.min.js"> </script>
|
<script src="<?=HTTP_ROOT?>/rst/gscripts/jquery-3.2.1.min.js"> </script>
|
||||||
<script src="<?=HTTP_ROOT?>/assets/main.js"></script>
|
<script src="<?=HTTP_ROOT?>/assets/main.js"></script>
|
||||||
<meta property="og:image" content="" />
|
<meta property="og:image" content="" />
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
#! /bin/bash
|
#! /bin/bash
|
||||||
BRANCH="ci"
|
BRANCH="ci"
|
||||||
PRJ="antos"
|
PRJ="antos"
|
||||||
DEST="/opt/www/htdocs/os"
|
DEST="/opt/www/htdocs/"
|
||||||
# /opt/www/htdocs
|
# /opt/www/htdocs
|
||||||
REPO="https://github.com/lxsang/$PRJ.git"
|
REPO="https://github.com/lxsang/$PRJ.git"
|
||||||
|
|
||||||
|
|
||||||
if [ ! -z $1 ]; then
|
if [ ! -z $1 ]; then
|
||||||
BRANCH="$1"
|
BRANCH="$1"
|
||||||
fi
|
fi
|
||||||
@ -14,7 +13,7 @@ fi
|
|||||||
echo "Building $PRJ using branch $BRANCH..."
|
echo "Building $PRJ using branch $BRANCH..."
|
||||||
if [ -d "/tmp/ci/$PRJ" ]; then
|
if [ -d "/tmp/ci/$PRJ" ]; then
|
||||||
echo "Clean up /tmp/ci/$PRJ"
|
echo "Clean up /tmp/ci/$PRJ"
|
||||||
rm -rf /tmp/ci/$PRJ
|
rm -rf /tmp/ci/$PRJ
|
||||||
else
|
else
|
||||||
echo "Creating /tmp/ci/"
|
echo "Creating /tmp/ci/"
|
||||||
mkdir -p "/tmp/ci"
|
mkdir -p "/tmp/ci"
|
||||||
@ -24,9 +23,9 @@ fi
|
|||||||
git clone -b "$BRANCH" --single-branch --depth=1 "$REPO"
|
git clone -b "$BRANCH" --single-branch --depth=1 "$REPO"
|
||||||
cd "$PRJ" || (echo "Unable to change directory to source code folder" && exit 1)
|
cd "$PRJ" || (echo "Unable to change directory to source code folder" && exit 1)
|
||||||
npm i @types/jquery
|
npm i @types/jquery
|
||||||
mkdir -p "$DEST"
|
mkdir -p "$DEST/os"
|
||||||
BUILDDIR="$DEST" make release
|
BUILDDIR="$DEST" make release
|
||||||
|
mkdir -p "$DEST/grs"
|
||||||
|
BUILDDIR="$DEST" make standalone_tags
|
||||||
echo "Done!"
|
echo "Done!"
|
||||||
} 2>&1 | tee "/opt/www/htdocs/ci/log/${PRJ}_${BRANCH}.txt"
|
} 2>&1 | tee "/opt/www/htdocs/ci/log/${PRJ}_${BRANCH}.txt"
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,27 +1,38 @@
|
|||||||
<afx-app-window apptitle="Send me an email" minimizable="false" resizable = "false" width="450" height="350">
|
<afx-app-window
|
||||||
<afx-vbox >
|
apptitle="Send me an email"
|
||||||
<div data-height="5"></div>
|
minimizable="false"
|
||||||
<afx-hbox data-height="20" class = "inputbox">
|
resizable="false"
|
||||||
<div data-width = "47" class = "label">Name:</div>
|
width="450"
|
||||||
<input data-class = "data" type = "text" name = "name" />
|
height="350"
|
||||||
</afx-hbox>
|
>
|
||||||
<div data-height="5"></div>
|
<afx-hbox>
|
||||||
<afx-hbox data-height="20" class = "inputbox">
|
<div data-width="10"></div>
|
||||||
<div data-width = "45" class = "label">From:</div>
|
|
||||||
<input data-class = "data" type = "text" name = "email" />
|
<afx-vbox>
|
||||||
</afx-hbox>
|
<div data-height="5"></div>
|
||||||
<div data-height="5"></div>
|
<afx-hbox data-height="20" class="inputbox">
|
||||||
<afx-hbox data-height="20" class = "inputbox">
|
<div data-width="47" class="label">Name:</div>
|
||||||
<div data-width = "60" class = "label">Subject:</div>
|
<input data-class="data" type="text" name="name" />
|
||||||
<input data-class = "data" type = "text" name = "subject" />
|
</afx-hbox>
|
||||||
</afx-hbox>
|
<div data-height="5"></div>
|
||||||
<div data-height="5"></div>
|
<afx-hbox data-height="20" class="inputbox">
|
||||||
<textarea data-class = "data" name = "content"></textarea>
|
<div data-width="45" class="label">From:</div>
|
||||||
<div data-height="5"></div>
|
<input data-class="data" type="text" name="email" />
|
||||||
<afx-hbox data-height="30">
|
</afx-hbox>
|
||||||
<div data-id="status"></div>
|
<div data-height="5"></div>
|
||||||
<button data-id = "send" data-width = "60" >Send</button>
|
<afx-hbox data-height="20" class="inputbox">
|
||||||
</afx-hbox>
|
<div data-width="60" class="label">Subject:</div>
|
||||||
<div data-height="5"></div>
|
<input data-class="data" type="text" name="subject" />
|
||||||
</afx-vbox>
|
</afx-hbox>
|
||||||
|
<div data-height="5"></div>
|
||||||
|
<textarea data-class="data" name="content"></textarea>
|
||||||
|
<div data-height="5"></div>
|
||||||
|
<afx-hbox data-height="30">
|
||||||
|
<div data-id="status"></div>
|
||||||
|
<button data-id="send" data-width="60">Send</button>
|
||||||
|
</afx-hbox>
|
||||||
|
<div data-height="5"></div>
|
||||||
|
</afx-vbox>
|
||||||
|
<div data-width="10"></div>
|
||||||
|
</afx-hbox>
|
||||||
</afx-app-window>
|
</afx-app-window>
|
@ -1,24 +1,36 @@
|
|||||||
<afx-app-window apptitle="Subscribe" minimizable="false" resizable = "false" width="350" height="170">
|
<afx-app-window
|
||||||
<afx-vbox >
|
apptitle="Subscribe"
|
||||||
<div data-height="5"></div>
|
minimizable="false"
|
||||||
<afx-hbox data-height="50" class = "inputbox">
|
resizable="false"
|
||||||
<div styple="padding-left:5px;padding-right:5px;">Subscribe to receive an email when new post is published</div>
|
width="350"
|
||||||
</afx-hbox>
|
height="170"
|
||||||
<div data-height="5"></div>
|
>
|
||||||
<afx-hbox data-height="20" class = "inputbox">
|
<afx-hbox>
|
||||||
<div data-width = "47" class = "label">Name:</div>
|
<div data-width="10"></div>
|
||||||
<input data-class = "data" type = "text" name = "name" />
|
<afx-vbox>
|
||||||
</afx-hbox>
|
<div data-height="5"></div>
|
||||||
<div data-height="5"></div>
|
<afx-hbox data-height="50" class="inputbox">
|
||||||
<afx-hbox data-height="20" class = "inputbox">
|
<div styple="padding-left:5px;padding-right:5px;">
|
||||||
<div data-width = "45" class = "label">Email:</div>
|
Subscribe to receive an email when new post is published
|
||||||
<input data-class = "data" type = "text" name = "email" />
|
</div>
|
||||||
</afx-hbox>
|
</afx-hbox>
|
||||||
<div data-height="5"></div>
|
<div data-height="5"></div>
|
||||||
<afx-hbox data-height="30">
|
<afx-hbox data-height="20" class="inputbox">
|
||||||
<div data-id="status"></div>
|
<div data-width="47" class="label">Name:</div>
|
||||||
<button data-id = "send" data-width = "60" >Send</button>
|
<input data-class="data" type="text" name="name" />
|
||||||
</afx-hbox>
|
</afx-hbox>
|
||||||
<div data-height="5"></div>
|
<div data-height="5"></div>
|
||||||
</afx-vbox>
|
<afx-hbox data-height="20" class="inputbox">
|
||||||
|
<div data-width="45" class="label">Email:</div>
|
||||||
|
<input data-class="data" type="text" name="email" />
|
||||||
|
</afx-hbox>
|
||||||
|
<div data-height="5"></div>
|
||||||
|
<afx-hbox data-height="30">
|
||||||
|
<div data-id="status"></div>
|
||||||
|
<button data-id="send" data-width="60">Send</button>
|
||||||
|
</afx-hbox>
|
||||||
|
<div data-height="5"></div>
|
||||||
|
</afx-vbox>
|
||||||
|
<div data-width="10"></div>
|
||||||
|
</afx-hbox>
|
||||||
</afx-app-window>
|
</afx-app-window>
|
Loading…
Reference in New Issue
Block a user