Skip to content
This repository was archived by the owner on Dec 29, 2022. It is now read-only.

Commit 470d675

Browse files
committed
preview, in progress
1 parent 4bf3964 commit 470d675

File tree

4 files changed

+108
-8
lines changed

4 files changed

+108
-8
lines changed

elements/x-preview/preview.html

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<!doctype html>
2+
<html>
3+
<head>
4+
<title>Element Preview</title>
5+
6+
<script src="../../components/platform/platform.js"></script>
7+
<link rel="import" href="x-gist-element-preview.html">
8+
9+
<style>
10+
11+
body, html {
12+
margin: 0;
13+
height: 100%;
14+
}
15+
16+
x-gist-element-preview {
17+
position: absolute;
18+
top: 0;
19+
right: 0;
20+
bottom: 0;
21+
left: 0;
22+
}
23+
24+
</style>
25+
26+
</head>
27+
<body unresolved>
28+
29+
<x-gist-element-preview id="preview"></x-gist-element-preview>
30+
<script>
31+
addEventListener('polymer-ready', function() {
32+
var fileId = window.location.hash.replace('#', '')
33+
document.getElementById('preview').open(fileId);
34+
})
35+
36+
</script>
37+
38+
</body>
39+
</html>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<!--
2+
Copyright 2013 The Polymer Authors. All rights reserved.
3+
Use of this source code is governed by a BSD-style
4+
license that can be found in the LICENSE file.
5+
-->
6+
7+
<link rel="import" href="x-preview.html">
8+
<link rel="import" href="x-github-info.html">
9+
<link rel="import" href="../../components/github-elements/github-elements.html">
10+
11+
<polymer-element name="x-gist-element-preview" extends="x-preview-iframe">
12+
<template>
13+
<github-element id="github" token="{{token}}" on-files-loaded="{{documentLoaded}}" on-token-changed="{{tokenChangeHandler}}"></github-element>
14+
<x-github-info id="info" token="{{token}}"></x-github-info>
15+
<shadow></shadow>
16+
</template>
17+
<script>
18+
19+
(function() {
20+
21+
Polymer('x-gist-element-preview', {
22+
23+
open: function(id) {
24+
this.$.github.load(id);
25+
},
26+
27+
documentLoaded: function(e, detail) {
28+
var doc = detail && detail[this.$.info.fileName];
29+
var re = /<polymer-element[^>]*name=(?:'|")([^'"]*)(?:'|")/;
30+
var match = doc && doc.content && doc.content.match(re);
31+
if (match) {
32+
var name = match[1];
33+
this.htmlContent = doc.content + '\n\n<' + name +'></' + name + '>';
34+
}
35+
}
36+
37+
});
38+
39+
})();
40+
41+
</script>
42+
</polymer-element>

elements/x-preview/x-github-info.html

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<!--
2+
Copyright 2013 The Polymer Authors. All rights reserved.
3+
Use of this source code is governed by a BSD-style
4+
license that can be found in the LICENSE file.
5+
-->
6+
7+
<polymer-element name="x-github-info" attributes="fileName user token">
8+
<script>
9+
10+
Polymer('x-github-info', {
11+
12+
fileName: 'designer.html',
13+
user: 'designer-polymer',
14+
token: '77777d8808da580cd6134b7390b5fd306c66d1d6'
15+
16+
});
17+
18+
</script>
19+
</polymer-element>

elements/x-preview/x-preview.html

+8-8
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@
9191

9292
<polymer-element name="x-preview-iframe" extends="x-preview">
9393
<template>
94-
<iframe id="output" style="width: 100%; height: 100%;"></iframe>
94+
<iframe id="output" style="width: 100%; height: 100%; border: 0;"></iframe>
9595
</template>
9696
<script>
9797

@@ -114,27 +114,27 @@
114114

115115
(function() {
116116

117-
var previewWindow;
118-
119117
Polymer('x-preview-window', {
120118

119+
windowName: 'preview',
120+
121121
prepareWindow: function() {
122-
if (previewWindow) {
123-
previewWindow.close();
122+
if (this.previewWindow) {
123+
this.previewWindow.close();
124124
}
125-
previewWindow = window.open('', '', null, false);
125+
this.previewWindow = window.open(this.windowName, '', null, false);
126126
},
127127

128128
open: function(source) {
129129
this.htmlContent = source;
130130
this.prepareWindow();
131-
this.writeToDoc(previewWindow.document);
131+
this.writeToDoc(this.previewWindow.document);
132132
},
133133

134134
openSource: function(source) {
135135
this.htmlContent = source;
136136
this.prepareWindow();
137-
this.writeSourceToDoc(previewWindow.document);
137+
this.writeSourceToDoc(this.previewWindow.document);
138138
}
139139
});
140140

0 commit comments

Comments
 (0)