Commit 3ce0982f authored by Michael Murtaugh's avatar Michael Murtaugh
Browse files

changes to generalize, fragment support, more media types accepted for ccframe

parent 78977c9d
This diff is collapsed.
...@@ -133,8 +133,8 @@ class CCEditor { ...@@ -133,8 +133,8 @@ class CCEditor {
this.window = window; this.window = window;
this.elt.addEventListener("click", this.clicker.bind(this)); this.elt.addEventListener("click", this.clicker.bind(this));
this.elt.addEventListener("touchend", this.clicker.bind(this)); this.elt.addEventListener("touchend", this.clicker.bind(this));
window.addEventListener("hashchange", this.hashchange.bind(this)); // window.addEventListener("hashchange", this.hashchange.bind(this));
this.hashchange(); // this.hashchange();
this.setup_keys(); this.setup_keys();
} }
/* Map URL and timecode clicks */ /* Map URL and timecode clicks */
...@@ -288,7 +288,7 @@ class CCEditor { ...@@ -288,7 +288,7 @@ class CCEditor {
} }
set src (href) { set src (href) {
// console.log("cceditor.set src", href); // console.log("cceditor.set src", href);
if (href !== this.current_href) { if (href && href !== this.current_href) {
this.current_href = href; this.current_href = href;
var that = this; var that = this;
getText(href, function (err, text) { getText(href, function (err, text) {
......
...@@ -29,7 +29,7 @@ var DEFAULT_CONFIG = { ...@@ -29,7 +29,7 @@ var DEFAULT_CONFIG = {
content: [{ content: [{
type: 'component', type: 'component',
componentName: 'cceditor', componentName: 'cceditor',
componentState: { href: 'index.md', target: "editor" } componentState: { href: '', target: "editor" }
}] }]
}] }]
}] }]
...@@ -191,13 +191,51 @@ class CCEditorApp { ...@@ -191,13 +191,51 @@ class CCEditorApp {
}, },
notie: notie notie: notie
}); });
container.setTitle(componentState.href);
var initial_href = componentState.href;
if (!initial_href) {
var initial_hash = window.location.hash;
var m = initial_hash.match(/^#(.+)/);
if (m !== null) {
initial_href = m[1];
}
}
container.setTitle(initial_href);
frames_by_target[componentState.target] = editor; frames_by_target[componentState.target] = editor;
container.on("resize", function () { container.on("resize", function () {
// console.log("lm.resize"); // console.log("lm.resize");
editor.resize(); editor.resize();
}) })
editor.src = componentState.href; editor.src = initial_href;
/* HASH HANDLING */
window.addEventListener("hashchange", function (e) {
// console.log('hashchange', e);
var hash = window.location.hash,
m = hash.match(/^#(.+)/);
if (m !== null) {
hash = m[1];
// console.log("new fragment", hash);
open_in_editor(hash);
}
}, false);
function open_in_editor (href) {
var component = that.find_editor(href);
if (component) {
// console.log("found matching cceditor component", component);
component.parent.setActiveContentItem(component);
} else {
// var editstack = app.layout.root.getItemsById("editorstack")[0];
var editstack = that.get_editor_stack();
editstack.addChild({
'type': 'component',
componentName: 'cceditor',
componentState: { href: href, target: "editor" }
})
}
}
function handle_link (href, target) { function handle_link (href, target) {
// HANDLE HREF + TARGET // HANDLE HREF + TARGET
...@@ -205,19 +243,7 @@ class CCEditorApp { ...@@ -205,19 +243,7 @@ class CCEditorApp {
if (href.match(/\.md$/) && !target) { if (href.match(/\.md$/) && !target) {
// EDITOR LINK // EDITOR LINK
// console.log("editor link"); // console.log("editor link");
var component = that.find_editor(href); open_in_editor(href);
if (component) {
// console.log("found matching cceditor component", component);
component.parent.setActiveContentItem(component);
} else {
// var editstack = app.layout.root.getItemsById("editorstack")[0];
var editstack = that.get_editor_stack();
editstack.addChild({
'type': 'component',
componentName: 'cceditor',
componentState: { href: href, target: "editor" }
})
}
} else { } else {
// OTHER LINKS // OTHER LINKS
target = target || "link"; target = target || "link";
......
...@@ -72,7 +72,7 @@ class CCFrame { ...@@ -72,7 +72,7 @@ class CCFrame {
// console.log("purl", purl, "previous", previous_url) // console.log("purl", purl, "previous", previous_url)
var viewers = { var viewers = {
'video': { 'video': {
pattern: /\.(mp4|webm)$/, pattern: /\.(mp4|webm|ogv|ogg|mp3)$/,
viewer: function (m) { viewer: function (m) {
/* Check if match previous_url */ /* Check if match previous_url */
if (this.video && previous_url && previous_url.base == purl.base) { if (this.video && previous_url && previous_url.base == purl.base) {
......
function classcycler (button, target, modes) { function classcycler (button, target, modes) {
var ret = {};
var i = 0; var i = 0;
button.addEventListener("click", function () {console.log("cycle"+i, button, target); target.classList.replace(modes[i], modes[i = (i+1) % modes.length]); }); function set_index () {
var l; // nb changes i in classcycler scope
for (i=0, l=modes.length; i<l; i++) {
if (target.classList.contains(modes[i])) { return; }
}
}
button.addEventListener("click", function () {
set_index();
console.log("i", i);
target.classList.replace(modes[i], modes[i = (i+1) % modes.length]);
});
ret.set_mode = function (m) {
set_index();
target.classList.replace(modes[i], m);
}
return ret;
} }
// classcycler(gebi("toggle"), gebi("content"), "splitscreen overlay".split(" ")); // classcycler(gebi("toggle"), gebi("content"), "splitscreen overlay".split(" "));
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment