Initial (Umzug von openantrag.codeplex.com)

master
Kristof Zerbe 9 years ago
parent 88e9e81cc8
commit 44038a3a12
  1. 3
      .gitignore
  2. 19
      OpenAntrag/App_Data/FederalStates.xml
  3. 7
      OpenAntrag/App_Data/FeedbackStatusCodes.xml
  4. 6
      OpenAntrag/App_Data/FeedbackTypes.xml
  5. 9
      OpenAntrag/App_Data/GovernmentalLevels.xml
  6. 8
      OpenAntrag/App_Data/GroupTypes.xml
  7. 15
      OpenAntrag/App_Data/Teaser.xml
  8. 46
      OpenAntrag/App_Data/piratenmandate.dtd
  9. 2631
      OpenAntrag/App_Data/piratenmandate.xml
  10. 22
      OpenAntrag/App_Start/AuthConfig.vb
  11. 114
      OpenAntrag/App_Start/BundleConfig.vb
  12. 12
      OpenAntrag/App_Start/FilterConfig.vb
  13. 24
      OpenAntrag/App_Start/FormatterConfig.vb
  14. 148
      OpenAntrag/App_Start/RouteConfig.vb
  15. 108
      OpenAntrag/App_Start/WebApiConfig.vb
  16. 235
      OpenAntrag/Content/Plugins/bootstrap-datetimepicker.css
  17. 183
      OpenAntrag/Content/Plugins/bootstrap-select.css
  18. 1073
      OpenAntrag/Content/Plugins/flatstrap-responsive.css
  19. 145
      OpenAntrag/Content/Plugins/flatstrap-responsive.min.css
  20. 4138
      OpenAntrag/Content/Plugins/flatstrap.css
  21. 1
      OpenAntrag/Content/Plugins/flatstrap.min.css
  22. 41
      OpenAntrag/Content/Plugins/jqcloud.css
  23. 120
      OpenAntrag/Content/Plugins/jquery.jscrollpane.css
  24. 207
      OpenAntrag/Content/Plugins/jquery.mCustomScrollbar.css
  25. 45
      OpenAntrag/Content/Plugins/jquery.mCustomScrollbar.openantrag.css
  26. 266
      OpenAntrag/Content/Plugins/jquery.mCustomScrollbar.themes.css
  27. 186
      OpenAntrag/Content/Plugins/selectize.css
  28. 277
      OpenAntrag/Content/Plugins/tooltipster.css
  29. 1
      OpenAntrag/Content/Representations/testparlament/Info/fraktion.info
  30. BIN
      OpenAntrag/Content/Representations/testparlament/IntroBack/1200.jpg
  31. BIN
      OpenAntrag/Content/Representations/testparlament/IntroBack/770.jpg
  32. BIN
      OpenAntrag/Content/Representations/testparlament/IntroBack/980.jpg
  33. BIN
      OpenAntrag/Content/Representations/testparlament/IntroBack/full.jpg
  34. BIN
      OpenAntrag/Content/Representations/testparlament/Portraits/hans-mustermann.png
  35. BIN
      OpenAntrag/Content/Representations/testparlament/banner-160x220.png
  36. BIN
      OpenAntrag/Content/Representations/testparlament/banner-275x80.png
  37. 5
      OpenAntrag/Content/Representations/testparlament/style-testparlament.css
  38. 24
      OpenAntrag/Content/api.css
  39. 17
      OpenAntrag/Content/domain.css
  40. 24
      OpenAntrag/Content/error.css
  41. 24
      OpenAntrag/Content/faq.css
  42. 62
      OpenAntrag/Content/feedback.css
  43. 200
      OpenAntrag/Content/home.css
  44. 24
      OpenAntrag/Content/list.css
  45. 107
      OpenAntrag/Content/notifications.css
  46. 96
      OpenAntrag/Content/proposal.css
  47. 157
      OpenAntrag/Content/representation.css
  48. 29
      OpenAntrag/Content/search.css
  49. 24
      OpenAntrag/Content/statistics.css
  50. 20
      OpenAntrag/Content/style-allrepresentations.template.css
  51. 71
      OpenAntrag/Content/style-representation.template.css
  52. 69
      OpenAntrag/Content/style-teaser.template.css
  53. 1686
      OpenAntrag/Content/style.css
  54. 24
      OpenAntrag/Content/success.css
  55. 24
      OpenAntrag/Content/tags.css
  56. 3
      OpenAntrag/Content/teaser.css
  57. 127
      OpenAntrag/Controllers/AccountController.vb
  58. 68
      OpenAntrag/Controllers/ErrorController.vb
  59. 163
      OpenAntrag/Controllers/FeedbackController.vb
  60. 167
      OpenAntrag/Controllers/HomeController.vb
  61. 33
      OpenAntrag/Controllers/NotificationsApiController.vb
  62. 94
      OpenAntrag/Controllers/NotificationsController.vb
  63. 198
      OpenAntrag/Controllers/ProposalApiController.vb
  64. 91
      OpenAntrag/Controllers/RepresentationApiController.vb
  65. 706
      OpenAntrag/Controllers/RepresentationController.vb
  66. 21
      OpenAntrag/Controllers/StatisticsController.vb
  67. 45
      OpenAntrag/Controllers/TeaserController.vb
  68. BIN
      OpenAntrag/Downloads/OpenAntrag-FraktionRegistrieren.xls
  69. BIN
      OpenAntrag/Fonts/BebasNeue-webfont.eot
  70. 245
      OpenAntrag/Fonts/BebasNeue-webfont.svg
  71. BIN
      OpenAntrag/Fonts/BebasNeue-webfont.ttf
  72. BIN
      OpenAntrag/Fonts/BebasNeue-webfont.woff
  73. BIN
      OpenAntrag/Fonts/Flaticon/adobe21.png
  74. 26
      OpenAntrag/Fonts/Flaticon/adobe21.svg
  75. BIN
      OpenAntrag/Fonts/Flaticon/css2.png
  76. 17
      OpenAntrag/Fonts/Flaticon/css2.svg
  77. BIN
      OpenAntrag/Fonts/Flaticon/excel2.png
  78. 12
      OpenAntrag/Fonts/Flaticon/excel2.svg
  79. 25
      OpenAntrag/Fonts/Flaticon/flaticon.css
  80. BIN
      OpenAntrag/Fonts/Flaticon/flaticon.eot
  81. 285
      OpenAntrag/Fonts/Flaticon/flaticon.html
  82. 3
      OpenAntrag/Fonts/Flaticon/flaticon.svg
  83. BIN
      OpenAntrag/Fonts/Flaticon/flaticon.ttf
  84. BIN
      OpenAntrag/Fonts/Flaticon/flaticon.woff
  85. BIN
      OpenAntrag/Fonts/Flaticon/open92.png
  86. 15
      OpenAntrag/Fonts/Flaticon/open92.svg
  87. BIN
      OpenAntrag/Fonts/Flaticon/word2.png
  88. 12
      OpenAntrag/Fonts/Flaticon/word2.svg
  89. BIN
      OpenAntrag/Fonts/Flaticon/xml3.png
  90. 11
      OpenAntrag/Fonts/Flaticon/xml3.svg
  91. BIN
      OpenAntrag/Fonts/Flaticon/zip1.png
  92. 12
      OpenAntrag/Fonts/Flaticon/zip1.svg
  93. 66
      OpenAntrag/Fonts/Fontello/LICENSE.txt
  94. 75
      OpenAntrag/Fonts/Fontello/README.txt
  95. 538
      OpenAntrag/Fonts/Fontello/config.json
  96. 85
      OpenAntrag/Fonts/Fontello/css/animation.css
  97. 89
      OpenAntrag/Fonts/Fontello/css/fontello-openantrag-codes.css
  98. 142
      OpenAntrag/Fonts/Fontello/css/fontello-openantrag-embedded.css
  99. 89
      OpenAntrag/Fonts/Fontello/css/fontello-openantrag-ie7-codes.css
  100. 100
      OpenAntrag/Fonts/Fontello/css/fontello-openantrag-ie7.css
  101. Some files were not shown because too many files have changed in this diff Show More

