diff --git a/.electrify/.gitignore b/.electrify/.gitignore deleted file mode 100644 index 838993efbaea1ed2e34f1bd52fe2bacef22597d5..0000000000000000000000000000000000000000 --- a/.electrify/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -.DS_Store -.dist -app -bin -db -node_modules \ No newline at end of file diff --git a/.electrify/command b/.electrify/command deleted file mode 100644 index 00b71e4010459fb5316d3aeed650af8e024c06c5..0000000000000000000000000000000000000000 --- a/.electrify/command +++ /dev/null @@ -1,3 +0,0 @@ -electrify package -- --icon=public/logo/head.ico -#mac -electrify package -- --icon=public/logo/head.icns diff --git a/.electrify/electrify.json b/.electrify/electrify.json deleted file mode 100644 index 783792ba554a4ccb4ea1e5e757f09fc15116151f..0000000000000000000000000000000000000000 --- a/.electrify/electrify.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": [] -} \ No newline at end of file diff --git a/.electrify/index.js b/.electrify/index.js deleted file mode 100644 index fb4b2ce7e09e4a7ba44ab802552c09b614ea3724..0000000000000000000000000000000000000000 --- a/.electrify/index.js +++ /dev/null @@ -1,100 +0,0 @@ -const {app, BrowserWindow} = require('electron'); -const electrify = require('electrify')(__dirname); -// UNCOMMENT FOR MAC PACKAGE -//var Menu = require("menu"); - -var window = null; - -app.on('ready', function () { - - // electrify start - electrify.start(function (meteor_root_url) { - - // creates a new electron window - window = new BrowserWindow({ - width: 1200, height: 900, - 'node-integration': false // node integration must to be off - }); - - // open up meteor root url - window.loadURL(meteor_root_url); - - /* UNCOMMENT FOR MAC PACKAGE - var template = [{ - label: "Application", - submenu: [ - { - label: "Quit", accelerator: "Command+Q", click: function () { - app.quit(); - } - } - ] - }, { - label: "Edit", - submenu: [ - {label: "Undo", accelerator: "CmdOrCtrl+Z", selector: "undo:"}, - {label: "Redo", accelerator: "Shift+CmdOrCtrl+Z", selector: "redo:"}, - {type: "separator"}, - {label: "Cut", accelerator: "CmdOrCtrl+X", selector: "cut:"}, - {label: "Copy", accelerator: "CmdOrCtrl+C", selector: "copy:"}, - {label: "Paste", accelerator: "CmdOrCtrl+V", selector: "paste:"}, - {label: "Select All", accelerator: "CmdOrCtrl+A", selector: "selectAll:"} - ] - } - ]; - - Menu.setApplicationMenu(Menu.buildFromTemplate(template));*/ - }); -}); - - -app.on('window-all-closed', function () { - app.quit(); -}); - - -app.on('will-quit', function terminate_and_quit(event) { - - // if electrify is up, cancel exiting with `preventDefault`, - // so we can terminate electrify gracefully without leaving child - // processes hanging in background - if (electrify.isup() && event) { - - // holds electron termination - event.preventDefault(); - - // gracefully stops electrify - electrify.stop(function () { - - // and then finally quit app - app.quit(); - }); - } -}); - -// -// ============================================================================= -// -// the methods bellow can be called seamlessly from your Meteor's -// client and server code, using: -// -// Electrify.call('methodname', [..args..], callback); -// -// ATENTION: -// From meteor, you can only call these methods after electrify is fully -// started, use the Electrify.startup() convenience method for this -// -// -// Electrify.startup(function(){ -// Electrify.call(...); -// }); -// -// ============================================================================= -// -// electrify.methods({ -// 'method.name': function(name, done) { -// // do things... and call done(err, arg1, ..., argN) -// done(null); -// } -// }); -// diff --git a/.electron/index.js b/.electron/index.js new file mode 100644 index 0000000000000000000000000000000000000000..d18ede50268becc1d804a8b481079e104cd87e84 --- /dev/null +++ b/.electron/index.js @@ -0,0 +1,158 @@ +const {app, BrowserWindow, Menu} = require('electron'); +const path = require('path'); +const net = require('net'); +const join = path.join; +const spawn = require('child_process').spawn; +const shell = require('shelljs'); + +const logTag = '[MONGOCLIENT]'; +let window = null; + +const createWindow = function () { + console.log(logTag, 'trying to start Mongoclient electron application'); + const appRoot = path.resolve(__dirname); + + // show loading + const win = new BrowserWindow({ + width: 1200, + height: 900, + frame: false + }); + win.loadURL(join(appRoot, 'loading.html')); + + //fix tunnel-ssh + shell.cp('-R', join(appRoot, 'app', '/programs/server/npm/node_modules/tunnel-ssh'), join(appRoot, 'app', 'programs/server/npm/node_modules/meteor/modules-runtime/node_modules/')); + + beginStartingMongo(appRoot, win); +}; + +const beginStartingMongo = function (appRoot, loadingWin) { + console.log(logTag, 'trying to start mongod process'); + let path = join(appRoot, 'bin', 'mongod'); + if (process.platform === 'win32') { + path += '.exe'; + } + console.log(logTag, 'detected mongod executable path: ' + path); + + let dataDir; + let lockfile; + + if (process.platform === 'win32') { + dataDir = process.env.APPDATA; + } + else if (process.platform === 'darwin') { + dataDir = join(process.env.HOME, 'Library', 'Preferences'); + } + else if (process.platform === 'linux') { + dataDir = join(process.env.HOME, 'var', 'local'); + } + dataDir = join(dataDir, 'Mongoclient', 'db'); + lockfile = join(dataDir, 'mongod.lock'); + console.log(logTag, 'detected mongod data directory: ' + dataDir); + + console.log(logTag, 'trying to create data dir and removing mongod.lock just in case'); + shell.mkdir('-p', dataDir); + shell.rm('-f', lockfile); + + freeport(null, function (port) { + console.log(logTag, 'trying to spawn mongod process with port: ' + port); + let mongoProcess = spawn(path, [ + '--dbpath', dataDir, + '--port', port, + '--bind_ip', '127.0.0.1', + '--smallfiles' + ]); + + mongoProcess.stdout.on('data', function (data) { + console.log(logTag, '[MONGOD-STDOUT]', data.toString()); + }); + + mongoProcess.stderr.on('data', function (data) { + console.error(logTag, '[MONGOD-STDERR]', data.toString()); + }); + + mongoProcess.on('exit', function (code) { + console.log(logTag, '[MONGOD-EXIT]', code.toString()); + }); + + startNode(appRoot, port, loadingWin); + }); +}; + +const startNode = function (appRoot, mongoPort, loadingWin) { + console.log(logTag, 'trying to start node process'); + let path = join(appRoot, 'bin', 'node'); + if (process.platform === 'win32') { + path += '.exe'; + } + console.log(logTag, 'detected node executable path: ' + path); + + const mainPath = join(appRoot, 'app', 'main.js'); + console.log(logTag, 'detected main app root: ' + mainPath); + + freeport(null, function (port) { + process.env.PORT = port; + process.env.ROOT_URL = 'http://localhost:' + port; + process.env.MONGO_URL = 'mongodb://localhost:' + mongoPort + '/mongoclient'; + + console.log(logTag, 'detected environment variables: ' + JSON.stringify(process.env)); + + console.log(logTag, 'trying to spawn node process with port: ' + port); + let nodeProcess = spawn(path, [mainPath]); + nodeProcess.stdout.on('data', function (data) { + console.log(logTag, '[NODE-STDOUT]', data.toString()); + }); + + nodeProcess.stderr.on('data', function (data) { + console.error(logTag, '[NODE-STDERR]', data.toString()); + }); + + nodeProcess.on('exit', function (code) { + console.log(logTag, '[NODE-EXIT]', code.toString()); + }); + + loadWindow(port, loadingWin); + }); +}; + +const freeport = function (start, done) { + console.log(logTag, 'trying to find free port for spawn'); + start = start || 11235; + const socket = new net.Socket() + .once('connect', function () { + socket.destroy(); + freeport(++start, done); + }) + .once('error', function (/* err */) { + socket.destroy(); + done(start); + }) + .connect(start, '127.0.0.1'); +}; + +const loadWindow = function (appPort, loadingWin) { + window = new BrowserWindow({ + devTools: true, + webPreferences: { + nodeIntegration: false + }, + width: 1200, + height: 900 + }); + + window.loadURL("http://localhost:" + appPort); + loadingWin.close(); +}; + +app.on('ready', createWindow); +app.on('activate', () => { + if (window === null) { + createWindow(); + } +}); + +app.on('window-all-closed', function () { + if (process.platform !== 'darwin') { + app.quit() + } +}); \ No newline at end of file diff --git a/.electron/loading.html b/.electron/loading.html new file mode 100644 index 0000000000000000000000000000000000000000..9b6529611f8feff874b8533ecd727d86423279fc --- /dev/null +++ b/.electron/loading.html @@ -0,0 +1,146 @@ + + + + + + + + + + + +
+
+ + + + + \ No newline at end of file diff --git a/.electron/loading/please-wait.css b/.electron/loading/please-wait.css new file mode 100644 index 0000000000000000000000000000000000000000..4399a2a044e5c68a35b7a45a1d7775af049c2298 --- /dev/null +++ b/.electron/loading/please-wait.css @@ -0,0 +1,161 @@ +/* line 17, ../src/please-wait.scss */ +body.pg-loading { + overflow: hidden; +} + +/* line 21, ../src/please-wait.scss */ +.pg-loading-screen { + position: fixed; + bottom: 0; + left: 0; + right: 0; + top: 0; + z-index: 1000000; + opacity: 1; + background-color: #FFF; + -webkit-transition: background-color 0.4s ease-in-out 0s; + -moz-transition: background-color 0.4s ease-in-out 0s; + -ms-transition: background-color 0.4s ease-in-out 0s; + -o-transition: background-color 0.4s ease-in-out 0s; + transition: background-color 0.4s ease-in-out 0s; +} +/* line 32, ../src/please-wait.scss */ +.pg-loading-screen.pg-loaded { + opacity: 0; + -webkit-animation: pgAnimLoaded 0.5s cubic-bezier(0.7, 0, 0.3, 1) both; + -moz-animation: pgAnimLoaded 0.5s cubic-bezier(0.7, 0, 0.3, 1) both; + -ms-animation: pgAnimLoaded 0.5s cubic-bezier(0.7, 0, 0.3, 1) both; + -o-animation: pgAnimLoaded 0.5s cubic-bezier(0.7, 0, 0.3, 1) both; + animation: pgAnimLoaded 0.5s cubic-bezier(0.7, 0, 0.3, 1) both; +} +/* line 38, ../src/please-wait.scss */ +.pg-loading-screen.pg-loading .pg-loading-logo-header, .pg-loading-screen.pg-loading .pg-loading-html { + opacity: 1; +} +/* line 42, ../src/please-wait.scss */ +.pg-loading-screen.pg-loading .pg-loading-logo-header, .pg-loading-screen.pg-loading .pg-loading-html:not(.pg-loaded) { + -webkit-animation: pgAnimLoading 1s cubic-bezier(0.7, 0, 0.3, 1) both; + -moz-animation: pgAnimLoading 1s cubic-bezier(0.7, 0, 0.3, 1) both; + -ms-animation: pgAnimLoading 1s cubic-bezier(0.7, 0, 0.3, 1) both; + -o-animation: pgAnimLoading 1s cubic-bezier(0.7, 0, 0.3, 1) both; + animation: pgAnimLoading 1s cubic-bezier(0.7, 0, 0.3, 1) both; +} +/* line 46, ../src/please-wait.scss */ +.pg-loading-screen.pg-loading .pg-loading-html:not(.pg-loaded) { + -webkit-animation-delay: 0.3s; + -moz-animation-delay: 0.3s; + -ms-animation-delay: 0.3s; + -o-animation-delay: 0.3s; + animation-delay: 0.3s; +} +/* line 51, ../src/please-wait.scss */ +.pg-loading-screen .pg-loading-inner { + height: 100%; + width: 100%; + margin: 0; + padding: 0; + position: static; +} +/* line 59, ../src/please-wait.scss */ +.pg-loading-screen .pg-loading-center-outer { + width: 100%; + padding: 0; + display: table !important; + height: 100%; + position: absolute; + top: 0; + left: 0; + margin: 0; +} +/* line 70, ../src/please-wait.scss */ +.pg-loading-screen .pg-loading-center-middle { + padding: 0; + vertical-align: middle; + display: table-cell !important; + margin: 0; + text-align: center; +} +/* line 78, ../src/please-wait.scss */ +.pg-loading-screen .pg-loading-logo-header, .pg-loading-screen .pg-loading-html { + width: 100%; + opacity: 0; +} +/* line 83, ../src/please-wait.scss */ +.pg-loading-screen .pg-loading-logo-header { + text-align: center; +} +/* line 86, ../src/please-wait.scss */ +.pg-loading-screen .pg-loading-logo-header img { + display: inline-block !important; +} +/* line 91, ../src/please-wait.scss */ +.pg-loading-screen .pg-loading-html { + margin-top: 90px; +} +/* line 94, ../src/please-wait.scss */ +.pg-loading-screen .pg-loading-html.pg-loaded { + -webkit-transition: opacity 0.5s cubic-bezier(0.7, 0, 0.3, 1); + -moz-transition: opacity 0.5s cubic-bezier(0.7, 0, 0.3, 1); + -ms-transition: opacity 0.5s cubic-bezier(0.7, 0, 0.3, 1); + -o-transition: opacity 0.5s cubic-bezier(0.7, 0, 0.3, 1); + transition: opacity 0.5s cubic-bezier(0.7, 0, 0.3, 1); +} +/* line 97, ../src/please-wait.scss */ +.pg-loading-screen .pg-loading-html.pg-loaded.pg-removing { + opacity: 0; +} +/* line 101, ../src/please-wait.scss */ +.pg-loading-screen .pg-loading-html.pg-loaded.pg-loading { + opacity: 1; +} + +@-webkit-keyframes pgAnimLoading { + from { + opacity: 0; + } +} +@-moz-keyframes pgAnimLoading { + from { + opacity: 0; + } +} +@-o-keyframes pgAnimLoading { + from { + opacity: 0; + } +} +@-ms-keyframes pgAnimLoading { + from { + opacity: 0; + } +} +@keyframes pgAnimLoading { + from { + opacity: 0; + } +} +@-webkit-keyframes pgAnimLoaded { + from { + opacity: 1; + } +} +@-moz-keyframes pgAnimLoaded { + from { + opacity: 1; + } +} +@-o-keyframes pgAnimLoaded { + from { + opacity: 1; + } +} +@-ms-keyframes pgAnimLoaded { + from { + opacity: 1; + } +} +@keyframes pgAnimLoaded { + from { + opacity: 1; + } +} diff --git a/.electron/loading/please-wait.min.js b/.electron/loading/please-wait.min.js new file mode 100644 index 0000000000000000000000000000000000000000..01066b37bbe1142a0803b0dcaa306c9cfd03dfe7 --- /dev/null +++ b/.electron/loading/please-wait.min.js @@ -0,0 +1,12 @@ +/** +* please-wait +* Display a nice loading screen while your app loads + +* @author Pathgather +* @copyright Pathgather 2015 +* @license MIT +* @link https://github.com/Pathgather/please-wait +* @module please-wait +* @version 0.0.5 +*/ +!function(a,b){"object"==typeof exports?b(exports):"function"==typeof define&&define.amd?define(["exports"],b):b(a)}(this,function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;g=document.createElement("fakeelement"),e=!1,n=!1,d="animationend",m=null,f="Webkit Moz O ms".split(" "),l={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd",transition:"transitionend"};for(h in l)if(o=l[h],null!=g.style[h]){m=o,n=!0;break}if(null!=g.style.animationName&&(e=!0),!e)for(p=0,q=f.length;q>p;p++)if(i=f[p],null!=g.style[""+i+"AnimationName"]){switch(i){case"Webkit":d="webkitAnimationEnd";break;case"Moz":d="animationend";break;case"O":d="oanimationend";break;case"ms":d="MSAnimationEnd"}e=!0;break}return c=function(a,b){return b.classList?b.classList.add(a):b.className+=" "+a},k=function(a,b){return b.classList?b.classList.remove(a):b.className=b.className.replace(a,"").trim()},b=function(){function a(a){var b,f,g,h;b=this.constructor._defaultOptions,this.options={},this.loaded=!1,this.finishing=!1;for(f in b)h=b[f],this.options[f]=null!=a[f]?a[f]:h;this._loadingElem=document.createElement("div"),this._loadingHtmlToDisplay=[],this._loadingElem.className="pg-loading-screen",null!=this.options.backgroundColor&&(this._loadingElem.style.backgroundColor=this.options.backgroundColor),this._loadingElem.innerHTML=this.options.template,this._loadingHtmlElem=this._loadingElem.getElementsByClassName("pg-loading-html")[0],null!=this._loadingHtmlElem&&(this._loadingHtmlElem.innerHTML=this.options.loadingHtml),this._readyToShowLoadingHtml=!1,this._logoElem=this._loadingElem.getElementsByClassName("pg-loading-logo")[0],null!=this._logoElem&&(this._logoElem.src=this.options.logo),k("pg-loaded",document.body),c("pg-loading",document.body),document.body.appendChild(this._loadingElem),c("pg-loading",this._loadingElem),this._onLoadedCallback=this.options.onLoadedCallback,g=function(a){return function(b){return a.loaded=!0,a._readyToShowLoadingHtml=!0,c("pg-loaded",a._loadingHtmlElem),e&&a._loadingHtmlElem.removeEventListener(d,g),a._loadingHtmlToDisplay.length>0&&a._changeLoadingHtml(),a.finishing?(null!=b&&b.stopPropagation(),a._finish()):void 0}}(this),null!=this._loadingHtmlElem&&(e?this._loadingHtmlElem.addEventListener(d,g):g(),this._loadingHtmlListener=function(a){return function(){return a._readyToShowLoadingHtml=!0,k("pg-loading",a._loadingHtmlElem),n&&a._loadingHtmlElem.removeEventListener(m,a._loadingHtmlListener),a._loadingHtmlToDisplay.length>0?a._changeLoadingHtml():void 0}}(this),this._removingHtmlListener=function(a){return function(){return a._loadingHtmlElem.innerHTML=a._loadingHtmlToDisplay.shift(),k("pg-removing",a._loadingHtmlElem),c("pg-loading",a._loadingHtmlElem),n?(a._loadingHtmlElem.removeEventListener(m,a._removingHtmlListener),a._loadingHtmlElem.addEventListener(m,a._loadingHtmlListener)):a._loadingHtmlListener()}}(this))}return a._defaultOptions={backgroundColor:null,logo:null,loadingHtml:null,template:"
\n
\n
\n

\n \n

\n
\n
\n
\n
\n
",onLoadedCallback:null},a.prototype.finish=function(a,b){return null==a&&(a=!1),window.document.hidden&&(a=!0),this.finishing=!0,null!=b&&this.updateOption("onLoadedCallback",b),this.loaded||a?this._finish(a):void 0},a.prototype.updateOption=function(a,b){switch(a){case"backgroundColor":return this._loadingElem.style.backgroundColor=b;case"logo":return this._logoElem.src=b;case"loadingHtml":return this.updateLoadingHtml(b);case"onLoadedCallback":return this._onLoadedCallback=b;default:throw new Error("Unknown option '"+a+"'")}},a.prototype.updateOptions=function(a){var b,c,d;null==a&&(a={}),d=[];for(b in a)c=a[b],d.push(this.updateOption(b,c));return d},a.prototype.updateLoadingHtml=function(a,b){if(null==b&&(b=!1),null==this._loadingHtmlElem)throw new Error("The loading template does not have an element of class 'pg-loading-html'");return b?(this._loadingHtmlToDisplay=[a],this._readyToShowLoadingHtml=!0):this._loadingHtmlToDisplay.push(a),this._readyToShowLoadingHtml?this._changeLoadingHtml():void 0},a.prototype._changeLoadingHtml=function(){return this._readyToShowLoadingHtml=!1,this._loadingHtmlElem.removeEventListener(m,this._loadingHtmlListener),this._loadingHtmlElem.removeEventListener(m,this._removingHtmlListener),k("pg-loading",this._loadingHtmlElem),k("pg-removing",this._loadingHtmlElem),n?(c("pg-removing",this._loadingHtmlElem),this._loadingHtmlElem.addEventListener(m,this._removingHtmlListener)):this._removingHtmlListener()},a.prototype._finish=function(a){var b;return null==a&&(a=!1),null!=this._loadingElem?(c("pg-loaded",document.body),"function"==typeof this._onLoadedCallback&&this._onLoadedCallback.apply(this),b=function(a){return function(){return document.body.removeChild(a._loadingElem),k("pg-loading",document.body),e&&a._loadingElem.removeEventListener(d,b),a._loadingElem=null}}(this),!a&&e?(c("pg-loaded",this._loadingElem),this._loadingElem.addEventListener(d,b)):b()):void 0},a}(),j=function(a){return null==a&&(a={}),new b(a)},a.pleaseWait=j,j}); \ No newline at end of file diff --git a/.electron/loading/spinkit.css b/.electron/loading/spinkit.css new file mode 100644 index 0000000000000000000000000000000000000000..0b79b8685fd719bf452cc59a1c88f27fef302ba0 --- /dev/null +++ b/.electron/loading/spinkit.css @@ -0,0 +1,770 @@ +/* + * Usage: + * +
+ * + */ +.sk-rotating-plane { + width: 40px; + height: 40px; + background-color: #333; + margin: 40px auto; + -webkit-animation: sk-rotatePlane 1.2s infinite ease-in-out; + animation: sk-rotatePlane 1.2s infinite ease-in-out; } + +@-webkit-keyframes sk-rotatePlane { + 0% { + -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg); + transform: perspective(120px) rotateX(0deg) rotateY(0deg); } + 50% { + -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); + transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); } + 100% { + -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); + transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } } + +@keyframes sk-rotatePlane { + 0% { + -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg); + transform: perspective(120px) rotateX(0deg) rotateY(0deg); } + 50% { + -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); + transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); } + 100% { + -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); + transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } } + +/* + * Usage: + * +
+
+
+
+ * + */ +.sk-double-bounce { + width: 40px; + height: 40px; + position: relative; + margin: 40px auto; } + .sk-double-bounce .sk-child { + width: 100%; + height: 100%; + border-radius: 50%; + background-color: #333; + opacity: 0.6; + position: absolute; + top: 0; + left: 0; + -webkit-animation: sk-doubleBounce 2s infinite ease-in-out; + animation: sk-doubleBounce 2s infinite ease-in-out; } + .sk-double-bounce .sk-double-bounce2 { + -webkit-animation-delay: -1.0s; + animation-delay: -1.0s; } + +@-webkit-keyframes sk-doubleBounce { + 0%, 100% { + -webkit-transform: scale(0); + transform: scale(0); } + 50% { + -webkit-transform: scale(1); + transform: scale(1); } } + +@keyframes sk-doubleBounce { + 0%, 100% { + -webkit-transform: scale(0); + transform: scale(0); } + 50% { + -webkit-transform: scale(1); + transform: scale(1); } } + +/* + * Usage: + * +
+
+
+
+
+
+
+ * + */ +.sk-wave { + margin: 40px auto; + width: 50px; + height: 40px; + text-align: center; + font-size: 10px; } + .sk-wave .sk-rect { + background-color: #333; + height: 100%; + width: 6px; + display: inline-block; + -webkit-animation: sk-waveStretchDelay 1.2s infinite ease-in-out; + animation: sk-waveStretchDelay 1.2s infinite ease-in-out; } + .sk-wave .sk-rect1 { + -webkit-animation-delay: -1.2s; + animation-delay: -1.2s; } + .sk-wave .sk-rect2 { + -webkit-animation-delay: -1.1s; + animation-delay: -1.1s; } + .sk-wave .sk-rect3 { + -webkit-animation-delay: -1s; + animation-delay: -1s; } + .sk-wave .sk-rect4 { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; } + .sk-wave .sk-rect5 { + -webkit-animation-delay: -0.8s; + animation-delay: -0.8s; } + +@-webkit-keyframes sk-waveStretchDelay { + 0%, 40%, 100% { + -webkit-transform: scaleY(0.4); + transform: scaleY(0.4); } + 20% { + -webkit-transform: scaleY(1); + transform: scaleY(1); } } + +@keyframes sk-waveStretchDelay { + 0%, 40%, 100% { + -webkit-transform: scaleY(0.4); + transform: scaleY(0.4); } + 20% { + -webkit-transform: scaleY(1); + transform: scaleY(1); } } + +/* + * Usage: + * +
+
+
+
+ * + */ +.sk-wandering-cubes { + margin: 40px auto; + width: 40px; + height: 40px; + position: relative; } + .sk-wandering-cubes .sk-cube { + background-color: #333; + width: 10px; + height: 10px; + position: absolute; + top: 0; + left: 0; + -webkit-animation: sk-wanderingCube 1.8s ease-in-out -1.8s infinite both; + animation: sk-wanderingCube 1.8s ease-in-out -1.8s infinite both; } + .sk-wandering-cubes .sk-cube2 { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; } + +@-webkit-keyframes sk-wanderingCube { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 25% { + -webkit-transform: translateX(30px) rotate(-90deg) scale(0.5); + transform: translateX(30px) rotate(-90deg) scale(0.5); } + 50% { + /* Hack to make FF rotate in the right direction */ + -webkit-transform: translateX(30px) translateY(30px) rotate(-179deg); + transform: translateX(30px) translateY(30px) rotate(-179deg); } + 50.1% { + -webkit-transform: translateX(30px) translateY(30px) rotate(-180deg); + transform: translateX(30px) translateY(30px) rotate(-180deg); } + 75% { + -webkit-transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5); + transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5); } + 100% { + -webkit-transform: rotate(-360deg); + transform: rotate(-360deg); } } + +@keyframes sk-wanderingCube { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 25% { + -webkit-transform: translateX(30px) rotate(-90deg) scale(0.5); + transform: translateX(30px) rotate(-90deg) scale(0.5); } + 50% { + /* Hack to make FF rotate in the right direction */ + -webkit-transform: translateX(30px) translateY(30px) rotate(-179deg); + transform: translateX(30px) translateY(30px) rotate(-179deg); } + 50.1% { + -webkit-transform: translateX(30px) translateY(30px) rotate(-180deg); + transform: translateX(30px) translateY(30px) rotate(-180deg); } + 75% { + -webkit-transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5); + transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5); } + 100% { + -webkit-transform: rotate(-360deg); + transform: rotate(-360deg); } } + +/* + * Usage: + * +
+ * + */ +.sk-spinner-pulse { + width: 40px; + height: 40px; + margin: 40px auto; + background-color: #333; + border-radius: 100%; + -webkit-animation: sk-pulseScaleOut 1s infinite ease-in-out; + animation: sk-pulseScaleOut 1s infinite ease-in-out; } + +@-webkit-keyframes sk-pulseScaleOut { + 0% { + -webkit-transform: scale(0); + transform: scale(0); } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; } } + +@keyframes sk-pulseScaleOut { + 0% { + -webkit-transform: scale(0); + transform: scale(0); } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; } } + +/* + * Usage: + * +
+
+
+
+ * + */ +.sk-chasing-dots { + margin: 40px auto; + width: 40px; + height: 40px; + position: relative; + text-align: center; + -webkit-animation: sk-chasingDotsRotate 2s infinite linear; + animation: sk-chasingDotsRotate 2s infinite linear; } + .sk-chasing-dots .sk-child { + width: 60%; + height: 60%; + display: inline-block; + position: absolute; + top: 0; + background-color: #333; + border-radius: 100%; + -webkit-animation: sk-chasingDotsBounce 2s infinite ease-in-out; + animation: sk-chasingDotsBounce 2s infinite ease-in-out; } + .sk-chasing-dots .sk-dot2 { + top: auto; + bottom: 0; + -webkit-animation-delay: -1s; + animation-delay: -1s; } + +@-webkit-keyframes sk-chasingDotsRotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes sk-chasingDotsRotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@-webkit-keyframes sk-chasingDotsBounce { + 0%, 100% { + -webkit-transform: scale(0); + transform: scale(0); } + 50% { + -webkit-transform: scale(1); + transform: scale(1); } } + +@keyframes sk-chasingDotsBounce { + 0%, 100% { + -webkit-transform: scale(0); + transform: scale(0); } + 50% { + -webkit-transform: scale(1); + transform: scale(1); } } + +/* + * Usage: + * +
+
+
+
+
+ * + */ +.sk-three-bounce { + margin: 40px auto; + width: 80px; + text-align: center; } + .sk-three-bounce .sk-child { + width: 20px; + height: 20px; + background-color: #333; + border-radius: 100%; + display: inline-block; + -webkit-animation: sk-three-bounce 1.4s ease-in-out 0s infinite both; + animation: sk-three-bounce 1.4s ease-in-out 0s infinite both; } + .sk-three-bounce .sk-bounce1 { + -webkit-animation-delay: -0.32s; + animation-delay: -0.32s; } + .sk-three-bounce .sk-bounce2 { + -webkit-animation-delay: -0.16s; + animation-delay: -0.16s; } + +@-webkit-keyframes sk-three-bounce { + 0%, 80%, 100% { + -webkit-transform: scale(0); + transform: scale(0); } + 40% { + -webkit-transform: scale(1); + transform: scale(1); } } + +@keyframes sk-three-bounce { + 0%, 80%, 100% { + -webkit-transform: scale(0); + transform: scale(0); } + 40% { + -webkit-transform: scale(1); + transform: scale(1); } } + +/* + * Usage: + * +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ * + */ +.sk-circle { + margin: 40px auto; + width: 40px; + height: 40px; + position: relative; } + .sk-circle .sk-child { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; } + .sk-circle .sk-child:before { + content: ''; + display: block; + margin: 0 auto; + width: 15%; + height: 15%; + background-color: #333; + border-radius: 100%; + -webkit-animation: sk-circleBounceDelay 1.2s infinite ease-in-out both; + animation: sk-circleBounceDelay 1.2s infinite ease-in-out both; } + .sk-circle .sk-circle2 { + -webkit-transform: rotate(30deg); + -ms-transform: rotate(30deg); + transform: rotate(30deg); } + .sk-circle .sk-circle3 { + -webkit-transform: rotate(60deg); + -ms-transform: rotate(60deg); + transform: rotate(60deg); } + .sk-circle .sk-circle4 { + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); } + .sk-circle .sk-circle5 { + -webkit-transform: rotate(120deg); + -ms-transform: rotate(120deg); + transform: rotate(120deg); } + .sk-circle .sk-circle6 { + -webkit-transform: rotate(150deg); + -ms-transform: rotate(150deg); + transform: rotate(150deg); } + .sk-circle .sk-circle7 { + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); } + .sk-circle .sk-circle8 { + -webkit-transform: rotate(210deg); + -ms-transform: rotate(210deg); + transform: rotate(210deg); } + .sk-circle .sk-circle9 { + -webkit-transform: rotate(240deg); + -ms-transform: rotate(240deg); + transform: rotate(240deg); } + .sk-circle .sk-circle10 { + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); } + .sk-circle .sk-circle11 { + -webkit-transform: rotate(300deg); + -ms-transform: rotate(300deg); + transform: rotate(300deg); } + .sk-circle .sk-circle12 { + -webkit-transform: rotate(330deg); + -ms-transform: rotate(330deg); + transform: rotate(330deg); } + .sk-circle .sk-circle2:before { + -webkit-animation-delay: -1.1s; + animation-delay: -1.1s; } + .sk-circle .sk-circle3:before { + -webkit-animation-delay: -1s; + animation-delay: -1s; } + .sk-circle .sk-circle4:before { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; } + .sk-circle .sk-circle5:before { + -webkit-animation-delay: -0.8s; + animation-delay: -0.8s; } + .sk-circle .sk-circle6:before { + -webkit-animation-delay: -0.7s; + animation-delay: -0.7s; } + .sk-circle .sk-circle7:before { + -webkit-animation-delay: -0.6s; + animation-delay: -0.6s; } + .sk-circle .sk-circle8:before { + -webkit-animation-delay: -0.5s; + animation-delay: -0.5s; } + .sk-circle .sk-circle9:before { + -webkit-animation-delay: -0.4s; + animation-delay: -0.4s; } + .sk-circle .sk-circle10:before { + -webkit-animation-delay: -0.3s; + animation-delay: -0.3s; } + .sk-circle .sk-circle11:before { + -webkit-animation-delay: -0.2s; + animation-delay: -0.2s; } + .sk-circle .sk-circle12:before { + -webkit-animation-delay: -0.1s; + animation-delay: -0.1s; } + +@-webkit-keyframes sk-circleBounceDelay { + 0%, 80%, 100% { + -webkit-transform: scale(0); + transform: scale(0); } + 40% { + -webkit-transform: scale(1); + transform: scale(1); } } + +@keyframes sk-circleBounceDelay { + 0%, 80%, 100% { + -webkit-transform: scale(0); + transform: scale(0); } + 40% { + -webkit-transform: scale(1); + transform: scale(1); } } + +/* + * Usage: + * +
+
+
+
+
+
+
+
+
+
+
+ * + */ +.sk-cube-grid { + width: 40px; + height: 40px; + margin: 40px auto; + /* + * Spinner positions + * 1 2 3 + * 4 5 6 + * 7 8 9 + */ } + .sk-cube-grid .sk-cube { + width: 33.33%; + height: 33.33%; + background-color: #333; + float: left; + -webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out; + animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out; } + .sk-cube-grid .sk-cube1 { + -webkit-animation-delay: 0.2s; + animation-delay: 0.2s; } + .sk-cube-grid .sk-cube2 { + -webkit-animation-delay: 0.3s; + animation-delay: 0.3s; } + .sk-cube-grid .sk-cube3 { + -webkit-animation-delay: 0.4s; + animation-delay: 0.4s; } + .sk-cube-grid .sk-cube4 { + -webkit-animation-delay: 0.1s; + animation-delay: 0.1s; } + .sk-cube-grid .sk-cube5 { + -webkit-animation-delay: 0.2s; + animation-delay: 0.2s; } + .sk-cube-grid .sk-cube6 { + -webkit-animation-delay: 0.3s; + animation-delay: 0.3s; } + .sk-cube-grid .sk-cube7 { + -webkit-animation-delay: 0.0s; + animation-delay: 0.0s; } + .sk-cube-grid .sk-cube8 { + -webkit-animation-delay: 0.1s; + animation-delay: 0.1s; } + .sk-cube-grid .sk-cube9 { + -webkit-animation-delay: 0.2s; + animation-delay: 0.2s; } + +@-webkit-keyframes sk-cubeGridScaleDelay { + 0%, 70%, 100% { + -webkit-transform: scale3D(1, 1, 1); + transform: scale3D(1, 1, 1); } + 35% { + -webkit-transform: scale3D(0, 0, 1); + transform: scale3D(0, 0, 1); } } + +@keyframes sk-cubeGridScaleDelay { + 0%, 70%, 100% { + -webkit-transform: scale3D(1, 1, 1); + transform: scale3D(1, 1, 1); } + 35% { + -webkit-transform: scale3D(0, 0, 1); + transform: scale3D(0, 0, 1); } } + +/* + * Usage: + * +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ * + */ +.sk-fading-circle { + margin: 40px auto; + width: 40px; + height: 40px; + position: relative; } + .sk-fading-circle .sk-circle { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; } + .sk-fading-circle .sk-circle:before { + content: ''; + display: block; + margin: 0 auto; + width: 15%; + height: 15%; + background-color: #333; + border-radius: 100%; + -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; + animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; } + .sk-fading-circle .sk-circle2 { + -webkit-transform: rotate(30deg); + -ms-transform: rotate(30deg); + transform: rotate(30deg); } + .sk-fading-circle .sk-circle3 { + -webkit-transform: rotate(60deg); + -ms-transform: rotate(60deg); + transform: rotate(60deg); } + .sk-fading-circle .sk-circle4 { + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); } + .sk-fading-circle .sk-circle5 { + -webkit-transform: rotate(120deg); + -ms-transform: rotate(120deg); + transform: rotate(120deg); } + .sk-fading-circle .sk-circle6 { + -webkit-transform: rotate(150deg); + -ms-transform: rotate(150deg); + transform: rotate(150deg); } + .sk-fading-circle .sk-circle7 { + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); } + .sk-fading-circle .sk-circle8 { + -webkit-transform: rotate(210deg); + -ms-transform: rotate(210deg); + transform: rotate(210deg); } + .sk-fading-circle .sk-circle9 { + -webkit-transform: rotate(240deg); + -ms-transform: rotate(240deg); + transform: rotate(240deg); } + .sk-fading-circle .sk-circle10 { + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); } + .sk-fading-circle .sk-circle11 { + -webkit-transform: rotate(300deg); + -ms-transform: rotate(300deg); + transform: rotate(300deg); } + .sk-fading-circle .sk-circle12 { + -webkit-transform: rotate(330deg); + -ms-transform: rotate(330deg); + transform: rotate(330deg); } + .sk-fading-circle .sk-circle2:before { + -webkit-animation-delay: -1.1s; + animation-delay: -1.1s; } + .sk-fading-circle .sk-circle3:before { + -webkit-animation-delay: -1s; + animation-delay: -1s; } + .sk-fading-circle .sk-circle4:before { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; } + .sk-fading-circle .sk-circle5:before { + -webkit-animation-delay: -0.8s; + animation-delay: -0.8s; } + .sk-fading-circle .sk-circle6:before { + -webkit-animation-delay: -0.7s; + animation-delay: -0.7s; } + .sk-fading-circle .sk-circle7:before { + -webkit-animation-delay: -0.6s; + animation-delay: -0.6s; } + .sk-fading-circle .sk-circle8:before { + -webkit-animation-delay: -0.5s; + animation-delay: -0.5s; } + .sk-fading-circle .sk-circle9:before { + -webkit-animation-delay: -0.4s; + animation-delay: -0.4s; } + .sk-fading-circle .sk-circle10:before { + -webkit-animation-delay: -0.3s; + animation-delay: -0.3s; } + .sk-fading-circle .sk-circle11:before { + -webkit-animation-delay: -0.2s; + animation-delay: -0.2s; } + .sk-fading-circle .sk-circle12:before { + -webkit-animation-delay: -0.1s; + animation-delay: -0.1s; } + +@-webkit-keyframes sk-circleFadeDelay { + 0%, 39%, 100% { + opacity: 0; } + 40% { + opacity: 1; } } + +@keyframes sk-circleFadeDelay { + 0%, 39%, 100% { + opacity: 0; } + 40% { + opacity: 1; } } + +/* + * Usage: + * +
+
+
+
+
+
+ * + */ +.sk-folding-cube { + margin: 40px auto; + width: 40px; + height: 40px; + position: relative; + -webkit-transform: rotateZ(45deg); + transform: rotateZ(45deg); } + .sk-folding-cube .sk-cube { + float: left; + width: 50%; + height: 50%; + position: relative; + -webkit-transform: scale(1.1); + -ms-transform: scale(1.1); + transform: scale(1.1); } + .sk-folding-cube .sk-cube:before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: #333; + -webkit-animation: sk-foldCubeAngle 2.4s infinite linear both; + animation: sk-foldCubeAngle 2.4s infinite linear both; + -webkit-transform-origin: 100% 100%; + -ms-transform-origin: 100% 100%; + transform-origin: 100% 100%; } + .sk-folding-cube .sk-cube2 { + -webkit-transform: scale(1.1) rotateZ(90deg); + transform: scale(1.1) rotateZ(90deg); } + .sk-folding-cube .sk-cube3 { + -webkit-transform: scale(1.1) rotateZ(180deg); + transform: scale(1.1) rotateZ(180deg); } + .sk-folding-cube .sk-cube4 { + -webkit-transform: scale(1.1) rotateZ(270deg); + transform: scale(1.1) rotateZ(270deg); } + .sk-folding-cube .sk-cube2:before { + -webkit-animation-delay: 0.3s; + animation-delay: 0.3s; } + .sk-folding-cube .sk-cube3:before { + -webkit-animation-delay: 0.6s; + animation-delay: 0.6s; } + .sk-folding-cube .sk-cube4:before { + -webkit-animation-delay: 0.9s; + animation-delay: 0.9s; } + +@-webkit-keyframes sk-foldCubeAngle { + 0%, 10% { + -webkit-transform: perspective(140px) rotateX(-180deg); + transform: perspective(140px) rotateX(-180deg); + opacity: 0; } + 25%, 75% { + -webkit-transform: perspective(140px) rotateX(0deg); + transform: perspective(140px) rotateX(0deg); + opacity: 1; } + 90%, 100% { + -webkit-transform: perspective(140px) rotateY(180deg); + transform: perspective(140px) rotateY(180deg); + opacity: 0; } } + +@keyframes sk-foldCubeAngle { + 0%, 10% { + -webkit-transform: perspective(140px) rotateX(-180deg); + transform: perspective(140px) rotateX(-180deg); + opacity: 0; } + 25%, 75% { + -webkit-transform: perspective(140px) rotateX(0deg); + transform: perspective(140px) rotateX(0deg); + opacity: 1; } + 90%, 100% { + -webkit-transform: perspective(140px) rotateY(180deg); + transform: perspective(140px) rotateY(180deg); + opacity: 0; } } diff --git a/.electrify/package.json b/.electron/package.json similarity index 56% rename from .electrify/package.json rename to .electron/package.json index 5941c18c523ad77e108608bfa260d7fc850b9f59..d6dabca1aa4f34a7110615a7f2b1e978de5a97af 100644 --- a/.electrify/package.json +++ b/.electron/package.json @@ -1,8 +1,8 @@ { "name": "Mongoclient", "main": "index.js", - "electronVersion": "1.6.0", + "version": "2.0.0", "dependencies": { - "electrify": "2.1.4" + "shelljs": "^0.7.7" } } \ No newline at end of file diff --git a/.electron/readme b/.electron/readme new file mode 100644 index 0000000000000000000000000000000000000000..4af7fdf1ac8d988cd36a8f5ed6e253d3d149b3b5 --- /dev/null +++ b/.electron/readme @@ -0,0 +1,9 @@ +- Bundle mongoclient with command: meteor build --server --directory and put contents into app folder +- Copy contents of C:\Users\Sercan\AppData\Local\.meteor\packages\meteor-tool\1.4.3_2\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules to app\programs\server\node_modules +- Copy Node (4.2.7) to bin folder +- Copy Mongod (>=3.2.6) to bin folder + +# Steps to RUN directly +- Run npm install -g electron +- Run electron . +