浏览代码

Update options page

simov 9 年之前
父节点
当前提交
37ca1f16ab
共有 3 个文件被更改,包括 109 次插入18 次删除
  1. 25 0
      content/options.html
  2. 32 18
      content/options.js
  3. 52 0
      css/options.css

+ 25 - 0
content/options.html

@@ -3,9 +3,34 @@
 <head>
   <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
   <title>Markdown Viewer</title>
+  <link href="/vendor/mdl.min.css" rel="stylesheet" type="text/css" media="all" />
+  <link href="/css/icons.css" rel="stylesheet" type="text/css" media="all" />
+  <link href="/css/options.css" rel="stylesheet" type="text/css" media="all" />
+  <script src="/vendor/mdl.min.js" type="text/javascript" charset="utf-8"></script>
   <script src="/vendor/mithril.min.js" type="text/javascript" charset="utf-8"></script>
 </head>
 <body>
+  <div id="wrapper">
+    <div class="mdl-layout mdl-js-layout mdl-layout--fixed-header">
+      <header class="mdl-layout__header">
+        <div>
+          <div class="mdl-layout__header-row">
+            <span class="mdl-layout-title">Markdown Viewer</span>
+          </div>
+        </div>
+      </header>
+    </div>
+    <main class="mdl-layout__content"></main>
+    <div id="footer-push">&nbsp;</div>
+  </div>
+  <footer class="mdl-mega-footer">
+    <div class="mdl-mega-footer__bottom-section">
+      <ul class="mdl-mega-footer__link-list">
+        <li><a href="https://chrome.google.com/webstore/detail/markdown-viewer/ckkdlimhmcjmikdlpkmbgfkaikojcbjk" class="icon-chrome">Chrome Store</a></li>
+        <li><a href="https://github.com/simov/markdown-viewer" class="icon-github">GitHub</a></li>
+      </ul>
+    </div>
+  </footer>
 </body>
 <script src="/content/options.js" type="text/javascript" charset="utf-8"></script>
 </html>

+ 32 - 18
content/options.js

@@ -9,7 +9,7 @@ var events = {
       origins: [document.querySelector('input').value]
     }, (granted) => {
       if (granted) {
-        all()
+        get()
         document.querySelector('input').value = ''
       }
     })
@@ -28,31 +28,45 @@ var events = {
   }
 }
 
-function all () {
+function get () {
   chrome.permissions.getAll((res) => {
     state.origins = res.origins
     m.redraw()
   })
 }
 
-m.mount(document.querySelector('body'), {
-  oninit: () => {
-    all()
-  },
+function oncreate (vnode) {
+  componentHandler.upgradeElements(vnode.dom)
+}
+
+get()
+
+m.mount(document.querySelector('main'), {
   view: () =>
-    m('div', [
-      m('h1', 'Permissions'),
-      m('p', 'Read and change your data on:'),
-      m('table', state.origins.map((origin) =>
-        m('tr', [
-          m('td', origin),
-          m('td', m('button', {onclick: events.remove(origin)}, 'Remove'))
+    m('.mdl-grid', [
+      m('.mdl-cell mdl-cell--8-col-tablet mdl-cell--12-col-desktop', [
+        m('h4', 'Add New Origin'),
+        m('form', [
+          m('input[placeholder="https://raw.githubusercontent.com"]'),
+          m('button[type=button].mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect',
+            {oncreate, onclick: events.add},
+            'Add')
         ])
-      )),
-      m('form', [
-        m('label', 'Origin'),
-        m('input[placeholder="https://raw.githubusercontent.com"]'),
-        m('button[type=button]', {onclick: events.add}, 'Add')
+      ]),
+      m('.mdl-cell mdl-cell--8-col-tablet mdl-cell--12-col-desktop', [
+        m('h4', 'Allowed Origins'),
+        m('table.mdl-data-table mdl-js-data-table mdl-data-table--selectable mdl-shadow--2dp',
+          state.origins.map((origin) =>
+          m('tr', [
+            m('td.mdl-data-table__cell--non-numeric', origin),
+            m('td.mdl-data-table__cell--non-numeric',
+              m('button.mdl-button mdl-js-button mdl-js-ripple-effect mdl-button--icon',
+                {oncreate, onclick: events.remove(origin), title: 'Remove'},
+                m('i.material-icons icon-remove')
+              )
+            )
+          ])
+        ))
       ])
     ])
 })

+ 52 - 0
css/options.css

@@ -0,0 +1,52 @@
+
+/*sticky footer*/
+html, body {
+  height: 100%;
+}
+#wrapper {
+  min-height: 100%;
+  height: auto !important;
+  height: 100%;
+  margin: 0 auto -52px;
+}
+footer, #footer-push {
+  height: 20px;
+  text-align: center;
+}
+
+/*center content on large screens*/
+.mdl-layout__header-row,
+.mdl-layout__content,
+.mdl-mega-footer__bottom-section {
+  max-width: 1200px;
+  margin: 0 auto;
+}
+.mdl-layout__content {
+  display: block;
+}
+
+/*header*/
+.mdl-layout__header-row { padding: 0 20px; }
+
+/*footer*/
+.mdl-mega-footer__bottom-section { padding: 0; }
+.mdl-mega-footer__link-list { display: flex; justify-content: center; margin: 0 auto; }
+.mdl-mega-footer__link-list li:last-child { margin: 0; }
+
+/*table*/
+.mdl-data-table tr {
+  transition-duration: .28s;
+  transition-timing-function: cubic-bezier(.4,0,.2,1);
+  transition-property: background-color;
+}
+.mdl-data-table tr:hover { background: #eee; }
+.mdl-data-table td { font-size: 14px; line-height: 17px; }
+.mdl-data-table i { font-size: 10px; }
+
+/*form*/
+form input {
+  font-size: 14px; line-height: 30px;
+  width: 300px;
+  padding: 0 10px; margin: 0 15px 0 0;
+  position: relative; top: 2px;
+}