@@ -76,6 +77,16 @@ var EditView = React.createClass({
handleItemChange: function(item, key, value) {
this.props.dispatch(actions.edit.updateProfileItem(item, key, value));
+ },
+
+ handleAddNewNode: function() {
+ var newItem = {
+ label: 'Nouveau noeud',
+ icon: '',
+ exec: '',
+ background: ''
+ };
+ this.props.dispatch(actions.edit.addProfileItem(newItem, this.props.profile));
}
});
diff --git a/js/components/edit/icon-theme-selector.js b/src/components/edit/icon-theme-selector.js
similarity index 100%
rename from js/components/edit/icon-theme-selector.js
rename to src/components/edit/icon-theme-selector.js
diff --git a/js/components/edit/item-form.js b/src/components/edit/item-form.js
similarity index 100%
rename from js/components/edit/item-form.js
rename to src/components/edit/item-form.js
diff --git a/js/components/edit/profile-menu.js b/src/components/edit/profile-menu.js
similarity index 100%
rename from js/components/edit/profile-menu.js
rename to src/components/edit/profile-menu.js
diff --git a/js/components/edit/profile-tree.js b/src/components/edit/profile-tree.js
similarity index 100%
rename from js/components/edit/profile-tree.js
rename to src/components/edit/profile-tree.js
diff --git a/js/components/edit/tree-item.js b/src/components/edit/tree-item.js
similarity index 100%
rename from js/components/edit/tree-item.js
rename to src/components/edit/tree-item.js
diff --git a/js/components/launcher/app-item.js b/src/components/launcher/app-item.js
similarity index 100%
rename from js/components/launcher/app-item.js
rename to src/components/launcher/app-item.js
diff --git a/js/components/launcher/app-list.js b/src/components/launcher/app-list.js
similarity index 100%
rename from js/components/launcher/app-list.js
rename to src/components/launcher/app-list.js
diff --git a/js/components/launcher/category-header.js b/src/components/launcher/category-header.js
similarity index 100%
rename from js/components/launcher/category-header.js
rename to src/components/launcher/category-header.js
diff --git a/js/components/launcher/launcher-view.js b/src/components/launcher/launcher-view.js
similarity index 100%
rename from js/components/launcher/launcher-view.js
rename to src/components/launcher/launcher-view.js
diff --git a/js/components/launcher/nav.js b/src/components/launcher/nav.js
similarity index 100%
rename from js/components/launcher/nav.js
rename to src/components/launcher/nav.js
diff --git a/js/components/mixins/animate.js b/src/components/mixins/animate.js
similarity index 100%
rename from js/components/mixins/animate.js
rename to src/components/mixins/animate.js
diff --git a/js/components/mixins/lazy-load.js b/src/components/mixins/lazy-load.js
similarity index 100%
rename from js/components/mixins/lazy-load.js
rename to src/components/mixins/lazy-load.js
diff --git a/js/store/actions/common.js b/src/store/actions/common.js
similarity index 100%
rename from js/store/actions/common.js
rename to src/store/actions/common.js
diff --git a/js/store/actions/edit.js b/src/store/actions/edit.js
similarity index 91%
rename from js/store/actions/edit.js
rename to src/store/actions/edit.js
index 3bc664e..5f41925 100644
--- a/js/store/actions/edit.js
+++ b/src/store/actions/edit.js
@@ -1,5 +1,6 @@
var Util = require('../../util');
var path = require('path');
+var _ = require('lodash');
// Action types
var LOAD_DESKTOP_APPS = exports.LOAD_PROFILE = 'LOAD_DESKTOP_APPS';
@@ -45,7 +46,14 @@ exports.saveProfile = function(destPath, profile) {
dispatch({ type: SAVE_PROFILE, profile: profile, path: destPath });
- return Util.System.saveJSON(destPath, profile)
+ var cleanedProfile = _.cloneDeep(profile);
+
+ Util.Tree.walk(cleanedProfile, function(item) {
+ delete item.selected;
+ delete item._key;
+ });
+
+ return Util.System.saveJSON(destPath, cleanedProfile)
.then(function() {
dispatch({ type: SAVE_PROFILE_SUCCESS, profile: profile, path: destPath });
})
diff --git a/js/store/actions/index.js b/src/store/actions/index.js
similarity index 100%
rename from js/store/actions/index.js
rename to src/store/actions/index.js
diff --git a/js/store/actions/launcher.js b/src/store/actions/launcher.js
similarity index 100%
rename from js/store/actions/launcher.js
rename to src/store/actions/launcher.js
diff --git a/js/store/index.js b/src/store/index.js
similarity index 100%
rename from js/store/index.js
rename to src/store/index.js
diff --git a/js/store/middlewares/logger.js b/src/store/middlewares/logger.js
similarity index 100%
rename from js/store/middlewares/logger.js
rename to src/store/middlewares/logger.js
diff --git a/js/store/reducers/desktop-apps.js b/src/store/reducers/desktop-apps.js
similarity index 100%
rename from js/store/reducers/desktop-apps.js
rename to src/store/reducers/desktop-apps.js
diff --git a/js/store/reducers/index.js b/src/store/reducers/index.js
similarity index 100%
rename from js/store/reducers/index.js
rename to src/store/reducers/index.js
diff --git a/js/store/reducers/profile.js b/src/store/reducers/profile.js
similarity index 77%
rename from js/store/reducers/profile.js
rename to src/store/reducers/profile.js
index af735f1..454a82d 100644
--- a/js/store/reducers/profile.js
+++ b/src/store/reducers/profile.js
@@ -4,33 +4,40 @@ var tree = require('../../util/tree');
module.exports = function(oldProfile, action) {
+ var newProfile = oldProfile || { items: [] };
+
switch(action.type) {
case actions.common.LOAD_PROFILE_SUCCESS:
- var newProfile = _.cloneDeep(action.profile);
- tree.walk(newProfile, ensureItemKey);
- return newProfile;
+ newProfile = _.cloneDeep(action.profile);
+ break;
case actions.edit.MOVE_PROFILE_ITEM:
- return moveProfileItem(oldProfile, action.movedItem, action.targetItem);
+ newProfile = moveProfileItem(oldProfile, action.movedItem, action.targetItem);
+ break;
case actions.edit.REMOVE_PROFILE_ITEM:
- return removeProfileItem(oldProfile, action.removedItem);
+ newProfile = removeProfileItem(oldProfile, action.removedItem);
+ break;
case actions.edit.ADD_PROFILE_ITEM:
- return addProfileItem(oldProfile, action.newItem, action.targetItem);
+ newProfile = addProfileItem(oldProfile, action.newItem, action.targetItem);
+ break;
case actions.edit.UPDATE_PROFILE_ITEM:
- return updateProfileItem(oldProfile, action.item, action.key, action.value);
+ newProfile = updateProfileItem(oldProfile, action.item, action.key, action.value);
+ break;
case actions.edit.SELECT_PROFILE_ITEM:
- return selectProfileItem(oldProfile, action.item);
-
- default:
- return oldProfile || null;
+ newProfile = selectProfileItem(oldProfile, action.item);
+ break;
}
+ if(newProfile) tree.walk(newProfile, ensureItemKey);
+
+ return newProfile;
+
};
function selectProfileItem(oldProfile, item) {
diff --git a/js/store/reducers/theme.js b/src/store/reducers/theme.js
similarity index 100%
rename from js/store/reducers/theme.js
rename to src/store/reducers/theme.js
diff --git a/js/util/cache.js b/src/util/cache.js
similarity index 100%
rename from js/util/cache.js
rename to src/util/cache.js
diff --git a/js/util/const.js b/src/util/const.js
similarity index 100%
rename from js/util/const.js
rename to src/util/const.js
diff --git a/js/util/debug.js b/src/util/debug.js
similarity index 100%
rename from js/util/debug.js
rename to src/util/debug.js
diff --git a/js/util/desktop-apps.js b/src/util/desktop-apps.js
similarity index 99%
rename from js/util/desktop-apps.js
rename to src/util/desktop-apps.js
index fbb03fe..3645c9c 100644
--- a/js/util/desktop-apps.js
+++ b/src/util/desktop-apps.js
@@ -46,7 +46,7 @@ exports.findAllDesktopFiles = function(baseDirs) {
if(!Array.isArray(baseDirs)) {
baseDirs = [baseDirs];
}
-
+
return promises.seq(baseDirs, function(baseDir) {
return System.findFiles('**/*.desktop', {cwd: baseDir, realpath: true});
})
diff --git a/js/util/index.js b/src/util/index.js
similarity index 58%
rename from js/util/index.js
rename to src/util/index.js
index 49a2fea..9070008 100644
--- a/js/util/index.js
+++ b/src/util/index.js
@@ -2,3 +2,6 @@ exports.System = require('./system');
exports.DesktopApps = require('./desktop-apps');
exports.Cache = require('./cache');
exports.Debug = require('./debug');
+exports.Tree = require('./tree');
+exports.Const = require('./const');
+exports.Promises = require('./promises');
diff --git a/js/util/promises.js b/src/util/promises.js
similarity index 100%
rename from js/util/promises.js
rename to src/util/promises.js
diff --git a/js/util/system.js b/src/util/system.js
similarity index 100%
rename from js/util/system.js
rename to src/util/system.js
diff --git a/js/util/tree.js b/src/util/tree.js
similarity index 100%
rename from js/util/tree.js
rename to src/util/tree.js