├── sagenb ├── data │ ├── nodoctest.py │ ├── jquery │ │ └── plugins │ │ │ ├── achtung │ │ │ ├── version.txt │ │ │ ├── LICENSE.txt │ │ │ └── AUTHORS.txt │ │ │ ├── farbtastic │ │ │ ├── mask.png │ │ │ ├── wheel.png │ │ │ ├── marker.png │ │ │ ├── CHANGELOG.html │ │ │ ├── demo1.html │ │ │ └── farbtastic.css │ │ │ ├── jpicker │ │ │ ├── images │ │ │ │ ├── Bars.png │ │ │ │ ├── Maps.png │ │ │ │ ├── picker.gif │ │ │ │ ├── AlphaBar.png │ │ │ │ ├── NoColor.png │ │ │ │ ├── mappoint.gif │ │ │ │ ├── bar-opacity.png │ │ │ │ ├── map-opacity.png │ │ │ │ ├── rangearrows.gif │ │ │ │ └── preview-opacity.png │ │ │ └── jPicker.css │ │ │ ├── colorpicker │ │ │ ├── images │ │ │ │ ├── blank.gif │ │ │ │ ├── select.png │ │ │ │ ├── select2.png │ │ │ │ ├── slider.png │ │ │ │ ├── custom_hex.png │ │ │ │ ├── custom_hsb_b.png │ │ │ │ ├── custom_hsb_h.png │ │ │ │ ├── custom_hsb_s.png │ │ │ │ ├── custom_indic.gif │ │ │ │ ├── custom_rgb_b.png │ │ │ │ ├── custom_rgb_g.png │ │ │ │ ├── custom_rgb_r.png │ │ │ │ ├── colorpicker_hex.png │ │ │ │ ├── custom_submit.png │ │ │ │ ├── colorpicker_hsb_b.png │ │ │ │ ├── colorpicker_hsb_h.png │ │ │ │ ├── colorpicker_hsb_s.png │ │ │ │ ├── colorpicker_indic.gif │ │ │ │ ├── colorpicker_rgb_b.png │ │ │ │ ├── colorpicker_rgb_g.png │ │ │ │ ├── colorpicker_rgb_r.png │ │ │ │ ├── custom_background.png │ │ │ │ ├── colorpicker_overlay.png │ │ │ │ ├── colorpicker_select.gif │ │ │ │ ├── colorpicker_submit.png │ │ │ │ └── colorpicker_background.png │ │ │ └── js │ │ │ │ └── eye.js │ │ │ ├── extendedclick │ │ │ └── jquery.event.extendedclick.min.js │ │ │ └── jquery.bgiframe.min.js │ ├── sage │ │ ├── images │ │ │ ├── corner.png │ │ │ ├── favicon.ico │ │ │ ├── sagenb.png │ │ │ ├── evaluate.png │ │ │ ├── icon16x16.png │ │ │ ├── icon32x32.png │ │ │ ├── icon48x48.png │ │ │ ├── sageicon.png │ │ │ ├── sagelogo.png │ │ │ ├── icon128x128.png │ │ │ ├── icon_email.gif │ │ │ ├── icon_preview.gif │ │ │ ├── icon_print.gif │ │ │ └── evaluate_over.png │ │ ├── css │ │ │ └── autoindex │ │ │ │ ├── asc.gif │ │ │ │ └── desc.gif │ │ ├── html │ │ │ ├── accounts │ │ │ │ ├── base.html │ │ │ │ └── account_recovery.html │ │ │ ├── notebook │ │ │ │ ├── doc_page.html │ │ │ │ ├── base_aux.html │ │ │ │ ├── print_worksheet.html │ │ │ │ ├── plain_text_window.html │ │ │ │ ├── worksheet.html │ │ │ │ ├── afterpublish_window.html │ │ │ │ ├── worksheet_revision_list.html │ │ │ │ ├── edit_window.html │ │ │ │ ├── beforepublish_window.html │ │ │ │ ├── worksheet_share.html │ │ │ │ ├── upload_data_window.html │ │ │ │ └── specific_revision.html │ │ │ ├── worksheet │ │ │ │ ├── time_last_edited.html │ │ │ │ ├── time_since_last_edited.html │ │ │ │ ├── attached.html │ │ │ │ ├── completions.html │ │ │ │ └── ratings_info.html │ │ │ ├── yes_no.html │ │ │ ├── settings │ │ │ │ ├── base.html │ │ │ │ ├── notebook_settings.html │ │ │ │ └── admin_add_user.html │ │ │ ├── error_message.html │ │ │ ├── history.html │ │ │ ├── source_code.html │ │ │ └── recaptcha.html │ │ ├── js │ │ │ ├── async_lib.js │ │ │ ├── published_worksheet.js │ │ │ └── mathjax_sage.js │ │ └── __autoindex__ │ │ │ └── autoindex.html │ ├── sage3d │ │ ├── lib │ │ │ └── sage3d.jar │ │ ├── README.txt │ │ ├── sage3d │ │ ├── build.xml │ │ └── src │ │ │ └── org │ │ │ └── sagemath │ │ │ ├── TestApplet.java │ │ │ └── sage3d │ │ │ └── ObjectViewerApp.java │ ├── codemirror │ │ ├── css │ │ │ ├── people.jpg │ │ │ ├── sparqlcolors.css │ │ │ ├── csscolors.css │ │ │ ├── xmlcolors.css │ │ │ ├── docs.css │ │ │ └── jscolors.css │ │ ├── contrib │ │ │ ├── sql │ │ │ │ ├── css │ │ │ │ │ └── sqlcolors.css │ │ │ │ ├── LICENSE │ │ │ │ └── index.html │ │ │ ├── lua │ │ │ │ ├── css │ │ │ │ │ └── luacolors.css │ │ │ │ └── LICENSE │ │ │ └── python │ │ │ │ ├── css │ │ │ │ └── pythoncolors.css │ │ │ │ └── LICENSE │ │ ├── js │ │ │ └── parsedummy.js │ │ ├── LICENSE │ │ ├── sparqltest.html │ │ └── csstest.html │ ├── tiny_mce │ │ ├── plugins │ │ │ ├── example │ │ │ │ ├── langs │ │ │ │ │ ├── en.js │ │ │ │ │ └── en_dlg.js │ │ │ │ ├── img │ │ │ │ │ └── example.gif │ │ │ │ ├── js │ │ │ │ │ └── dialog.js │ │ │ │ ├── editor_plugin.js │ │ │ │ └── dialog.htm │ │ │ ├── advimage │ │ │ │ ├── img │ │ │ │ │ └── sample.gif │ │ │ │ ├── css │ │ │ │ │ └── advimage.css │ │ │ │ ├── editor_plugin.js │ │ │ │ ├── langs │ │ │ │ │ └── en_dlg.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── spellchecker │ │ │ │ ├── css │ │ │ │ │ └── content.css │ │ │ │ ├── img │ │ │ │ │ └── wline.gif │ │ │ │ ├── editor_plugin.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── advhr │ │ │ │ ├── langs │ │ │ │ │ └── en_dlg.js │ │ │ │ ├── css │ │ │ │ │ └── advhr.css │ │ │ │ ├── editor_plugin.js │ │ │ │ └── js │ │ │ │ │ └── rule.js │ │ │ ├── emotions │ │ │ │ ├── img │ │ │ │ │ ├── smiley-cool.gif │ │ │ │ │ ├── smiley-cry.gif │ │ │ │ │ ├── smiley-kiss.gif │ │ │ │ │ ├── smiley-wink.gif │ │ │ │ │ ├── smiley-yell.gif │ │ │ │ │ ├── smiley-frown.gif │ │ │ │ │ ├── smiley-sealed.gif │ │ │ │ │ ├── smiley-smile.gif │ │ │ │ │ ├── smiley-innocent.gif │ │ │ │ │ ├── smiley-laughing.gif │ │ │ │ │ ├── smiley-surprised.gif │ │ │ │ │ ├── smiley-undecided.gif │ │ │ │ │ ├── smiley-embarassed.gif │ │ │ │ │ ├── smiley-money-mouth.gif │ │ │ │ │ ├── smiley-tongue-out.gif │ │ │ │ │ └── smiley-foot-in-mouth.gif │ │ │ │ ├── langs │ │ │ │ │ └── en_dlg.js │ │ │ │ ├── js │ │ │ │ │ └── emotions.js │ │ │ │ ├── editor_plugin.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── inlinepopups │ │ │ │ └── skins │ │ │ │ │ └── clearlooks2 │ │ │ │ │ └── img │ │ │ │ │ ├── alert.gif │ │ │ │ │ ├── button.gif │ │ │ │ │ ├── buttons.gif │ │ │ │ │ ├── confirm.gif │ │ │ │ │ ├── corners.gif │ │ │ │ │ ├── vertical.gif │ │ │ │ │ └── horizontal.gif │ │ │ ├── searchreplace │ │ │ │ ├── css │ │ │ │ │ └── searchreplace.css │ │ │ │ ├── langs │ │ │ │ │ └── en_dlg.js │ │ │ │ └── editor_plugin.js │ │ │ ├── paste │ │ │ │ ├── langs │ │ │ │ │ └── en_dlg.js │ │ │ │ ├── pasteword.htm │ │ │ │ ├── js │ │ │ │ │ └── pastetext.js │ │ │ │ └── pastetext.htm │ │ │ ├── table │ │ │ │ ├── css │ │ │ │ │ ├── table.css │ │ │ │ │ ├── cell.css │ │ │ │ │ └── row.css │ │ │ │ └── js │ │ │ │ │ └── merge_cells.js │ │ │ ├── xhtmlxtras │ │ │ │ ├── css │ │ │ │ │ ├── attributes.css │ │ │ │ │ └── popup.css │ │ │ │ ├── js │ │ │ │ │ ├── abbr.js │ │ │ │ │ ├── cite.js │ │ │ │ │ ├── acronym.js │ │ │ │ │ ├── del.js │ │ │ │ │ └── ins.js │ │ │ │ └── langs │ │ │ │ │ └── en_dlg.js │ │ │ ├── autosave │ │ │ │ └── langs │ │ │ │ │ └── en.js │ │ │ ├── template │ │ │ │ ├── blank.htm │ │ │ │ ├── css │ │ │ │ │ └── template.css │ │ │ │ ├── langs │ │ │ │ │ └── en_dlg.js │ │ │ │ └── template.htm │ │ │ ├── example_dependency │ │ │ │ └── editor_plugin.js │ │ │ ├── print │ │ │ │ ├── editor_plugin.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── advlink │ │ │ │ ├── css │ │ │ │ │ └── advlink.css │ │ │ │ └── editor_plugin.js │ │ │ ├── preview │ │ │ │ ├── preview.html │ │ │ │ ├── example.html │ │ │ │ └── editor_plugin.js │ │ │ ├── iespell │ │ │ │ └── editor_plugin.js │ │ │ ├── style │ │ │ │ ├── css │ │ │ │ │ └── props.css │ │ │ │ ├── editor_plugin.js │ │ │ │ └── langs │ │ │ │ │ └── en_dlg.js │ │ │ ├── nonbreaking │ │ │ │ └── editor_plugin.js │ │ │ ├── directionality │ │ │ │ └── editor_plugin.js │ │ │ ├── visualchars │ │ │ │ └── editor_plugin.js │ │ │ ├── pagebreak │ │ │ │ └── editor_plugin.js │ │ │ ├── media │ │ │ │ └── css │ │ │ │ │ └── media.css │ │ │ ├── noneditable │ │ │ │ └── editor_plugin.js │ │ │ ├── save │ │ │ │ └── editor_plugin.js │ │ │ ├── autoresize │ │ │ │ └── editor_plugin.js │ │ │ └── tabfocus │ │ │ │ └── editor_plugin.js │ │ └── themes │ │ │ ├── advanced │ │ │ ├── img │ │ │ │ ├── flash.gif │ │ │ │ ├── icons.gif │ │ │ │ ├── trans.gif │ │ │ │ ├── video.gif │ │ │ │ ├── iframe.gif │ │ │ │ ├── pagebreak.gif │ │ │ │ ├── quicktime.gif │ │ │ │ ├── realmedia.gif │ │ │ │ ├── shockwave.gif │ │ │ │ ├── colorpicker.jpg │ │ │ │ └── windowsmedia.gif │ │ │ ├── skins │ │ │ │ ├── default │ │ │ │ │ └── img │ │ │ │ │ │ ├── items.gif │ │ │ │ │ │ ├── tabs.gif │ │ │ │ │ │ ├── buttons.png │ │ │ │ │ │ ├── progress.gif │ │ │ │ │ │ ├── menu_arrow.gif │ │ │ │ │ │ └── menu_check.gif │ │ │ │ ├── o2k7 │ │ │ │ │ ├── img │ │ │ │ │ │ ├── button_bg.png │ │ │ │ │ │ ├── button_bg_black.png │ │ │ │ │ │ └── button_bg_silver.png │ │ │ │ │ └── ui_silver.css │ │ │ │ └── highcontrast │ │ │ │ │ └── content.css │ │ │ ├── js │ │ │ │ ├── anchor.js │ │ │ │ └── source_editor.js │ │ │ ├── anchor.htm │ │ │ └── source_editor.htm │ │ │ └── simple │ │ │ ├── img │ │ │ └── icons.gif │ │ │ ├── skins │ │ │ ├── o2k7 │ │ │ │ ├── img │ │ │ │ │ └── button_bg.png │ │ │ │ └── content.css │ │ │ └── default │ │ │ │ └── content.css │ │ │ └── langs │ │ │ └── en.js │ ├── openid-realselector │ │ ├── img │ │ │ ├── balloon.png │ │ │ ├── indicator.gif │ │ │ └── openid-icons.png │ │ └── demo.html │ └── jqueryui │ │ └── css │ │ └── sage │ │ └── images │ │ ├── animated-overlay.gif │ │ ├── ui-icons_000000_256x240.png │ │ ├── ui-icons_222222_256x240.png │ │ ├── ui-icons_2e83ff_256x240.png │ │ ├── ui-icons_777777_256x240.png │ │ ├── ui-icons_cd0a0a_256x240.png │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png │ │ ├── ui-bg_flat_0_f3f3f3_40x100.png │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png │ │ ├── ui-bg_highlight-hard_60_99bbff_1x100.png │ │ ├── ui-bg_highlight-hard_60_ffc53d_1x100.png │ │ ├── ui-bg_highlight-hard_90_99bbff_1x100.png │ │ ├── ui-bg_highlight-hard_95_fef1ec_1x100.png │ │ └── ui-bg_highlight-soft_75_cccccc_1x100.png ├── flask_version │ ├── nodoctest.py │ └── __init__.py ├── simple │ └── __init__.py ├── misc │ ├── __init__.py │ ├── sphinxify.py │ └── remote_file.py ├── notebook │ ├── compress │ │ ├── all.py │ │ ├── __init__.py │ │ └── nodoctest.py │ ├── __init__.py │ ├── jquery.py │ ├── all.py │ ├── user_db.py │ ├── applet.py │ ├── user_conf.py │ ├── notification.py │ └── sagetex.py ├── testing │ ├── selenium │ │ └── __init__.py │ ├── __init__.py │ ├── grinder │ │ ├── make_worksheets.sh │ │ ├── startConsole.sh │ │ ├── make_users.sh │ │ ├── startAgent.sh │ │ ├── startProxy.sh │ │ ├── setGrinderEnv.sh │ │ ├── nodoctest.py │ │ ├── simpleopen.py │ │ └── sstest.py │ └── tests │ │ └── __init__.py ├── __init__.py ├── storage │ └── __init__.py ├── translations │ ├── cs_CZ │ │ └── LC_MESSAGES │ │ │ └── messages.mo │ ├── de_AT │ │ └── LC_MESSAGES │ │ │ └── messages.mo │ ├── en_US │ │ └── LC_MESSAGES │ │ │ ├── messages.mo │ │ │ └── messages.po │ ├── es_ES │ │ └── LC_MESSAGES │ │ │ └── messages.mo │ ├── fr_FR │ │ └── LC_MESSAGES │ │ │ └── messages.mo │ ├── pt_BR │ │ └── LC_MESSAGES │ │ │ └── messages.mo │ ├── ru_RU │ │ └── LC_MESSAGES │ │ │ └── messages.mo │ └── uk_UA │ │ └── LC_MESSAGES │ │ └── messages.mo ├── babel.cfg └── interfaces │ ├── __init__.py │ └── status.py ├── sass ├── src │ ├── typography │ │ └── _base.scss │ ├── _print_worksheet.scss │ ├── partials │ │ ├── _base.scss │ │ └── _mixins.scss │ ├── _guest_worksheet.scss │ ├── _source.scss │ ├── _worksheet_aux.scss │ ├── _prettify.scss │ ├── _login.scss │ ├── _accounts.scss │ └── _settings.scss ├── config.rb └── readme.txt ├── MANIFEST.in ├── doc ├── source │ ├── notebook │ │ ├── cell.rst │ │ ├── worksheet.rst │ │ ├── config.rst │ │ ├── css.rst │ │ ├── notebook.rst │ │ ├── challenge.rst │ │ ├── interact.rst │ │ ├── template.rst │ │ ├── js.rst │ │ ├── docHTMLProcessor.rst │ │ └── notebook_object.rst │ ├── misc │ │ ├── misc.rst │ │ ├── introspect.rst │ │ ├── sphinxify.rst │ │ └── support.rst │ ├── storage │ │ ├── abstract_storage.rst │ │ └── filesystem_storage.rst │ └── index.rst └── Makefile ├── dist.sh ├── .gitignore ├── util ├── apply-hg.py └── quota.py └── INSTALL.rst /sagenb/data/nodoctest.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sagenb/flask_version/nodoctest.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sagenb/flask_version/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/achtung/version.txt: -------------------------------------------------------------------------------- 1 | 0.3.0 -------------------------------------------------------------------------------- /sagenb/simple/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | -------------------------------------------------------------------------------- /sagenb/misc/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | 3 | -------------------------------------------------------------------------------- /sagenb/notebook/compress/all.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | -------------------------------------------------------------------------------- /sagenb/notebook/compress/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | 3 | -------------------------------------------------------------------------------- /sagenb/notebook/compress/nodoctest.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | -------------------------------------------------------------------------------- /sagenb/testing/selenium/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | 3 | -------------------------------------------------------------------------------- /sass/src/typography/_base.scss: -------------------------------------------------------------------------------- 1 | thead { 2 | font-weight: bold 3 | } 4 | -------------------------------------------------------------------------------- /sagenb/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | # init 3 | from . import storage 4 | -------------------------------------------------------------------------------- /sagenb/notebook/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | from . import user_manager 3 | -------------------------------------------------------------------------------- /sass/src/_print_worksheet.scss: -------------------------------------------------------------------------------- 1 | #print-page { 2 | h1 { 3 | text-align: center; } } 4 | -------------------------------------------------------------------------------- /sass/src/partials/_base.scss: -------------------------------------------------------------------------------- 1 | $subdued_blue: #112abb; 2 | $link_color: $subdued_blue; 3 | 4 | -------------------------------------------------------------------------------- /sagenb/testing/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | # Code for stress testing of notebook servers 3 | -------------------------------------------------------------------------------- /sagenb/storage/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | 3 | from .filesystem_storage import FilesystemDatastore 4 | -------------------------------------------------------------------------------- /sagenb/data/sage/images/corner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage/images/corner.png -------------------------------------------------------------------------------- /sagenb/data/sage/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage/images/favicon.ico -------------------------------------------------------------------------------- /sagenb/data/sage/images/sagenb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage/images/sagenb.png -------------------------------------------------------------------------------- /sagenb/data/sage3d/lib/sage3d.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage3d/lib/sage3d.jar -------------------------------------------------------------------------------- /sagenb/testing/grinder/make_worksheets.sh: -------------------------------------------------------------------------------- 1 | for i in {1..$1} 2 | do 3 | curl localhost:8080/new_worksheet 4 | done 5 | -------------------------------------------------------------------------------- /sagenb/testing/grinder/startConsole.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | . setGrinderEnv.sh 3 | java -cp $CLASSPATH net.grinder.Console 4 | -------------------------------------------------------------------------------- /sagenb/data/codemirror/css/people.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/codemirror/css/people.jpg -------------------------------------------------------------------------------- /sagenb/data/sage/images/evaluate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage/images/evaluate.png -------------------------------------------------------------------------------- /sagenb/data/sage/images/icon16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage/images/icon16x16.png -------------------------------------------------------------------------------- /sagenb/data/sage/images/icon32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage/images/icon32x32.png -------------------------------------------------------------------------------- /sagenb/data/sage/images/icon48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage/images/icon48x48.png -------------------------------------------------------------------------------- /sagenb/data/sage/images/sageicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage/images/sageicon.png -------------------------------------------------------------------------------- /sagenb/data/sage/images/sagelogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage/images/sagelogo.png -------------------------------------------------------------------------------- /sagenb/testing/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | from . import test_accounts, test_worksheet, test_worksheet_list 3 | -------------------------------------------------------------------------------- /sagenb/data/sage/css/autoindex/asc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage/css/autoindex/asc.gif -------------------------------------------------------------------------------- /sagenb/data/sage/css/autoindex/desc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage/css/autoindex/desc.gif -------------------------------------------------------------------------------- /sagenb/data/sage/html/accounts/base.html: -------------------------------------------------------------------------------- 1 | {% extends "html/base.html" %} 2 | {% block body_classes %}accounts-page{% endblock %} 3 | -------------------------------------------------------------------------------- /sagenb/data/sage/images/icon128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage/images/icon128x128.png -------------------------------------------------------------------------------- /sagenb/data/sage/images/icon_email.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage/images/icon_email.gif -------------------------------------------------------------------------------- /sagenb/data/sage/images/icon_preview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage/images/icon_preview.gif -------------------------------------------------------------------------------- /sagenb/data/sage/images/icon_print.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage/images/icon_print.gif -------------------------------------------------------------------------------- /sagenb/testing/grinder/make_users.sh: -------------------------------------------------------------------------------- 1 | for i in {1..$1} 2 | do 3 | curl -d username=test$i localhost:8080/adduser 4 | done 5 | -------------------------------------------------------------------------------- /sagenb/data/sage/images/evaluate_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/sage/images/evaluate_over.png -------------------------------------------------------------------------------- /sagenb/testing/grinder/startAgent.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | . setGrinderEnv.sh 3 | java -cp $CLASSPATH net.grinder.Grinder $GRINDERPROPERTIES 4 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/example/langs/en.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.example',{ 2 | desc : 'This is just a template button' 3 | }); 4 | -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/farbtastic/mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/farbtastic/mask.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/farbtastic/wheel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/farbtastic/wheel.png -------------------------------------------------------------------------------- /sagenb/data/openid-realselector/img/balloon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/openid-realselector/img/balloon.png -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/example/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.example_dlg',{ 2 | title : 'This is just a example title' 3 | }); 4 | -------------------------------------------------------------------------------- /sagenb/testing/grinder/startProxy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | . setGrinderEnv.sh 3 | java -cp $CLASSPATH net.grinder.TCPProxy -console -http > grinder.py 4 | -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/farbtastic/marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/farbtastic/marker.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/jpicker/images/Bars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/jpicker/images/Bars.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/jpicker/images/Maps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/jpicker/images/Maps.png -------------------------------------------------------------------------------- /sagenb/data/openid-realselector/img/indicator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/openid-realselector/img/indicator.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/img/flash.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/img/flash.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/img/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/img/icons.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/img/trans.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/img/trans.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/img/video.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/img/video.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/simple/img/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/simple/img/icons.gif -------------------------------------------------------------------------------- /sagenb/translations/cs_CZ/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/translations/cs_CZ/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /sagenb/translations/de_AT/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/translations/de_AT/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /sagenb/translations/en_US/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/translations/en_US/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /sagenb/translations/es_ES/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/translations/es_ES/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /sagenb/translations/fr_FR/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/translations/fr_FR/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /sagenb/translations/pt_BR/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/translations/pt_BR/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /sagenb/translations/ru_RU/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/translations/ru_RU/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /sagenb/translations/uk_UA/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/translations/uk_UA/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/jpicker/images/picker.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/jpicker/images/picker.gif -------------------------------------------------------------------------------- /sagenb/data/openid-realselector/img/openid-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/openid-realselector/img/openid-icons.png -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/advimage/img/sample.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/advimage/img/sample.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/example/img/example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/example/img/example.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/img/iframe.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/img/iframe.gif -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/blank.gif -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/jpicker/images/AlphaBar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/jpicker/images/AlphaBar.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/jpicker/images/NoColor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/jpicker/images/NoColor.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/jpicker/images/mappoint.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/jpicker/images/mappoint.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/spellchecker/css/content.css: -------------------------------------------------------------------------------- 1 | .mceItemHiddenSpellWord {background:url(../img/wline.gif) repeat-x bottom left; cursor:default;} 2 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/spellchecker/img/wline.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/spellchecker/img/wline.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/img/pagebreak.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/img/pagebreak.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/img/quicktime.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/img/quicktime.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/img/realmedia.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/img/realmedia.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/img/shockwave.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/img/shockwave.gif -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/select.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/select2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/select2.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/slider.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/jpicker/images/bar-opacity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/jpicker/images/bar-opacity.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/jpicker/images/map-opacity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/jpicker/images/map-opacity.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/jpicker/images/rangearrows.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/jpicker/images/rangearrows.gif -------------------------------------------------------------------------------- /sagenb/data/jqueryui/css/sage/images/animated-overlay.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jqueryui/css/sage/images/animated-overlay.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/advhr/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.advhr_dlg',{size:"Height",noshade:"No Shadow",width:"Width",normal:"Normal",widthunits:"Units"}); -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/img/smiley-cool.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/emotions/img/smiley-cool.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/img/smiley-cry.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/emotions/img/smiley-cry.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/img/smiley-kiss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/emotions/img/smiley-kiss.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/img/smiley-wink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/emotions/img/smiley-wink.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/img/smiley-yell.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/emotions/img/smiley-yell.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/img/colorpicker.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/img/colorpicker.jpg -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/img/windowsmedia.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/img/windowsmedia.gif -------------------------------------------------------------------------------- /sass/src/_guest_worksheet.scss: -------------------------------------------------------------------------------- 1 | #guest-worksheet-page { 2 | h1, h2 { 3 | text-align: center; } 4 | ul.controls { 5 | @include horizontal-list(0.5em); } } 6 | -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/custom_hex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/custom_hex.png -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/img/smiley-frown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/emotions/img/smiley-frown.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/img/smiley-sealed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/emotions/img/smiley-sealed.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/img/smiley-smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/emotions/img/smiley-smile.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/spellchecker/editor_plugin.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/spellchecker/editor_plugin.js -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/custom_hsb_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/custom_hsb_b.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/custom_hsb_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/custom_hsb_h.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/custom_hsb_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/custom_hsb_s.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/custom_indic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/custom_indic.gif -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/custom_rgb_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/custom_rgb_b.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/custom_rgb_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/custom_rgb_g.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/custom_rgb_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/custom_rgb_r.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/jpicker/images/preview-opacity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/jpicker/images/preview-opacity.png -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/img/smiley-innocent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/emotions/img/smiley-innocent.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/img/smiley-laughing.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/emotions/img/smiley-laughing.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/img/smiley-surprised.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/emotions/img/smiley-surprised.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/img/smiley-undecided.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/emotions/img/smiley-undecided.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/spellchecker/editor_plugin_src.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/spellchecker/editor_plugin_src.js -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/colorpicker_hex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/colorpicker_hex.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/custom_submit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/custom_submit.png -------------------------------------------------------------------------------- /sagenb/data/jqueryui/css/sage/images/ui-icons_000000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jqueryui/css/sage/images/ui-icons_000000_256x240.png -------------------------------------------------------------------------------- /sagenb/data/jqueryui/css/sage/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jqueryui/css/sage/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /sagenb/data/jqueryui/css/sage/images/ui-icons_2e83ff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jqueryui/css/sage/images/ui-icons_2e83ff_256x240.png -------------------------------------------------------------------------------- /sagenb/data/jqueryui/css/sage/images/ui-icons_777777_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jqueryui/css/sage/images/ui-icons_777777_256x240.png -------------------------------------------------------------------------------- /sagenb/data/jqueryui/css/sage/images/ui-icons_cd0a0a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jqueryui/css/sage/images/ui-icons_cd0a0a_256x240.png -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/img/smiley-embarassed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/emotions/img/smiley-embarassed.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/skins/default/img/items.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/skins/default/img/items.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/skins/default/img/tabs.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/skins/default/img/tabs.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/colorpicker_hsb_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/colorpicker_hsb_b.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/colorpicker_hsb_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/colorpicker_hsb_h.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/colorpicker_hsb_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/colorpicker_hsb_s.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/colorpicker_indic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/colorpicker_indic.gif -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/colorpicker_rgb_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/colorpicker_rgb_b.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/colorpicker_rgb_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/colorpicker_rgb_g.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/colorpicker_rgb_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/colorpicker_rgb_r.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/custom_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/custom_background.png -------------------------------------------------------------------------------- /sagenb/data/jqueryui/css/sage/images/ui-bg_flat_0_aaaaaa_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jqueryui/css/sage/images/ui-bg_flat_0_aaaaaa_40x100.png -------------------------------------------------------------------------------- /sagenb/data/jqueryui/css/sage/images/ui-bg_flat_0_f3f3f3_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jqueryui/css/sage/images/ui-bg_flat_0_f3f3f3_40x100.png -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/skins/default/img/buttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/skins/default/img/buttons.png -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/skins/default/img/progress.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/skins/default/img/progress.gif -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/colorpicker_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/colorpicker_overlay.png -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/colorpicker_select.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/colorpicker_select.gif -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/colorpicker_submit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/colorpicker_submit.png -------------------------------------------------------------------------------- /sagenb/data/jqueryui/css/sage/images/ui-bg_glass_55_fbf9ee_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jqueryui/css/sage/images/ui-bg_glass_55_fbf9ee_1x400.png -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/skins/default/img/menu_check.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/skins/default/img/menu_check.gif -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/images/colorpicker_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jquery/plugins/colorpicker/images/colorpicker_background.png -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif -------------------------------------------------------------------------------- /sagenb/data/jqueryui/css/sage/images/ui-bg_highlight-hard_60_99bbff_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jqueryui/css/sage/images/ui-bg_highlight-hard_60_99bbff_1x100.png -------------------------------------------------------------------------------- /sagenb/data/jqueryui/css/sage/images/ui-bg_highlight-hard_60_ffc53d_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jqueryui/css/sage/images/ui-bg_highlight-hard_60_ffc53d_1x100.png -------------------------------------------------------------------------------- /sagenb/data/jqueryui/css/sage/images/ui-bg_highlight-hard_90_99bbff_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jqueryui/css/sage/images/ui-bg_highlight-hard_90_99bbff_1x100.png -------------------------------------------------------------------------------- /sagenb/data/jqueryui/css/sage/images/ui-bg_highlight-hard_95_fef1ec_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jqueryui/css/sage/images/ui-bg_highlight-hard_95_fef1ec_1x100.png -------------------------------------------------------------------------------- /sagenb/data/jqueryui/css/sage/images/ui-bg_highlight-soft_75_cccccc_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/jqueryui/css/sage/images/ui-bg_highlight-soft_75_cccccc_1x100.png -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagemath/sagenb/master/sagenb/data/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif -------------------------------------------------------------------------------- /sagenb/testing/grinder/setGrinderEnv.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | GRINDERPATH=/Users/rado/grinder-3.4 3 | GRINDERPROPERTIES=grinder.properties 4 | CLASSPATH=$GRINDERPATH/lib/grinder.jar:$CLASSPATH 5 | export CLASSPATH GRINDERPROPERTIES 6 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/notebook/doc_page.html: -------------------------------------------------------------------------------- 1 | {% extends "html/notebook/worksheet_page.html" %} 2 | 3 | {% block pre_main_css %} 4 | 5 | {% endblock %} 6 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/worksheet/time_last_edited.html: -------------------------------------------------------------------------------- 1 | {# 2 | INPUT: 3 | - time - string of time of last edit 4 | - last_editor - string of name of last editor 5 | #} 6 | {{ gettext('%(t)s by %(le)s', t=time, le=last_editor) }} 7 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/searchreplace/css/searchreplace.css: -------------------------------------------------------------------------------- 1 | .panel_wrapper {height:85px;} 2 | .panel_wrapper div.current {height:85px;} 3 | 4 | /* IE */ 5 | * html .panel_wrapper {height:100px;} 6 | * html .panel_wrapper div.current {height:100px;} 7 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/worksheet/time_since_last_edited.html: -------------------------------------------------------------------------------- 1 | {# 2 | INPUT: 3 | - time - string of time since last edit 4 | - last_editor - string of name of last editor 5 | #} 6 | {{ gettext('%(t)s ago by %(le)s', t=time, le=last_editor) }} 7 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/paste/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.paste_dlg',{"word_title":"Use Ctrl+V on your keyboard to paste the text into the window.","text_linebreaks":"Keep Linebreaks","text_title":"Use Ctrl+V on your keyboard to paste the text into the window."}); -------------------------------------------------------------------------------- /sagenb/data/sage/html/worksheet/attached.html: -------------------------------------------------------------------------------- 1 | {# 2 | INPUT: 3 | - attached_files - dictionary of attached files 4 | #} 5 | {% for file, tm in attached_files %} 6 |
7 | {{ file }} 8 |
9 | {% endfor %} -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/table/css/table.css: -------------------------------------------------------------------------------- 1 | /* CSS file for table dialog in the table plugin */ 2 | 3 | .panel_wrapper div.current { 4 | height: 245px; 5 | } 6 | 7 | .advfield { 8 | width: 200px; 9 | } 10 | 11 | #class { 12 | width: 150px; 13 | } 14 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | graft sagenb 2 | graft sass 3 | graft util 4 | prune sass/src/.sass-cache 5 | include *.txt *.rst *.md MANIFEST.in .gitignore dist.sh COPYING Changes 6 | recursive-include doc * 7 | prune .git 8 | global-exclude *.pyc *.pyo *.orig *.rej *~ \#* *\# *.sassc *.scssc *.DS_Store 9 | -------------------------------------------------------------------------------- /doc/source/notebook/cell.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.notebook.cell: 4 | 5 | A Cell 6 | ====== 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.notebook.cell 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/advhr/css/advhr.css: -------------------------------------------------------------------------------- 1 | input.radio {border:1px none #000; background:transparent; vertical-align:middle;} 2 | .panel_wrapper div.current {height:80px;} 3 | #width {width:50px; vertical-align:middle;} 4 | #width2 {width:50px; vertical-align:middle;} 5 | #size {width:100px;} 6 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/xhtmlxtras/css/attributes.css: -------------------------------------------------------------------------------- 1 | .panel_wrapper div.current { 2 | height: 290px; 3 | } 4 | 5 | #id, #style, #title, #dir, #hreflang, #lang, #classlist, #tabindex, #accesskey { 6 | width: 200px; 7 | } 8 | 9 | #events_panel input { 10 | width: 200px; 11 | } 12 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/autosave/langs/en.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.autosave',{ 2 | restore_content: "Restore auto-saved content", 3 | warning_message: "If you restore the saved content, you will lose all the content that is currently in the editor.\n\nAre you sure you want to restore the saved content?" 4 | }); -------------------------------------------------------------------------------- /doc/source/notebook/worksheet.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.notebook.worksheet: 4 | 5 | A Worksheet 6 | =========== 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.notebook.worksheet 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/table/css/cell.css: -------------------------------------------------------------------------------- 1 | /* CSS file for cell dialog in the table plugin */ 2 | 3 | .panel_wrapper div.current { 4 | height: 200px; 5 | } 6 | 7 | .advfield { 8 | width: 200px; 9 | } 10 | 11 | #action { 12 | margin-bottom: 3px; 13 | } 14 | 15 | #class { 16 | width: 150px; 17 | } -------------------------------------------------------------------------------- /doc/source/notebook/config.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.notebook.config: 4 | 5 | Notebook Keybindings 6 | ==================== 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.notebook.config 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /doc/source/notebook/css.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.notebook.css: 4 | 5 | Notebook Stylesheets (CSS) 6 | ========================== 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.notebook.css 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /doc/source/notebook/notebook.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.notebook.notebook: 4 | 5 | The Sage Notebook 6 | ================= 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.notebook.notebook 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /sass/src/_source.scss: -------------------------------------------------------------------------------- 1 | @import "partials/mixins"; 2 | 3 | #source-code-page { 4 | h1, h2 { 5 | text-align: center; } 6 | .filename { 7 | @include monospace-stack; } 8 | code { 9 | display: block; 10 | border-top: 1px solid #cccccc; 11 | border-bottom: 1px solid #cccccc; 12 | padding: 1em; } } 13 | -------------------------------------------------------------------------------- /doc/source/misc/misc.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.misc.misc: 4 | 5 | Miscellaneous Notebook Functions 6 | ================================ 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.misc.misc 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /sass/src/partials/_mixins.scss: -------------------------------------------------------------------------------- 1 | @mixin vcenter($height) { 2 | height: $height; 3 | position: absolute; 4 | top: 50%; 5 | margin-top: $height/2; 6 | } 7 | 8 | @mixin sans-serif-stack() { 9 | font-family: 'Arial', 'Helvetica', sans-serif; 10 | } 11 | 12 | @mixin monospace-stack() { 13 | font-family: monospace; 14 | } 15 | -------------------------------------------------------------------------------- /doc/source/misc/introspect.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.misc.introspect: 4 | 5 | Sage Notebook Introspection 6 | =========================== 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.misc.introspect 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /doc/source/misc/sphinxify.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.misc.sphinxify: 4 | 5 | Process docstrings with Sphinx 6 | ============================== 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.misc.sphinxify 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /dist.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # This script creates a new tarball for SageNB 4 | 5 | # Remove some auto-generated packaging directories 6 | rm -rf dist sagenb.egg-info 7 | 8 | # Ensure that we are packaging from a clean git repo 9 | git clean -i -d -x 10 | 11 | # Now actually create the package 12 | exec ./setup.py sdist --format=bztar 13 | -------------------------------------------------------------------------------- /doc/source/notebook/challenge.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.notebook.challenge: 4 | 5 | Notebook Registration Challenges 6 | ================================ 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.notebook.challenge 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /doc/source/notebook/interact.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.notebook.interact: 4 | 5 | Interact Functions in the Notebook 6 | ================================== 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.notebook.interact 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /doc/source/notebook/template.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.notebook.template: 4 | 5 | HTML Templating for the Notebook 6 | ================================ 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.notebook.template 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /doc/source/misc/support.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.misc.support: 4 | 5 | Support for Notebook Introspection and Setup 6 | ============================================ 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.misc.support 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /doc/source/notebook/js.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.notebook.js: 4 | 5 | JavaScript (AJAX) Components of the Notebook 6 | ============================================ 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.notebook.js 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/notebook/base_aux.html: -------------------------------------------------------------------------------- 1 | {% extends "html/notebook/base.html" %} 2 | {# Base template for auxilliary pages (Edit, Text, etc.) #} 3 | 4 | {% block worksheet_main %} 5 | {% block before_sharebar %}{% endblock %} 6 |
{% block sharebar_title %}{% endblock %}
7 | {% block after_sharebar %}{% endblock %} 8 | {% endblock %} 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Boring file regexps: 2 | *.scssc 3 | *.sassc 4 | *~ 5 | /.hg 6 | /.hgtags 7 | *.orig 8 | *.patch 9 | *.pyc 10 | *.pyo 11 | /*.gitk-tmp* 12 | 13 | # sage files to ignore: 14 | /build 15 | /dist 16 | MANIFEST 17 | PKG-INFO 18 | release_notes.txt 19 | /sass/src/.sass-cache 20 | /sagenb/data/jmol 21 | /sagenb.egg-info 22 | sagenb/data/jsmath/fonts 23 | /setup.cfg 24 | -------------------------------------------------------------------------------- /doc/source/notebook/docHTMLProcessor.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.notebook.docHTMLProcessor: 4 | 5 | Live Documentation in the Notebook 6 | ================================== 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.notebook.docHTMLProcessor 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/simple/langs/en.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.simple',{"cleanup_desc":"Cleanup Messy Code","redo_desc":"Redo (Ctrl+Y)","undo_desc":"Undo (Ctrl+Z)","numlist_desc":"Insert/Remove Numbered List","bullist_desc":"Insert/Remove Bulleted List","striketrough_desc":"Strikethrough","underline_desc":"Underline (Ctrl+U)","italic_desc":"Italic (Ctrl+I)","bold_desc":"Bold (Ctrl+B)"}); -------------------------------------------------------------------------------- /doc/source/notebook/notebook_object.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.notebook.notebook_object: 4 | 5 | Configure and Start a Notebook Server 6 | ===================================== 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.notebook.notebook_object 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /doc/source/storage/abstract_storage.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.storage.abstract_storage: 4 | 5 | Sage Notebook Storage Abstraction Layer 6 | ======================================= 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.storage.abstract_storage 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/notebook/print_worksheet.html: -------------------------------------------------------------------------------- 1 | {% extends "html/notebook/base.html" %} 2 | 3 | {% block page_id %}print-page{% endblock %} 4 | 5 | {% block body %} 6 |

{{ worksheet.name() }}

7 | {{ worksheet.html(do_print=true) | safe }} 8 | 11 | {% endblock %} 12 | 13 | 14 | -------------------------------------------------------------------------------- /doc/source/storage/filesystem_storage.rst: -------------------------------------------------------------------------------- 1 | .. nodoctest 2 | 3 | .. _sagenb.storage.filesystem_storage: 4 | 5 | A Filesystem-based Sage Notebook Datastore 6 | ========================================== 7 | 8 | .. This file has been autogenerated. 9 | 10 | 11 | .. automodule:: sagenb.storage.filesystem_storage 12 | :members: 13 | :undoc-members: 14 | :show-inheritance: 15 | 16 | 17 | -------------------------------------------------------------------------------- /sass/config.rb: -------------------------------------------------------------------------------- 1 | # Require any additional compass plugins here. 2 | project_type = :stand_alone 3 | # Set this to the root of your project when deployed: 4 | http_path = "/" 5 | css_dir = "../sagenb/data/sage/css/" 6 | sass_dir = "src" 7 | images_dir = "images" 8 | output_style = :compact 9 | # To enable relative paths to assets via compass helper functions. Uncomment: 10 | # relative_assets = true 11 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/notebook/plain_text_window.html: -------------------------------------------------------------------------------- 1 | {% extends "html/notebook/base_aux.html" %} 2 | 3 | {% block sharebar_title %} 4 | {{ gettext('View plain text') }} 5 | {% endblock %} 6 | 7 | {% set select = "text" %} 8 | 9 | {% block after_sharebar %} 10 |
{{ worksheet.plain_text(prompts=true, banner=false)|trim }}
11 | {% endblock %} 12 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.emotions_dlg',{cry:"Cry",cool:"Cool",desc:"Emotions",title:"Insert Emotion",yell:"Yell",wink:"Wink",undecided:"Undecided","tongue_out":"Tongue Out",surprised:"Surprised",smile:"Smile",sealed:"Sealed","money_mouth":"Money Mouth",laughing:"Laughing",kiss:"Kiss",innocent:"Innocent",frown:"Frown","foot_in_mouth":"Foot in Mouth",embarassed:"Embarassed"}); -------------------------------------------------------------------------------- /sass/src/_worksheet_aux.scss: -------------------------------------------------------------------------------- 1 | #before-publish-page { 2 | form { 3 | a { 4 | text-decoration: none; } 5 | button { 6 | margin-left: 1em; 7 | margin-bottom: 0.5em; } 8 | input { 9 | margin-left: 1em; } } } 10 | 11 | #after-publish-page { 12 | input { 13 | margin-top: 1em; } } 14 | 15 | #edit-page { 16 | .sharebar { 17 | span { 18 | margin-right: 2em; } } } 19 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/template/blank.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | blank_page 4 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/template/css/template.css: -------------------------------------------------------------------------------- 1 | #frmbody { 2 | padding: 10px; 3 | background-color: #FFF; 4 | border: 1px solid #CCC; 5 | } 6 | 7 | .frmRow { 8 | margin-bottom: 10px; 9 | } 10 | 11 | #templatesrc { 12 | border: none; 13 | width: 320px; 14 | height: 240px; 15 | } 16 | 17 | .title { 18 | padding-bottom: 5px; 19 | } 20 | 21 | .mceActionPanel { 22 | padding-top: 5px; 23 | } 24 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/yes_no.html: -------------------------------------------------------------------------------- 1 | {% extends "html/base.html" %} 2 | {# This is just used for doctesting template.py. #} 3 | {% block title %}Confirm{% endblock %} 4 | 5 | {% block body %} 6 | 7 | 12 |
8 | {{ message }} 9 |

10 | Yes or No? 11 |
13 | {% endblock %} 14 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/table/css/row.css: -------------------------------------------------------------------------------- 1 | /* CSS file for row dialog in the table plugin */ 2 | 3 | .panel_wrapper div.current { 4 | height: 200px; 5 | } 6 | 7 | .advfield { 8 | width: 200px; 9 | } 10 | 11 | #action { 12 | margin-bottom: 3px; 13 | } 14 | 15 | #rowtype,#align,#valign,#class,#height { 16 | width: 150px; 17 | } 18 | 19 | #height { 20 | width: 50px; 21 | } 22 | 23 | .col2 { 24 | padding-left: 20px; 25 | } 26 | -------------------------------------------------------------------------------- /sagenb/data/sage3d/README.txt: -------------------------------------------------------------------------------- 1 | The sage3d ('java3d') viewer requires third-party libraries. To use the viewer: 2 | 3 | * Download a build from https://java3d.dev.java.net/ 4 | 5 | * Install in $SAGE_LOCAL/lib/python/site-packages/sagenb/data/sage3d/lib 6 | 7 | * Edit $SAGE_LOCAL/bin/sage3d 8 | 9 | * sage: var('A,B,C') 10 | sage: implicit_plot3d(sin(A)*cos(B) + sin(B)*cos(C) + sin(C)*cos(A), (A,-2*pi,2*pi), (B,-2*pi,2*pi), (C,-2*pi,2*pi), viewer='java3d') 11 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/example_dependency/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.ExampleDependencyPlugin",{init:function(a,b){},getInfo:function(){return{longname:"Example Dependency plugin",author:"Some author",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example_dependency",version:"1.0"}}});tinymce.PluginManager.add("example_dependency",tinymce.plugins.ExampleDependencyPlugin,["example"])})(); -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/searchreplace/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.searchreplace_dlg',{findwhat:"Find What",replacewith:"Replace with",direction:"Direction",up:"Up",down:"Down",mcase:"Match Case",findnext:"Find Next",allreplaced:"All occurrences of the search string were replaced.","searchnext_desc":"Find Again",notfound:"The search has been completed. The search string could not be found.","search_title":"Find","replace_title":"Find/Replace",replaceall:"Replace All",replace:"Replace"}); -------------------------------------------------------------------------------- /sass/src/_prettify.scss: -------------------------------------------------------------------------------- 1 | #source-code-page { 2 | .str { 3 | color: #008800; } 4 | .kwd { 5 | color: #000088; } 6 | .com { 7 | color: #880000; } 8 | .typ { 9 | color: #660066; } 10 | .lit { 11 | color: #006666; } 12 | .pun { 13 | color: #666600; } 14 | .pln { 15 | color: black; } 16 | .tag { 17 | color: #000088; } 18 | .atn { 19 | color: #660066; } 20 | .atv { 21 | color: #008800; } 22 | .dec { 23 | color: #660066; } } 24 | -------------------------------------------------------------------------------- /sagenb/testing/grinder/nodoctest.py: -------------------------------------------------------------------------------- 1 | """ 2 | This directory contains files related to using Grinder 3 | (http://grinder.sourceforge.net/) to do testing of the 4 | Sage notebook server. The imports necessary to even load 5 | these files do not work without a Grinder instance running, 6 | and there is also some hard-coding that you would need to 7 | fix to use it, so we do not run tests. However, the Grinder 8 | objects could be useful to someone seeking an alternative 9 | to Selenium testing. 10 | """ 11 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/print/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.Print",{init:function(a,b){a.addCommand("mcePrint",function(){a.getWin().print()});a.addButton("print",{title:"print.print_desc",cmd:"mcePrint"})},getInfo:function(){return{longname:"Print",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("print",tinymce.plugins.Print)})(); -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/advlink/css/advlink.css: -------------------------------------------------------------------------------- 1 | .mceLinkList, .mceAnchorList, #targetlist {width:280px;} 2 | .mceActionPanel {margin-top:7px;} 3 | .panel_wrapper div.current {height:320px;} 4 | #classlist, #title, #href {width:280px;} 5 | #popupurl, #popupname {width:200px;} 6 | #popupwidth, #popupheight, #popupleft, #popuptop {width:30px;vertical-align:middle;text-align:center;} 7 | #id, #style, #classes, #target, #dir, #hreflang, #lang, #charset, #type, #rel, #rev, #tabindex, #accesskey {width:200px;} 8 | #events_panel input {width:200px;} 9 | -------------------------------------------------------------------------------- /sagenb/babel.cfg: -------------------------------------------------------------------------------- 1 | #To find translatable strings, 2 | #run on terminal: pybabel -v extract -F /path/to/babel.cfg /path/to/project -o name_of_project.pot 3 | #It'll create the file /path/to/project/name_of_project.pot 4 | [python: **/sagenb/notebook/**.py] 5 | 6 | [python: **/sagenb/flask_version/**.py] 7 | 8 | [jinja2: **/sagenb/data/sage/html/**.html] 9 | encoding = utf-8 10 | extensions=jinja2.ext.autoescape,jinja2.ext.with_ 11 | 12 | [jinja2: **/sagenb/data/sage/js/**.js] 13 | encoding = utf-8 14 | extensions=jinja2.ext.autoescape,jinja2.ext.with_ 15 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/simple/skins/o2k7/content.css: -------------------------------------------------------------------------------- 1 | body, td, pre {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} 2 | 3 | body {background: #FFF;} 4 | .mceVisualAid {border: 1px dashed #BBB;} 5 | 6 | /* IE */ 7 | 8 | * html body { 9 | scrollbar-3dlight-color: #F0F0EE; 10 | scrollbar-arrow-color: #676662; 11 | scrollbar-base-color: #F0F0EE; 12 | scrollbar-darkshadow-color: #DDDDDD; 13 | scrollbar-face-color: #E0E0DD; 14 | scrollbar-highlight-color: #F0F0EE; 15 | scrollbar-shadow-color: #F0F0EE; 16 | scrollbar-track-color: #F5F5F5; 17 | } 18 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/xhtmlxtras/css/popup.css: -------------------------------------------------------------------------------- 1 | input.field, select.field {width:200px;} 2 | input.picker {width:179px; margin-left: 5px;} 3 | input.disabled {border-color:#F2F2F2;} 4 | img.picker {vertical-align:text-bottom; cursor:pointer;} 5 | h1 {padding: 0 0 5px 0;} 6 | .panel_wrapper div.current {height:160px;} 7 | #xhtmlxtrasdel .panel_wrapper div.current, #xhtmlxtrasins .panel_wrapper div.current {height: 230px;} 8 | a.browse span {display:block; width:20px; height:20px; background:url('../../../themes/advanced/img/icons.gif') -140px -20px;} 9 | #datetime {width:180px;} 10 | -------------------------------------------------------------------------------- /sagenb/data/codemirror/css/sparqlcolors.css: -------------------------------------------------------------------------------- 1 | .editbox { 2 | margin: .4em; 3 | padding: 0; 4 | font-family: monospace; 5 | font-size: 10pt; 6 | color: black; 7 | } 8 | 9 | .editbox p { 10 | margin: 0; 11 | } 12 | 13 | span.sp-keyword { 14 | color: #708; 15 | } 16 | 17 | span.sp-prefixed { 18 | color: #5d1; 19 | } 20 | 21 | span.sp-var { 22 | color: #00c; 23 | } 24 | 25 | span.sp-comment { 26 | color: #a70; 27 | } 28 | 29 | span.sp-literal { 30 | color: #a22; 31 | } 32 | 33 | span.sp-uri { 34 | color: #292; 35 | } 36 | 37 | span.sp-operator { 38 | color: #088; 39 | } 40 | -------------------------------------------------------------------------------- /sass/src/_login.scss: -------------------------------------------------------------------------------- 1 | #login-page { 2 | h2 { 3 | font-size: 1.5em; 4 | margin-bottom: 0.375em; } 5 | h1,h2,h3,h4,h5,h6 { 6 | line-height: 1em; } 7 | p { 8 | margin-bottom: 1em; } 9 | strong { 10 | font-weight: bold; } 11 | #desc { 12 | float: left; 13 | margin-right: 400px; } 14 | div { 15 | padding: 0.5em 1em; } 16 | #sign-in-box { 17 | background-color: #efefff; 18 | float: left; 19 | margin-left: -400px; 20 | width: 350px; 21 | form { 22 | label { 23 | display: block; } } 24 | a { 25 | font-size: 0.875em; } } } 26 | -------------------------------------------------------------------------------- /sagenb/testing/grinder/simpleopen.py: -------------------------------------------------------------------------------- 1 | from net.grinder.script.Grinder import grinder 2 | from net.grinder.script import Test 3 | from net.grinder.plugin.http import HTTPRequest 4 | from HTTPClient import NVPair 5 | 6 | # We declare a default URL for the HTTPRequest. 7 | request = HTTPRequest(url = "http://localhost:8080") 8 | 9 | def page1(): 10 | request.GET('/') 11 | #request.GET('/console/login/LoginForm.jsp') 12 | #request.GET('/console/login/bea_logo.gif') 13 | 14 | page1Test = Test(1, "First page").wrap(page1) 15 | 16 | class TestRunner: 17 | def __call__(self): 18 | page1Test() 19 | -------------------------------------------------------------------------------- /sagenb/data/sage3d/sage3d: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #DIR=`pwd` 4 | #cd `dirname "$0"` 5 | #java -classpath lib/sage3d.jar:sun-libs/j3dcore.jar:sun-libs/gluegen-rt.jar:sun-libs/vecmath.jar:sun-libs/j3dutils.jar:sun-libs/jogl.jar \ 6 | # org.sagemath.sage3d.ObjectViewerApp "$DIR/$1" 7 | 8 | # See $SAGE3D_HOME/README.txt 9 | SAGE3D_HOME="`"$SAGE_LOCAL"/bin/sage-pypkg-location sagenb`""/sagenb/data/sage3d" 10 | cd $SAGE3D_HOME 11 | export LD_LIBRARY_PATH="$SAGE3D_HOME/lib/amd64" 12 | java -classpath lib/sage3d.jar:lib/ext/j3dcore.jar:lib/ext/vecmath.jar:lib/ext/j3dutils.jar \ 13 | org.sagemath.sage3d.ObjectViewerApp "$1" 14 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/settings/base.html: -------------------------------------------------------------------------------- 1 | {% extends "html/base_authenticated.html" %} 2 | 3 | {% block body_classes %}settings-page{% endblock %} 4 | 5 | {% block main %} 6 |

