Skip to content
Browse files

Import of rev #380 from SVN to github

  • Loading branch information...
1 parent cce2974 commit 5c83d82bc2187e27b1b62b25d66d8aca1764b3a0 @macropin macropin committed Jan 6, 2012
Showing with 21,831 additions and 0 deletions.
  1. +25 −0 INSTALL
  2. +27 −0 LICENSE
  3. +33 −0 bootstrap.py
  4. +30 −0 deployment/apache.conf
  5. +26 −0 deployment/django.wsgi
  6. +35 −0 deployment/lighttpd.conf
  7. +154 −0 deployment/manage-fcgi.sh
  8. +21 −0 deployment/pip-req.txt
  9. +281 −0 media/blue_theme/tms/css/base.css
  10. +142 −0 media/blue_theme/tms/css/jquery.selectBox.css
  11. +52 −0 media/blue_theme/tms/css/reset.css
  12. +14 −0 media/blue_theme/tms/css/site_tabs.css
  13. BIN media/blue_theme/tms/images/bg-header.gif
  14. BIN media/blue_theme/tms/images/bg-menu-alert.png
  15. BIN media/blue_theme/tms/images/bg-top-menu-active.png
  16. BIN media/blue_theme/tms/images/bg-top-menu.png
  17. BIN media/blue_theme/tms/images/bg.png
  18. BIN media/blue_theme/tms/images/btn-current-page.png
  19. BIN media/blue_theme/tms/images/btn-dropdown.gif
  20. BIN media/blue_theme/tms/images/btn-page.png
  21. BIN media/blue_theme/tms/images/btn-striped-112.png
  22. BIN media/blue_theme/tms/images/btn-striped-222.png
  23. BIN media/blue_theme/tms/images/favicon.ico
  24. BIN media/blue_theme/tms/images/ico-calendar.jpg
  25. BIN media/blue_theme/tms/images/ico-check-16x14.png
  26. BIN media/blue_theme/tms/images/ico-cross-16x16.gif
  27. BIN media/blue_theme/tms/images/ico-delete-12x12.gif
  28. BIN media/blue_theme/tms/images/ico-edit-14x14.gif
  29. BIN media/blue_theme/tms/images/ico-help-16x16.gif
  30. BIN media/blue_theme/tms/images/jquery.selectBox-arrow.gif
  31. BIN media/blue_theme/tms/images/logo-expenses-sq.png
  32. BIN media/blue_theme/tms/images/logo-expenses.png
  33. BIN media/blue_theme/tms/images/logo-login.png
  34. BIN media/blue_theme/tms/images/logo-reports-sq.png
  35. BIN media/blue_theme/tms/images/logo-reports.png
  36. BIN media/blue_theme/tms/images/logo-timesheets-sq.png
  37. BIN media/blue_theme/tms/images/logo-timesheets.png
  38. BIN media/blue_theme/tms/images/logo.png
  39. +191 −0 media/blue_theme/tms/js/AJAX_expenses.js
  40. +224 −0 media/blue_theme/tms/js/AJAX_timesheets.js
  41. +14 −0 media/blue_theme/tms/js/ie-png.js
  42. BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-anim_basic_16x16.gif
  43. BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png
  44. BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-bg_flat_75_ffffff_40x100.png
  45. BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png
  46. BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-bg_glass_65_ffffff_1x400.png
  47. BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-bg_glass_75_dadada_1x400.png
  48. BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png
  49. BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-bg_glass_95_fef1ec_1x400.png
  50. BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png
  51. BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-icons_222222_256x240.png
  52. BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-icons_2e83ff_256x240.png
  53. BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-icons_454545_256x240.png
  54. BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-icons_888888_256x240.png
  55. BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-icons_cd0a0a_256x240.png
  56. +12 −0 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.accordion.css
  57. +2 −0 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.all.css
  58. +47 −0 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.autocomplete.css
  59. +11 −0 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.base.css
  60. +35 −0 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.button.css
  61. +37 −0 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.core.css
  62. +61 −0 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.datepicker.css
  63. +13 −0 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.dialog.css
  64. +4 −0 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.progressbar.css
  65. +13 −0 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.resizable.css
  66. +3 −0 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.selectable.css
  67. +17 −0 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.slider.css
  68. +11 −0 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.tabs.css
  69. +247 −0 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.theme.css
  70. BIN media/blue_theme/tms/js/jquery-themes/ui-lightness/images/ui-anim_basic_16x16.gif
  71. BIN media/blue_theme/tms/js/jquery-themes/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
  72. BIN media/blue_theme/tms/js/jquery-themes/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
  73. BIN media/blue_theme/tms/js/jquery-themes/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
  74. BIN media/blue_theme/tms/js/jquery-themes/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
  75. BIN media/blue_theme/tms/js/jquery-themes/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
  76. BIN media/blue_theme/tms/js/jquery-themes/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
  77. BIN media/blue_theme/tms/js/jquery-themes/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
  78. BIN media/blue_theme/tms/js/jquery-themes/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
  79. BIN media/blue_theme/tms/js/jquery-themes/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
  80. BIN media/blue_theme/tms/js/jquery-themes/ui-lightness/images/ui-icons_222222_256x240.png
  81. BIN media/blue_theme/tms/js/jquery-themes/ui-lightness/images/ui-icons_228ef1_256x240.png
  82. BIN media/blue_theme/tms/js/jquery-themes/ui-lightness/images/ui-icons_ef8c08_256x240.png
  83. BIN media/blue_theme/tms/js/jquery-themes/ui-lightness/images/ui-icons_ffd27a_256x240.png
  84. BIN media/blue_theme/tms/js/jquery-themes/ui-lightness/images/ui-icons_ffffff_256x240.png
  85. +489 −0 media/blue_theme/tms/js/jquery-themes/ui-lightness/jquery-ui-1.8.2.custom.css
  86. +12 −0 media/blue_theme/tms/js/jquery-themes/ui-lightness/jquery.ui.accordion.css
  87. +2 −0 media/blue_theme/tms/js/jquery-themes/ui-lightness/jquery.ui.all.css
  88. +39 −0 media/blue_theme/tms/js/jquery-themes/ui-lightness/jquery.ui.autocomplete.css
  89. +11 −0 media/blue_theme/tms/js/jquery-themes/ui-lightness/jquery.ui.base.css
  90. +35 −0 media/blue_theme/tms/js/jquery-themes/ui-lightness/jquery.ui.button.css
  91. +37 −0 media/blue_theme/tms/js/jquery-themes/ui-lightness/jquery.ui.core.css
  92. +61 −0 media/blue_theme/tms/js/jquery-themes/ui-lightness/jquery.ui.datepicker.css
  93. +13 −0 media/blue_theme/tms/js/jquery-themes/ui-lightness/jquery.ui.dialog.css
  94. +4 −0 media/blue_theme/tms/js/jquery-themes/ui-lightness/jquery.ui.progressbar.css
  95. +13 −0 media/blue_theme/tms/js/jquery-themes/ui-lightness/jquery.ui.resizable.css
  96. +3 −0 media/blue_theme/tms/js/jquery-themes/ui-lightness/jquery.ui.selectable.css
  97. +17 −0 media/blue_theme/tms/js/jquery-themes/ui-lightness/jquery.ui.slider.css
  98. +11 −0 media/blue_theme/tms/js/jquery-themes/ui-lightness/jquery.ui.tabs.css
  99. +249 −0 media/blue_theme/tms/js/jquery-themes/ui-lightness/jquery.ui.theme.css
  100. +1,176 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery-ui-i18n.js
  101. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-af.js
  102. +24 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-ar.js
  103. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-az.js
  104. +24 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-bg.js
  105. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-bs.js
  106. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-ca.js
  107. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-cs.js
  108. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-da.js
  109. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-de.js
  110. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-el.js
  111. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-en-GB.js
  112. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-eo.js
  113. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-es.js
  114. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-et.js
  115. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-eu.js
  116. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-fa.js
  117. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-fi.js
  118. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-fo.js
  119. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-fr-CH.js
  120. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-fr.js
  121. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-he.js
  122. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-hr.js
  123. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-hu.js
  124. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-hy.js
  125. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-id.js
  126. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-is.js
  127. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-it.js
  128. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-ja.js
  129. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-ko.js
  130. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-lt.js
  131. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-lv.js
  132. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-ms.js
  133. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-nl.js
  134. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-no.js
  135. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-pl.js
  136. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-pt-BR.js
  137. +26 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-ro.js
  138. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-ru.js
  139. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-sk.js
  140. +24 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-sl.js
  141. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-sq.js
  142. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-sr-SR.js
  143. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-sr.js
  144. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-sv.js
  145. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-ta.js
  146. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-th.js
  147. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-tr.js
  148. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-uk.js
  149. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-vi.js
  150. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-zh-CN.js
  151. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-zh-HK.js
  152. +23 −0 media/blue_theme/tms/js/jquery-ui/i18n/jquery.ui.datepicker-zh-TW.js
  153. +11,015 −0 media/blue_theme/tms/js/jquery-ui/jquery-ui-1.8.2.custom.js
  154. +49 −0 media/blue_theme/tms/js/jquery-ui/jquery.effects.blind.js
  155. +78 −0 media/blue_theme/tms/js/jquery-ui/jquery.effects.bounce.js
  156. +54 −0 media/blue_theme/tms/js/jquery-ui/jquery.effects.clip.js
  157. +714 −0 media/blue_theme/tms/js/jquery-ui/jquery.effects.core.js
  158. +50 −0 media/blue_theme/tms/js/jquery-ui/jquery.effects.drop.js
  159. +79 −0 media/blue_theme/tms/js/jquery-ui/jquery.effects.explode.js
  160. +56 −0 media/blue_theme/tms/js/jquery-ui/jquery.effects.fold.js
  161. +50 −0 media/blue_theme/tms/js/jquery-ui/jquery.effects.highlight.js
  162. +51 −0 media/blue_theme/tms/js/jquery-ui/jquery.effects.pulsate.js
  163. +178 −0 media/blue_theme/tms/js/jquery-ui/jquery.effects.scale.js
  164. +57 −0 media/blue_theme/tms/js/jquery-ui/jquery.effects.shake.js
  165. +50 −0 media/blue_theme/tms/js/jquery-ui/jquery.effects.slide.js
  166. +45 −0 media/blue_theme/tms/js/jquery-ui/jquery.effects.transfer.js
  167. +504 −0 media/blue_theme/tms/js/jquery-ui/jquery.ui.accordion.js
  168. +511 −0 media/blue_theme/tms/js/jquery-ui/jquery.ui.autocomplete.js
  169. +365 −0 media/blue_theme/tms/js/jquery-ui/jquery.ui.button.js
  170. +216 −0 media/blue_theme/tms/js/jquery-ui/jquery.ui.core.js
  171. +1,730 −0 media/blue_theme/tms/js/jquery-ui/jquery.ui.datepicker.js
  172. +823 −0 media/blue_theme/tms/js/jquery-ui/jquery.ui.dialog.js
