Beispiel #1
0
# 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>
    """
Beispiel #2
0
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>
Beispiel #3
0
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
    
Beispiel #4
0
    '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.
Beispiel #5
0
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)
Beispiel #6
0
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)),
Beispiel #7
0
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;
Beispiel #8
0
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" />
Beispiel #9
0
__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"
Beispiel #10
0
"""
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
Beispiel #11
0
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:
Beispiel #12
0
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")]
Beispiel #13
0
# 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>