3
.gitignore vendored

@ -194,3 +194,6 @@ FakesAssemblies/
# Visual Studio 6 workspace options file
*.opt
OpenAntrag/Video/OpenAntrag-Administration.mp4
OpenAntrag/Video/OpenAntrag-Administration.ogv
OpenAntrag/Video/OpenAntrag-Administration.webm

@ -0,0 +1,19 @@
๏ปฟ<?xml version="1.0" encoding="utf-8" ?>
<federalstates>
<federalstate key="BW" name="Baden-Wรผrttemberg" />
<federalstate key="BY" name="Bayern" />
<federalstate key="BE" name="Berlin" />
<federalstate key="BB" name="Brandenburg" />
<federalstate key="HB" name="Bremen" />
<federalstate key="HH" name="Hamburg" />
<federalstate key="HE" name="Hessen" />
<federalstate key="MV" name="Mecklenburg-Vorpommern" />
<federalstate key="NI" name="Niedersachsen" />
<federalstate key="NW" name="Nordrhein-Westfalen" />
<federalstate key="RP" name="Rheinland-Pfalz" />
<federalstate key="SL" name="Saarland" />
<federalstate key="SN" name="Sachsen" />
<federalstate key="ST" name="Sachsen-Anhalt" />
<federalstate key="SH" name="Schleswig-Holstein" />
<federalstate key="TH" name="Thรผringen" />
</federalstates>

@ -0,0 +1,7 @@
๏ปฟ<?xml version="1.0" encoding="utf-8" ?>
<statuscodes>
<statuscode id="0" name="unbekannt" />
<statuscode id="1" name="geplant" />
<statuscode id="2" name="in Arbeit" />
<statuscode id="3" name="abgeschlossen" />
</statuscodes>

@ -0,0 +1,6 @@
๏ปฟ<?xml version="1.0" encoding="utf-8" ?>
<types>
<type id="0" key="mitteilung" name="Mitteilung" icon="chat" voting="false" color="#2D76AA" />
<type id="1" key="wunsch" name="Wunsch (Feature)" icon="idea" voting="true" color="#E47900" />
<type id="2" key="fehler" name="Fehlerhinweis" icon="bug" voting="false" color="#B80000" />
</types>

@ -0,0 +1,9 @@
๏ปฟ<?xml version="1.0" encoding="utf-8" ?>
<levels>
<!--<level id="1" name="Bund" />-->
<level id="2" name="Land" />
<level id="3" name="Region" />
<level id="4" name="Kreis/Stadt" />
<level id="5" name="Bezirk/Samtgemeinde" />
<level id="6" name="Ort/Gemeinde" />
</levels>

@ -0,0 +1,8 @@
๏ปฟ<?xml version="1.0" encoding="utf-8" ?>
<types>
<type id="0" name="Fraktion" name-gen="die Fraktion" common="Fraktion" color="#333333" />
<type id="1" name="Einzelabgeordneter" name-gen="den Abgeordneten" common="Einzelabgeordnete" color="#AA1919" />
<type id="-1" name="Einzelabgeordnete" name-gen="die Abgeordnete" common="Einzelabgeordnete" color="#AA1919" />
<type id="2" name="Gruppe" name-gen="die Gruppe" common="Gruppe" color="#3498DB" />
<type id="3" name="Sondergruppe" name-gen="die Sondergruppe" common="Sondergruppe" color="#8BBC21" />
</types>

@ -0,0 +1,15 @@
๏ปฟ<?xml version="1.0" encoding="utf-8" ?>
<teaser>
<item id="1" key="ulm"
label="Ulm" color="#AF4038"
name="Stadtrat Ulm" name2="Ulm (Stadtrat)"
level="4" federal="BW"
link="http://ulmhoch3.de"
twitter="ulmhoch3"
mail="info@ulmhoch3.de"
teaser-url="ulmhoch3"
election-date="25.05.2014"
key-represenation="ulm" />
</teaser>