Sorry, we could not display the entire diff because too many files (315) changed.
View
25 INSTALL
@@ -0,0 +1,25 @@
+### This is how we setup a dev environment
+
+# mkvirtualenv --no-site-packages tms
+# cdvirtualenv
+# git clone (repo path)
+# ./bootstrap.py
+# ./src/tms/manage.py collectstatic
+
+### This is how we deploy on CentOS 5.X w/ lighttpd
+
+# su - wwwpub
+# cd /srv/www
+# mkvirtualenv --no-site-packages --python /usr/bin/python2.6 tms
+# workon tms
+# cdvirtualenv
+# git clone (repo path)
+# ./bootstrap.py
+# ./src/tms/manage.py collectstatic
+
+## Then we use the lighttpd config in ./deployment to setup lighttpd and manage the flup/fcgi processes
+
+# ln -s /srv/www/tms/deployment/lighttpd.conf /etc/lighttpd/conf.d/tms.conf
+
+Add something like the following to the crontab for your web / fcgi user:
+@reboot /srv/www/tms/deployment/manage-fcgi.sh restart settings_prod tms
View
27 LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2010-2012, Adlibre Pty Ltd.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. Neither the name of Adlibre Pty Ltd nor the names of its contributors may be used
+ to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
View
33 bootstrap.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+
+# Bootstrap and setup a virtualenv with the specified requirements.txt
+
+import os
+import sys
+import subprocess
+from optparse import OptionParser
+
+
+usage = """usage: %prog [options]"""
+parser = OptionParser(usage=usage)
+parser.add_option("-c", "--clear", dest="clear", action="store_true",
+ help="clear out existing virtualenv")
+
+
+def main():
+ if "VIRTUAL_ENV" not in os.environ:
+ sys.stderr.write("$VIRTUAL_ENV not found.\n\n")
+ parser.print_usage()
+ sys.exit(-1)
+ (options, pos_args) = parser.parse_args()
+ virtualenv = os.environ["VIRTUAL_ENV"]
+ if options.clear:
+ subprocess.call(["virtualenv", "--clear", "--no-site-packages", virtualenv])
+ file_path = os.path.dirname(__file__)
+ subprocess.call(["pip", "install", "-E", virtualenv, "--requirement",
+ os.path.join(file_path, "deployment/pip-req.txt")])
+
+
+if __name__ == "__main__":
+ main()
+ sys.exit(0)
View
30 deployment/apache.conf
@@ -0,0 +1,30 @@
+<VirtualHost *:80>
+ ServerAdmin web-admin@%(website)s
+
+ ServerName %(website)s
+ ServerAlias www.%(website)s
+
+ WSGIScriptAlias / %(code_root)s/deploy/%(environment)s.wsgi/
+
+ <Location "/">
+ Order Allow,Deny
+ Allow from all
+ </Location>
+
+ <Location "/site_media/static">
+ SetHandler None
+ </Location>
+
+ Alias /site_media/static %(code_root)s/site_media/static
+
+ <Location "/site_media/media">
+ SetHandler None
+ </Location>
+
+ Alias /site_media/media %(code_root)s/site_media/media
+
+ ErrorLog %(home)s/log/error.log
+ LogLevel info
+ CustomLog %(home)s/log/access.log combined
+</VirtualHost>
+
View
26 deployment/django.wsgi
@@ -0,0 +1,26 @@
+# django.wsgi is configured to live in projects/tms/deployment.
+
+import os
+import sys
+import site
+
+# redirect sys.stdout to sys.stderr for bad libraries like geopy that uses
+# print statements for optional import exceptions.
+sys.stdout = sys.stderr
+
+from os.path import abspath, dirname, join
+from site import addsitedir
+
+sys.path.insert(0, abspath(join(dirname(__file__), "../../")))
+
+# the site module has a handy function addsitedir, which not only adds
+# the directory to the pythonpath, but also processes any .pth files it finds
+site.addsitedir(join(abspath(join(dirname(__file__), "../../env")), "lib/python2.6/site-packages/"))
+
+from django.conf import settings
+os.environ["DJANGO_SETTINGS_MODULE"] = "adlibre_tms.%(settings)s"
+
+sys.path.insert(0, join(settings.PROJECT_ROOT, "apps"))
+
+from django.core.handlers.wsgi import WSGIHandler
+application = WSGIHandler()
View
35 deployment/lighttpd.conf
@@ -0,0 +1,35 @@
+#
+# Lighttpd Config File for FCGI deployment
+#
+#
+# Requires mod_rewrite, mod_alias, mod_fastcgi to be enabled
+# Requires the server to have r/w access to the socket file or run
+# as the wwwpub user
+#
+
+$HTTP["host"] == "tms.in.adlibre.net" {
+
+server.document-root = "/srv/www/tms"
+
+fastcgi.server = (
+ "/tms.fcgi" => (
+ "main" => (
+ "socket" => "/srv/www/tms/tms.sock",
+ "check-local" => "disable",
+ )
+ ),
+)
+
+alias.url = (
+ "/media" => "/srv/www/tms/media/",
+ "/static" => "/srv/www/tms/static/",
+)
+
+url.rewrite-once = (
+ "^(/media.*)$" => "$1",
+ "^(/static.*)$" => "$1",
+ "^/favicon\.ico$" => "/media/favicon.ico",
+ "^(/.*)$" => "/tms.fcgi$1",
+)
+
+}
View
154 deployment/manage-fcgi.sh
@@ -0,0 +1,154 @@
+#!/bin/bash
+#
+# Manages the startup and shutdown of this projects processes
+# as well as runing various tasks.
+#
+# Uses UNIX sockets for FCGI
+#
+
+# Project Specific Config
+PROJNAME='adlibre_tms'
+WEB_USER='wwwpub'
+
+MAXSPARE=1
+MINSPARE=1
+MAXCHILDREN=5
+
+CWD=$(cd ${0%/*} && pwd -P)
+PROJDIR=$(cd $CWD/../ && pwd -P) # Root of our project
+SRCDIR=$(cd $CWD/../src/${PROJNAME}/ && pwd -P) # Path to manage.py
+BINDIR=$(cd $CWD/../bin/ && pwd -P) # Path to activate / virtualenv
+
+############################################
+
+ACTION=$1
+SETTINGS=${2-settings}
+SOCKET="$PROJDIR/"${3-$(echo "${PROJNAME}")}".sock"
+PIDBASE="$PROJDIR/"${3-$(echo "${PROJNAME}")}
+WPIDFILE="${PIDBASE}.wsgi.pid"
+CPIDFILE="${PIDBASE}.celeryd.pid"
+
+
+# Functions
+function startit {
+ echo -n "Starting ${PROJNAME} with ${SETTINGS}: "
+
+ if [ -f "${WPIDFILE}" ]; then
+ echo "Error: PIDFILE ${WPIDFILE} exists. Already running?"
+ RC=128
+ else
+ . ${BINDIR}/activate
+ python ${SRCDIR}/manage.py runfcgi method=threaded minspare=${MINSPARE} maxspare=${MAXSPARE} maxchildren=${MAXCHILDREN} socket=$SOCKET pidfile=${WPIDFILE} --settings=${SETTINGS}
+ RC=$?
+ echo "Started."
+ fi
+}
+
+function stopit {
+ echo -n "Stopping ${PROJNAME}: "
+
+ if [ -f "${WPIDFILE}" ]; then
+ kill `cat -- ${WPIDFILE}`
+ RC=$?
+ echo "Process(s) Terminated."
+ rm -f -- ${WPIDFILE}
+ else
+ echo "PIDFILE not found. Killing likely processes."
+ kill `pgrep -f "python ${SRCDIR}/manage.py runfcgi method=threaded minspare=${MINSPARE} maxspare=${MAXSPARE} maxchildren=${MAXCHILDREN} socket=$SOCKET pidfile=${WPIDFILE} --settings=${SETTINGS}"`
+ RC=$?
+ echo "Process(s) Terminated."
+ fi
+}
+
+function status {
+ echo "I don't know how to do that yet"
+}
+
+function startCelery {
+ echo -n "Starting CeleryD ${PROJNAME} with ${SETTINGS}: "
+
+ if [ -f "${CPIDFILE}" ]; then
+ echo "Error: PIDFILE ${CPIDFILE} exists. Already running?"
+ RC=128
+ else
+ . ${BINDIR}/activate
+ python ${SRCDIR}/manage.py celeryd_detach --pidfile=${CPIDFILE} --settings=${SETTINGS}
+ RC=$?
+ echo "Started."
+ fi
+}
+
+function stopCelery {
+ echo -n "Stopping CeleryD ${PROJNAME}: "
+
+ if [ -f "${CPIDFILE}" ]; then
+ kill `cat -- ${CPIDFILE}`
+ RC=$?
+ echo "Process(s) Terminated."
+ rm -f -- ${CPIDFILE}
+ else
+ echo "PIDFILE not found. Killing likely processes."
+ kill `pgrep -f "python ${SRCDIR}/manage.py celeryd_detach pidfile=${CPIDFILE} --settings=${SETTINGS}"`
+ RC=$?
+ echo "Process(s) Terminated."
+ fi
+}
+
+function rebuildIndex {
+ echo -n "Rebuilding ${PROJNAME} search index with ${SETTINGS}: "
+ . ${BINDIR}/activate
+ python ${SRCDIR}/manage.py update_index --remove --settings=${SETTINGS}
+ RC=$?
+ echo "Done."
+}
+
+function showUsage {
+ echo "Usage: manage-fcgi.sh {start|stop|restart|status|rebuildindex|startCelery|stopCelery|restartCelery} <settings_file> <sitename>"
+}
+
+# check that we have required parameters
+if [ "$ACTION" == "" ]; then
+ showUsage
+ exit 128
+fi
+
+# Sanity check username = $WEB_USER else die with error
+if [ ! "`whoami`" == "$WEB_USER" ]; then
+ echo "Error: Must run as ${WEB_USER}."
+ exit 128
+fi
+
+# See how we were called.
+case "$ACTION" in
+ start)
+ startit
+ ;;
+ stop)
+ stopit
+ ;;
+ startCelery)
+ startCelery
+ ;;
+ stopCelery)
+ stopCelery
+ ;;
+ restartCelery)
+ stopCelery
+ startCelery
+ ;;
+ status)
+ status
+ ;;
+ rebuildindex)
+ rebuildIndex
+ ;;
+ restart)
+ stopit
+ startit
+ ;;
+ *)
+ showUsage
+ ;;
+esac
+
+exit $RC
View
21 deployment/pip-req.txt
@@ -0,0 +1,21 @@
+BeautifulSoup==3.2.0
+Django==1.3.1
+#MySQL-python==1.2.3
+PIL==1.1.7
+distribute==0.6.15
+django-any==0.2.0
+django-pagination==1.0.7
+django-staticfiles==1.0
+django-test-utils==0.3
+django-uni-form==0.7.0
+docutils==0.7
+flup==1.0.3.dev-20110405
+#-e git+http://github.com/montylounge/django-google-analytics.git@6b7aa6dba851dd59dca0a20bc7eefe70754384e4#egg=google_analytics-dev
+mock==0.7.0
+py-dom-xpath==0.1
+python-dateutil==2.0
+template-utils==0.4p2
+wsgiref==0.1.2
+xml-models==0.5.1
+django-appconf==0.4
+django-compressor==1.1.1
View
281 media/blue_theme/tms/css/base.css
@@ -0,0 +1,281 @@
+/**********************************************************************************************
+
+ Title: CSS
+ Author: Anastasia Chuprasova
+ Date: 2010
+
+***********************************************************************************************
+
+ 1. General Elements
+
+ 2. Layout
+ 2.1 Header
+ 2.2 Content
+ 2.3 Footer
+
+ 3. Miscellaneous
+
+***********************************************************************************************/
+
+
+/* 1. General Elements
+-----------------------------------------------------------------------------------------------
+===============================================================================================*/
+ html{font-size:100.01%;}
+
+ body {
+ font-family: Arial, Helvetica, "Helvetica Neue", sans-serif;
+ font-size: 62.5%;
+ line-height: 1.5;
+ text-align: center;
+ color:#353535;
+ background:#e6e6e6 url(../images/bg.png) 0 0 repeat;
+ }
+
+ hr {display: none;}
+
+ strong {font-weight: bold;}
+
+ p{margin-bottom:15px;}
+ ul, ol{margin:10px 0 15px 20px;}
+ h2, h3, h4, h5{margin-bottom:10px; color:#353535;}
+ h1{font-size:2.5em;}
+ h2{font-size:2.1em;}
+ h3{font-size:1.7em; color:#C60;}
+ h4{margin-top:20px; font-size:1.5em;}
+
+ em {font-style: italic;}
+
+ address {font-style: normal;}
+
+ input, textarea, select {font: 1em Arial, Helvetica, sans-serif;}
+
+ a:link {color:#3B7DC9; text-decoration: underline; outline: none;}
+ a:visited {color:#3B7DC9; text-decoration: underline; outline: none;}
+ a:hover {text-decoration:none;}
+ a:active {color:#3B7DC9; text-decoration: underline; outline: none;}
+
+/* 2. LAYOUT
+-----------------------------------------------------------------------------------------------
+===============================================================================================*/
+
+ .wrapper {
+ width:960px;
+ margin: 0 auto;
+ text-align: left;
+ font-size: 1.2em;
+ }
+
+ .float-wrapper{overflow:hidden; _zoom:1}
+ .clearall{height:0; clear:both; overflow:hidden;}
+
+ #header, #content, #footer{min-width:960px;}
+
+/* 2.1 HEADER
+------------------------------------------------------------------------------------------------ */
+ #header{background:transparent url(../images/bg-header.gif) 0 0 repeat-x;}
+ #header .wrapper{overflow:hidden;}
+
+ /* Logotype */
+ #logo{float:right; margin:27px 20px 0 0; width:208px; _display:inline;}
+ #logo strong {display:block; width:208px; height:40px; overflow:hidden; text-indent:-9999px; background:transparent url(../images/logo.png) 0 0 no-repeat;}
+ #logo a{display:block; height:100%;}
+
+ /* Top menu */
+ #header .menu{
+ position:relative;
+ float:right;
+ margin:32px 60px 0 0;
+ height:29px;
+ line-height:29px;
+ background:#e9e9e9 url(../images/bg-top-menu.png) 0 0 repeat-x;
+ border:1px solid #d1d1d1;
+ box-shadow: 0 1px 3px #D6D6D6;
+ -moz-box-shadow: 0 1px 3px #D6D6D6;
+ -webkit-box-shadow: 0 1px 3px #D6D6D6;
+ _width:380px;
+ }
+ #header .menu ul{margin:0;}
+ #header .menu ul li{position:relative; float:left;}
+ #header .menu ul li a{_float:left; display:block; padding:0 15px; color:#55595F; font-size:1.2em; font-weight:bold; text-shadow:0 1px 1px #FFF; text-decoration:none; border-right:1px solid #d1d1d1; zoom:1;}
+ #header .menu ul li.active a, #header .menu ul li a:hover{background:transparent url(../images/bg-top-menu-active.png) 0 0 repeat-x; border-color:#bababa;}
+ #header .menu ul li.last a{border:none;}
+ #header .menu .alert{position:absolute; top:-17px; right:5%; display:block; width:23px; height:24px; text-align:center; color:#FFF; text-shadow:0 1px 1px #656565; font-weight:bold; background:transparent url(../images/bg-menu-alert.png) 0 0 no-repeat; line-height:180%;}
+ #logged{text-align:center; font-size:.95em; color:#8F8F8F;}
+ #logged strong{margin-right:7px;}
+ #logged a{margin-left:7px; font-weight:bold; color:#8F8F8F;}
+
+ /* Page tab */
+ #page-tab{float:left; padding-top:16px; margin-top:27px; width:240px; background-color:#FFF; overflow:hidden;}
+ #page-title{margin-left:20px; line-height:130%;}
+ #page-title a{margin-left:5px;}
+ #page-title img{margin-top:5px; vertical-align:text-top;}
+ #page-title .note{display:block; font-size:12px; font-weight:normal; line-height:125%;}
+
+/* 2.2 CONTENT
+------------------------------------------------------------------------------------------------ */
+ #content{}
+
+ /* Control panel */
+ #control-panel{float:left; padding:10px 20px 20px; width:920px; border-top:8px solid #fff; background-color:#E8F2FB;}
+ #control-panel .form{position:relative; float:left; width:380px; _display:inline;}
+ #control-panel .panel{float:right; width:535px; line-height:0;}
+ #control-panel a{#text-decoration:underline;}
+ #control-panel input,
+ #control-panel textarea,
+ #control-panel select{font-size:1em; color:#3b3b3b;}
+ #control-panel label{color:#92979B; #vertical-align:super;}
+ #control-panel .line{margin:5px 0;}
+ #control-panel .dates{}
+ #control-panel .dates .selectbox{margin-right:3px;}
+ #control-panel .dates img{vertical-align:top;}
+ #control-panel .label{display:block; color:#92979B;}
+ #control-panel .select{padding:5px; width:345px;}
+ #control-panel .input{width:339px;}
+ #control-panel .selectbox{width:316px;}
+ #control-panel .day .selectbox{width:40px;}
+ #control-panel .year .selectbox{width:94px;}
+ #control-panel .hour .selectbox{width:15px;}
+ #control-panel a.now-link{margin-left:3px; font-weight:bold; #vertical-align:super;}
+ #control-panel .controls{margin-top:15px;}
+ #control-panel .button{margin-right:17px; height:42px; color:#FFF; line-height:0px; font-size:1.2em;}
+ #control-panel .btn-create{width:112px; background:transparent url(../images/btn-striped-112.png) 0 0 no-repeat;}
+ #control-panel .btn-submit{width:222px; background:transparent url(../images/btn-striped-222.png) 0 0 no-repeat;}
+
+ /* Data box */
+ .data-box{padding:20px; background-color:#FFF;}
+ .data-box table{width:100%;}
+ .data-box table tr,
+ .data-box table td{vertical-align:middle;}
+ .data-box table tr.hover td,
+ .data-box table tr:hover td{background-color:#FBFAE5;}
+ .data-box table tr.hover .edit-link,
+ .data-box table tr.hover .del-link,
+ .data-box table tr:hover .edit-link,
+ .data-box table tr:hover .del-link{display:block;}
+ .data-box table th{padding:5px 10px; border-bottom:2px solid #e6e6e6; font-weight:bold; color:#6d6d6d; text-align:left;}
+ .data-box table td{padding:10px; border-bottom:1px dotted #d9d9d9; color:#707070;}
+ .data-box .edit-link{display:none; margin:0 auto; width:14px; height:14px; text-indent:-9999px; background:transparent url(../images/ico-edit-14x14.gif) 0 0 no-repeat;}
+ .data-box .del-link{display:none; margin:0 auto; width:12px; height:12px; text-indent:-9999px; background:transparent url(../images/ico-delete-12x12.gif) 0 0 no-repeat;}
+ .data-box span.checked{display:block; margin:0 auto; width:16px; height:14px; text-indent:-9999px; background:transparent url(../images/ico-check-16x14.png) 0 0 no-repeat;}
+ .data-box span.unchecked{display:block; margin:0 auto; width:16px; height:16px; text-indent:-9999px; background:transparent url(../images/ico-cross-16x16.gif) 0 0 no-repeat;}
+ .data-box .pagination{padding-top:15px; text-align:center;}
+ .data-box .pagination a.page{padding:10px; margin-right:10px; text-decoration:none; text-shadow:0 1px 1px #284B6B; font-weight:bold; color:#FFF; line-height:25px; background:#FFF url(../images/btn-page.png) 0 4px no-repeat;}
+ .data-box .pagination a.current{background-image:url(../images/btn-current-page.png);}
+
+
+/* 2.3 FOOTER
+------------------------------------------------------------------------------------------------ */
+ #footer{padding:20px 0;}
+ #footer .wrapper{overflow:hidden;}
+
+ /* Status */
+ #status{float:right; color:#8f8f8f; font-size:.95em;}
+ #status strong{display:block;}
+
+/* 3. MISCELLANEOUS
+-----------------------------------------------------------------------------------------------
+===============================================================================================*/
+
+ /* Form */
+ .input{padding:0 5px; height:23px; line-height:23px; border:3px solid #C4D6E5;}
+ input.button{border:none; text-align:center; cursor:pointer; color:#FFF; font-weight:bold; font-size:1.2em; text-shadow:0 1px 1px #284B6B;}
+ .combo-wrap{position:relative;}
+ .selectbox {
+ padding:0 28px 0 5px;
+ width:160px;
+ border:3px solid #C4D6E5;
+ line-height:29px;
+ height: 29px;
+ background:#fff url(../images/btn-dropdown.gif) 100% 0 no-repeat;
+ cursor:pointer;
+ _cursor:hand;
+ }
+ .selectbox-wrapper {
+ position: absolute;
+ #top:21px;
+ top:40px;
+ left:0;
+ width: 90% !important;
+ background-color:#fff;
+ border:1px solid #ccc;
+ font-family:Arial, Helvetica, sans-serif;
+ z-index:1000;
+ }
+ @media all and (-webkit-min-device-pixel-ratio:10000),not all and (-webkit-min-device-pixel-ratio:0) {
+ .selectbox-wrapper{top:28px;}
+ }
+ .selectbox-wrapper ul{margin:0; padding:10px 0;}
+ .selectbox-wrapper ul li{padding:0 10px; line-height:1.5;}
+ .selectbox-wrapper ul li:hover{background-color:#E8F2FB;}
+
+ /* Z-INDEX */
+ .z1{z-index:1000;}
+ .z2{z-index:999;}
+ .z3{z-index:998;}
+ .z4{z-index:997;}
+ .z5{z-index:996;}
+ .z6{z-index:995;}
+ .z5{z-index:994;}
+ .z6{z-index:993;}
+ .z7{z-index:992;}
+ .z8{z-index:991;}
+ .z9{z-index:990;}
+ .z10{z-index:989;}
+
+ /* Rounded corners */
+ .r5{border-radius:5px; -webkit-border-radius:5px; -moz-border-radius:5px;}
+ .r10{border-radius:10px; -webkit-border-radius:10px; -moz-border-radius:10px;}
+ .r15{border-radius:15px; -webkit-border-radius:15px; -moz-border-radius:15px;}
+ .rl5{border-radius:5px 0 0 5px; -moz-border-radius:5px 0 0 5px; -webkit-border-top-left-radius:5px; -webkit-border-bottom-left-radius:5px;}
+ .rr5{border-radius:0 5px 5px 0; -moz-border-radius:0 5px 5px 0; -webkit-border-top-right-radius:5px; -webkit-border-bottom-right-radius:5px;}
+ .r5, .r10, .r15, .rl5, .rr5{position:relative; behavior:url(js/pie.htc);}
+
+/*
+IT IS STRONGLY ADVISED TO MAKE YOUR CHANGES AFTER THIS COMMENT BY REPEATING (COPYING) THE SELECTOR FROM ABOVE,
+AND MODIFYING IT WITH YOUR OWN PROPERTIES/VALUES. THIS IS RECOMMENDED BECAUSE IF YOU HAPPEN TO RUN INTO TROUBLE,
+*/
+
+/* ------------------------------------------------------------------------------ */
+
+ #control-panel .selectbox { width: 355px; }
+
+ #control-panel .day .selectbox { width: 75px; }
+ #control-panel .yearmonth .selectbox { width: 145px; }
+
+ #control-panel .selectdatewidget,
+ #control-panel .selecttimewidget {
+ position: relative;
+ }
+
+ #control-panel .selectdatewidget .selectbox-wrapper,
+ #control-panel .selecttimewidget .selectbox-wrapper {
+ top: 19px;
+ }
+
+ #control-panel .selectdatewidget,
+ #control-panel .selecttimewidget {
+ margin-right: 3px;
+ }
+
+ #control-panel .hour .selectbox,
+ #control-panel .minute .selectbox { width: 55px; }
+
+ #control-panel a.selecttimewidget { font-weight: bold; margin-left: 3px; }
+
+/* ------------------------------------------------------------------------------ */
+/* Iurii Garmash Expences_Modification */
+ td.local_amount { font-weight: bold; font-size: 1.2em; }
+
+/* Iurii Garmash Timesheets selecting entry for edit */
+ tr.editing_now_entry { background-color:#FBFAE5; }
+
+/* Iurii Garmash Reports Making Totals styled in different manner */
+ table.report_job_totals { font-size: 1.2em; text-decoration:underline; }
+ table.report_customer_totals { font-size: 1.2em; font-weight:bold; padding: 0px; }
+ table.report_project_totals { font-size: 1.5em; font-weight:bold; color:#080000 ; }
+ td.totals_name { text-align: right; }
+
+/* Iurii Garmash Homepage icons added */
+ table.home_menu thead tr th { padding-left: 35px; padding-right: 35px; padding-top: 35px; }
+ #home_tbody tr th a { text-decoration: none; font-size:2.1em; color: #353535; }
View
142 media/blue_theme/tms/css/jquery.selectBox.css
@@ -0,0 +1,142 @@
+/* Dropdown control */
+.selectBox-dropdown {
+ width:160px; /* width = (desired width) - padding-right */
+ padding:0 28px 0 5px;
+ position: relative;
+ border:3px solid #C4D6E5;
+ line-height:23px;
+ text-decoration: none;
+ color: #000;
+ outline: none;
+ vertical-align: middle;
+ background:#fff url(../images/btn-dropdown.gif) 100% 0 no-repeat;
+ display: inline-block;
+ cursor:pointer;
+ _cursor:hand;
+}
+
+.selectBox-dropdown:focus,
+.selectBox-dropdown:focus .selectBox-arrow {
+ border-color: #666;
+}
+
+.selectBox-dropdown.selectBox-menuShowing {
+ -moz-border-radius-bottomleft: 0;
+ -moz-border-radius-bottomright: 0;
+ -webkit-border-bottom-left-radius: 0;
+ -webkit-border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.selectBox-dropdown .selectBox-label {
+ width: 100%;
+ padding: .2em .3em;
+ display: inline-block;
+ white-space: nowrap;
+ overflow: hidden;
+}
+/* Dropdown arrow */
+.selectBox-dropdown .selectBox-arrow {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 23px;
+ height: 100%;
+ background: url(../images/btn-dropdown.gif) 50% center no-repeat;
+
+}
+
+
+/* Dropdown menu */
+.selectBox-dropdown-menu {
+ position: absolute;
+ z-index: 99999;
+ max-height: 200px;
+ border: solid 1px #BBB; /* should be the same border width as .selectBox-dropdown */
+ background: #FFF;
+ -moz-box-shadow: 0 2px 6px rgba(0, 0, 0, .2);
+ -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, .2);
+ box-shadow: 0 2px 6px rgba(0, 0, 0, .2);
+ overflow: auto;
+}
+
+
+/* Inline control */
+.selectBox-inline {
+ width: 250px;
+ outline: none;
+ border: solid 1px #BBB;
+ background: #FFF;
+ display: inline-block;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ overflow: auto;
+}
+
+.selectBox-inline:focus {
+ border-color: #666;
+}
+
+
+/* Options */
+.selectBox-options,
+.selectBox-options LI,
+.selectBox-options LI A {
+ list-style: none;
+ display: block;
+ cursor: default;
+ padding: 0;
+ margin: 0;
+}
+
+.selectBox-options LI A {
+ line-height: 1.5;
+ padding: 0 .5em;
+ white-space: nowrap;
+ overflow: hidden;
+ background: 6px center no-repeat;
+}
+
+.selectBox-options LI.selectBox-hover A {
+ background-color: #EEE;
+}
+
+.selectBox-options LI.selectBox-disabled A {
+ color: #888;
+ background-color: transparent;
+}
+
+.selectBox-options LI.selectBox-selected A {
+ background-color: #C8DEF4;
+}
+
+.selectBox-options .selectBox-optgroup {
+ color: #666;
+ background: #EEE;
+ font-weight: bold;
+ line-height: 1.5;
+ padding: 0 .3em;
+ white-space: nowrap;
+}
+
+
+/* Disabled state */
+.selectBox.selectBox-disabled {
+ color: #888 !important;
+}
+
+.selectBox-dropdown.selectBox-disabled .selectBox-arrow {
+ opacity: .5;
+ filter: alpha(opacity=50);
+ border-color: #666;
+}
+
+.selectBox-inline.selectBox-disabled {
+ color: #888 !important;
+}
+
+.selectBox-inline.selectBox-disabled .selectBox-options A {
+ background-color: transparent !important;
+}
View
52 media/blue_theme/tms/css/reset.css
@@ -0,0 +1,52 @@
+/* v1.0 | 20080212 */
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, font, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ font-size: 100%;
+ vertical-align: baseline;
+ background: transparent;
+}
+body {
+ line-height: 1;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+
+/* remember to define focus styles! */
+:focus {
+ outline: 0;
+}
+
+/* remember to highlight inserts somehow! */
+ins {
+ text-decoration: none;
+}
+del {
+ text-decoration: line-through;
+}
+
+/* tables still need 'cellspacing="0"' in the markup */
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
View
14 media/blue_theme/tms/css/site_tabs.css
@@ -0,0 +1,14 @@
+/* SITE-SPECIFIC TAB STYLING */
+
+body.timesheets #tab_timesheets a,
+body.expenses #tab_expenses a,
+body.reports #tab_reports a
+{
+ background: transparent url(../images/bg-top-menu-active.png) 0 0 repeat-x;
+ border-color: #bababa;
+}
+body.timesheets #tab_timesheets,
+body.expenses #tab_expenses,
+body.reports #tab_reports
+{
+}
View
BIN media/blue_theme/tms/images/bg-header.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/bg-menu-alert.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/bg-top-menu-active.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/bg-top-menu.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/bg.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/btn-current-page.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/btn-dropdown.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/btn-page.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/btn-striped-112.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/btn-striped-222.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/favicon.ico
Binary file not shown.
View
BIN media/blue_theme/tms/images/ico-calendar.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/ico-check-16x14.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/ico-cross-16x16.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/ico-delete-12x12.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/ico-edit-14x14.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/ico-help-16x16.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/jquery.selectBox-arrow.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/logo-expenses-sq.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/logo-expenses.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/logo-login.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/logo-reports-sq.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/logo-reports.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/logo-timesheets-sq.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/logo-timesheets.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/blue_theme/tms/images/logo.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
191 media/blue_theme/tms/js/AJAX_expenses.js
@@ -0,0 +1,191 @@
+/*
+ * MAIN Expenses events handler
+ */
+
+/*///////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////// GLOBAL HELPERS ///////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////*/
+var mydate_now = new Date();
+var editing_now = false;
+
+// TODO: comment changed to empty space " " instead of nothing...
+// This will allow form serialization with empty comment. need to fix that in future.
+function clear_expenses_form() {
+ //clearing form data
+ $('#id_currency').selectBox('value', "---------");
+ $('#id_expense_date_day').selectBox('value', mydate_now.getDate());
+ $('#id_expense_date_yearmonth').selectBox('value', (mydate_now.getFullYear()+'-'+(mydate_now.getMonth()+1)));//month count starts from 0
+ $('#id_claim_date_day').selectBox('value', mydate_now.getDate());
+ $('#id_claim_date_yearmonth').selectBox('value', (mydate_now.getFullYear()+'-'+(mydate_now.getMonth()+1)));//month count starts from 0
+ $('#id_customer').selectBox('value', "---------");
+ $('#id_expense_type').selectBox('value', "---------");
+ $('#id_comment').selectBox('value', " ");
+ $('#id_is_receipted').attr('checked', 'checked');
+ $('#id_payment_method').selectBox('value', "---------");
+ $('#id_is_taxable').attr('checked', 'checked');
+ $('#id_expense_amount').selectBox('value', "0");
+ $('#id_tax_amount').selectBox('value', "0");
+ $('#id_local_amount').selectBox('value', "0");
+
+ // clearing edit PK
+ editing_now = false;
+ $('#edit_pk').attr('edit_id', ' ');
+ // clearing form errors (visually) if existed any
+ $('div.ctrlHolder').removeClass('error');
+ $('p.errorField').remove();
+ // removing any visually selected rows
+ $('tr').removeClass('editing_now_entry');
+ return false;
+};
+
+//Populating form with data from JSON <div> created on page load for each entry
+function expenses_form_populate(pk) {
+ //assuming json data does not exist trying to parse it from
+ // html instead and construct our item array
+ item_currency = $('#edit_currency-'+pk).html();
+ item_temp1_date_day = $('#edit_expense_date_day-'+pk).html();
+ item_expense_date_day = parseInt(item_temp1_date_day, 10);
+ item_expense_date_month = $('#edit_expense_date_month-'+pk).html();
+ item_expense_date_year = $('#edit_expense_date_year-'+pk).html();
+ expense_month_cleaned = parseInt(item_expense_date_month, 10);
+ item_expense_yearmonth = item_expense_date_year+'-'+ expense_month_cleaned;
+ item_temp_date_day = $('#edit_claim_date_day-'+pk).html();
+ item_claim_date_day = parseInt(item_temp_date_day, 10);
+ item_claim_date_month = $('#edit_claim_date_month-'+pk).html();
+ item_claim_date_year = $('#edit_claim_date_year-'+pk).html();
+ claim_month_cleaned = parseInt(item_claim_date_month, 10);
+ item_claim_yearmonth = item_claim_date_year+'-'+ claim_month_cleaned;
+ item_customer = $('#edit_customer-'+pk).html();
+ item_expense_type = $('#edit_expense_type-'+pk).html();
+ item_comment = $('#edit_comment-'+pk).html();
+ item_is_receipted = $('#edit_is_receipted-'+pk).html();
+ item_payment_method = $('#edit_payment_method-'+pk).html();
+ item_is_taxable = $('#edit_is_taxable-'+pk).html();
+ item_expense_amount = $('#edit_expense_amount-'+pk).html();
+ item_tax_amount = $('#edit_tax_amount-'+pk).html();
+ item_local_amount = $('#edit_local_amount-'+pk).html();
+
+
+ //Populating Form with elements according to provided timesheet div data
+ $('#id_currency').selectBox('value', item_currency);
+ $('#id_expense_date_day').selectBox('value', item_expense_date_day);
+ $('#id_expense_date_yearmonth').selectBox('value', item_expense_yearmonth);
+ $('#id_claim_date_day').selectBox('value', item_claim_date_day);
+ $('#id_claim_date_yearmonth').selectBox('value', item_claim_yearmonth);
+ $('#id_customer').selectBox('value', item_customer);
+ $('#id_expense_type').selectBox('value', item_expense_type);
+ $('#id_comment').selectBox('value', item_comment);
+ if (item_is_receipted == 'True') {
+ $('#id_is_receipted').attr('checked', 'checked');
+ } else {
+ $('#id_is_receipted').removeAttr('checked');
+ };
+ $('#id_payment_method').selectBox('value', item_payment_method);
+ if (item_is_receipted == 'True') {
+ $('#id_is_taxable').attr('checked', 'checked');
+ } else {
+ $('#id_is_taxable').removeAttr('checked');
+ };
+ $('#id_expense_amount').selectBox('value', item_expense_amount);
+ $('#id_tax_amount').selectBox('value', item_tax_amount);
+ $('#id_local_amount').selectBox('value', item_local_amount);
+ return false;
+};
+
+function set_expenses_form_AJAX() {
+ var options = {
+ beforeSubmit: before_submit_expenses, // pre-submit callback
+ success: after_submit_expenses, // post-submit callback
+ resetForm: true, // reset the form after submit success
+ data: { data_id: '' }, //passing edit pk if exists
+ };
+
+ $('form#expenses_form').ajaxForm(options);
+ return false;
+};
+
+function before_submit_expenses(formData, jqForm, options) {
+ // inserting edit_pk parameter to every form post
+
+ edit_pk = $('#edit_pk').attr('edit_id');
+
+ // looking for data_id in form Query and passing it objects PK
+ for(var i = 0; i < formData.length && formData[i].name != "data_id"; i++);
+ if (i < formData.length) {
+ formData[i].value=edit_pk;
+ };
+
+ return true;
+};
+
+function after_submit_expenses(responseText, statusText, xhr, $form) {
+ // determine if view returns form with errors or posted timesheet entry
+ // and commit after post operations
+ // (Insert form with errors/entry to DOM and map events)
+ if (responseText.indexOf("expenses_form") > -1) {
+ //form_exists in response inserting it to DOM and remapping form events interceptors
+ // clearing selectbox events, changing form and remaping events
+ $('select').selectBox('destroy');
+ $('form#expenses_form').replaceWith(responseText);
+ set_expenses_form_AJAX();
+ $('select').selectBox();
+
+ } else if (responseText.indexOf("expense-") > -1) {
+ //new entry exist in response
+ //prepend it into table
+
+ // determining if the response is edit or a new table entry
+ if (responseText.indexOf("edited_item_returned") > -1) {
+ // edited entry returned. Need2Update existing <tr> element
+ // replacing existing TR element with this response
+ pk = $('#edit_pk').attr('edit_id');
+ existing_tr = $('tr[data-id="expense-'+pk+'"]');
+ existing_tr.replaceWith(responseText);
+ } else {
+ // new entry returned
+ $('table tbody#tbody').prepend(responseText);
+ };
+ clear_expenses_form();
+
+ }
+};
+
+/*///////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////// EDIT /////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////*/
+function expense_editbtn_press(button, pk){
+ clear_expenses_form();
+ expenses_form_populate(pk);
+ //globally switching to edit mode for submit events
+ editing_now = true;
+ // store current editing item pk in the DOM for submit actions
+ //$('#control-panel').attr('edit_id', pk)
+ $('#edit_pk').attr('edit_id', pk);
+
+ $('tr[data-id="expense-'+pk+'"]').addClass('editing_now_entry');
+ return false;
+};
+
+/*///////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////// DELETE ////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////*/
+function expense_delbtn_press(button, pk, url){
+ $.post(url, { data_id: pk }, function(response_data){
+ $('tr[data-id="expense-'+response_data+'"]').hide("fast");
+ });
+ return false;
+};
+
+
+
+//Main Events mapping on page load
+$(document).ready(function() {
+
+ set_expenses_form_AJAX();
+
+ //setting "NEW" button events handler
+ $('#id_expenses_form_clear').click(function() {
+ clear_expenses_form();
+ return false;
+ });
+});
View
224 media/blue_theme/tms/js/AJAX_timesheets.js
@@ -0,0 +1,224 @@
+/*
+ * MAIN Timesheet buttons events handler
+ */
+
+/*///////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////// GLOBAL HELPERS ///////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////*/
+
+// TODO: comment changed to empty space " " instead of nothing...
+// This will allow form serialization with empty comment. need to fix that in future.
+function clear_timesheet_form() {
+ var mydate_now = new Date();
+ //clearing form data
+ $('#id_job').selectBox('value', "---------");
+ $('#id_date_start_day').selectBox('value', mydate_now.getDate());
+ $('#id_date_start_yearmonth').selectBox('value', (mydate_now.getFullYear()+'-'+(mydate_now.getMonth()+1)));//month count starts from 0
+ $('#id_start_time_hour').selectBox('value', mydate_now.getHours());
+ $('#id_start_time_minute').selectBox('value', mydate_now.getMinutes());
+ $('#id_end_time_hour').selectBox('value', mydate_now.getHours());
+ $('#id_end_time_minute').selectBox('value', mydate_now.getMinutes());
+ $('#id_comment').selectBox('value', " ");
+ // clearing edit PK
+ // TODO: add clearing of edit settings
+ editing_now = false;
+ $('#edit_pk').attr('edit_id', ' ');
+ // clearing form errors (visually) if existed any
+ $('div.ctrlHolder').removeClass('error');
+ $('p.errorField').remove();
+ // removing any visually selected rows
+ $('tr').removeClass('editing_now_entry');
+
+ // adding data from last timesheet
+ timesheet_latest_date = $('#timesheet_latest_date').attr('paramether');
+ timesheet_latest_job = $('#timesheet_latest_job').attr('paramether');
+ //alert(timesheet_latest_date);
+ if (timesheet_latest_date) {
+ init_date = new Date(timesheet_latest_date);
+ $('#id_start_time_hour').selectBox('value', init_date.getHours());
+ $('#id_start_time_minute').selectBox('value', init_date.getMinutes());
+ $('#id_job').selectBox('value', timesheet_latest_job);
+ };
+
+ return false;
+};
+
+// special saving sequence of timesheet
+// to preserve job set from last time
+function clear_timesheet_form_preserve_job() {
+ temp_value = $('#id_job').selectBox('value');
+ clear_timesheet_form();
+ $('#id_job').selectBox('value', temp_value);
+ return false;
+};
+
+//Populating form with data from JSON <div> created on page load for each entry
+function timesheet_form_populate(pk) {
+ //assuming json data does not exist trying to parse it from
+ // html instead and construct our item array
+ item_job_id = $('#edit_job_id-'+pk).html();
+ item_start_date_day = $('#edit_start_date_day-'+pk).html();
+ item_start_date_month = $('#edit_start_date_month-'+pk).html();
+ item_start_date_year = $('#edit_start_date_year-'+pk).html();
+ item_start_time_hours = $('#edit_start_time_hours-'+pk).html();
+ item_start_time_minutes = $('#edit_start_time_minutes-'+pk).html();
+ item_end_time_minutes = $('#edit_end_time_minutes-'+pk).html();
+ item_end_time_hours = $('#edit_end_time_hours-'+pk).html();
+ item_comment = $('#edit_comment-'+pk).html();
+
+ // clearing data values for correct selectbox insertions
+ month_cleaned = parseInt(item_start_date_month, 10);
+ item_yearmonth = item_start_date_year+'-'+ month_cleaned;
+ item_cleaned_start_date_day = parseInt(item_start_date_day, 10);
+ item_cleaned_start_time_hours = parseInt(item_start_time_hours, 10);
+ item_cleaned_start_time_minutes = parseInt(item_start_time_minutes, 10);
+ item_cleaned_end_time_hours = parseInt(item_end_time_hours, 10);
+ item_cleaned_end_time_minutes = parseInt(item_end_time_minutes, 10);
+
+ //Populating Form with elements according to provided timesheet div data
+ $('#id_job').selectBox('value', item_job_id);
+ $('#id_date_start_day').selectBox('value', item_cleaned_start_date_day);
+ $('#id_date_start_yearmonth').selectBox('value', item_yearmonth);
+ $('#id_comment').selectBox('value', item_comment);
+ // handling 00 hours/minutes situations
+ if (item_cleaned_start_time_hours == 0) {
+ value = $('#id_start_time_hour').selectBox('value', '00');
+ } else {
+ $('#id_start_time_hour').selectBox('value', item_cleaned_start_time_hours);
+ };
+ if (item_cleaned_start_time_minutes == 0) {
+ $('#id_start_time_minute').selectBox('value', '00');
+ } else {
+ $('#id_start_time_minute').selectBox('value', item_cleaned_start_time_minutes);
+ };
+ if (item_cleaned_end_time_hours == 0) {
+ $('#id_end_time_hour').selectBox('value', '00');
+ } else {
+ $('#id_end_time_hour').selectBox('value', item_cleaned_end_time_hours);
+ };
+ if (item_cleaned_end_time_minutes == 0) {
+ $('#id_end_time_minute').selectBox('value', '00');
+ } else {
+ $('#id_end_time_minute').selectBox('value', item_cleaned_end_time_minutes);
+ };
+ return false;
+};
+
+function set_timesheet_form_AJAX() {
+ var options = {
+ beforeSubmit: before_submit_timesheets, // pre-submit callback
+ success: after_submit_timesheets, // post-submit callback
+ resetForm: true, // reset the form after submit success
+ data: { data_id: '' } //passing edit pk var to populate later
+ };
+
+ $('form#timesheets_form').ajaxForm(options);
+ return false;
+};
+
+function before_submit_timesheets(formData, jqForm, options) {
+ // inserting edit_pk parameter to every form post
+ edit_pk = $('#edit_pk').attr('edit_id');
+
+ // looking for data_id in form Query and passing it objects PK
+ for(var i = 0; i < formData.length && formData[i].name != "data_id"; i++);
+ if (i < formData.length) {
+ formData[i].value=edit_pk;
+ };
+
+ return true;
+};
+
+function after_submit_timesheets(responseText, statusText, xhr, $form) {
+ // determine if view returns form with errors or posted timesheet entry
+ // and commit after post operations
+ // (Insert form with errors/entry to DOM and map events)
+ if (responseText.indexOf("timesheets_form") > -1) {
+ //form_exists in response inserting it to DOM and remapping form events interceptors
+ // clearing selectbox events, changing form and remaping events
+ $('select').selectBox('destroy');
+ $('form#timesheets_form').replaceWith(responseText);
+ set_timesheet_form_AJAX();
+ $('select').selectBox();
+
+ } else if (responseText.indexOf("timesheet-") > -1) {
+ //new entry exist in response
+ //prepend it into table
+
+ // determining if the response is edit or a new table entry
+ if (responseText.indexOf("edited_item_returned") > -1) {
+ // edited entry returned. Need2Update existing <tr> element
+ // replacing existing TR element with this response
+ pk = $('#edit_pk').attr('edit_id');
+ existing_tr = $('tr[data-id="timesheet-'+pk+'"]');
+ existing_tr.replaceWith(responseText);
+ } else {
+ // new entry returned
+ $('table tbody#tbody').prepend(responseText);
+ // setting form init data according to Wiki specs
+ //alert(responseText);
+ var timesheet_init_date = $(responseText).find('.init_start_time_data').html();
+ var timesheet_init_job_id = $(responseText).find('.init_job_data').html();
+ $('#timesheet_latest_date').attr('paramether', timesheet_init_date);
+ $('#timesheet_latest_job').attr('paramether', timesheet_init_job_id);
+ };
+ clear_timesheet_form();
+ }
+};
+
+/*///////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////// EDIT /////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////*/
+
+function timesheet_editbtn_press(button, pk){
+ clear_timesheet_form();
+ timesheet_form_populate(pk);
+ //globally switching to edit mode for submit events
+ editing_now = true;
+ // store current editing item pk in the DOM for submit actions
+ //$('#control-panel').attr('edit_id', pk)
+ $('#edit_pk').attr('edit_id', pk);
+
+ $('tr[data-id="timesheet-'+pk+'"]').addClass('editing_now_entry');
+ return false;
+};
+
+$(document).ready(function() {
+
+ set_timesheet_form_AJAX();
+
+ //setting "NEW" button events handler
+ $('#id_timesheet_form_clear').click(function() {
+ clear_timesheet_form();
+ editing_now = false;
+
+ return false;
+ });
+});
+
+/*///////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////// DELETE ////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////*/
+
+function timesheet_delbtn_press(button, pk, url){
+var delete_disabled = false;
+ $.post(url, { data_id: pk }, function(response_data){
+ $('tr[data-id="timesheet-'+response_data+'"]').hide("fast");
+ });
+ return false;
+};
+
+/*///////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////// INITIALISATION ///////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////*/
+
+
+$(document).ready(function() {
+
+ var mydate_now = new Date();
+ var editing_now = false;
+
+ //Clears all form time upon reload/page load
+ clear_timesheet_form();
+
+});
View
14 media/blue_theme/tms/js/ie-png.js
@@ -0,0 +1,14 @@
+/**
+* DD_belatedPNG: Adds IE6 support: PNG images for CSS background-image and HTML <IMG/>.
+* Author: Drew Diller
+* Email: drew.diller@gmail.com
+* URL: http://www.dillerdesign.com/experiment/DD_belatedPNG/
+* Version: 0.0.8a
+* Licensed under the MIT License: http://dillerdesign.com/experiment/DD_belatedPNG/#license
+*
+* Example usage:
+* DD_belatedPNG.fix('.png_bg'); // argument is a CSS selector
+* DD_belatedPNG.fixPng( someNode ); // argument is an HTMLDomElement
+**/
+var DD_belatedPNG={ns:"DD_belatedPNG",imgSize:{},delay:10,nodesFixed:0,createVmlNameSpace:function(){if(document.namespaces&&!document.namespaces[this.ns]){document.namespaces.add(this.ns,"urn:schemas-microsoft-com:vml")}},createVmlStyleSheet:function(){var b,a;b=document.createElement("style");b.setAttribute("media","screen");document.documentElement.firstChild.insertBefore(b,document.documentElement.firstChild.firstChild);if(b.styleSheet){b=b.styleSheet;b.addRule(this.ns+"\\:*","{behavior:url(#default#VML)}");b.addRule(this.ns+"\\:shape","position:absolute;");b.addRule("img."+this.ns+"_sizeFinder","behavior:none; border:none; position:absolute; z-index:-1; top:-10000px; visibility:hidden;");this.screenStyleSheet=b;a=document.createElement("style");a.setAttribute("media","print");document.documentElement.firstChild.insertBefore(a,document.documentElement.firstChild.firstChild);a=a.styleSheet;a.addRule(this.ns+"\\:*","{display: none !important;}");a.addRule("img."+this.ns+"_sizeFinder","{display: none !important;}")}},readPropertyChange:function(){var b,c,a;b=event.srcElement;if(!b.vmlInitiated){return}if(event.propertyName.search("background")!=-1||event.propertyName.search("border")!=-1){DD_belatedPNG.applyVML(b)}if(event.propertyName=="style.display"){c=(b.currentStyle.display=="none")?"none":"block";for(a in b.vml){if(b.vml.hasOwnProperty(a)){b.vml[a].shape.style.display=c}}}if(event.propertyName.search("filter")!=-1){DD_belatedPNG.vmlOpacity(b)}},vmlOpacity:function(b){if(b.currentStyle.filter.search("lpha")!=-1){var a=b.currentStyle.filter;a=parseInt(a.substring(a.lastIndexOf("=")+1,a.lastIndexOf(")")),10)/100;b.vml.color.shape.style.filter=b.currentStyle.filter;b.vml.image.fill.opacity=a}},handlePseudoHover:function(a){setTimeout(function(){DD_belatedPNG.applyVML(a)},1)},fix:function(a){if(this.screenStyleSheet){var c,b;c=a.split(",");for(b=0;b<c.length;b++){this.screenStyleSheet.addRule(c[b],"behavior:expression(DD_belatedPNG.fixPng(this))")}}},applyVML:function(a){a.runtimeStyle.cssText="";this.vmlFill(a);this.vmlOffsets(a);this.vmlOpacity(a);if(a.isImg){this.copyImageBorders(a)}},attachHandlers:function(i){var d,c,g,e,b,f;d=this;c={resize:"vmlOffsets",move:"vmlOffsets"};if(i.nodeName=="A"){e={mouseleave:"handlePseudoHover",mouseenter:"handlePseudoHover",focus:"handlePseudoHover",blur:"handlePseudoHover"};for(b in e){if(e.hasOwnProperty(b)){c[b]=e[b]}}}for(f in c){if(c.hasOwnProperty(f)){g=function(){d[c[f]](i)};i.attachEvent("on"+f,g)}}i.attachEvent("onpropertychange",this.readPropertyChange)},giveLayout:function(a){a.style.zoom=1;if(a.currentStyle.position=="static"){a.style.position="relative"}},copyImageBorders:function(b){var c,a;c={borderStyle:true,borderWidth:true,borderColor:true};for(a in c){if(c.hasOwnProperty(a)){b.vml.color.shape.style[a]=b.currentStyle[a]}}},vmlFill:function(e){if(!e.currentStyle){return}else{var d,f,g,b,a,c;d=e.currentStyle}for(b in e.vml){if(e.vml.hasOwnProperty(b)){e.vml[b].shape.style.zIndex=d.zIndex}}e.runtimeStyle.backgroundColor="";e.runtimeStyle.backgroundImage="";f=true;if(d.backgroundImage!="none"||e.isImg){if(!e.isImg){e.vmlBg=d.backgroundImage;e.vmlBg=e.vmlBg.substr(5,e.vmlBg.lastIndexOf('")')-5)}else{e.vmlBg=e.src}g=this;if(!g.imgSize[e.vmlBg]){a=document.createElement("img");g.imgSize[e.vmlBg]=a;a.className=g.ns+"_sizeFinder";a.runtimeStyle.cssText="behavior:none; position:absolute; left:-10000px; top:-10000px; border:none; margin:0; padding:0;";c=function(){this.width=this.offsetWidth;this.height=this.offsetHeight;g.vmlOffsets(e)};a.attachEvent("onload",c);a.src=e.vmlBg;a.removeAttribute("width");a.removeAttribute("height");document.body.insertBefore(a,document.body.firstChild)}e.vml.image.fill.src=e.vmlBg;f=false}e.vml.image.fill.on=!f;e.vml.image.fill.color="none";e.vml.color.shape.style.backgroundColor=d.backgroundColor;e.runtimeStyle.backgroundImage="none";e.runtimeStyle.backgroundColor="transparent"},vmlOffsets:function(d){var h,n,a,e,g,m,f,l,j,i,k;h=d.currentStyle;n={W:d.clientWidth+1,H:d.clientHeight+1,w:this.imgSize[d.vmlBg].width,h:this.imgSize[d.vmlBg].height,L:d.offsetLeft,T:d.offsetTop,bLW:d.clientLeft,bTW:d.clientTop};a=(n.L+n.bLW==1)?1:0;e=function(b,p,q,c,s,u){b.coordsize=c+","+s;b.coordorigin=u+","+u;b.path="m0,0l"+c+",0l"+c+","+s+"l0,"+s+" xe";b.style.width=c+"px";b.style.height=s+"px";b.style.left=p+"px";b.style.top=q+"px"};e(d.vml.color.shape,(n.L+(d.isImg?0:n.bLW)),(n.T+(d.isImg?0:n.bTW)),(n.W-1),(n.H-1),0);e(d.vml.image.shape,(n.L+n.bLW),(n.T+n.bTW),(n.W),(n.H),1);g={X:0,Y:0};if(d.isImg){g.X=parseInt(h.paddingLeft,10)+1;g.Y=parseInt(h.paddingTop,10)+1}else{for(j in g){if(g.hasOwnProperty(j)){this.figurePercentage(g,n,j,h["backgroundPosition"+j])}}}d.vml.image.fill.position=(g.X/n.W)+","+(g.Y/n.H);m=h.backgroundRepeat;f={T:1,R:n.W+a,B:n.H,L:1+a};l={X:{b1:"L",b2:"R",d:"W"},Y:{b1:"T",b2:"B",d:"H"}};if(m!="repeat"||d.isImg){i={T:(g.Y),R:(g.X+n.w),B:(g.Y+n.h),L:(g.X)};if(m.search("repeat-")!=-1){k=m.split("repeat-")[1].toUpperCase();i[l[k].b1]=1;i[l[k].b2]=n[l[k].d]}if(i.B>n.H){i.B=n.H}d.vml.image.shape.style.clip="rect("+i.T+"px "+(i.R+a)+"px "+i.B+"px "+(i.L+a)+"px)"}else{d.vml.image.shape.style.clip="rect("+f.T+"px "+f.R+"px "+f.B+"px "+f.L+"px)"}},figurePercentage:function(d,c,f,a){var b,e;e=true;b=(f=="X");switch(a){case"left":case"top":d[f]=0;break;case"center":d[f]=0.5;break;case"right":case"bottom":d[f]=1;break;default:if(a.search("%")!=-1){d[f]=parseInt(a,10)/100}else{e=false}}d[f]=Math.ceil(e?((c[b?"W":"H"]*d[f])-(c[b?"w":"h"]*d[f])):parseInt(a,10));if(d[f]%2===0){d[f]++}return d[f]},fixPng:function(c){c.style.behavior="none";var g,b,f,a,d;if(c.nodeName=="BODY"||c.nodeName=="TD"||c.nodeName=="TR"){return}c.isImg=false;if(c.nodeName=="IMG"){if(c.src.toLowerCase().search(/\.png$/)!=-1){c.isImg=true;c.style.visibility="hidden"}else{return}}else{if(c.currentStyle.backgroundImage.toLowerCase().search(".png")==-1){return}}g=DD_belatedPNG;c.vml={color:{},image:{}};b={shape:{},fill:{}};for(a in c.vml){if(c.vml.hasOwnProperty(a)){for(d in b){if(b.hasOwnProperty(d)){f=g.ns+":"+d;c.vml[a][d]=document.createElement(f)}}c.vml[a].shape.stroked=false;c.vml[a].shape.appendChild(c.vml[a].fill);c.parentNode.insertBefore(c.vml[a].shape,c)}}c.vml.image.shape.fillcolor="none";c.vml.image.fill.type="tile";c.vml.color.fill.on=false;g.attachHandlers(c);g.giveLayout(c);g.giveLayout(c.offsetParent);c.vmlInitiated=true;g.applyVML(c)}};try{document.execCommand("BackgroundImageCache",false,true)}catch(r){}DD_belatedPNG.createVmlNameSpace();DD_belatedPNG.createVmlStyleSheet();
+DD_belatedPNG.fix('#main,#header .holder,#header ul ul,.btn-action');
View
BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-anim_basic_16x16.gif
Diff not rendered.
View
BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png
Diff not rendered.
View
BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-bg_flat_75_ffffff_40x100.png
Diff not rendered.
View
BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png
Diff not rendered.
View
BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-bg_glass_65_ffffff_1x400.png
Diff not rendered.
View
BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-bg_glass_75_dadada_1x400.png
Diff not rendered.
View
BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png
Diff not rendered.
View
BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-bg_glass_95_fef1ec_1x400.png
Diff not rendered.
View
BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png
Diff not rendered.
View
BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-icons_222222_256x240.png
Diff not rendered.
View
BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-icons_2e83ff_256x240.png
Diff not rendered.
View
BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-icons_454545_256x240.png
Diff not rendered.
View
BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-icons_888888_256x240.png
Diff not rendered.
View
BIN media/blue_theme/tms/js/jquery-themes/base/images/ui-icons_cd0a0a_256x240.png
Diff not rendered.
View
12 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.accordion.css
@@ -0,0 +1,12 @@
+/* Accordion
+----------------------------------*/
+.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.ui-accordion .ui-accordion-li-fix { display: inline; }
+.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+/* IE7-/Win - Fix extra vertical space in lists */
+.ui-accordion a { zoom: 1; }
+.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.ui-accordion .ui-accordion-content-active { display: block; }
View
2 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.all.css
@@ -0,0 +1,2 @@
+@import "jquery.ui.base.css";
+@import "jquery.ui.theme.css";
View
47 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.autocomplete.css
@@ -0,0 +1,47 @@
+/* Autocomplete
+----------------------------------*/
+.ui-autocomplete { position: absolute; cursor: default; }
+.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/* Menu
+----------------------------------*/
+.ui-menu {
+ list-style:none;
+ padding: 2px;
+ margin: 0;
+ display:block;
+ /*
+ border:1px solid #ddd;
+ background:#fafafa;
+ -moz-border-radius:0.4em;
+ -khtml-border-radius:0.4em;
+ font: 0.95em arial, sans-serif;
+ */
+}
+.ui-menu .ui-menu {
+ margin-top: -3px;
+}
+.ui-menu .ui-menu-item {
+ margin:0;
+ padding: 0;
+ zoom: 1;
+ float: left;
+ clear: left;
+ width: 100%;
+}
+.ui-menu .ui-menu-item a {
+ text-decoration:none;
+ display:block;
+ padding:.2em .4em;
+ line-height:1.5;
+ zoom:1;
+}
+.ui-menu .ui-menu-item a.ui-state-hover,
+.ui-menu .ui-menu-item a.ui-state-active {
+ font-weight: normal;
+ /*font-weight: bold;*/
+ margin: -1px;
+}
View
11 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.base.css
@@ -0,0 +1,11 @@
+@import url("jquery.ui.core.css");
+@import url("jquery.ui.resizable.css");
+@import url("jquery.ui.selectable.css");
+@import url("jquery.ui.accordion.css");
+@import url("jquery.ui.autocomplete.css");
+@import url("jquery.ui.button.css");
+@import url("jquery.ui.dialog.css");
+@import url("jquery.ui.slider.css");
+@import url("jquery.ui.tabs.css");
+@import url("jquery.ui.datepicker.css");
+@import url("jquery.ui.progressbar.css");
View
35 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.button.css
@@ -0,0 +1,35 @@
+/* Button
+----------------------------------*/
+
+.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
+.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.ui-button-icons-only { width: 3.4em; }
+button.ui-button-icons-only { width: 3.7em; }
+
+/*button text element */
+.ui-button .ui-button-text { display: block; line-height: 1.4; }
+.ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.ui-button-icon-only .ui-icon, .ui-button-text-icon .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.ui-button-text-icon .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.ui-buttonset { margin-right: 7px; }
+.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+
+
+
+
+
View
37 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.core.css
@@ -0,0 +1,37 @@
+/*
+* jQuery UI CSS Framework
+* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
+*/
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
View
61 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.datepicker.css
@@ -0,0 +1,61 @@
+/* Datepicker
+----------------------------------*/
+.ui-datepicker { width: 17em; padding: .2em .2em 0; }
+.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.ui-datepicker .ui-datepicker-prev { left:2px; }
+.ui-datepicker .ui-datepicker-next { right:2px; }
+.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
+.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.ui-datepicker select.ui-datepicker-month,
+.ui-datepicker select.ui-datepicker-year { width: 49%;}
+.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
+.ui-datepicker td { border: 0; padding: 1px; }
+.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi { width:auto; }
+.ui-datepicker-multi .ui-datepicker-group { float:left; }
+.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.ui-datepicker-row-break { clear:both; width:100%; }
+
+/* RTL support */
+.ui-datepicker-rtl { direction: rtl; }
+.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+ display: none; /*sorry for IE5*/
+ display/**/: block; /*sorry for IE5*/
+ position: absolute; /*must have*/
+ z-index: -1; /*must have*/
+ filter: mask(); /*must have*/
+ top: -4px; /*must have*/
+ left: -4px; /*must have*/
+ width: 200px; /*must have*/
+ height: 200px; /*must have*/
+}
View
13 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.dialog.css
@@ -0,0 +1,13 @@
+/* Dialog
+----------------------------------*/
+.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; }
+.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
View
4 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.progressbar.css
@@ -0,0 +1,4 @@
+/* Progressbar
+----------------------------------*/
+.ui-progressbar { height:2em; text-align: left; }
+.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
View
13 media/blue_theme/tms/js/jquery-themes/base/jquery.ui.resizable.css
@@ -0,0 +1,13 @@
+/* Resizable
+----------------------------------*/
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px;