415 lines
16 KiB
HTML
415 lines
16 KiB
HTML
|
|
<!DOCTYPE html>
|
|
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
|
|
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
|
|
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
|
|
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
|
|
<head>
|
|
<title>Control-Freak </title>
|
|
<meta name="description" content="IDE for Automation & IoT" />
|
|
<meta name="author" content="Justin Walsh">
|
|
<meta charset="UTF-8">
|
|
<link rel="icon" href="themes/mytheme/img/favicon-blue.png" type="image/x-icon">
|
|
<!-- Mobile -->
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<script src="/ext/easyXDM.js"></script>
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
var pixlrEditor = null;
|
|
var xdmSocket = null;
|
|
var editorImage=null;
|
|
var imageUrl=null;
|
|
var editorArgs=null;
|
|
var saveUrl=null;
|
|
var title='';
|
|
var format = 'jpg';
|
|
|
|
function urlDecode (string, overwrite) {
|
|
if (!string || !string.length) {
|
|
return{}
|
|
}
|
|
var obj = {};
|
|
var pairs = string.split("&");
|
|
var pair, name, value;
|
|
for (var i = 0, len = pairs.length; i < len; i++) {
|
|
pair = pairs[i].split("=");
|
|
name = decodeURIComponent(pair[0]);
|
|
value = decodeURIComponent(pair[1]);
|
|
if(value!=null && value==='true'){
|
|
value=true;
|
|
}else if(value==='false'){
|
|
value=false;
|
|
}
|
|
if (overwrite !== true) {
|
|
if (typeof obj[name] == "undefined") {
|
|
obj[name] = value
|
|
} else {
|
|
if (typeof obj[name] == "string") {
|
|
obj[name] = [obj[name]];
|
|
obj[name].push(value)
|
|
} else {
|
|
obj[name].push(value)
|
|
}
|
|
}
|
|
} else {
|
|
obj[name] = value
|
|
}
|
|
}
|
|
return obj;
|
|
}
|
|
|
|
|
|
function onMessage(message){
|
|
|
|
var result = JSON.parse(message);
|
|
|
|
console.log('message :',message);
|
|
if(result && result.command && result.command==='edit')
|
|
{
|
|
if(editorImage==null){
|
|
img_create(result.url,'','');
|
|
}
|
|
imageUrl = result.url;
|
|
saveUrl = result.saveUrl;
|
|
title = result.title;
|
|
format = result.format;
|
|
}
|
|
}
|
|
|
|
function sendMessage(message)
|
|
{
|
|
xdmSocket.postMessage(JSON.stringify(message));
|
|
}
|
|
|
|
function init (){
|
|
|
|
return;
|
|
var inUrl = '' + window.location.href;
|
|
|
|
console.log('init url ' + inUrl);
|
|
//http://localhost/projects/x4mm/Code/xapp/xcf/?debug=true&run=run-release-debug&protocols=true&xideve=true&drivers=true&plugins=false&xblox=debug&files=true&dijit=debug&xdocker=debug&xfile=debug&davinci=debug&dgrid=debug&xgrid=debug&xace=debug&wcDocker=debug
|
|
if(!inUrl){
|
|
console.error('invalid');
|
|
//http://localhost/projects/x4mm/Code/xapp/xcf/?debug=true&run=run-release-debug&protocols=true&xideve=true&drivers=true&plugins=false&xblox=debug&files=true&dijit=debug&xdocker=debug&xfile=debug&davinci=debug&dgrid=debug&xgrid=debug&xace=debug&wcDocker=debug
|
|
}
|
|
|
|
var parameterString = '' ;
|
|
|
|
function base64_decode (encodedData) {
|
|
|
|
if (typeof window !== 'undefined') {
|
|
if (typeof window.atob !== 'undefined') {
|
|
return decodeURIComponent(escape(window.atob(encodedData)))
|
|
}
|
|
} else {
|
|
return new Buffer(encodedData, 'base64').toString('utf-8')
|
|
}
|
|
|
|
var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
|
|
var o1
|
|
var o2
|
|
var o3
|
|
var h1
|
|
var h2
|
|
var h3
|
|
var h4
|
|
var bits
|
|
var i = 0
|
|
var ac = 0
|
|
var dec = ''
|
|
var tmpArr = []
|
|
|
|
if (!encodedData) {
|
|
return encodedData
|
|
}
|
|
|
|
encodedData += ''
|
|
|
|
do {
|
|
// unpack four hexets into three octets using index points in b64
|
|
h1 = b64.indexOf(encodedData.charAt(i++))
|
|
h2 = b64.indexOf(encodedData.charAt(i++))
|
|
h3 = b64.indexOf(encodedData.charAt(i++))
|
|
h4 = b64.indexOf(encodedData.charAt(i++))
|
|
|
|
bits = h1 << 18 | h2 << 12 | h3 << 6 | h4
|
|
|
|
o1 = bits >> 16 & 0xff
|
|
o2 = bits >> 8 & 0xff
|
|
o3 = bits & 0xff
|
|
|
|
if (h3 === 64) {
|
|
tmpArr[ac++] = String.fromCharCode(o1)
|
|
} else if (h4 === 64) {
|
|
tmpArr[ac++] = String.fromCharCode(o1, o2)
|
|
} else {
|
|
tmpArr[ac++] = String.fromCharCode(o1, o2, o3)
|
|
}
|
|
} while (i < encodedData.length)
|
|
|
|
dec = tmpArr.join('')
|
|
|
|
return decodeURIComponent(escape(dec.replace(/\0+$/, '')))
|
|
}
|
|
|
|
function base64_encode(data) {
|
|
|
|
// From: http://phpjs.org/functions
|
|
// + original by: Tyler Akins (http://rumkin.com)
|
|
// + improved by: Bayron Guevara
|
|
// + improved by: Thunder.m
|
|
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
|
|
// + bugfixed by: Pellentesque Malesuada
|
|
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
|
|
// + improved by: Rafał Kukawski (http://kukawski.pl)
|
|
// * example 1: base64_encode('Kevin van Zonneveld');
|
|
// * returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='
|
|
// mozilla has this native
|
|
// - but breaks in 2.0.0.12!
|
|
//if (typeof this.window.btoa === 'function') {
|
|
// return btoa(data);
|
|
//}
|
|
var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
|
var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
|
|
ac = 0,
|
|
enc = '',
|
|
tmp_arr = [];
|
|
|
|
if (!data) {
|
|
return data;
|
|
}
|
|
|
|
do { // pack three octets into four hexets
|
|
o1 = data.charCodeAt(i++);
|
|
o2 = data.charCodeAt(i++);
|
|
o3 = data.charCodeAt(i++);
|
|
|
|
bits = o1 << 16 | o2 << 8 | o3;
|
|
|
|
h1 = bits >> 18 & 0x3f;
|
|
h2 = bits >> 12 & 0x3f;
|
|
h3 = bits >> 6 & 0x3f;
|
|
h4 = bits & 0x3f;
|
|
|
|
// use hexets to index into b64, and append result to encoded string
|
|
tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
|
|
} while (i < data.length);
|
|
|
|
enc = tmp_arr.join('');
|
|
|
|
var r = data.length % 3;
|
|
|
|
return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);
|
|
|
|
}
|
|
|
|
if(inUrl.lastIndexOf('?')){
|
|
|
|
parameterString = inUrl.substring(inUrl.lastIndexOf('?')+1,inUrl.length);
|
|
var urlParameters=urlDecode(parameterString);
|
|
|
|
var target =urlParameters.xdmTarget;
|
|
|
|
if(!target || target && target=='undefined'){
|
|
return;
|
|
}
|
|
|
|
if(target.indexOf('http:')==-1){
|
|
target = base64_decode(target);
|
|
}
|
|
|
|
target=decodeURIComponent(target);
|
|
//http://localhost/projects/x4mm/Control-Freak-Documentation/daux/Getting_Started?xdmTarget=http%3A%2F%2Flocalhost%2Fprojects%2Fx4mm%2FCode%2Fxapp%2Fxcf%2F%3Fdebug%3Dtrue%26run%3Drun-release-debug%26protocols%3Dtrue%26xideve%3Dtrue%26drivers%3Dtrue%26plugins%3Dfalse%26xblox%3Ddebug%26files%3Dtrue%26dijit%3Ddebug%26xdocker%3Ddebug%26xfile%3Ddebug%26davinci%3Ddebug%26dgrid%3Ddebug%26xgrid%3Ddebug%26xace%3Ddebug%26wcDocker%3Ddebug&xdm_e=http%3A%2F%2Flocalhost%2Fprojects%2Fx4mm%2FCode%2Fxapp%2Fxcf%2F&xdm_c=default9743&xdm_p=4
|
|
//console.error('creating socket to '+target);
|
|
xdmSocket = new easyXDM.Socket({
|
|
remote: "" + target,
|
|
onMessage:function (message, origin)
|
|
{
|
|
onMessage(message);
|
|
}
|
|
});
|
|
|
|
//console.error('xdmtarge = ' + target);
|
|
|
|
//var newUrl = + encodeURIComponent('' + window.location.href);
|
|
|
|
if(target && target!=='undefined' && target.length) {
|
|
$(function () {
|
|
$('a').each(function () {
|
|
var cUrl = $(this).attr('href');
|
|
var bindStr = '?';
|
|
if (cUrl && cUrl.indexOf('xdmTarget') == -1) {
|
|
if (cUrl.indexOf('?') != -1) {
|
|
bindStr = '&';
|
|
}
|
|
var newUrl = cUrl + bindStr + 'xdmTarget=' + base64_encode(target);
|
|
//console.log('new url ' + newUrl);
|
|
//$(this).attr('href', newUrl);
|
|
}
|
|
|
|
|
|
});
|
|
});
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
document.onreadystatechange = function () {
|
|
|
|
if(typeof easyXDM !=='undefined') {
|
|
|
|
var state = document.readyState;
|
|
if (state == 'interactive') {
|
|
} else if (state == 'complete') {
|
|
init();
|
|
}
|
|
}else{
|
|
console.error('easy xdm not defined');
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Font -->
|
|
|
|
<!-- CSS -->
|
|
<link href='themes/mytheme/css/theme-blue.min.css' rel='stylesheet' type='text/css'><link href='admin-theme/bower_components/font-awesome/css/font-awesome.min.css' rel='stylesheet' type='text/css'><link href='admin-theme/html-white/dist/css/application.css' rel='stylesheet' type='text/css'><link href='themes/mytheme/css/bootstrap-override-white.css' rel='stylesheet' type='text/css'>
|
|
<!-- Tipue Search -->
|
|
<link href="tipuesearch/tipuesearch.css" rel="stylesheet">
|
|
|
|
<!--[if lt IE 9]>
|
|
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
|
<![endif]-->
|
|
</head>
|
|
<body class=" xTheme xTheme-white">
|
|
<div class="Navbar hidden-print">
|
|
<div class="container">
|
|
<a class="Navbar__brand" href="index.html">Control-Freak</a>
|
|
|
|
<div class="Search">
|
|
<svg class="Search__icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 451 451"><path d="M447.05 428l-109.6-109.6c29.4-33.8 47.2-77.9 47.2-126.1C384.65 86.2 298.35 0 192.35 0 86.25 0 .05 86.3.05 192.3s86.3 192.3 192.3 192.3c48.2 0 92.3-17.8 126.1-47.2L428.05 447c2.6 2.6 6.1 4 9.5 4s6.9-1.3 9.5-4c5.2-5.2 5.2-13.8 0-19zM26.95 192.3c0-91.2 74.2-165.3 165.3-165.3 91.2 0 165.3 74.2 165.3 165.3s-74.1 165.4-165.3 165.4c-91.1 0-165.3-74.2-165.3-165.4z"/></svg>
|
|
<input type="search" id="tipue_search_input" class="Search__field" placeholder="Search..." autocomplete="on" results=25 autosave=text_search>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="Homepage">
|
|
<div class="HomepageTitle container">
|
|
<h2>IDE for Automation & IoT</h2> </div>
|
|
|
|
<div class="HomepageImage container">
|
|
</div>
|
|
|
|
<div class="HomepageButtons">
|
|
<div class="container">
|
|
<a href="Getting_Started.html" class="Button Button--primary Button--hero">View Documentation</a> <div class="clearfix"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="HomepageContent">
|
|
<div class="container">
|
|
<div class="container--inner">
|
|
<div class="doc_content s-content">
|
|
<h3 id="page_Installation_via_zip_download_here"><strong>Installation via zip <a href="http://pearls-media.com/control-freak/?ddownload=3805" class="external">download here</a></strong></h3>
|
|
<p>Uncompress the zip file to location like /Control-Freak.</p>
|
|
<h3 id="page_Installation_via_DMG2"><strong>Installation via DMG2</strong></h3>
|
|
<p><a href="http://pearls-media.com/control-freak/?ddownload=3598" class="external">download here</a></p>
|
|
<h3 id="page_Download_via_git_Recommended_since_you_can_receive_updates_with_this_method"><strong>Download via git (Recommended since you can receive updates with this method)</strong></h3>
|
|
<p>1.Download and install <a href="https://git-scm.com/download/mac" class="external">git</a> or make sure <strong>git</strong> is installed (<em>apt-get install git</em>)</p>
|
|
<p>2.Download and install <a href="https://git-lfs.github.com/" class="external">git-lfs</a></p>
|
|
<p>3.In a new console, after git-lfs install:</p>
|
|
<pre><code> # sudo mkdir /Control-Freak
|
|
# git clone https://github.com/net-commander/osx-dist.git Control-Freak
|
|
</code></pre>
|
|
<p>4.If the exe files are corrupt or it won't start:</p>
|
|
<pre><code> # git lfs pull
|
|
</code></pre>
|
|
<hr/>
|
|
<h3 id="page_Start">Start</h3>
|
|
<ol>
|
|
<li>
|
|
<p>Got to the location of Control-Freak.app</p>
|
|
</li>
|
|
<li>
|
|
<p>In Finder, "Show Package Contents"</p>
|
|
</li>
|
|
<li>
|
|
<p>Control-Freak.app/Resources is a file "start_osx.command". You can create an alias on you desktop, or just double click it.</p>
|
|
</li>
|
|
<li>
|
|
<p>Wait until a notification comes up: You can start now “Control-Freak”</p>
|
|
</li>
|
|
<li>
|
|
<p>Start now Control-Freak/Control-Freak.app</p>
|
|
</li>
|
|
</ol>
|
|
<hr/>
|
|
<h3 id="page_Updates">Updates</h3>
|
|
<h4 id="page_Zip_installation">Zip installation</h4>
|
|
<p>1.Close all windows of Control-Freak (stop_server.sh)</p>
|
|
<p>2.Re-download and uncompress the zip over your existing installation</p>
|
|
<hr/>
|
|
<h4 id="page_Via_git">Via git</h4>
|
|
<ol>
|
|
<li>
|
|
<p>Got to the location of Control-Freak.app</p>
|
|
</li>
|
|
<li>
|
|
<p>In Finder, "Show Package Contents"</p>
|
|
</li>
|
|
<li>
|
|
<p>double click "update.command"</p>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="HomepageFooter">
|
|
<div class="container">
|
|
<div class="container--inner">
|
|
|
|
</div>
|
|
</div>
|
|
<div class="clearfix"></div>
|
|
</div>
|
|
|
|
|
|
<!-- jQuery -->
|
|
<script src="themes/daux/js/jquery-1.11.3.min.js"></script>
|
|
|
|
<!-- hightlight.js -->
|
|
<script src="themes/daux/js/highlight.pack.js"></script>
|
|
<script>hljs.initHighlightingOnLoad();</script>
|
|
|
|
<!-- JS -->
|
|
<script src="admin-theme/bower_components/bootstrap-sass-official/assets/javascripts/bootstrap.js"></script>
|
|
<script src="themes/daux/js/daux.js"></script>
|
|
|
|
<!-- Tipue Search -->
|
|
<script type="text/javascript" src="tipuesearch/tipuesearch.js"></script>
|
|
|
|
<script>
|
|
window.onunload = function(){}; // force $(document).ready to be called on back/forward navigation in firefox
|
|
$(function() {
|
|
tipuesearch({
|
|
'base_url': ''
|
|
});
|
|
});
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|