all files / sync/gpii/node_modules/gsettingsBridge/ gsettings_bridge.js

98.08% Statements 51/52
90% Branches 9/10
100% Functions 4/4
98.08% Lines 51/52
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115                                                                                    14× 14× 14× 25× 25× 25×   25×       24× 74×     74×     25× 25×     14×     25× 25× 25× 26× 26× 26×   26× 87×   86× 86× 86× 86×         26× 26×     25×    
/*
 * GPII Node.js GSettings Bridge
 *
 * Copyright 2012 Steven Githens
 *
 * Licensed under the New BSD license. You may not use this file except in
 * compliance with this License.
 *
 * You may obtain a copy of the License at
 * https://github.com/GPII/linux/blob/master/LICENSE.txt
 *
 * The research leading to these results has received funding from the European Union's
 * Seventh Framework Programme (FP7/2007-2013)
 * under grant agreement no. 289016.
 */
 
"use strict";
 
var fluid = require("universal");
var gpii = fluid.registerNamespace("gpii");
var nodeGSettings = require("./nodegsettings/build/Release/nodegsettings.node");
 
fluid.registerNamespace("gpii.launch");
fluid.registerNamespace("gpii.gsettings");
 
fluid.defaults("gpii.gsettings.setSingleKey", {
    gradeNames: "fluid.function",
    argumentMap: {
        schemaId: 0,
        key: 1,
        value: 2
    }
});
 
fluid.defaults("gpii.gsettings.getSingleKey", {
    gradeNames: "fluid.function",
    argumentMap: {
        schemaId: 0,
        key: 1
    }
});
 
gpii.gsettings.getSingleKey = function (schemaId, key) {
    var keys = nodeGSettings.get_gsetting_keys(schemaId);
    if (keys.indexOf(key) !== -1) {
        return nodeGSettings.get_gsetting(schemaId, key);
    } else {
        return undefined;
    }
};
 
gpii.gsettings.setSingleKey = function (schemaId, key, value) {
    var keys = nodeGSettings.get_gsetting_keys(schemaId);
    if (keys.indexOf(key) !== -1) {
        nodeGSettings.set_gsetting(schemaId, key, value);
    }
};
 
gpii.gsettings.get = function (settingsarray) {
    var app = fluid.copy(settingsarray);
    for (var appId in app) {
        for (var j = 0; j < app[appId].length; j++) {
            var schemaId = app[appId][j].options.schema;
            var settings = app[appId][j].settings;
            var keys = nodeGSettings.get_gsetting_keys(schemaId);
 
            if (settings === null) {
                settings = {};
                for (var k = 0; k < keys.length; k++) {
                    var key = keys[k];
                    settings[key] = nodeGSettings.get_gsetting(schemaId, key);
                }
            }
            else {
                for (var settingKey in settings) {
                    Iif (keys.indexOf(settingKey) === -1) {
                        continue;
                    }
                    settings[settingKey] = nodeGSettings.get_gsetting(schemaId, settingKey);
                }
            }
            var noOptions = { settings: settings };
            app[appId][j] = noOptions;
        }
    }
    return app;
};
 
gpii.gsettings.set = function (settingsarray) {
    var app = fluid.copy(settingsarray);
    for (var appId in app) {
        for (var j = 0; j < app[appId].length; j++) {
            var schemaId = app[appId][j].options.schema;
            var settings = app[appId][j].settings;
            var keys = nodeGSettings.get_gsetting_keys(schemaId);
 
            for (var settingKey in settings) {
                if (keys.indexOf(settingKey) === -1) {
                    continue;
                }
                var value = settings[settingKey];
                var oldValue = nodeGSettings.get_gsetting(schemaId, settingKey);
                nodeGSettings.set_gsetting(schemaId, settingKey, value);
                settings[settingKey] = {
                    "oldValue": oldValue,
                    "newValue": value
                };
            }
            var noOptions = { settings: settings};
            app[appId][j] = noOptions;
        }
    }
    return app;
};