Ignore:
Timestamp:
22 Feb 2014, 15:46:03 (11 years ago)
Author:
uli
Message:

Merge changes from uli-diazo-themed back into trunk. If this works, then a miracle happened.

Location:
main/waeup.kofa/trunk
Files:
69 deleted
44 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.kofa/trunk

  • main/waeup.kofa/trunk/src/waeup/kofa

  • main/waeup.kofa/trunk/src/waeup/kofa/browser/async.py

    r9217 r11254  
    44from waeup.kofa.async import IJob, IJobManager
    55from waeup.kofa.browser.layout import KofaPage
    6 from waeup.kofa.browser.resources import jquery, loadbar
    76from waeup.kofa.interfaces import IKofaObject, IDataCenter
    87from waeup.kofa.interfaces import MessageFactory as _
     
    5150        self.exports = self.getRunningExports()
    5251        self.uncompleted = [x for x in self.exports if x[0] != 'completed']
    53         loadbar.need()
    5452
    5553    def render(self):
     
    126124
    127125    def update(self, START_NEW=None, REMOVE=None, job_id=None):
    128         jquery.need()
    129126        if REMOVE and job_id:
    130127            self.context.remove(job_id)
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/batchprocessing.txt

    r10207 r11254  
    5555    >>> 'Given storage path cannot be used.' in browser.contents
    5656    True
    57     >>> browser.getControl('Cancel').click()
     57    >>> browser.getControl('Back to Data Center').click()
    5858
    5959
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/browser.txt

    r10540 r11254  
    3030  >>> browser = Browser()
    3131
    32 Let's get the default view of a university and see if the
    33 favicon is properly referenced::
     32Let's get the default view of a university::
    3433
    3534  >>> browser.open('http://localhost/myuniversity')
    3635  >>> print browser.contents
    3736  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
    38   ...href="http://localhost/myuniversity/@@/waeup_kofa/favicon.ico"
    3937  ...Welcome to WAeUP.Kofa...
    4038  ...
     
    102100
    103101  >>> 'Sample University' in browser.contents
    104   True
    105 
    106 The edit form contains the default value for the portal skin::
    107 
    108   >>> 'waeup-base.css' in browser.contents
    109102  True
    110103
     
    311304  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    312305  ...<h1 class="kofa-content-label">Academic Section</h1>
    313   ...<td> <a href="TF"> <span>TF</span></a></td>
     306  ...<td> <a href="http://localhost/myuniversity/faculties/TF"> <span>TF</span></a></td>
    314307  ...
    315308
     
    355348  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
    356349  ...<h1 class="kofa-content-label">Academic Section</h1>
    357   ...<td> <a href="TF"> <span>TF</span></a></td>
     350  ...<td> <a href="http://localhost/myuniversity/faculties/TF"> <span>TF</span></a></td>
    358351  ...<td>Faculty of My renamed faculty (TF)</td>
    359352  ...
     
    481474  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
    482475  ...<h1 class="kofa-content-label">Departments</h1>
    483   ...<td> <a href="TD"> <span>TD</span></a></td>
     476  ...<td> <a href="http://localhost/myuniversity/faculties/TF/TD"> <span>TD</span></a></td>
    484477  ...<td>Department of TestDept (TD)</td>
    485478  ...
     
    514507  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    515508  ...<h1 class="kofa-content-label">Departments</h1>
    516   ...<td> <a href="TD"> <span>TD</span></a></td>
     509  ...<td> <a href="http://localhost/myuniversity/faculties/TF/TD"> <span>TD</span></a></td>
    517510  ...<td>Department of My renamed dept (TD)</td>
    518511  ...
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/captcha.py

    r9217 r11254  
    2828from zope.interface import Interface
    2929from zope.publisher.interfaces.http import IHTTPRequest
    30 from waeup.kofa.browser import resources
    3130from waeup.kofa.browser.layout import KofaPage
    3231from waeup.kofa.browser.interfaces import (
     
    229228    #: name of challenge field in HTTP request
    230229    chal_field = 'recaptcha_challenge_field'
    231     #: resource to set theme and other options
    232     theme = resources.recaptcha_white
    233230
    234231    # Do not use the following keys in productive environments!  As
     
    294291        form).
    295292        """
    296         if self.theme is not None:
    297             self.theme.need()
    298293        error_param = ''
    299294        if error_code:
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/interfaces.py

    r10685 r11254  
    5959        """Get the list of breadcrumbs as real Python list.
    6060        """
    61 class ITheme(Interface):
    62     """An theme or 'skin'.
    63 
    64     Themes are basically collections of CSS- and/or JavaScript files
    65     stored somewhere. In Grok-contexts these files can be registered
    66     as 'resources' (see :mod:`waeup.kofa.browser.resources`).
    67 
    68     Furthermore, to make themes selectable and distinctable from each
    69     other we assign them short descriptions.
    70 
    71     Themes should be registered as named utilities so that they can be
    72     defined also in third-party packages and be looked up by other
    73     components like theme-selectors.
    74     """
    75     description = schema.TextLine(
    76         title = u'Description',
    77         description = u'Short description of the theme for choice fields',
    78         required = False,
    79         )
    80 
    81     def getResources():
    82         """Get resources of the theme.
    83 
    84         Deliver a list of resources that must be included in a web page to
    85         let it be rendered in the theme's style.
    86 
    87         A resource is normally defined in the `resources` module. If a
    88         theme needs several of them which normally do not depend on
    89         each other then all these resources can be returned by this
    90         method. Normally, you will only return one resource.
    91 
    92         These resources will (if the theme is selected) be `need()`-ed
    93         by the `update()` method of the general site layout.
    94         """
    95 
    9661class ICaptchaRequest(Interface):
    9762    """A set of data required to verify captcha solutions.
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/layout.py

    r10709 r11254  
    2626from zope.i18n import translate
    2727from zope.i18nmessageid import Message
    28 from hurry.resource import mode
    2928from megrok.layout import Page, Layout, Form, EditForm, DisplayForm, AddForm
    3029from z3c.flashmessage.interfaces import IMessageSource, IMessageReceiver
     
    3736from waeup.kofa.utils.helpers import to_timezone
    3837from waeup.kofa.browser.interfaces import (
    39     ITheme, IStudentNavigationBase, IApplicantBase)
    40 from waeup.kofa.browser.theming import get_all_themes, KofaThemeBase
     38    IStudentNavigationBase, IApplicantBase)
    4139from waeup.kofa.authentication import get_principal_role_manager
    4240
     
    7472        super(KofaAction, self).__init__(label, **options)
    7573        self.style = style
     74        if style == '':
     75            self.style = 'default'
     76       
    7677
    7778    def render(self):
     
    8283            label = translate(self.label, context=self.form.request)
    8384        return ('<input type="submit" id="%s" name="%s" value="%s"'
    84                 ' class="btn %s"/>' %
     85                ' class="btn btn-%s"/>' %
    8586                (self.__name__, self.__name__, escape(label, quote=True),
    8687                self.style))
     
    9697
    9798    msg = _('\'Are you sure?\'')
     99
     100    def __init__(self, label, style='', **options):
     101        super(JSAction, self).__init__(label, **options)
     102        self.style = style
     103        if style == '':
     104            self.style = 'default'
    98105
    99106    def render(self):
     
    105112        msg = translate(self.msg, context=self.form.request)
    106113        return ('<input type="submit" id="%s" name="%s" value="%s"'
    107                 ' class="btn" onclick="return confirmPost(%s)" />' %
    108                 (self.__name__, self.__name__, escape(label, quote=True), msg)
     114                ' class="btn btn-%s" onclick="return window.confirm(%s)" />' %
     115                (self.__name__, self.__name__, escape(label, quote=True),
     116                 self.style, msg)
    109117                )
    110118
     
    151159        return self.url(site, name)
    152160
    153     def flash(self, message, type='alert-message warning'):
     161    def flash(self, message, type='success'):
    154162        """Send a short message to the user.
    155163        """
     164        cssClass = 'alert alert-%s' % type
    156165        source = queryUtility(IMessageSource, name='session')
    157166        if source is None:
    158167            return None
    159         source.send(message, type)
     168        source.send(message, cssClass)
    160169        return True
    161170
     
    174183        # Width parameters will be overridden by Bootstrap
    175184        # so we have to set the css class
    176         if self.widgets.get('subject'):
    177             self.widgets['subject'].cssClass = 'span9'
    178185        if self.widgets.get('body'):
    179186            self.widgets['body'].height = 10
    180         if self.widgets.get('body'):
    181             self.widgets['body'].cssClass = 'span9'
    182187
    183188class KofaPage(UtilityView,Page):
     
    202207        super(KofaEditFormPage,self).setUpWidgets(ignore_request)
    203208        for widget in self.widgets:
    204             if widget.__class__.__name__ == 'TextWidget':
    205                 widget.cssClass = 'span8'
    206             elif widget.__class__.__name__ == 'IntWidget':
    207                 widget.cssClass = 'span2'
    208209            if 'address' in widget.name or \
    209210                'comment' in widget.name or \
    210211                'notice' in widget.name:
    211                 widget.cssClass = 'span8'
    212212                widget.height = 6
    213         if self.widgets.get('title'):
    214             self.widgets['title'].cssClass = 'span12'
    215         if self.widgets.get('frontpage'):
    216             self.widgets['frontpage'].cssClass = 'span12'
    217         if self.widgets.get('phone'):
    218             self.widgets['phone'].cssClass = 'span4'
    219213        if self.widgets.get('transcript_comment'):
    220             self.widgets['transcript_comment'].cssClass = 'span12'
    221214            self.widgets['transcript_comment'].height = 12
    222215        if self.widgets.get('jamb_subjects'):
    223             self.widgets['jamb_subjects'].cssClass = 'span8'
    224216            self.widgets['jamb_subjects'].height = 6
    225         if self.widgets.get('description'):
    226             self.widgets['description'].cssClass = 'span12'
    227217
    228218class KofaAddFormPage(UtilityView,AddForm):
     
    238228
    239229    #: An instance of the default theme to use for the site layout
    240     default_theme = KofaThemeBase()
    241230    stafftemp = grok.PageTemplateFile('templates/staffsitelayout.pt')
    242231    studenttemp = grok.PageTemplateFile('templates/studentsitelayout.pt')
     
    318307            return None         
    319308
    320     def update(self):
    321         """Include the resources required by the chosen skin/theme.
    322 
    323         University instances provide a 'skin' attribute, that should
    324         hold the internal name of a theme.
    325 
    326         A theme in the waeup.kofa sense consists of a list of
    327         CSS/JavaScript resources defined in the
    328         :mod:`waeup.kofa.browser.resources` module.
    329 
    330         If the context University object has no such attribute or the
    331         set value is not a valid theme name, we pick 'gray waeup
    332         theme' as default.
    333         """
    334         mode('minified')
    335         theme_name = getattr(grok.getSite()['configuration'], 'skin', '')
    336         theme = queryUtility(ITheme, name=theme_name,
    337                              default=self.default_theme)
    338         for resource in theme.getResources():
    339             resource.need()
    340         return
    341 
    342309    def render(self):
    343310        if self.isStudent() or self.isApplicant() or not self.isAuthenticated():
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py

    r10685 r11254  
    5151    ICaptchaManager, IChangePassword)
    5252from waeup.kofa.browser.layout import jsaction, action, UtilityView
    53 from waeup.kofa.browser.resources import (
    54     warning, tabs, datatable)
    5553from waeup.kofa.interfaces import MessageFactory as _
    5654from waeup.kofa.interfaces import(
     
    8583    user = view.request.form.get('user', None)
    8684    if user is None or localrole is None:
    87         view.flash('No user selected.')
    88         view.redirect(view.url(view.context, '@@manage')+'?tab%s' % tab)
     85        view.flash('No user selected.', type='danger')
     86        view.redirect(view.url(view.context, '@@manage')+'#tab%s' % tab)
    8987        return
    9088    role_manager = IPrincipalRoleManager(view.context)
     
    9492    grok.getSite().logger.info(
    9593        '%s - added: %s|%s' % (ob_class, user, localrole))
    96     view.redirect(view.url(view.context, u'@@manage')+'?tab%s' % tab)
     94    view.redirect(view.url(view.context, u'@@manage')+'#tab%s' % tab)
    9795    return
    9896
     
    10098    child_ids = view.request.form.get('role_id', None)
    10199    if child_ids is None:
    102         view.flash(_('No local role selected.'))
    103         view.redirect(view.url(view.context, '@@manage')+'?tab%s' % tab)
     100        view.flash(_('No local role selected.'), type='danger')
     101        view.redirect(view.url(view.context, '@@manage')+'#tab%s' % tab)
    104102        return
    105103    if not isinstance(child_ids, list):
     
    117115        except:
    118116            view.flash('Could not remove %s: %s: %s' % (
    119                     child_id, sys.exc_info()[0], sys.exc_info()[1]))
     117                    child_id, sys.exc_info()[0], sys.exc_info()[1]),
     118                    type='danger')
    120119    if len(deleted):
    121120        view.flash(
     
    125124        grok.getSite().logger.info(
    126125            '%s - removed: %s' % (ob_class, ', '.join(deleted)))
    127     view.redirect(view.url(view.context, u'@@manage')+'?tab%s' % tab)
     126    view.redirect(view.url(view.context, u'@@manage')+'#tab%s' % tab)
    128127    return
    129128
     
    133132        child_id = form['val_id']
    134133    else:
    135         view.flash(_('No item selected.'))
     134        view.flash(_('No item selected.'), type='danger')
    136135        if tab:
    137             view.redirect(view.url(view.context, redirect)+'?tab%s' % tab)
     136            view.redirect(view.url(view.context, redirect)+'#tab%s' % tab)
    138137        else:
    139138            view.redirect(view.url(view.context, redirect))
     
    152151        except:
    153152            view.flash('Could not delete %s: %s: %s' % (
    154                     id, sys.exc_info()[0], sys.exc_info()[1]))
     153                    id, sys.exc_info()[0], sys.exc_info()[1]), type='danger')
    155154    if len(deleted):
    156155        view.flash(_('Successfully removed: ${a}',
     
    160159            '%s - removed: %s' % (ob_class, ', '.join(deleted)))
    161160    if tab:
    162         view.redirect(view.url(view.context, redirect)+'?tab%s' % tab)
     161        view.redirect(view.url(view.context, redirect)+'#tab%s' % tab)
    163162    else:
    164163        view.redirect(view.url(view.context, redirect))
     
    282281                            self.request.principal.id)
    283282                        self.flash(
    284                           _('Your personal data record is outdated. Please update.'))
     283                          _('Your personal data record is outdated. Please update.'),
     284                          type='warning')
    285285                    self.redirect(self.application_url() + rel_link)
    286286                    return
     
    316316                        now < temp_password_dict.get('timestamp', now) + delta:
    317317                        self.flash(
    318                             _('Your account has been temporarily deactivated.'))
     318                            _('Your account has been temporarily deactivated.'),
     319                            type='warning')
    319320                        return
    320321                    # Now we know that the student is suspended.
    321322                    comment = self._comment(student)
    322323                    if comment:
    323                         self.flash(comment)
     324                        self.flash(comment, type='warning')
    324325                    else:
    325                         self.flash(_('Your account has been deactivated.'))
     326                        self.flash(_('Your account has been deactivated.'),
     327                                   type='warning')
    326328                    return
    327             self.flash(_('You entered invalid credentials.'))
     329            self.flash(_('You entered invalid credentials.'), type='danger')
    328330            return
    329331
     
    441443            self.flash(_('Your message has been sent.'))
    442444        else:
    443             self.flash(_('A smtp server error occurred.'))
     445            self.flash(_('A smtp server error occurred.'), type='danger')
    444446        return
    445447
     
    528530
    529531    def update(self, userid=None, adduser=None, manage=None, delete=None):
    530         datatable.need()
    531532        if manage is not None and userid is not None:
    532533            self.redirect(self.url(userid) + '/@@manage')
     
    588589            errors = validator.validate_password(password, password_ctl)
    589590            if errors:
    590                 self.flash( ' '.join(errors))
     591                self.flash( ' '.join(errors), type='danger')
    591592                return
    592593        try:
     
    601602        except KeyError:
    602603            self.status = self.flash('The userid chosen already exists '
    603                                   'in the database.')
     604                                  'in the database.', type='danger')
    604605            return
    605606        self.redirect(self.url(self.context))
     
    632633            errors = validator.validate_password(password, password_ctl)
    633634            if errors:
    634                 self.flash( ' '.join(errors))
     635                self.flash( ' '.join(errors), type='danger')
    635636                return
    636637        changed_fields = self.applyData(self.context, **data)
     
    744745
    745746    def update(self, *args, **kw):
    746         datatable.need()
    747747        form = self.request.form
    748748        self.hitlist = []
     
    769769    form_fields = grok.AutoFields(IConfigurationContainer)
    770770    form_fields['frontpage'].custom_widget = HTMLDisplayWidget
     771
    771772
    772773class ConfigurationContainerManageFormPage(KofaEditFormPage):
     
    784785        _('Add session configuration'),
    785786        _('Remove selected')]
    786     form_fields = grok.AutoFields(IConfigurationContainer).omit('frontpage_dict')
    787 
    788     def update(self):
    789         tabs.need()
    790         self.tab1 = self.tab2 = ''
    791         qs = self.request.get('QUERY_STRING', '')
    792         if not qs:
    793             qs = 'tab1'
    794         setattr(self, qs, 'active')
    795         datatable.need()
    796         warning.need()
    797         return super(ConfigurationContainerManageFormPage, self).update()
     787    form_fields = grok.AutoFields(IConfigurationContainer).omit(
     788        'frontpage_dict')
    798789
    799790    def _frontpage(self):
     
    857848                ob_class, sessionconfiguration.academic_session))
    858849        except KeyError:
    859             self.flash(_('The session chosen already exists.'))
    860             return
    861         self.redirect(self.url(self.context, '@@index')+'?tab2')
     850            self.flash(_('The session chosen already exists.'), type='danger')
     851            return
     852        self.redirect(self.url(self.context, '@@index')+'#tab2')
    862853        return
    863854
    864855    @action(_('Cancel'), validator=NullValidator)
    865856    def cancel(self):
    866         self.redirect(self.url(self.context, '@@index')+'?tab2')
     857        self.redirect(self.url(self.context, '@@index')+'#tab2')
    867858        return
    868859
     
    885876    def save(self, **data):
    886877        msave(self, **data)
    887         self.redirect(self.url(self.context.__parent__, '@@index')+'?tab2')
     878        self.redirect(self.url(self.context.__parent__, '@@index')+'#tab2')
    888879        return
    889880
    890881    @action(_('Cancel'), validator=NullValidator)
    891882    def cancel(self):
    892         self.redirect(self.url(self.context.__parent__, '@@index')+'?tab2')
     883        self.redirect(self.url(self.context.__parent__, '@@index')+'#tab2')
    893884        return
    894885
     
    904895    pnav = 0
    905896
    906     def update(self):
    907         datatable.need()
    908         warning.need()
    909         return super(DatacenterPage, self).update()
    910 
    911897    @jsaction(_('Remove selected'))
    912898    def delFiles(self, **data):
     
    915901            child_id = form['val_id']
    916902        else:
    917             self.flash(_('No item selected.'))
     903            self.flash(_('No item selected.'), type='danger')
    918904            return
    919905        if not isinstance(child_id, list):
     
    926912                deleted.append(id)
    927913            except OSError:
    928                 self.flash(_('OSError: The file could not be deleted.'))
     914                self.flash(_('OSError: The file could not be deleted.'),
     915                           type='danger')
    929916                return
    930917        if len(deleted):
     
    942929    label = _(u'Processed Files')
    943930    pnav = 0
    944 
    945     def update(self):
    946         datatable.need()
     931    cancel_button =_('Back to Data Center')
     932
     933    def update(self, CANCEL=None):
     934        if CANCEL is not None:
     935            self.redirect(self.url(self.context))
     936            return
    947937        return super(DatacenterFinishedPage, self).update()
    948938
     
    955945    max_files = 20
    956946    upload_button =_(u'Upload')
    957     cancel_button =_(u'Cancel')
     947    cancel_button =_(u'Back to Data Center')
    958948
    959949    def getPreviewHeader(self):
     
    10271017                    _('All import managers have been notified by email.'))
    10281018            else:
    1029                 self.flash(_('An smtp server error occurred.'))
     1019                self.flash(_('An smtp server error occurred.'), type='danger')
    10301020            return
    10311021
     
    10351025        if number_of_pendings > self.max_files:
    10361026            self.flash(
    1037                 _('Maximum number of files in the data center exceeded.'))
     1027                _('Maximum number of files in the data center exceeded.'),
     1028                  type='danger')
    10381029            self.redirect(self.url(self.context))
    10391030            return
     
    10461037            filename = uploadfile.filename
    10471038            #if 'pending' in filename:
    1048             #    self.flash(_("You can't re-upload pending data files."))
     1039            #    self.flash(_("You can't re-upload pending data files."), type='danger')
    10491040            #    return
    10501041            if not filename.endswith('.csv'):
    1051                 self.flash(_("Only csv files are allowed."))
     1042                self.flash(_("Only csv files are allowed."), type='danger')
    10521043                return
    10531044            normalized_filename = self.getNormalizedFileName(filename)
     
    10571048                self.context.storage, 'unfinished', normalized_filename)
    10581049            if os.path.exists(finished_file) or os.path.exists(unfinished_file):
    1059                 self.flash(_("File with same name was uploaded earlier."))
     1050                self.flash(_("File with same name was uploaded earlier."),
     1051                           type='danger')
    10601052                return
    10611053            target = os.path.join(self.context.storage, normalized_filename)
     
    10711063                    "has invalid CSV format. "
    10721064                    "First problematic line detected: line %s. "
    1073                     "Please replace." % invalid_line))
     1065                    "Please replace." % invalid_line), type='danger')
    10741066                logger.info('%s - invalid file uploaded: %s' %
    10751067                            (ob_class, target))
     
    10831075
    10841076        except IOError:
    1085             self.flash('Error while uploading file. Please retry.')
    1086             self.flash('I/O error: %s' % sys.exc_info()[1])
     1077            self.flash('Error while uploading file. Please retry.', type='danger')
     1078            self.flash('I/O error: %s' % sys.exc_info()[1], type='danger')
    10871079            return
    10881080        self.redirect(self.url(self.context))
     
    11811173    label = _(u'Process CSV file')
    11821174    pnav = 0
    1183     cancel_button =_(u'Cancel')
     1175    cancel_button =_(u'Back to Data Center')
    11841176
    11851177    def getFiles(self):
     
    11931185    def update(self, filename=None, select=None, cancel=None):
    11941186        if cancel is not None:
    1195             self.flash(_('Import aborted.'))
    11961187            self.redirect(self.url(self.context))
    11971188            return
     
    12771268            return
    12781269        if cancel is not None:
    1279             self.flash(_('Import aborted.'))
     1270            self.flash(_('Import aborted.'), type='warning')
    12801271            self.redirect(self.url(self.context))
    12811272            return
     
    12891280        if self.importer and 'update' in self.importer:
    12901281            if self.mode != 'update':
    1291                 self.flash(_('Update mode only!'))
     1282                self.flash(_('Update mode only!'), type='warning')
    12921283                self.mode_locked = True
    12931284                self.mode = 'update'
     
    13031294        else:
    13041295            self.reader = ()
    1305             self.flash(warnings)
     1296            self.flash(warnings, type='warning')
    13061297
    13071298class DatacenterImportStep3(KofaPage):
     
    13881379
    13891380    def update(self, headerfield=None, back2=None, cancel=None, proceed=None):
    1390         datatable.need()
    13911381        session = ISession(self.request)['waeup.kofa']
    13921382        self.filename = session.get('import_filename', None)
     
    14011391            return
    14021392        if cancel is not None:
    1403             self.flash(_('Import aborted.'))
     1393            self.flash(_('Import aborted.'), type='warning')
    14041394            self.redirect(self.url(self.context))
    14051395            return
     
    14161406        warnings = self.getWarnings()
    14171407        if warnings:
    1418             self.flash(warnings)
     1408            self.flash(warnings, type='warning')
    14191409
    14201410class DatacenterImportStep4(KofaPage):
     
    14781468        if self.warn_num:
    14791469            self.flash(_('Processing of ${a} rows failed.',
    1480                 mapping = {'a':self.warn_num}))
     1470                mapping = {'a':self.warn_num}), type='warning')
    14811471        self.flash(_('Successfully processed ${a} rows.',
    14821472            mapping = {'a':linenum - self.warn_num}))
     
    15061496    pnav = 0
    15071497    search_button = _('Search')
    1508     back_button = _('Back')
     1498    back_button = _('Back to Data Center')
    15091499    placeholder = _('Enter a regular expression here...')
    15101500
     
    15161506            self.flash(
    15171507                _('Log files can only be searched ' +
    1518                   'on Unix-based operating systems.'))
     1508                  'on Unix-based operating systems.'), type='danger')
    15191509            self.redirect(self.url(self.context, '@@logs'))
    15201510            return
     
    15301520                self.context.queryLogfiles(logname, query))
    15311521        except ValueError:
    1532             self.flash(_('Invalid search expression.'))
     1522            self.flash(_('Invalid search expression.'), type='danger')
    15331523            return
    15341524        if not self.result:
    1535             self.flash(_('No search results found.'))
     1525            self.flash(_('No search results found.'), type='warning')
    15361526        return
    15371527
     
    15451535    save_button =_(u'Save')
    15461536    reset_button =_(u'Reset')
    1547     cancel_button =_(u'Cancel')
     1537    cancel_button =_(u'Back to Data Center')
    15481538
    15491539    def update(self, newpath=None, move=False, overwrite=False,
     
    15621552            for name in not_copied:
    15631553                self.flash(_('File already existed (not copied): ${a}',
    1564                     mapping = {'a':name}))
     1554                    mapping = {'a':name}), type='danger')
    15651555        except:
    1566             self.flash(_('Given storage path cannot be used.'))
    1567             self.flash(_('Error: ${a}', mapping = {'a':sys.exc_info()[1]}))
     1556            self.flash(_('Given storage path cannot be used. ${a}',
     1557                        mapping = {'a':sys.exc_info()[1]}), type='danger')
    15681558            return
    15691559        if newpath:
     
    15831573    pnav = 0
    15841574    export_button = _(u'Create CSV file')
     1575    cancel_button =_(u'Back to Data Center')
    15851576
    15861577    def getExporters(self):
     
    15941585        return sorted(title_name_tuples)
    15951586
    1596     def update(self, CREATE=None, DISCARD=None, exporter=None, job_id=None):
     1587    def update(self, CREATE=None, DISCARD=None, exporter=None,
     1588               job_id=None, CANCEL=None):
     1589        if CANCEL is not None:
     1590            self.redirect(self.url(self.context))
     1591            return
    15971592        if CREATE:
    15981593            job_id = self.context.start_export_job(
     
    17181713        return _('Manage academic section')
    17191714
    1720     def update(self):
    1721         warning.need()
    1722         return super(FacultiesContainerManageFormPage, self).update()
    1723 
    17241715    @jsaction(_('Remove selected'))
    17251716    def delFaculties(self, **data):
    17261717        if not checkPermission('waeup.managePortal', self.context):
    1727             self.flash(_('You are not allowed to remove entire faculties.'))
     1718            self.flash(_('You are not allowed to remove entire faculties.'),
     1719                       type='warning')
    17281720            return
    17291721        delSubobjects(self, redirect='@@manage', tab='1')
     
    17581750            self.context.addFaculty(faculty)
    17591751        except KeyError:
    1760             self.flash(_('The faculty code chosen already exists.'))
     1752            self.flash(_('The faculty code chosen already exists.'),
     1753                       type='danger')
    17611754            return
    17621755        ob_class = self.__implemented__.__name__.replace('waeup.kofa.','')
    17631756        self.context.__parent__.logger.info(
    17641757            '%s - added: %s' % (ob_class, faculty.code))
    1765         self.redirect(self.url(self.context, u'@@manage')+'?tab1')
     1758        self.redirect(self.url(self.context, u'@@manage')+'#tab1')
    17661759        return
    17671760
     
    18061799        return _('Manage faculty')
    18071800
    1808     def update(self):
    1809         tabs.need()
    1810         self.tab1 = self.tab2 = self.tab3 = ''
    1811         qs = self.request.get('QUERY_STRING', '')
    1812         if not qs:
    1813             qs = 'tab1'
    1814         setattr(self, qs, 'active')
    1815         warning.need()
    1816         datatable.need()
    1817         return super(FacultyManageFormPage, self).update()
    1818 
    18191801    @jsaction(_('Remove selected'))
    18201802    def delDepartments(self, **data):
    18211803        if not checkPermission('waeup.managePortal', self.context):
    1822             self.flash(_('You are not allowed to remove entire departments.'))
     1804            self.flash(_('You are not allowed to remove entire departments.'),
     1805                       type='danger')
    18231806            return
    18241807        delSubobjects(self, redirect='@@manage', tab='2')
     
    18411824    @action(_('Add local role'), validator=NullValidator)
    18421825    def addLocalRole(self, **data):
    1843         return add_local_role(self, '3', **data)
     1826        return add_local_role(self,3,**data)
    18441827
    18451828    @action(_('Remove selected local roles'))
     
    18781861
    18791862    def update(self, *args, **kw):
    1880         datatable.need()
    18811863        form = self.request.form
    18821864        self.hitlist = []
     
    18891871        else:
    18901872            if 'search' in form:
    1891                 self.flash(_('Empty search string'))
     1873                self.flash(_('Empty search string'), type='warning')
    18921874            return
    18931875        self.hitlist = self._find_students(query=self.searchterm,
    18941876            searchtype=self.searchtype, view=self)
    18951877        if not self.hitlist:
    1896             self.flash(_('No student found.'))
     1878            self.flash(_('No student found.'), type='warning')
    18971879        return
    18981880
     
    19141896            self.context.addDepartment(department)
    19151897        except KeyError:
    1916             self.flash(_('The code chosen already exists in this faculty.'))
     1898            self.flash(_('The code chosen already exists in this faculty.'),
     1899                       type='danger')
    19171900            return
    19181901        self.status = self.flash(
     
    19211904        self.context.__parent__.__parent__.logger.info(
    19221905            '%s - added: %s' % (ob_class, data['code']))
    1923         self.redirect(self.url(self.context, u'@@manage')+'?tab2')
     1906        self.redirect(self.url(self.context, u'@@manage')+'#tab2')
    19241907        return
    19251908
     
    19421925
    19431926    def update(self):
    1944         tabs.need()
    1945         datatable.need()
    19461927        super(DepartmentPage, self).update()
    19471928        return
     
    19971978            yield(dict(url=url, name=key, container=val))
    19981979
    1999     def update(self):
    2000         tabs.need()
    2001         self.tab1 = self.tab2 = self.tab3 = self.tab4 = ''
    2002         qs = self.request.get('QUERY_STRING', '')
    2003         if not qs:
    2004             qs = 'tab1'
    2005         setattr(self, qs, 'active')
    2006         warning.need()
    2007         datatable.need()
    2008         super(DepartmentManageFormPage, self).update()
    2009         return
    2010 
    20111980    @action(_('Save'), style='primary')
    20121981    def save(self, **data):
     
    20221991    def delCertificates(self, **data):
    20231992        if not checkPermission('waeup.managePortal', self.context):
    2024             self.flash(_('You are not allowed to remove certificates.'))
     1993            self.flash(_('You are not allowed to remove certificates.'),
     1994                       type='warning')
    20251995            return
    20261996        delSubobjects(
     
    20452015    @action(_('Add local role'), validator=NullValidator)
    20462016    def addLocalRole(self, **data):
    2047         return add_local_role(self, 4, **data)
     2017        return add_local_role(self,4,**data)
    20482018
    20492019    @action(_('Remove selected local roles'))
     
    20762046                message += '<a href="%s">%s</a>' % (
    20772047                    self.url(entry), getattr(entry, '__name__', u'Unnamed'))
    2078                 self.flash(message)
     2048                self.flash(message, type='warning')
    20792049            self.redirect(self.url(self.context, u'@@addcourse'))
    20802050            return
     
    20842054        self.context.__parent__.__parent__.__parent__.logger.info(
    20852055            '%s - added: %s' % (ob_class, data['code']))
    2086         self.redirect(self.url(self.context, u'@@manage')+'?tab2')
     2056        self.redirect(self.url(self.context, u'@@manage')+'#tab2')
    20872057        return
    20882058
     
    21172087                message += '<a href="%s">%s</a>' % (
    21182088                    self.url(entry), getattr(entry, '__name__', u'Unnamed'))
    2119                 self.flash(message)
     2089                self.flash(message, type='warning')
    21202090            self.redirect(self.url(self.context, u'@@addcertificate'))
    21212091            return
     
    21252095        self.context.__parent__.__parent__.__parent__.logger.info(
    21262096            '%s - added: %s' % (ob_class, data['code']))
    2127         self.redirect(self.url(self.context, u'@@manage')+'?tab3')
     2097        self.redirect(self.url(self.context, u'@@manage')+'#tab3')
    21282098        return
    21292099
     
    21652135    form_fields = grok.AutoFields(ICourse).omit('code')
    21662136
    2167     def update(self):
    2168         tabs.need()
    2169         self.tab1 = self.tab2 = ''
    2170         qs = self.request.get('QUERY_STRING', '')
    2171         if not qs:
    2172             qs = 'tab1'
    2173         setattr(self, qs, 'active')
    2174         warning.need()
    2175         datatable.need()
    2176         return super(CourseManageFormPage, self).update()
    2177 
    21782137    @action(_('Save'), style='primary')
    21792138    def save(self, **data):
     
    21872146    @action(_('Add local role'), validator=NullValidator)
    21882147    def addLocalRole(self, **data):
    2189         return add_local_role(self, 2, **data)
     2148        return add_local_role(self,2,**data)
    21902149
    21912150    @action(_('Remove selected local roles'))
     
    22112170
    22122171    def update(self):
    2213         datatable.need()
    22142172        return super(CertificatePage, self).update()
    22152173
     
    22382196        return _('Manage certificate')
    22392197
    2240     def update(self):
    2241         tabs.need()
    2242         self.tab1 = self.tab2 = self.tab3 = ''
    2243         qs = self.request.get('QUERY_STRING', '')
    2244         if not qs:
    2245             qs = 'tab1'
    2246         setattr(self, qs, 'active')
    2247         warning.need()
    2248         datatable.need()
    2249         return super(CertificateManageFormPage, self).update()
    2250 
    22512198    @action(_('Save'), style='primary')
    22522199    def save(self, **data):
     
    22702217    @action(_('Add local role'), validator=NullValidator)
    22712218    def addLocalRole(self, **data):
    2272         return add_local_role(self, 3, **data)
     2219        return add_local_role(self,3,**data)
    22732220
    22742221    @action(_('Remove selected local roles'))
     
    22932240        except KeyError:
    22942241            self.status = self.flash(_('The chosen certificate course is already '
    2295                                   'part of this certificate.'))
     2242                                  'part of this certificate.'), type='warning')
    22962243            return
    22972244        self.status = self.flash(
     
    23012248        ob_class = self.__implemented__.__name__.replace('waeup.kofa.','')
    23022249        grok.getSite().logger.info('%s - added: %s' % (ob_class, code))
    2303         self.redirect(self.url(self.context, u'@@manage')+'?tab2')
     2250        self.redirect(self.url(self.context, u'@@manage')+'#tab2')
    23042251        return
    23052252
     
    24212368        user = self._searchUser(identifier, email)
    24222369        if user is None:
    2423             self.flash(_('No record found.'))
     2370            self.flash(_('No record found.'), type='warning')
    24242371            return
    24252372        # Change password
     
    24422389                'has been sent to ${a}.', mapping = {'a':email}))
    24432390        else:
    2444             self.flash(_('An smtp server error occurred.'))
     2391            self.flash(_('An smtp server error occurred.'), type='danger')
    24452392        ob_class = self.__implemented__.__name__.replace('waeup.kofa.','')
    24462393        self.context.logger.info(
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/actionbutton.pt

    r9145 r11254  
    1 <a class="btn actionbar" tal:condition="viewlet/target_url"
     1<a class="btn btn-default" tal:condition="viewlet/target_url"
    22   tal:attributes="href viewlet/target_url; onclick viewlet/onclick">
    33  <img src="" alt="edit"
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/breadcrumbs.pt

    r7459 r11254  
    1 <span tal:repeat="item viewlet/getEntries">
    2   <li>
    3     <a href="#" tal:attributes="href item/url">
    4       <span tal:content="item/title">Entry</span>
    5     </a>
    6     <span tal:condition="not: repeat/item/end" class="divider">/</span>
    7   </li>
    8 </span>
     1<li tal:repeat="item viewlet/getEntries">
     2  <a href="#" tal:attributes="href item/url">
     3    <span tal:replace="item/title">Entry</span>
     4  </a>
     5</li>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/certificatemanagepage.pt

    r9320 r11254  
    22      enctype="multipart/form-data" i18n:domain="waeup.kofa">
    33
    4   <ul class="tabs" data-tabs="tabs">
    5     <li tal:attributes="class view/tab1"><a href="#tab-1" i18n:translate="">Settings</a></li>
    6     <li tal:attributes="class view/tab2"><a href="#tab-2" i18n:translate="">Certificate Courses</a></li>
    7     <li tal:attributes="class view/tab3"><a href="#tab-3" i18n:translate="">Local Roles</a></li>
     4  <ul class="tabs nav nav-tabs" data-tabs="tabs">
     5    <li class="active">
     6      <a href="#tab1" data-toggle="tab" i18n:translate="">Settings</a>
     7    </li>
     8    <li>
     9      <a href="#tab2" data-toggle="tab"
     10         i18n:translate="">Certificate Courses</a>
     11    </li>
     12    <li>
     13      <a href="#tab3" data-toggle="tab" i18n:translate="">Local Roles</a>
     14    </li>
    815  </ul>
    916
    1017  <div class="tab-content">
    11     <div id="tab-1" tal:attributes="class view/tab1">
    12     <table class="form-table">
    13       <tbody>
    14         <tal:widgets content="structure provider:widgets" />
    15       </tbody>
    16     </table>
    17     <div tal:condition="view/availableActions">
    18       <span tal:repeat="action view/actions"
    19             tal:omit-tag="">
    20         <input tal:condition="python:action.label in view.taboneactions"
    21                tal:replace="structure action/render"/>
    22       </span>
     18    <div id="tab1" class="active tab-pane">
     19      <table class="form-table">
     20        <tbody>
     21          <tal:widgets content="structure provider:widgets" />
     22        </tbody>
     23      </table>
     24      <div tal:condition="view/availableActions">
     25        <span tal:repeat="action view/actions"
     26              tal:omit-tag="">
     27          <input tal:condition="python:action.label in view.taboneactions"
     28                 tal:replace="structure action/render"/>
     29        </span>
     30      </div>
    2331    </div>
    24     </div>
    25     <div id="tab-2" tal:attributes="class view/tab2">
    26       <h3>
    27         <span tal:content="context/__name__">Code</span>
    28         <span i18n:domain="waeup.kofa" i18n:translate="">Courses</span>
    29       </h3>
    30       <table class="display dataTableManage">
     32    <div id="tab2" class="tab-pane">
     33      <br />
     34      <table class="kofa-data-table dataTableManage">
    3135        <thead>
    3236          <tr>
     
    4145        </thead>
    4246        <tbody>
    43           <tr tal:repeat="cc context/values" class="gradeC">
    44              <td>
     47          <tr tal:repeat="cc context/values">
     48            <td>
    4549              <input type="checkbox" name="val_id"
    46                         tal:attributes="value cc/__name__" />
     50                    tal:attributes="value cc/__name__" />
    4751            </td>
    48              <td>
     52            <td>
    4953              <span tal:content="cc/level">
    50                    LEVEL
     54                LEVEL
    5155              </span>
    5256            </td>
     
    5458            <td>
    5559              <a tal:attributes="href python: view.url(cc)"
    56                      tal:content="cc/__name__">
     60                 tal:content="cc/__name__">
    5761                REFERRER CODE
    5862              </a>
     
    6064            <td>
    6165              <a tal:attributes="href python:view.url(cc.course)"
    62                      tal:content="cc/course/code">
     66                 tal:content="cc/course/code">
    6367                COURSE CODE
    6468              </a>
     
    6670            <td>
    6771              <span tal:content="cc/course/title">
    68                    COURSE TITLE
     72                COURSE TITLE
    6973              </span>
    7074            </td>
    7175            <td>
    7276              <span tal:content="cc/mandatory">
    73                    REQUIRED
     77                REQUIRED
    7478              </span>
    7579            </td>
     
    8589      </div>
    8690    </div>
    87     <div id="tab-3" tal:attributes="class view/tab3"> <br />
    88       <table class="display dataTableManage">
     91    <div id="tab3" class="tab-pane">
     92      <br />
     93      <table class="kofa-data-table dataTableManage">
    8994        <thead>
    9095          <tr>
     
    100105        </thead>
    101106        <tbody>
    102           <tr tal:repeat="entry view/getUsersWithLocalRoles" class="gradeC"> <td>
    103               <input type="checkbox" name="role_id"
    104                 tal:attributes="value python: entry['user_name']+'|'+entry['local_role']" /> </td>
     107          <tr tal:repeat="entry view/getUsersWithLocalRoles"> <td>
     108            <input type="checkbox" name="role_id"
     109                   tal:attributes="value python: entry['user_name']+'|'+entry['local_role']" /> </td>
    105110            <td tal:content="entry/user_name"> USERNAME </td>
    106111            <td tal:content="entry/user_title"> USERTITLE </td>
     
    112117        <span tal:repeat="action view/actions" tal:omit-tag="">
    113118          <input tal:condition="python:action.label in view.tabthreeactions1"
    114             tal:replace="structure action/render"/>
     119                 tal:replace="structure action/render"/>
    115120        </span>
    116121      </div><br /><br />
    117       <table class="form-table">
    118         <tr> <td>
    119             <select id="user" name="user">
    120               <option tal:repeat="user view/getUsers"
    121                 tal:attributes="value user/name">
    122               <span tal:replace="user/val/title">USERTITLE
    123               </span>
    124               </option>
    125             </select> </td> <td>
    126             <select id="local_role" name="local_role">
    127               <option tal:repeat="localrole view/getLocalRoles"
    128                 tal:attributes="value localrole/name">
    129               <span tal:replace="localrole/title">LOCALROLETITLE
    130               </span>
    131               </option>
    132             </select> </td> <td>
    133             <div tal:condition="view/availableActions">
    134               <span tal:repeat="action view/actions" tal:omit-tag="">
    135                 <input tal:condition="python:action.label in view.tabthreeactions2"
    136                   tal:replace="structure action/render"/>
    137               </span>
    138             </div> </td>
    139         </tr>
    140       </table>
     122      <div class="form-inline">
     123        <br />
     124        <div class="form-group">
     125          <select id="user" name="user" class="form-control">
     126            <option tal:repeat="user view/getUsers"
     127                    tal:attributes="value user/name">
     128            <span tal:replace="user/val/title">USERTITLE
     129            </span>
     130            </option>
     131          </select>
     132        </div>
     133        <div class="form-group">
     134          <select id="local_role" name="local_role" class="form-control">
     135            <option tal:repeat="localrole view/getLocalRoles"
     136                    tal:attributes="value localrole/name">
     137            <span tal:replace="localrole/title">LOCALROLETITLE
     138            </span>
     139            </option>
     140          </select>
     141        </div>
     142        <div class="form-group">
     143          <div tal:condition="view/availableActions">
     144            <span tal:repeat="action view/actions" tal:omit-tag="">
     145              <input tal:condition="python:action.label in view.tabthreeactions2"
     146                     tal:replace="structure action/render"/>
     147            </span>
     148          </div>
     149        </div>
     150      </div>
    141151    </div>
    142152  </div>
    143153</form>
    144 
    145 
    146 
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/certificatepage.pt

    r9320 r11254  
    2323</h3>
    2424<br />
    25 <table i18n:domain="waeup.kofa" class="display dataTable">
     25<table i18n:domain="waeup.kofa" class="kofa-data-table dataTable">
    2626<thead>
    2727  <tr>
     
    3535</thead>
    3636<tbody>
    37   <tr tal:repeat="cc context/values" class="gradeC">
     37  <tr tal:repeat="cc context/values">
    3838     <td>
    3939      <span tal:content="cc/level">
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/configurationmanagepage.pt

    r7811 r11254  
    11<form action="." tal:attributes="action request/URL" method="POST"
    2   enctype="multipart/form-data" i18n:domain="waeup.kofa">
    3     <ul class="tabs" data-tabs="tabs">
    4       <li tal:attributes="class view/tab1">
    5       <a href="#tab-1" i18n:translate="">Site Settings</a>
    6       </li>
    7       <li tal:attributes="class view/tab2">
    8       <a href="#tab-2" i18n:translate="">Session Configurations</a>
    9       </li>
    10     </ul>
    11     <div class="tab-content">
    12     <div id="tab-1" tal:attributes="class view/tab1">
     2      enctype="multipart/form-data" i18n:domain="waeup.kofa">
     3  <ul class="tabs nav nav-tabs" data-tabs="tabs">
     4    <li class="active">
     5      <a href="#tab1" data-toggle="tab"
     6         i18n:translate="">Site Settings</a>
     7    </li>
     8    <li>
     9      <a href="#tab2"  data-toggle="tab"
     10         i18n:translate="">Session Configurations</a>
     11    </li>
     12  </ul>
     13  <div class="tab-content">
     14    <div id="tab1" class="active tab-pane">
    1315      <table class="form-table">
    1416        <tbody>
     
    2325      </div>
    2426    </div>
    25     <div id="tab-2" tal:attributes="class view/tab2"> <br />
    26       <table class="display dataTableManage">
     27    <div id="tab2" class="tab-pane">
     28      <br />
     29      <table class="kofa-data-table dataTableManage">
    2730        <thead>
    2831          <tr>
     
    3437        </thead>
    3538        <tbody>
    36           <tr tal:repeat="entry view/getSessionConfigurations" class="gradeC"> <td>
    37               <input type="checkbox" name="val_id" tal:attributes="value entry/name" /> </td> <td>
    38               <a href="" tal:attributes="href entry/url" tal:content="entry/title">Name</a> </td>
     39          <tr tal:repeat="entry view/getSessionConfigurations">
     40            <td>
     41            <input type="checkbox" name="val_id"
     42                   tal:attributes="value entry/name" /> </td> <td>
     43            <a href="" tal:attributes="href entry/url"
     44               tal:content="entry/title">Name</a> </td>
    3945          </tr>
    4046        </tbody>
     
    4349        <span tal:repeat="action view/actions" tal:omit-tag="">
    4450          <input tal:condition="python:action.label in view.tabtwoactions"
    45             tal:replace="structure action/render"/>
     51                 tal:replace="structure action/render"/>
    4652        </span>
    4753      </div>
    48     </div>
    49   </div>
     54    </div><!-- /tab2 -->
     55  </div><!-- /tab-content -->
    5056</form>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/coursemanagepage.pt

    r10540 r11254  
    22      enctype="multipart/form-data" i18n:domain="waeup.kofa">
    33
    4   <ul class="tabs" data-tabs="tabs">
    5     <li tal:attributes="class view/tab1"><a href="#tab-1" i18n:translate="">Settings</a></li>
    6     <li tal:attributes="class view/tab2"><a href="#tab-3" i18n:translate="">Local Roles</a></li>
     4  <ul class="tabs nav nav-tabs" data-tabs="tabs">
     5    <li class="active">
     6      <a href="#tab1" data-toggle="tab" i18n:translate="">Settings</a>
     7    </li>
     8    <li>
     9      <a href="#tab3" data-toggle="tab" i18n:translate="">Local Roles</a>
     10    </li>
    711  </ul>
    812
    913  <div class="tab-content">
    10     <div id="tab-1" tal:attributes="class view/tab1">
    11     <table class="form-table">
    12       <tbody>
    13         <tal:widgets content="structure provider:widgets" />
    14       </tbody>
    15     </table>
    16     <div tal:condition="view/availableActions">
    17       <span tal:repeat="action view/actions"
    18             tal:omit-tag="">
    19         <input tal:condition="python:action.label in view.taboneactions"
    20                tal:replace="structure action/render"/>
    21       </span>
     14    <div id="tab1" class="tab-pane active">
     15      <table class="form-table">
     16        <tbody>
     17          <tal:widgets content="structure provider:widgets" />
     18        </tbody>
     19      </table>
     20      <div tal:condition="view/availableActions">
     21        <span tal:repeat="action view/actions"
     22              tal:omit-tag="">
     23          <input tal:condition="python:action.label in view.taboneactions"
     24                 tal:replace="structure action/render"/>
     25        </span>
     26      </div>
    2227    </div>
    23     </div>
    24     <div id="tab-3" tal:attributes="class view/tab2"> <br />
    25       <table class="display dataTableManage">
     28    <div id="tab3" class="tab-pane">
     29      <br />
     30      <table class="kofa-data-table dataTableManage">
    2631        <thead>
    2732          <tr>
     
    3742        </thead>
    3843        <tbody>
    39           <tr tal:repeat="entry view/getUsersWithLocalRoles" class="gradeC"> <td>
    40               <input type="checkbox" name="role_id"
    41                 tal:attributes="value python: entry['user_name']+'|'+entry['local_role']" /> </td>
     44          <tr tal:repeat="entry view/getUsersWithLocalRoles"> <td>
     45            <input type="checkbox" name="role_id"
     46                   tal:attributes="value python: entry['user_name']+'|'+entry['local_role']" /> </td>
    4247            <td tal:content="entry/user_name"> USERNAME </td>
    4348            <td tal:content="entry/user_title"> USERTITLE </td>
     
    4954        <span tal:repeat="action view/actions" tal:omit-tag="">
    5055          <input tal:condition="python:action.label in view.tabtwoactions1"
    51             tal:replace="structure action/render"/>
     56                 tal:replace="structure action/render"/>
    5257        </span>
    5358      </div><br /><br />
    54       <table class="form-table">
    55         <tr> <td>
    56             <select id="user" name="user">
    57               <option tal:repeat="user view/getUsers"
    58                 tal:attributes="value user/name">
    59               <span tal:replace="user/val/title">USERTITLE
    60               </span>
    61               </option>
    62             </select> </td> <td>
    63             <select id="local_role" name="local_role">
    64               <option tal:repeat="localrole view/getLocalRoles"
    65                 tal:attributes="value localrole/name">
    66               <span tal:replace="localrole/title">LOCALROLETITLE
    67               </span>
    68               </option>
    69             </select> </td> <td>
    70             <div tal:condition="view/availableActions">
    71               <span tal:repeat="action view/actions" tal:omit-tag="">
    72                 <input tal:condition="python:action.label in view.tabtwoactions2"
    73                   tal:replace="structure action/render"/>
    74               </span>
    75             </div> </td>
    76         </tr>
    77       </table>
     59      <div class="form-inline">
     60        <br />
     61        <div class="form-group">
     62          <select id="user" name="user" class="form-control">
     63            <option tal:repeat="user view/getUsers"
     64                    tal:attributes="value user/name">
     65            <span tal:replace="user/val/title">USERTITLE
     66            </span>
     67            </option>
     68          </select>
     69        </div>
     70        <div class="form-group">
     71          <select id="local_role" name="local_role" class="form-control">
     72            <option tal:repeat="localrole view/getLocalRoles"
     73                    tal:attributes="value localrole/name">
     74            <span tal:replace="localrole/title">LOCALROLETITLE
     75            </span>
     76            </option>
     77          </select>
     78        </div>
     79        <div class="form-group">
     80          <div tal:condition="view/availableActions">
     81                <span tal:repeat="action view/actions" tal:omit-tag="">
     82                  <input tal:condition="python:action.label in view.tabtwoactions2"
     83                         tal:replace="structure action/render"/>
     84                </span>
     85          </div>
     86        </div>
     87      </div>
    7888    </div>
    7989  </div>
    8090</form>
    81 
    82 
    83 
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterexportpage.pt

    r9841 r11254  
    88<br />
    99
    10 <form  method="POST">
     10<form  method="POST" class="form-inline">
    1111  <label for="exporter">
    1212    Exporter (Data Type):
    1313  </label>
    14   <div class="input">
    15     <select name="exporter">
     14  <div class="form-group">
     15    <select name="exporter" class="form-control half">
    1616      <span tal:repeat="items view/getExporters" tal:omit-tag="">
    1717        <option tal:define="name python: items[1]; title python: items[0]"
     
    2323    </select>
    2424  </div>
    25   <br />
    26   <div class="input">
    27     <input i18n:translate="" type="submit" class="btn primary"
     25  <div class="form-group">
     26    <input i18n:translate="" type="submit" class="btn btn-primary"
    2827      name="CREATE" tal:attributes="value view/export_button" />
     28  </div>
     29  <div class="form-group">
     30  <input type="submit" name="CANCEL" class="btn btn-default"
     31      tal:attributes="value view/cancel_button" />
    2932  </div>
    3033</form>
     
    3942<br /><br />
    4043
    41 <table i18n:domain="waeup.kofa">
     44<table i18n:domain="waeup.kofa" class="table table-condensed table-hover">
    4245  <thead>
    4346    <tr>
     
    6568        <span tal:replace="job/creator">CREATOR</span>
    6669      </td>
    67       <td nowrap>
     70      <td>
    6871        <span tal:replace="job/start_time">DATETIME</span>
    6972      </td>
     
    7275      </td>
    7376      <td nowrap>
    74         <a href="" class="btn small" i18n:translate=""
     77        <a href="" class="btn btn-default btn-xs" i18n:translate=""
    7578           tal:condition="job/show_refresh_button">
    76           <img tal:attributes="src static/actionicon_reload.png" />
     79          <img src="/static/img/actionicon_reload.png" />
    7780          Reload
    7881        </a>
    7982        <form method="POST">
    80           <a href="" class="btn primary small"
     83          <a href="" class="btn btn-primary btn-xs"
    8184                 tal:attributes="href job/download_url"
    8285                 tal:condition="job/show_download_button">
    8386            Download</a>
    84 
    8587          <input type="hidden" name="job_id"
    8688                 tal:attributes="value job/job" />
    87           <input type="submit" class="btn small"
     89          <input type="submit" class="btn btn-default btn-xs"
    8890                 name="DISCARD" value="Discard"
    8991                 tal:condition="job/show_discard_button" />
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterfinishedpage.pt

    r9592 r11254  
    44  imports. The files contain the imported datasets.
    55</p>
    6 <table i18n:domain="waeup.kofa" class="display dataTableFiles">
     6<table i18n:domain="waeup.kofa" class="kofa-data-table dataTableFiles">
    77  <thead>
    88    <tr>
     
    1313  </thead>
    1414  <tbody>
    15     <tr tal:repeat="file context/getFinishedFiles" class="gradeC">
     15    <tr tal:repeat="file context/getFinishedFiles">
    1616      <td><a tal:attributes="href python: 'download?filename=' + file.rel_path"
    1717             tal:content="file/name">FILENAME</a></td>
     
    2121  </tbody>
    2222</table>
     23<form method="POST">
     24  <input i18n:translate="" type="submit" class="btn btn-default" name="CANCEL"
     25      tal:attributes="value view/cancel_button"/>
     26</form>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterimport1page.pt

    r7811 r11254  
    88</p>
    99<form i18n:domain="waeup.kofa" method="POST">
    10   <table>
     10  <table class="table">
    1111    <thead>
    1212      <th />
     
    2020        <td>
    2121          <button i18n:translate=""
    22             type="submit" name="select" class="btn primary"
     22            type="submit" name="select" class="btn btn-primary"
    2323            tal:attributes="value file/name">Select</button>
    2424        </td>
     
    3030    </tbody>
    3131  </table>
    32   <input type="submit" name="cancel" class="btn"
     32  <input type="submit" name="cancel" class="btn btn-default"
    3333      tal:attributes="value view/cancel_button" />
    3434</form>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterimport2page.pt

    r8651 r11254  
    99    Please select a file-processor and a processing-mode from the selections below.
    1010  </p>
    11   <div>
    12     <table tal:define="prev_table view/getPreviewTable;">
    13       <thead>
    14         <tr>
    15           <th i18n:translate="">Header</th>
    16           <th i18n:translate="">Sample Record 1</th>
    17           <th i18n:translate="">Sample Record 2</th>
    18           <th i18n:translate="">Sample Record 3</th>
    19         </tr>
    20       </thead>
    21       <tbody>
    22         <tr tal:repeat="row prev_table">
    23           <td tal:repeat="value row"
    24               tal:content="value"> value
    25           </td>
    26         </tr>
    27       </tbody>
    28     </table>
    29   </div>
     11  <table tal:define="prev_table view/getPreviewTable;" class="table table-condensed">
     12    <thead>
     13      <tr>
     14        <th i18n:translate="">Header</th>
     15        <th i18n:translate="">Sample Record 1</th>
     16        <th i18n:translate="">Sample Record 2</th>
     17        <th i18n:translate="">Sample Record 3</th>
     18      </tr>
     19    </thead>
     20    <tbody>
     21      <tr tal:repeat="row prev_table">
     22        <td tal:repeat="value row"
     23            tal:content="value"> value
     24        </td>
     25      </tr>
     26    </tbody>
     27  </table>
    3028  <div> <b i18n:translate="">Processor:</b>
    31     <select name="importer">
     29    <select name="importer" class="form-control">
    3230      <option tal:repeat="importer view/getImporters"
    3331          tal:attributes="value importer/name;
     
    5553    </p>
    5654  </div>
    57   <input class="btn" type="submit" name="cancel" tal:attributes="value view/cancel_button" />
    58   <input class="btn danger" type="submit" name="back1" tal:attributes="value view/back_button" />
    59   <input class="btn primary"
     55  <input class="btn btn-default" type="submit" name="cancel" tal:attributes="value view/cancel_button" />
     56  <input class="btn btn-danger" type="submit" name="back1" tal:attributes="value view/back_button" />
     57  <input class="btn btn-primary"
    6058    tal:attributes="disabled python: view.getWarnings() and 'disabled' or ''; value view/proceed_button"
    6159    type="submit" name="proceed" />
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterimport3page.pt

    r8783 r11254  
    11<div i18n:domain="waeup.kofa" i18n:translate=""
    2   class="alert-message success" tal:condition="not: view/getWarnings">
     2  class="alert alert-success" tal:condition="not: view/getWarnings">
    33  Header fields OK
    44</div>
     
    2929
    3030  <div>
    31 
    32 
    3331    <table tal:define="prev_table view/getPreviewTable;
    34                        headers view/headerfields;">
     32                       headers view/headerfields;"
     33            class="table">
    3534      <thead>
    3635        <tr>
     
    4544          </td>
    4645          <td>
    47             <select class="span4" name="headerfield">
     46            <select name="headerfield" class="form-control">
    4847              <option tal:repeat="opt view/getPossibleHeaders"
    4948                tal:attributes="value opt/value;
     
    6261  </div>
    6362
    64   <input class="btn" type="submit" name="cancel"
     63  <input class="btn btn-default" type="submit" name="cancel"
    6564    tal:attributes="value view/cancel_button" />
    66   <input class="btn" type="reset" name="reset"
     65  <input class="btn btn-default" type="reset" name="reset"
    6766    tal:attributes="value view/reset_button" />
    68   <input class="btn" type="submit" name="update"
     67  <input class="btn btn-default" type="submit" name="update"
    6968    tal:attributes="value view/update_button" />
    7069  <br /><br />
    71   <input class="btn danger" type="submit" name="back2"
     70  <input class="btn btn-danger" type="submit" name="back2"
    7271    tal:attributes="value view/back_button" />
    73   <input class="btn primary"
     72  <input class="btn btn-primary"
    7473    tal:attributes="disabled python: view.getWarnings() and 'disabled' or ''; value view/proceed_button"
    7574    type="submit" name="proceed"/>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterimport4page.pt

    r10099 r11254  
    1515</p>
    1616<form method="POST" i18n:domain="waeup.kofa">
    17   <input class="btn primary" type="submit" name="finish"
     17  <input class="btn btn-primary" type="submit" name="finish"
    1818    tal:attributes="value view/back_button" />
    1919</form>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterlogspage.pt

    r9641 r11254  
    33  Currently no log files are available.
    44  </p>
    5   <table tal:condition="files" class="table condensed-table">
     5  <table tal:condition="files" class="table">
    66    <thead>
    77      <tr>
     
    1717    </thead>
    1818    <tbody>
    19       <tr tal:repeat="file files"
    20           tal:attributes="class python: repeat['file'].odd() and 'odd' or 'even'">
    21         <td class="text-center">
     19      <tr tal:repeat="file files">
     20        <td>
    2221          <form method="POST" action="@@show">
    23             <input i18n:translate="" type="submit" class="btn primary"
    24                    name="show" tal:attributes="value view/show_button" />
     22            <input i18n:translate="" type="submit" class="btn btn-primary"
     23                   name="show" tal:attributes="value view/show_button" />
    2524            <input type="hidden" name="logname"
    26                    tal:attributes="value file/name" />
     25                   tal:attributes="value file/name" />
    2726          </form></td>
    2827        <td tal:content="file/name">file.name</td>
     
    3332  </table>
    3433  <form method="POST">
    35     <button class="btn primary">
    36       <span i18n:translate="">Reload page</span>
    37     </button>
    38     <input i18n:translate="" type="submit" class="btn" name="back"
     34    <input i18n:translate="" type="submit" class="btn btn-default" name="back"
    3935        tal:attributes="value view/back_button"/>
    4036  </form>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterlogsshowfilepage.pt

    r8529 r11254  
    11<form method="post" class="form-horizontal">
    2   <input type="text" name="query"
     2  <input type="text" name="query" class="form-control"
    33         tal:attributes="value view/query; placeholder view/placeholder" />
    4   <input class="btn primary" type="submit" name="search"
     4  <input class="btn btn-primary" type="submit" name="search"
    55         tal:attributes="value view/search_button" />
    6   <input class="btn" type="submit" name="back"
     6  <input class="btn btn-default" type="submit" name="back"
    77         tal:attributes="value view/back_button" />
    88  <input type="hidden" name="logname"
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacentermanagepage.pt

    r7811 r11254  
    11<form  i18n:domain="waeup.kofa" method="POST">
    2   <div>
    3     <span  i18n:translate="">Storage path:</span>
    4     <input type="text" name="newpath"
    5      tal:attributes="value context/storage" />
    6     <br /><br />
    7     <span  i18n:translate="">
    8     Copy existing data to new storage?
    9     </span>&nbsp;&nbsp;
    10     <input type="checkbox" name="move" checked="checked" />
    11     <br /><br />
    12     <span  i18n:translate="">
    13     Overwrite contents in new location?
    14     </span>&nbsp;&nbsp;
    15     <input type="checkbox" name="overwrite" checked="no" />
    16     <br /><br />
    17     <input class="btn primary" type="submit" name="save"
    18         tal:attributes="value view/save_button" />
    19     <input class="btn" type="reset" name="reset"
    20         tal:attributes="value view/reset_button" />
    21     <input class="btn" type="submit" name="cancel"
    22         tal:attributes="value view/cancel_button" />
     2
     3  <br />
     4  <div class="form-group">
     5    <label i18n:translate="">Storage path</label>
     6        <input type="text" name="newpath" class="form-control"
     7               tal:attributes="value context/storage" />
    238  </div>
     9
     10  <div class="checkbox">
     11    <label>
     12      <input type="checkbox" name="move"  checked="checked">
     13      Copy existing data to new storage?
     14    </label>
     15  </div>
     16
     17  <div class="checkbox">
     18    <label>
     19      <input type="checkbox" name="overwrite">
     20      Overwrite contents in new location?
     21    </label>
     22  </div>
     23
     24  <input class="btn btn-primary" type="submit" name="save"
     25      tal:attributes="value view/save_button" />
     26  <input class="btn btn-default" type="reset" name="reset"
     27      tal:attributes="value view/reset_button" />
     28  <input class="btn btn-default" type="submit" name="cancel"
     29      tal:attributes="value view/cancel_button" />
    2430</form>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterpage.pt

    r9610 r11254  
    1111<form action="." tal:attributes="action request/URL" method="post"
    1212      i18n:domain="waeup.kofa" enctype="multipart/form-data">
    13     <table i18n:domain="waeup.kofa" class="display dataTableManageFiles">
     13    <table i18n:domain="waeup.kofa" class="kofa-data-table dataTableManageFiles">
    1414      <thead>
    1515        <tr>
     
    2121      </thead>
    2222      <tbody>
    23         <tr tal:repeat="file context/getPendingFiles" class="gradeC">
     23        <tr tal:repeat="file context/getPendingFiles">
    2424          <td>
    2525            <input type="checkbox" name="val_id"
     
    3333      </tbody>
    3434    </table>
    35       <div tal:condition="view/availableActions">
    36         <span tal:repeat="action view/actions" tal:omit-tag="">
    37           <input tal:replace="structure action/render"/>
    38         </span>
    39       </div>
     35    <div tal:condition="view/availableActions">
     36      <span tal:repeat="action view/actions" tal:omit-tag="">
     37        <input tal:replace="structure action/render"/>
     38      </span>
     39    </div>
    4040</form>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenteruploadpage.pt

    r9930 r11254  
    2424      </td>
    2525      <td>
    26         <select name="importer">
     26        <select name="importer" class="form-control half">
    2727          <option tal:repeat="importer view/getImporters"
    2828              tal:attributes="value importer/title"
     
    3737      </td>
    3838      <td>
    39         <select name="import_mode">
     39        <select name="import_mode" class="form-control half">
    4040          <option value='Create'>Create</option>
    4141          <option value='Update'>Update</option>
     
    4444      </td>
    4545    </tr>
    46     <tr>
    47       <td>
    48         <input class="btn primary" type="submit" name="SUBMIT"
    49             tal:attributes="value view/upload_button" />
    50         <input class="btn" type="submit" name="CANCEL"
    51             tal:attributes="value view/cancel_button"/>
    52       </td>
    53       <td>
    54       </td>
    55     </tr>
    5646  </table>
     47  <br />
     48  <input class="btn btn-primary" type="submit" name="SUBMIT"
     49      tal:attributes="value view/upload_button" />
     50  <input class="btn btn-default" type="submit" name="CANCEL"
     51      tal:attributes="value view/cancel_button"/>
    5752</form>
    58 
     53<br />
    5954<p i18n:translate="">
    6055    Import managers will be automatically informed by email after file upload.
     
    6762<h2 i18n:translate="">Available Processors (Importers)</h2>
    6863
    69 <table i18n:domain="waeup.kofa">
     64<table i18n:domain="waeup.kofa" class="table table-condensed">
    7065  <thead>
    7166    <tr>
     
    7469      <th i18n:translate="">Optional Schema Fields</th>
    7570      <th i18n:translate="">Non-Schema Fields</th>
    76       <th i18n:translate="">CSV Skeleton File</th>
    7771    </tr>
    7872  </thead>
    7973  <tr tal:repeat="importer view/getImporters">
    80     <td tal:content="importer/title"></td>
     74    <td>
     75      <span tal:content="importer/title">TITLE</span><br /><br />
     76      <a i18n:translate="" class="btn btn-primary btn-xs"
     77         tal:attributes="href python: 'skeleton?name=' + importer['name']">
     78         Download CSV Skeleton File
     79      </a>
     80    </td>
    8181    <td nowrap>
    8282      <span tal:repeat="field importer/fields">
     
    110110    </td>
    111111
    112     <td>
    113       <a i18n:translate=""
    114          tal:attributes="href python: 'skeleton?name=' + importer['name']">Download</a>
    115     </td>
    116112  </tr>
    117113</table>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/departmentmanagepage.pt

    r7811 r11254  
    11<form action="." tal:attributes="action request/URL" method="POST"
    2   i18n:domain="waeup.kofa" enctype="multipart/form-data">
    3   <ul class="tabs" data-tabs="tabs">
    4     <li tal:attributes="class view/tab1">
    5     <a href="#tab-1">
    6       <span i18n:translate="">Settings
    7       </span></a>
     2      i18n:domain="waeup.kofa" enctype="multipart/form-data">
     3  <ul class="tabs nav nav-tabs" data-tabs="tabs">
     4    <li class="active">
     5      <a href="#tab1" data-toggle="tab">
     6      <span i18n:translate="">Settings</span></a>
    87    </li>
    9     <li tal:attributes="class view/tab2">
    10     <a href="#tab-2" i18n:translate="">Courses</a>
     8    <li>
     9      <a href="#tab2"  data-toggle="tab" i18n:translate="">Courses</a>
    1110    </li>
    12     <li tal:attributes="class view/tab3">
    13     <a href="#tab-3" i18n:translate="">Certificates</a>
     11    <li>
     12      <a href="#tab3"  data-toggle="tab" i18n:translate="">Certificates</a>
    1413    </li>
    15     <li tal:attributes="class view/tab4">
    16     <a href="#tab-4" i18n:translate="">Local Roles</a>
     14    <li>
     15      <a href="#tab4"  data-toggle="tab" i18n:translate="">Local Roles</a>
    1716    </li>
    1817  </ul>
    1918  <div class="tab-content">
    20     <div id="tab-1" tal:attributes="class view/tab1">
     19    <div id="tab1" class="active tab-pane">
    2120      <table class="form-table">
    2221        <tbody>
     
    2726        <span tal:repeat="action view/actions" tal:omit-tag="">
    2827          <input tal:condition="python:action.label in view.taboneactions"
    29             tal:replace="structure action/render"/>
     28                 tal:replace="structure action/render"/>
    3029        </span>
    3130      </div>
    3231    </div>
    33     <div id="tab-2" tal:attributes="class view/tab2"> <br />
    34       <table class="display dataTableManage">
     32    <div id="tab2" class="tab-pane">
     33      <br />
     34      <table class="kofa-data-table dataTableManage">
    3535        <thead>
    3636          <tr>
     
    4444        </thead>
    4545        <tbody>
    46           <tr tal:repeat="entry view/getCourses" class="gradeC"> <td>
    47               <input type="checkbox" name="val_id"
    48                 tal:attributes="value entry/name" /> </td> <td>
    49               <a href="" tal:attributes="href entry/url"
    50                 tal:content="entry/name">Name</a> </td>
     46          <tr tal:repeat="entry view/getCourses"> <td>
     47            <input type="checkbox" name="val_id"
     48                   tal:attributes="value entry/name" /> </td> <td>
     49            <a href="" tal:attributes="href entry/url"
     50               tal:content="entry/name">Name</a> </td>
    5151            <td tal:content="entry/container/title"> Title </td>
    5252          </tr>
     
    5656        <span tal:repeat="action view/actions" tal:omit-tag="">
    5757          <input tal:condition="python:action.label in view.tabtwoactions"
    58             tal:replace="structure action/render"/>
     58                 tal:replace="structure action/render"/>
    5959        </span>
    6060      </div>
    6161    </div>
    62     <div id="tab-3" tal:attributes="class view/tab3"> <br />
    63       <table class="display dataTableManage">
     62    <div id="tab3" class="tab-pane">
     63      <br />
     64      <table class="kofa-data-table dataTableManage">
    6465        <thead>
    6566          <tr>
     
    7374        </thead>
    7475        <tbody>
    75           <tr tal:repeat="entry view/getCertificates" class="gradeC"> <td>
    76               <input type="checkbox" name="val_id"
    77                 tal:attributes="value entry/name" /> </td> <td>
    78               <a href="" tal:attributes="href entry/url"
    79                 tal:content="entry/name">Name</a> </td>
     76          <tr tal:repeat="entry view/getCertificates"> <td>
     77            <input type="checkbox" name="val_id"
     78                   tal:attributes="value entry/name" /> </td> <td>
     79            <a href="" tal:attributes="href entry/url"
     80               tal:content="entry/name">Name</a> </td>
    8081            <td tal:content="entry/container/title"> Title  </td>
    8182          </tr>
     
    8586        <span tal:repeat="action view/actions" tal:omit-tag="">
    8687          <input tal:condition="python:action.label in view.tabthreeactions"
    87             tal:replace="structure action/render"/>
     88                 tal:replace="structure action/render"/>
    8889        </span>
    8990      </div>
    9091    </div>
    91     <div id="tab-4" tal:attributes="class view/tab4"> <br />
    92       <table class="display dataTableManage">
     92    <div id="tab4" class="tab-pane"> <br />
     93      <table class="kofa-data-table dataTableManage">
    9394        <thead>
    9495          <tr>
     
    104105        </thead>
    105106        <tbody>
    106           <tr tal:repeat="entry view/getUsersWithLocalRoles" class="gradeC">
     107          <tr tal:repeat="entry view/getUsersWithLocalRoles">
    107108            <td> <input type="checkbox" name="role_id"
    108                 tal:attributes="value python: entry['user_name']+'|'+entry['local_role']" /> </td>
     109            tal:attributes="value python: entry['user_name']+'|'+entry['local_role']" /> </td>
    109110            <td tal:content="entry/user_name"> USERNAME </td>
    110111            <td tal:content="entry/user_title"> USERTITLE </td>
     
    116117        <span tal:repeat="action view/actions" tal:omit-tag="">
    117118          <input tal:condition="python:action.label in view.tabfouractions1"
    118             tal:replace="structure action/render"/>
     119                 tal:replace="structure action/render"/>
    119120        </span>
    120121      </div> <br /><br />
    121       <table class="form-table">
    122         <tr> <td>
    123             <select id="user" name="user">
    124               <option tal:attributes="value user/name" tal:repeat="user view/getUsers">
    125               <span tal:replace="user/val/title">USERTITLE
    126               </span>
    127               </option>
    128             </select> </td> <td>
    129             <select id="local_role" name="local_role">
    130               <option tal:attributes="value localrole/name"
    131                 tal:repeat="localrole view/getLocalRoles">
    132               <span tal:replace="localrole/title">LOCALROLETITLE
    133               </span>
    134               </option>
    135             </select> </td> <td>
    136             <div tal:condition="view/availableActions">
    137               <span tal:repeat="action view/actions" tal:omit-tag="">
    138                 <input tal:condition="python:action.label in view.tabfouractions2"
    139                   tal:replace="structure action/render"/>
    140               </span>
    141             </div> </td>
    142         </tr>
    143       </table>
     122      <div class="form-inline">
     123        <br />
     124        <div class="form-group">
     125          <select class="form-control" id="user" name="user">
     126            <option tal:repeat="user view/getUsers"
     127                    tal:attributes="value user/name">
     128            <span tal:replace="user/val/title">USERTITLE
     129            </span>
     130            </option>
     131          </select>
     132        </div>
     133        <div class="form-group">
     134          <select class="form-control" id="local_role" name="local_role">
     135            <option tal:repeat="localrole view/getLocalRoles"
     136                    tal:attributes="value localrole/name">
     137            <span tal:replace="localrole/title">LOCALROLETITLE
     138            </span>
     139            </option>
     140          </select>
     141        </div>
     142        <div class="form-group">
     143          <div tal:condition="view/availableActions">
     144            <span tal:repeat="action view/actions" tal:omit-tag="">
     145              <input tal:condition="python:action.label in view.tabfouractions2"
     146                     tal:replace="structure action/render"/>
     147            </span>
     148          </div>
     149        </div>
     150      </div>
    144151    </div>
    145152  </div>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/departmentpage.pt

    r8481 r11254  
    1 <ul i18n:domain="waeup.kofa" class="tabs" data-tabs="tabs">
    2   <li class="active"><a href="#tab-1">
    3    <span i18n:translate="">Courses</span></a>
     1<ul i18n:domain="waeup.kofa" class="tabs nav nav-tabs" data-tabs="tabs">
     2  <li class="active"><a href="#tab1" data-toggle="tab">
     3    <span i18n:translate="">Courses</span></a>
    44  </li>
    5   <li><a href="#tab-2">
     5  <li><a href="#tab2" data-toggle="tab">
    66    <span i18n:translate="">Certificates</span></a>
    77  </li>
    88</ul>
    9 <div  i18n:domain="waeup.kofa" class="tab-content">
    10     <div id="tab-1" class="active">
     9<div i18n:domain="waeup.kofa" class="tab-content">
     10  <div id="tab1" class="active tab-pane">
    1111    <br />
    12     <table class="display dataTable">
     12    <table class="kofa-data-table dataTable">
    1313      <thead>
    1414        <tr>
     
    1818      </thead>
    1919      <tbody>
    20         <tr tal:repeat="entry view/getCourses" class="gradeC">
     20        <tr tal:repeat="entry view/getCourses">
    2121          <td>
    22                 <a href=""
    23                    tal:attributes="href entry/url"
    24                    tal:content="entry/name">Name</a>
     22            <a href=""
     23               tal:attributes="href entry/url"
     24               tal:content="entry/name">Name</a>
    2525          </td>
    2626          <td tal:content="entry/container/title">
    27                Title
     27            Title
    2828          </td>
    2929        </tr>
    3030      </tbody>
    3131    </table>
    32     </div>
    33     <div id="tab-2">
     32  </div>
     33  <div id="tab2" class="tab-pane">
    3434    <br />
    35     <table class="display dataTable">
     35    <table class="kofa-data-table dataTable">
    3636      <thead>
    3737        <tr>
     
    4141      </thead>
    4242      <tbody>
    43         <tr tal:repeat="entry view/getCertificates" class="gradeC">
     43        <tr tal:repeat="entry view/getCertificates">
    4444          <td>
    45                 <a href=""
    46                    tal:attributes="href entry/url"
    47                    tal:content="entry/name">Name</a>
     45            <a href=""
     46               tal:attributes="href entry/url"
     47               tal:content="entry/name">Name</a>
    4848          </td>
    4949          <td tal:content="entry/container/title">
    50                Title
     50            Title
    5151          </td>
    5252        </tr>
    5353      </tbody>
    5454    </table>
    55     </div>
     55  </div>
    5656</div>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/facultiescontainermanagepage.pt

    r7464 r11254  
    22      enctype="multipart/form-data">
    33
    4   <table>
     4  <table class="table table-hover">
    55    <thead>
    66      <tr>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/facultymanagepage.pt

    r7811 r11254  
    11<form action="." tal:attributes="action request/URL"
    22  i18n:domain="waeup.kofa" method="POST" enctype="multipart/form-data">
    3   <ul class="tabs" data-tabs="tabs">
    4     <li tal:attributes="class view/tab1">
    5     <a href="#tab-1">
     3  <ul class="tabs nav nav-tabs" data-tabs="tabs">
     4    <li class="active">
     5    <a href="#tab1" data-toggle="tab">
    66      <span i18n:translate="">Settings
    77      </span></a>
    88    </li>
    9     <li tal:attributes="class view/tab2">
    10     <a href="#tab-2">
     9    <li>
     10    <a href="#tab2" data-toggle="tab">
    1111      <span tal:content="view/subunits">CONTENTS
    1212      </span> </a>
    1313    </li>
    14     <li tal:attributes="class view/tab3">
    15     <a href="#tab-3">
     14    <li>
     15    <a href="#tab3" data-toggle="tab">
    1616      <span i18n:translate="">Local Roles
    1717      </span></a>
     
    1919  </ul>
    2020  <div class="tab-content">
    21     <div id="tab-1" tal:attributes="class view/tab1">
     21    <div id="tab1" class="active tab-pane">
    2222      <table class="form-table">
    2323        <tbody>
     
    3232      </div>
    3333    </div>
    34     <div id="tab-2" tal:attributes="class view/tab2">
     34    <div id="tab2" class="tab-pane">
    3535      <h3 tal:content="view/subunits">DEPARTMENTS</h3>
    36       <table>
     36      <table class="table table-hover">
    3737        <thead>
    3838          <tr>
     
    6363      </div>
    6464    </div>
    65     <div id="tab-3" tal:attributes="class view/tab3"> <br />
    66       <table class="display dataTableManage">
     65    <div id="tab3" class="tab-pane"> <br />
     66      <table class="kofa-data-table dataTableManage">
    6767        <thead>
    6868          <tr>
     
    7878        </thead>
    7979        <tbody>
    80           <tr tal:repeat="entry view/getUsersWithLocalRoles" class="gradeC"> <td>
     80          <tr tal:repeat="entry view/getUsersWithLocalRoles">
     81            <td>
    8182              <input type="checkbox" name="role_id"
    8283              tal:attributes="value python: entry['user_name']+'|'+entry['local_role']" /> </td>
     
    9394        </span>
    9495      </div><br /><br />
    95       <table class="form-table">
    96         <tr> <td>
    97             <select id="user" name="user">
    98               <option tal:repeat="user view/getUsers" tal:attributes="value user/name">
    99               <span tal:replace="user/val/title">USERTITLE
    100               </span>
    101               </option>
    102             </select> </td> <td>
    103             <select id="local_role" name="local_role">
    104               <option tal:repeat="localrole view/getLocalRoles"
    105                       tal:attributes="value localrole/name">
    106               <span tal:replace="localrole/title">LOCALROLETITLE
    107               </span>
    108               </option>
    109             </select> </td> <td>
    110             <div tal:condition="view/availableActions">
    111               <span tal:repeat="action view/actions" tal:omit-tag="">
    112                 <input tal:condition="python:action.label in view.tabthreeactions2"
    113                        tal:replace="structure action/render"/>
    114               </span>
    115             </div> </td>
    116         </tr>
    117       </table>
     96      <div class="form-inline">
     97        <br />
     98        <div class="form-group">
     99          <select id="user" name="user" class="form-control">
     100            <option tal:repeat="user view/getUsers"
     101                    tal:attributes="value user/name">
     102            <span tal:replace="user/val/title">USERTITLE
     103            </span>
     104            </option>
     105          </select>
     106        </div>
     107        <div class="form-group">
     108          <select id="local_role" name="local_role" class="form-control">
     109            <option tal:repeat="localrole view/getLocalRoles"
     110                    tal:attributes="value localrole/name">
     111            <span tal:replace="localrole/title">LOCALROLETITLE
     112            </span>
     113            </option>
     114          </select>
     115        </div>
     116        <div class="form-group" tal:condition="view/availableActions">
     117          <span tal:repeat="action view/actions" tal:omit-tag="">
     118            <input tal:condition="python:action.label in view.tabthreeactions2"
     119                   tal:replace="structure action/render"/>
     120          </span>
     121        </div>
     122      </div>
     123
    118124    </div>
    119125  </div>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/facultypage.pt

    r8024 r11254  
    33</div>
    44
    5 <table i18n:domain="waeup.kofa">
     5<table class="table table-hover" i18n:domain="waeup.kofa">
    66  <thead>
    77    <tr>
     
    1212  <tbody>
    1313    <tr tal:repeat="value context/values">
    14       <td> <a tal:attributes="href value/__name__">
     14      <td> <a tal:attributes="href python: view.url(value)">
    1515          <span tal:content="value/code">Name</span></a></td>
    1616      <td tal:content="value/longtitle">Title</td>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/filedisplay.pt

    r8106 r11254  
    44  </td>
    55  <td>
    6     <a tal:attributes="href viewlet/download_name"
     6    <a tal:attributes="href python: view.url(context, viewlet.download_name)"
    77       tal:content="viewlet/download_name"
    88       target="image">
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/fileupload.pt

    r8135 r11254  
    55  <td>
    66    <tal:file tal:condition="viewlet/file_exists">
    7       <a tal:attributes="href viewlet/download_name"
     7      <a tal:attributes="href python: view.url(context, viewlet.download_name)"
    88         tal:content="viewlet/title"
    99         target="image">
     
    1111      </a>
    1212    </tal:file>
     13    <input type="file" tal:attributes="name viewlet/input_name"/>
    1314    <br />
    14     <input type="file" tal:attributes="name viewlet/input_name"/>
    15     <br /><br />
    1615    <input type="submit" tal:condition="viewlet/file_exists"
    1716           tal:attributes="id python:('delete_%s' % viewlet.input_name);
    1817              name python:('delete_%s' % viewlet.input_name);
    1918              value viewlet/delete_button"
    20            class="btn error" />
     19           class="btn btn-danger" />
    2120    <input type="submit"
    2221             tal:attributes="id python:('upload_%s' % viewlet.input_name);
    2322                name python:('upload_%s' % viewlet.input_name);
    2423                value viewlet/upload_button"
    25              class="btn primary" />
     24             class="btn btn-primary" />
    2625    <span i18n:translate="">
    2726      Max. file size:
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/findstudentspage.pt

    r10646 r11254  
    1 <form method="POST" i18n:domain="waeup.kofa">
     1<form method="POST" i18n:domain="waeup.kofa" class="form-inline">
    22<br />
    3   <input class="btn primary" type="submit" name="search"
    4     tal:attributes="value view/search_button" />
    5 
    6   <select name="searchtype">
    7     <option i18n:translate="" value="student_id">with id</option>
    8     <option i18n:translate="" value="fullname">with name</option>
    9     <option i18n:translate="" value="reg_number">with registration number</option>
    10     <option i18n:translate="" value="matric_number">with matriculation number</option>
    11   </select>
    12 
    13   <input type="text" name="searchterm" />
    14 
    15   <p>&nbsp;</p>
    16   <div tal:condition="view/hitlist">
    17     <h3 i18n:translate="">Search Results</h3>
    18     <input type="hidden" name="old_searchterm"
    19          tal:attributes="value view/searchterm" />
    20     <input type="hidden" name="old_searchtype"
    21          tal:attributes="value view/searchtype" />
    22     <table class="display dataTable">
    23       <thead>
    24       <tr>
    25         <th i18n:translate="">Student Id</th>
    26         <th i18n:translate="">Reg. Number</th>
    27         <th i18n:translate="">Matric. Number</th>
    28         <th i18n:translate="">State</th>
    29         <th i18n:translate="">Full Name</th>
    30       </tr>
    31       </thead>
    32       <tbody>
    33       <tr tal:repeat="item view/hitlist" class="gradeC">
    34         <td> <a tal:attributes="href item/url">
    35           <span tal:content="item/student_id">A123456</span></a>
    36         </td>
    37         <td class="center"> <a tal:attributes="href item/url">
    38           <span tal:content="item/reg_number">9999999</span></a>
    39         </td>
    40         <td class="center"> <a tal:attributes="href item/url">
    41           <span tal:content="item/matric_number">9999999</span></a>
    42         </td>
    43         <td tal:content="item/state">admitted</td>
    44         <td tal:content="item/display_fullname">Bob</td>
    45       </tr>
    46       </tbody>
    47     </table>
    48     <br />
     3  <div class="form-group">
     4    <input class="btn btn-primary" type="submit" name="search"
     5      tal:attributes="value view/search_button" />
     6  </div>
     7  <div class="form-group">
     8    <select name="searchtype" class="form-control">
     9      <option i18n:translate="" value="student_id">with id</option>
     10      <option i18n:translate="" value="fullname">with name</option>
     11      <option i18n:translate="" value="reg_number">with registration number</option>
     12      <option i18n:translate="" value="matric_number">with matriculation number</option>
     13    </select>
     14  </div>
     15  <div class="form-group">
     16    <input type="text" class="form-control" name="searchterm" />
    4917  </div>
    5018</form>
     19
     20<p>&nbsp;</p>
     21<div tal:condition="view/hitlist">
     22  <h3 i18n:translate="">Search Results</h3>
     23  <input type="hidden" name="old_searchterm"
     24       tal:attributes="value view/searchterm" />
     25  <input type="hidden" name="old_searchtype"
     26       tal:attributes="value view/searchtype" />
     27  <table class="kofa-data-table dataTable">
     28    <thead>
     29    <tr>
     30      <th i18n:translate="">Student Id</th>
     31      <th i18n:translate="">Reg. Number</th>
     32      <th i18n:translate="">Matric. Number</th>
     33      <th i18n:translate="">State</th>
     34      <th i18n:translate="">Full Name</th>
     35    </tr>
     36    </thead>
     37    <tbody>
     38    <tr tal:repeat="item view/hitlist">
     39      <td> <a tal:attributes="href item/url">
     40        <span tal:content="item/student_id">A123456</span></a>
     41      </td>
     42      <td class="center"> <a tal:attributes="href item/url">
     43        <span tal:content="item/reg_number">9999999</span></a>
     44      </td>
     45      <td class="center"> <a tal:attributes="href item/url">
     46        <span tal:content="item/matric_number">9999999</span></a>
     47      </td>
     48      <td tal:content="item/state">admitted</td>
     49      <td tal:content="item/display_fullname">Bob</td>
     50    </tr>
     51    </tbody>
     52  </table>
     53</div>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/loginpage.pt

    r8853 r11254  
    1 <form i18n:domain="waeup.kofa" method="post">
    2   <table id="login" class="form-table" summary="Table for entering login information">
    3     <tbody>
    4       <tr>
    5         <td i18n:translate="" class="fieldname">
    6           User Name or Id:
    7         </td>
    8         <td>
    9           <input type="text" id="login" name="form.login" size="20" />
    10         </td>
    11       </tr>
    12       <tr>
    13         <td i18n:translate="" class="fieldname">
    14           Password:
    15         </td>
    16         <td>
    17           <input type="password" id="password" name="form.password"  size="20" value="" />
    18           &nbsp;&nbsp;
    19           </td>
    20       </tr>
    21       <tr>
    22         <td>&nbsp;</td>
    23         <td>
    24           <font  i18n:translate="" color="red"> Notice: User names, Ids and passwords are case sensitive.</font>
    25         </td>
    26       </tr>
    27     </tbody>
    28   </table>
     1<form i18n:domain="waeup.kofa" method="post" class="form-horizontal">
     2  <br />
     3  <div class="form-group">
     4    <label i18n:translate="" class="col-sm-2 control-label">User Name or Id</label>
     5    <div class="col-sm-10">
     6      <input name="form.login" type="text" class="form-control" id="login">
     7    </div>
     8  </div>
     9  <div class="form-group">
     10    <label i18n:translate="" class="col-sm-2 control-label">Password</label>
     11    <div class="col-sm-10">
     12      <input name="form.password" type="password" class="form-control" id="password">
     13      <font  i18n:translate="" color="red"> Notice: User names, Ids and passwords are case sensitive.</font>
     14    </div>
     15  </div>
    2916  <input type="hidden" name="camefrom"   tal:attributes="value view/camefrom" />
    30   <input class="btn primary" type="submit" name="SUBMIT"
     17  <input class="btn btn-primary" type="submit" name="SUBMIT"
    3118    tal:attributes="value view/login_button" />
    32 
    33 
    3419  <br /><br /><br />
    35 
    3620  <p  i18n:translate="login_trouble1">Don't forget to logout or exit your browser when you're done.
    3721    If you are having trouble logging in, make sure to enable  cookies in your web browser.
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/reportscontainercreate.pt

    r9643 r11254  
    88  </p>
    99  <br />
    10   <div class="clearfix">
    11     <label for="generator">Report Type:</label>
    12     <div class="input">
    13       <select name="generator">
    14         <span tal:repeat="items view/creators" tal:omit-tag="">
    15           <option
    16               tal:define="name python: items[1]; title python: items[0]"
    17               tal:attributes="value name">
    18             <span tal:replace="title">TITLE</span>
    19           </option>
    20         </span>
    21       </select>
    22       <div class="help-inline" i18n:translate="">
    23         Type of report to create
    24       </div>
    25     </div>
     10  <div class="form-group">
     11    <label for="generator">Report Type</label>
     12    <select name="generator" class="form-control half">
     13      <span tal:repeat="items view/creators" tal:omit-tag="">
     14        <option
     15            tal:define="name python: items[1]; title python: items[0]"
     16            tal:attributes="value name">
     17          <span tal:replace="title">TITLE</span>
     18        </option>
     19      </span>
     20    </select>
    2621  </div>
    27   <div class="input">
    28     <input i18n:translate="" type="submit" class="btn primary"
     22  <div class="form-group">
     23    <input i18n:translate="" type="submit" class="btn btn-primary"
    2924           name="START_GENERATOR" value="Configure" />
    30     <a class="btn secondary" href=""
     25    <a class="btn btn-default" href=""
    3126       tal:attributes="href python:view.url(context)">Cancel</a>
    3227  </div>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/reportscontainerpage.pt

    r9840 r11254  
    1 <table i18n:domain="waeup.kofa">
     1<table i18n:domain="waeup.kofa" class="table">
    22  <thead>
    33    <tr>
     
    3131          <input type="hidden" name="job_id"
    3232                 tal:attributes="value python: entry[0]" />
    33           <input type="submit" class="btn small primary"
     33          <input type="submit" class="btn btn-sm btn-primary"
    3434                 name="DOWNLOAD" value="Download"
    3535                 tal:condition="python: entry[4]" />
    36           <input type="submit" class="btn small secondary"
     36          <input type="submit" class="btn btn-sm btn-default"
    3737                 name="DISCARD" value="Discard"
    3838                 tal:condition="python: entry[3]" />
    39           <a href="" class="btn" i18n:translate=""
     39          <a href="" class="btn btn-sm btn-default" i18n:translate=""
    4040             tal:condition="python: entry[5]">
    41             <img tal:attributes="src static/actionicon_reload.png" />
     41            <img src="/static/img/actionicon_reload.png" />
    4242            Reload
    4343          </a>
     
    4848</table>
    4949<form method="POST" i18n:domain="waeup.kofa">
    50   <div class="span12">
    51     <a href="create" class="btn primary" i18n:translate="">
    52       Create new report
    53     </a>
    54   </div>
     50  <a tal:attributes="href python:view.url(context, 'create')"
     51     class="btn btn-primary" i18n:translate="">
     52    Create new report
     53  </a>
    5554</form>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/searchpage.pt

    r9631 r11254  
    1 <form method="post">
    2   <input type="text" name="query"
    3          tal:attributes="value view/query" />
    4     <input class="btn primary" type="submit" name="SUBMIT"
     1<form method="POST" class="form-inline">
     2<br />
     3  <div class="form-group">
     4      <input type="text" name="query" class="form-control"
     5         tal:attributes="value view/query" />
     6  </div>
     7  <div class="form-group">
     8    <input class="btn btn-primary" type="submit" name="SUBMIT"
    59      tal:attributes="value view/search_button"/>
     10  </div>
    611</form>
    712<br />
    813<span  i18n:domain="waeup.kofa" tal:condition="view/hitlist">
    914    <h3 i18n:translate="">Search Results</h3>
    10     <table class="display dataTable">
     15    <table class="kofa-data-table dataTable">
    1116        <thead>
    1217            <tr>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/staffsitelayout.pt

    r10900 r11254  
    22<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" i18n:domain="waeup.kofa">
    33  <head>
     4
     5    <!-- Diazo element-->
    46    <title i18n:translate="">
    57      WAeUP.Kofa - Student Management System
    6     </title>
     8    </title> 
     9    <!-- /Diazo element-->
     10
    711    <!--base href="http://localhost:8080/app/@@page"
    812     tal:attributes="href python: view.url(layout.site)" / -->
     
    1418            href python: view.url(layout.site, 'feed.rss')" />
    1519  </head>
    16   <body>
    17     <div class="topbar" data-scrollspy="scrollspy" >
    18       <div class="topbar-inner">
    19         <div class="container-fluid">
    20           <a class="brand" href="#"
    21               tal:attributes="href python: view.url(layout.site)"
    22               tal:content="layout/getAppAcronym">ACRONYM</a>
    23           <ul class="nav kofa-navbar-left">
    24             <tal:primary_nav content="structure provider:primary_nav" />
    25           </ul>
    26           <ul class="nav secondary-nav kofa-navbar-right">
    27             <li tal:condition="not: layout/isAuthenticated">
    28             <a href="#" i18n:translate=""
    29                 tal:attributes="href python: view.url(layout.site, 'login')">
    30                 Login
    31             </a>
    32             </li>
    33             <li tal:condition="layout/isAuthenticated">
    34             <a href="#" i18n:translate=""
    35                tal:attributes="href python: view.url(layout.site, '@@contactadmin')">
    36                Contact
    37             </a>
    38             </li>
    39             <li tal:condition="layout/isAuthenticated">
    40             <a href="#" i18n:translate=""
    41                tal:attributes="href python: view.url(context, '@@logout')">
    42                Logout
    43             </a>
    44             </li>
    45           </ul>
    46           <span class="language"
    47                 tal:define="langs provider:languages"
    48                 tal:condition="langs">
    49             <tal:languages
    50                   tal:content="structure langs" /> |
    51           </span>
    52         </div>
    53       </div>
    54     </div>
    5520
     21  <!-- Diazo element-->
     22  <body class="kofa-body">
     23
     24    <!-- Diazo element-->
     25    <a class="kofa-brand-link" href="#"
     26        tal:attributes="href python: view.url(layout.site)"
     27        tal:content="layout/getAppAcronym">ACRONYM
     28    </a>
     29    <!-- /Diazo element-->
     30
     31    <!-- Diazo element-->
     32    <ul class="nav kofa-navbar-left">
     33      <tal:primary_nav content="structure provider:primary_nav" />
     34    </ul>
     35    <!-- /Diazo element-->
     36
     37    <!-- Diazo element-->
     38    <ul class="nav secondary-nav kofa-navbar-right">
     39      <li tal:condition="not: layout/isAuthenticated">
     40      <a href="#" i18n:translate=""
     41          tal:attributes="href python: view.url(layout.site, 'login')">
     42          Login
     43      </a>
     44      </li>
     45      <li tal:condition="layout/isAuthenticated">
     46      <a href="#" i18n:translate=""
     47         tal:attributes="href python: view.url(layout.site, '@@contactadmin')">
     48         Contact
     49      </a>
     50      </li>
     51      <li tal:condition="layout/isAuthenticated">
     52      <a href="#" i18n:translate=""
     53         tal:attributes="href python: view.url(context, '@@logout')">
     54         Logout
     55      </a>
     56      </li>
     57    </ul>
     58    <!-- /Diazo element-->
     59
     60    <span tal:define="langs provider:languages"
     61          tal:condition="langs"
     62          class="language">
     63      <tal:languages tal:content="structure langs" /> |
     64    </span>
     65
     66    <!-- Diazo element-->
    5667    <ul class="breadcrumb">
    5768      <tal:breadcrumbs
    5869            tal:condition="python: layout.isAuthenticated()"
    5970            tal:content="structure provider:breadcrumbs" />
    60       <span
    61         tal:condition="layout/getStudentName" class="wfstatus">
    62           <span i18n:translate="">Student Id:</span>
    63           <span tal:replace="python:context.student.student_id">
    64             ID
    65           </span>&nbsp;&nbsp;
    66           <span i18n:translate="">State:</span>
    67           <span tal:replace="python:context.student.translated_state">
    68             STATE
    69           </span>
    70       </span>
    7171    </ul>
     72    <!-- /Diazo element-->
    7273
    73     <div class="container-fluid">
    74       <div class="sidebar">
    75         <div class="well">
    76           <div tal:condition="layout/getStudentName">
    77             <h5 tal:content="layout/getStudentName">STUDENTNAME</h5>
    78             <ul>
    79               <tal:left content="structure provider:left_studentmanage" />
    80             </ul>
    81           </div>
    82           <div tal:condition="layout/isAuthenticated">
    83             <h5 tal:content="layout/getUserTitle">USERNAME</h5>
    84             <ul>
    85               <tal:left content="structure provider:left_manage" />
    86             </ul>
    87           </div>
     74    <!-- Diazo element-->
     75    <span tal:condition="layout/getStudentName">
     76      <div class="wfstatus">
     77            <span tal:replace="python:context.student.student_id">
     78              Id
     79            </span>
     80            &bull;
     81            <span tal:replace="python:context.student.translated_state">
     82              State
     83            </span>
     84      </div>
     85    </span>
     86    <!-- /Diazo element-->
     87
     88    <!-- Diazo element-->
     89    <div class="sidebar well">
     90        <div tal:condition="layout/getStudentName">
     91          <div class="kofa-sidebar-title" tal:content="layout/getStudentName">STUDENTNAME</div>
     92          <ul class="nav">
     93            <tal:left content="structure provider:left_studentmanage" />
     94          </ul>
     95        </div>
     96        <div tal:condition="layout/isAuthenticated">
     97          <div class="kofa-sidebar-title" tal:content="layout/getUserTitle">USERNAME</div>
     98          <ul class="nav">
     99            <tal:left content="structure provider:left_manage" />
     100          </ul>
     101      </div>
     102    </div>
     103    <!-- /Diazo element-->
     104
     105    <!-- Diazo element-->
     106    <div class="kofa-content">
     107      <div class="actionbar" tal:condition="provider:actionbar">
     108        <tal:actionbar content="structure provider:actionbar" />&nbsp;
     109      </div>
     110      <div
     111          tal:define="message context/@@messages"
     112          tal:condition="python: len(message)>11">
     113        <div tal:content="structure message">
    88114        </div>
    89115      </div>
    90       <div class="span13 content">
    91         <div class="actionbar" tal:condition="provider:actionbar">
    92           <tal:actionbar content="structure provider:actionbar" />&nbsp;
    93         </div>
    94         <div
    95             tal:define="message context/@@messages"
    96             tal:condition="python: len(message)>11">
    97           <div tal:content="structure message">
    98           </div>
    99         </div>
    100         <div class="alert-message error"
    101           tal:define="status view/status|nothing"
    102           tal:condition="status">
    103           <span tal:content="view/status">
    104             FORM STATUS SUMMARY
    105           </span>:
    106           <ul id="alert-error" tal:condition="view/errors">
    107             <li tal:repeat="error view/error_views">
    108                <span tal:replace="structure error">Error Type</span>
    109             </li>
    110           </ul>
    111         </div>
    112         <div class="pull-right">
    113           <a i18n:translate="" href="#footer">Back to bottom</a>
    114         </div>
    115         <h1 class="kofa-content-label"
    116             tal:condition="view/label|nothing"
    117             tal:content="structure view/label">LABEL</h1>
    118         <div tal:content="structure view/content"> THE CONTENT
    119         </div>
    120         <div id="footer" class="footer">
    121           <div class="pull-right">
    122             <a i18n:translate="" href="#">Back to top</a>
    123           </div>
    124           <div i18n:translate="">
    125             Kofa - Student Management System
    126           </div>
    127           <div i18n:translate="">
    128             Copyright &copy; WAeUP Group 2008-2014
    129           </div>
    130         </div>
     116      <div class="alert alert-danger"
     117        tal:define="status view/status|nothing"
     118        tal:condition="status">
     119        <span tal:content="view/status">
     120          FORM STATUS SUMMARY
     121        </span>:
     122        <ul id="alert-error" tal:condition="view/errors">
     123          <li tal:repeat="error view/error_views">
     124             <span tal:replace="structure error">Error Type</span>
     125          </li>
     126        </ul>
    131127      </div>
     128      <div class="pull-right">
     129        <a i18n:translate="" href="#bottom">Back to bottom</a>
     130      </div>
     131      <h1 class="kofa-content-label"
     132          tal:condition="view/label|nothing"
     133          tal:content="structure view/label">LABEL</h1>
     134      <div tal:content="structure view/content"> THE CONTENT
     135      </div>
     136      <div id="bottom" class="pull-right">
     137        <a i18n:translate="" href="#">Back to top</a>
     138      </div>
     139      <br />
     140
    132141    </div>
     142    <!-- /Diazo element-->
     143
    133144  </body>
     145  <!-- /Diazo element-->
     146
    134147</html>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/studentsitelayout.pt

    r10900 r11254  
    1717            href python: view.url(layout.site, 'feed.rss')" />
    1818  </head>
    19   <body>
    20     <div class="topbar" data-scrollspy="scrollspy" >
    21       <div class="topbar-inner">
    22         <div  class="container">
    23           <a class="brand" href="#"
    24               tal:attributes="href python: view.url(layout.site)"
    25               tal:content="layout/getAppAcronym">ACRONYM</a>
    26           <ul class="nav kofa-navbar-left">
    27               <tal:primary_nav content="structure provider:primary_nav" />
    28               <tal:primary_nav content="structure provider:primary_nav_student" />
    29           </ul>
    30           <ul class="nav secondary-nav kofa-navbar-right">
    31             <li tal:condition="not: layout/isAuthenticated">
    32             <a href="#" i18n:translate=""
    33                tal:attributes="href python: view.url(layout.site, 'login')">
    34                 Login
    35             </a>
    36             </li>
    37             <li tal:condition="layout/isAuthenticated">
    38             <a href="#" i18n:translate=""
    39                tal:attributes="href python: view.url(layout.site, '@@contactadmin')">
    40                 Contact
    41             </a>
    42             </li>
    43             <li tal:condition="layout/isAuthenticated">
    44             <a href="#" i18n:translate=""
    45                tal:attributes="href python: view.url(context, '@@logout')">
    46                Logout
    47             </a>
    48             </li>
    49           </ul>
    50           <span class="language"
    51                 tal:define="langs provider:languages"
    52                 tal:condition="langs">
    53             <tal:languages
    54                   tal:content="structure langs" /> |
    55           </span>
    56         </div>
    57       </div>
    58     </div>
    5919
    60     <div class="container">
    61       <ul class="student-info-bar" tal:condition="layout/isAuthenticated">
    62         <tal:breadcrumbs
    63               tal:condition="python: layout.isAuthenticated()"
    64               tal:content="structure provider:breadcrumbs" />
    65         <span tal:condition="layout/getStudentName" class="wfstatus">
     20  <!-- Diazo element-->
     21  <body class="kofa-body">
     22
     23    <!-- Diazo element-->
     24    <a class="kofa-brand-link" href="#"
     25        tal:attributes="href python: view.url(layout.site)"
     26        tal:content="layout/getAppAcronym">ACRONYM</a>
     27    <!-- /Diazo element-->
     28
     29    <!-- Diazo element-->
     30    <ul class="nav kofa-navbar-left">
     31        <tal:primary_nav content="structure provider:primary_nav" />
     32        <tal:primary_nav content="structure provider:primary_nav_student" />
     33    </ul>
     34    <!-- /Diazo element-->
     35
     36    <!-- Diazo element-->
     37    <ul class="nav secondary-nav kofa-navbar-right">
     38      <li tal:condition="not: layout/isAuthenticated">
     39      <a href="#" i18n:translate=""
     40         tal:attributes="href python: view.url(layout.site, 'login')">
     41          Login
     42      </a>
     43      </li>
     44      <li tal:condition="layout/isAuthenticated">
     45      <a href="#" i18n:translate=""
     46         tal:attributes="href python: view.url(layout.site, '@@contactadmin')">
     47          Contact
     48      </a>
     49      </li>
     50      <li tal:condition="layout/isAuthenticated">
     51      <a href="#" i18n:translate=""
     52         tal:attributes="href python: view.url(context, '@@logout')">
     53         Logout
     54      </a>
     55      </li>
     56    </ul>
     57    <!-- Diazo element-->
     58
     59    <span tal:define="langs provider:languages"
     60          tal:condition="langs"
     61          class="language">
     62      <tal:languages tal:content="structure langs" /> |
     63    </span>
     64
     65    <!-- Diazo element-->
     66    <ul class="breadcrumb" tal:condition="layout/isAuthenticated">
     67      <tal:breadcrumbs
     68            tal:condition="python: layout.isAuthenticated()"
     69            tal:content="structure provider:breadcrumbs" />
     70    </ul>
     71    <!-- /Diazo element-->
     72
     73    <!-- Diazo element-->
     74    <span tal:condition="layout/getStudentName">
     75      <div class="wfstatus">
    6676            <span tal:replace="python:context.student.student_id">
    6777              Id
    6878            </span>
    69             |
     79            &bull;
    7080            <span tal:replace="python:context.student.translated_state">
    7181              State
    7282            </span>
    73         </span>
    74       </ul>
    75       <div class="content">
    76         <div class="actionbar" tal:condition="provider:actionbar">
    77           <tal:actionbar content="structure provider:actionbar" />&nbsp;
    78         </div>
    79         <div tal:define="message context/@@messages"
    80              tal:condition="python: len(message)>11">
    81           <div tal:content="structure message">
    82           </div>
    83         </div>
    84         <div class="alert-message error"
    85           tal:define="status view/status|nothing"
    86           tal:condition="status">
    87           <span tal:content="view/status">
    88             FORM STATUS SUMMARY
    89           </span>:
    90           <ul id="alert-error" tal:condition="view/errors">
    91             <li tal:repeat="error view/error_views">
    92                <span tal:replace="structure error">Error Type</span>
    93             </li>
    94           </ul>
    95         </div>
    96         <div class="pull-right">
    97           <a i18n:translate="" href="#footer">Back to bottom</a>
    98         </div>
    99         <h1 class="kofa-content-label"
    100             tal:condition="view/label|nothing"
    101             tal:content="structure view/label">Label</h1>
    102         <div tal:content="structure view/content">
    103           THE CONTENT
    104         </div>
    105         <div id="footer" class="footer">
    106           <div class="pull-right">
    107             <a i18n:translate="" href="#">Back to top</a>
    108           </div>
    109           <div i18n:translate="">
    110             Kofa - Student Management System
    111           </div>
    112           <div i18n:translate="">
    113             Copyright &copy; WAeUP Group 2008-2014
    114           </div>
     83      </div>
     84    </span>
     85    <!-- /Diazo element-->
     86
     87    <!-- Diazo element-->
     88    <div class="kofa-content">
     89      <div class="actionbar" tal:condition="provider:actionbar">
     90        <tal:actionbar content="structure provider:actionbar" />&nbsp;
     91      </div>
     92      <div tal:define="message context/@@messages"
     93           tal:condition="python: len(message)>11">
     94        <div tal:content="structure message">
    11595        </div>
    11696      </div>
     97      <div class="alert alert-danger"
     98        tal:define="status view/status|nothing"
     99        tal:condition="status">
     100        <span tal:content="view/status">
     101          FORM STATUS SUMMARY
     102        </span>:
     103        <ul id="alert-error" tal:condition="view/errors">
     104          <li tal:repeat="error view/error_views">
     105             <span tal:replace="structure error">Error Type</span>
     106          </li>
     107        </ul>
     108      </div>
     109      <div class="pull-right">
     110        <a i18n:translate="" href="#bottom">Back to bottom</a>
     111      </div>
     112      <h1 class="kofa-content-label"
     113          tal:condition="view/label|nothing"
     114          tal:content="structure view/label">Label</h1>
     115      <div tal:content="structure view/content">
     116        THE CONTENT
     117      </div>
     118      <div id="bottom" class="pull-right">
     119        <a i18n:translate="" href="#">Back to top</a>
     120      </div>
     121      <br />
    117122    </div>
     123    <!-- /Diazo element-->
     124
    118125  </body>
     126  <!-- /Diazo element-->
     127
    119128</html>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/usereditformpage.pt

    r8486 r11254  
    99        <td i18n:translate="" class="fieldname">Password:</td>
    1010        <td>
    11           <input name="password" type="password"  />
     11          <input class="form-control" name="password" type="password"  />
    1212        </td>
    1313      </tr>
     
    1515        <td i18n:translate="" class="fieldname">Retype Password:</td>
    1616        <td>
    17           <input name="control_password" type="password" />
     17          <input class="form-control" name="control_password" type="password" />
    1818        </td>
    1919      </tr>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/userscontainerpage.pt

    r9495 r11254  
    1 <table i18n:domain="waeup.kofa" class="display dataTable">
     1<table i18n:domain="waeup.kofa" class="kofa-data-table dataTable">
    22  <thead>
    33    <tr>
    4       <th i18n:translate="">User Id</th>
     4      <th i18n:translate="">Id</th>
    55      <th i18n:translate="">Name</th>
    66      <th i18n:translate="">Portal Roles</th>
     
    1919          <input type="hidden" name="userid"
    2020           tal:attributes="value account/name"/>
    21             <input class="btn" type="submit" name="manage"
     21            <input class="btn btn-sm btn-primary" type="submit" name="manage"
    2222              tal:attributes="value view/manage_button" />
    23             <input class="btn" type="submit" name="delete"
     23            <input class="btn btn-sm btn-default" type="submit" name="delete"
    2424              tal:attributes="value view/delete_button" />
    2525        </form>
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/tests/test_browser.py

    r10676 r11254  
    374374        self.browser.open(self.datacenter_path)
    375375        self.browser.getLink("Upload data").click()
    376         self.assertTrue(
    377             '<a href="skeleton?name=facultyprocessor">Download</a>'
    378             in self.browser.contents)
    379376        self.browser.getLink(url='skeleton?name=facultyprocessor').click()
    380377        self.assertEqual(self.browser.headers['Status'], '200 Ok')
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/viewlets.py

    r10782 r11254  
    124124        """Get the icon URL.
    125125        """
    126         static = self.view.static
    127         if static is None or static.get(self.icon, None) is None:
    128             # In derived classes defined in other modules/packages
    129             # than w.k.browser, ``static`` might refer to a static dir
    130             # local to the derived class' module. As we often like to
    131             # get the icons from here
    132             # (i.e. waeup.kofa.browser/static), we set the directory
    133             # resource appropiately.
    134             #
    135             # XXX: The hardcoding of 'w.k.browser' should be replaced
    136             #      by something smarter.
    137             #
    138             # TODO: notes in here should go to general documentation.
    139             static = queryAdapter(
    140                 self.request, Interface, name='waeup.kofa.browser')
    141         return static[self.icon]()
     126        return '/static/img/%s' % self.icon
    142127
    143128    @property
Note: See TracChangeset for help on using the changeset viewer.