# Copyright (C) 2008 Luke Macken <lewk at csh rit edu> # Licensed under MIT # http://pypi.python.org/pypi/TurboFlot # # With modifications for Smolt. # import random ; random.seed() import simplejson from turbogears.widgets import CSSLink, JSLink, Widget from turbogears.widgets import register_static_directory import inspect import os js_dir = os.path.join(os.path.dirname(inspect.currentframe().f_code.co_filename), 'static', 'js') register_static_directory("turboflot", js_dir) class TurboFlot(Widget): """ A TurboGears Flot Widget. """ template = """ <div xmlns:py="http://purl.org/kid/ns#"> <div style="width:${width};height:${height};" id="${id}" /> <script> $(document).ready(function() { $.plot($("#${id}"), ${data}, ${options}); }); </script> </div> """
import pkg_resources import turbogears as tg import controller from fas.tgcaptcha2.validator import CaptchaFieldValidator import gettext _ = gettext.gettext from turbogears.widgets import CSSLink, JSLink, Widget, WidgetDescription, \ register_static_directory, CompoundFormField, FormField, HiddenField from turbogears import widgets js_dir = pkg_resources.resource_filename("fas.tgcaptcha2", "static/javascript") register_static_directory("fas.tgcaptcha2", js_dir) captcha_controller = controller.CaptchaController() class CaptchaInputField(FormField): """Basic captcha widget. This widget doesn't do any validation, and should only be used if you want to do your own validation. """ enable = tg.config.get('tgcaptcha.audio', True) sound = "" if enable: sound = """ <a href="${controller}/sound/${payload}"> <img src="${tg.url('/static/theme/fas/images/gnome_audio_volume_medium.png')}" alt="Audio file" /> </a>
import pkg_resources from turbogears.widgets import JSLink, Widget, WidgetDescription, \ register_static_directory, mochikit js_dir = pkg_resources.resource_filename("plotkit", "static/javascript") register_static_directory("plotkit", js_dir) mochikit_js = mochikit excanvas_js = JSLink("plotkit", "excanvas.js") plotkit_packed_js = JSLink("plotkit", "PlotKit_Packed.js") #related js Base_js = JSLink("plotkit", "Base.js") Canvas_js = JSLink("plotkit", "Canvas.js") EasyPlot_js = JSLink("plotkit", "EasyPlot.js") Layout_js = JSLink("plotkit", "Layout.js") PlotKit_js = JSLink("plotkit", "PlotKit.js") SVG_js = JSLink("plotkit", "SVG.js") SweetCanvas_js = JSLink("plotkit", "SweetCanvas.js") SweetSVG_js = JSLink("plotkit", "SweetSVG.js") class PlotKit(Widget): """ Provides an easy way to use PlotKit in your own packages. from plotkit import PlotKit, then return the PlotKit widget in the output
'YUIResetFontsGrids', 'YUIAnimation', 'YUIMenuBar', 'YUIAutoComplete', 'YUITreeView', 'yuibasecss', 'yuiresetcss', 'yuifontscss', 'yuigridscss', 'yui_reset_fonts_grids', 'YUIMenuLeftNav', ] pkg_path = pkg_resources.resource_filename(__name__, os.path.join("static", "yui")) register_static_directory("TGYUI", pkg_path) skin = config.get('app.yui.skin', None) skin_method = config.get('app.yui.skin_method', 'minimized') idcounter = itertools.count() def unique_id(prefix='tgyui'): """This function lets us have a new unique id each time a widget is rendered, to be used by generated css & javascript snippets (e.g. initializing functions, or instance-specific appearance). If you have no widgets that are fetched by XMLHttpRequest and inserted into the document at runtime (e.g. with innerHTML or MochiKit.DOM.swapDOM()), you can stop reading here.
from turbogears import widgets as w from turbogears import validators as v from xml.etree import ElementTree as et from bandradar.imports import google from bandradar.model import hub w.register_static_directory("br", "bandradar/widgets") class ExtJSLink(w.JSLink): def update_params(self, d): super(ExtJSLink, self).update_params(d) d["link"] = self.name class GoogleMapWidget(w.Widget): template = """ <div xmlns:py="http://purl.org/kid/ns#" py:if="venue.geocode_lat" id="map" style="width: ${width}px; height: ${height}px"> <script type="text/javascript"> var map_lat = ${venue.geocode_lat} var map_lon = ${venue.geocode_lon} addLoadEvent(gmap_load) window.onunload = GUnload() </script> </div>""" javascript = [w.mochikit] params = ["venue", "key", "width", "height"] def __init__(self, width=500, height=350, **kw): key = kw.pop("key", "abcdef") js1 = ExtJSLink(None, "http://maps.google.com/maps?file=api&v=2&key=%s" % key) js2 = w.JSLink("br", 'javascript/googlemap.js') self.javascript.append(js1)
from pkg_resources import resource_filename from turbogears import widgets from turbogears.widgets import PaginateDataGrid import fpformat # datagrids # find 'static' directory in package 'ffbstats' static_dir = resource_filename('ffbstats', 'static') # register directory under name 'ffbstats' widgets.register_static_directory('ffbstats', static_dir) # datagrid for index page teams_datagrid = PaginateDataGrid(name='team_list', template="ffbstats.templates.datagrid", fields = [ PaginateDataGrid.Column('name', 'name', 'Name', options=dict(sortable=True)), PaginateDataGrid.Column('owner', 'owner', 'Owner', options=dict(sortable=True)), PaginateDataGrid.Column('total_points', 'total_points', 'P', options=dict(sortable=True)), PaginateDataGrid.Column('total_possible_points', 'total_possible_points', 'OP', options=dict(sortable=True)),
import turbogears from turbogears.controllers import expose from turbogears import widgets from turbogears.validators import Int, FancyValidator, Schema from turbogears.widgets import CSSLink, JSLink, Widget, WidgetDescription, \ register_static_directory __all__ = [ 'ShuttleValidator', 'SelectShuttle', ] pkg_name = "selectshuttle" option_transfer = JSLink(pkg_name, "OptionTransfer.js") js_dir = pkg_resources.resource_filename(pkg_name, "static/javascript") register_static_directory(pkg_name, js_dir) css_code = """ .selectshuttle { width: 100%; } table.selectshuttle th { text-align: left; } td.selectshuttle-left { text-align: left; width: 45%; } td.selectshuttle-middle { text-align: center; valign: middle;
import pkg_resources import turbogears as tg import controller from fas.tgcaptcha2.validator import CaptchaFieldValidator import gettext _ = gettext.gettext from turbogears.widgets import CSSLink, JSLink, Widget, WidgetDescription, \ register_static_directory, CompoundFormField, FormField, HiddenField from turbogears import widgets js_dir = pkg_resources.resource_filename("fas.tgcaptcha2", "static/javascript") register_static_directory("fas.tgcaptcha2", js_dir) captcha_controller = controller.CaptchaController() class CaptchaInputField(FormField): """Basic captcha widget. This widget doesn't do any validation, and should only be used if you want to do your own validation. """ enable = tg.config.get('tgcaptcha.audio', True) sound = "" if enable: sound = """ <a href="${controller}/sound/${payload}"> <img src="${tg.url('/static/theme/fas/images/gnome_audio_volume_medium.png')}" alt="Audio file" />
__all__ = ["TinyMCE"] import logging import pkg_resources from turbojson.jsonify import encode from turbogears.widgets import JSSource, JSLink, TextArea, WidgetDescription, \ register_static_directory from turbogears.i18n.utils import get_locale from tinymce import utils log = logging.getLogger('tinymce') js_dir = pkg_resources.resource_filename("tinymce", "static/javascript") register_static_directory("tinymce", js_dir) class TinyMCE(TextArea): """WYSIWYG editor for textareas. You can pass options directly to TinyMCE at consruction or display time via the 'mce_options' dict parameter. """ template = """ <span xmlns:py="http://purl.org/kid/ns#"> <textarea name="${name}" class="${field_class}" id="${field_id}" rows="${rows}" cols="${cols}" py:attrs="attrs" py:content="value"
""" jquery and jqwebext """ import pkg_resources from turbogears.widgets import CSSLink, JSLink, Widget, \ register_static_directory, \ WidgetDescription js_dir = pkg_resources.resource_filename("jquery", "static") register_static_directory("jquery", js_dir) jquery_js = JSLink("jquery", "jquery-1.2.3.pack.js") #import jquery only jquery = jquery_js
import itertools import pkg_resources from turbogears.widgets import Widget, TextField from turbogears.widgets import CSSSource, JSSource, register_static_directory from turbogears import config from turbojson import jsonify from util import CSSLink, JSLink __all__ = ['YUIBaseCSS', 'YUIResetCSS', 'YUIFontsCSS', 'YUIGrids', 'YUIResetFontsGrids', 'YUIAnimation', 'YUIMenuBar', 'YUIAutoComplete', 'YUITreeView', 'yuibasecss', 'yuiresetcss', 'yuifontscss', 'yuigridscss', 'yui_reset_fonts_grids', 'YUIMenuLeftNav', ] pkg_path = pkg_resources.resource_filename(__name__, os.path.join("static", "yui")) register_static_directory("TGYUI", pkg_path) skin = config.get('app.yui.skin', None) skin_method = config.get('app.yui.skin_method', 'minimized') idcounter = itertools.count() def unique_id(prefix='tgyui'): """This function lets us have a new unique id each time a widget is rendered, to be used by generated css & javascript snippets (e.g. initializing functions, or instance-specific appearance). If you have no widgets that are fetched by XMLHttpRequest and inserted into the document at runtime (e.g. with innerHTML or MochiKit.DOM.swapDOM()), you can stop reading here. If you have such widgets, please note:
from pkg_resources import resource_filename from turbogears import widgets from turbogears.widgets import PaginateDataGrid import fpformat # datagrids # find 'static' directory in package 'ffbstatssa' static_dir = resource_filename("ffbstatssa", "static") # register directory under name 'ffbstatssa' widgets.register_static_directory("ffbstatssa", static_dir) # datagrid for index page teams_datagrid = PaginateDataGrid( name="team_list", template="ffbstatssa.templates.datagrid", fields=[ PaginateDataGrid.Column("name", "name", "Name", options=dict(sortable=True)), PaginateDataGrid.Column("owner", "owner", "Owner", options=dict(sortable=True)), PaginateDataGrid.Column("total_points", "total_points", "P", options=dict(sortable=True)), PaginateDataGrid.Column("total_possible_points", "total_possible_points", "OP", options=dict(sortable=True)), PaginateDataGrid.Column( "efficiency", lambda teams: ("".join([str(fpformat.fix((teams.efficiency * 100), 2)), "%"])), "Efficiency", options=dict(sortable=True), ), ], ) # change the css file for the widgets teams_datagrid.css = [widgets.CSSLink("ffbstatssa", "css/team_dg.css")]
# http://pypi.python.org/pypi/TurboFlot # # With modifications for Smolt. # import random random.seed() import simplejson from turbogears.widgets import CSSLink, JSLink, Widget from turbogears.widgets import register_static_directory import inspect import os js_dir = os.path.join( os.path.dirname(inspect.currentframe().f_code.co_filename), 'static', 'js') register_static_directory("turboflot", js_dir) class TurboFlot(Widget): """ A TurboGears Flot Widget. """ template = """ <div xmlns:py="http://purl.org/kid/ns#"> <div style="width:${width};height:${height};" id="${id}" /> <script> $(document).ready(function() { $.plot($("#${id}"), ${data}, ${options}); }); </script> </div>