diff --git a/.desktop/assets/background.png b/.desktop/assets/background.png
new file mode 100644
index 0000000000000000000000000000000000000000..d325562be69eb1ba950739c166305a491ba2debe
Binary files /dev/null and b/.desktop/assets/background.png differ
diff --git a/.desktop/assets/icon.icns b/.desktop/assets/icon.icns
new file mode 100644
index 0000000000000000000000000000000000000000..50918cfd1a18eb5b26d3e29cc7d41db5ce8ac5ee
Binary files /dev/null and b/.desktop/assets/icon.icns differ
diff --git a/.desktop/assets/icon.ico b/.desktop/assets/icon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..fa225f3fd49b6e164a8b5380248e5bb936342e76
Binary files /dev/null and b/.desktop/assets/icon.ico differ
diff --git a/.desktop/assets/icon.png b/.desktop/assets/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..a330e0cdd1ee810f8a62770a008078194845bdec
Binary files /dev/null and b/.desktop/assets/icon.png differ
diff --git a/.desktop/assets/loading.gif b/.desktop/assets/loading.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0a618ea6629006514bac08263e5ffe2ac91f2b65
Binary files /dev/null and b/.desktop/assets/loading.gif differ
diff --git a/.desktop/assets/splash.png b/.desktop/assets/splash.png
new file mode 100644
index 0000000000000000000000000000000000000000..d903387d517c5e59ac2656625ed40761fad80268
Binary files /dev/null and b/.desktop/assets/splash.png differ
diff --git a/.desktop/desktop.js b/.desktop/desktop.js
new file mode 100644
index 0000000000000000000000000000000000000000..b0d052820c3751b36f89a7e870f44002651d331f
--- /dev/null
+++ b/.desktop/desktop.js
@@ -0,0 +1,106 @@
+/* eslint-disable no-unused-vars */
+import process from 'process';
+import { app, dialog } from 'electron';
+
+process.env.GOOGLE_API_KEY='AIzaSyC4jbvZam56G7f0dJzAz2N5soH46jPep8Y';
+
+/**
+ * Entry point to your native desktop code.
+ *
+ * @class
+ */
+export default class Desktop {
+    /**
+     * @param {Object} log         - Winston logger instance
+     * @param {Object} skeletonApp - reference to the skeleton app instance
+     * @param {Object} appSettings - settings.json contents
+     * @param {Object} eventsBus   - event emitter for listening or emitting events
+     *                               shared across skeleton app and every module/plugin
+     * @param {Object} modules     - references to all loaded modules
+     * @param {Object} Module      - reference to the Module class
+     * @constructor
+     */
+    constructor({ log, skeletonApp, appSettings, eventsBus, modules, Module }) {
+        /**
+         * You can delete unused var from the param destructuring.
+         * Left them here just to emphasize what is passed. Delete the eslint rule at the top
+         * when done.
+         * You can also just have a one `config` param and do `Object.assign(this, config);`
+         */
+        const desktop = new Module('desktop');
+        // Get the automatically predefined logger instance.
+        this.log = log;
+
+        // From Meteor use this by invoking Desktop.send('desktop', 'closeApp');
+        desktop.on('closeApp', () => app.quit());
+
+        // We need to handle gracefully potential problems.
+        // Lets remove the default handler and replace it with ours.
+        skeletonApp.removeUncaughtExceptionListener();
+
+        process.on('uncaughtException', Desktop.uncaughtExceptionHandler);
+
+        // Chrome problems should also be handled. The `windowCreated` event has a `window`
+        // reference. This is the reference to the current Electron renderer process (Chrome)
+        // displaying your Meteor app.
+        eventsBus.on('windowCreated', (window) => {
+            window.webContents.on('crashed', Desktop.windowCrashedHandler);
+            window.on('unresponsive', Desktop.windowUnresponsiveHandler);
+        });
+
+        // Consider setting a crash reporter ->
+        // https://github.com/electron/electron/blob/master/docs/api/crash-reporter.md
+    }
+
+    /**
+     * Window crash handler.
+     */
+    static windowCrashedHandler() {
+        Desktop.displayRestartDialog(
+            'Application has crashed',
+            'Do you want to restart it?'
+        );
+    }
+
+    /**
+     * Window's unresponsiveness handler.
+     */
+    static windowUnresponsiveHandler() {
+        Desktop.displayRestartDialog(
+            'Application is not responding',
+            'Do you want to restart it?'
+        );
+    }
+
+    /**
+     * JS's uncaught exception handler.
+     * @param {string} error - error message
+     */
+    static uncaughtExceptionHandler(error) {
+        // Consider sending a log somewhere, it is good be aware your users are having problems,
+        // right?
+        Desktop.displayRestartDialog(
+            'Application encountered an error',
+            'Do you want to restart it?',
+            error
+        );
+    }
+
+    /**
+     * Displays an error dialog with simple 'restart' or 'shutdown' choice.
+     * @param {string} title   - title of the dialog
+     * @param {string} message - message shown in the dialog
+     * @param {string} details - additional details to be displayed
+     */
+    static displayRestartDialog(title, message, details = '') {
+        dialog.showMessageBox(
+            { type: 'error', buttons: ['Restart', 'Shutdown'], title, message, detail: details },
+            (response) => {
+                if (response === 0) {
+                    app.relaunch();
+                }
+                app.exit(0);
+            }
+        );
+    }
+}
diff --git a/.desktop/desktop.test.js b/.desktop/desktop.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..ec7d05d0273582cc9e68bb708813f667d3852795
--- /dev/null
+++ b/.desktop/desktop.test.js
@@ -0,0 +1,125 @@
+/* eslint-disable no-param-reassign */
+import test from 'ava';
+import electron from 'electron';
+import path from 'path';
+import { Application } from 'spectron';
+
+/**
+ * For this to work, init testing with `npm run desktop -- init-tests-support`.
+ * This will add necessary packages to your `devDependencies` and add `desktop-test` to scripts.
+ *
+ * This is an example of functional test for your desktop app.
+ * Remember that you need to rebuild your desktop app if you made changes in .desktop. You can
+ * do that with `npm run desktop -- build`.
+ * There is a plan for using desktop.asar built from omega:meteor-desktop-bundler so that you could
+ * avoid manual rebuild.
+ */
+
+test.beforeEach(async (t) => {
+    // Before each test we will spawn a new desktop app instance.
+    t.context.app = new Application({
+        path: electron,
+        requireName: 'electronRequire',
+        args: [path.join(__dirname, '..', '.meteor', 'desktop-build')],
+        env: { NODE_ENV: 'test', ELECTRON_ENV: 'test', METEOR_DESKTOP_NO_SPLASH_SCREEN: 1 }
+    });
+    await t.context.app.start();
+});
+
+test.afterEach.always(async (t) => {
+    // Kill the app after the test.
+    if (t.context.app && t.context.app.isRunning()) {
+        await t.context.app.stop();
+    }
+});
+
+/**
+ * Sends an IPC event to your module.
+ *
+ * @param {Object} app    - app ref from Spectron
+ * @param {string} module - module name
+ * @param {string} event  - event from your module
+ * @param {...*}   args   - arguments to pass to ipc.send
+ */
+function sendModuleEvent(app, module, event, ...args) {
+    args.unshift(`${module}__${event}`);
+    return app.electron.ipcRenderer.send(...args);
+}
+
+/**
+ * Waits until a promise from a function finally returns true.
+ * @param {Function} functionReturningPromise - function to test
+ * @param {number}   ms                       - expiration timeout in milliseconds
+ * @returns {Promise}
+ */
+function waitFor(functionReturningPromise, ms = 10000) {
+    return new Promise((resolve, reject) => {
+        let invokerTimeout;
+        let timeout;
+        const invokeFunction = () =>
+            functionReturningPromise()
+                .then((result) => {
+                    if (result) {
+                        clearTimeout(invokerTimeout);
+                        clearTimeout(timeout);
+                        resolve();
+                    } else {
+                        invokerTimeout = setTimeout(invokeFunction, 500);
+                    }
+                })
+                .catch(() => {
+                    invokerTimeout = setTimeout(invokeFunction, 500);
+                });
+        invokeFunction();
+        timeout = setTimeout(() => {
+            clearTimeout(invokerTimeout);
+            reject('timeout expired on waitFor');
+        }, ms);
+    });
+}
+
+/**
+ * Waits for the app to load and appear.
+ * @param {Object} t - test context
+ * @returns {{app: (Application|*), window: *}}
+ */
+async function waitForApp(t) {
+    const app = t.context.app;
+    await app.client.waitUntilWindowLoaded();
+    const window = app.browserWindow;
+    // Wait for the main window for max 30seconds. Adjust to your app.
+    await waitFor(window.isVisible, 30000);
+    t.is(await app.client.getWindowCount(), 1);
+    await app.client.waitUntil(
+        async () => await app.client.execute(
+            () => document.readyState === 'complete'
+        )
+    );
+    return { app, window };
+}
+
+test.serial('if app can be closed', async (t) => {
+    const { app, window } = await waitForApp(t); // eslint-disable-line no-unused-vars
+    await sendModuleEvent(app, 'desktop', 'closeApp');
+    t.true(await app.client.getWindowCount() === 0);
+
+    // Spectron does not seem to notice app has quit so we need to do it manually.
+    t.context.app.running = false;
+});
+
+// Empty test.
+test.serial('if window title is set properly', async (t) => {
+    const { app, window } = await waitForApp(t); // eslint-disable-line no-unused-vars
+
+    // Your assertions...
+
+    /*
+     const title = await window.getTitle();
+     t.is(title, 'my app <title>');
+
+     // NOTE:
+     // avoid using await in assertions like
+     // t.is(await window.getTitle(), 'my app <title>');
+     // it makes Power Assert not producing it's useful graphs
+     */
+});
diff --git a/.desktop/modules/example/example.test.js b/.desktop/modules/example/example.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..a256c6df0d79f2e7e429a1d8eec5f4e239885576
--- /dev/null
+++ b/.desktop/modules/example/example.test.js
@@ -0,0 +1,108 @@
+/* eslint-disable no-console */
+import test from 'ava';
+import { Application } from 'spectron';
+import path from 'path';
+import fs from 'fs';
+import shell from 'shelljs';
+import electron from 'electron';
+import {
+    constructModule, createTestAppWithModule, fetch,
+    fireEventsBusEventAndWaitForAnother
+} from
+    'meteor-desktop-test-suite';
+
+/**
+ * For this to work, init testing with `npm run desktop -- init-tests-support`.
+ * This will add necessary packages to your `devDependencies` and add `desktop-test` to scripts.
+ *
+ * This is an example of functional test for your module.
+ *
+ * You could test your module from the built app, like in desktop.test.js.
+ *
+ * Here instead we will treat this module like a separate plugin and test it in a test app instance.
+ * This has a significant advantage as you do not have to rebuild the desktop app if you made
+ * changes in the module - you just need to rerun the tests which is usually faster.
+ *
+ * However if your module is importing files from the outside of its dir this will fail - support
+ * for that is planned - vote on features on meteor-desktop issues list on github.
+ *
+ * Be aware that you can specify npm dependencies in the dependencies section of module.json -
+ * those will be installed in the test app.
+ */
+
+let userData;
+let appDir;
+
+async function getApp(t) {
+    // Waits for the test app to start.
+    const app = t.context.app;
+    await app.client.waitUntilWindowLoaded();
+    t.is(await app.client.getWindowCount(), 1);
+    return app;
+}
+
+test.before(
+    async () => {
+        // Create a new test app with this module included.
+        appDir = await createTestAppWithModule(
+            null, __dirname);
+    }
+);
+
+test.after(
+    () => {
+        // Remove the test app and its data.
+        shell.rm('-rf', userData);
+        shell.rm('-rf', appDir);
+    }
+);
+
+test.beforeEach(async (t) => {
+    // Every test start a new instance of the test app.
+    t.context.app = new Application({ // eslint-disable-line no-param-reassign
+        path: electron,
+        args: [appDir],
+        env: { ELECTRON_ENV: 'test' }
+    });
+    await t.context.app.start();
+    userData = await t.context.app.electron.remote.app.getPath('userData');
+});
+
+test.afterEach.always(async (t) => {
+    try {
+        // Test app saves an error.txt file if it encounters an uncaught exception.
+        // It is good to see it's contents if it is present.
+        const errorFile = path.join(appDir, 'error.txt');
+        console.log(
+            'error caught in the test app:',
+            fs.readFileSync(errorFile, 'utf8')
+        );
+        fs.unlinkSync(errorFile);
+    } catch (e) {
+        // No error.txt present. That's good!
+    }
+
+    if (t.context.app && t.context.app.isRunning()) {
+        await t.context.app.stop();
+    }
+});
+
+test('the test app', async t => await getApp(t));
+
+test.serial('if testEvent returns true for 1', async (t) => {
+    const app = await getApp(t);
+    await constructModule(app);
+    await fireEventsBusEventAndWaitForAnother(app, 'desktopLoaded', 'example.loaded');
+    const response = await fetch(app, 'example', 'testEvent', 1);
+    // Fetch returns an array with the response event arguments.
+    t.true(response[0]);
+});
+
+test.serial('if testEvent returns false for 5', async (t) => {
+    const app = await getApp(t);
+    await constructModule(app);
+    await fireEventsBusEventAndWaitForAnother(app, 'desktopLoaded', 'example.loaded');
+    const response = await fetch(app, 'example', 'testEvent', 5);
+    // Fetch returns an array with the response event arguments.
+    t.false(response[0]);
+});
diff --git a/.desktop/modules/example/index.js b/.desktop/modules/example/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..80edf4a2c93f53272a4061a104dfe6226c09e12a
--- /dev/null
+++ b/.desktop/modules/example/index.js
@@ -0,0 +1,58 @@
+/* eslint-disable no-unused-vars */
+import moduleJson from './module.json';
+
+/**
+ * Example module.
+ *
+ * @param {Object} log         - Winston logger instance
+ * @param {Object} skeletonApp - reference to the skeleton app instance
+ * @param {Object} appSettings - settings.json contents
+ * @param {Object} eventsBus   - event emitter for listening or emitting events
+ *                               shared across skeleton app and every module/plugin
+ * @param {Object} modules     - references to all loaded modules
+ * @param {Object} settings    - module settings
+ * @param {Object} Module      - reference to the Module class
+ * @constructor
+ */
+export default class Example {
+    constructor({ log, skeletonApp, appSettings, eventsBus, modules, settings, Module }) {
+        /**
+         * You can delete unused vars from the param destructuring.
+         * Left them here just to emphasize what is passed. Delete the eslint rule at the top
+         * when done.
+         * You can also just have a one `config` param and do `Object.assign(this, config);`
+         */
+        this.module = new Module(moduleJson.name);
+
+        // Get the automatically predefined logger instance.
+        this.log = log;
+        this.eventsBus = eventsBus;
+
+        // Never do time consuming or blocking things directly in the constructor.
+        // Instead hook to `afterLoading` or `beforeDesktopJsLoad` events.
+        // This will also ensure plugins providing things like splash screens will be able
+        // to start as quickly as possible.
+        this.eventsBus.on('desktopLoaded', () => {
+            this.init();
+        });
+    }
+
+    init() {
+        // Do some initialization if necessary.
+
+        this.registerApi();
+
+        // Lets inform that the module has finished loading.
+        this.eventsBus.emit(`${moduleJson.name}.loaded`);
+    }
+
+    registerApi() {
+        // Lets create a test event.
+        this.module.on('testEvent', (event, fetchId, testArg) => {
+            // Nothing fancy here, we will just respond with the result of testArg === 1.
+            // fetchId is necessary for the system to know to which request the response is for.
+            // It will be present if you will emit this event in Meteor app with `Desktop.fetch`.
+            this.module.respond('testEvent', fetchId, testArg === 1);
+        });
+    }
+}
diff --git a/.desktop/modules/example/module.json b/.desktop/modules/example/module.json
new file mode 100644
index 0000000000000000000000000000000000000000..633100cc7b45325bb5e1789d4d9b7c625a864db0
--- /dev/null
+++ b/.desktop/modules/example/module.json
@@ -0,0 +1,6 @@
+{
+    "name": "example",
+    "dependencies": {
+    },
+    "extract": []
+}
diff --git a/.desktop/squirrelEvents.js b/.desktop/squirrelEvents.js
new file mode 100644
index 0000000000000000000000000000000000000000..759d62e1c0a6b4b16dd9ab59937e7599e3a72605
--- /dev/null
+++ b/.desktop/squirrelEvents.js
@@ -0,0 +1,38 @@
+/**
+ * Simple class that allows to hook into Squirrel.Windows events.
+ */
+export default class SquirrelEvents {
+    /**
+     * @param {Squirrel} Squirrel - reference to the Squirrel class
+     */
+    constructor(Squirrel) {
+        this.Squirrel = Squirrel;
+    }
+
+    /**
+     * Invoked during installation.
+     */
+    install() {
+        this.Squirrel.createShortcuts();
+    }
+
+    /**
+     * Invoked on first run.
+     */
+    firstRun() { // eslint-disable-line class-methods-use-this
+    }
+
+    /**
+     * Invoked during update.
+     */
+    updated() {
+        this.Squirrel.updateShortcuts();
+    }
+
+    /**
+     * Invoked during uninstall.
+     */
+    uninstall() {
+        this.Squirrel.removeShortcuts();
+    }
+}
diff --git a/.gitignore b/.gitignore
index 7dba7a28ff7d30574944f5dc8706669590fea197..b9c66f9ed03592a8210e9816b57da5e7374415c7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,4 +8,9 @@ electron-settings.json
 electron-settings-prod.json
 cordova.facebook.json
 private/*
+.desktop-installer/
+.desktop-package/
+public/i18n/
 node_modules/
+
+version.desktop
diff --git a/.meteor/.gitignore b/.meteor/.gitignore
index 501f92e4b5eb1a0eea1c21c7a6317095beb52bc9..c523263bb271f01ccaba167f47dd7c2af001434a 100644
--- a/.meteor/.gitignore
+++ b/.meteor/.gitignore
@@ -1,2 +1,3 @@
 dev_bundle
 local
+desktop-build
\ No newline at end of file
diff --git a/.meteor/packages b/.meteor/packages
index 3afab3298a37435df9e8477ac85cecd2e5d5ca37..ce420370eb4d28cac5bde51e29e5fad1d0b89558 100644
--- a/.meteor/packages
+++ b/.meteor/packages
@@ -60,7 +60,7 @@ meteoric:autoform-ionic
 reactive-dict@1.1.8
 meteorhacks:subs-manager
 sha@1.0.9
-meteorhacks:kadira
+#meteorhacks:kadira
 dschulz:jquery-qrcode
 pauloborges:mapbox@2.2.3_2
 gwendall:autoform-i18n
@@ -75,3 +75,7 @@ force-ssl@1.0.13
 froatsnook:request
 froatsnook:valid-email
 shell-server@0.2.1
+omega:meteor-desktop-watcher
+omega:meteor-desktop-bundler
+omega:meteor-desktop-localstorage
+tap:i18n-bundler
diff --git a/.meteor/versions b/.meteor/versions
index bce4256712e8860f8512bb24c20c2e2724dc785c..fee1cb9dba25caff5fdc35629b98db82dfbc09c8 100644
--- a/.meteor/versions
+++ b/.meteor/versions
@@ -61,7 +61,6 @@ dschulz:jquery-qrcode@1.0.2
 ecmascript@0.5.9
 ecmascript-runtime@0.3.15
 ejson@1.0.13
-email@1.1.18
 es5-shim@4.6.15
 fastclick@1.0.13
 force-ssl@1.0.13
@@ -95,8 +94,6 @@ mdg:validation-error@0.5.1
 meteor@1.6.0
 meteor-base@1.0.4
 meteorhacks:async@1.0.0
-meteorhacks:kadira@2.30.2
-meteorhacks:meteorx@1.4.1
 meteorhacks:subs-manager@1.6.4
 meteoric:autoform-ionic@0.1.6
 meteoric:camera@1.0.3
@@ -118,6 +115,9 @@ mrt:profile-online@0.1.9
 multiply:iron-router-progress@1.0.2
 npm-mongo@2.2.11_2
 observe-sequence@1.0.14
+omega:meteor-desktop-bundler@0.1.0
+omega:meteor-desktop-localstorage@0.0.11
+omega:meteor-desktop-watcher@0.1.0
 ordered-dict@1.0.9
 outatime:geolib@2.0.15
 pauloborges:mapbox@2.2.3_2
@@ -144,6 +144,7 @@ spacebars-compiler@1.0.13
 standard-minifier-css@1.3.2
 standard-minifier-js@1.2.1
 tap:i18n@1.8.2
+tap:i18n-bundler@0.3.0
 tap:i18n-ui@0.8.0
 templating@1.2.15
 templating-compiler@1.2.15
diff --git a/imports/api/server/publish.js b/imports/api/server/publish.js
index 3cec92828c70ca697bfb842ea7bb7f8d7e32642c..d328d1ea66707d4155aafd3055c3afa8aa82366d 100644
--- a/imports/api/server/publish.js
+++ b/imports/api/server/publish.js
@@ -177,7 +177,7 @@ Meteor.publishComposite('citoyenEvents', function(latlng,radius) {
 				{
 					find: function(scopeD) {
 						return Events.find({
-							parentId: new Mongo.ObjectID(scopeD._id)
+							parentId: scopeD._id._str
 						});
 					}
 				},
diff --git a/imports/startup/client/client.js b/imports/startup/client/client.js
index c37b171fbabeb84d6813ac11d093e1966687ef59..c285d0289911b6e62439fabaca86ded10e05bbe9 100644
--- a/imports/startup/client/client.js
+++ b/imports/startup/client/client.js
@@ -133,6 +133,10 @@ Template.registerHelper("urlImageCommunecter", function () {
   return Meteor.settings.public.urlimage;
 });
 
+Template.registerHelper("urlImageDesktop", function () {
+  console.log(Meteor.settings.public.remoteUrl);
+  return Meteor.isDesktop ? Meteor.settings.public.remoteUrl : '';
+});
 
 
 Template.registerHelper("SchemasFollowRest", SchemasFollowRest);
@@ -143,29 +147,29 @@ Template.registerHelper("SchemasEventsRest", SchemasEventsRest);
 
 let success = function (state) {
   if(state === 'Enabled') {
-    //console.log("GPS Is Enabled");
+    console.log("GPS Is Enabled");
     Session.set('GPSstart', true);
     Location.locate(function(pos){
       Session.set('geo',pos);
       //console.log(pos);
     }, function(err){
-      //console.log(err.message);
+      console.log(err.message);
       Session.set('GPSstart', false);
       Session.set('geo',null);
       Session.set('geoError',err.message);
     });
   }else if(state==="Disabled"){
-    //console.log("GPS Is Disabled");
+    console.log("GPS Is Disabled");
     Session.set('GPSstart', false);
     Session.set('geo',null);
     Session.set('geoError','GPS Is Disabled');
   }else if(state=='NotDetermined' || state=='Restricted'){
-    //console.log("Never asked user for auhtorization");
+    console.log("Never asked user for auhtorization");
     Session.set('GPSstart', false);
     Session.set('geo',null);
     Session.set('geoError','Never asked user for auhtorization');
   }else if(state==='Denied'){
-    //console.log("Asked User for authorization but they denied");
+    console.log("Asked User for authorization but they denied");
     Session.set('GPSstart', false);
     Session.set('geo',null);
     Session.set('geoError','Asked User for authorization but they denied');
diff --git a/imports/ui/news/detail/detail.html b/imports/ui/news/detail/detail.html
index 7319cc704fa43d9a8a8f1de30142baf16351a1a1..5542cd2cf064390d2d41cf8669bcb77d4b94f859 100644
--- a/imports/ui/news/detail/detail.html
+++ b/imports/ui/news/detail/detail.html
@@ -22,7 +22,7 @@
     {{#if photoNews}}
     <div class="item item-body">
       {{#each photoNews}}
-      <img src="{{this.url store='photosLarge' uploading='/default.png' storing='/default.png'}}" class="full-image photo-viewer"  />
+      <img src="{{urlImageDesktop}}{{this.url store='photosLarge' uploading='/default.png' storing='/default.png'}}" class="full-image photo-viewer"  />
       {{/each}}
     </div>
     {{/if}}
diff --git a/imports/ui/news/news.html b/imports/ui/news/news.html
index 24653ae4b59753470c501c52963cabd4c9d0c65b..6e7b762991f849826bb33bf0ffe5759225a2eb5c 100644
--- a/imports/ui/news/news.html
+++ b/imports/ui/news/news.html
@@ -26,7 +26,7 @@
     <a href="{{pathFor 'newsDetail' _id=scope._id._str newsId=_id._str scope=target.type}}" class="item animated in {{#if photoNews}}item-thumbnail-left{{else}}{{#if imageDoc authorNews._id._str}}item-avatar{{/if}}{{/if}}">
 
       {{#each photoNews}}
-      <img src="{{this.url store='photosThumb' uploading='/default.png' storing='/default.png'}}"  />
+      <img src="{{urlImageDesktop}}{{this.url store='photosThumb' uploading='/default.png' storing='/default.png'}}"  />
       {{else}}
       {{#if imageDoc}}
       {{> imgDoc imageDoc=imageDoc resized="80x80"}}
@@ -229,7 +229,7 @@
     <a href="{{pathFor 'newsDetail' _id=scope._id._str newsId=_id._str scope=target.type}}" class="item animated out {{#if photoNews}}item-thumbnail-left{{/if}}">
 
       {{#each photoNews}}
-      <img src="{{this.url store='photosThumb' uploading='/default.png' storing='/default.png'}}"  />
+      <img src="{{urlImageDesktop}}{{this.url store='photosThumb' uploading='/default.png' storing='/default.png'}}"  />
       {{/each}}
 
       <h2>{{name}}</h2>
diff --git a/package.json b/package.json
index c0137aabbae89b826571ced6962104e05efc191e..4ecb9d587092944ee5359bf20cd8b35bb98a482a 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,8 @@
   "description": "communevent",
   "private": true,
   "scripts": {
-    "start": "meteor run"
+    "start": "meteor run",
+    "desktop": "meteor-desktop"
   },
   "dependencies": {
     "meteor-node-stubs": "~0.2.0",
@@ -19,5 +20,9 @@
   "bugs": {
     "url": "https://github.com/aboire/communEvent/issues"
   },
-  "homepage": "https://github.com/aboire/communEvent#readme"
+  "homepage": "https://github.com/aboire/communEvent#readme",
+  "devDependencies": {
+    "devtron": "^1.4.0",
+    "meteor-desktop": "^0.1.0"
+  }
 }
diff --git a/packages/aboire:camera-ui/camera-ui-cordova.js b/packages/aboire:camera-ui/camera-ui-cordova.js
deleted file mode 100644
index ffec5772c5a2914b8f954745ec8c09f85b0c26c2..0000000000000000000000000000000000000000
--- a/packages/aboire:camera-ui/camera-ui-cordova.js
+++ /dev/null
@@ -1,110 +0,0 @@
-/******************** Private functions ****************************/
-
-var devicePlatform = window && window.device && window.device.platform;
-
-var isAndroidDevice = function () {
-  return devicePlatform == 'Android';
-};
-
-var isIosDevice = function () {
-  return devicePlatform == 'iOS';
-};
-
-/**
- * Check whether ios or android device and give the specific options for it.
- * @param {Object} options  Options - Optional
- * @param {Object} options.iosOptions {special options only for ios}
- * @param {Object} options.androidOptions {special options only for android}
- * @returns {{}}
- */
-var getOptionsPerDevice = function (options) {
-  options = options || {};
-  if (isAndroidDevice() && options.androidOptions) {
-    options = _.extend({}, options.androidOptions, options);
-  } else if (isIosDevice() && options.iosOptions) {
-    options = _.extend({}, options.iosOptions, options);
-  }
-  return options;
-};
-
-/**
- * @summary Create action sheet options setting for taking image
- * @param {Object} options  Options - Optional
- * @param {String} options.takeImage - Text of take image button
- * @param {String} options.imageLibrary - Text of image library button
- * @param {String} options.cancel - Text of cancel button
- * @returns {{buttonLabels: Array, androidEnableCancelButton: boolean, winphoneEnableCancelButton: boolean, addCancelButtonWithLabel: *}}
- */
-var getActionsSheetOptions = function (options) {
-  options = options || {};
-
-  var buttonTexts = {
-    takeImage: options.takeImage || __('Take photo'),
-    imageLibrary: options.imageLibrary || __('Image Library'),
-    cancel: options.cancel || __('Cancel')
-  };
-  return {
-    'buttonLabels': [
-      buttonTexts.takeImage,
-      buttonTexts.imageLibrary
-    ],
-    'androidEnableCancelButton': true, // default false
-    'winphoneEnableCancelButton': true, // default false
-    'addCancelButtonWithLabel': buttonTexts.cancel
-  };
-};
-
-var takePicture = function (options, usingPhotoLibrary, callback) {
-  var pictureOptions = getOptionsPerDevice(options);
-  if (usingPhotoLibrary) {
-    pictureOptions.sourceType = Camera.PictureSourceType.PHOTOLIBRARY;
-  }
-  MeteoricCamera.getPicture(pictureOptions, callback);
-};
-
-/******************** Public functions *****************************/
-
-/**
- * @summary Get a picture from the device's default camera.
- *          Show ActionSheet to ask whether to take the image from camera or imageLibrary.
- *          Same as MeteorCamera.getPicture just allow to give
- *          special options using options.androidOptions or options.iosOptions.
- * @param {Object}   options  Options - Optional
- * @param {Number} options.height The minimum height of the image
- * @param {Number} options.width The minimum width of the image
- * @param {Number} options.quality [description]
- * @param {Object} options.buttonTexts {cancel:String, takeImage:String, imageLibrary:String}
- * @param {Object} options.iosOptions {special options only for ios}
- * @param {Object} options.androidOptions {special options only for android}
- * @param  {Function} callback A callback that is called with two arguments:
- * 1. error, an object that contains error.message and possibly other properties
- * depending on platform
- * 2. data, a Data URI string with the image encoded in JPEG format, ready to
- * use as the `src` attribute on an `<img />` tag.
- */
-MeteorCameraUI.getPicture = function (options, callback) {
-  // Checks whether device support actionsheet plugin
-  if (window && window.plugins && window.plugins.actionsheet) {
-    var actionSheetOptions = getActionsSheetOptions(options);
-    window.plugins.actionsheet.show(actionSheetOptions, function (buttonIndex) {
-      setTimeout(function () {
-        var usingPhotoLibrary = false;
-        // Like other Cordova plugins (prompt, confirm) the buttonIndex is 1-based (first button is index 1)
-        if (buttonIndex) {
-          // Image library button clicked
-          if (buttonIndex === 2) {
-            usingPhotoLibrary = true;
-          } else if (buttonIndex === 3) {
-            // Cancel button clicked
-            callback();
-            return;
-          }
-        }
-        takePicture(options, usingPhotoLibrary, callback);
-      }, 1);
-    });
-  } else {
-    // Use default Meteor Camera
-    MeteoricCamera.getPicture(options, callback);
-  }
-};
diff --git a/packages/aboire:camera-ui/README.md b/packages/aboire_camera-ui/README.md
similarity index 100%
rename from packages/aboire:camera-ui/README.md
rename to packages/aboire_camera-ui/README.md
diff --git a/packages/aboire:camera-ui/camera-ui-browser.js b/packages/aboire_camera-ui/camera-ui-browser.js
similarity index 100%
rename from packages/aboire:camera-ui/camera-ui-browser.js
rename to packages/aboire_camera-ui/camera-ui-browser.js
diff --git a/packages/aboire:camera-ui/camera-ui-client.js b/packages/aboire_camera-ui/camera-ui-client.js
similarity index 100%
rename from packages/aboire:camera-ui/camera-ui-client.js
rename to packages/aboire_camera-ui/camera-ui-client.js
diff --git a/packages/aboire_camera-ui/camera-ui-cordova.js b/packages/aboire_camera-ui/camera-ui-cordova.js
new file mode 100644
index 0000000000000000000000000000000000000000..6feb69b8ac343abddec042e84a201845143d9e57
--- /dev/null
+++ b/packages/aboire_camera-ui/camera-ui-cordova.js
@@ -0,0 +1,122 @@
+if (Meteor.isDesktop) {
+  console.log('meteor is desktop');
+  MeteorCameraUI.getPicture = function (options, callback) {
+    // If browser options exists use them
+    if (options && options.browserOptions) {
+      options = _.extend({}, options.browserOptions, options);
+    }
+    MeteoricCamera.getPicture(options, callback);
+  };
+} else {
+  /******************** Private functions ****************************/
+
+  var devicePlatform = window && window.device && window.device.platform;
+
+  var isAndroidDevice = function () {
+    return devicePlatform == 'Android';
+  };
+
+  var isIosDevice = function () {
+    return devicePlatform == 'iOS';
+  };
+
+  /**
+   * Check whether ios or android device and give the specific options for it.
+   * @param {Object} options  Options - Optional
+   * @param {Object} options.iosOptions {special options only for ios}
+   * @param {Object} options.androidOptions {special options only for android}
+   * @returns {{}}
+   */
+  var getOptionsPerDevice = function (options) {
+    options = options || {};
+    if (isAndroidDevice() && options.androidOptions) {
+      options = _.extend({}, options.androidOptions, options);
+    } else if (isIosDevice() && options.iosOptions) {
+      options = _.extend({}, options.iosOptions, options);
+    }
+    return options;
+  };
+
+  /**
+   * @summary Create action sheet options setting for taking image
+   * @param {Object} options  Options - Optional
+   * @param {String} options.takeImage - Text of take image button
+   * @param {String} options.imageLibrary - Text of image library button
+   * @param {String} options.cancel - Text of cancel button
+   * @returns {{buttonLabels: Array, androidEnableCancelButton: boolean, winphoneEnableCancelButton: boolean, addCancelButtonWithLabel: *}}
+   */
+  var getActionsSheetOptions = function (options) {
+    options = options || {};
+
+    var buttonTexts = {
+      takeImage: options.takeImage || __('Take photo'),
+      imageLibrary: options.imageLibrary || __('Image Library'),
+      cancel: options.cancel || __('Cancel')
+    };
+    return {
+      'buttonLabels': [
+        buttonTexts.takeImage,
+        buttonTexts.imageLibrary
+      ],
+      'androidEnableCancelButton': true, // default false
+      'winphoneEnableCancelButton': true, // default false
+      'addCancelButtonWithLabel': buttonTexts.cancel
+    };
+  };
+
+  var takePicture = function (options, usingPhotoLibrary, callback) {
+    var pictureOptions = getOptionsPerDevice(options);
+    if (usingPhotoLibrary) {
+      pictureOptions.sourceType = Camera.PictureSourceType.PHOTOLIBRARY;
+    }
+    MeteoricCamera.getPicture(pictureOptions, callback);
+  };
+
+  /******************** Public functions *****************************/
+
+  /**
+   * @summary Get a picture from the device's default camera.
+   *          Show ActionSheet to ask whether to take the image from camera or imageLibrary.
+   *          Same as MeteorCamera.getPicture just allow to give
+   *          special options using options.androidOptions or options.iosOptions.
+   * @param {Object}   options  Options - Optional
+   * @param {Number} options.height The minimum height of the image
+   * @param {Number} options.width The minimum width of the image
+   * @param {Number} options.quality [description]
+   * @param {Object} options.buttonTexts {cancel:String, takeImage:String, imageLibrary:String}
+   * @param {Object} options.iosOptions {special options only for ios}
+   * @param {Object} options.androidOptions {special options only for android}
+   * @param  {Function} callback A callback that is called with two arguments:
+   * 1. error, an object that contains error.message and possibly other properties
+   * depending on platform
+   * 2. data, a Data URI string with the image encoded in JPEG format, ready to
+   * use as the `src` attribute on an `<img />` tag.
+   */
+  MeteorCameraUI.getPicture = function (options, callback) {
+    // Checks whether device support actionsheet plugin
+    if (window && window.plugins && window.plugins.actionsheet) {
+      var actionSheetOptions = getActionsSheetOptions(options);
+      window.plugins.actionsheet.show(actionSheetOptions, function (buttonIndex) {
+        setTimeout(function () {
+          var usingPhotoLibrary = false;
+          // Like other Cordova plugins (prompt, confirm) the buttonIndex is 1-based (first button is index 1)
+          if (buttonIndex) {
+            // Image library button clicked
+            if (buttonIndex === 2) {
+              usingPhotoLibrary = true;
+            } else if (buttonIndex === 3) {
+              // Cancel button clicked
+              callback();
+              return;
+            }
+          }
+          takePicture(options, usingPhotoLibrary, callback);
+        }, 1);
+      });
+    } else {
+      // Use default Meteor Camera
+      MeteoricCamera.getPicture(options, callback);
+    }
+  };
+
+}
diff --git a/packages/aboire:camera-ui/camera-ui-tests.js b/packages/aboire_camera-ui/camera-ui-tests.js
similarity index 100%
rename from packages/aboire:camera-ui/camera-ui-tests.js
rename to packages/aboire_camera-ui/camera-ui-tests.js
diff --git a/packages/aboire:camera-ui/camera-ui.js b/packages/aboire_camera-ui/camera-ui.js
similarity index 100%
rename from packages/aboire:camera-ui/camera-ui.js
rename to packages/aboire_camera-ui/camera-ui.js
diff --git a/packages/aboire:camera-ui/i18n/en.i18n.json b/packages/aboire_camera-ui/i18n/en.i18n.json
similarity index 100%
rename from packages/aboire:camera-ui/i18n/en.i18n.json
rename to packages/aboire_camera-ui/i18n/en.i18n.json
diff --git a/packages/aboire:camera-ui/i18n/fr.i18n.json b/packages/aboire_camera-ui/i18n/fr.i18n.json
similarity index 100%
rename from packages/aboire:camera-ui/i18n/fr.i18n.json
rename to packages/aboire_camera-ui/i18n/fr.i18n.json
diff --git a/packages/aboire:camera-ui/package-tap.i18n b/packages/aboire_camera-ui/package-tap.i18n
similarity index 100%
rename from packages/aboire:camera-ui/package-tap.i18n
rename to packages/aboire_camera-ui/package-tap.i18n
diff --git a/packages/aboire:camera-ui/package.js b/packages/aboire_camera-ui/package.js
similarity index 100%
rename from packages/aboire:camera-ui/package.js
rename to packages/aboire_camera-ui/package.js
diff --git a/packages/djabatav:geolocation-plus/.versions b/packages/djabatav_geolocation-plus/.versions
similarity index 100%
rename from packages/djabatav:geolocation-plus/.versions
rename to packages/djabatav_geolocation-plus/.versions
diff --git a/packages/djabatav:geolocation-plus/README.md b/packages/djabatav_geolocation-plus/README.md
similarity index 100%
rename from packages/djabatav:geolocation-plus/README.md
rename to packages/djabatav_geolocation-plus/README.md
diff --git a/packages/djabatav:geolocation-plus/lib/location.js b/packages/djabatav_geolocation-plus/lib/location.js
similarity index 100%
rename from packages/djabatav:geolocation-plus/lib/location.js
rename to packages/djabatav_geolocation-plus/lib/location.js
diff --git a/packages/djabatav:geolocation-plus/package.js b/packages/djabatav_geolocation-plus/package.js
similarity index 100%
rename from packages/djabatav:geolocation-plus/package.js
rename to packages/djabatav_geolocation-plus/package.js
diff --git a/packages/meteoric:camera/camera-cordova.js b/packages/meteoric:camera/camera-cordova.js
deleted file mode 100755
index a797bc35bf8ba2a23648737fa276f3ab00a2b5a5..0000000000000000000000000000000000000000
--- a/packages/meteoric:camera/camera-cordova.js
+++ /dev/null
@@ -1,27 +0,0 @@
-MeteoricCamera.getPicture = function (options, callback) {
-  // if options are not passed
-  if (! callback) {
-    callback = options;
-    options = {};
-  }
-
-  var success = function (data) {
-    callback(null, "data:image/jpeg;base64," + data);
-  };
-
-  var failure = function (error) {
-    callback(new Meteor.Error("cordovaError", error));
-  };
-
-  navigator.camera.getPicture(success, failure,
-    _.extend(options, {
-      quality: options.quality || 60,
-      targetWidth: options.width || 640,
-      targetHeight: options.height || 480,
-      destinationType: Camera.DestinationType.DATA_URL,
-      correctOrientation: true,
-      encodingType: Camera.EncodingType.JPEG,
-      allowEdit: true
-    })
-  );
-};
diff --git a/packages/meteoric:autoform-ionic/.gitignore b/packages/meteoric_autoform-ionic/.gitignore
similarity index 100%
rename from packages/meteoric:autoform-ionic/.gitignore
rename to packages/meteoric_autoform-ionic/.gitignore
diff --git a/packages/meteoric:autoform-ionic/.versions b/packages/meteoric_autoform-ionic/.versions
similarity index 100%
rename from packages/meteoric:autoform-ionic/.versions
rename to packages/meteoric_autoform-ionic/.versions
diff --git a/packages/meteoric:autoform-ionic/LICENSE b/packages/meteoric_autoform-ionic/LICENSE
similarity index 100%
rename from packages/meteoric:autoform-ionic/LICENSE
rename to packages/meteoric_autoform-ionic/LICENSE
diff --git a/packages/meteoric:autoform-ionic/README.md b/packages/meteoric_autoform-ionic/README.md
similarity index 100%
rename from packages/meteoric:autoform-ionic/README.md
rename to packages/meteoric_autoform-ionic/README.md
diff --git a/packages/meteoric:autoform-ionic/ionic.css b/packages/meteoric_autoform-ionic/ionic.css
similarity index 100%
rename from packages/meteoric:autoform-ionic/ionic.css
rename to packages/meteoric_autoform-ionic/ionic.css
diff --git a/packages/meteoric:autoform-ionic/ionic.html b/packages/meteoric_autoform-ionic/ionic.html
similarity index 100%
rename from packages/meteoric:autoform-ionic/ionic.html
rename to packages/meteoric_autoform-ionic/ionic.html
diff --git a/packages/meteoric:autoform-ionic/ionic.js b/packages/meteoric_autoform-ionic/ionic.js
similarity index 100%
rename from packages/meteoric:autoform-ionic/ionic.js
rename to packages/meteoric_autoform-ionic/ionic.js
diff --git a/packages/meteoric:autoform-ionic/package.js b/packages/meteoric_autoform-ionic/package.js
similarity index 100%
rename from packages/meteoric:autoform-ionic/package.js
rename to packages/meteoric_autoform-ionic/package.js
diff --git a/packages/meteoric:autoform-ionic/versions.json b/packages/meteoric_autoform-ionic/versions.json
similarity index 100%
rename from packages/meteoric:autoform-ionic/versions.json
rename to packages/meteoric_autoform-ionic/versions.json
diff --git a/packages/meteoric:camera/.versions b/packages/meteoric_camera/.versions
similarity index 100%
rename from packages/meteoric:camera/.versions
rename to packages/meteoric_camera/.versions
diff --git a/packages/meteoric:camera/README.md b/packages/meteoric_camera/README.md
similarity index 100%
rename from packages/meteoric:camera/README.md
rename to packages/meteoric_camera/README.md
diff --git a/packages/meteoric:camera/camera-browser.js b/packages/meteoric_camera/camera-browser.js
similarity index 100%
rename from packages/meteoric:camera/camera-browser.js
rename to packages/meteoric_camera/camera-browser.js
diff --git a/packages/meteoric_camera/camera-cordova.js b/packages/meteoric_camera/camera-cordova.js
new file mode 100755
index 0000000000000000000000000000000000000000..9ab3e5728329dd4d71acbc24a109b11e5d1276a4
--- /dev/null
+++ b/packages/meteoric_camera/camera-cordova.js
@@ -0,0 +1,107 @@
+if (Meteor.isDesktop) {
+  console.log('meteor is desktop');
+
+  MeteoricCamera.photo = new ReactiveVar(null);
+  MeteoricCamera.error = new ReactiveVar(null);
+  MeteoricCamera.waitingForPermission = new ReactiveVar(null);
+
+  MeteoricCamera.canvasWidth = 0;
+  MeteoricCamera.canvasHeight = 0;
+
+  MeteoricCamera.quality = 80;
+
+  // is the current error a permission denied error?
+  MeteoricCamera.permissionDeniedError = function () {
+    return MeteoricCamera.error.get() && (
+      MeteoricCamera.error.get().name === "PermissionDeniedError" || // Chrome and Opera
+      MeteoricCamera.error.get() === "PERMISSION_DENIED" // Firefox
+    );
+  };
+
+  // is the current error a browser not supported error?
+  MeteoricCamera.browserNotSupportedError = function () {
+    return MeteoricCamera.error.get() && MeteoricCamera.error.get() === "BROWSER_NOT_SUPPORTED";
+  };
+
+
+  /**
+   * @summary Get a picture from the device's default camera.
+   * @param  {Object}   options  Options
+   * @param {Number} options.height The minimum height of the image
+   * @param {Number} options.width The minimum width of the image
+   * @param {Number} options.quality [description]
+   * @param  {Function} callback A callback that is called with two arguments:
+   * 1. error, an object that contains error.message and possibly other properties
+   * depending on platform
+   * 2. data, a Data URI string with the image encoded in JPEG format, ready to
+   * use as the `src` attribute on an `<img />` tag.
+   */
+  MeteoricCamera.getPicture = function (options, callback) {
+    // if options are not passed
+    if (! callback) {
+      callback = options;
+      options = {};
+    }
+
+    desiredHeight = options.height || 640;
+    desiredWidth = options.width || 480;
+
+    // Canvas#toDataURL takes the quality as a 0-1 value, not a percentage
+    MeteoricCamera.quality = (options.quality || 49) / 100;
+
+    if (desiredHeight * 4 / 3 > desiredWidth) {
+      MeteoricCamera.canvasWidth = desiredHeight * 4 / 3;
+      MeteoricCamera.canvasHeight = desiredHeight;
+    } else {
+      MeteoricCamera.canvasHeight = desiredWidth * 3 / 4;
+      MeteoricCamera.canvasWidth = desiredWidth;
+    }
+
+    MeteoricCamera.canvasWidth = Math.round(MeteoricCamera.canvasWidth);
+    MeteoricCamera.canvasHeight = Math.round(MeteoricCamera.canvasHeight);
+
+
+    IonModal.open("viewfinder");
+    // var view;
+
+    MeteoricCamera.closeAndCallback = function () {
+      var originalArgs = arguments;
+      IonModal.close();
+      MeteoricCamera.photo.set(null);
+      callback.apply(null, originalArgs);
+    };
+
+    // view = UI.renderWithData(Template.viewfinder);
+    // UI.insert(view, document.body);
+  };
+
+} else {
+  MeteoricCamera.getPicture = function (options, callback) {
+    // if options are not passed
+    if (! callback) {
+      callback = options;
+      options = {};
+    }
+
+    var success = function (data) {
+      callback(null, "data:image/jpeg;base64," + data);
+    };
+
+    var failure = function (error) {
+      callback(new Meteor.Error("cordovaError", error));
+    };
+
+    navigator.camera.getPicture(success, failure,
+      _.extend(options, {
+        quality: options.quality || 60,
+        targetWidth: options.width || 640,
+        targetHeight: options.height || 480,
+        destinationType: Camera.DestinationType.DATA_URL,
+        correctOrientation: true,
+        encodingType: Camera.EncodingType.JPEG,
+        allowEdit: true
+      })
+    );
+  };
+
+}
diff --git a/packages/meteoric:camera/camera.js b/packages/meteoric_camera/camera.js
similarity index 100%
rename from packages/meteoric:camera/camera.js
rename to packages/meteoric_camera/camera.js
diff --git a/packages/meteoric:camera/camera.less b/packages/meteoric_camera/camera.less
similarity index 100%
rename from packages/meteoric:camera/camera.less
rename to packages/meteoric_camera/camera.less
diff --git a/packages/meteoric:camera/i18n/en.i18n.json b/packages/meteoric_camera/i18n/en.i18n.json
similarity index 100%
rename from packages/meteoric:camera/i18n/en.i18n.json
rename to packages/meteoric_camera/i18n/en.i18n.json
diff --git a/packages/meteoric:camera/i18n/fr.i18n.json b/packages/meteoric_camera/i18n/fr.i18n.json
similarity index 100%
rename from packages/meteoric:camera/i18n/fr.i18n.json
rename to packages/meteoric_camera/i18n/fr.i18n.json
diff --git a/packages/meteoric:camera/package-tap.i18n b/packages/meteoric_camera/package-tap.i18n
similarity index 100%
rename from packages/meteoric:camera/package-tap.i18n
rename to packages/meteoric_camera/package-tap.i18n
diff --git a/packages/meteoric:camera/package.js b/packages/meteoric_camera/package.js
similarity index 79%
rename from packages/meteoric:camera/package.js
rename to packages/meteoric_camera/package.js
index 606235c39adf4b491f974202fd1f6ffa471b0352..05d592800d415e4e48ce31119d3ba926adbe7f53 100755
--- a/packages/meteoric:camera/package.js
+++ b/packages/meteoric_camera/package.js
@@ -28,11 +28,18 @@ Package.onUse(function(api) {
     'templates/viewfinder.js'
   ], ['web.browser']);
 
