mdviewer.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // module
  2. var mdviewer = angular.module('mdviewer', [])
  3. function toArray (obj, key, value) {
  4. var arr = []
  5. for (var k in obj) {
  6. var tmp = {}
  7. tmp[key] = k
  8. tmp[value] = obj[k]
  9. arr.push(tmp)
  10. }
  11. return arr
  12. }
  13. function toObject (arr, key, value) {
  14. var obj = {}
  15. for (var i=0; i < arr.length; i++) {
  16. obj[arr[i][key]] = arr[i][value]
  17. }
  18. return obj
  19. }
  20. mdviewer.controller('popup', ['$scope', function ($scope) {
  21. function init () {
  22. chrome.extension.sendMessage({
  23. message: 'settings'
  24. }, function (res) {
  25. $scope.options = toArray(res.options, 'name', 'enabled')
  26. $scope.themes = chrome.runtime.getManifest().web_accessible_resources
  27. .filter(function (file) {return file.indexOf('/themes/') == 0})
  28. .map(function (file) {
  29. var name = file.replace(/\/themes\/(.*)\.css/,'$1')
  30. if (name == res.theme) $scope.theme = {name: name}
  31. return {name: name}
  32. })
  33. $scope.raw = res.raw
  34. $scope.$digest()
  35. })
  36. }
  37. init()
  38. $scope.onOptions = function () {
  39. chrome.extension.sendMessage({
  40. message: 'options',
  41. options: toObject(JSON.parse(angular.toJson($scope.options)), 'name', 'enabled')
  42. }, function (res) {
  43. })
  44. }
  45. $scope.onTheme = function () {
  46. chrome.extension.sendMessage({
  47. message: 'theme',
  48. theme: $scope.theme.name
  49. }, function (res) {
  50. })
  51. }
  52. $scope.onRaw = function () {
  53. $scope.raw = !$scope.raw
  54. chrome.extension.sendMessage({
  55. message: 'raw',
  56. raw: $scope.raw
  57. }, function (res) {
  58. })
  59. }
  60. $scope.onDefaults = function () {
  61. chrome.extension.sendMessage({
  62. message: 'defaults'
  63. }, function (res) {
  64. init()
  65. })
  66. }
  67. }])