@ -0,0 +1,46 @@
<!ELEMENT piratenmandate (bundesland+) >
<!ELEMENT bundesland (parlament?, gebiet*) >
<!ATTLIST bundesland name CDATA #REQUIRED >
<!ATTLIST bundesland gs CDATA #REQUIRED >
<!ATTLIST bundesland localpirates CDATA #IMPLIED >
<!ELEMENT gebiet (parlament*, gebiet*) >
<!ATTLIST gebiet type CDATA #REQUIRED >
<!ATTLIST gebiet name CDATA #REQUIRED >
<!ATTLIST gebiet gs CDATA #IMPLIED >
<!ATTLIST gebiet localkey CDATA #IMPLIED > <!--Amtlicher Schlรผssel, falls kein gs-->
<!ATTLIST gebiet arbkey CDATA #IMPLIED > <!--Beliebiger Schlรผssel, falls sonst keiner-->
<!ATTLIST gebiet localpirates CDATA #IMPLIED >
<!ELEMENT parlament (oa?, mandat+, fraktion?, story?, feed?) >
<!ATTLIST parlament name CDATA #REQUIRED >
<!ATTLIST parlament seats CDATA #IMPLIED >
<!ATTLIST parlament ris CDATA #IMPLIED >
<!ELEMENT oa EMPTY >
<!ATTLIST oa url CDATA #REQUIRED >
<!ELEMENT mandat (#PCDATA) >
<!ATTLIST mandat type (pirat | transfer | fremdliste) #REQUIRED >
<!ATTLIST mandat name CDATA #IMPLIED >
<!ATTLIST mandat from CDATA #IMPLIED >
<!ATTLIST mandat multi CDATA #IMPLIED >
<!ATTLIST mandat email CDATA #IMPLIED >
<!ELEMENT fraktion (partner*) >
<!ATTLIST fraktion type (piraten | gemeinsam | gruppe | fremd | none | unknown) #REQUIRED >
<!ATTLIST fraktion name CDATA #IMPLIED >
<!ATTLIST fraktion url CDATA #IMPLIED >
<!ATTLIST fraktion email CDATA #IMPLIED >
<!ELEMENT story (#PCDATA) >
<!ATTLIST story source CDATA #IMPLIED >
<!ELEMENT feed (#PCDATA) >
<!ATTLIST feed url CDATA #IMPLIED >
<!ELEMENT partner EMPTY >
<!ATTLIST partner name CDATA #IMPLIED >
<!ATTLIST partner partei CDATA #REQUIRED >
<!ATTLIST partner num CDATA #IMPLIED >

File diff suppressed because it is too large Load Diff

@ -0,0 +1,22 @@
๏ปฟ'Imports Microsoft.Web.WebPages.OAuth
Public Class AuthConfig
Public Shared Sub RegisterAuth()
' To let users of this site log in using their accounts from other sites such as Microsoft, Facebook, and Twitter,
' you must update this site. For more information visit http://go.microsoft.com/fwlink/?LinkID=252166
' OAuthWebSecurity.RegisterMicrosoftClient(
' clientId:="",
' clientSecret:="")
' OAuthWebSecurity.RegisterTwitterClient(
' consumerKey:="",
' consumerSecret:="")
' OAuthWebSecurity.RegisterFacebookClient(
' appId:="",
' appSecret:="")
' OAuthWebSecurity.RegisterGoogleClient()
End Sub
End Class

@ -0,0 +1,114 @@
๏ปฟImports System.Web
Imports System.Web.Optimization
Public Class BundleConfig
' For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
Public Shared Sub RegisterBundles(ByVal bundles As BundleCollection)
bundles.Add(New ScriptBundle("~/bundle/jquery").Include(
"~/Scripts/jquery-{version}.js"))
bundles.Add(New ScriptBundle("~/bundle/jqueryval").Include(
"~/Scripts/jquery.validate*"))
' Use the development version of Modernizr to develop with and learn from. Then, when you're
' ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
bundles.Add(New ScriptBundle("~/bundle/modernizr").Include(
"~/Scripts/modernizr-*"))
bundles.Add(New ScriptBundle("~/bundle/plugins-pre") _
.IncludeDirectory("~/Scripts/Plugins/_preload", "*.js"))
bundles.Add(New ScriptBundle("~/bundle/plugins") _
.IncludeDirectory("~/Scripts/Plugins", "*.js") _
.Include("~/Scripts/Plugins/moment/moment.js") _
.Include("~/Scripts/Plugins/moment/de.js") _
.Include("~/Scripts/Plugins/bootstrap.js") _
.Include("~/Scripts/Plugins/datetimepicker/bootstrap-datetimepicker.js") _
.Include("~/Scripts/Plugins/datetimepicker/bootstrap-datetimepicker.de-DE.js") _
.Include("~/Scripts/headroom.js") _
.Include("~/Scripts/Plugins/perfect-scrollbar/perfect-scrollbar.js"))
bundles.Add(New ScriptBundle("~/bundle/markdown") _
.Include("~/Scripts/MarkdownDeep.js") _
.Include("~/Scripts/MarkdownDeepEditor.js") _
.Include("~/Scripts/MarkdownDeepEditorUI.js"))
bundles.Add(New ScriptBundle("~/bundle/main").Include(
"~/ScriptsCustom/tools.js",
"~/ScriptsCustom/xhr.js",
"~/ScriptsCustom/main.js",
"~/ScriptsCustom/validation.js",
"~/ScriptsCustom/responsive-tables.js"))
bundles.Add(New ScriptBundle("~/bundle/representations").Include(
"~/ScriptsCustom/representations.js"))
bundles.Add(New ScriptBundle("~/bundle/teaser").Include(
"~/ScriptsCustom/teaser.js"))
bundles.Add(New ScriptBundle("~/bundle/feedback").Include(
"~/ScriptsCustom/feedback.js"))
bundles.Add(New ScriptBundle("~/bundle/notifications").Include(
"~/ScriptsCustom/notifications.js"))
bundles.Add(New ScriptBundle("~/bundle/admin") _
.Include("~/ScriptsCustom/admin.js") _
.Include("~/Scripts/Plugins/picker/picker.js"))
'NICHT 'IncludeDirectory', weil Reihenfolge wichtig !!!
bundles.Add(New StyleBundle("~/css/plugins").Include(
"~/Content/Plugins/flatstrap.css",
"~/Content/Plugins/flatstrap-responsive.css",
"~/Content/Plugins/tooltipster.css",
"~/Content/Plugins/bootstrap-select.css",
"~/Content/Plugins/selectize.css",
"~/Content/Plugins/jqcloud.css",
"~/Scripts/mdd_styles.css",
"~/Content/Plugins/bootstrap-datetimepicker.css",
"~/Scripts/Plugins/perfect-scrollbar/perfect-scrollbar.css"))
'"~/Content/Plugins/jquery.mCustomScrollbar.css",
'"~/Content/Plugins/jquery.mCustomScrollbar.openantrag.css"))
'"~/Content/Plugins/jquery.jscrollpane.css",
bundles.Add(New StyleBundle("~/css/styles-v2") _
.Include("~/Content/style.css") _
.Include("~/Content/domain.css"))
bundles.Add(New StyleBundle("~/css/home").Include("~/Content/home.css"))
bundles.Add(New StyleBundle("~/css/statistics").Include("~/Content/statistics.css"))
bundles.Add(New StyleBundle("~/css/feedback").Include("~/Content/feedback.css"))
bundles.Add(New StyleBundle("~/css/api").Include("~/Content/api.css"))
bundles.Add(New StyleBundle("~/css/faq").Include("~/Content/faq.css"))
bundles.Add(New StyleBundle("~/css/list").Include("~/Content/list.css"))
bundles.Add(New StyleBundle("~/css/search").Include("~/Content/search.css"))
bundles.Add(New StyleBundle("~/css/success").Include("~/Content/success.css").Include("~/Content/proposal.css"))
bundles.Add(New StyleBundle("~/css/tags").Include("~/Content/tags.css"))
bundles.Add(New StyleBundle("~/css/notifications").Include("~/Content/notifications.css"))
bundles.Add(New StyleBundle("~/css/error").Include("~/Content/error.css"))
For Each r As Representation In GlobalData.Representations.Items
bundles.Add(New StyleBundle(String.Concat("~/css/representations-", r.Key)) _
.Include("~/Content/representation.css") _
.Include(String.Concat("~/Content/Representations/", r.Key, "/style-", r.Key, ".css")))
bundles.Add(New StyleBundle(String.Concat("~/css/proposal-", r.Key)) _
.Include("~/Content/proposal.css") _
.Include(String.Concat("~/Content/Representations/", r.Key, "/style-", r.Key, ".css")))
Next
Dim tss As New Teasers
For Each t As Teaser In tss.Items
bundles.Add(New StyleBundle(String.Concat("~/css/teaser-", t.Key)) _
.Include("~/Content/teaser.css") _
.Include(String.Concat("~/Content/Teaser/", t.Key, "/style-", t.Key, ".css")))
Next
End Sub
End Class

@ -0,0 +1,12 @@
๏ปฟImports System.Web
Imports System.Web.Mvc
Public Class FilterConfig
Public Shared Sub RegisterGlobalFilters(ByVal filters As GlobalFilterCollection)
filters.Add(New HandleCustomErrorAttribute With {.View = "Uups"})
End Sub
End Class

@ -0,0 +1,24 @@
๏ปฟImports System.Net.Http.Formatting
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Serialization
'Imports WebApiContrib.Formatting.Jsonp
Public Class FormatterConfig
Public Shared Sub RegisterFormatters(formatters As MediaTypeFormatterCollection)
'>>> WebApiContrib.Formatting.Jsonp
'>>> STACKOVERFLOW-EXCEPTION: https://github.com/WebApiContrib/WebApiContrib.Formatting.Jsonp/pull/10
'Dim jsonFormatter = formatters.JsonFormatter
'jsonFormatter.SerializerSettings = New JsonSerializerSettings() With {
' .ContractResolver = New CamelCasePropertyNamesContractResolver()
'}
'Dim jsonpFormatter = New JsonpMediaTypeFormatter(formatters.JsonFormatter)
'formatters.Insert(0, jsonpFormatter)
End Sub
End Class

@ -0,0 +1,148 @@
๏ปฟImports System.Web.Mvc
Imports System.Web.Routing
Public Class RouteConfig
Public Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
routes.MapRoute(name:="Overview", url:="Overview",
defaults:=New With {.controller = "Home", .action = "Overview"})
routes.MapRoute(name:="Faq", url:="faq",
defaults:=New With {.controller = "Home", .action = "Faq"})
routes.MapRoute(name:="Api", url:="api",
defaults:=New With {.controller = "Home", .action = "Api"})
routes.MapRoute(name:="ApiDE", url:="schnittstellen",
defaults:=New With {.controller = "Home", .action = "Api"})
routes.MapRoute(name:="ProposalAllFeed", url:="feed",
defaults:=New With {.controller = "Home", .action = "ProposalAllFeed"})
routes.MapRoute(name:="Journal", url:="journal/{pageNo}",
defaults:=New With {.controller = "Home", .action = "Journal", .pageNo = 1})
routes.MapRoute(name:="Success", url:="success/{pageNo}",
defaults:=New With {.controller = "Home", .action = "Success", .pageNo = 1})
routes.MapRoute(name:="SuccessDE", url:="erfolge/{pageNo}",
defaults:=New With {.controller = "Home", .action = "Success", .pageNo = 1})
routes.MapRoute(name:="List", url:="list/",
defaults:=New With {.controller = "Home", .action = "List"})
routes.MapRoute(name:="ListDE", url:="liste/",
defaults:=New With {.controller = "Home", .action = "List"})
routes.MapRoute(name:="Search", url:="search/{searchTerms}/{pageNo}",
defaults:=New With {.controller = "Home", .action = "Search", .searchTerms = "", .pageNo = 1})
routes.MapRoute(name:="SearchDE", url:="suche/{searchTerms}/{pageNo}",
defaults:=New With {.controller = "Home", .action = "Search", .searchTerms = "", .pageNo = 1})
routes.MapRoute(name:="Tags", url:="tags/{tag}/{pageNo}",
defaults:=New With {.controller = "Home", .action = "Tags", .tag = "", .pageNo = 1})
routes.MapRoute(name:="TagsDE", url:="themen/{tag}/{pageNo}",
defaults:=New With {.controller = "Home", .action = "Tags", .tag = "", .pageNo = 1})
routes.MapRoute(name:="FeedbackService", url:="feedback/service/{action}",
defaults:=New With {.controller = "Feedback", .action = ""})
routes.MapRoute(name:="Feedback", url:="feedback/{key}",
defaults:=New With {.controller = "Feedback", .action = "Index", .key = ""})
routes.MapRoute(name:="NotificationsFeed", url:="notifications/feed/{type}",
defaults:=New With {.controller = "Notifications", .action = "Feed", .type = -1})
routes.MapRoute(name:="NotificationsFeedDE", url:="mitteilungen/feed/{type}",
defaults:=New With {.controller = "Notifications", .action = "Feed", .type = -1})
routes.MapRoute(name:="NotificationsService", url:="notifications/service/{action}",
defaults:=New With {.controller = "Notifications", .action = ""})
routes.MapRoute(name:="Notifications", url:="notifications/{type}",
defaults:=New With {.controller = "Notifications", .action = "Index", .type = ""})
routes.MapRoute(name:="NotificationsDE", url:="mitteilungen/{type}",
defaults:=New With {.controller = "Notifications", .action = "Index", .type = ""})
routes.MapRoute(name:="Statistics", url:="statistics/{statPart}",
defaults:=New With {.controller = "Statistics", .action = "Index", .statPart = ""})
routes.MapRoute(name:="StatisticsDE", url:="statistiken/{statPart}",
defaults:=New With {.controller = "Statistics", .action = "Index", .statPart = ""})
routes.MapRoute(name:="AllRepresentationsStyle", url:="allrepresentationstyle.css",
defaults:=New With {.controller = "Home", .action = "AllRepresentationsStyle"})
'*** Representation/Proposal-Routes ***
'wiesbaden > Representation
'wiesbaden/1 > Representation-Page
'wiesbaden/mein-antrag > Proposal
For Each rep As Representation In GlobalData.Representations.Items
'Representation
routes.MapRoute(name:=String.Concat("RepresentationHome-", rep.Key), url:=rep.Key,
defaults:=New With {.controller = "Representation", .action = "Index", .keyRepresentation = rep.Key})
routes.MapRoute(name:=String.Concat("RepresentationJournal-", rep.Key), url:=String.Concat(rep.Key, "/journal/{pageNo}"),
defaults:=New With {.controller = "Representation", .action = "Journal", .keyRepresentation = rep.Key, .pageNo = 1},
constraints:=New With {.pageNo = "\d+"})
routes.MapRoute(name:=String.Concat("RepresentationList", rep.Key), url:=String.Concat(rep.Key, "/list"),
defaults:=New With {.controller = "Representation", .action = "List", .keyRepresentation = rep.Key})
routes.MapRoute(name:=String.Concat("RepresentationListDE", rep.Key), url:=String.Concat(rep.Key, "/liste"),
defaults:=New With {.controller = "Representation", .action = "List", .keyRepresentation = rep.Key})
If (rep.Status And Representations.StatusConjuction.Ended) = 0 Then
routes.MapRoute(name:=String.Concat("RepresentationAdd", rep.Key), url:=String.Concat(rep.Key, "/add"),
defaults:=New With {.controller = "Representation", .action = "Add", .keyRepresentation = rep.Key})
routes.MapRoute(name:=String.Concat("RepresentationAddDE", rep.Key), url:=String.Concat(rep.Key, "/neu"),
defaults:=New With {.controller = "Representation", .action = "Add", .keyRepresentation = rep.Key})
routes.MapRoute(name:=String.Concat("RepresentationBanner", rep.Key), url:=String.Concat(rep.Key, "/banner"),
defaults:=New With {.controller = "Representation", .action = "Banner", .keyRepresentation = rep.Key})
routes.MapRoute(name:=String.Concat("RepresentationSettings", rep.Key), url:=String.Concat(rep.Key, "/einstellungen"),
defaults:=New With {.controller = "Representation", .action = "Settings", .keyRepresentation = rep.Key})
End If
routes.MapRoute(name:=String.Concat("RepresentationStyle", rep.Key), url:=String.Concat(rep.Key, "/style-representation"),
defaults:=New With {.controller = "Representation", .action = "RepresentationStyle", .keyRepresentation = rep.Key})
routes.MapRoute(name:=String.Concat("RepresentationFeedRoute", rep.Key), url:=String.Concat(rep.Key, "/feed"),
defaults:=New With {.controller = "Representation", .action = "ProposalFeed", .keyRepresentation = rep.Key})
'Proposal
routes.MapRoute(name:=String.Concat("ProposalRoute", rep.Key), url:=String.Concat(rep.Key, "/{titleUrl}"),
defaults:=New With {.controller = "Representation", .action = "Proposal", .keyRepresentation = rep.Key, .titleUrl = ""})
'SuccessStory
routes.MapRoute(name:=String.Concat("SuccessStoryRoute", rep.Key), url:=String.Concat(rep.Key, "/{titleUrl}/success"),
defaults:=New With {.controller = "Representation", .action = "SuccessStory", .keyRepresentation = rep.Key, .titleUrl = ""})
routes.MapRoute(name:=String.Concat("SuccessStoryRouteDE", rep.Key), url:=String.Concat(rep.Key, "/{titleUrl}/erfolg"),
defaults:=New With {.controller = "Representation", .action = "SuccessStory", .keyRepresentation = rep.Key, .titleUrl = ""})
Next
Dim tss As New Teasers
For Each tsr As Teaser In tss.Items
routes.MapRoute(name:=String.Concat("TeaserHome-", tsr.Key), url:=tsr.TeaserUrl,
defaults:=New With {.controller = "Teaser", .action = "Index", .keyTeaser = tsr.Key})
routes.MapRoute(name:=String.Concat("TeaserStyle", tsr.Key), url:=String.Concat(tsr.TeaserUrl, "/style-teaser"),
defaults:=New With {.controller = "Teaser", .action = "TeaserStyle", .keyTeaser = tsr.Key})
Next
routes.MapRoute(name:="Error", url:="uups/{action}",
defaults:=New With {.controller = "Error", .action = "Index"})
routes.MapRoute(name:="ErrorLog", url:="errors/{id}",
defaults:=New With {.controller = "Error", .action = "ErrorLog"})
routes.MapRoute(name:="Default", url:="{controller}/{action}",
defaults:=New With {.controller = "Home", .action = "Index"})
End Sub
End Class

@ -0,0 +1,108 @@
๏ปฟ
Imports System.Web.Http
Public Class WebApiConfig
Public Shared Sub Register(ByVal config As HttpConfiguration)
Dim routes As HttpRouteCollection = config.Routes
'*************************************************************************
routes.MapHttpRoute(name:="RepresentationApi",
routeTemplate:="api/representation/{action}/{key}",
defaults:=New With {.controller = "RepresentationApi",
.key = RouteParameter.Optional})
routes.MapHttpRoute(name:="RepresentationApiExt",
routeTemplate:="api/representation/{action}/{key}/{id}",
defaults:=New With {.controller = "RepresentationApi",
.key = "",
.id = ""})
'*************************************************************************
'(muss VOR der Default-Route stehen, damit ALL nicht als Action interpretiert wird)
routes.MapHttpRoute(name:="ProposalApiItemsCount",
routeTemplate:="api/proposal/{key}/getcount",
defaults:=New With {.controller = "ProposalApi",
.key = "ALL",
.action = "GetCount"})
routes.MapHttpRoute(name:="ProposalApi",
routeTemplate:="api/proposal/{action}/{id}",
defaults:=New With {.controller = "ProposalApi",
.id = RouteParameter.Optional})
routes.MapHttpRoute(name:="ProposalApiTitleUrl",
routeTemplate:="api/proposal/{key}/getbytitleurl/{titleUrl}",
defaults:=New With {.controller = "ProposalApi",
.key = "",
.titleUrl = ""})
routes.MapHttpRoute(name:="ProposalApiItemsTop",
routeTemplate:="api/proposal/{key}/gettop/{count}",
defaults:=New With {.controller = "ProposalApi",
.key = "ALL",
.action = "GetTop",
.count = 5})
routes.MapHttpRoute(name:="ProposalApiItemsPage",
routeTemplate:="api/proposal/{key}/getpage/{pageNo}/{pageCount}",
defaults:=New With {.controller = "ProposalApi",
.key = "ALL",
.action = "GetPage",
.pageNo = 1,
.pageCount = 5})
routes.MapHttpRoute(name:="ProposalApiItemsTag",
routeTemplate:="api/proposal/{key}/getbytag/{tag}",
defaults:=New With {.controller = "ProposalApi",
.key = "ALL",
.action = "GetByTag",
.tag = ""})
routes.MapHttpRoute(name:="ProposalApiTags",
routeTemplate:="api/proposal/gettags",
defaults:=New With {.controller = "ProposalApi",
.action = "GetTags"})
routes.MapHttpRoute(name:="ProposalApiPost",
routeTemplate:="api/proposal/{action}",
defaults:=New With {.controller = "ProposalApi"})
'*************************************************************************
routes.MapHttpRoute(name:="NotificationsApiItemsLast",
routeTemplate:="api/notifications/getlast/{count}",
defaults:=New With {.controller = "NotificationsApi",
.action = "GetLast",
.count = 5})
routes.MapHttpRoute(name:="NotificationsApiItemsLastByType",
routeTemplate:="api/notifications/getlastbytype/{typeId}/{count}",
defaults:=New With {.controller = "NotificationsApi",
.action = "GetLastByType",
.typeId = 0,
.count = 5})
routes.MapHttpRoute(name:="NotificationsApi",
routeTemplate:="api/notifications/{action}/{key}",
defaults:=New With {.controller = "NotificationsApi",
.key = RouteParameter.Optional})
'*************************************************************************
'routes.MapHttpRoute(name:="DefaultApi",
' routeTemplate:="api/{controller}/{id}",
' defaults:=New With {.id = RouteParameter.Optional})
'Uncomment the following line of code to enable query support for actions
'with an IQueryable or IQueryable(Of T) return type.
'To avoid processing unexpected or malicious queries, use the validation
'settings on QueryableAttribute to validate incoming queries.
'For more information, visit http://go.microsoft.com/fwlink/?LinkId=279712.
'config.EnableQuerySupport()
End Sub
End Class

@ -0,0 +1,235 @@
/*!
* Datepicker for Bootstrap
*
* Copyright 2012 Stefan Petre
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*/
.clearfix {
*zoom: 1;
}
.clearfix:before, .clearfix:after {
display: table;
content: "";
line-height: 0;
}
.clearfix:after {
clear: both;
}
.hide-text {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
.input-block-level {
display: block;
width: 100%;
min-height: 30px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.bootstrap-datetimepicker-widget {
top: 0;
left: 0;
width: 250px;
padding: 4px;
margin-top: 1px;
z-index: 3000;
-webkit-box-shadow: 2px 2px 12px -4px rgba(0, 0, 0, 0.5);
box-shadow: 2px 2px 12px -4px rgba(0, 0, 0, 0.5);
}
.bootstrap-datetimepicker-widget:before {
content: '';
display: inline-block;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid #ccc;
border-bottom-color: rgba(0,0,0,0.2);
position: absolute;
top: -7px;
left: 6px;
}
.bootstrap-datetimepicker-widget:after {
content: '';
display: inline-block;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid #fff;
position: absolute;
top: -6px;
left: 7px;
}
.bootstrap-datetimepicker-widget.pull-right:before {
left: auto;
right: 6px;
}
.bootstrap-datetimepicker-widget.pull-right:after {
left: auto;
right: 7px;
}
.bootstrap-datetimepicker-widget li {
list-style-type: none;
margin-bottom: 0;
}
.bootstrap-datetimepicker-widget > ul {
list-style-type: none;
margin: 0;
}
.bootstrap-datetimepicker-widget .timepicker-hour, .bootstrap-datetimepicker-widget .timepicker-minute, .bootstrap-datetimepicker-widget .timepicker-second {
width: 100%;
font-weight: bold;
font-size: 1.2em;
}
.bootstrap-datetimepicker-widget table[data-hour-format="12"] .separator {
width: 4px;
padding: 0;
margin: 0;
}
.bootstrap-datetimepicker-widget .datepicker > div {
display: none;
}
.bootstrap-datetimepicker-widget .picker-switch {
text-align: center;
background-color: #f4f4f4;
}
.bootstrap-datetimepicker-widget table {
width: 100%;
margin: 0;
}
.bootstrap-datetimepicker-widget td, .bootstrap-datetimepicker-widget th {
text-align: center;
width: 20px;
height: 20px;
}
.bootstrap-datetimepicker-widget td.day:hover, .bootstrap-datetimepicker-widget td.hour:hover, .bootstrap-datetimepicker-widget td.minute:hover, .bootstrap-datetimepicker-widget td.second:hover {
background: #eee;
cursor: pointer;
}
.bootstrap-datetimepicker-widget td.old, .bootstrap-datetimepicker-widget td.new {
color: #999;
}
.bootstrap-datetimepicker-widget td.active, .bootstrap-datetimepicker-widget td.active:hover {
color: #fff;
background-color: #333;
border-color: #333;
color: #fff;
}
.bootstrap-datetimepicker-widget td.active:hover, .bootstrap-datetimepicker-widget td.active:hover:hover, .bootstrap-datetimepicker-widget td.active:active, .bootstrap-datetimepicker-widget td.active:hover:active, .bootstrap-datetimepicker-widget td.active.active, .bootstrap-datetimepicker-widget td.active:hover.active, .bootstrap-datetimepicker-widget td.active.disabled, .bootstrap-datetimepicker-widget td.active:hover.disabled, .bootstrap-datetimepicker-widget td.active[disabled], .bootstrap-datetimepicker-widget td.active:hover[disabled] {
color: #fff;
background-color: #333;
}
.bootstrap-datetimepicker-widget td.active:active, .bootstrap-datetimepicker-widget td.active:hover:active, .bootstrap-datetimepicker-widget td.active.active, .bootstrap-datetimepicker-widget td.active:hover.active {
background-color: #333;
}
.bootstrap-datetimepicker-widget td.disabled, .bootstrap-datetimepicker-widget td.disabled:hover {
background: 0;
color: #999;
cursor: not-allowed;
}
.bootstrap-datetimepicker-widget td span {
display: block;
width: 47px;
height: 54px;
line-height: 54px;
float: left;
margin: 2px;
cursor: pointer;
}
.bootstrap-datetimepicker-widget td span:hover {
background: #eee;
}
.bootstrap-datetimepicker-widget td span.active {
color: #fff;
background-color: #333;
border-color: #333;
color: #fff;
}
.bootstrap-datetimepicker-widget td span.active:hover, .bootstrap-datetimepicker-widget td span.active:active, .bootstrap-datetimepicker-widget td span.active.active, .bootstrap-datetimepicker-widget td span.active.disabled, .bootstrap-datetimepicker-widget td span.active[disabled] {
color: #fff;
background-color: #333;
}
.bootstrap-datetimepicker-widget td span.active:active, .bootstrap-datetimepicker-widget td span.active.active {
background-color: #333;
}
.bootstrap-datetimepicker-widget td span.old {
color: #999;
}
.bootstrap-datetimepicker-widget td span.disabled, .bootstrap-datetimepicker-widget td span.disabled:hover {
background: 0;
color: #999;
cursor: not-allowed;
}
.bootstrap-datetimepicker-widget th.switch {
width: 145px;
}
.bootstrap-datetimepicker-widget th.next, .bootstrap-datetimepicker-widget th.prev {
font-size: 21px;
}
.bootstrap-datetimepicker-widget th.disabled, .bootstrap-datetimepicker-widget th.disabled:hover {
background: 0;
color: #999;
cursor: not-allowed;
}
.bootstrap-datetimepicker-widget thead tr:first-child th {
cursor: pointer;
}
.bootstrap-datetimepicker-widget thead tr:first-child th:hover {
background: #eee;
}
.input-append.date .add-on i, .input-prepend.date .add-on i {
display: block;
cursor: pointer;
width: 16px;
height: 16px;
}
.bootstrap-datetimepicker-widget.left-oriented:before {
left: auto;
right: 6px;
}
.bootstrap-datetimepicker-widget.left-oriented:after {
left: auto;
right: 7px;
}

@ -0,0 +1,183 @@
.bootstrap-select.btn-group,
.bootstrap-select.btn-group[class*="span"] {
float: none;
display: inline-block;
/*KRZE: margin-bottom: 10px;*/
margin-left: 0;
}
.form-search .bootstrap-select.btn-group,
.form-inline .bootstrap-select.btn-group,
.form-horizontal .bootstrap-select.btn-group {
margin-bottom: 0;
}
.bootstrap-select.btn-group.pull-right,
.bootstrap-select.btn-group[class*="span"].pull-right,
.row-fluid .bootstrap-select.btn-group[class*="span"].pull-right {
float: right;
}
.input-append .bootstrap-select.btn-group {
margin-left: -1px;
}
.input-prepend .bootstrap-select.btn-group {
margin-right: -1px;
}
.bootstrap-select:not([class*="span"]) {
width: 220px;
}
.bootstrap-select {
width: 220px\9; /*IE8 and below*/
}
.bootstrap-select .btn {
width: 100%;
}
.bootstrap-select.show-menu-arrow.open .btn {
z-index: 1001;
}
.bootstrap-select .btn:focus {
outline: thin dotted #333333 !important;
outline: 5px auto -webkit-focus-ring-color !important;
outline-offset: -2px;
}
.bootstrap-select.btn-group .btn .filter-option {
overflow: hidden;
position: absolute;
left: 12px;
right: 25px;
text-align: left;
}
.bootstrap-select.btn-group .btn .caret {
position: absolute;
right: 12px;
}
.bootstrap-select.btn-group > .disabled,
.bootstrap-select.btn-group .dropdown-menu li.disabled > a {
cursor: not-allowed;
}
.bootstrap-select.btn-group[class*="span"] .btn {
width: 100%;
}
.bootstrap-select.btn-group .dropdown-menu {
min-width: 100%;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.bootstrap-select.btn-group .dropdown-menu dt {
display: block;
padding: 3px 20px;
cursor: default;
}
.bootstrap-select.btn-group .div-contain {
overflow: hidden;
}
.bootstrap-select.btn-group .dropdown-menu li > a.opt {
padding-left: 35px;
}
.bootstrap-select.btn-group .dropdown-menu li > a {
min-height: 20px;
cursor: pointer;
}
.bootstrap-select.btn-group .dropdown-menu li > dt small {
font-weight: normal;
}
.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a i.check-mark {
display: inline-block;
position: absolute;
right: 15px;
margin-top: 2.5px;
}
.bootstrap-select.btn-group .dropdown-menu li a i.check-mark {
display: none;
}
.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text {
margin-right: 34px;
}
.bootstrap-select.btn-group .dropdown-menu li small {
padding-left: 0.5em;
}
.bootstrap-select.btn-group .dropdown-menu li:not(.disabled) > a:hover small,
.bootstrap-select.btn-group .dropdown-menu li:not(.disabled) > a:focus small {
color: #64b1d8;
color: rgba(255,255,255,0.4);
}
.bootstrap-select.btn-group .dropdown-menu li > dt small {
font-weight: normal;
}
.bootstrap-select.show-menu-arrow .dropdown-toggle:before {
content: '';
display: inline-block;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid #CCC;
border-bottom-color: rgba(0, 0, 0, 0.2);
position: absolute;
bottom: -4px;
left: 9px;
display: none;
}
.bootstrap-select.show-menu-arrow .dropdown-toggle:after {
content: '';
display: inline-block;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid white;
position: absolute;
bottom: -4px;
left: 10px;
display: none;
}
.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before {
bottom: auto;
top: -3px;
border-top: 7px solid #ccc;
border-bottom: 0;
border-top-color: rgba(0, 0, 0, 0.2);
}
.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after {
bottom: auto;
top: -3px;
border-top: 6px solid #ffffff;
border-bottom: 0;
}
.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before {
right: 12px;
left: auto;
}
.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after {
right: 13px;
left: auto;
}
.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:before,
.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:after {
display: block;
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,145 @@
/*!* Bootstrap Responsive v2.3.1 * * Copyright 2012 Twitter,Inc * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world @twitter by @mdo and @fat. */ .clearfix{*zoom:1;}
.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}.clearfix:after{clear:both;}
.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
@-ms-viewport{width:device-width;}.hidden{display:none;visibility:hidden;}.visible-phone{display:none!important;}
.visible-tablet{display:none!important;}.hidden-desktop{display:none!important;}
.visible-desktop{display:inherit!important;}@media(min-width:768px) and(max-width:979px){.hidden-desktop{display:inherit!important;}
.visible-desktop{display:none!important;}.visible-tablet{display:inherit!important;}
.hidden-tablet{display:none!important;}}@media(max-width:767px){.hidden-desktop{display:inherit!important;}
.visible-desktop{display:none!important;}.visible-phone{display:inherit!important;}
.hidden-phone{display:none!important;}}.visible-print{display:none!important;}@media print{.visible-print{display:inherit!important;}
.hidden-print{display:none!important;}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1;}
.row:before,.row:after{display:table;content:"";line-height:0;}.row:after{clear:both;}
[class*="span"]{float:left;min-height:1px;margin-left:30px;}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;}
.span12{width:1170px;}.span11{width:1070px;}.span10{width:970px;}.span9{width:870px;}
.span8{width:770px;}.span7{width:670px;}.span6{width:570px;}.span5{width:470px;}
.span4{width:370px;}.span3{width:270px;}.span2{width:170px;}.span1{width:70px;}.offset12{margin-left:1230px;}
.offset11{margin-left:1130px;}.offset10{margin-left:1030px;}.offset9{margin-left:930px;}
.offset8{margin-left:830px;}.offset7{margin-left:730px;}.offset6{margin-left:630px;}
.offset5{margin-left:530px;}.offset4{margin-left:430px;}.offset3{margin-left:330px;}
.offset2{margin-left:230px;}.offset1{margin-left:130px;}.row-fluid{width:100%;*zoom:1;}
.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}.row-fluid:after{clear:both;}
.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;}
.row-fluid [class*="span"]:first-child{margin-left:0;}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%;}
.row-fluid .span12{width:100%;*width:99.94680851063829%;}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%;}
.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%;}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%;}
.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%;}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%;}
.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%;}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%;}
.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%;}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%;}
.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%;}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%;}
.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%;}
.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%;}
.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%;}
.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%;}
.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%;}
.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%;}
.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%;}
.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%;}
.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%;}
.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%;}
.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%;}
.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%;}
.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%;}
.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%;}
.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%;}
.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%;}
.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%;}
.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%;}
.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%;}
.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%;}
.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%;}
.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%;}
.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%;}
.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%;}
input,textarea,.uneditable-input{margin-left:0;}.controls-row [class*="span"]+[class*="span"]{margin-left:30px;}
input.span12,textarea.span12,.uneditable-input.span12{width:1156px;}input.span11,textarea.span11,.uneditable-input.span11{width:1056px;}
input.span10,textarea.span10,.uneditable-input.span10{width:956px;}input.span9,textarea.span9,.uneditable-input.span9{width:856px;}
input.span8,textarea.span8,.uneditable-input.span8{width:756px;}input.span7,textarea.span7,.uneditable-input.span7{width:656px;}
input.span6,textarea.span6,.uneditable-input.span6{width:556px;}input.span5,textarea.span5,.uneditable-input.span5{width:456px;}
input.span4,textarea.span4,.uneditable-input.span4{width:356px;}input.span3,textarea.span3,.uneditable-input.span3{width:256px;}
input.span2,textarea.span2,.uneditable-input.span2{width:156px;}input.span1,textarea.span1,.uneditable-input.span1{width:56px;}
.thumbnails{margin-left:-30px;}.thumbnails>li{margin-left:30px;}.row-fluid .thumbnails{margin-left:0;}
}@media(min-width:768px) and(max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;}
.row:after{clear:both;}[class*="span"]{float:left;min-height:1px;margin-left:20px;}
.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;}
.span12{width:724px;}.span11{width:662px;}.span10{width:600px;}.span9{width:538px;}
.span8{width:476px;}.span7{width:414px;}.span6{width:352px;}.span5{width:290px;}
.span4{width:228px;}.span3{width:166px;}.span2{width:104px;}.span1{width:42px;}.offset12{margin-left:764px;}
.offset11{margin-left:702px;}.offset10{margin-left:640px;}.offset9{margin-left:578px;}
.offset8{margin-left:516px;}.offset7{margin-left:454px;}.offset6{margin-left:392px;}
.offset5{margin-left:330px;}.offset4{margin-left:268px;}.offset3{margin-left:206px;}
.offset2{margin-left:144px;}.offset1{margin-left:82px;}.row-fluid{width:100%;*zoom:1;}
.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}.row-fluid:after{clear:both;}
.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;}
.row-fluid [class*="span"]:first-child{margin-left:0;}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%;}
.row-fluid .span12{width:100%;*width:99.94680851063829%;}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%;}
.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%;}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%;}
.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%;}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%;}
.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%;}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%;}
.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%;}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%;}
.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%;}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%;}
.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%;}
.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%;}
.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%;}
.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%;}
.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%;}
.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%;}
.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%;}
.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%;}
.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%;}
.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%;}
.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%;}
.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%;}
.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%;}
.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%;}
.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%;}
.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%;}
.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%;}
.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%;}
.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%;}
.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%;}
.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%;}
.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%;}
.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%;}
.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%;}
input,textarea,.uneditable-input{margin-left:0;}.controls-row [class*="span"]+[class*="span"]{margin-left:20px;}
input.span12,textarea.span12,.uneditable-input.span12{width:710px;}input.span11,textarea.span11,.uneditable-input.span11{width:648px;}
input.span10,textarea.span10,.uneditable-input.span10{width:586px;}input.span9,textarea.span9,.uneditable-input.span9{width:524px;}
input.span8,textarea.span8,.uneditable-input.span8{width:462px;}input.span7,textarea.span7,.uneditable-input.span7{width:400px;}
input.span6,textarea.span6,.uneditable-input.span6{width:338px;}input.span5,textarea.span5,.uneditable-input.span5{width:276px;}
input.span4,textarea.span4,.uneditable-input.span4{width:214px;}input.span3,textarea.span3,.uneditable-input.span3{width:152px;}
input.span2,textarea.span2,.uneditable-input.span2{width:90px;}input.span1,textarea.span1,.uneditable-input.span1{width:28px;}
}@media(max-width:767px){body{padding-left:20px;padding-right:20px;}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-left:-20px;margin-right:-20px;}
.container-fluid{padding:0;}.dl-horizontal dt{float:none;clear:none;width:auto;text-align:left;}
.dl-horizontal dd{margin-left:0;}.container{width:auto;}.row-fluid{width:100%;}.row,.thumbnails{margin-left:0;}
.thumbnails>li{float:none;margin-left:0;}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{float:none;display:block;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
.row-fluid [class*="offset"]:first-child{margin-left:0;}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto;}
.controls-row [class*="span"]+[class*="span"]{margin-left:0;}.modal{position:fixed;top:20px;left:20px;right:20px;width:auto;margin:0;}
.modal.fade{top:-100px;}.modal.fade.in{top:20px;}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0);}
.page-header h1 small{display:block;line-height:20px;}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;}
.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left;}
.form-horizontal .controls{margin-left:0;}.form-horizontal .control-list{padding-top:0;}
.form-horizontal .form-actions{padding-left:10px;padding-right:10px;}.media .pull-left,.media .pull-right{float:none;display:block;margin-bottom:10px;}
.media-object{margin-right:0;margin-left:0;}.modal{top:10px;left:10px;right:10px;}
.modal-header .close{padding:10px;margin:-10px;}.carousel-caption{position:static;}
}@media(max-width:979px){body{padding-top:0;}.navbar-fixed-top,.navbar-fixed-bottom{position:static;}
.navbar-fixed-top{margin-bottom:20px;}.navbar-fixed-bottom{margin-top:20px;}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px;}
.navbar .container{width:auto;padding:0;}.navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;}
.nav-collapse{clear:both;}.nav-collapse .nav{float:none;margin:0 0 10px;}.nav-collapse .nav>li{float:none;}
.nav-collapse .nav>li>a{margin-bottom:2px;}.nav-collapse .nav>.divider-vertical{display:none;}
.nav-collapse .nav .nav-header{color:#777;text-shadow:none;}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;}
.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px;}
.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2;}
.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999;}
.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-coll