{{ render_title() }}

7 | {% block settings_nav %} 8 | 15 | {% endblock %} 16 | {% block settings_main %} 17 | {% endblock %} 18 | {% endblock %} 19 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/error_message.html: -------------------------------------------------------------------------------- 1 | {% extends "html/base_authenticated.html" %} 2 | 3 | {% block title %} 4 | {% if title %}{{ title }}{% else %}{{ gettext('Error') }}{% endif %} 5 | {% endblock %} 6 | 7 | {% if redirect_url %} 8 | {% block more_meta %} 9 | 10 | {% endblock %} 11 | {% endif %} 12 | 13 | {% block main %} 14 |
15 | {{ msg | safe }} 16 |
17 | {% if cont %} 18 |
19 | {{ gettext('Continue') }} 20 |
21 | {% endif %} 22 | {% endblock %} 23 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/template/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.template_dlg',{title:"Templates",label:"Template","desc_label":"Description",desc:"Insert Predefined Template Content",select:"Select a Template",preview:"Preview",warning:"Warning: Updating a template with a different one may cause data loss.","mdate_format":"%Y-%m-%d %H:%M:%S","cdate_format":"%Y-%m-%d %H:%M:%S","months_long":"January,February,March,April,May,June,July,August,September,October,November,December","months_short":"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec","day_long":"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday","day_short":"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"}); -------------------------------------------------------------------------------- /sagenb/data/sage/html/notebook/worksheet.html: -------------------------------------------------------------------------------- 1 | {# 2 | INPUT: 3 | - worksheet -- Worksheet object 4 | - publish -- boolean whether this is for the published version 5 | - do_print -- boolean whether this is for a print version 6 | #} 7 | 8 | {% set wrap = conf['word_wrap_cols'] %} 9 | {% if not publish %} 10 | {% set publish = worksheet.is_published() %} 11 | {% endif %} 12 | 13 |
14 |
15 | {% for cell in worksheet.cell_list() %} 16 | {{ cell.html(wrap = wrap, div_wrap = true, do_print = do_print, publish = publish) | safe }} 17 | {% endfor %} 18 |
19 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/simple/skins/default/content.css: -------------------------------------------------------------------------------- 1 | body, td, pre { 2 | font-family: Verdana, Arial, Helvetica, sans-serif; 3 | font-size: 10px; 4 | } 5 | 6 | body { 7 | background-color: #FFFFFF; 8 | } 9 | 10 | .mceVisualAid { 11 | border: 1px dashed #BBBBBB; 12 | } 13 | 14 | /* MSIE specific */ 15 | 16 | * html body { 17 | scrollbar-3dlight-color: #F0F0EE; 18 | scrollbar-arrow-color: #676662; 19 | scrollbar-base-color: #F0F0EE; 20 | scrollbar-darkshadow-color: #DDDDDD; 21 | scrollbar-face-color: #E0E0DD; 22 | scrollbar-highlight-color: #F0F0EE; 23 | scrollbar-shadow-color: #F0F0EE; 24 | scrollbar-track-color: #F5F5F5; 25 | } 26 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/js/emotions.js: -------------------------------------------------------------------------------- 1 | tinyMCEPopup.requireLangPack(); 2 | 3 | var EmotionsDialog = { 4 | init : function(ed) { 5 | tinyMCEPopup.resizeToInnerSize(); 6 | }, 7 | 8 | insert : function(file, title) { 9 | var ed = tinyMCEPopup.editor, dom = ed.dom; 10 | 11 | tinyMCEPopup.execCommand('mceInsertContent', false, dom.createHTML('img', { 12 | src : tinyMCEPopup.getWindowArg('plugin_url') + '/img/' + file, 13 | alt : ed.getLang(title), 14 | title : ed.getLang(title), 15 | border : 0 16 | })); 17 | 18 | tinyMCEPopup.close(); 19 | } 20 | }; 21 | 22 | tinyMCEPopup.onInit.add(EmotionsDialog.init, EmotionsDialog); 23 | -------------------------------------------------------------------------------- /doc/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SPHINXPROJ = sagenb 8 | SOURCEDIR = source 9 | BUILDDIR = build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(a){a.create("tinymce.plugins.EmotionsPlugin",{init:function(b,c){b.addCommand("mceEmotion",function(){b.windowManager.open({file:c+"/emotions.htm",width:250+parseInt(b.getLang("emotions.delta_width",0)),height:160+parseInt(b.getLang("emotions.delta_height",0)),inline:1},{plugin_url:c})});b.addButton("emotions",{title:"emotions.emotions_desc",cmd:"mceEmotion"})},getInfo:function(){return{longname:"Emotions",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions",version:a.majorVersion+"."+a.minorVersion}}});a.PluginManager.add("emotions",a.plugins.EmotionsPlugin)})(tinymce); -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/xhtmlxtras/js/abbr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * abbr.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | function init() { 12 | SXE.initElementDialog('abbr'); 13 | if (SXE.currentAction == "update") { 14 | SXE.showRemoveButton(); 15 | } 16 | } 17 | 18 | function insertAbbr() { 19 | SXE.insertElement('abbr'); 20 | tinyMCEPopup.close(); 21 | } 22 | 23 | function removeAbbr() { 24 | SXE.removeElement('abbr'); 25 | tinyMCEPopup.close(); 26 | } 27 | 28 | tinyMCEPopup.onInit.add(init); 29 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/xhtmlxtras/js/cite.js: -------------------------------------------------------------------------------- 1 | /** 2 | * cite.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | function init() { 12 | SXE.initElementDialog('cite'); 13 | if (SXE.currentAction == "update") { 14 | SXE.showRemoveButton(); 15 | } 16 | } 17 | 18 | function insertCite() { 19 | SXE.insertElement('cite'); 20 | tinyMCEPopup.close(); 21 | } 22 | 23 | function removeCite() { 24 | SXE.removeElement('cite'); 25 | tinyMCEPopup.close(); 26 | } 27 | 28 | tinyMCEPopup.onInit.add(init); 29 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/xhtmlxtras/js/acronym.js: -------------------------------------------------------------------------------- 1 | /** 2 | * acronym.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | function init() { 12 | SXE.initElementDialog('acronym'); 13 | if (SXE.currentAction == "update") { 14 | SXE.showRemoveButton(); 15 | } 16 | } 17 | 18 | function insertAcronym() { 19 | SXE.insertElement('acronym'); 20 | tinyMCEPopup.close(); 21 | } 22 | 23 | function removeAcronym() { 24 | SXE.removeElement('acronym'); 25 | tinyMCEPopup.close(); 26 | } 27 | 28 | tinyMCEPopup.onInit.add(init); 29 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/example/js/dialog.js: -------------------------------------------------------------------------------- 1 | tinyMCEPopup.requireLangPack(); 2 | 3 | var ExampleDialog = { 4 | init : function() { 5 | var f = document.forms[0]; 6 | 7 | // Get the selected contents as text and place it in the input 8 | f.someval.value = tinyMCEPopup.editor.selection.getContent({format : 'text'}); 9 | f.somearg.value = tinyMCEPopup.getWindowArg('some_custom_arg'); 10 | }, 11 | 12 | insert : function() { 13 | // Insert the contents from the input into the document 14 | tinyMCEPopup.editor.execCommand('mceInsertContent', false, document.forms[0].someval.value); 15 | tinyMCEPopup.close(); 16 | } 17 | }; 18 | 19 | tinyMCEPopup.onInit.add(ExampleDialog.init, ExampleDialog); 20 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/table/js/merge_cells.js: -------------------------------------------------------------------------------- 1 | tinyMCEPopup.requireLangPack(); 2 | 3 | var MergeCellsDialog = { 4 | init : function() { 5 | var f = document.forms[0]; 6 | 7 | f.numcols.value = tinyMCEPopup.getWindowArg('cols', 1); 8 | f.numrows.value = tinyMCEPopup.getWindowArg('rows', 1); 9 | }, 10 | 11 | merge : function() { 12 | var func, f = document.forms[0]; 13 | 14 | tinyMCEPopup.restoreSelection(); 15 | 16 | func = tinyMCEPopup.getWindowArg('onaction'); 17 | 18 | func({ 19 | cols : f.numcols.value, 20 | rows : f.numrows.value 21 | }); 22 | 23 | tinyMCEPopup.close(); 24 | } 25 | }; 26 | 27 | tinyMCEPopup.onInit.add(MergeCellsDialog.init, MergeCellsDialog); 28 | -------------------------------------------------------------------------------- /sagenb/data/codemirror/css/csscolors.css: -------------------------------------------------------------------------------- 1 | .editbox { 2 | margin: .4em; 3 | padding: 0; 4 | font-family: monospace; 5 | font-size: 10pt; 6 | color: black; 7 | } 8 | 9 | pre.code, .editbox { 10 | color: #666666; 11 | } 12 | 13 | .editbox p { 14 | margin: 0; 15 | } 16 | 17 | span.css-at { 18 | color: #770088; 19 | } 20 | 21 | span.css-unit { 22 | color: #228811; 23 | } 24 | 25 | span.css-value { 26 | color: #770088; 27 | } 28 | 29 | span.css-identifier { 30 | color: black; 31 | } 32 | 33 | span.css-important { 34 | color: #0000FF; 35 | } 36 | 37 | span.css-colorcode { 38 | color: #004499; 39 | } 40 | 41 | span.css-comment { 42 | color: #AA7700; 43 | } 44 | 45 | span.css-string { 46 | color: #AA2222; 47 | } 48 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/preview/preview.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | {#preview.preview_desc} 11 | 12 | 13 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /sagenb/notebook/jquery.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | from . import interact 3 | 4 | def javascript(s): 5 | print('' % s) 6 | 7 | def cell_id(): 8 | return interact.SAGE_CELL_ID 9 | 10 | def draggable(option=''): 11 | """ 12 | INPUT: 13 | option -- string 14 | "" (default) -- Creates new draggables on the current cell. 15 | "enable" -- Enable the draggable functionality. 16 | "disable" -- Temporarily disable the draggable functionality. 17 | """ 18 | s = '$("#cell_outer_%s").draggable("%s")' % (cell_id(), option) 19 | javascript(s) 20 | 21 | def resizable(): 22 | s = '$("#cell_outer_%s").resizable()' % cell_id() 23 | javascript(s) 24 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/advimage/css/advimage.css: -------------------------------------------------------------------------------- 1 | #src_list, #over_list, #out_list {width:280px;} 2 | .mceActionPanel {margin-top:7px;} 3 | .alignPreview {border:1px solid #000; width:140px; height:140px; overflow:hidden; padding:5px;} 4 | .checkbox {border:0;} 5 | .panel_wrapper div.current {height:305px;} 6 | #prev {margin:0; border:1px solid #000; width:428px; height:150px; overflow:auto;} 7 | #align, #classlist {width:150px;} 8 | #width, #height {vertical-align:middle; width:50px; text-align:center;} 9 | #vspace, #hspace, #border {vertical-align:middle; width:30px; text-align:center;} 10 | #class_list {width:180px;} 11 | input {width: 280px;} 12 | #constrain, #onmousemovecheck {width:auto;} 13 | #id, #dir, #lang, #usemap, #longdesc {width:200px;} 14 | -------------------------------------------------------------------------------- /sagenb/data/codemirror/css/xmlcolors.css: -------------------------------------------------------------------------------- 1 | .editbox { 2 | margin: .4em; 3 | padding: 0; 4 | font-family: monospace; 5 | font-size: 10pt; 6 | color: black; 7 | } 8 | 9 | .editbox p { 10 | margin: 0; 11 | } 12 | 13 | span.xml-tagname { 14 | color: #A0B; 15 | } 16 | 17 | span.xml-attribute { 18 | color: #281; 19 | } 20 | 21 | span.xml-punctuation { 22 | color: black; 23 | } 24 | 25 | span.xml-attname { 26 | color: #00F; 27 | } 28 | 29 | span.xml-comment { 30 | color: #A70; 31 | } 32 | 33 | span.xml-cdata { 34 | color: #48A; 35 | } 36 | 37 | span.xml-processing { 38 | color: #999; 39 | } 40 | 41 | span.xml-entity { 42 | color: #A22; 43 | } 44 | 45 | span.xml-error { 46 | color: #F00; 47 | } 48 | 49 | span.xml-text { 50 | color: black; 51 | } 52 | -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/colorpicker/js/eye.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Zoomimage 4 | * Author: Stefan Petre www.eyecon.ro 5 | * 6 | */ 7 | (function($){ 8 | var EYE = window.EYE = function() { 9 | var _registered = { 10 | init: [] 11 | }; 12 | return { 13 | init: function() { 14 | $.each(_registered.init, function(nr, fn){ 15 | fn.call(); 16 | }); 17 | }, 18 | extend: function(prop) { 19 | for (var i in prop) { 20 | if (prop[i] != undefined) { 21 | this[i] = prop[i]; 22 | } 23 | } 24 | }, 25 | register: function(fn, type) { 26 | if (!_registered[type]) { 27 | _registered[type] = []; 28 | } 29 | _registered[type].push(fn); 30 | } 31 | }; 32 | }(); 33 | $(EYE.init); 34 | })(jQuery); 35 | -------------------------------------------------------------------------------- /sagenb/notebook/all.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | """nodoctest 3 | """ 4 | ############################################################################# 5 | # Copyright (C) 2007 William Stein 6 | # Distributed under the terms of the GNU General Public License (GPL) 7 | # The full text of the GPL is available at: 8 | # http://www.gnu.org/licenses/ 9 | ############################################################################# 10 | 11 | #from test_notebook import notebook_playback 12 | 13 | from .sage_email import email 14 | 15 | from .notebook_object import notebook, inotebook 16 | 17 | from .interact import interact, input_box, slider, range_slider, selector, checkbox, input_grid, text_control, color_selector 18 | 19 | # For doctesting. 20 | import sagenb 21 | -------------------------------------------------------------------------------- /sagenb/data/codemirror/contrib/sql/css/sqlcolors.css: -------------------------------------------------------------------------------- 1 | .editbox { 2 | margin: .4em; 3 | padding: 0; 4 | font-family: monospace; 5 | font-size: 10pt; 6 | color: black; 7 | } 8 | 9 | .editbox p { 10 | margin: 0; 11 | } 12 | 13 | span.sql-keyword { 14 | color: blue; 15 | } 16 | 17 | span.sql-var { 18 | color: red; 19 | } 20 | 21 | span.sql-comment { 22 | color: #AA7700; 23 | } 24 | 25 | span.sql-literal { 26 | color: green; 27 | } 28 | 29 | span.sql-operator { 30 | color: blue; 31 | } 32 | 33 | span.sql-word { 34 | color: black; 35 | } 36 | 37 | span.sql-function { 38 | color: darkorange; 39 | } 40 | 41 | span.sql-type { 42 | color: purple; 43 | } 44 | 45 | span.sql-separator { 46 | color: #666666; 47 | } 48 | 49 | span.sql-number { 50 | color: darkcyan; 51 | } 52 | 53 | 54 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/history.html: -------------------------------------------------------------------------------- 1 | {% extends "html/base.html" %} 2 | 3 | {% block title %}{{ gettext('Sage: History for %(u)s', u=username) }}{% endblock %} 4 | 5 | {% block javascript %} 6 | 7 | {% endblock %} 8 | 9 | {% block page_id %}history-page{% endblock %} 10 | 11 | {% block body %} 12 |
{{ text }}
13 | {{ gettext('Create a new Sage worksheet version of the last 100 commands in the above log.') }} 14 | 15 | 20 | {% endblock %} 21 | -------------------------------------------------------------------------------- /sagenb/data/codemirror/css/docs.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 3em 6em; 4 | color: black; 5 | max-width: 50em; 6 | } 7 | 8 | h1 { 9 | font-size: 22pt; 10 | } 11 | 12 | .underline { 13 | border-bottom: 3px solid #C44; 14 | } 15 | 16 | h2 { 17 | font-size: 14pt; 18 | } 19 | 20 | h3 { 21 | font-size: 12pt; 22 | } 23 | 24 | p.rel { 25 | padding-left: 2em; 26 | text-indent: -2em; 27 | } 28 | 29 | div.border { 30 | border: 1px solid black; 31 | padding: 3px; 32 | } 33 | 34 | code { 35 | font-family: courier, monospace; 36 | font-size: 90%; 37 | color: #144; 38 | } 39 | 40 | pre.code { 41 | margin: 1.1em 12px; 42 | border: 1px solid #CCCCCC; 43 | color: black; 44 | padding: .4em; 45 | font-family: courier, monospace; 46 | } 47 | 48 | .warn { 49 | color: #C00; 50 | } 51 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/advimage/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.AdvancedImagePlugin",{init:function(a,b){a.addCommand("mceAdvImage",function(){if(a.dom.getAttrib(a.selection.getNode(),"class","").indexOf("mceItem")!=-1){return}a.windowManager.open({file:b+"/image.htm",width:480+parseInt(a.getLang("advimage.delta_width",0)),height:385+parseInt(a.getLang("advimage.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("image",{title:"advimage.image_desc",cmd:"mceAdvImage"})},getInfo:function(){return{longname:"Advanced image",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advimage",tinymce.plugins.AdvancedImagePlugin)})(); -------------------------------------------------------------------------------- /sagenb/interfaces/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | ############################################################################# 3 | # 4 | # Copyright (C) 2009 William Stein 5 | # Distributed under the terms of the GNU General Public License (GPL) 6 | # The full text of the GPL is available at: 7 | # http://www.gnu.org/licenses/ 8 | # 9 | ############################################################################# 10 | 11 | # interfaces to other math software 12 | 13 | from .worksheet_process import WorksheetProcess 14 | 15 | from .reference import WorksheetProcess_ReferenceImplementation 16 | 17 | from .expect import (WorksheetProcess_ExpectImplementation, 18 | WorksheetProcess_RemoteExpectImplementation) 19 | 20 | from .limits import ProcessLimits 21 | -------------------------------------------------------------------------------- /sass/src/_accounts.scss: -------------------------------------------------------------------------------- 1 | .accounts-page { 2 | #wrapper { 3 | margin: 0 auto; 4 | max-width: 600px; } 5 | h1, h2, h3, h4, h5 { 6 | font-weight: normal; } 7 | h1 { 8 | border-bottom: 1px solid #696969; 9 | font-size: 2em; 10 | padding: 10px 0; } 11 | h2 { 12 | font-weight: bold; } 13 | h1, h2, p, li { 14 | margin-bottom: 10px; } 15 | .entry { 16 | margin-bottom: 10px; 17 | border: 1px solid #999999; 18 | padding: 3px; 19 | width: 200; } 20 | li { 21 | border-bottom: 1px solid #cccccc; } 22 | .error { 23 | color: red; } 24 | .error_found { 25 | color: red; 26 | font-size: 1.5em; } 27 | button { 28 | margin-right: 1em; } 29 | form { 30 | label { 31 | display: block; } 32 | div { 33 | margin-bottom: 1em; } 34 | a { 35 | text-decoration: none; } } } 36 | -------------------------------------------------------------------------------- /sagenb/data/codemirror/css/jscolors.css: -------------------------------------------------------------------------------- 1 | .editbox { 2 | margin: .4em; 3 | padding: 0; 4 | font-family: monospace; 5 | font-size: 10pt; 6 | color: black; 7 | } 8 | 9 | pre.code, .editbox { 10 | color: #666666; 11 | } 12 | 13 | .editbox p { 14 | margin: 0; 15 | } 16 | 17 | span.js-punctuation { 18 | color: #666666; 19 | } 20 | 21 | span.js-operator { 22 | color: #666666; 23 | } 24 | 25 | span.js-keyword { 26 | color: #770088; 27 | } 28 | 29 | span.js-atom { 30 | color: #228811; 31 | } 32 | 33 | span.js-variable { 34 | color: black; 35 | } 36 | 37 | span.js-variabledef { 38 | color: #0000FF; 39 | } 40 | 41 | span.js-localvariable { 42 | color: #004499; 43 | } 44 | 45 | span.js-property { 46 | color: black; 47 | } 48 | 49 | span.js-comment { 50 | color: #AA7700; 51 | } 52 | 53 | span.js-string { 54 | color: #AA2222; 55 | } 56 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/advhr/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.AdvancedHRPlugin",{init:function(a,b){a.addCommand("mceAdvancedHr",function(){a.windowManager.open({file:b+"/rule.htm",width:250+parseInt(a.getLang("advhr.delta_width",0)),height:160+parseInt(a.getLang("advhr.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("advhr",{title:"advhr.advhr_desc",cmd:"mceAdvancedHr"});a.onNodeChange.add(function(d,c,e){c.setActive("advhr",e.nodeName=="HR")});a.onClick.add(function(c,d){d=d.target;if(d.nodeName==="HR"){c.selection.select(d)}})},getInfo:function(){return{longname:"Advanced HR",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advhr",tinymce.plugins.AdvancedHRPlugin)})(); -------------------------------------------------------------------------------- /sagenb/notebook/user_db.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | """nodoctest 3 | """ 4 | 5 | ############################################################################# 6 | # Copyright (C) 2007 William Stein 7 | # Distributed under the terms of the GNU General Public License (GPL) 8 | # The full text of the GPL is available at: 9 | # http://www.gnu.org/licenses/ 10 | ############################################################################# 11 | 12 | class UserDatabase(): 13 | def add_user(self, user, passwd, email): 14 | self[user] = UserRecord(user, passwd, email) 15 | 16 | def remove_user(self, user): 17 | del self[user] 18 | 19 | class UserRecord: 20 | def __init__(self, username, passwd, email): 21 | self.username = username 22 | self.passwd = passwd 23 | self.email = email 24 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/source_code.html: -------------------------------------------------------------------------------- 1 | {% extends "html/base_authenticated.html" %} 2 | 3 | {% block title %}{{ src_filename }} - {{ gettext('Source Code') }}{% endblock %} 4 | 5 | {% block css %}main{% endblock %} 6 | 7 | {% block more_css %}{% endblock %} 8 | 9 | {% block page_id %}source-code-page{% endblock %} 10 | 11 | {% block body %} 12 |
13 |

{{ gettext('Sage Source Browser') }}

14 |

{{ src_filename }} ({{ gettext('browse directory') }})

15 |
16 | 17 | {{ src }} 18 | 19 | 20 | 24 | {% endblock %} 25 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/example/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.PluginManager.requireLangPack("example");tinymce.create("tinymce.plugins.ExamplePlugin",{init:function(a,b){a.addCommand("mceExample",function(){a.windowManager.open({file:b+"/dialog.htm",width:320+parseInt(a.getLang("example.delta_width",0)),height:120+parseInt(a.getLang("example.delta_height",0)),inline:1},{plugin_url:b,some_custom_arg:"custom arg"})});a.addButton("example",{title:"example.desc",cmd:"mceExample",image:b+"/img/example.gif"});a.onNodeChange.add(function(d,c,e){c.setActive("example",e.nodeName=="IMG")})},createControl:function(b,a){return null},getInfo:function(){return{longname:"Example plugin",author:"Some author",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example",version:"1.0"}}});tinymce.PluginManager.add("example",tinymce.plugins.ExamplePlugin)})(); -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/preview/example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 18 | Example of a custom preview page 19 | 20 | 21 | 22 | Editor contents:
23 |
24 | 25 |
26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/worksheet/completions.html: -------------------------------------------------------------------------------- 1 | {# 2 | INPUT: 3 | - cell_id - id for the cell of the completions 4 | - completions_enumerated - enumerated (enumerate()) 2D list of completions in 5 | column-major order 6 | #} 7 |
    10 |
      11 | {%- for row in column %} 12 |
    • 13 | {{- row }} 15 |
    • 16 | {%- endfor %} 17 |
    18 | 19 | {%- endfor %} 20 |
21 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/paste/pasteword.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | {#paste.paste_word_desc} 4 | 5 | 6 | 7 | 8 |
9 |
{#paste.paste_word_desc}
10 | 11 |
{#paste_dlg.word_title}
12 | 13 |
14 | 15 |
16 | 17 | 18 |
19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css: -------------------------------------------------------------------------------- 1 | /* Silver */ 2 | .o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton a.mceOpen, .o2k7SkinSilver .mceListBox a.mceOpen {background-image:url(img/button_bg_silver.png)} 3 | .o2k7SkinSilver td.mceToolbar, .o2k7SkinSilver td.mceStatusbar, .o2k7SkinSilver .mceMenuItemTitle a {background:#eee} 4 | .o2k7SkinSilver .mceListBox .mceText {background:#FFF} 5 | .o2k7SkinSilver .mceExternalToolbar, .o2k7SkinSilver .mceListBox .mceText, .o2k7SkinSilver div.mceMenu, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceFirst td, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceLast td, .o2k7SkinSilver .mceIframeContainer {border-color: #bbb} 6 | -------------------------------------------------------------------------------- /sagenb/data/codemirror/contrib/lua/css/luacolors.css: -------------------------------------------------------------------------------- 1 | .editbox { 2 | margin: .4em; 3 | padding: 0; 4 | font-family: monospace; 5 | font-size: 10pt; 6 | color: black; 7 | } 8 | 9 | pre.code, .editbox { 10 | color: #666666; 11 | } 12 | 13 | .editbox p { 14 | margin: 0; 15 | } 16 | 17 | span.lua-comment { 18 | color: #BB9977; 19 | } 20 | 21 | span.lua-keyword { 22 | font-weight: bold; 23 | color: blue; 24 | } 25 | 26 | span.lua-string { 27 | color: #AA2222; 28 | } 29 | 30 | span.lua-stdfunc { 31 | font-weight: bold; 32 | color: #077; 33 | } 34 | span.lua-customfunc { 35 | font-weight: bold; 36 | color: #0AA; 37 | } 38 | 39 | 40 | span.lua-identifier { 41 | color: black; 42 | } 43 | 44 | span.lua-number { 45 | color: #3A3; 46 | } 47 | 48 | span.lua-token { 49 | color: #151; 50 | } 51 | 52 | span.lua-error { 53 | color: #FFF; 54 | background-color: #F00; 55 | } 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /sagenb/data/sage3d/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /sagenb/data/sage3d/src/org/sagemath/TestApplet.java: -------------------------------------------------------------------------------- 1 | package org.sagemath; 2 | 3 | import java.applet.*; 4 | import java.awt.*; 5 | 6 | import javax.swing.JFrame; 7 | import java.util.HashMap; 8 | 9 | public class TestApplet extends Applet { 10 | 11 | protected HashMap windows = new HashMap(); 12 | 13 | public TestApplet() { 14 | setLayout(new BorderLayout()); 15 | add(new Label("Hello SAGE")); 16 | } 17 | 18 | public void showView(String url, String id) { 19 | showView(url, id, url); 20 | } 21 | 22 | public void showView(String url, String id, String name) { 23 | JFrame frame = (JFrame)windows.get(id); 24 | if (frame == null) { 25 | frame = new JFrame(id); 26 | frame.setLayout(new BorderLayout()); 27 | windows.put(id, frame); 28 | } 29 | frame.getContentPane().add(new Label(url)); 30 | frame.setSize(200,50); 31 | frame.setVisible(true); 32 | } 33 | 34 | } -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/iespell/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.IESpell",{init:function(a,b){var c=this,d;if(!tinymce.isIE){return}c.editor=a;a.addCommand("mceIESpell",function(){try{d=new ActiveXObject("ieSpell.ieSpellExtension");d.CheckDocumentNode(a.getDoc().documentElement)}catch(f){if(f.number==-2146827859){a.windowManager.confirm(a.getLang("iespell.download"),function(e){if(e){window.open("http://www.iespell.com/download.php","ieSpellDownload","")}})}else{a.windowManager.alert("Error Loading ieSpell: Exception "+f.number)}}});a.addButton("iespell",{title:"iespell.iespell_desc",cmd:"mceIESpell"})},getInfo:function(){return{longname:"IESpell (IE Only)",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("iespell",tinymce.plugins.IESpell)})(); -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/jpicker/jPicker.css: -------------------------------------------------------------------------------- 1 | @media all 2 | { 3 | #jPicker { margin: 0px 8px; text-align: left; } 4 | #jPicker ul { font-size: 15px; margin: 0px 0px 0px 15px; padding: 0px; } 5 | #jPicker ul li { list-style: disc; padding: 2px 0px; } 6 | #jPicker ul li ul { margin-bottom: 10px; } 7 | #jPicker ul li ul li { list-style: circle; } 8 | #jPicker p { font-size: 13px; padding: 0px 10px; } 9 | #jPicker hr { clear: both; } 10 | #jPicker h2.jPicker { font-size: 16px; padding: 20px 10px; } 11 | #jPicker code { color: #8bd; font-size: 14px; font-weight: bold; } 12 | #jPicker pre { background: #eee; border: 1px solid #000; color: #000; display: block; font-size: 11px; margin: 10px 5px; padding: 5px; } 13 | #jPicker span { font-size: 13px; text-align: center; } 14 | #jPicker a { color: #ff8050; } 15 | #jPicker input { font-size: 13px; padding: 2px 5px; } 16 | #jPicker h2 { font-size: 16px; margin: 10px 0px; } 17 | } -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/style/css/props.css: -------------------------------------------------------------------------------- 1 | #text_font {width:250px;} 2 | #text_size {width:70px;} 3 | .mceAddSelectValue {background:#DDD;} 4 | select, #block_text_indent, #box_width, #box_height, #box_padding_top, #box_padding_right, #box_padding_bottom, #box_padding_left {width:70px;} 5 | #box_margin_top, #box_margin_right, #box_margin_bottom, #box_margin_left, #positioning_width, #positioning_height, #positioning_zindex {width:70px;} 6 | #positioning_placement_top, #positioning_placement_right, #positioning_placement_bottom, #positioning_placement_left {width:70px;} 7 | #positioning_clip_top, #positioning_clip_right, #positioning_clip_bottom, #positioning_clip_left {width:70px;} 8 | .panel_wrapper div.current {padding-top:10px;height:230px;} 9 | .delim {border-left:1px solid gray;} 10 | .tdelim {border-bottom:1px solid gray;} 11 | #block_display {width:145px;} 12 | #list_type {width:115px;} 13 | .disabled {background:#EEE;} 14 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/notebook/afterpublish_window.html: -------------------------------------------------------------------------------- 1 | {% extends "html/notebook/base_aux.html" %} 2 | 3 | {% block page_id %}after-publish-page{% endblock %} 4 | 5 | {% set checked = 'checked="true"' if worksheet.is_auto_publish() else '' %} 6 | 7 | {% block sharebar_title %} 8 |

{{ gettext('Worksheet is publicly viewable at %(u)s', u=url) | safe }}

9 |

{{ gettext('Published on %(t)s', t=time) }}

10 |
11 | 12 |

13 |
14 | 15 | {% endblock %} 16 | {% set select = "publish" %} 17 | {% set backwards = true %} 18 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/style/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.StylePlugin",{init:function(a,b){a.addCommand("mceStyleProps",function(){a.windowManager.open({file:b+"/props.htm",width:480+parseInt(a.getLang("style.delta_width",0)),height:320+parseInt(a.getLang("style.delta_height",0)),inline:1},{plugin_url:b,style_text:a.selection.getNode().style.cssText})});a.addCommand("mceSetElementStyle",function(d,c){if(e=a.selection.getNode()){a.dom.setAttrib(e,"style",c);a.execCommand("mceRepaint")}});a.onNodeChange.add(function(d,c,f){c.setDisabled("styleprops",f.nodeName==="BODY")});a.addButton("styleprops",{title:"style.desc",cmd:"mceStyleProps"})},getInfo:function(){return{longname:"Style",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("style",tinymce.plugins.StylePlugin)})(); -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/farbtastic/CHANGELOG.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | Farbtastic: Changelog 5 | 6 |

Farbtastic: Changelog

7 | 8 |

1.2 - 2007/01/08

9 |
    10 |
  • Fixed bug with linking multiple fields with the same value.
  • 11 |
12 |

1.1 - 2006/10/27

13 |
    14 |
  • Work around for the transparent PNGs in Internet Explorer.
  • 15 |
  • Better mouse handling code to accomodate CSS-based layouts better.
  • 16 |
17 |

1.0 - 2006/07/14

18 |
    19 |
  • Initial release.
  • 20 |
21 | 22 |

More info on Acko.net.

23 |

Created by Steven Wittens.

24 | 25 | 26 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/worksheet/ratings_info.html: -------------------------------------------------------------------------------- 1 | {% extends "html/base.html" %} 2 | 3 | {% block title %}{{ gettext('Ratings for %(wn)s', wn=worksheet.name()) }}{% endblock %} 4 | 5 | {% block body %} 6 |

{{ gettext('Ratings for %(wn)s', wn=worksheet.name()) }}

7 |

{{ gettext('Go to the worksheet.') }} 8 | 9 | 10 | {% for rating in worksheet.ratings()|sort %} 11 | 12 | 13 | 14 | 15 | 16 | {% endfor %} 17 |
{{ gettext('User') }}{{ gettext('Rating') }}{{ gettext('Comment') }}
{{ rating[0] }}{# User #}{{ rating[1] }}{# Rating #}{{'' if rating|length < 3 else rating[2] }}{# Comment #}
18 | {% endblock %} 19 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/notebook/worksheet_revision_list.html: -------------------------------------------------------------------------------- 1 | {% extends "html/notebook/base_aux.html" %} 2 | 3 | {% block page_id %}revision-list-page{% endblock %} 4 | 5 | {% block sharebar_title %} 6 | {{ gettext('Revision History -- List of Snapshots') }} 7 | {% endblock %} 8 | 9 | {% set select = "revisions" %} 10 | 11 | {% block after_sharebar %} 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | {% for desc, key in worksheet.snapshot_data()|reverse %} 21 | 22 | 23 | 24 | 25 | {% endfor %} 26 | 27 |
{{ gettext('Revision') }}{{ gettext('Last Edited') }}
{{ gettext('Revision %(lr)s', lr=loop.revindex0) }}{{ desc }}
28 | {% endblock %} 29 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/nonbreaking/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.Nonbreaking",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceNonBreaking",function(){a.execCommand("mceInsertContent",false,(a.plugins.visualchars&&a.plugins.visualchars.state)?' ':" ")});a.addButton("nonbreaking",{title:"nonbreaking.nonbreaking_desc",cmd:"mceNonBreaking"});if(a.getParam("nonbreaking_force_tab")){a.onKeyDown.add(function(d,f){if(f.keyCode==9){f.preventDefault();d.execCommand("mceNonBreaking");d.execCommand("mceNonBreaking");d.execCommand("mceNonBreaking")}})}},getInfo:function(){return{longname:"Nonbreaking space",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("nonbreaking",tinymce.plugins.Nonbreaking)})(); -------------------------------------------------------------------------------- /sagenb/data/sage/html/notebook/edit_window.html: -------------------------------------------------------------------------------- 1 | {% extends "html/notebook/base_aux.html" %} 2 | 3 | {% block page_id %}edit-page{% endblock %} 4 | 5 | {% block before_sharebar %} 6 |
7 | {% endblock %} 8 | 9 | {% block sharebar_title %} 10 | {{ gettext('Edit plain text') }} 11 | 12 | 13 | {% endblock %} 14 | {% set select = "edit" %} 15 | 16 | {% block after_sharebar %} 17 | 23 | 24 |
25 | {% endblock %} 26 | -------------------------------------------------------------------------------- /sagenb/data/codemirror/contrib/python/css/pythoncolors.css: -------------------------------------------------------------------------------- 1 | .editbox { 2 | padding: .4em; 3 | margin: 0; 4 | font-family: monospace; 5 | font-size: 10pt; 6 | line-height: 1.1em; 7 | color: black; 8 | } 9 | 10 | pre.code, .editbox { 11 | color: #666666; 12 | } 13 | 14 | .editbox p { 15 | margin: 0; 16 | } 17 | 18 | span.py-delimiter, span.py-special { 19 | color: #666666; 20 | } 21 | 22 | span.py-operator { 23 | color: #666666; 24 | } 25 | 26 | span.py-error { 27 | background-color: #660000; 28 | color: #FFFFFF; 29 | } 30 | 31 | span.py-keyword { 32 | color: #770088; 33 | font-weight: bold; 34 | } 35 | 36 | span.py-literal { 37 | color: #228811; 38 | } 39 | 40 | span.py-identifier, span.py-func { 41 | color: black; 42 | } 43 | 44 | span.py-type, span.py-decorator { 45 | color: #0000FF; 46 | } 47 | 48 | span.py-comment { 49 | color: #AA7700; 50 | } 51 | 52 | span.py-string, span.py-bytes, span.py-raw, span.py-unicode { 53 | color: #AA2222; 54 | } 55 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/advlink/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.AdvancedLinkPlugin",{init:function(a,b){this.editor=a;a.addCommand("mceAdvLink",function(){var c=a.selection;if(c.isCollapsed()&&!a.dom.getParent(c.getNode(),"A")){return}a.windowManager.open({file:b+"/link.htm",width:480+parseInt(a.getLang("advlink.delta_width",0)),height:400+parseInt(a.getLang("advlink.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("link",{title:"advlink.link_desc",cmd:"mceAdvLink"});a.addShortcut("ctrl+k","advlink.advlink_desc","mceAdvLink");a.onNodeChange.add(function(d,c,f,e){c.setDisabled("link",e&&f.nodeName!="A");c.setActive("link",f.nodeName=="A"&&!f.name)})},getInfo:function(){return{longname:"Advanced link",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advlink",tinymce.plugins.AdvancedLinkPlugin)})(); -------------------------------------------------------------------------------- /sagenb/data/codemirror/js/parsedummy.js: -------------------------------------------------------------------------------- 1 | var DummyParser = Editor.Parser = (function() { 2 | function tokenizeDummy(source) { 3 | while (!source.endOfLine()) source.next(); 4 | return "text"; 5 | } 6 | function parseDummy(source) { 7 | function indentTo(n) {return function() {return n;}} 8 | source = tokenizer(source, tokenizeDummy); 9 | var space = 0; 10 | 11 | var iter = { 12 | next: function() { 13 | var tok = source.next(); 14 | if (tok.type == "whitespace") { 15 | if (tok.value == "\n") tok.indentation = indentTo(space); 16 | else space = tok.value.length; 17 | } 18 | return tok; 19 | }, 20 | copy: function() { 21 | var _space = space; 22 | return function(_source) { 23 | space = _space; 24 | source = tokenizer(_source, tokenizeDummy); 25 | return iter; 26 | }; 27 | } 28 | }; 29 | return iter; 30 | } 31 | return {make: parseDummy}; 32 | })(); 33 | -------------------------------------------------------------------------------- /sagenb/data/codemirror/contrib/sql/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009 John Benediktsson 2 | 3 | This software is provided 'as-is', without any express or implied 4 | warranty. In no event will the authors be held liable for any 5 | damages arising from the use of this software. 6 | 7 | Permission is granted to anyone to use this software for any 8 | purpose, including commercial applications, and to alter it and 9 | redistribute it freely, subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must 12 | not claim that you wrote the original software. If you use this 13 | software in a product, an acknowledgment in the product 14 | documentation would be appreciated but is not required. 15 | 16 | 2. Altered source versions must be plainly marked as such, and must 17 | not be misrepresented as being the original software. 18 | 19 | 3. This notice may not be removed or altered from any source 20 | distribution. 21 | 22 | John Benediktsson 23 | -------------------------------------------------------------------------------- /sagenb/data/codemirror/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2007-2009 Marijn Haverbeke 2 | 3 | This software is provided 'as-is', without any express or implied 4 | warranty. In no event will the authors be held liable for any 5 | damages arising from the use of this software. 6 | 7 | Permission is granted to anyone to use this software for any 8 | purpose, including commercial applications, and to alter it and 9 | redistribute it freely, subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must 12 | not claim that you wrote the original software. If you use this 13 | software in a product, an acknowledgment in the product 14 | documentation would be appreciated but is not required. 15 | 16 | 2. Altered source versions must be plainly marked as such, and must 17 | not be misrepresented as being the original software. 18 | 19 | 3. This notice may not be removed or altered from any source 20 | distribution. 21 | 22 | Marijn Haverbeke 23 | marijnh at gmail 24 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/accounts/account_recovery.html: -------------------------------------------------------------------------------- 1 | {% extends "html/accounts/base.html" %} 2 | 3 | {% block title %}{{ gettext('Account Recovery') }}{% endblock %} 4 | {% block page_id %}account-recovery-page{% endblock %} 5 | 6 | {% block body %} 7 |
8 |

{{ gettext('Account Recovery') }}

9 |

{{ gettext("A new password will be emailed to the email address connected to your account. However if you didn't confirm your email address you will be unable to recover your account.") }}

10 | 11 |
12 |
13 | 14 | 15 |
16 | 17 |
18 |
19 | 20 |
21 |
22 | {% endblock %} 23 | -------------------------------------------------------------------------------- /sagenb/notebook/applet.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | from six import iteritems 3 | 4 | 5 | class Applet: 6 | def __init__(self, id, code, archive, codebase="", width=400, height=400, params={}): 7 | self.id = id 8 | self.code = code 9 | self.archive = archive 10 | self.width = width 11 | self.height = height 12 | self.params = params 13 | self.codebase = "/java/" + codebase 14 | 15 | def html_tag(self): 16 | params_text = "\n".join(["""""" % x 17 | for x in iteritems(self.params)]) 18 | tag = """ 19 | 20 | %s 21 | 22 | """ % (self.id, 23 | self.code, 24 | self.width, 25 | self.height, 26 | self.codebase, 27 | ",".join(self.archive), 28 | params_text) 29 | return tag 30 | -------------------------------------------------------------------------------- /util/apply-hg.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/python 2 | 3 | # Original script by Ondrej Certik: http://git.661346.n2.nabble.com/importing-mercurial-patch-td1484627.html 4 | 5 | import os 6 | import sys 7 | import re 8 | import tempfile 9 | 10 | def run(cmd): 11 | print(cmd) 12 | execcode=os.system(cmd) 13 | if execcode != 0: 14 | raise RuntimeError 15 | 16 | patch = sys.argv[1] 17 | args = ' '.join(sys.argv[2:]) 18 | print('p {}'.format(patch)) 19 | print('args {}'.format(args)) 20 | 21 | with open(patch) as f: 22 | p = f.read() 23 | author = re.search("# User (.+)", p).groups()[0] 24 | p = p.split("\n") 25 | while not p[0].startswith("# Parent"): 26 | del p[0] 27 | i = 1 28 | while not p[i].startswith("diff -r "): 29 | i += 1 30 | commit_message = "\n".join(p[1:i]) 31 | _, filename = tempfile.mkstemp() 32 | with open(filename, "w") as f: 33 | f.write(commit_message) 34 | print(commit_message) 35 | 36 | run("patch %s < %s" %(args,patch)) 37 | run("git commit -a --author='%s' -F %s -s" % (author, filename) ) 38 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/example/dialog.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {#example_dlg.title} 5 | 6 | 7 | 8 | 9 | 10 |
11 |

Here is a example dialog.

12 |

Selected text:

13 |

Custom arg:

14 | 15 |
16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /INSTALL.rst: -------------------------------------------------------------------------------- 1 | ================================= 2 | Installation of the Sage notebook 3 | ================================= 4 | 5 | Currently, standalone usage of the Sage notebook is not supported, 6 | though this is one of our goals for the future. For now, please use 7 | sagenb with a copy of `Sage`_. 8 | 9 | The `latest version of Sage`_ should come with a somewhat recent version 10 | of the Sage notebook, and the `latest development version of Sage`_ 11 | a possibly more recent version. 12 | 13 | Alternatively, see HACKING.rst for instructions on how to install the 14 | truly latest, development version of sagenb into an already installed 15 | copy of Sage. This is only recommended for people who want to modify the 16 | code of sagenb, since the development version may be buggy or otherwise 17 | unsuitable for daily use (standard disclaimer). 18 | 19 | .. _Sage: http://sagemath.org/ 20 | .. _latest version of Sage: http://sagemath.org/download.html 21 | .. _latest development version of Sage: 22 | http://sagemath.org/download-latest.html 23 | -------------------------------------------------------------------------------- /sagenb/data/sage/js/async_lib.js: -------------------------------------------------------------------------------- 1 | /*global $ */ 2 | /*jslint white: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, strict: true, newcap: true, immed: true */ 3 | //"use strict"; 4 | 5 | function generic_callback(status, response_text) { 6 | /* do nothing */ 7 | } 8 | 9 | function async_request(url, callback, postvars) { 10 | var settings = { 11 | url : url, 12 | async : true, 13 | cache : false, 14 | dataType: "text" 15 | }; 16 | 17 | if ($.isFunction(callback)) { 18 | settings.error = function (XMLHttpRequest, textStatus, errorThrown) { 19 | callback("failure", errorThrown); 20 | }; 21 | settings.success = function (data, textStatus) { 22 | callback("success", data); 23 | }; 24 | } 25 | 26 | if (postvars) { 27 | settings.type = "POST"; 28 | settings.data = postvars; 29 | } else { 30 | settings.type = "GET"; 31 | } 32 | 33 | $.ajax(settings); 34 | } 35 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/notebook/beforepublish_window.html: -------------------------------------------------------------------------------- 1 | {% extends "html/notebook/base_aux.html" %} 2 | 3 | {% block page_id %}before-publish-page{% endblock %} 4 | {% block sharebar_title %} 5 |

{{ gettext('You can publish your worksheet to the Internet, where anyone will be able to access and view it online.') }}

6 | 7 |

{{ gettext('Your worksheet will be assigned a unique address (URL) that you can send to your friends and colleagues.') }}

8 | 9 |

{{ gettext('Do you want to publish this worksheet?') }}

10 | 11 |
12 | 13 |
14 | 15 | 16 |
17 |
18 | 19 |
20 |
21 | {% endblock %} 22 | {% set select = "publish" %} 23 | {% set backwards = true %} 24 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/preview/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.Preview",{init:function(a,b){var d=this,c=tinymce.explode(a.settings.content_css);d.editor=a;tinymce.each(c,function(f,e){c[e]=a.documentBaseURI.toAbsolute(f)});a.addCommand("mcePreview",function(){a.windowManager.open({file:a.getParam("plugin_preview_pageurl",b+"/preview.html"),width:parseInt(a.getParam("plugin_preview_width","550")),height:parseInt(a.getParam("plugin_preview_height","600")),resizable:"yes",scrollbars:"yes",popup_css:c?c.join(","):a.baseURI.toAbsolute("themes/"+a.settings.theme+"/skins/"+a.settings.skin+"/content.css"),inline:a.getParam("plugin_preview_inline",1)},{base:a.documentBaseURI.getURI()})});a.addButton("preview",{title:"preview.preview_desc",cmd:"mcePreview"})},getInfo:function(){return{longname:"Preview",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("preview",tinymce.plugins.Preview)})(); -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/print/editor_plugin_src.js: -------------------------------------------------------------------------------- 1 | /** 2 | * editor_plugin_src.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | (function() { 12 | tinymce.create('tinymce.plugins.Print', { 13 | init : function(ed, url) { 14 | ed.addCommand('mcePrint', function() { 15 | ed.getWin().print(); 16 | }); 17 | 18 | ed.addButton('print', {title : 'print.print_desc', cmd : 'mcePrint'}); 19 | }, 20 | 21 | getInfo : function() { 22 | return { 23 | longname : 'Print', 24 | author : 'Moxiecode Systems AB', 25 | authorurl : 'http://tinymce.moxiecode.com', 26 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print', 27 | version : tinymce.majorVersion + "." + tinymce.minorVersion 28 | }; 29 | } 30 | }); 31 | 32 | // Register plugin 33 | tinymce.PluginManager.add('print', tinymce.plugins.Print); 34 | })(); 35 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/searchreplace/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.SearchReplacePlugin",{init:function(a,c){function b(d){window.focus();a.windowManager.open({file:c+"/searchreplace.htm",width:420+parseInt(a.getLang("searchreplace.delta_width",0)),height:170+parseInt(a.getLang("searchreplace.delta_height",0)),inline:1,auto_focus:0},{mode:d,search_string:a.selection.getContent({format:"text"}),plugin_url:c})}a.addCommand("mceSearch",function(){b("search")});a.addCommand("mceReplace",function(){b("replace")});a.addButton("search",{title:"searchreplace.search_desc",cmd:"mceSearch"});a.addButton("replace",{title:"searchreplace.replace_desc",cmd:"mceReplace"});a.addShortcut("ctrl+f","searchreplace.search_desc","mceSearch")},getInfo:function(){return{longname:"Search/Replace",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("searchreplace",tinymce.plugins.SearchReplacePlugin)})(); -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/paste/js/pastetext.js: -------------------------------------------------------------------------------- 1 | tinyMCEPopup.requireLangPack(); 2 | 3 | var PasteTextDialog = { 4 | init : function() { 5 | this.resize(); 6 | }, 7 | 8 | insert : function() { 9 | var h = tinyMCEPopup.dom.encode(document.getElementById('content').value), lines; 10 | 11 | // Convert linebreaks into paragraphs 12 | if (document.getElementById('linebreaks').checked) { 13 | lines = h.split(/\r?\n/); 14 | if (lines.length > 1) { 15 | h = ''; 16 | tinymce.each(lines, function(row) { 17 | h += '

' + row + '

'; 18 | }); 19 | } 20 | } 21 | 22 | tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h}); 23 | tinyMCEPopup.close(); 24 | }, 25 | 26 | resize : function() { 27 | var vp = tinyMCEPopup.dom.getViewPort(window), el; 28 | 29 | el = document.getElementById('content'); 30 | 31 | el.style.width = (vp.w - 20) + 'px'; 32 | el.style.height = (vp.h - 90) + 'px'; 33 | } 34 | }; 35 | 36 | tinyMCEPopup.onInit.add(PasteTextDialog.init, PasteTextDialog); 37 | -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/extendedclick/jquery.event.extendedclick.min.js: -------------------------------------------------------------------------------- 1 | ;(function($){$.event.special.plainclick=$.event.special.ctrlclick=$.event.special.altclick=$.event.special.shiftclick=$.event.special.ctrlaltclick=$.event.special.ctrlshiftclick=$.event.special.altshiftclick=$.event.special.ctrlaltshiftclick={setup:function(){$.event.add(this,"click",extendedClickHandler,{});},teardown:function(){$.event.remove(this,"click",extendedClickHandler);}};function extendedClickHandler(event){if(event.type==="click"){if(event.ctrlKey) 2 | {if(event.shiftKey) 3 | {if(event.altKey||event.originalEvent.altKey) 4 | {event.type="ctrlaltshiftclick";} 5 | else 6 | event.type="ctrlshiftclick";} 7 | else if(event.altKey||event.originalEvent.altKey) 8 | {event.type="ctrlaltclick";} 9 | else 10 | event.type="ctrlclick";} 11 | else if(event.altKey||event.originalEvent.altKey) 12 | {if(event.shiftKey) 13 | {event.type="altshiftclick";} 14 | else 15 | event.type="altclick";} 16 | else if(event.shiftKey) 17 | {event.type="shiftclick";} 18 | else 19 | {event.type="plainclick";} 20 | return $.event.handle.call(this,event);}}})(jQuery); -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.xhtmlxtras_dlg',{"attribs_title":"Insert/Edit Attributes","option_rtl":"Right to Left","option_ltr":"Left to Right","insert_date":"Insert Current Date/Time",remove:"Remove","title_cite_element":"Citation Element","title_abbr_element":"Abbreviation Element","title_acronym_element":"Acronym Element","title_del_element":"Deletion Element","title_ins_element":"Insertion Element","fieldset_events_tab":"Element Events","fieldset_attrib_tab":"Element Attributes","fieldset_general_tab":"General Settings","events_tab":"Events","attrib_tab":"Attributes","general_tab":"General","attribute_attrib_tab":"Attributes","attribute_events_tab":"Events","attribute_label_accesskey":"AccessKey","attribute_label_tabindex":"TabIndex","attribute_label_langcode":"Language","attribute_option_rtl":"Right to Left","attribute_option_ltr":"Left to Right","attribute_label_langdir":"Text Direction","attribute_label_datetime":"Date/Time","attribute_label_cite":"Cite","attribute_label_style":"Style","attribute_label_class":"Class","attribute_label_id":"ID","attribute_label_title":"Title"}); -------------------------------------------------------------------------------- /sagenb/data/sage/html/recaptcha.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 19 |

20 |

21 | 22 | 31 | -------------------------------------------------------------------------------- /sass/readme.txt: -------------------------------------------------------------------------------- 1 | Notes on editing the notebook's stylesheets 2 | ============================================ 3 | 4 | The Sage Notebook uses `Sass `_ and `Compass 5 | `_ for its 6 | stylesheets. Sass is a styling language that compiles down to CSS, and 7 | has support for mixins, nesting, variables, and basic 8 | operations. Compass is a CSS meta-framework that uses Sass and 9 | incorporates Sass-ified versions of most common CSS frameworks. 10 | 11 | Installing Sass and Compass 12 | ---------------------------- 13 | 14 | Sass and Compass currently require Ruby 1.8.7 and 15 | RubyGems. Installation is simply installing HAML, which includes 16 | Sass:: 17 | 18 | $ gem install haml 19 | 20 | and then Compass:: 21 | 22 | $ gem install compass 23 | 24 | Editing the SASS stylesheets 25 | ----------------------------- 26 | 27 | To edit the SASS stylesheets, simply cd to sass/ and run compass:: 28 | 29 | $ cd sass 30 | $ compass watch 31 | 32 | This will automatically compile any changes made to the Sass 33 | files. The Sass files themselves are included at ``sass/src``. 34 | -------------------------------------------------------------------------------- /doc/source/index.rst: -------------------------------------------------------------------------------- 1 | The Sage Notebook 2 | ================= 3 | 4 | This documentation is for the legacy Sage notebook 5 | (sagenb) server. SageMath is transitioning its 6 | default notebook to the `Jupyter notebook 7 | `_. 8 | (Currently the default behavior is to open an 9 | export service.) 10 | 11 | 12 | Legacy Sage Notebook (sagenb) 13 | ----------------------------- 14 | 15 | .. toctree:: 16 | :maxdepth: 2 17 | 18 | notebook/notebook_object 19 | notebook/config 20 | notebook/interact 21 | notebook/cell 22 | notebook/worksheet 23 | notebook/notebook 24 | notebook/js 25 | notebook/css 26 | notebook/template 27 | 28 | Other Servers 29 | ------------- 30 | 31 | .. toctree:: 32 | :maxdepth: 2 33 | 34 | notebook/challenge 35 | 36 | Miscellaneous 37 | ------------- 38 | 39 | .. toctree:: 40 | :maxdepth: 2 41 | 42 | misc/misc 43 | misc/support 44 | misc/introspect 45 | misc/sphinxify 46 | notebook/docHTMLProcessor 47 | 48 | Storage 49 | ------- 50 | 51 | .. toctree:: 52 | :maxdepth: 2 53 | 54 | storage/abstract_storage 55 | storage/filesystem_storage 56 | -------------------------------------------------------------------------------- /sagenb/data/openid-realselector/demo.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | demo openID real selector 7 | 8 | 9 | 10 | 23 | 24 | 25 |
26 | 27 | 28 | -------------------------------------------------------------------------------- /sagenb/testing/grinder/sstest.py: -------------------------------------------------------------------------------- 1 | from net.grinder.script.Grinder import grinder 2 | from net.grinder.script import Test 3 | from net.grinder.plugin.http import HTTPRequest 4 | from HTTPClient import NVPair 5 | from java.util import Random 6 | 7 | # We declare a default URL for the HTTPRequest. 8 | request = HTTPRequest(url = "http://www.google.com") 9 | #request = HTTPRequest(url = "http://aleph.sagemath.org") 10 | 11 | def evalss(): 12 | wait = 250 13 | input = 'from+sage.all+import+*;factor(ZZ.random_element(10**40))' 14 | result = request.GET('/execute?input=%s' % input) 15 | id = result.text 16 | count = 0 17 | while True: 18 | grinder.sleep(wait) 19 | result = request.GET('/get?id=%s' % id) 20 | count += 1 21 | if result.text.find('wait') == -1: 22 | break 23 | ans = eval(result.text) 24 | print('test waited%s ans = %s' % (count, ans['output'])) 25 | 26 | evalssTest = Test(1, "Exec testpage").wrap(evalss) 27 | 28 | def homess(): 29 | request.GET('/') 30 | 31 | homessTest = Test(2, "query homepage").wrap(homess) 32 | 33 | class TestRunner: 34 | def __call__(self): 35 | #evalssTest() 36 | homessTest() 37 | -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/farbtastic/demo1.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | Farbtastic 6 | 7 | 8 | 9 | 15 | 16 | 17 |

jQuery Color Picker: Farbtastic

18 | 19 |
jQuery.js is not present. You must install jQuery in this folder for the demo to work.
20 | 21 |
22 |
23 |
24 | 25 |

More info on Acko.net.

26 |

Created by Steven Wittens.

27 | 28 | 29 | -------------------------------------------------------------------------------- /sagenb/data/sage/__autoindex__/autoindex.html: -------------------------------------------------------------------------------- 1 | {% from "__autoindex__/macros.html" import entry, thead, breadcrumb 2 | with context %} 3 | 4 | 5 | 6 | 7 | 8 | Index of {{ curdir.path }} 9 | {% block meta %} 10 | 12 | {% endblock %} 13 | 14 | 15 | {% block header %}{% endblock %} 16 | {% block table %} 17 | 18 | 19 | {{ thead() }} 20 | {% if not curdir.is_root() %} 21 | 22 | 25 | 26 | {% endif %} 27 | 28 | 29 | {% for ent in entries %} 30 | {{ entry(ent) }} 31 | {% endfor %} 32 | 33 |
34 | {% endblock %} 35 | {% block footer %} 36 | {% set env = request.environ %} 37 |
{{ env.SERVER_SOFTWARE }} 38 | Server at {{ env.HTTP_HOST }} 39 | Port {{ env.SERVER_PORT }}
40 | {% endblock %} 41 | 42 | 43 | -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/achtung/LICENSE.txt: -------------------------------------------------------------------------------- 1 | achtung 0.3.0 2 | Copyright (c) 2009 Josh Varner, http://achtung-ui.googlecode.com/ 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining 5 | a copy of this software and associated documentation files (the 6 | "Software"), to deal in the Software without restriction, including 7 | without limitation the rights to use, copy, modify, merge, publish, 8 | distribute, sublicense, and/or sell copies of the Software, and to 9 | permit persons to whom the Software is furnished to do so, subject to 10 | the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 19 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 20 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 21 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/settings/notebook_settings.html: -------------------------------------------------------------------------------- 1 | {% extends "html/settings/base.html" %} 2 | {% block title %}{{ gettext('Notebook Settings') }}{% endblock %} 3 | 4 | {% block more_css %} 5 | 6 | {% endblock %} 7 | 8 | {% block javascript %} 9 | 10 | 11 | {% endblock %} 12 | 13 | {% block page_id %}notebook-settings-page{% endblock %} 14 | 15 | {% block settings_main %} 16 |
17 | 18 |
19 | 20 | 21 |
22 | {%- if auto_table %} 23 | {{ auto_table | safe }} 24 | {%- endif %} 25 |
26 | 27 | 28 |
29 |
30 | {% endblock %} 31 | -------------------------------------------------------------------------------- /sagenb/misc/sphinxify.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | #!/usr/bin/env python 3 | r""" 4 | Process docstrings with Sphinx 5 | 6 | Processes docstrings with Sphinx. Can also be used as a commandline script: 7 | 8 | ``python sphinxify.py `` 9 | 10 | AUTHORS: 11 | 12 | - Tim Joseph Dumol (2009-09-29): initial version 13 | """ 14 | # ************************************************** 15 | # Copyright (C) 2009 Tim Dumol 16 | # 17 | # Distributed under the terms of the BSD License 18 | # ************************************************** 19 | 20 | from sage.misc.sphinxify import sphinxify 21 | 22 | def is_sphinx_markup(docstring): 23 | """ 24 | Returns whether a string that contains Sphinx-style ReST markup. 25 | 26 | INPUT: 27 | 28 | - ``docstring`` - string to test for markup 29 | 30 | OUTPUT: 31 | 32 | - boolean 33 | """ 34 | # this could be made much more clever 35 | return ("`" in docstring or "::" in docstring) 36 | 37 | 38 | if __name__ == '__main__': 39 | import sys 40 | if len(sys.argv) == 2: 41 | print(sphinxify(sys.argv[1])) 42 | else: 43 | print("""Usage: 44 | %s 'docstring' 45 | 46 | docstring -- docstring to be processed 47 | """) 48 | -------------------------------------------------------------------------------- /sass/src/_settings.scss: -------------------------------------------------------------------------------- 1 | .settings-page { 2 | line-height: 1.4; 3 | h1 { 4 | font-size: 2em; 5 | padding: 0 5px; } 6 | label { 7 | display: block; } 8 | .buttons { 9 | padding: 5px; 10 | button { 11 | margin: 0px 5px; } 12 | a { 13 | text-decoration: none; } } 14 | .buttons-top { 15 | border-bottom: 1px solid #cccccc; 16 | margin-top: 1em; } 17 | h2 { 18 | font-size: 1.5em; 19 | margin: 0 0 0.75em; } 20 | .section { 21 | border-bottom: 1px solid #cccccc; 22 | padding: 5px; 23 | margin: 0.5em 0; 24 | div { 25 | margin-bottom: 0.5em; } } 26 | .error, .error_found { 27 | color: red; } 28 | .error_found { 29 | font-size: 1.2em; } 30 | .updated { 31 | color: green; } 32 | input.c1 { 33 | width: 200px; } } 34 | 35 | #settings-nav { 36 | @include horizontal-list(0.5em); 37 | li { 38 | border-right: 1px solid #cccccc; 39 | &:last-child, &.last { 40 | border-right: none; } } } 41 | 42 | #user-management-page { 43 | table { 44 | border-collapse: collapse; } 45 | th, td { 46 | border: 1px solid #696969; 47 | padding: 0.25em; } 48 | th { 49 | background: #cccccc; } 50 | a:link, a:visited { 51 | color: $link_color; } } 52 | -------------------------------------------------------------------------------- /sagenb/data/codemirror/sparqltest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CodeMirror: Sparql demonstration 5 | 6 | 7 | 8 | 9 |

Demonstration of CodeMirror's Sparql 10 | highlighter.

11 | 12 |
13 | 29 |
30 | 31 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/achtung/AUTHORS.txt: -------------------------------------------------------------------------------- 1 | achtung 0.3.0 2 | 3 | Josh Varner 4 | http://achtung-ui.googlecode.com/ 5 | 6 | =============================================================================== 7 | For portions from jQuery UI: 8 | =============================================================================== 9 | 10 | jQuery UI Authors (http://ui.jquery.com/about) 11 | 12 | This software consists of voluntary contributions made by many 13 | individuals. For exact contribution history, see the revision history 14 | and logs, available at http://jquery-ui.googlecode.com/svn/ 15 | 16 | Brandon Aaron 17 | Paul Bakaus (paulbakaus.com) 18 | David Bolter 19 | Rich Caloggero 20 | Chi Cheng (cloudream@gmail.com) 21 | Colin Clark (http://colin.atrc.utoronto.ca/) 22 | Michelle D'Souza 23 | Aaron Eisenberger (aaronchi@gmail.com) 24 | Ariel Flesler 25 | Bohdan Ganicky 26 | Scott González 27 | Marc Grabanski (m@marcgrabanski.com) 28 | Klaus Hartl (stilbuero.de) 29 | Scott Jehl 30 | Cody Lindley 31 | Eduardo Lundgren (eduardolundgren@gmail.com) 32 | Todd Parker 33 | John Resig 34 | Patty Toland 35 | Ca-Phun Ung (yelotofu.com) 36 | Keith Wood (kbwood@virginbroadband.com.au) 37 | Maggie Costello Wachs 38 | Richard D. Worth (rdworth.org) 39 | Jörn Zaefferer (bassistance.de) 40 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/skins/highcontrast/content.css: -------------------------------------------------------------------------------- 1 | body, td, pre { margin:8px;} 2 | body.mceForceColors {background:#FFF; color:#000;} 3 | h1 {font-size: 2em} 4 | h2 {font-size: 1.5em} 5 | h3 {font-size: 1.17em} 6 | h4 {font-size: 1em} 7 | h5 {font-size: .83em} 8 | h6 {font-size: .75em} 9 | .mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;} 10 | a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(../default/img/items.gif) no-repeat 0 0;} 11 | span.mceItemNbsp {background: #DDD} 12 | td.mceSelected, th.mceSelected {background-color:#3399ff !important} 13 | img {border:0;} 14 | table, img, hr, .mceItemAnchor {cursor:default} 15 | table td, table th {cursor:text} 16 | ins {border-bottom:1px solid green; text-decoration: none; color:green} 17 | del {color:red; text-decoration:line-through} 18 | cite {border-bottom:1px dashed blue} 19 | acronym {border-bottom:1px dotted #CCC; cursor:help} 20 | abbr {border-bottom:1px dashed #CCC; cursor:help} 21 | 22 | img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px} 23 | font[face=mceinline] {font-family:inherit !important} 24 | *[contentEditable]:focus {outline:0} 25 | -------------------------------------------------------------------------------- /sagenb/data/sage/js/published_worksheet.js: -------------------------------------------------------------------------------- 1 | //if notebook_lib.js becomes modular, escape0 can be loaded from it 2 | // 3 | 4 | function escape0(input) { 5 | /* 6 | Escape the string for sending via a URL; also replace all +'s by 7 | %2B. 8 | 9 | INPUT: 10 | input -- string 11 | OUTPUT: 12 | a string 13 | 14 | TODO: Use the built-in encodeURIComponent function. 15 | */ 16 | input = escape(input); 17 | input = input.replace(/\+/g, "%2B"); 18 | return input; 19 | } 20 | 21 | function rate_worksheet() { 22 | /* 23 | Save the comment and rating that the uses chooses for a public worksheet. 24 | 25 | INPUT: 26 | rating -- integer 27 | */ 28 | var rating, comment; 29 | comment = $("#rating_comment").val(); 30 | rating = $(':radio[name="rating"]:checked').val(); 31 | //i18n 32 | if (!rating){ 33 | alert("Select a rating."); 34 | return; 35 | } 36 | window.location.replace("rate?rating=" + rating + 37 | "&comment=" + escape0(comment)); 38 | } 39 | 40 | $(function (){ 41 | $('#rate_button').click(rate_worksheet); 42 | $('#rating_comment').one('click', function (){ 43 | this.value = ''; 44 | }); 45 | }); 46 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/advimage/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.advimage_dlg',{"image_list":"Image List","align_right":"Right","align_left":"Left","align_textbottom":"Text Bottom","align_texttop":"Text Top","align_bottom":"Bottom","align_middle":"Middle","align_top":"Top","align_baseline":"Baseline",align:"Alignment",hspace:"Horizontal Space",vspace:"Vertical Space",dimensions:"Dimensions",border:"Border",list:"Image List",alt:"Image Description",src:"Image URL","dialog_title":"Insert/Edit Image","missing_alt":"Are you sure you want to continue without including an Image Description? Without it the image may not be accessible to some users with disabilities, or to those using a text browser, or browsing the Web with images turned off.","example_img":"Appearance Preview Image",misc:"Miscellaneous",mouseout:"For Mouse Out",mouseover:"For Mouse Over","alt_image":"Alternative Image","swap_image":"Swap Image",map:"Image Map",id:"ID",rtl:"Right to Left",ltr:"Left to Right",classes:"Classes",style:"Style","long_desc":"Long Description Link",langcode:"Language Code",langdir:"Language Direction","constrain_proportions":"Constrain Proportions",preview:"Preview",title:"Title",general:"General","tab_advanced":"Advanced","tab_appearance":"Appearance","tab_general":"General",width:"Width",height:"Height"}); -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/js/anchor.js: -------------------------------------------------------------------------------- 1 | tinyMCEPopup.requireLangPack(); 2 | 3 | var AnchorDialog = { 4 | init : function(ed) { 5 | var action, elm, f = document.forms[0]; 6 | 7 | this.editor = ed; 8 | elm = ed.dom.getParent(ed.selection.getNode(), 'A'); 9 | v = ed.dom.getAttrib(elm, 'name'); 10 | 11 | if (v) { 12 | this.action = 'update'; 13 | f.anchorName.value = v; 14 | } 15 | 16 | f.insert.value = ed.getLang(elm ? 'update' : 'insert'); 17 | }, 18 | 19 | update : function() { 20 | var ed = this.editor, elm, name = document.forms[0].anchorName.value; 21 | 22 | if (!name || !/^[a-z][a-z0-9\-\_:\.]*$/i.test(name)) { 23 | tinyMCEPopup.alert('advanced_dlg.anchor_invalid'); 24 | return; 25 | } 26 | 27 | tinyMCEPopup.restoreSelection(); 28 | 29 | if (this.action != 'update') 30 | ed.selection.collapse(1); 31 | 32 | elm = ed.dom.getParent(ed.selection.getNode(), 'A'); 33 | if (elm) { 34 | elm.setAttribute('name', name); 35 | elm.name = name; 36 | } else 37 | ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : name, 'class' : 'mceItemAnchor'}, '')); 38 | 39 | tinyMCEPopup.close(); 40 | } 41 | }; 42 | 43 | tinyMCEPopup.onInit.add(AnchorDialog.init, AnchorDialog); 44 | -------------------------------------------------------------------------------- /sagenb/translations/en_US/LC_MESSAGES/messages.po: -------------------------------------------------------------------------------- 1 | # Translations template for SAGE Notebook. 2 | # Copyright (C) 2014 SAGE 3 | # This file is distributed under the same license as the SAGE project. 4 | # FIRST AUTHOR J. Miguel Farto , 2014. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: Sage Notebook 0.9.2\n" 10 | "Report-Msgid-Bugs-To: migeruhito@gmail.com\n" 11 | "POT-Creation-Date: 2012-03-18 08:47+0400\n" 12 | "PO-Revision-Date: 2013-02-18 10:24+0100\n" 13 | "Last-Translator: J. Miguel Farto \n" 14 | "Language-Team: J. Miguel Farto \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=utf-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Generated-By: Babel 0.9.6\n" 19 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 20 | 21 | msgid "cs_CZ" 22 | msgstr "čeština (Česká republika)" 23 | 24 | msgid "de_AT" 25 | msgstr "Deutsch (Österreich)" 26 | 27 | msgid "en_US" 28 | msgstr "English (United States)" 29 | 30 | msgid "es_ES" 31 | msgstr "español (España)" 32 | 33 | msgid "pt_BR" 34 | msgstr "português (Brasil)" 35 | 36 | msgid "ru_RU" 37 | msgstr "русский (Россия)" 38 | 39 | msgid "fr_FR" 40 | msgstr "français (France)" 41 | 42 | msgid "uk_UA" 43 | msgstr "українська (Україна)" 44 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/anchor.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {#advanced_dlg.anchor_title} 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
{#advanced_dlg.anchor_title}
19 | 20 |
21 | 22 | 23 |
24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /sagenb/notebook/user_conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | """nodoctest 3 | """ 4 | import os 5 | import copy 6 | 7 | from . import server_conf 8 | from .conf import (Configuration, POS, DESC, GROUP, TYPE, CHOICES, T_BOOL, 9 | T_INTEGER, T_CHOICE, T_REAL, T_COLOR, T_STRING, T_LIST) 10 | from sagenb.misc.misc import SAGENB_ROOT, get_languages 11 | from flask_babel import lazy_gettext 12 | 13 | defaults = {'max_history_length':1000, 14 | 'default_system':'sage', 15 | 'autosave_interval':60*60, # 1 hour in seconds 16 | 'default_pretty_print': False, 17 | 'next_worksheet_id_number': -1, # not yet initialized 18 | 'language': 'default' 19 | } 20 | 21 | defaults_descriptions = { 22 | 'language': { 23 | DESC : lazy_gettext('Language'), 24 | GROUP : lazy_gettext('Appearance'), 25 | TYPE : T_CHOICE, 26 | CHOICES : ['default'] + get_languages(), 27 | }, 28 | } 29 | 30 | 31 | def UserConfiguration_from_basic(basic): 32 | c = UserConfiguration() 33 | c.confs = copy.copy(basic) 34 | return c 35 | 36 | class UserConfiguration(Configuration): 37 | def defaults(self): 38 | return defaults 39 | 40 | def defaults_descriptions(self): 41 | return defaults_descriptions 42 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/paste/pastetext.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | {#paste.paste_text_desc} 4 | 5 | 6 | 7 | 8 |
9 |
{#paste.paste_text_desc}
10 | 11 |
12 | 13 |
14 | 15 |
16 | 17 |
{#paste_dlg.text_title}
18 | 19 | 20 | 21 |
22 | 23 | 24 |
25 |
26 | 27 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/directionality/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.Directionality",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceDirectionLTR",function(){var d=a.dom.getParent(a.selection.getNode(),a.dom.isBlock);if(d){if(a.dom.getAttrib(d,"dir")!="ltr"){a.dom.setAttrib(d,"dir","ltr")}else{a.dom.setAttrib(d,"dir","")}}a.nodeChanged()});a.addCommand("mceDirectionRTL",function(){var d=a.dom.getParent(a.selection.getNode(),a.dom.isBlock);if(d){if(a.dom.getAttrib(d,"dir")!="rtl"){a.dom.setAttrib(d,"dir","rtl")}else{a.dom.setAttrib(d,"dir","")}}a.nodeChanged()});a.addButton("ltr",{title:"directionality.ltr_desc",cmd:"mceDirectionLTR"});a.addButton("rtl",{title:"directionality.rtl_desc",cmd:"mceDirectionRTL"});a.onNodeChange.add(c._nodeChange,c)},getInfo:function(){return{longname:"Directionality",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_nodeChange:function(b,a,e){var d=b.dom,c;e=d.getParent(e,d.isBlock);if(!e){a.setDisabled("ltr",1);a.setDisabled("rtl",1);return}c=d.getAttrib(e,"dir");a.setActive("ltr",c=="ltr");a.setDisabled("ltr",0);a.setActive("rtl",c=="rtl");a.setDisabled("rtl",0)}});tinymce.PluginManager.add("directionality",tinymce.plugins.Directionality)})(); -------------------------------------------------------------------------------- /sagenb/data/codemirror/csstest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CodeMirror: CSS demonstration 5 | 6 | 7 | 8 | 9 |

Demonstration of CodeMirror's CSS 10 | highlighter.

11 | 12 |
13 | 48 |
49 | 50 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /sagenb/notebook/notification.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | import logging 3 | from .sage_email import default_email_address 4 | from .smtpsend import send_mail 5 | from socket import getfqdn 6 | 7 | logger = logging.getLogger('notification') 8 | 9 | 10 | class TwistedEmailHandler(logging.Handler): 11 | """Sends log messages via SMTP using a running twisted reactor.""" 12 | def __init__(self, conf, level=logging.NOTSET): 13 | logging.Handler.__init__(self, level) 14 | self.conf = conf 15 | self.setFormatter( 16 | logging.Formatter(''' 17 | Host: %(fqdn)s 18 | Message type: %(levelname)s 19 | Location: %(pathname)s:%(lineno)d 20 | Module: %(module)s 21 | Function: %(funcName)s 22 | Time: %(asctime)s 23 | 24 | Message: 25 | 26 | %(message)s 27 | 28 | ''')) 29 | 30 | def emit(self, record): 31 | fqdn = getfqdn() 32 | from_address = default_email_address() 33 | subject = '[sage-notebook] %s' % fqdn 34 | record.fqdn = fqdn 35 | message = self.format(record) 36 | 37 | recipients = self.conf['notification_recipients'] 38 | if recipients is None: 39 | recipients = [] 40 | for rcpt in recipients: 41 | to = rcpt.strip() 42 | send_mail(from_address, to, subject, message) 43 | -------------------------------------------------------------------------------- /sagenb/data/sage3d/src/org/sagemath/sage3d/ObjectViewerApp.java: -------------------------------------------------------------------------------- 1 | package org.sagemath.sage3d; 2 | 3 | import java.awt.event.WindowEvent; 4 | import java.awt.event.WindowAdapter; 5 | import java.io.File; 6 | import java.net.URL; 7 | import java.net.MalformedURLException; 8 | import javax.swing.JFrame; 9 | 10 | 11 | public class ObjectViewerApp extends ObjectViewerApplet { 12 | 13 | public static void main(String[] args) { 14 | String name = null, id = "", url = args[0]; 15 | 16 | if (args.length > 1) { 17 | name = args[1]; 18 | } 19 | else { 20 | int ix = url.lastIndexOf('/'); 21 | if (ix == -1) name = url; 22 | else name = url.substring(ix); 23 | } 24 | 25 | if (args.length > 2) { 26 | id = args[2]; 27 | } 28 | new ObjectViewerApp().showView(url, id, name); 29 | } 30 | 31 | public URL getBase() { 32 | try { 33 | return new File(".").toURL(); 34 | } 35 | catch (MalformedURLException ex) { 36 | System.err.println(ex); 37 | return null; 38 | } 39 | } 40 | 41 | public JFrame getWindow(String id, String name) { 42 | JFrame frame = super.getWindow(id, name); 43 | frame.addWindowListener( new WindowAdapter() { 44 | public void windowClosing(WindowEvent e) { 45 | System.exit(0); 46 | } 47 | }); 48 | return frame; 49 | } 50 | 51 | } -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/visualchars/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.VisualChars",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceVisualChars",c._toggleVisualChars,c);a.addButton("visualchars",{title:"visualchars.desc",cmd:"mceVisualChars"});a.onBeforeGetContent.add(function(d,e){if(c.state&&e.format!="raw"&&!e.draft){c.state=true;c._toggleVisualChars(false)}})},getInfo:function(){return{longname:"Visual characters",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_toggleVisualChars:function(m){var p=this,k=p.editor,a,g,j,n=k.getDoc(),o=k.getBody(),l,q=k.selection,e,c,f;p.state=!p.state;k.controlManager.setActive("visualchars",p.state);if(m){f=q.getBookmark()}if(p.state){a=[];tinymce.walk(o,function(b){if(b.nodeType==3&&b.nodeValue&&b.nodeValue.indexOf("\u00a0")!=-1){a.push(b)}},"childNodes");for(g=0;g$1');c=k.dom.create("div",null,l);while(node=c.lastChild){k.dom.insertAfter(node,a[g])}k.dom.remove(a[g])}}else{a=k.dom.select("span.mceItemNbsp",o);for(g=a.length-1;g>=0;g--){k.dom.remove(a[g],1)}}q.moveToBookmark(f)}});tinymce.PluginManager.add("visualchars",tinymce.plugins.VisualChars)})(); -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/source_editor.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | {#advanced_dlg.code_title} 4 | 5 | 6 | 7 | 8 |
9 |
10 | 11 |
12 | 13 |
14 | 15 |
16 | 17 | 18 | 19 |
20 | 21 | 22 |
23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/pagebreak/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.PageBreakPlugin",{init:function(b,d){var f='',a="mcePageBreak",c=b.getParam("pagebreak_separator",""),e;e=new RegExp(c.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(g){return"\\"+g}),"g");b.addCommand("mcePageBreak",function(){b.execCommand("mceInsertContent",0,f)});b.addButton("pagebreak",{title:"pagebreak.desc",cmd:a});b.onInit.add(function(){if(b.theme.onResolveName){b.theme.onResolveName.add(function(g,h){if(h.node.nodeName=="IMG"&&b.dom.hasClass(h.node,a)){h.name="pagebreak"}})}});b.onClick.add(function(g,h){h=h.target;if(h.nodeName==="IMG"&&g.dom.hasClass(h,a)){g.selection.select(h)}});b.onNodeChange.add(function(h,g,i){g.setActive("pagebreak",i.nodeName==="IMG"&&h.dom.hasClass(i,a))});b.onBeforeSetContent.add(function(g,h){h.content=h.content.replace(e,f)});b.onPostProcess.add(function(g,h){if(h.get){h.content=h.content.replace(/]+>/g,function(i){if(i.indexOf('class="mcePageBreak')!==-1){i=c}return i})}})},getInfo:function(){return{longname:"PageBreak",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("pagebreak",tinymce.plugins.PageBreakPlugin)})(); -------------------------------------------------------------------------------- /sagenb/data/sage/html/notebook/worksheet_share.html: -------------------------------------------------------------------------------- 1 | {% extends "html/notebook/base_aux.html" %} 2 | {# 3 | INPUT: 4 | - worksheet - an instance of Worksheet 5 | - username - a string containing a username 6 | - other_users - a list of strings containing other users names 7 | #} 8 | 9 | {% block sharebar_title %} 10 | {{ gettext('Share this document') }} 11 | {% endblock %} 12 | 13 | {% set select = "share" %} 14 | 15 | {% block after_sharebar %} 16 | {% if not (notebook.user_manager().user_is_admin(username) or username == worksheet.owner()) %} 17 | {{ gettext('Only the owner of a worksheet is allowed to share it. You can do whatever you want if you make your own copy.') }} 18 | {% else %} 19 |

{{ gettext('This Sage Worksheet is currently shared with the people listed in the box below.') }}

20 |

{{ gettext('You may add or remove collaborators (separate user names by commas).') }}

21 | 22 |
23 | 24 | 25 |
26 | {% endif %} 27 | {% endblock %} 28 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/settings/admin_add_user.html: -------------------------------------------------------------------------------- 1 | {% extends "html/settings/base.html" %} 2 | {% block title %}{{ gettext('Add New User') }}{% endblock %} 3 | {% block page_id %}add-user-page{% endblock %} 4 | 5 | {% block main %} 6 |

{{ gettext('Add New User') }}

7 |
8 |
    9 |
  1. {{ gettext('Pick a username') }}

    10 |

    {{ gettext('The username must start with a letter and be between 4 and 32 characters long. It can only consist of letters, numbers, underscores, and one dot (.).') }}

    11 | 12 | {% if error %} 13 | {% if error == 'username_invalid' %} 14 |

    {{ gettext('Error') }}: {{ gettext('Invalid username') }}

    15 | {% elif error == 'username_taken' %} 16 |

    {{ gettext('Error') }}: {{ gettext('Username taken') }}

    17 | {% else %} 18 |

    {{ gettext('Error') }}: {{ gettext('Username Error') }}

    19 | {% endif %} 20 | {% endif %} 21 |
  2. 22 |
23 |
24 | 25 | 26 |
27 |
28 | 29 | {% endblock %} 30 | 31 | -------------------------------------------------------------------------------- /sagenb/data/sage/html/notebook/upload_data_window.html: -------------------------------------------------------------------------------- 1 | {% extends "html/notebook/base_aux.html" %} 2 | 3 | 4 | {% block page_id %}upload-data-page{% endblock %} 5 | 6 | {% block sharebar_title %} 7 | {{ gettext('Upload or Create Data File to attach to worksheet "%(wn)s"', wn=worksheet.name()) }} 8 | {% endblock %} 9 | 10 | {% block after_sharebar %} 11 |
12 |
14 |
15 | 16 | 17 |
18 |
19 | 20 | 21 |
22 |
23 | 24 | 25 |
26 |
27 | 28 | 29 |
30 | 31 |
32 |
33 | {% endblock %} 34 | 35 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/emotions/editor_plugin_src.js: -------------------------------------------------------------------------------- 1 | /** 2 | * editor_plugin_src.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | (function(tinymce) { 12 | tinymce.create('tinymce.plugins.EmotionsPlugin', { 13 | init : function(ed, url) { 14 | // Register commands 15 | ed.addCommand('mceEmotion', function() { 16 | ed.windowManager.open({ 17 | file : url + '/emotions.htm', 18 | width : 250 + parseInt(ed.getLang('emotions.delta_width', 0)), 19 | height : 160 + parseInt(ed.getLang('emotions.delta_height', 0)), 20 | inline : 1 21 | }, { 22 | plugin_url : url 23 | }); 24 | }); 25 | 26 | // Register buttons 27 | ed.addButton('emotions', {title : 'emotions.emotions_desc', cmd : 'mceEmotion'}); 28 | }, 29 | 30 | getInfo : function() { 31 | return { 32 | longname : 'Emotions', 33 | author : 'Moxiecode Systems AB', 34 | authorurl : 'http://tinymce.moxiecode.com', 35 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions', 36 | version : tinymce.majorVersion + "." + tinymce.minorVersion 37 | }; 38 | } 39 | }); 40 | 41 | // Register plugin 42 | tinymce.PluginManager.add('emotions', tinymce.plugins.EmotionsPlugin); 43 | })(tinymce); -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/media/css/media.css: -------------------------------------------------------------------------------- 1 | #id, #name, #hspace, #vspace, #class_name, #align { width: 100px } 2 | #hspace, #vspace { width: 50px } 3 | #flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode { width: 100px } 4 | #flash_base, #flash_flashvars, #html5_altsource1, #html5_altsource2, #html5_poster { width: 240px } 5 | #width, #height { width: 40px } 6 | #src, #media_type { width: 250px } 7 | #class { width: 120px } 8 | #prev { margin: 0; border: 1px solid black; width: 380px; height: 260px; overflow: auto } 9 | .panel_wrapper div.current { height: 420px; overflow: auto } 10 | #flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options { display: none } 11 | .mceAddSelectValue { background-color: #DDDDDD } 12 | #qt_starttime, #qt_endtime, #qt_fov, #qt_href, #qt_moveid, #qt_moviename, #qt_node, #qt_pan, #qt_qtsrc, #qt_qtsrcchokespeed, #qt_target, #qt_tilt, #qt_urlsubstituten, #qt_volume { width: 70px } 13 | #wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume { width: 70px } 14 | #rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks { width: 70px } 15 | #shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle { width: 90px } 16 | #qt_qtsrc { width: 200px } 17 | iframe {border: 1px solid gray} 18 | -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/jquery.bgiframe.min.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net) 2 | * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 3 | * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. 4 | * 5 | * $LastChangedDate: 2007-07-21 18:45:56 -0500 (Sat, 21 Jul 2007) $ 6 | * $Rev: 2447 $ 7 | * 8 | * Version 2.1.1 9 | */ 10 | (function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&/6.0/.test(navigator.userAgent)){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html=' 22 | 23 | 24 | 25 |
26 | 27 | 28 |
29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/themes/advanced/js/source_editor.js: -------------------------------------------------------------------------------- 1 | tinyMCEPopup.requireLangPack(); 2 | tinyMCEPopup.onInit.add(onLoadInit); 3 | 4 | function saveContent() { 5 | tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value, {source_view : true}); 6 | tinyMCEPopup.close(); 7 | } 8 | 9 | function onLoadInit() { 10 | tinyMCEPopup.resizeToInnerSize(); 11 | 12 | // Remove Gecko spellchecking 13 | if (tinymce.isGecko) 14 | document.body.spellcheck = tinyMCEPopup.editor.getParam("gecko_spellcheck"); 15 | 16 | document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent({source_view : true}); 17 | 18 | if (tinyMCEPopup.editor.getParam("theme_advanced_source_editor_wrap", true)) { 19 | setWrap('soft'); 20 | document.getElementById('wraped').checked = true; 21 | } 22 | 23 | resizeInputs(); 24 | } 25 | 26 | function setWrap(val) { 27 | var v, n, s = document.getElementById('htmlSource'); 28 | 29 | s.wrap = val; 30 | 31 | if (!tinymce.isIE) { 32 | v = s.value; 33 | n = s.cloneNode(false); 34 | n.setAttribute("wrap", val); 35 | s.parentNode.replaceChild(n, s); 36 | n.value = v; 37 | } 38 | } 39 | 40 | function toggleWordWrap(elm) { 41 | if (elm.checked) 42 | setWrap('soft'); 43 | else 44 | setWrap('off'); 45 | } 46 | 47 | function resizeInputs() { 48 | var vp = tinyMCEPopup.dom.getViewPort(window), el; 49 | 50 | el = document.getElementById('htmlSource'); 51 | 52 | if (el) { 53 | el.style.width = (vp.w - 20) + 'px'; 54 | el.style.height = (vp.h - 65) + 'px'; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /sagenb/data/jquery/plugins/farbtastic/farbtastic.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Farbtastic Color Picker 1.2 3 | * © 2008 Steven Wittens 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | .farbtastic { 20 | position: relative; 21 | } 22 | .farbtastic * { 23 | position: absolute; 24 | cursor: crosshair; 25 | } 26 | .farbtastic, .farbtastic .wheel { 27 | width: 195px; 28 | height: 195px; 29 | } 30 | .farbtastic .color, .farbtastic .overlay { 31 | top: 47px; 32 | left: 47px; 33 | width: 101px; 34 | height: 101px; 35 | } 36 | .farbtastic .wheel { 37 | background: url(wheel.png) no-repeat; 38 | width: 195px; 39 | height: 195px; 40 | } 41 | .farbtastic .overlay { 42 | background: url(mask.png) no-repeat; 43 | } 44 | .farbtastic .marker { 45 | width: 17px; 46 | height: 17px; 47 | margin: -8px 0 0 -8px; 48 | overflow: hidden; 49 | background: url(marker.png) no-repeat; 50 | } 51 | 52 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/xhtmlxtras/js/del.js: -------------------------------------------------------------------------------- 1 | /** 2 | * del.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | function init() { 12 | SXE.initElementDialog('del'); 13 | if (SXE.currentAction == "update") { 14 | setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime')); 15 | setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite')); 16 | SXE.showRemoveButton(); 17 | } 18 | } 19 | 20 | function setElementAttribs(elm) { 21 | setAllCommonAttribs(elm); 22 | setAttrib(elm, 'datetime'); 23 | setAttrib(elm, 'cite'); 24 | elm.removeAttribute('data-mce-new'); 25 | } 26 | 27 | function insertDel() { 28 | var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'DEL'); 29 | 30 | if (elm == null) { 31 | var s = SXE.inst.selection.getContent(); 32 | if(s.length > 0) { 33 | insertInlineElement('del'); 34 | var elementArray = SXE.inst.dom.select('del[data-mce-new]'); 35 | for (var i=0; i 0) { 33 | insertInlineElement('ins'); 34 | var elementArray = SXE.inst.dom.select('ins[data-mce-new]'); 35 | for (var i=0; i 2 | 3 | 4 | CodeMirror: SQL demonstration 5 | 6 | 7 | 8 | 9 |

Demonstration of CodeMirror's SQL 10 | highlighter.

11 | 12 |

Written by John Benediktsson (license).

13 | 14 |
15 | 43 |
44 | 45 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /sagenb/misc/remote_file.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -* 2 | from __future__ import absolute_import 3 | import os, sys 4 | 5 | def get_remote_file(filename, verbose=True): 6 | """ 7 | INPUT: 8 | filename -- the URL of a file on the web, e.g., 9 | "http://modular.math.washington.edu/myfile.txt" 10 | verbose -- whether to display download status 11 | 12 | OUTPUT: 13 | creates a file in the temp directory and returns the 14 | absolute path to that file. 15 | 16 | EXAMPLES: 17 | sage: g = get_remote_file("http://sagemath.org/ack.html", verbose=False) # optional -- requires the internet 18 | sage: len(open(g).read()) # optional and randomly growing. 19 | 10198 20 | """ 21 | if verbose: 22 | print("Attempting to load remote file: " + filename) 23 | from .misc import tmp_filename 24 | temp_name = tmp_filename() + '.' + os.path.splitext(filename)[1][1:] 25 | # IMPORTANT -- urllib takes a long time to load, 26 | # so do not import it in the module scope. 27 | import urllib 28 | global cur 29 | cur = 0 30 | if verbose: 31 | sys.stdout.write("Loading: [") 32 | sys.stdout.flush() 33 | urllib.urlretrieve(filename, temp_name, report_hook) 34 | print("]") 35 | else: 36 | urllib.urlretrieve(filename, temp_name) 37 | return temp_name 38 | 39 | cur = 0 40 | def report_hook(block, size, total): 41 | global cur 42 | n = block*size*50/total 43 | if n > cur: 44 | cur = n 45 | sys.stdout.write('.') 46 | sys.stdout.flush() 47 | 48 | -------------------------------------------------------------------------------- /sagenb/data/codemirror/contrib/lua/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009, Franciszek Wawrzak 2 | All rights reserved. 3 | 4 | This software is provided for use in connection with the 5 | CodeMirror suite of modules and utilities, hosted and maintained 6 | at http://marijn.haverbeke.nl/codemirror/. 7 | 8 | Redistribution and use of this software in source and binary forms, 9 | with or without modification, are permitted provided that the 10 | following conditions are met: 11 | 12 | * Redistributions of source code must retain the above 13 | copyright notice, this list of conditions and the 14 | following disclaimer. 15 | 16 | * Redistributions in binary form must reproduce the above 17 | copyright notice, this list of conditions and the 18 | following disclaimer in the documentation and/or other 19 | materials provided with the distribution. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24 | FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25 | COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 26 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 27 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31 | ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32 | POSSIBILITY OF SUCH DAMAGE. 33 | -------------------------------------------------------------------------------- /util/quota.py: -------------------------------------------------------------------------------- 1 | """ 2 | This script determines the users that are using more than a certain amount of disk space and makes them "readonly". 3 | """ 4 | 5 | from subprocess import check_output 6 | import os 7 | import sys 8 | SERVERDIR = os.path.abspath(sys.argv[1]) 9 | HOMEDIR=os.path.join(SERVERDIR,'home','') # end in / 10 | READONLY_FILE=os.path.join(SERVERDIR, 'readonly.txt') 11 | LOG_FILE = os.path.join(SERVERDIR, 'log-size.txt') 12 | MAX=250 # megabytes 13 | 14 | s = check_output('du -Lm --max-depth 1 %r'%HOMEDIR, shell=True) 15 | readonly={} 16 | system_users = set(['_sage_','pub','__store__','','admin']) 17 | 18 | for line in s.split('\n'): 19 | if len(line)0 and size>MAX: 24 | user = user_dir[len(HOMEDIR):] 25 | if user not in system_users: 26 | readonly[user]=size 27 | 28 | import logging 29 | logging.basicConfig(format='%(asctime)s %(message)s',filename=LOG_FILE) 30 | logging.warning(sorted(readonly.items(), key=lambda x: x[1], reverse=True)) 31 | 32 | if os.path.exists(READONLY_FILE): 33 | with open(READONLY_FILE) as f: 34 | oldnames=set(i.strip() for i in f.readlines()) 35 | else: 36 | oldnames=None 37 | 38 | if set(readonly.keys())!=oldnames: 39 | logging.warning('writing %r'%READONLY_FILE) 40 | with open(READONLY_FILE,'w') as f: 41 | f.write('\n'.join(readonly.keys())) 42 | 43 | # for all people over quota: 44 | # - delete all output directories 45 | # check size again. If still over by 20%, delete DATA directories. 46 | # check size again. 47 | -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/advimage/editor_plugin_src.js: -------------------------------------------------------------------------------- 1 | /** 2 | * editor_plugin_src.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | (function() { 12 | tinymce.create('tinymce.plugins.AdvancedImagePlugin', { 13 | init : function(ed, url) { 14 | // Register commands 15 | ed.addCommand('mceAdvImage', function() { 16 | // Internal image object like a flash placeholder 17 | if (ed.dom.getAttrib(ed.selection.getNode(), 'class', '').indexOf('mceItem') != -1) 18 | return; 19 | 20 | ed.windowManager.open({ 21 | file : url + '/image.htm', 22 | width : 480 + parseInt(ed.getLang('advimage.delta_width', 0)), 23 | height : 385 + parseInt(ed.getLang('advimage.delta_height', 0)), 24 | inline : 1 25 | }, { 26 | plugin_url : url 27 | }); 28 | }); 29 | 30 | // Register buttons 31 | ed.addButton('image', { 32 | title : 'advimage.image_desc', 33 | cmd : 'mceAdvImage' 34 | }); 35 | }, 36 | 37 | getInfo : function() { 38 | return { 39 | longname : 'Advanced image', 40 | author : 'Moxiecode Systems AB', 41 | authorurl : 'http://tinymce.moxiecode.com', 42 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage', 43 | version : tinymce.majorVersion + "." + tinymce.minorVersion 44 | }; 45 | } 46 | }); 47 | 48 | // Register plugin 49 | tinymce.PluginManager.add('advimage', tinymce.plugins.AdvancedImagePlugin); 50 | })(); -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/autoresize/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.AutoResizePlugin",{init:function(a,c){var d=this,e=0;if(a.getParam("fullscreen_is_enabled")){return}function b(){var i=a.getDoc(),f=i.body,k=i.documentElement,h=tinymce.DOM,j=d.autoresize_min_height,g;g=tinymce.isIE?f.scrollHeight:i.body.offsetHeight;if(g>d.autoresize_min_height){j=g}if(d.autoresize_max_height&&g>d.autoresize_max_height){j=d.autoresize_max_height;a.getBody().style.overflowY="auto"}else{a.getBody().style.overflowY="hidden"}if(j!==e){h.setStyle(h.get(a.id+"_ifr"),"height",j+"px");e=j}if(d.throbbing){a.setProgressState(false);a.setProgressState(true)}}d.editor=a;d.autoresize_min_height=parseInt(a.getParam("autoresize_min_height",a.getElement().offsetHeight));d.autoresize_max_height=parseInt(a.getParam("autoresize_max_height",0));a.onInit.add(function(f){f.dom.setStyle(f.getBody(),"paddingBottom",f.getParam("autoresize_bottom_margin",50)+"px")});a.onChange.add(b);a.onSetContent.add(b);a.onPaste.add(b);a.onKeyUp.add(b);a.onPostRender.add(b);if(a.getParam("autoresize_on_init",true)){a.onInit.add(function(g,f){g.setProgressState(true);d.throbbing=true;g.getBody().style.overflowY="hidden"});a.onLoadContent.add(function(g,f){b();setTimeout(function(){b();g.setProgressState(false);d.throbbing=false},1250)})}a.addCommand("mceAutoResize",b)},getInfo:function(){return{longname:"Auto Resize",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autoresize",tinymce.plugins.AutoResizePlugin)})(); -------------------------------------------------------------------------------- /sagenb/data/tiny_mce/plugins/tabfocus/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create("tinymce.plugins.TabFocusPlugin",{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(t){n=c.select(":input:enabled,*[tabindex]");function s(v){return v.nodeName==="BODY"||(v.type!="hidden"&&!(v.style.display=="none")&&!(v.style.visibility=="hidden")&&s(v.parentNode))}function i(v){return v.attributes.tabIndex.specified||v.nodeName=="INPUT"||v.nodeName=="TEXTAREA"}function u(){return tinymce.isIE6||tinymce.isIE7}function r(v){return((!u()||i(v)))&&v.getAttribute("tabindex")!="-1"&&s(v)}d(n,function(w,v){if(w.id==l.id){j=v;return false}});if(t>0){for(m=j+1;m=0;m--){if(r(n[m])){return n[m]}}}return null}if(p.keyCode===9){k=b(l.getParam("tab_focus",l.getParam("tabfocus_elements",":prev,:next")));if(k.length==1){k[1]=k[0];k[0]=":prev"}if(p.shiftKey){if(k[0]==":prev"){n=q(-1)}else{n=c.get(k[0])}}else{if(k[1]==":next"){n=q(1)}else{n=c.get(k[1])}}if(n){if(n.id&&(l=tinymce.get(n.id||n.name))){l.focus()}else{window.setTimeout(function(){if(!tinymce.isWebKit){window.focus()}n.focus()},10)}return a.cancel(p)}}}f.onKeyUp.add(e);if(tinymce.isGecko){f.onKeyPress.add(h);f.onKeyDown.add(e)}else{f.onKeyDown.add(h)}},getInfo:function(){return{longname:"Tabfocus",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("tabfocus",tinymce.plugins.TabFocusPlugin)})(); -------------------------------------------------------------------------------- /sagenb/data/codemirror/contrib/python/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009, Timothy Farrell 2 | All rights reserved. 3 | 4 | This software is provided for use in connection with the 5 | CodeMirror suite of modules and utilities, hosted and maintained 6 | at http://marijn.haverbeke.nl/codemirror/. 7 | 8 | Redistribution and use of this software in source and binary forms, 9 | with or without modification, are permitted provided that the 10 | following conditions are met: 11 | 12 | * Redistributions of source code must retain the above 13 | copyright notice, this list of conditions and the 14 | following disclaimer. 15 | 16 | * Redistributions in binary form must reproduce the above 17 | copyright notice, this list of conditions and the 18 | following disclaimer in the documentation and/or other 19 | materials provided with the distribution. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24 | FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25 | COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 26 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 27 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31 | ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32 | POSSIBILITY OF SUCH DAMAGE. 33 | --------------------------------------------------------------------------------