##// END OF EJS Templates
use dropdown for slideshow cell-type select
use dropdown for slideshow cell-type select

File last commit:

r9059:f5dab450
r9059:f5dab450
Show More
metaui.slideshow.js
90 lines | 3.5 KiB | application/javascript | JavascriptLexer
//----------------------------------------------------------------------------
// Copyright (C) 2012 The IPython Development Team
//
// Distributed under the terms of the BSD License. The full license is in
// the file COPYING, distributed as part of this software.
//----------------------------------------------------------------------------
//============================================================================
// MetaUI Example
//============================================================================
/**
* Example Use for the MetaUI library
* add the following to your custom.js to load
* metadata UI for slideshow
*
* ```
* $.getScript('/static/js/examples/metaui.slideshow.js');
* ```
*/
// IIFE without asignement, we don't modifiy the IPython namespace
(function (IPython) {
"use strict";
var MetaUI = IPython.MetaUI;
var slideshow_preset = [];
var hslide = MetaUI.utils.checkbox_ui_generator('New Section',
function(md,value){
if (md.slideshow == undefined){md.slideshow = {}}
return md.slideshow.new_section = value},
function(md){ var ns = md.slideshow;
return (ns == undefined)? undefined: ns.new_section});
var vslide = MetaUI.utils.checkbox_ui_generator('New Subsection',
function(md,value){
if (md.slideshow == undefined){md.slideshow = {}}
return md.slideshow.new_subsection = value},
function(md){ var ns = md.slideshow;
return (ns == undefined)? undefined: ns.new_subsection});
var fragment = MetaUI.utils.checkbox_ui_generator('New Fragment',
function(md,value){
if (md.slideshow == undefined){md.slideshow = {}}
return md.slideshow.new_fragment = value},
function(md){ var ns = md.slideshow;
return (ns == undefined)? undefined: ns.new_fragment});
MetaUI.register_callback('slideshow.hslide',hslide);
MetaUI.register_callback('slideshow.vslide',vslide);
MetaUI.register_callback('slideshow.fragment',fragment);
//slideshow_preset.push('slideshow.fragment');
//slideshow_preset.push('slideshow.vslide');
//slideshow_preset.push('slideshow.hslide');
var select_type = MetaUI.utils.select_ui_generator([
["-" ,undefined ],
["Header Slide" ,"header_slide" ],
["Slide" ,"slide" ],
["Fragment" ,"fragment" ],
["Skip" ,"skip" ],
],
// setter
function(metadata,value){
// we check that the slideshow namespace exist and create it if needed
if (metadata.slideshow == undefined){metadata.slideshow = {}}
// set the value
metadata.slideshow.slide_type = value
},
//geter
function(metadata){ var ns = metadata.slideshow;
// if the slideshow namespace does not exist return `undefined`
// (will be interpreted as `false` by checkbox) otherwise
// return the value
return (ns == undefined)? undefined: ns.slide_type
},
"Slide Type");
MetaUI.register_callback('slideshow.select',select_type);
slideshow_preset.push('slideshow.select');
MetaUI.register_preset('slideshow',slideshow_preset);
MetaUI.set_preset('slideshow');
console.log('Slideshow extension for metadata editting loaded.');
}(IPython));