1
0
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:
lxsang 2020-09-18 13:17:43 +02:00
parent 073337eabe
commit 6a64670786
6 changed files with 357 additions and 395 deletions

View File

@ -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" );
})
} }

View File

@ -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%}

View File

@ -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="" />

View File

@ -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"

View File

@ -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>

View File

@ -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>