// Copyright (c) IPython Development Team. // Distributed under the terms of the Modified BSD License. define([ 'jquery', 'notebook/js/celltoolbar', 'base/js/dialog', 'base/js/keyboard', ], function($, celltoolbar, dialog, keyboard) { "use strict"; var CellToolbar = celltoolbar.CellToolbar; var raw_cell_preset = []; var select_type = CellToolbar.utils.select_ui_generator([ ["None", "-"], ["LaTeX", "text/latex"], ["reST", "text/restructuredtext"], ["HTML", "text/html"], ["Markdown", "text/markdown"], ["Python", "text/x-python"], ["Custom", "dialog"], ], // setter function(cell, value) { if (value === "-") { delete cell.metadata.raw_mimetype; } else if (value === 'dialog'){ var dialog = $('
').append( $("

") .text("Set the MIME type of the raw cell:") ).append( $("
") ).append( $('').attr('type','text').attr('size','25') .val(cell.metadata.raw_mimetype || "-") ); dialog.modal({ title: "Raw Cell MIME Type", body: dialog, buttons : { "Cancel": {}, "OK": { class: "btn-primary", click: function () { console.log(cell); cell.metadata.raw_mimetype = $(this).find('input').val(); console.log(cell.metadata); } } }, open : function (event, ui) { var that = $(this); // Upon ENTER, click the OK button. that.find('input[type="text"]').keydown(function (event, ui) { if (event.which === keyboard.keycodes.enter) { that.find('.btn-primary').first().click(); return false; } }); that.find('input[type="text"]').focus().select(); } }); } else { cell.metadata.raw_mimetype = value; } }, //getter function(cell) { return cell.metadata.raw_mimetype || ""; }, // name "Raw NBConvert Format" ); var register = function (notebook) { CellToolbar.register_callback('raw_cell.select', select_type, ['raw']); raw_cell_preset.push('raw_cell.select'); CellToolbar.register_preset('Raw Cell Format', raw_cell_preset, notebook); console.log('Raw Cell Format toolbar preset loaded.'); }; return {'register': register}; });