+  api.addFiles([
+    'camera-cordova.js',
+    'camera.less',
+    'templates/errorMessage.html',
+    'templates/permissionDenied.html',
+    'templates/viewfinder.html',
+    'templates/viewfinder.js'
+  ], ['web.cordova'])
+
   api.addFiles([
     "i18n/en.i18n.json",
     "i18n/fr.i18n.json"
   ], ["client", "server"]);
 
-
-  api.addFiles('camera-cordova.js', ['web.cordova']);
 });
diff --git a/packages/meteoric:camera/templates/errorMessage.html b/packages/meteoric_camera/templates/errorMessage.html
similarity index 100%
rename from packages/meteoric:camera/templates/errorMessage.html
rename to packages/meteoric_camera/templates/errorMessage.html
diff --git a/packages/meteoric:camera/templates/permissionDenied.html b/packages/meteoric_camera/templates/permissionDenied.html
similarity index 100%
rename from packages/meteoric:camera/templates/permissionDenied.html
rename to packages/meteoric_camera/templates/permissionDenied.html
diff --git a/packages/meteoric:camera/templates/viewfinder.html b/packages/meteoric_camera/templates/viewfinder.html
similarity index 100%
rename from packages/meteoric:camera/templates/viewfinder.html
rename to packages/meteoric_camera/templates/viewfinder.html
diff --git a/packages/meteoric:camera/templates/viewfinder.js b/packages/meteoric_camera/templates/viewfinder.js
similarity index 100%
rename from packages/meteoric:camera/templates/viewfinder.js
rename to packages/meteoric_camera/templates/viewfinder.js
diff --git a/packages/meteoric:ionic/.gitignore b/packages/meteoric_ionic/.gitignore
similarity index 100%
rename from packages/meteoric:ionic/.gitignore
rename to packages/meteoric_ionic/.gitignore
diff --git a/packages/meteoric:ionic/.versions b/packages/meteoric_ionic/.versions
similarity index 100%
rename from packages/meteoric:ionic/.versions
rename to packages/meteoric_ionic/.versions
diff --git a/packages/meteoric:ionic/GUIDE.md b/packages/meteoric_ionic/GUIDE.md
similarity index 100%
rename from packages/meteoric:ionic/GUIDE.md
rename to packages/meteoric_ionic/GUIDE.md
diff --git a/packages/meteoric:ionic/LICENSE b/packages/meteoric_ionic/LICENSE
similarity index 100%
rename from packages/meteoric:ionic/LICENSE
rename to packages/meteoric_ionic/LICENSE
diff --git a/packages/meteoric:ionic/README.md b/packages/meteoric_ionic/README.md
similarity index 100%
rename from packages/meteoric:ionic/README.md
rename to packages/meteoric_ionic/README.md
diff --git a/packages/meteoric:ionic/components/ionActionSheet/ionActionSheet.html b/packages/meteoric_ionic/components/ionActionSheet/ionActionSheet.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionActionSheet/ionActionSheet.html
rename to packages/meteoric_ionic/components/ionActionSheet/ionActionSheet.html
diff --git a/packages/meteoric:ionic/components/ionActionSheet/ionActionSheet.js b/packages/meteoric_ionic/components/ionActionSheet/ionActionSheet.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionActionSheet/ionActionSheet.js
rename to packages/meteoric_ionic/components/ionActionSheet/ionActionSheet.js
diff --git a/packages/meteoric:ionic/components/ionBackdrop/ionBackdrop.html b/packages/meteoric_ionic/components/ionBackdrop/ionBackdrop.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionBackdrop/ionBackdrop.html
rename to packages/meteoric_ionic/components/ionBackdrop/ionBackdrop.html
diff --git a/packages/meteoric:ionic/components/ionBackdrop/ionBackdrop.js b/packages/meteoric_ionic/components/ionBackdrop/ionBackdrop.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionBackdrop/ionBackdrop.js
rename to packages/meteoric_ionic/components/ionBackdrop/ionBackdrop.js
diff --git a/packages/meteoric:ionic/components/ionBody/ionBody.html b/packages/meteoric_ionic/components/ionBody/ionBody.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionBody/ionBody.html
rename to packages/meteoric_ionic/components/ionBody/ionBody.html
diff --git a/packages/meteoric:ionic/components/ionBody/ionBody.js b/packages/meteoric_ionic/components/ionBody/ionBody.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionBody/ionBody.js
rename to packages/meteoric_ionic/components/ionBody/ionBody.js
diff --git a/packages/meteoric:ionic/components/ionContent/ionContent.html b/packages/meteoric_ionic/components/ionContent/ionContent.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionContent/ionContent.html
rename to packages/meteoric_ionic/components/ionContent/ionContent.html
diff --git a/packages/meteoric:ionic/components/ionContent/ionContent.js b/packages/meteoric_ionic/components/ionContent/ionContent.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionContent/ionContent.js
rename to packages/meteoric_ionic/components/ionContent/ionContent.js
diff --git a/packages/meteoric:ionic/components/ionFooterBar/ionFooterBar.html b/packages/meteoric_ionic/components/ionFooterBar/ionFooterBar.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionFooterBar/ionFooterBar.html
rename to packages/meteoric_ionic/components/ionFooterBar/ionFooterBar.html
diff --git a/packages/meteoric:ionic/components/ionFooterBar/ionFooterBar.js b/packages/meteoric_ionic/components/ionFooterBar/ionFooterBar.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionFooterBar/ionFooterBar.js
rename to packages/meteoric_ionic/components/ionFooterBar/ionFooterBar.js
diff --git a/packages/meteoric:ionic/components/ionHeaderBar/ionHeaderBar.html b/packages/meteoric_ionic/components/ionHeaderBar/ionHeaderBar.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionHeaderBar/ionHeaderBar.html
rename to packages/meteoric_ionic/components/ionHeaderBar/ionHeaderBar.html
diff --git a/packages/meteoric:ionic/components/ionHeaderBar/ionHeaderBar.js b/packages/meteoric_ionic/components/ionHeaderBar/ionHeaderBar.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionHeaderBar/ionHeaderBar.js
rename to packages/meteoric_ionic/components/ionHeaderBar/ionHeaderBar.js
diff --git a/packages/meteoric:ionic/components/ionIcon/ionIcon.html b/packages/meteoric_ionic/components/ionIcon/ionIcon.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionIcon/ionIcon.html
rename to packages/meteoric_ionic/components/ionIcon/ionIcon.html
diff --git a/packages/meteoric:ionic/components/ionIcon/ionIcon.js b/packages/meteoric_ionic/components/ionIcon/ionIcon.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionIcon/ionIcon.js
rename to packages/meteoric_ionic/components/ionIcon/ionIcon.js
diff --git a/packages/meteoric:ionic/components/ionItem/ionItem.html b/packages/meteoric_ionic/components/ionItem/ionItem.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionItem/ionItem.html
rename to packages/meteoric_ionic/components/ionItem/ionItem.html
diff --git a/packages/meteoric:ionic/components/ionItem/ionItem.js b/packages/meteoric_ionic/components/ionItem/ionItem.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionItem/ionItem.js
rename to packages/meteoric_ionic/components/ionItem/ionItem.js
diff --git a/packages/meteoric:ionic/components/ionKeyboard/ionInputFocus.js b/packages/meteoric_ionic/components/ionKeyboard/ionInputFocus.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionKeyboard/ionInputFocus.js
rename to packages/meteoric_ionic/components/ionKeyboard/ionInputFocus.js
diff --git a/packages/meteoric:ionic/components/ionKeyboard/ionKeyboard.js b/packages/meteoric_ionic/components/ionKeyboard/ionKeyboard.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionKeyboard/ionKeyboard.js
rename to packages/meteoric_ionic/components/ionKeyboard/ionKeyboard.js
diff --git a/packages/meteoric:ionic/components/ionList/ionList.html b/packages/meteoric_ionic/components/ionList/ionList.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionList/ionList.html
rename to packages/meteoric_ionic/components/ionList/ionList.html
diff --git a/packages/meteoric:ionic/components/ionList/ionList.js b/packages/meteoric_ionic/components/ionList/ionList.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionList/ionList.js
rename to packages/meteoric_ionic/components/ionList/ionList.js
diff --git a/packages/meteoric:ionic/components/ionListButton/ionListButton.html b/packages/meteoric_ionic/components/ionListButton/ionListButton.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionListButton/ionListButton.html
rename to packages/meteoric_ionic/components/ionListButton/ionListButton.html
diff --git a/packages/meteoric:ionic/components/ionListButton/ionListButton.js b/packages/meteoric_ionic/components/ionListButton/ionListButton.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionListButton/ionListButton.js
rename to packages/meteoric_ionic/components/ionListButton/ionListButton.js
diff --git a/packages/meteoric:ionic/components/ionLoading/ionLoading.html b/packages/meteoric_ionic/components/ionLoading/ionLoading.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionLoading/ionLoading.html
rename to packages/meteoric_ionic/components/ionLoading/ionLoading.html
diff --git a/packages/meteoric:ionic/components/ionLoading/ionLoading.js b/packages/meteoric_ionic/components/ionLoading/ionLoading.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionLoading/ionLoading.js
rename to packages/meteoric_ionic/components/ionLoading/ionLoading.js
diff --git a/packages/meteoric:ionic/components/ionModal/ionModal.html b/packages/meteoric_ionic/components/ionModal/ionModal.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionModal/ionModal.html
rename to packages/meteoric_ionic/components/ionModal/ionModal.html
diff --git a/packages/meteoric:ionic/components/ionModal/ionModal.js b/packages/meteoric_ionic/components/ionModal/ionModal.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionModal/ionModal.js
rename to packages/meteoric_ionic/components/ionModal/ionModal.js
diff --git a/packages/meteoric:ionic/components/ionNavBackButton/ionNavBackButton.html b/packages/meteoric_ionic/components/ionNavBackButton/ionNavBackButton.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionNavBackButton/ionNavBackButton.html
rename to packages/meteoric_ionic/components/ionNavBackButton/ionNavBackButton.html
diff --git a/packages/meteoric:ionic/components/ionNavBackButton/ionNavBackButton.js b/packages/meteoric_ionic/components/ionNavBackButton/ionNavBackButton.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionNavBackButton/ionNavBackButton.js
rename to packages/meteoric_ionic/components/ionNavBackButton/ionNavBackButton.js
diff --git a/packages/meteoric:ionic/components/ionNavBar/ionNavBar.html b/packages/meteoric_ionic/components/ionNavBar/ionNavBar.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionNavBar/ionNavBar.html
rename to packages/meteoric_ionic/components/ionNavBar/ionNavBar.html
diff --git a/packages/meteoric:ionic/components/ionNavBar/ionNavBar.js b/packages/meteoric_ionic/components/ionNavBar/ionNavBar.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionNavBar/ionNavBar.js
rename to packages/meteoric_ionic/components/ionNavBar/ionNavBar.js
diff --git a/packages/meteoric:ionic/components/ionNavView/ionNavView.html b/packages/meteoric_ionic/components/ionNavView/ionNavView.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionNavView/ionNavView.html
rename to packages/meteoric_ionic/components/ionNavView/ionNavView.html
diff --git a/packages/meteoric:ionic/components/ionNavView/ionNavView.js b/packages/meteoric_ionic/components/ionNavView/ionNavView.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionNavView/ionNavView.js
rename to packages/meteoric_ionic/components/ionNavView/ionNavView.js
diff --git a/packages/meteoric:ionic/components/ionPane/ionPane.html b/packages/meteoric_ionic/components/ionPane/ionPane.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionPane/ionPane.html
rename to packages/meteoric_ionic/components/ionPane/ionPane.html
diff --git a/packages/meteoric:ionic/components/ionPane/ionPane.js b/packages/meteoric_ionic/components/ionPane/ionPane.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionPane/ionPane.js
rename to packages/meteoric_ionic/components/ionPane/ionPane.js
diff --git a/packages/meteoric:ionic/components/ionPopover/ionPopover.html b/packages/meteoric_ionic/components/ionPopover/ionPopover.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionPopover/ionPopover.html
rename to packages/meteoric_ionic/components/ionPopover/ionPopover.html
diff --git a/packages/meteoric:ionic/components/ionPopover/ionPopover.js b/packages/meteoric_ionic/components/ionPopover/ionPopover.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionPopover/ionPopover.js
rename to packages/meteoric_ionic/components/ionPopover/ionPopover.js
diff --git a/packages/meteoric:ionic/components/ionPopup/ionPopup.html b/packages/meteoric_ionic/components/ionPopup/ionPopup.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionPopup/ionPopup.html
rename to packages/meteoric_ionic/components/ionPopup/ionPopup.html
diff --git a/packages/meteoric:ionic/components/ionPopup/ionPopup.js b/packages/meteoric_ionic/components/ionPopup/ionPopup.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionPopup/ionPopup.js
rename to packages/meteoric_ionic/components/ionPopup/ionPopup.js
diff --git a/packages/meteoric:ionic/components/ionRadio/ionRadio.html b/packages/meteoric_ionic/components/ionRadio/ionRadio.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionRadio/ionRadio.html
rename to packages/meteoric_ionic/components/ionRadio/ionRadio.html
diff --git a/packages/meteoric:ionic/components/ionRadio/ionRadio.js b/packages/meteoric_ionic/components/ionRadio/ionRadio.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionRadio/ionRadio.js
rename to packages/meteoric_ionic/components/ionRadio/ionRadio.js
diff --git a/packages/meteoric:ionic/components/ionSideMenu/ionSideMenu.html b/packages/meteoric_ionic/components/ionSideMenu/ionSideMenu.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionSideMenu/ionSideMenu.html
rename to packages/meteoric_ionic/components/ionSideMenu/ionSideMenu.html
diff --git a/packages/meteoric:ionic/components/ionSideMenu/ionSideMenu.js b/packages/meteoric_ionic/components/ionSideMenu/ionSideMenu.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionSideMenu/ionSideMenu.js
rename to packages/meteoric_ionic/components/ionSideMenu/ionSideMenu.js
diff --git a/packages/meteoric:ionic/components/ionSideMenuContainer/ionSideMenuContainer.html b/packages/meteoric_ionic/components/ionSideMenuContainer/ionSideMenuContainer.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionSideMenuContainer/ionSideMenuContainer.html
rename to packages/meteoric_ionic/components/ionSideMenuContainer/ionSideMenuContainer.html
diff --git a/packages/meteoric:ionic/components/ionSideMenuContainer/ionSideMenuContainer.js b/packages/meteoric_ionic/components/ionSideMenuContainer/ionSideMenuContainer.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionSideMenuContainer/ionSideMenuContainer.js
rename to packages/meteoric_ionic/components/ionSideMenuContainer/ionSideMenuContainer.js
diff --git a/packages/meteoric:ionic/components/ionSideMenuContent/ionSideMenuContent.html b/packages/meteoric_ionic/components/ionSideMenuContent/ionSideMenuContent.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionSideMenuContent/ionSideMenuContent.html
rename to packages/meteoric_ionic/components/ionSideMenuContent/ionSideMenuContent.html
diff --git a/packages/meteoric:ionic/components/ionSideMenuContent/ionSideMenuContent.js b/packages/meteoric_ionic/components/ionSideMenuContent/ionSideMenuContent.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionSideMenuContent/ionSideMenuContent.js
rename to packages/meteoric_ionic/components/ionSideMenuContent/ionSideMenuContent.js
diff --git a/packages/meteoric:ionic/components/ionSideMenus/ionSideMenus.html b/packages/meteoric_ionic/components/ionSideMenus/ionSideMenus.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionSideMenus/ionSideMenus.html
rename to packages/meteoric_ionic/components/ionSideMenus/ionSideMenus.html
diff --git a/packages/meteoric:ionic/components/ionSideMenus/ionSideMenus.js b/packages/meteoric_ionic/components/ionSideMenus/ionSideMenus.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionSideMenus/ionSideMenus.js
rename to packages/meteoric_ionic/components/ionSideMenus/ionSideMenus.js
diff --git a/packages/meteoric:ionic/components/ionSlide/ionSlide.html b/packages/meteoric_ionic/components/ionSlide/ionSlide.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionSlide/ionSlide.html
rename to packages/meteoric_ionic/components/ionSlide/ionSlide.html
diff --git a/packages/meteoric:ionic/components/ionSlide/ionSlide.js b/packages/meteoric_ionic/components/ionSlide/ionSlide.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionSlide/ionSlide.js
rename to packages/meteoric_ionic/components/ionSlide/ionSlide.js
diff --git a/packages/meteoric:ionic/components/ionSlideBox/ionSlideBox.html b/packages/meteoric_ionic/components/ionSlideBox/ionSlideBox.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionSlideBox/ionSlideBox.html
rename to packages/meteoric_ionic/components/ionSlideBox/ionSlideBox.html
diff --git a/packages/meteoric:ionic/components/ionSlideBox/ionSlideBox.js b/packages/meteoric_ionic/components/ionSlideBox/ionSlideBox.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionSlideBox/ionSlideBox.js
rename to packages/meteoric_ionic/components/ionSlideBox/ionSlideBox.js
diff --git a/packages/meteoric:ionic/components/ionSpinner/ionSpinner.html b/packages/meteoric_ionic/components/ionSpinner/ionSpinner.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionSpinner/ionSpinner.html
rename to packages/meteoric_ionic/components/ionSpinner/ionSpinner.html
diff --git a/packages/meteoric:ionic/components/ionSpinner/ionSpinner.js b/packages/meteoric_ionic/components/ionSpinner/ionSpinner.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionSpinner/ionSpinner.js
rename to packages/meteoric_ionic/components/ionSpinner/ionSpinner.js
diff --git a/packages/meteoric:ionic/components/ionSubfooterBar/ionSubfooterBar.html b/packages/meteoric_ionic/components/ionSubfooterBar/ionSubfooterBar.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionSubfooterBar/ionSubfooterBar.html
rename to packages/meteoric_ionic/components/ionSubfooterBar/ionSubfooterBar.html
diff --git a/packages/meteoric:ionic/components/ionSubfooterBar/ionSubfooterBar.js b/packages/meteoric_ionic/components/ionSubfooterBar/ionSubfooterBar.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionSubfooterBar/ionSubfooterBar.js
rename to packages/meteoric_ionic/components/ionSubfooterBar/ionSubfooterBar.js
diff --git a/packages/meteoric:ionic/components/ionSubheaderBar/ionSubheaderBar.html b/packages/meteoric_ionic/components/ionSubheaderBar/ionSubheaderBar.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionSubheaderBar/ionSubheaderBar.html
rename to packages/meteoric_ionic/components/ionSubheaderBar/ionSubheaderBar.html
diff --git a/packages/meteoric:ionic/components/ionSubheaderBar/ionSubheaderBar.js b/packages/meteoric_ionic/components/ionSubheaderBar/ionSubheaderBar.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionSubheaderBar/ionSubheaderBar.js
rename to packages/meteoric_ionic/components/ionSubheaderBar/ionSubheaderBar.js
diff --git a/packages/meteoric:ionic/components/ionTab/ionTab.html b/packages/meteoric_ionic/components/ionTab/ionTab.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionTab/ionTab.html
rename to packages/meteoric_ionic/components/ionTab/ionTab.html
diff --git a/packages/meteoric:ionic/components/ionTab/ionTab.js b/packages/meteoric_ionic/components/ionTab/ionTab.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionTab/ionTab.js
rename to packages/meteoric_ionic/components/ionTab/ionTab.js
diff --git a/packages/meteoric:ionic/components/ionTabs/ionTabs.html b/packages/meteoric_ionic/components/ionTabs/ionTabs.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionTabs/ionTabs.html
rename to packages/meteoric_ionic/components/ionTabs/ionTabs.html
diff --git a/packages/meteoric:ionic/components/ionTabs/ionTabs.js b/packages/meteoric_ionic/components/ionTabs/ionTabs.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionTabs/ionTabs.js
rename to packages/meteoric_ionic/components/ionTabs/ionTabs.js
diff --git a/packages/meteoric:ionic/components/ionView/ionView.html b/packages/meteoric_ionic/components/ionView/ionView.html
similarity index 100%
rename from packages/meteoric:ionic/components/ionView/ionView.html
rename to packages/meteoric_ionic/components/ionView/ionView.html
diff --git a/packages/meteoric:ionic/components/ionView/ionView.js b/packages/meteoric_ionic/components/ionView/ionView.js
similarity index 100%
rename from packages/meteoric:ionic/components/ionView/ionView.js
rename to packages/meteoric_ionic/components/ionView/ionView.js
diff --git a/packages/meteoric:ionic/package.js b/packages/meteoric_ionic/package.js
similarity index 100%
rename from packages/meteoric:ionic/package.js
rename to packages/meteoric_ionic/package.js
diff --git a/packages/meteoric:ionic/vendor/slick.css b/packages/meteoric_ionic/vendor/slick.css
similarity index 100%
rename from packages/meteoric:ionic/vendor/slick.css
rename to packages/meteoric_ionic/vendor/slick.css
diff --git a/packages/meteoric:ionic/vendor/slick.js b/packages/meteoric_ionic/vendor/slick.js
similarity index 100%
rename from packages/meteoric:ionic/vendor/slick.js
rename to packages/meteoric_ionic/vendor/slick.js
diff --git a/packages/meteoric:ionic/vendor/slip.js b/packages/meteoric_ionic/vendor/slip.js
similarity index 100%
rename from packages/meteoric:ionic/vendor/slip.js
rename to packages/meteoric_ionic/vendor/slip.js
diff --git a/packages/meteoric:ionic/vendor/snap.css b/packages/meteoric_ionic/vendor/snap.css
similarity index 100%
rename from packages/meteoric:ionic/vendor/snap.css
rename to packages/meteoric_ionic/vendor/snap.css
diff --git a/packages/meteoric:ionic/vendor/snap.js b/packages/meteoric_ionic/vendor/snap.js
similarity index 100%
rename from packages/meteoric:ionic/vendor/snap.js
rename to packages/meteoric_ionic/vendor/snap.js
diff --git a/packages/meteoric:ionic/versions.json b/packages/meteoric_ionic/versions.json
similarity index 100%
rename from packages/meteoric:ionic/versions.json
rename to packages/meteoric_ionic/versions.json
diff --git a/project-tap.i18n b/project-tap.i18n
index 4995e562cd3df653608a6434c9b570354deb7ef1..1792dbfc468f3a5c6f9d902c3c44e7450c747acd 100644
--- a/project-tap.i18n
+++ b/project-tap.i18n
@@ -1,5 +1,6 @@
 // project-root/project-tap.i18n
 {
     "supported_languages": ["en","fr"],
-    "i18n_files_route": "/i18n"
+    "cdn_path" : "i18n",
+    "preloaded_langs": ["*"]
 }
diff --git a/server/main.js b/server/main.js
index 2c0b3d339e6dbfea62bac3599fca6562e4101244..795bc41ee41ee59f498ce0a437da687a47437195 100644
--- a/server/main.js
+++ b/server/main.js
@@ -1,6 +1,6 @@
 import '../imports/startup/server';
 
 import '../imports/api/server/config.js';
-import '../imports/api/server/kadira.js';
+// import '../imports/api/server/kadira.js';
 import '../imports/api/server/publish.js';
 import '../imports/api/server/method.js';