| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | 
// modulevar mdviewer = angular.module('mdviewer', []);function toArray (obj, key, value) {    var arr = [];    for (var k in obj) {        var tmp = {};        tmp[key] = k;        tmp[value] = obj[k];        arr.push(tmp);    }    return arr;}function toObject (arr, key, value) {    var obj = {};    for (var i=0; i < arr.length; i++) {        obj[arr[i][key]] = arr[i][value];    }    return obj;}mdviewer.controller('popup', ['$scope', function ($scope) {    function init () {        chrome.extension.sendMessage({            message: 'settings'        }, function (res) {            $scope.options = toArray(res.options, 'name', 'enabled');                        $scope.themes = chrome.runtime.getManifest().web_accessible_resources                .filter(function (file) {return file.indexOf('/themes/') == 0;})                .map(function (file) {                    var name = file.replace(/\/themes\/(.*)\.css/,'$1');                    if (name == res.theme) $scope.theme = {name: name};                    return {name: name};                });            $scope.raw = res.raw;            $scope.$digest();        });    }    init();        $scope.onOptions = function () {        chrome.extension.sendMessage({            message: 'options',            options: toObject(JSON.parse(angular.toJson($scope.options)), 'name', 'enabled')        }, function (res) {                    });    }    $scope.onTheme = function () {        chrome.extension.sendMessage({            message: 'theme',            theme: $scope.theme.name        }, function (res) {        });    }    $scope.onRaw = function () {        $scope.raw = !$scope.raw;        chrome.extension.sendMessage({            message: 'raw',            raw: $scope.raw        }, function (res) {                    });    }    $scope.onDefaults = function () {        chrome.extension.sendMessage({            message: 'defaults'        }, function (res) {            init();        });    }}]);
 |