├── .build.msavin:jetsetter ├── buildinfo.json ├── isopack.json ├── os.json ├── os │ └── packages │ │ ├── msavin:jetsetter.js │ │ ├── msavin:jetsetter.js.map │ │ └── msavin:jetsetter │ │ ├── Liberation.ttf │ │ ├── jetsetter.css │ │ └── jetsetter.html ├── package.js ├── unipackage.json ├── web.browser.json ├── web.browser │ └── packages │ │ ├── msavin:jetsetter.js │ │ ├── msavin:jetsetter.js.map │ │ └── msavin:jetsetter │ │ ├── Liberation.ttf │ │ └── jetsetter.css ├── web.cordova.json └── web.cordova │ └── packages │ ├── msavin:jetsetter.js │ ├── msavin:jetsetter.js.map │ └── msavin:jetsetter │ ├── Liberation.ttf │ └── jetsetter.css ├── .meteor ├── .finished-upgraders ├── .gitignore ├── .id ├── cordova-plugins ├── packages ├── platforms ├── release └── versions ├── README.md ├── client ├── _component │ ├── component.html │ └── component.js ├── functions.js ├── main.html ├── main.js ├── row_create │ ├── JetSetter_create.html │ └── JetSetter_create.js ├── row_editor │ ├── JetSetter_editor.html │ └── JetSetter_editor.js ├── row_header │ ├── JetSetter_header.html │ └── JetSetter_header.js └── row_session │ ├── JetSetter_row.html │ └── JetSetter_row.js ├── documentation ├── LICENSE.md ├── images │ └── cover.png └── screenshots │ ├── 1.gif │ ├── 1.mov │ ├── 1.png │ ├── 2.png │ ├── 3.png │ └── mov2gif ├── package.js ├── style └── JetSetter.css └── versions.json /.build.msavin:jetsetter/buildinfo.json: -------------------------------------------------------------------------------- 1 | { 2 | "builtBy": "meteor/14", 3 | "buildDependencies": { 4 | "os.json": { 5 | "files": { 6 | "/Users/main/JetSetter/packages/msavin:jetsetter/package.js": "05506b3fa4f6fb57db72102a4469a4c03db0e7a6", 7 | "/Users/main/JetSetter/packages/msavin:jetsetter/jetsetter.html": "8e360edcbd131673060fb824e0c2a0bafa329f9b", 8 | "/Users/main/JetSetter/packages/msavin:jetsetter/jetsetter.css": "bc451f701a6791d903a3897da86a117bec3fa11d", 9 | "/Users/main/JetSetter/packages/msavin:jetsetter/jetsetter.js": "49265b5217c3903f6d8c862a3bf89582410cedcd", 10 | "/Users/main/JetSetter/packages/msavin:jetsetter/Liberation.ttf": "f882269241d0d3a0a3161dae5611e0abfa24958c" 11 | }, 12 | "directories": [] 13 | }, 14 | "web.browser.json": { 15 | "files": { 16 | "/Users/main/JetSetter/packages/msavin:jetsetter/package.js": "05506b3fa4f6fb57db72102a4469a4c03db0e7a6", 17 | "/Users/main/JetSetter/packages/msavin:jetsetter/jetsetter.html": "8e360edcbd131673060fb824e0c2a0bafa329f9b", 18 | "/Users/main/JetSetter/packages/msavin:jetsetter/jetsetter.css": "bc451f701a6791d903a3897da86a117bec3fa11d", 19 | "/Users/main/JetSetter/packages/msavin:jetsetter/jetsetter.js": "49265b5217c3903f6d8c862a3bf89582410cedcd", 20 | "/Users/main/JetSetter/packages/msavin:jetsetter/Liberation.ttf": "f882269241d0d3a0a3161dae5611e0abfa24958c" 21 | }, 22 | "directories": [] 23 | }, 24 | "web.cordova.json": { 25 | "files": { 26 | "/Users/main/JetSetter/packages/msavin:jetsetter/package.js": "05506b3fa4f6fb57db72102a4469a4c03db0e7a6", 27 | "/Users/main/JetSetter/packages/msavin:jetsetter/jetsetter.html": "8e360edcbd131673060fb824e0c2a0bafa329f9b", 28 | "/Users/main/JetSetter/packages/msavin:jetsetter/jetsetter.css": "bc451f701a6791d903a3897da86a117bec3fa11d", 29 | "/Users/main/JetSetter/packages/msavin:jetsetter/jetsetter.js": "49265b5217c3903f6d8c862a3bf89582410cedcd", 30 | "/Users/main/JetSetter/packages/msavin:jetsetter/Liberation.ttf": "f882269241d0d3a0a3161dae5611e0abfa24958c" 31 | }, 32 | "directories": [] 33 | } 34 | }, 35 | "pluginDependencies": { 36 | "files": { 37 | "/Users/main/JetSetter/packages/msavin:jetsetter/package.js": "05506b3fa4f6fb57db72102a4469a4c03db0e7a6" 38 | }, 39 | "directories": [] 40 | }, 41 | "source": "/Users/main/JetSetter/packages/msavin:jetsetter", 42 | "buildTimeDirectDependencies": { 43 | "session": "1.0.4", 44 | "templating": "1.0.9", 45 | "tracker": "1.0.3", 46 | "meteor": "1.1.3" 47 | }, 48 | "buildTimePluginDependencies": {}, 49 | "cordovaDependencies": null 50 | } -------------------------------------------------------------------------------- /.build.msavin:jetsetter/isopack.json: -------------------------------------------------------------------------------- 1 | { 2 | "isopack-1": { 3 | "name": "msavin:jetsetter", 4 | "summary": "Get/Set Tool for Meteor Sessions", 5 | "version": "0.1.0+c903a299010facca641ed023ab2556716a0d0f4a", 6 | "earliestCompatibleVersion": "0.0.0", 7 | "isTest": false, 8 | "builds": [ 9 | { 10 | "arch": "os", 11 | "path": "os.json" 12 | }, 13 | { 14 | "arch": "web.browser", 15 | "path": "web.browser.json" 16 | }, 17 | { 18 | "arch": "web.cordova", 19 | "path": "web.cordova.json" 20 | } 21 | ], 22 | "plugins": [], 23 | "debugOnly": true 24 | } 25 | } -------------------------------------------------------------------------------- /.build.msavin:jetsetter/os.json: -------------------------------------------------------------------------------- 1 | { 2 | "format": "unipackage-unibuild-pre1", 3 | "packageVariables": [], 4 | "uses": [ 5 | { 6 | "package": "meteor" 7 | } 8 | ], 9 | "resources": [ 10 | { 11 | "type": "asset", 12 | "file": "os/packages/msavin:jetsetter/jetsetter.html", 13 | "length": 534, 14 | "offset": 0, 15 | "servePath": "/packages/msavin:jetsetter/jetsetter.html", 16 | "path": "jetsetter.html" 17 | }, 18 | { 19 | "type": "asset", 20 | "file": "os/packages/msavin:jetsetter/jetsetter.css", 21 | "length": 863, 22 | "offset": 0, 23 | "servePath": "/packages/msavin:jetsetter/jetsetter.css", 24 | "path": "jetsetter.css" 25 | }, 26 | { 27 | "type": "asset", 28 | "file": "os/packages/msavin:jetsetter/Liberation.ttf", 29 | "length": 61144, 30 | "offset": 0, 31 | "servePath": "/packages/msavin:jetsetter/Liberation.ttf", 32 | "path": "Liberation.ttf" 33 | }, 34 | { 35 | "type": "prelink", 36 | "file": "os/packages/msavin:jetsetter.js", 37 | "length": 16084, 38 | "offset": 0, 39 | "servePath": "/packages/msavin:jetsetter.js", 40 | "sourceMap": "os/packages/msavin:jetsetter.js.map" 41 | } 42 | ] 43 | } -------------------------------------------------------------------------------- /.build.msavin:jetsetter/os/packages/msavin:jetsetter.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 3 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // // 5 | // packages/msavin:jetsetter/jetsetter.js // 6 | // // 7 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////// 8 | // 9 | if (Meteor.isClient) { // 1 10 | // 2 11 | var JetSetter = { // 3 12 | "getKeys": function () { // 4 13 | var JetSetter_Keys = Object.getOwnPropertyNames(Session.keys); // 5 14 | Session.set("JetSetter", JetSetter_Keys); // 6 15 | } // 7 16 | } // 8 17 | // 9 18 | // 10 19 | if (!Object.observe) { // 11 20 | // 12 21 | setInterval(function(){ // 13 22 | JetSetter.getKeys() // 14 23 | // MongolPackage.setSubscriptionKeys(); // 15 24 | }, 3000); // 16 25 | // 17 26 | } else { // 18 27 | // 19 28 | Object.observe(Session.keys, function() { // 20 29 | JetSetter.getKeys() // 21 30 | // MongolPackage.setSubscriptionKeys(); // 22 31 | }); // 23 32 | // 24 33 | } // 25 34 | // 26 35 | // 27 36 | var SessionChecker = { // 28 37 | null: function (value) { // 29 38 | if (value === null) { // 30 39 | return true; // 31 40 | } // 32 41 | }, // 33 42 | boolean: function (value) { // 34 43 | if (typeof value === "boolean") { // 35 44 | return true; // 36 45 | } // 37 46 | }, // 38 47 | array: function(value) { // 39 48 | if ($.isArray(value)) { // 40 49 | return true; // 41 50 | } // 42 51 | }, // 43 52 | number: function (value) { // 44 53 | if (typeof value === "number") { // 45 54 | return true; // 46 55 | } // 47 56 | }, // 48 57 | string: function (value) { // 49 58 | if (typeof value === "string") { // 50 59 | return true; // 51 60 | } // 52 61 | } // 53 62 | } // 54 63 | // 55 64 | Template.body.helpers({ // 56 65 | JetSetter_enabled: function () { // 57 66 | // 58 67 | if (Package['msavin:mongol']) { // 59 68 | return Session.get("Mongol_settings_display"); // 60 69 | } else { // 61 70 | return true; // 62 71 | } // 63 72 | }, // 64 73 | SessionItems: function () { // 65 74 | // Hide the JetSetter session // 66 75 | var array = Session.get("JetSetter"); // 67 76 | // 68 77 | var i = array.indexOf("JetSetter"); // 69 78 | if (i != -1) { // 70 79 | array.splice(i, 1) // 71 80 | } // 72 81 | // 73 82 | // Return just the developers sessions // 74 83 | return array; // 75 84 | }, // 76 85 | value: function () { // 77 86 | // 78 87 | var value = Session.get(this); // 79 88 | // 80 89 | switch (true) { // 81 90 | case SessionChecker.null(value): // 82 91 | return 'null'; // 83 92 | break; // 84 93 | case SessionChecker.boolean(value): // 85 94 | return '' + value + ''; // 86 95 | break; // 87 96 | case SessionChecker.number(value): // 88 97 | return value; // 89 98 | break; // 90 99 | case SessionChecker.string(value): // 91 100 | return '"' + value + '"'; // 92 101 | break; // 93 102 | case SessionChecker.array(value): // 94 103 | return "[" + value + "]"; // 95 104 | break; // 96 105 | default: // 97 106 | return "Object"; // 98 107 | break; // 99 108 | } // 100 109 | // 101 110 | } // 102 111 | }); // 103 112 | // 104 113 | Template.body.events({ // 105 114 | 'click .JetSetter_row': function () { // 106 115 | // 107 116 | // var value = prompt("What would you like to change the value of this Session variable to?"); // 108 117 | // 109 118 | // if (value === "" || value === null || value === undefined) { // 110 119 | // console.log("JetSetter: Prompt entry cannot be empty. To set null value, enter null."); // 111 120 | // } else { // 112 121 | // 113 122 | // switch (value) { // 114 123 | // case "false": // 115 124 | // Session.set(this, false); // 116 125 | // break; // 117 126 | // case "true": // 118 127 | // Session.set(this, true); // 119 128 | // break; // 120 129 | // case "null": // 121 130 | // Session.set(this, null); // 122 131 | // value = "null"; // 123 132 | // break; // 124 133 | // default: // 125 134 | // Session.set(this, value); // 126 135 | // break; // 127 136 | // } // 128 137 | // } // 129 138 | console.log(Session.get(this)) // 130 139 | // 131 140 | } // 132 141 | }); // 133 142 | // 134 143 | } // 135 144 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////// 145 | 146 | }).call(this); 147 | -------------------------------------------------------------------------------- /.build.msavin:jetsetter/os/packages/msavin:jetsetter.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"/packages/msavin:jetsetter.js","sources":["msavin:jetsetter/jetsetter.js"],"names":[],"mappings":";;;;;;;;AAAA,sB;AACA,I;AACA,qB;AACA,gC;AACA,0E;AACA,qD;AACA,S;AACA,K;;;AAGA,0B;;AAEA,+B;AACA,+B;AACA,oD;AACA,iB;;AAEA,Y;AACA,M;AACA,iD;AACA,+B;AACA,qD;AACA,W;;AAEA,K;;AAEA,I;AACA,0B;AACA,gC;AACA,iC;AACA,4B;AACA,a;AACA,U;AACA,mC;AACA,6C;AACA,4B;AACA,a;AACA,U;AACA,gC;AACA,mC;AACA,4B;AACA,a;AACA,U;AACA,kC;AACA,4C;AACA,4B;AACA,a;AACA,U;AACA,kC;AACA,4C;AACA,4B;AACA,e;AACA,S;AACA,K;;AAEA,2B;AACA,wC;;AAEA,2C;AACA,8D;AACA,oB;AACA,4B;AACA,a;AACA,U;AACA,mC;AACA,yC;AACA,iD;;AAEA,+C;AACA,0B;AACA,kC;AACA,a;;AAEA,kD;AACA,yB;AACA,U;AACA,4B;AACA,Y;AACA,0C;;AAEA,2B;AACA,gD;AACA,yC;AACA,0B;AACA,mD;AACA,kD;AACA,0B;AACA,kD;AACA,iC;AACA,0B;AACA,kD;AACA,6C;AACA,0B;AACA,iD;AACA,6C;AACA,0B;AACA,wB;AACA,2C;AACA,0B;AACA,a;;AAEA,S;AACA,O;;AAEA,0B;AACA,6C;AACA,Y;AACA,0G;AACA,Y;AACA,4E;AACA,0G;AACA,uB;;AAEA,mC;AACA,oC;AACA,oD;AACA,iC;AACA,mC;AACA,mD;AACA,iC;AACA,mC;AACA,mD;AACA,0C;AACA,iC;AACA,+B;AACA,oD;AACA,iC;AACA,oB;AACA,gB;AACA,0C;AACA,gB;AACA,S;AACA,O;;AAEA,C","sourcesContent":["if (Meteor.isClient) {\n \n var JetSetter = {\n \"getKeys\": function () {\n var JetSetter_Keys = Object.getOwnPropertyNames(Session.keys);\n Session.set(\"JetSetter\", JetSetter_Keys);\n }\n }\n\n\n if (!Object.observe) {\n\n setInterval(function(){\n JetSetter.getKeys()\n // MongolPackage.setSubscriptionKeys(); \n }, 3000);\n\n } else {\n \n Object.observe(Session.keys, function() {\n JetSetter.getKeys()\n // MongolPackage.setSubscriptionKeys(); \n });\n\n }\n\n \n var SessionChecker = {\n null: function (value) {\n if (value === null) {\n return true;\n }\n },\n boolean: function (value) {\n if (typeof value === \"boolean\") {\n return true;\n }\n },\n array: function(value) {\n if ($.isArray(value)) {\n return true;\n }\n },\n number: function (value) {\n if (typeof value === \"number\") {\n return true;\n }\n },\n string: function (value) {\n if (typeof value === \"string\") {\n return true;\n } \n }\n }\n\n Template.body.helpers({\n JetSetter_enabled: function () {\n\n if (Package['msavin:mongol']) {\n return Session.get(\"Mongol_settings_display\");\n } else {\n return true;\n }\n },\n SessionItems: function () {\n // Hide the JetSetter session\n var array = Session.get(\"JetSetter\");\n\n var i = array.indexOf(\"JetSetter\");\n if (i != -1) {\n array.splice(i, 1)\n }\n\n // Return just the developers sessions\n return array;\n },\n value: function () {\n \n var value = Session.get(this);\n\n switch (true) {\n case SessionChecker.null(value):\n return 'null';\n break;\n case SessionChecker.boolean(value):\n return '' + value + '';\n break;\n case SessionChecker.number(value):\n return value;\n break;\n case SessionChecker.string(value):\n return '\"' + value + '\"';\n break;\n case SessionChecker.array(value):\n return \"[\" + value + \"]\";\n break;\n default:\n return \"Object\";\n break;\n }\n\n }\n });\n\n Template.body.events({\n 'click .JetSetter_row': function () {\n \n // var value = prompt(\"What would you like to change the value of this Session variable to?\");\n \n // if (value === \"\" || value === null || value === undefined) {\n // console.log(\"JetSetter: Prompt entry cannot be empty. To set null value, enter null.\");\n // } else {\n\n // switch (value) {\n // case \"false\":\n // Session.set(this, false);\n // break;\n // case \"true\":\n // Session.set(this, true);\n // break;\n // case \"null\":\n // Session.set(this, null);\n // value = \"null\";\n // break;\n // default:\n // Session.set(this, value);\n // break;\n // }\n // }\n console.log(Session.get(this))\n \n }\n });\n\n}"]} -------------------------------------------------------------------------------- /.build.msavin:jetsetter/os/packages/msavin:jetsetter/Liberation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msavin/JetSetter/07054a56c31d3297baf495e54c272d413a1fc6ca/.build.msavin:jetsetter/os/packages/msavin:jetsetter/Liberation.ttf -------------------------------------------------------------------------------- /.build.msavin:jetsetter/os/packages/msavin:jetsetter/jetsetter.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: Liberation Mono; 3 | src: url('./Liberation.ttf'); 4 | } 5 | 6 | #JetSetter { 7 | position: fixed; 8 | right: 0; 9 | bottom: 0; 10 | padding: 0px; 11 | background-color: rgba(53,53,53,.92); 12 | color: #fff; 13 | font-family: Liberation Mono, monospace; 14 | z-index: 9999999999; 15 | font-size: 14px; 16 | line-height: 28px; 17 | overflow: hidden; 18 | } 19 | 20 | #JetSetter:hover { 21 | max-width: auto; 22 | } 23 | 24 | .JetSetter_row, .JetSetter_row_empty { 25 | margin-bottom: 1px; 26 | padding: 0 8px; 27 | overflow: hidden; 28 | text-overflow: ellipsis; 29 | background: rgba(0,0,0,.2); 30 | white-space: nowrap; 31 | max-width: 136px; 32 | transition: .3s; 33 | color: rgba(255,255,255,.4); 34 | } 35 | 36 | .JetSetter_row:hover { 37 | /*background: #000;*/ 38 | /*cursor: pointer; */ 39 | } 40 | 41 | .JetSetter_row span, .JetSetter_row_empty span { 42 | color: #fff; 43 | } 44 | 45 | #JetSetter:hover .JetSetter_row { 46 | max-width: 1000px; 47 | color: rgba(255,255,255,.6); 48 | } -------------------------------------------------------------------------------- /.build.msavin:jetsetter/os/packages/msavin:jetsetter/jetsetter.html: -------------------------------------------------------------------------------- 1 | 2 | {{#if JetSetter_enabled}} 3 |
4 | {{> JetSetter_header}} 5 | {{#each SessionItems}} 6 |
7 | {{this}}: 8 | {{{value}}} 9 |
10 | {{else}} 11 | {{> JetSetter_empty}} 12 | {{/each}} 13 |
14 | {{/if}} 15 | 16 | 17 | 22 | 23 | -------------------------------------------------------------------------------- /.build.msavin:jetsetter/package.js: -------------------------------------------------------------------------------- 1 | // This file is included for compatibility with the Meteor 0.6.4 package downloader. 2 | -------------------------------------------------------------------------------- /.build.msavin:jetsetter/unipackage.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "msavin:jetsetter", 3 | "summary": "Get/Set Tool for Meteor Sessions", 4 | "version": "0.1.0+c903a299010facca641ed023ab2556716a0d0f4a", 5 | "earliestCompatibleVersion": "0.0.0", 6 | "isTest": false, 7 | "plugins": [], 8 | "debugOnly": true, 9 | "unibuilds": [ 10 | { 11 | "arch": "os", 12 | "path": "os.json" 13 | }, 14 | { 15 | "arch": "web.browser", 16 | "path": "web.browser.json" 17 | }, 18 | { 19 | "arch": "web.cordova", 20 | "path": "web.cordova.json" 21 | } 22 | ], 23 | "format": "unipackage-pre2" 24 | } -------------------------------------------------------------------------------- /.build.msavin:jetsetter/web.browser.json: -------------------------------------------------------------------------------- 1 | { 2 | "format": "unipackage-unibuild-pre1", 3 | "packageVariables": [], 4 | "uses": [ 5 | { 6 | "package": "meteor" 7 | }, 8 | { 9 | "package": "templating", 10 | "constraint": "1.0.9" 11 | }, 12 | { 13 | "package": "tracker", 14 | "constraint": "1.0.3" 15 | }, 16 | { 17 | "package": "session", 18 | "constraint": "1.0.4" 19 | } 20 | ], 21 | "resources": [ 22 | { 23 | "type": "css", 24 | "file": "web.browser/packages/msavin:jetsetter/jetsetter.css", 25 | "length": 863, 26 | "offset": 0, 27 | "servePath": "/packages/msavin:jetsetter/jetsetter.css" 28 | }, 29 | { 30 | "type": "asset", 31 | "file": "web.browser/packages/msavin:jetsetter/Liberation.ttf", 32 | "length": 61144, 33 | "offset": 0, 34 | "servePath": "/packages/msavin:jetsetter/Liberation.ttf", 35 | "path": "Liberation.ttf" 36 | }, 37 | { 38 | "type": "prelink", 39 | "file": "web.browser/packages/msavin:jetsetter.js", 40 | "length": 21441, 41 | "offset": 0, 42 | "servePath": "/packages/msavin:jetsetter.js", 43 | "sourceMap": "web.browser/packages/msavin:jetsetter.js.map" 44 | } 45 | ] 46 | } -------------------------------------------------------------------------------- /.build.msavin:jetsetter/web.browser/packages/msavin:jetsetter.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 3 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // // 5 | // packages/msavin:jetsetter/template.jetsetter.js // 6 | // // 7 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 8 | // 9 | // 1 10 | Template.body.addContent((function() { // 2 11 | var view = this; // 3 12 | return Blaze.If(function() { // 4 13 | return Spacebars.call(view.lookup("JetSetter_enabled")); // 5 14 | }, function() { // 6 15 | return [ "\n ", HTML.DIV({ // 7 16 | id: "JetSetter" // 8 17 | }, "\n ", Spacebars.include(view.lookupTemplate("JetSetter_header")), "\n ", Blaze.Each(function() { // 9 18 | return Spacebars.call(view.lookup("SessionItems")); // 10 19 | }, function() { // 11 20 | return [ "\n ", HTML.DIV({ // 12 21 | "class": "JetSetter_row" // 13 22 | }, "\n ", HTML.SPAN(Blaze.View(function() { // 14 23 | return Spacebars.mustache(view.lookup(".")); // 15 24 | })), ":\n ", Blaze.View(function() { // 16 25 | return Spacebars.makeRaw(Spacebars.mustache(view.lookup("value"))); // 17 26 | }), "\n "), "\n " ]; // 18 27 | }, function() { // 19 28 | return [ "\n ", Spacebars.include(view.lookupTemplate("JetSetter_empty")), "\n " ]; // 20 29 | }), "\n "), "\n " ]; // 21 30 | }); // 22 31 | })); // 23 32 | Meteor.startup(Template.body.renderToDocument); // 24 33 | // 25 34 | Template.__checkName("JetSetter_empty"); // 26 35 | Template["JetSetter_empty"] = new Template("Template.JetSetter_empty", (function() { // 27 36 | var view = this; // 28 37 | return HTML.Raw('
\n None Found\n
'); // 29 38 | })); // 30 39 | // 31 40 | Template.__checkName("JetSetter_header"); // 32 41 | Template["JetSetter_header"] = new Template("Template.JetSetter_header", (function() { // 33 42 | var view = this; // 34 43 | return HTML.Raw('
\n JetSetter\n
'); 44 | })); // 36 45 | // 37 46 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 47 | 48 | }).call(this); 49 | 50 | 51 | 52 | 53 | 54 | 55 | (function () { 56 | 57 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 58 | // // 59 | // packages/msavin:jetsetter/jetsetter.js // 60 | // // 61 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 62 | // 63 | if (Meteor.isClient) { // 1 64 | // 2 65 | var JetSetter = { // 3 66 | "getKeys": function () { // 4 67 | var JetSetter_Keys = Object.getOwnPropertyNames(Session.keys); // 5 68 | Session.set("JetSetter", JetSetter_Keys); // 6 69 | } // 7 70 | } // 8 71 | // 9 72 | // 10 73 | if (!Object.observe) { // 11 74 | // 12 75 | setInterval(function(){ // 13 76 | JetSetter.getKeys() // 14 77 | // MongolPackage.setSubscriptionKeys(); // 15 78 | }, 3000); // 16 79 | // 17 80 | } else { // 18 81 | // 19 82 | Object.observe(Session.keys, function() { // 20 83 | JetSetter.getKeys() // 21 84 | // MongolPackage.setSubscriptionKeys(); // 22 85 | }); // 23 86 | // 24 87 | } // 25 88 | // 26 89 | // 27 90 | var SessionChecker = { // 28 91 | null: function (value) { // 29 92 | if (value === null) { // 30 93 | return true; // 31 94 | } // 32 95 | }, // 33 96 | boolean: function (value) { // 34 97 | if (typeof value === "boolean") { // 35 98 | return true; // 36 99 | } // 37 100 | }, // 38 101 | array: function(value) { // 39 102 | if ($.isArray(value)) { // 40 103 | return true; // 41 104 | } // 42 105 | }, // 43 106 | number: function (value) { // 44 107 | if (typeof value === "number") { // 45 108 | return true; // 46 109 | } // 47 110 | }, // 48 111 | string: function (value) { // 49 112 | if (typeof value === "string") { // 50 113 | return true; // 51 114 | } // 52 115 | } // 53 116 | } // 54 117 | // 55 118 | Template.body.helpers({ // 56 119 | JetSetter_enabled: function () { // 57 120 | // 58 121 | if (Package['msavin:mongol']) { // 59 122 | return Session.get("Mongol_settings_display"); // 60 123 | } else { // 61 124 | return true; // 62 125 | } // 63 126 | }, // 64 127 | SessionItems: function () { // 65 128 | // Hide the JetSetter session // 66 129 | var array = Session.get("JetSetter"); // 67 130 | // 68 131 | var i = array.indexOf("JetSetter"); // 69 132 | if (i != -1) { // 70 133 | array.splice(i, 1) // 71 134 | } // 72 135 | // 73 136 | // Return just the developers sessions // 74 137 | return array; // 75 138 | }, // 76 139 | value: function () { // 77 140 | // 78 141 | var value = Session.get(this); // 79 142 | // 80 143 | switch (true) { // 81 144 | case SessionChecker.null(value): // 82 145 | return 'null'; // 83 146 | break; // 84 147 | case SessionChecker.boolean(value): // 85 148 | return '' + value + ''; // 86 149 | break; // 87 150 | case SessionChecker.number(value): // 88 151 | return value; // 89 152 | break; // 90 153 | case SessionChecker.string(value): // 91 154 | return '"' + value + '"'; // 92 155 | break; // 93 156 | case SessionChecker.array(value): // 94 157 | return "[" + value + "]"; // 95 158 | break; // 96 159 | default: // 97 160 | return "Object"; // 98 161 | break; // 99 162 | } // 100 163 | // 101 164 | } // 102 165 | }); // 103 166 | // 104 167 | Template.body.events({ // 105 168 | 'click .JetSetter_row': function () { // 106 169 | // 107 170 | // var value = prompt("What would you like to change the value of this Session variable to?"); // 108 171 | // 109 172 | // if (value === "" || value === null || value === undefined) { // 110 173 | // console.log("JetSetter: Prompt entry cannot be empty. To set null value, enter null."); // 111 174 | // } else { // 112 175 | // 113 176 | // switch (value) { // 114 177 | // case "false": // 115 178 | // Session.set(this, false); // 116 179 | // break; // 117 180 | // case "true": // 118 181 | // Session.set(this, true); // 119 182 | // break; // 120 183 | // case "null": // 121 184 | // Session.set(this, null); // 122 185 | // value = "null"; // 123 186 | // break; // 124 187 | // default: // 125 188 | // Session.set(this, value); // 126 189 | // break; // 127 190 | // } // 128 191 | // } // 129 192 | console.log(Session.get(this)) // 130 193 | // 131 194 | } // 132 195 | }); // 133 196 | // 134 197 | } // 135 198 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 199 | 200 | }).call(this); 201 | -------------------------------------------------------------------------------- /.build.msavin:jetsetter/web.browser/packages/msavin:jetsetter.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"/packages/msavin:jetsetter.js","sources":["msavin:jetsetter/jetsetter.html","msavin:jetsetter/jetsetter.js"],"names":[],"mappings":";;;;;;;;;AACA,sC;AACA,kB;AACA,8B;AACA,4D;AACA,iB;AACA,+B;AACA,qB;AACA,4G;AACA,yD;AACA,mB;AACA,mC;AACA,gC;AACA,qD;AACA,oD;AACA,8C;AACA,2E;AACA,+B;AACA,mB;AACA,8F;AACA,yB;AACA,K;AACA,I;AACA,+C;;AAEA,wC;AACA,oF;AACA,kB;AACA,2F;AACA,I;;AAEA,yC;AACA,sF;AACA,kB;AACA,uH;AACA,I;;;;;;;;;;;;;;;;;;;ACnCA,sB;AACA,I;AACA,qB;AACA,gC;AACA,0E;AACA,qD;AACA,S;AACA,K;;;AAGA,0B;;AAEA,+B;AACA,+B;AACA,oD;AACA,iB;;AAEA,Y;AACA,M;AACA,iD;AACA,+B;AACA,qD;AACA,W;;AAEA,K;;AAEA,I;AACA,0B;AACA,gC;AACA,iC;AACA,4B;AACA,a;AACA,U;AACA,mC;AACA,6C;AACA,4B;AACA,a;AACA,U;AACA,gC;AACA,mC;AACA,4B;AACA,a;AACA,U;AACA,kC;AACA,4C;AACA,4B;AACA,a;AACA,U;AACA,kC;AACA,4C;AACA,4B;AACA,e;AACA,S;AACA,K;;AAEA,2B;AACA,wC;;AAEA,2C;AACA,8D;AACA,oB;AACA,4B;AACA,a;AACA,U;AACA,mC;AACA,yC;AACA,iD;;AAEA,+C;AACA,0B;AACA,kC;AACA,a;;AAEA,kD;AACA,yB;AACA,U;AACA,4B;AACA,Y;AACA,0C;;AAEA,2B;AACA,gD;AACA,yC;AACA,0B;AACA,mD;AACA,kD;AACA,0B;AACA,kD;AACA,iC;AACA,0B;AACA,kD;AACA,6C;AACA,0B;AACA,iD;AACA,6C;AACA,0B;AACA,wB;AACA,2C;AACA,0B;AACA,a;;AAEA,S;AACA,O;;AAEA,0B;AACA,6C;AACA,Y;AACA,0G;AACA,Y;AACA,4E;AACA,0G;AACA,uB;;AAEA,mC;AACA,oC;AACA,oD;AACA,iC;AACA,mC;AACA,mD;AACA,iC;AACA,mC;AACA,mD;AACA,0C;AACA,iC;AACA,+B;AACA,oD;AACA,iC;AACA,oB;AACA,gB;AACA,0C;AACA,gB;AACA,S;AACA,O;;AAEA,C","sourcesContent":["\nTemplate.body.addContent((function() {\n var view = this;\n return Blaze.If(function() {\n return Spacebars.call(view.lookup(\"JetSetter_enabled\"));\n }, function() {\n return [ \"\\n\t\t\", HTML.DIV({\n id: \"JetSetter\"\n }, \"\\n\t\t\t\", Spacebars.include(view.lookupTemplate(\"JetSetter_header\")), \"\\n\t\t\t\", Blaze.Each(function() {\n return Spacebars.call(view.lookup(\"SessionItems\"));\n }, function() {\n return [ \"\\n\t\t\t\t\", HTML.DIV({\n \"class\": \"JetSetter_row\"\n }, \"\\n\t\t\t\t\t\", HTML.SPAN(Blaze.View(function() {\n return Spacebars.mustache(view.lookup(\".\"));\n })), \":\\n\t\t\t\t\t\", Blaze.View(function() {\n return Spacebars.makeRaw(Spacebars.mustache(view.lookup(\"value\")));\n }), \"\\n\t\t\t\t\"), \"\\n\t\t\t\" ];\n }, function() {\n return [ \"\\n\t\t\t\t\", Spacebars.include(view.lookupTemplate(\"JetSetter_empty\")), \"\\n\t\t\t\" ];\n }), \"\\n\t\t\"), \"\\n\t\" ];\n });\n}));\nMeteor.startup(Template.body.renderToDocument);\n\nTemplate.__checkName(\"JetSetter_empty\");\nTemplate[\"JetSetter_empty\"] = new Template(\"Template.JetSetter_empty\", (function() {\n var view = this;\n return HTML.Raw('
\\n\t\tNone Found\\n\t
');\n}));\n\nTemplate.__checkName(\"JetSetter_header\");\nTemplate[\"JetSetter_header\"] = new Template(\"Template.JetSetter_header\", (function() {\n var view = this;\n return HTML.Raw('
\\n\t\tJetSetter\\n\t
');\n}));\n","if (Meteor.isClient) {\n \n var JetSetter = {\n \"getKeys\": function () {\n var JetSetter_Keys = Object.getOwnPropertyNames(Session.keys);\n Session.set(\"JetSetter\", JetSetter_Keys);\n }\n }\n\n\n if (!Object.observe) {\n\n setInterval(function(){\n JetSetter.getKeys()\n // MongolPackage.setSubscriptionKeys(); \n }, 3000);\n\n } else {\n \n Object.observe(Session.keys, function() {\n JetSetter.getKeys()\n // MongolPackage.setSubscriptionKeys(); \n });\n\n }\n\n \n var SessionChecker = {\n null: function (value) {\n if (value === null) {\n return true;\n }\n },\n boolean: function (value) {\n if (typeof value === \"boolean\") {\n return true;\n }\n },\n array: function(value) {\n if ($.isArray(value)) {\n return true;\n }\n },\n number: function (value) {\n if (typeof value === \"number\") {\n return true;\n }\n },\n string: function (value) {\n if (typeof value === \"string\") {\n return true;\n } \n }\n }\n\n Template.body.helpers({\n JetSetter_enabled: function () {\n\n if (Package['msavin:mongol']) {\n return Session.get(\"Mongol_settings_display\");\n } else {\n return true;\n }\n },\n SessionItems: function () {\n // Hide the JetSetter session\n var array = Session.get(\"JetSetter\");\n\n var i = array.indexOf(\"JetSetter\");\n if (i != -1) {\n array.splice(i, 1)\n }\n\n // Return just the developers sessions\n return array;\n },\n value: function () {\n \n var value = Session.get(this);\n\n switch (true) {\n case SessionChecker.null(value):\n return 'null';\n break;\n case SessionChecker.boolean(value):\n return '' + value + '';\n break;\n case SessionChecker.number(value):\n return value;\n break;\n case SessionChecker.string(value):\n return '\"' + value + '\"';\n break;\n case SessionChecker.array(value):\n return \"[\" + value + \"]\";\n break;\n default:\n return \"Object\";\n break;\n }\n\n }\n });\n\n Template.body.events({\n 'click .JetSetter_row': function () {\n \n // var value = prompt(\"What would you like to change the value of this Session variable to?\");\n \n // if (value === \"\" || value === null || value === undefined) {\n // console.log(\"JetSetter: Prompt entry cannot be empty. To set null value, enter null.\");\n // } else {\n\n // switch (value) {\n // case \"false\":\n // Session.set(this, false);\n // break;\n // case \"true\":\n // Session.set(this, true);\n // break;\n // case \"null\":\n // Session.set(this, null);\n // value = \"null\";\n // break;\n // default:\n // Session.set(this, value);\n // break;\n // }\n // }\n console.log(Session.get(this))\n \n }\n });\n\n}"]} -------------------------------------------------------------------------------- /.build.msavin:jetsetter/web.browser/packages/msavin:jetsetter/Liberation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msavin/JetSetter/07054a56c31d3297baf495e54c272d413a1fc6ca/.build.msavin:jetsetter/web.browser/packages/msavin:jetsetter/Liberation.ttf -------------------------------------------------------------------------------- /.build.msavin:jetsetter/web.browser/packages/msavin:jetsetter/jetsetter.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: Liberation Mono; 3 | src: url('./Liberation.ttf'); 4 | } 5 | 6 | #JetSetter { 7 | position: fixed; 8 | right: 0; 9 | bottom: 0; 10 | padding: 0px; 11 | background-color: rgba(53,53,53,.92); 12 | color: #fff; 13 | font-family: Liberation Mono, monospace; 14 | z-index: 9999999999; 15 | font-size: 14px; 16 | line-height: 28px; 17 | overflow: hidden; 18 | } 19 | 20 | #JetSetter:hover { 21 | max-width: auto; 22 | } 23 | 24 | .JetSetter_row, .JetSetter_row_empty { 25 | margin-bottom: 1px; 26 | padding: 0 8px; 27 | overflow: hidden; 28 | text-overflow: ellipsis; 29 | background: rgba(0,0,0,.2); 30 | white-space: nowrap; 31 | max-width: 136px; 32 | transition: .3s; 33 | color: rgba(255,255,255,.4); 34 | } 35 | 36 | .JetSetter_row:hover { 37 | /*background: #000;*/ 38 | /*cursor: pointer; */ 39 | } 40 | 41 | .JetSetter_row span, .JetSetter_row_empty span { 42 | color: #fff; 43 | } 44 | 45 | #JetSetter:hover .JetSetter_row { 46 | max-width: 1000px; 47 | color: rgba(255,255,255,.6); 48 | } -------------------------------------------------------------------------------- /.build.msavin:jetsetter/web.cordova.json: -------------------------------------------------------------------------------- 1 | { 2 | "format": "unipackage-unibuild-pre1", 3 | "packageVariables": [], 4 | "uses": [ 5 | { 6 | "package": "meteor" 7 | }, 8 | { 9 | "package": "templating", 10 | "constraint": "1.0.9" 11 | }, 12 | { 13 | "package": "tracker", 14 | "constraint": "1.0.3" 15 | }, 16 | { 17 | "package": "session", 18 | "constraint": "1.0.4" 19 | } 20 | ], 21 | "resources": [ 22 | { 23 | "type": "css", 24 | "file": "web.cordova/packages/msavin:jetsetter/jetsetter.css", 25 | "length": 863, 26 | "offset": 0, 27 | "servePath": "/packages/msavin:jetsetter/jetsetter.css" 28 | }, 29 | { 30 | "type": "asset", 31 | "file": "web.cordova/packages/msavin:jetsetter/Liberation.ttf", 32 | "length": 61144, 33 | "offset": 0, 34 | "servePath": "/packages/msavin:jetsetter/Liberation.ttf", 35 | "path": "Liberation.ttf" 36 | }, 37 | { 38 | "type": "prelink", 39 | "file": "web.cordova/packages/msavin:jetsetter.js", 40 | "length": 21441, 41 | "offset": 0, 42 | "servePath": "/packages/msavin:jetsetter.js", 43 | "sourceMap": "web.cordova/packages/msavin:jetsetter.js.map" 44 | } 45 | ] 46 | } -------------------------------------------------------------------------------- /.build.msavin:jetsetter/web.cordova/packages/msavin:jetsetter.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 3 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // // 5 | // packages/msavin:jetsetter/template.jetsetter.js // 6 | // // 7 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 8 | // 9 | // 1 10 | Template.body.addContent((function() { // 2 11 | var view = this; // 3 12 | return Blaze.If(function() { // 4 13 | return Spacebars.call(view.lookup("JetSetter_enabled")); // 5 14 | }, function() { // 6 15 | return [ "\n ", HTML.DIV({ // 7 16 | id: "JetSetter" // 8 17 | }, "\n ", Spacebars.include(view.lookupTemplate("JetSetter_header")), "\n ", Blaze.Each(function() { // 9 18 | return Spacebars.call(view.lookup("SessionItems")); // 10 19 | }, function() { // 11 20 | return [ "\n ", HTML.DIV({ // 12 21 | "class": "JetSetter_row" // 13 22 | }, "\n ", HTML.SPAN(Blaze.View(function() { // 14 23 | return Spacebars.mustache(view.lookup(".")); // 15 24 | })), ":\n ", Blaze.View(function() { // 16 25 | return Spacebars.makeRaw(Spacebars.mustache(view.lookup("value"))); // 17 26 | }), "\n "), "\n " ]; // 18 27 | }, function() { // 19 28 | return [ "\n ", Spacebars.include(view.lookupTemplate("JetSetter_empty")), "\n " ]; // 20 29 | }), "\n "), "\n " ]; // 21 30 | }); // 22 31 | })); // 23 32 | Meteor.startup(Template.body.renderToDocument); // 24 33 | // 25 34 | Template.__checkName("JetSetter_empty"); // 26 35 | Template["JetSetter_empty"] = new Template("Template.JetSetter_empty", (function() { // 27 36 | var view = this; // 28 37 | return HTML.Raw('
\n None Found\n
'); // 29 38 | })); // 30 39 | // 31 40 | Template.__checkName("JetSetter_header"); // 32 41 | Template["JetSetter_header"] = new Template("Template.JetSetter_header", (function() { // 33 42 | var view = this; // 34 43 | return HTML.Raw('
\n JetSetter\n
'); 44 | })); // 36 45 | // 37 46 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 47 | 48 | }).call(this); 49 | 50 | 51 | 52 | 53 | 54 | 55 | (function () { 56 | 57 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 58 | // // 59 | // packages/msavin:jetsetter/jetsetter.js // 60 | // // 61 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 62 | // 63 | if (Meteor.isClient) { // 1 64 | // 2 65 | var JetSetter = { // 3 66 | "getKeys": function () { // 4 67 | var JetSetter_Keys = Object.getOwnPropertyNames(Session.keys); // 5 68 | Session.set("JetSetter", JetSetter_Keys); // 6 69 | } // 7 70 | } // 8 71 | // 9 72 | // 10 73 | if (!Object.observe) { // 11 74 | // 12 75 | setInterval(function(){ // 13 76 | JetSetter.getKeys() // 14 77 | // MongolPackage.setSubscriptionKeys(); // 15 78 | }, 3000); // 16 79 | // 17 80 | } else { // 18 81 | // 19 82 | Object.observe(Session.keys, function() { // 20 83 | JetSetter.getKeys() // 21 84 | // MongolPackage.setSubscriptionKeys(); // 22 85 | }); // 23 86 | // 24 87 | } // 25 88 | // 26 89 | // 27 90 | var SessionChecker = { // 28 91 | null: function (value) { // 29 92 | if (value === null) { // 30 93 | return true; // 31 94 | } // 32 95 | }, // 33 96 | boolean: function (value) { // 34 97 | if (typeof value === "boolean") { // 35 98 | return true; // 36 99 | } // 37 100 | }, // 38 101 | array: function(value) { // 39 102 | if ($.isArray(value)) { // 40 103 | return true; // 41 104 | } // 42 105 | }, // 43 106 | number: function (value) { // 44 107 | if (typeof value === "number") { // 45 108 | return true; // 46 109 | } // 47 110 | }, // 48 111 | string: function (value) { // 49 112 | if (typeof value === "string") { // 50 113 | return true; // 51 114 | } // 52 115 | } // 53 116 | } // 54 117 | // 55 118 | Template.body.helpers({ // 56 119 | JetSetter_enabled: function () { // 57 120 | // 58 121 | if (Package['msavin:mongol']) { // 59 122 | return Session.get("Mongol_settings_display"); // 60 123 | } else { // 61 124 | return true; // 62 125 | } // 63 126 | }, // 64 127 | SessionItems: function () { // 65 128 | // Hide the JetSetter session // 66 129 | var array = Session.get("JetSetter"); // 67 130 | // 68 131 | var i = array.indexOf("JetSetter"); // 69 132 | if (i != -1) { // 70 133 | array.splice(i, 1) // 71 134 | } // 72 135 | // 73 136 | // Return just the developers sessions // 74 137 | return array; // 75 138 | }, // 76 139 | value: function () { // 77 140 | // 78 141 | var value = Session.get(this); // 79 142 | // 80 143 | switch (true) { // 81 144 | case SessionChecker.null(value): // 82 145 | return 'null'; // 83 146 | break; // 84 147 | case SessionChecker.boolean(value): // 85 148 | return '' + value + ''; // 86 149 | break; // 87 150 | case SessionChecker.number(value): // 88 151 | return value; // 89 152 | break; // 90 153 | case SessionChecker.string(value): // 91 154 | return '"' + value + '"'; // 92 155 | break; // 93 156 | case SessionChecker.array(value): // 94 157 | return "[" + value + "]"; // 95 158 | break; // 96 159 | default: // 97 160 | return "Object"; // 98 161 | break; // 99 162 | } // 100 163 | // 101 164 | } // 102 165 | }); // 103 166 | // 104 167 | Template.body.events({ // 105 168 | 'click .JetSetter_row': function () { // 106 169 | // 107 170 | // var value = prompt("What would you like to change the value of this Session variable to?"); // 108 171 | // 109 172 | // if (value === "" || value === null || value === undefined) { // 110 173 | // console.log("JetSetter: Prompt entry cannot be empty. To set null value, enter null."); // 111 174 | // } else { // 112 175 | // 113 176 | // switch (value) { // 114 177 | // case "false": // 115 178 | // Session.set(this, false); // 116 179 | // break; // 117 180 | // case "true": // 118 181 | // Session.set(this, true); // 119 182 | // break; // 120 183 | // case "null": // 121 184 | // Session.set(this, null); // 122 185 | // value = "null"; // 123 186 | // break; // 124 187 | // default: // 125 188 | // Session.set(this, value); // 126 189 | // break; // 127 190 | // } // 128 191 | // } // 129 192 | console.log(Session.get(this)) // 130 193 | // 131 194 | } // 132 195 | }); // 133 196 | // 134 197 | } // 135 198 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 199 | 200 | }).call(this); 201 | -------------------------------------------------------------------------------- /.build.msavin:jetsetter/web.cordova/packages/msavin:jetsetter.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"/packages/msavin:jetsetter.js","sources":["msavin:jetsetter/jetsetter.html","msavin:jetsetter/jetsetter.js"],"names":[],"mappings":";;;;;;;;;AACA,sC;AACA,kB;AACA,8B;AACA,4D;AACA,iB;AACA,+B;AACA,qB;AACA,4G;AACA,yD;AACA,mB;AACA,mC;AACA,gC;AACA,qD;AACA,oD;AACA,8C;AACA,2E;AACA,+B;AACA,mB;AACA,8F;AACA,yB;AACA,K;AACA,I;AACA,+C;;AAEA,wC;AACA,oF;AACA,kB;AACA,2F;AACA,I;;AAEA,yC;AACA,sF;AACA,kB;AACA,uH;AACA,I;;;;;;;;;;;;;;;;;;;ACnCA,sB;AACA,I;AACA,qB;AACA,gC;AACA,0E;AACA,qD;AACA,S;AACA,K;;;AAGA,0B;;AAEA,+B;AACA,+B;AACA,oD;AACA,iB;;AAEA,Y;AACA,M;AACA,iD;AACA,+B;AACA,qD;AACA,W;;AAEA,K;;AAEA,I;AACA,0B;AACA,gC;AACA,iC;AACA,4B;AACA,a;AACA,U;AACA,mC;AACA,6C;AACA,4B;AACA,a;AACA,U;AACA,gC;AACA,mC;AACA,4B;AACA,a;AACA,U;AACA,kC;AACA,4C;AACA,4B;AACA,a;AACA,U;AACA,kC;AACA,4C;AACA,4B;AACA,e;AACA,S;AACA,K;;AAEA,2B;AACA,wC;;AAEA,2C;AACA,8D;AACA,oB;AACA,4B;AACA,a;AACA,U;AACA,mC;AACA,yC;AACA,iD;;AAEA,+C;AACA,0B;AACA,kC;AACA,a;;AAEA,kD;AACA,yB;AACA,U;AACA,4B;AACA,Y;AACA,0C;;AAEA,2B;AACA,gD;AACA,yC;AACA,0B;AACA,mD;AACA,kD;AACA,0B;AACA,kD;AACA,iC;AACA,0B;AACA,kD;AACA,6C;AACA,0B;AACA,iD;AACA,6C;AACA,0B;AACA,wB;AACA,2C;AACA,0B;AACA,a;;AAEA,S;AACA,O;;AAEA,0B;AACA,6C;AACA,Y;AACA,0G;AACA,Y;AACA,4E;AACA,0G;AACA,uB;;AAEA,mC;AACA,oC;AACA,oD;AACA,iC;AACA,mC;AACA,mD;AACA,iC;AACA,mC;AACA,mD;AACA,0C;AACA,iC;AACA,+B;AACA,oD;AACA,iC;AACA,oB;AACA,gB;AACA,0C;AACA,gB;AACA,S;AACA,O;;AAEA,C","sourcesContent":["\nTemplate.body.addContent((function() {\n var view = this;\n return Blaze.If(function() {\n return Spacebars.call(view.lookup(\"JetSetter_enabled\"));\n }, function() {\n return [ \"\\n\t\t\", HTML.DIV({\n id: \"JetSetter\"\n }, \"\\n\t\t\t\", Spacebars.include(view.lookupTemplate(\"JetSetter_header\")), \"\\n\t\t\t\", Blaze.Each(function() {\n return Spacebars.call(view.lookup(\"SessionItems\"));\n }, function() {\n return [ \"\\n\t\t\t\t\", HTML.DIV({\n \"class\": \"JetSetter_row\"\n }, \"\\n\t\t\t\t\t\", HTML.SPAN(Blaze.View(function() {\n return Spacebars.mustache(view.lookup(\".\"));\n })), \":\\n\t\t\t\t\t\", Blaze.View(function() {\n return Spacebars.makeRaw(Spacebars.mustache(view.lookup(\"value\")));\n }), \"\\n\t\t\t\t\"), \"\\n\t\t\t\" ];\n }, function() {\n return [ \"\\n\t\t\t\t\", Spacebars.include(view.lookupTemplate(\"JetSetter_empty\")), \"\\n\t\t\t\" ];\n }), \"\\n\t\t\"), \"\\n\t\" ];\n });\n}));\nMeteor.startup(Template.body.renderToDocument);\n\nTemplate.__checkName(\"JetSetter_empty\");\nTemplate[\"JetSetter_empty\"] = new Template(\"Template.JetSetter_empty\", (function() {\n var view = this;\n return HTML.Raw('
\\n\t\tNone Found\\n\t
');\n}));\n\nTemplate.__checkName(\"JetSetter_header\");\nTemplate[\"JetSetter_header\"] = new Template(\"Template.JetSetter_header\", (function() {\n var view = this;\n return HTML.Raw('
\\n\t\tJetSetter\\n\t
');\n}));\n","if (Meteor.isClient) {\n \n var JetSetter = {\n \"getKeys\": function () {\n var JetSetter_Keys = Object.getOwnPropertyNames(Session.keys);\n Session.set(\"JetSetter\", JetSetter_Keys);\n }\n }\n\n\n if (!Object.observe) {\n\n setInterval(function(){\n JetSetter.getKeys()\n // MongolPackage.setSubscriptionKeys(); \n }, 3000);\n\n } else {\n \n Object.observe(Session.keys, function() {\n JetSetter.getKeys()\n // MongolPackage.setSubscriptionKeys(); \n });\n\n }\n\n \n var SessionChecker = {\n null: function (value) {\n if (value === null) {\n return true;\n }\n },\n boolean: function (value) {\n if (typeof value === \"boolean\") {\n return true;\n }\n },\n array: function(value) {\n if ($.isArray(value)) {\n return true;\n }\n },\n number: function (value) {\n if (typeof value === \"number\") {\n return true;\n }\n },\n string: function (value) {\n if (typeof value === \"string\") {\n return true;\n } \n }\n }\n\n Template.body.helpers({\n JetSetter_enabled: function () {\n\n if (Package['msavin:mongol']) {\n return Session.get(\"Mongol_settings_display\");\n } else {\n return true;\n }\n },\n SessionItems: function () {\n // Hide the JetSetter session\n var array = Session.get(\"JetSetter\");\n\n var i = array.indexOf(\"JetSetter\");\n if (i != -1) {\n array.splice(i, 1)\n }\n\n // Return just the developers sessions\n return array;\n },\n value: function () {\n \n var value = Session.get(this);\n\n switch (true) {\n case SessionChecker.null(value):\n return 'null';\n break;\n case SessionChecker.boolean(value):\n return '' + value + '';\n break;\n case SessionChecker.number(value):\n return value;\n break;\n case SessionChecker.string(value):\n return '\"' + value + '\"';\n break;\n case SessionChecker.array(value):\n return \"[\" + value + \"]\";\n break;\n default:\n return \"Object\";\n break;\n }\n\n }\n });\n\n Template.body.events({\n 'click .JetSetter_row': function () {\n \n // var value = prompt(\"What would you like to change the value of this Session variable to?\");\n \n // if (value === \"\" || value === null || value === undefined) {\n // console.log(\"JetSetter: Prompt entry cannot be empty. To set null value, enter null.\");\n // } else {\n\n // switch (value) {\n // case \"false\":\n // Session.set(this, false);\n // break;\n // case \"true\":\n // Session.set(this, true);\n // break;\n // case \"null\":\n // Session.set(this, null);\n // value = \"null\";\n // break;\n // default:\n // Session.set(this, value);\n // break;\n // }\n // }\n console.log(Session.get(this))\n \n }\n });\n\n}"]} -------------------------------------------------------------------------------- /.build.msavin:jetsetter/web.cordova/packages/msavin:jetsetter/Liberation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msavin/JetSetter/07054a56c31d3297baf495e54c272d413a1fc6ca/.build.msavin:jetsetter/web.cordova/packages/msavin:jetsetter/Liberation.ttf -------------------------------------------------------------------------------- /.build.msavin:jetsetter/web.cordova/packages/msavin:jetsetter/jetsetter.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: Liberation Mono; 3 | src: url('./Liberation.ttf'); 4 | } 5 | 6 | #JetSetter { 7 | position: fixed; 8 | right: 0; 9 | bottom: 0; 10 | padding: 0px; 11 | background-color: rgba(53,53,53,.92); 12 | color: #fff; 13 | font-family: Liberation Mono, monospace; 14 | z-index: 9999999999; 15 | font-size: 14px; 16 | line-height: 28px; 17 | overflow: hidden; 18 | } 19 | 20 | #JetSetter:hover { 21 | max-width: auto; 22 | } 23 | 24 | .JetSetter_row, .JetSetter_row_empty { 25 | margin-bottom: 1px; 26 | padding: 0 8px; 27 | overflow: hidden; 28 | text-overflow: ellipsis; 29 | background: rgba(0,0,0,.2); 30 | white-space: nowrap; 31 | max-width: 136px; 32 | transition: .3s; 33 | color: rgba(255,255,255,.4); 34 | } 35 | 36 | .JetSetter_row:hover { 37 | /*background: #000;*/ 38 | /*cursor: pointer; */ 39 | } 40 | 41 | .JetSetter_row span, .JetSetter_row_empty span { 42 | color: #fff; 43 | } 44 | 45 | #JetSetter:hover .JetSetter_row { 46 | max-width: 1000px; 47 | color: rgba(255,255,255,.6); 48 | } -------------------------------------------------------------------------------- /.meteor/.finished-upgraders: -------------------------------------------------------------------------------- 1 | # This file contains information which helps Meteor properly upgrade your 2 | # app when you run 'meteor update'. You should check it into version control 3 | # with your project. 4 | 5 | notices-for-0.9.0 6 | notices-for-0.9.1 7 | 0.9.4-platform-file 8 | -------------------------------------------------------------------------------- /.meteor/.gitignore: -------------------------------------------------------------------------------- 1 | local 2 | -------------------------------------------------------------------------------- /.meteor/.id: -------------------------------------------------------------------------------- 1 | # This file contains a token that is unique to your project. 2 | # Check it into your repository along with the rest of this directory. 3 | # It can be used for purposes such as: 4 | # - ensuring you don't accidentally deploy one app on top of another 5 | # - providing package authors with aggregated statistics 6 | 7 | 34ph5m1cd47lg8kb51d 8 | -------------------------------------------------------------------------------- /.meteor/cordova-plugins: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.meteor/packages: -------------------------------------------------------------------------------- 1 | # Meteor packages used by this project, one per line. 2 | # 3 | # 'meteor add' and 'meteor remove' will edit this file for you, 4 | # but you can also edit it by hand. 5 | 6 | meteor-platform 7 | autopublish 8 | insecure 9 | msavin:jetsetter -------------------------------------------------------------------------------- /.meteor/platforms: -------------------------------------------------------------------------------- 1 | server 2 | browser 3 | -------------------------------------------------------------------------------- /.meteor/release: -------------------------------------------------------------------------------- 1 | METEOR@1.0 2 | -------------------------------------------------------------------------------- /.meteor/versions: -------------------------------------------------------------------------------- 1 | application-configuration@1.0.3 2 | autopublish@1.0.1 3 | autoupdate@1.1.3 4 | base64@1.0.1 5 | binary-heap@1.0.1 6 | blaze-tools@1.0.1 7 | blaze@2.0.3 8 | boilerplate-generator@1.0.1 9 | callback-hook@1.0.1 10 | check@1.0.2 11 | ctl-helper@1.0.4 12 | ctl@1.0.2 13 | ddp@1.0.11 14 | deps@1.0.5 15 | ejson@1.0.4 16 | fastclick@1.0.1 17 | follower-livedata@1.0.2 18 | geojson-utils@1.0.1 19 | html-tools@1.0.2 20 | htmljs@1.0.2 21 | http@1.0.8 22 | id-map@1.0.1 23 | insecure@1.0.1 24 | jquery@1.0.1 25 | json@1.0.1 26 | launch-screen@1.0.0 27 | livedata@1.0.11 28 | logging@1.0.5 29 | meteor-platform@1.2.0 30 | meteor@1.1.3 31 | meteortoys:toykit@0.8.1 32 | minifiers@1.1.2 33 | minimongo@1.0.5 34 | mobile-status-bar@1.0.1 35 | mongo@1.0.8 36 | msavin:jetsetter@1.0.18 37 | observe-sequence@1.0.3 38 | ordered-dict@1.0.1 39 | random@1.0.1 40 | reactive-dict@1.0.4 41 | reactive-var@1.0.3 42 | reload@1.1.1 43 | retry@1.0.1 44 | routepolicy@1.0.2 45 | session@1.0.4 46 | spacebars-compiler@1.0.3 47 | spacebars@1.0.3 48 | templating@1.0.9 49 | tracker@1.0.3 50 | ui@1.0.4 51 | underscore@1.0.1 52 | url@1.0.2 53 | webapp-hashing@1.0.1 54 | webapp@1.1.4 55 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | JetSetter 4 | ========= 5 | 6 | Meet JetSetter, the insanely handy development package for Meteor. Starting today, you'll never have to enter the console to play with your Session variables again. Instead, JetSetter lets you view and modify your Session variables in the browser. And because JetSetter is a debugOnly package, it does not compile to production code. 7 | 8 | 9 | See All Your Sessions at Once 10 | ---------------------------- 11 | JetSetter will automatically scan for all your Session variables and display them in your browser. 12 | 13 | 14 | 15 | 16 | Easily View & Modify Sessions 17 | ------------------------------ 18 | With a click, you can expand the panel to see the Session variables complete value. You're then a click away from modifying its value. 19 | 20 | 21 | 22 | Only There When You Want It 23 | --------------------------- 24 | JetSetter won't render into the DOM until you activate it. You can activate by pressing Control + M, or with `Session.set("MeteorToys_display", true)`. 25 | 26 | 27 | 28 | Plug-and-Play Installation 29 | -------------------------- 30 | 31 | JetSetter configures automatically. To get started, simply run: 32 | 33 | $ meteor add msavin:jetsetter 34 | 35 | After installation, press Control + M to toggle it.
If you'd prefer to see a demo first, go to http://jetsetter.meteor.com. 36 | 37 | JetSetter Pro 38 | ---------- 39 | JetSetter Pro is available as part of the Meteor Toys suite. The Pro version allows you to watch reactive variables and dictionaries, and includes support for inline editing. For more information, go to the Meteor Toys website. 40 | 41 | Additional Information 42 | ---------------------- 43 | - On Atmosphere 44 | - On GitHub 45 | - Licensed under MIT 46 | - Designed to work with Mongol -------------------------------------------------------------------------------- /client/_component/component.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/_component/component.js: -------------------------------------------------------------------------------- 1 | Template.JetSetter_Component.helpers({ 2 | expand: function () { 3 | 4 | var current = String(MeteorToysDict.get("JetSetter_current")); 5 | var item = "JetSetter_" + String(this.name); 6 | 7 | if (current === item) { 8 | return "JetSetter_row_expand"; 9 | } 10 | 11 | } 12 | }); 13 | 14 | Template.JetSetter_Component.events({ 15 | 'click .JetSetter_row': function () { 16 | 17 | var current = String(MeteorToysDict.get("JetSetter_current")); 18 | var target = "JetSetter_" + String(this.name); 19 | 20 | if (current === target) { 21 | MeteorToysDict.set("JetSetter_current", null); 22 | } else { 23 | MeteorToysDict.set("JetSetter_current", target); 24 | } 25 | 26 | }, 27 | 'click .JetSetter_editor': function (e, t) { 28 | e.stopPropagation(); 29 | } 30 | }); 31 | 32 | -------------------------------------------------------------------------------- /client/functions.js: -------------------------------------------------------------------------------- 1 | 2 | // Initialize Dict 3 | MeteorToysDict = Package["meteortoys:toykit"].MeteorToysDict; 4 | 5 | JetSetter = { 6 | getKeys: function () { 7 | 8 | var keys = Object.getOwnPropertyNames(Session.keys); 9 | keys = JetSetter.arrayCleaner(keys, "Meteor."); 10 | MeteorToysDict.set("JetSetter", keys); 11 | 12 | }, 13 | arrayCleaner: function(array, toRemove) { 14 | 15 | var length = toRemove.length; 16 | 17 | for (var i = 0; i < array.length; i++) { 18 | if(array[i].substr(0, length) === toRemove) { 19 | array.splice(i, 1); 20 | i--; 21 | } 22 | } 23 | 24 | return array; 25 | 26 | }, 27 | 'colorize': function (json) { 28 | 29 | // Should merge this out of here and Mongol into ToyKit 30 | 31 | // colorized the JSON objects 32 | if (typeof json != 'string') { 33 | json = JSON.stringify(json, undefined, 2); 34 | } 35 | json = json.replace(/&/g, '&').replace(//g, '>'); 36 | return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function(match) { 37 | var cls = 'Mongol_number'; 38 | if (/^"/.test(match)) { 39 | if (/:$/.test(match)) { 40 | cls = 'Mongol_key'; 41 | } else { 42 | cls = 'Mongol_string'; 43 | } 44 | } else if (/true|false/.test(match)) { 45 | cls = 'Mongol_boolean'; 46 | } else if (/null/.test(match)) { 47 | cls = 'Mongol_null'; 48 | } 49 | return '' + match + ''; 50 | }); 51 | 52 | }, 53 | } -------------------------------------------------------------------------------- /client/main.html: -------------------------------------------------------------------------------- 1 | 2 | {{> JetSetter}} 3 | 4 | 5 | -------------------------------------------------------------------------------- /client/main.js: -------------------------------------------------------------------------------- 1 | // Initialize Reactive-Dict 2 | MeteorToysDict = Package["meteortoys:toykit"].MeteorToysDict; 3 | 4 | Template.JetSetter.helpers({ 5 | expanded: function () { 6 | var current = MeteorToysDict.get("JetSetter_current"); 7 | if (current) { 8 | return "JetSetter_expand" 9 | } 10 | }, 11 | SessionItems: function () { 12 | 13 | var array = MeteorToysDict.get("JetSetter"); 14 | return array; 15 | } 16 | }); -------------------------------------------------------------------------------- /client/row_create/JetSetter_create.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/row_create/JetSetter_create.js: -------------------------------------------------------------------------------- 1 | Template.JetSetter_create.events({ 2 | 'click .JetSetter_row': function () { 3 | // Focus on input 4 | window.setTimeout(function() { 5 | $(".JetSetter_editor_title").focus(); 6 | }, 300); 7 | 8 | }, 9 | 'click .JetSetter_button_new': function () { 10 | 11 | // get values 12 | var js_key = $(".JetSetter_editor_title").val(), 13 | js_value = $(".JetSetter_editor_create").text(), 14 | js_result = "jetsetter_empty_value"; 15 | 16 | // ensure key has value 17 | if (!js_key) { 18 | alert("Please enter a Session key"); 19 | return false; 20 | } 21 | 22 | // convert string to json 23 | 24 | try { 25 | js_result = JSON.parse(js_value); 26 | } catch (error) { 27 | alert("There was an error with your input."); 28 | return false; 29 | } 30 | 31 | // run magic 32 | 33 | if (js_result === "jetsetter_empty_value") { 34 | // do nothing 35 | } else { 36 | // set session 37 | Session.set(js_key, js_result); 38 | 39 | // rerun key fetch to seem instant 40 | JetSetter.getKeys() 41 | 42 | // reset inputs 43 | $(".JetSetter_editor_title").val("") 44 | $(".JetSetter_editor_create").text("") 45 | } 46 | 47 | } 48 | }); 49 | -------------------------------------------------------------------------------- /client/row_editor/JetSetter_editor.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/row_editor/JetSetter_editor.js: -------------------------------------------------------------------------------- 1 | Template.JetSetter_editor.events({ 2 | 'click .JetSetter_button_edit': function () { 3 | MeteorToysDict.set("JetSetter_settings_edit", true) 4 | }, 5 | 'click .JetSetter_button_save': function () { 6 | 7 | // data the data 8 | var data = $("#JetSetter_editor_" + String(this)).text(); 9 | 10 | // Parse it 11 | 12 | var newObject = false; 13 | 14 | try { 15 | newObject = JSON.parse(data); 16 | } catch (error) { 17 | var newObject = "JetSetter_failed_change" 18 | // alert("There was an error with your input.") 19 | } 20 | 21 | if (newObject === "JetSetter_failed_change") { 22 | // Do nothing 23 | } else { 24 | Session.set(this, newObject) 25 | } 26 | 27 | MeteorToysDict.set("JetSetter_settings_edit", false); 28 | 29 | }, 30 | 'click .JetSetter_button_cancel': function () { 31 | MeteorToysDict.set("JetSetter_settings_edit", false) 32 | }, 33 | 'click .JetSetter_editor': function (e, t) { 34 | e.stopPropagation(); 35 | }, 36 | 'click .JetSetter_button_drop': function () { 37 | 38 | MeteorToysDict.set("JetSetter_current", null) 39 | currentSession = this; 40 | 41 | window.setTimeout(function() { 42 | delete Session.keys[currentSession]; 43 | JetSetter.getKeys(); 44 | }, 300); 45 | 46 | 47 | } 48 | }); 49 | 50 | Template.JetSetter_editor.helpers({ 51 | content: function () { 52 | var value = Session.get(this); 53 | var stringed = JSON.stringify(value, undefined, 2); 54 | return JetSetter.colorize(stringed); 55 | }, 56 | editing: function () { 57 | return MeteorToysDict.get("JetSetter_settings_edit"); 58 | } 59 | }); -------------------------------------------------------------------------------- /client/row_header/JetSetter_header.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/row_header/JetSetter_header.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msavin/JetSetter/07054a56c31d3297baf495e54c272d413a1fc6ca/client/row_header/JetSetter_header.js -------------------------------------------------------------------------------- /client/row_session/JetSetter_row.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/row_session/JetSetter_row.js: -------------------------------------------------------------------------------- 1 | 2 | Template.JetSetter_row.helpers({ 3 | value: function () { 4 | var value = Session.get(this); 5 | var stringed = JSON.stringify(value, undefined, 0); 6 | return stringed; 7 | } 8 | }); -------------------------------------------------------------------------------- /documentation/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | ==================== 3 | 4 | Copyright (c) 2014 Max Savin 5 | ---------------------------- 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | SOFTWARE. 24 | 25 | -------------------------------------------------------------------------------- /documentation/images/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msavin/JetSetter/07054a56c31d3297baf495e54c272d413a1fc6ca/documentation/images/cover.png -------------------------------------------------------------------------------- /documentation/screenshots/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msavin/JetSetter/07054a56c31d3297baf495e54c272d413a1fc6ca/documentation/screenshots/1.gif -------------------------------------------------------------------------------- /documentation/screenshots/1.mov: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msavin/JetSetter/07054a56c31d3297baf495e54c272d413a1fc6ca/documentation/screenshots/1.mov -------------------------------------------------------------------------------- /documentation/screenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msavin/JetSetter/07054a56c31d3297baf495e54c272d413a1fc6ca/documentation/screenshots/1.png -------------------------------------------------------------------------------- /documentation/screenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msavin/JetSetter/07054a56c31d3297baf495e54c272d413a1fc6ca/documentation/screenshots/2.png -------------------------------------------------------------------------------- /documentation/screenshots/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msavin/JetSetter/07054a56c31d3297baf495e54c272d413a1fc6ca/documentation/screenshots/3.png -------------------------------------------------------------------------------- /documentation/screenshots/mov2gif: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # By: Hua Liang [Stupid ET] 3 | # Website: http://EverET.org 4 | # 5 | 6 | mov_file=$1 7 | gif_file=$2 8 | 9 | ffmpeg -i $mov_file -r 10 -f image2pipe -vcodec ppm - | convert -verbose +dither -layers Optimize -resize 640x640\> - gif:- | gifsicle --colors 128 --delay=5 --loop --optimize=3 --multifile -> $gif_file -------------------------------------------------------------------------------- /package.js: -------------------------------------------------------------------------------- 1 | Package.describe({ 2 | name: 'msavin:jetsetter', 3 | summary: 'Visual Get/Set Tool for Sessions', 4 | version: '1.0.19', 5 | git: 'https://github.com/msavin/JetSetter.git', 6 | documentation: 'README.md', 7 | debugOnly: true 8 | }); 9 | 10 | Package.onUse(function(api) { 11 | 12 | var clientFiles = [ 13 | "client/main.html", 14 | "client/main.js", 15 | "client/functions.js", 16 | "client/row_create/JetSetter_create.html", 17 | "client/row_create/JetSetter_create.js", 18 | "client/row_editor/JetSetter_editor.html", 19 | "client/row_editor/JetSetter_editor.js", 20 | "client/row_header/JetSetter_header.html", 21 | "client/row_header/JetSetter_header.js", 22 | "client/row_session/JetSetter_row.html", 23 | "client/row_session/JetSetter_row.js", 24 | "client/_component/component.html", 25 | "client/_component/component.js", 26 | "style/JetSetter.css" 27 | ]; 28 | 29 | api.versionsFrom('1.0'); 30 | api.use(['templating','tracker','session'], 'client'); 31 | 32 | api.use('meteortoys:toykit@0.8.2'); 33 | api.add_files(clientFiles, "client"); 34 | 35 | if (api.export) { 36 | api.export('JetSetter', "client"); 37 | } 38 | 39 | 40 | }); -------------------------------------------------------------------------------- /style/JetSetter.css: -------------------------------------------------------------------------------- 1 | #JetSetter { 2 | right: 0; 3 | bottom: 0; 4 | overflow: auto; 5 | max-height: 100%; 6 | cursor: default; 7 | } 8 | 9 | .JetSetter_row, .JetSetter_row_empty { 10 | margin-bottom: 1px; 11 | padding: 0 7px; 12 | overflow: hidden; 13 | white-space: nowrap; 14 | max-width: 139px; 15 | min-width: 139px; 16 | height: 28px; 17 | cursor: pointer; 18 | -webkit-transition: all .3s; 19 | -moz-transition: all .3s; 20 | -ms-transition: all .3s; 21 | -o-transition: all .3s; 22 | transition: all .3s; 23 | 24 | } 25 | 26 | .JetSetter_value { 27 | -webkit-transition: all .3s; 28 | -moz-transition: all .3s; 29 | -ms-transition: all .3s; 30 | -o-transition: all .3s; 31 | transition: all .3s; 32 | } 33 | .JetSetter_row:last-child, .JetSetter_row_empty:last-child { 34 | margin-bottom: 0px; 35 | } 36 | #JetSetter:hover .JetSetter_row { 37 | max-width: 320px; 38 | } 39 | .JetSetter_expand .JetSetter_row { 40 | min-width: 320px; 41 | max-width: 320px; 42 | 43 | } 44 | .JetSetter_expand { 45 | z-index: 2147483647; 46 | 47 | } 48 | .JetSetter_row_expand .JetSetter_value { 49 | opacity: 0 !important; 50 | 51 | } 52 | .JetSetter_row_expand { 53 | height: 320px; 54 | cursor: default; 55 | } 56 | .JetSetter_row_expand .JetSetter_fader { 57 | opacity: 0 !important; 58 | } 59 | 60 | .JetSetter_editor { 61 | border-radius: 5px; 62 | height: calc(100% - 36px); 63 | box-shadow: 0 0 0 50px rgba(0,0,0,.3); 64 | overflow: hidden; 65 | width: 100%; 66 | } 67 | 68 | .JetSetter_row:hover .JetSetter_editor { 69 | box-shadow: 0 0 0 50px rgba(0,0,0,.68); 70 | } 71 | 72 | .JetSetter_row_expand .JetSetter_editor { 73 | box-shadow: 0 0 0 50px rgba(0,0,0,.68); 74 | } 75 | 76 | .JetSetter_editor_header { 77 | background: rgba(0,0,0,.3); 78 | padding-left: 8px; 79 | } 80 | 81 | .JetSetter_editor_button { 82 | float: right; 83 | padding: 0 8px; 84 | border-left: 1px solid rgba(0,0,0,.3); 85 | -webkit-transition: all .2s; 86 | -moz-transition: all .2s; 87 | -ms-transition: all .2s; 88 | -o-transition: all .2s; 89 | transition: all .2s; 90 | cursor: pointer; 91 | } 92 | .JetSetter_editor_button:hover { 93 | color: #00A8E0; 94 | } 95 | 96 | .JetSetter_editor_content { 97 | height: calc(100% - 31px); 98 | overflow: auto; 99 | padding: 0 8px; 100 | padding-top: 6px; 101 | line-height: 20px !important; 102 | word-wrap: none; 103 | outline: none; 104 | color: rgba(255,255,255,.6); 105 | -webkit-touch-callout: text; 106 | -webkit-user-select: text; 107 | -khtml-user-select: text; 108 | -moz-user-select: text; 109 | -ms-user-select: text; 110 | user-select: text; 111 | } 112 | 113 | .JetSetter_editor_content_editing span { 114 | 115 | line-height: 20px !important; 116 | color: rgba(255,255,255,.6) !important; 117 | } 118 | .JetSetter_fader { 119 | color: rgba(255,255,255,.24); 120 | -webkit-transition: all .3s; 121 | -moz-transition: all .3s; 122 | -ms-transition: all .3s; 123 | -o-transition: all .3s; 124 | transition: all .3s; 125 | } 126 | 127 | 128 | .JetSetter_value { 129 | color: rgba(255,255,255,.2) !important; 130 | text-overflow: ellipsis; 131 | -webkit-transition: all .3s; 132 | -moz-transition: all .3s; 133 | -ms-transition: all .3s; 134 | -o-transition: all .3s; 135 | transition: all .3s; 136 | } 137 | 138 | #JetSetter pre { 139 | outline: none; 140 | margin: 0; 141 | padding: 0; 142 | border: 0; 143 | font-size: 100%; 144 | font: inherit; 145 | vertical-align: baseline; 146 | display: block; 147 | list-style: none; 148 | quotes: none; 149 | content: none; 150 | background: transparent; 151 | border-collapse: collapse; 152 | border-spacing: 0; 153 | color: inherit; 154 | line-height: 20px !important; 155 | } 156 | 157 | .JetSetter_editor_title { 158 | /* 159 | Just so CSS framework form overwrites 160 | don't conflict with this one 161 | */ 162 | background: transparent !important; 163 | color: inherit !important; 164 | font-size: inherit !important; 165 | font-family: inherit !important; 166 | line-height: inherit !important; 167 | height: 28px !important; 168 | border: 0px solid transparent !important; 169 | padding: 0px !important; 170 | margin: 0px 1px !important; 171 | color: #ccc !important; 172 | text-indent: 0px !important; 173 | line-height: 20px !important; 174 | float: left !important; 175 | max-width: 80% !important; 176 | } 177 | 178 | .JetSetter_editor_title::-webkit-input-placeholder { 179 | color: rgba(255,255,255,.2) !important; 180 | } 181 | 182 | .JetSetter_editor_title:-moz-placeholder { /* Firefox 18- */ 183 | color: rgba(255,255,255,.2) !important; 184 | } 185 | 186 | .JetSetter_editor_title::-moz-placeholder { /* Firefox 19+ */ 187 | color: rgba(255,255,255,.2) !important; 188 | } 189 | 190 | .JetSetter_editor_title:-ms-input-placeholder { 191 | color: rgba(255,255,255,.2) !important; 192 | } -------------------------------------------------------------------------------- /versions.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | [ 4 | "application-configuration", 5 | "1.0.3" 6 | ], 7 | [ 8 | "base64", 9 | "1.0.1" 10 | ], 11 | [ 12 | "binary-heap", 13 | "1.0.1" 14 | ], 15 | [ 16 | "blaze", 17 | "2.0.3" 18 | ], 19 | [ 20 | "callback-hook", 21 | "1.0.1" 22 | ], 23 | [ 24 | "check", 25 | "1.0.2" 26 | ], 27 | [ 28 | "ddp", 29 | "1.0.11" 30 | ], 31 | [ 32 | "deps", 33 | "1.0.5" 34 | ], 35 | [ 36 | "ejson", 37 | "1.0.4" 38 | ], 39 | [ 40 | "follower-livedata", 41 | "1.0.2" 42 | ], 43 | [ 44 | "geojson-utils", 45 | "1.0.1" 46 | ], 47 | [ 48 | "htmljs", 49 | "1.0.2" 50 | ], 51 | [ 52 | "id-map", 53 | "1.0.1" 54 | ], 55 | [ 56 | "jquery", 57 | "1.0.1" 58 | ], 59 | [ 60 | "json", 61 | "1.0.1" 62 | ], 63 | [ 64 | "logging", 65 | "1.0.5" 66 | ], 67 | [ 68 | "meteor", 69 | "1.1.3" 70 | ], 71 | [ 72 | "meteortoys:toykit", 73 | "0.8.1" 74 | ], 75 | [ 76 | "minimongo", 77 | "1.0.5" 78 | ], 79 | [ 80 | "mongo", 81 | "1.0.8" 82 | ], 83 | [ 84 | "observe-sequence", 85 | "1.0.3" 86 | ], 87 | [ 88 | "ordered-dict", 89 | "1.0.1" 90 | ], 91 | [ 92 | "random", 93 | "1.0.1" 94 | ], 95 | [ 96 | "reactive-dict", 97 | "1.0.4" 98 | ], 99 | [ 100 | "reactive-var", 101 | "1.0.3" 102 | ], 103 | [ 104 | "retry", 105 | "1.0.1" 106 | ], 107 | [ 108 | "session", 109 | "1.0.4" 110 | ], 111 | [ 112 | "templating", 113 | "1.0.9" 114 | ], 115 | [ 116 | "tracker", 117 | "1.0.3" 118 | ], 119 | [ 120 | "underscore", 121 | "1.0.1" 122 | ] 123 | ], 124 | "pluginDependencies": [], 125 | "toolVersion": "meteor-tool@1.0.35", 126 | "format": "1.0" 127 | } --------------------------------------------------------------------------------