marty 0.5.15 → 0.5.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (212) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +27 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +23 -0
  5. data/Gemfile +23 -0
  6. data/INDEPENDENCE_ISSUES.md +23 -0
  7. data/app/assets/images/marty/.gitkeep +0 -0
  8. data/app/components/marty/report_form.rb +9 -4
  9. data/gemini_deprecations.md +6 -0
  10. data/lib/marty/data_change.rb +99 -0
  11. data/lib/marty/data_conversion.rb +11 -3
  12. data/lib/marty/data_exporter.rb +9 -0
  13. data/lib/marty/version.rb +1 -1
  14. data/marty.gemspec +35 -0
  15. data/script/rails +8 -0
  16. data/spec/controllers/application_controller_spec.rb +52 -0
  17. data/spec/controllers/job_controller_spec.rb +226 -0
  18. data/spec/controllers/rpc_controller_spec.rb +379 -0
  19. data/spec/controllers/rpc_import_spec.rb +45 -0
  20. data/spec/dummy/README.rdoc +261 -0
  21. data/spec/dummy/Rakefile +7 -0
  22. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  23. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  24. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  25. data/spec/dummy/app/controllers/components_controller.rb +7 -0
  26. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  27. data/spec/dummy/app/mailers/.gitkeep +0 -0
  28. data/spec/dummy/app/models/.gitkeep +0 -0
  29. data/spec/dummy/app/models/gemini/amortization_type.rb +5 -0
  30. data/spec/dummy/app/models/gemini/bud_category.rb +7 -0
  31. data/spec/dummy/app/models/gemini/entity.rb +2 -0
  32. data/spec/dummy/app/models/gemini/extras/data_import.rb +5 -0
  33. data/spec/dummy/app/models/gemini/extras/settlement_import.rb +28 -0
  34. data/spec/dummy/app/models/gemini/fannie_bup.rb +29 -0
  35. data/spec/dummy/app/models/gemini/grouping.rb +8 -0
  36. data/spec/dummy/app/models/gemini/grouping_head_version.rb +14 -0
  37. data/spec/dummy/app/models/gemini/head.rb +7 -0
  38. data/spec/dummy/app/models/gemini/head_version.rb +14 -0
  39. data/spec/dummy/app/models/gemini/helper.rb +44 -0
  40. data/spec/dummy/app/models/gemini/loan_program.rb +11 -0
  41. data/spec/dummy/app/models/gemini/mortgage_type.rb +5 -0
  42. data/spec/dummy/app/models/gemini/simple.rb +6 -0
  43. data/spec/dummy/app/models/gemini/streamline_type.rb +16 -0
  44. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  45. data/spec/dummy/config.ru +4 -0
  46. data/spec/dummy/config/application.rb +82 -0
  47. data/spec/dummy/config/boot.rb +10 -0
  48. data/spec/dummy/config/database.yml.example +10 -0
  49. data/spec/dummy/config/environment.rb +5 -0
  50. data/spec/dummy/config/environments/development.rb +35 -0
  51. data/spec/dummy/config/environments/production.rb +69 -0
  52. data/spec/dummy/config/environments/test.rb +39 -0
  53. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  54. data/spec/dummy/config/initializers/delayed_job.rb +5 -0
  55. data/spec/dummy/config/initializers/inflections.rb +15 -0
  56. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  57. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  58. data/spec/dummy/config/initializers/session_store.rb +8 -0
  59. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  60. data/spec/dummy/config/locales/en.yml +5 -0
  61. data/spec/dummy/config/routes.rb +12 -0
  62. data/spec/dummy/db/migrate/20140801000000_create_groupings.rb +11 -0
  63. data/spec/dummy/db/migrate/20150406171536_create_categories.rb +27 -0
  64. data/spec/dummy/db/migrate/20150408200916_create_loan_programs.rb +26 -0
  65. data/spec/dummy/db/migrate/20150408201429_create_types.rb +21 -0
  66. data/spec/dummy/db/migrate/20150420000001_create_heads.rb +14 -0
  67. data/spec/dummy/db/migrate/20150420000002_create_head_versions.rb +15 -0
  68. data/spec/dummy/db/migrate/20150420000003_create_grouping_head_versions.rb +12 -0
  69. data/spec/dummy/db/migrate/20151023000001_create_simple.rb +12 -0
  70. data/spec/dummy/db/seeds.rb +8 -0
  71. data/spec/dummy/delorean/blame_report.dl +171 -0
  72. data/spec/dummy/delorean/data_report.dl +105 -0
  73. data/spec/dummy/delorean/fields.dl +52 -0
  74. data/spec/dummy/delorean/styles.dl +134 -0
  75. data/spec/dummy/lib/assets/.gitkeep +0 -0
  76. data/spec/dummy/lib/class_list.rb +3 -0
  77. data/spec/dummy/log/.gitkeep +0 -0
  78. data/spec/dummy/public/404.html +26 -0
  79. data/spec/dummy/public/422.html +26 -0
  80. data/spec/dummy/public/500.html +25 -0
  81. data/spec/dummy/public/favicon.ico +0 -0
  82. data/spec/dummy/public/icons/READ.txt +3 -0
  83. data/spec/dummy/public/icons/application_cascade.png +0 -0
  84. data/spec/dummy/public/icons/application_delete.png +0 -0
  85. data/spec/dummy/public/icons/application_put.png +0 -0
  86. data/spec/dummy/public/icons/application_view_detail.png +0 -0
  87. data/spec/dummy/public/icons/arrow_in.png +0 -0
  88. data/spec/dummy/public/icons/arrow_refresh.png +0 -0
  89. data/spec/dummy/public/icons/database_save.png +0 -0
  90. data/spec/dummy/public/icons/door_in.png +0 -0
  91. data/spec/dummy/public/icons/door_out.png +0 -0
  92. data/spec/dummy/public/icons/group.png +0 -0
  93. data/spec/dummy/public/icons/page_lightning.png +0 -0
  94. data/spec/dummy/public/icons/printer.png +0 -0
  95. data/spec/dummy/public/icons/report_disk.png +0 -0
  96. data/spec/dummy/public/icons/report_go.png +0 -0
  97. data/spec/dummy/public/icons/report_magnify.png +0 -0
  98. data/spec/dummy/public/icons/script.png +0 -0
  99. data/spec/dummy/public/icons/script_add.png +0 -0
  100. data/spec/dummy/public/icons/script_go.png +0 -0
  101. data/spec/dummy/public/icons/script_key.png +0 -0
  102. data/spec/dummy/public/icons/table_go.png +0 -0
  103. data/spec/dummy/public/icons/time.png +0 -0
  104. data/spec/dummy/public/icons/time_add.png +0 -0
  105. data/spec/dummy/public/icons/time_go.png +0 -0
  106. data/spec/dummy/public/icons/timeline_marker.png +0 -0
  107. data/spec/dummy/public/icons/user_add.png +0 -0
  108. data/spec/dummy/public/icons/user_delete.png +0 -0
  109. data/spec/dummy/public/icons/user_edit.png +0 -0
  110. data/spec/dummy/public/icons/wrench.png +0 -0
  111. data/spec/dummy/script/delayed_job +6 -0
  112. data/spec/dummy/script/rails +6 -0
  113. data/spec/features/javascripts/job_dashboard_live_search.js.coffee +8 -0
  114. data/spec/features/javascripts/login.js.coffee +8 -0
  115. data/spec/features/jobs_dashboard_netzke_spec.rb +24 -0
  116. data/spec/features/jobs_dashboard_spec.rb +49 -0
  117. data/spec/fixtures/scripts/load_tests/script1.dl +2 -0
  118. data/spec/fixtures/scripts/load_tests/script2.dl +2 -0
  119. data/spec/job_helper.rb +102 -0
  120. data/spec/lib/data_exporter_spec.rb +71 -0
  121. data/spec/lib/data_importer_spec.rb +461 -0
  122. data/spec/lib/xl_spec.rb +198 -0
  123. data/spec/lib/xl_styles_spec.rb +115 -0
  124. data/spec/models/api_auth_spec.rb +187 -0
  125. data/spec/models/posting_spec.rb +107 -0
  126. data/spec/models/promise_spec.rb +65 -0
  127. data/spec/models/script_spec.rb +187 -0
  128. data/spec/models/user_spec.rb +68 -0
  129. data/spec/requests/routes_spec.rb +12 -0
  130. data/spec/spec_helper.rb +61 -0
  131. data/spec/support/clean_db_helpers.rb +18 -0
  132. data/spec/support/delayed_job_helpers.rb +12 -0
  133. data/spec/support/user_helpers.rb +12 -0
  134. metadata +139 -89
  135. data/app/components/marty/auth_app.rb~ +0 -51
  136. data/app/components/marty/auth_app/javascripts/auth_app.js~ +0 -91
  137. data/app/components/marty/cm_form_panel.rb~ +0 -5
  138. data/app/components/marty/cm_grid_panel.rb~ +0 -35
  139. data/app/components/marty/data_import_view.rb~ +0 -142
  140. data/app/components/marty/extras/layout.rb~ +0 -46
  141. data/app/components/marty/live_search_grid_panel.rb~ +0 -49
  142. data/app/components/marty/main_auth_app.rb~ +0 -238
  143. data/app/components/marty/mcfly_grid_panel.rb~ +0 -80
  144. data/app/components/marty/new_posting_form.rb~ +0 -46
  145. data/app/components/marty/new_posting_window.rb~ +0 -21
  146. data/app/components/marty/pivot_grid.rb +0 -52
  147. data/app/components/marty/pivot_grid/endpoints.rb +0 -45
  148. data/app/components/marty/pivot_grid/javascripts/extensions.js +0 -150
  149. data/app/components/marty/pivot_grid/javascripts/pivot_grid.js +0 -86
  150. data/app/components/marty/pivot_grid/services.rb +0 -44
  151. data/app/components/marty/posting_grid.rb~ +0 -140
  152. data/app/components/marty/promise_view.rb~ +0 -157
  153. data/app/components/marty/promise_view/stylesheets/promise_view.css~ +0 -15
  154. data/app/components/marty/report_form.rb~ +0 -217
  155. data/app/components/marty/report_select.rb~ +0 -133
  156. data/app/components/marty/reporting.rb~ +0 -39
  157. data/app/components/marty/script_detail.rb~ +0 -430
  158. data/app/components/marty/script_form.rb~ +0 -233
  159. data/app/components/marty/script_form/javascripts/Ext.ux.form.field.CodeMirror.js~ +0 -909
  160. data/app/components/marty/script_grid.rb~ +0 -99
  161. data/app/components/marty/script_tester.rb~ +0 -213
  162. data/app/components/marty/scripting.rb~ +0 -124
  163. data/app/components/marty/select_report.rb~ +0 -143
  164. data/app/components/marty/simple_app.rb~ +0 -101
  165. data/app/components/marty/tag_grid.rb~ +0 -89
  166. data/app/components/marty/tree_panel.rb~ +0 -256
  167. data/app/components/marty/tree_panel/javascripts/tree_panel.js~ +0 -317
  168. data/app/components/marty/user_pivot.rb +0 -128
  169. data/app/components/marty/user_view.rb~ +0 -188
  170. data/app/controllers/marty/application_controller.rb~ +0 -133
  171. data/app/controllers/marty/components_controller.rb~ +0 -37
  172. data/app/controllers/marty/job_controller.rb~ +0 -28
  173. data/app/controllers/marty/rpc_controller.rb~ +0 -61
  174. data/app/helpers/marty/script_set.rb~ +0 -59
  175. data/app/models/marty/api_auth.rb~ +0 -48
  176. data/app/models/marty/data_change.rb~ +0 -141
  177. data/app/models/marty/enum.rb~ +0 -16
  178. data/app/models/marty/import_type.rb~ +0 -48
  179. data/app/models/marty/poop.rb~ +0 -169
  180. data/app/models/marty/posting.rb~ +0 -86
  181. data/app/models/marty/posting_type.rb~ +0 -21
  182. data/app/models/marty/promise.rb~ +0 -196
  183. data/app/models/marty/role.rb~ +0 -10
  184. data/app/models/marty/script.rb~ +0 -62
  185. data/app/models/marty/tag.rb~ +0 -91
  186. data/app/models/marty/user.rb~ +0 -148
  187. data/app/models/marty/user_role.rb~ +0 -13
  188. data/app/views/layouts/marty/application.html.erb~ +0 -11
  189. data/config/routes.rb~ +0 -10
  190. data/db/migrate/019_create_marty_postings.rb~ +0 -19
  191. data/db/migrate/095_create_marty_tags.rb~ +0 -19
  192. data/lib/marty.rb~ +0 -13
  193. data/lib/marty/content_handler.rb~ +0 -93
  194. data/lib/marty/data_exporter.rb~ +0 -137
  195. data/lib/marty/data_importer.rb~ +0 -114
  196. data/lib/marty/data_row_processor.rb~ +0 -206
  197. data/lib/marty/drop_folder_hook.rb~ +0 -17
  198. data/lib/marty/folder_hook.rb~ +0 -9
  199. data/lib/marty/lazy_column_loader.rb~ +0 -47
  200. data/lib/marty/mcfly_query.rb~ +0 -188
  201. data/lib/marty/migrations.rb~ +0 -65
  202. data/lib/marty/monkey.rb~ +0 -160
  203. data/lib/marty/permissions.rb~ +0 -69
  204. data/lib/marty/promise.rb~ +0 -41
  205. data/lib/marty/promise_job.rb~ +0 -121
  206. data/lib/marty/promise_proxy.rb~ +0 -69
  207. data/lib/marty/util.rb~ +0 -80
  208. data/lib/marty/version.rb~ +0 -3
  209. data/lib/marty/xl.rb~ +0 -526
  210. data/lib/pyxll/README.txt~ +0 -16
  211. data/lib/pyxll/gemini.py~ +0 -110
  212. data/lib/pyxll/pyxll.cfg~ +0 -12
@@ -0,0 +1,105 @@
1
+ import Fields
2
+
3
+ ######################################################################
4
+
5
+ TableReport:
6
+ pt_name =? nil
7
+ posting = Marty::Posting.lookup(pt_name)
8
+ pt = posting.created_dt
9
+ module_name =? nil
10
+ class_name =? nil
11
+ title =? (class_name || "Table Report") + (
12
+ if pt_name then "_" + pt_name else "")
13
+ sort_field =? nil
14
+
15
+ result_raw = Marty::DataChange.do_export(
16
+ pt,
17
+ if module_name then module_name + '::' + class_name else class_name,
18
+ sort_field,
19
+ )
20
+ row_count = result_raw.length
21
+ result = Gemini::Helper.to_csv(result_raw)
22
+ form = [
23
+ Fields::PostingField,
24
+ Fields::ClassField,
25
+ ]
26
+ format = "csv"
27
+
28
+ #####################################################################
29
+
30
+ EnumReport:
31
+ title = "Gemini Enumerations"
32
+ format = "csv"
33
+ form = []
34
+ classes = [
35
+ "AmortizationType",
36
+ "ArmIndexType",
37
+ "AutomatedUnderwritingSystemType",
38
+ "ExtraFeatureType",
39
+ "LoanPurposeType",
40
+ "LockType",
41
+ "MortgageType",
42
+ "PrepaymentPenaltyOptionType",
43
+ "ProjectLegalStructureType",
44
+ "PropertyUsageType",
45
+ "RefinanceCashOutDeterminationType",
46
+ "RuleType",
47
+ "StreamlineType",
48
+ ]
49
+
50
+ res = [
51
+ [c] +
52
+ Marty::DataChange.do_export('infinity', "Gemini::%s" % c)[1,100] +
53
+ [""]
54
+ for c in classes
55
+ ].flatten(1)
56
+
57
+ result = res
58
+
59
+ #####################################################################
60
+
61
+ DataImportParam: Fields::CsvField
62
+ field_label = "Import Text"
63
+ name = "data_import_field"
64
+ height = 600
65
+
66
+ ImportTypeField:
67
+ field_label = "Import Type"
68
+ name = "import_type"
69
+ xtype = ":combo"
70
+ store = [imp.name for imp in Marty::ImportType.get_all].sort
71
+ value = store[0]
72
+
73
+ CommaSepField:
74
+ xtype = ":checkboxfield"
75
+ name = "comma_sep"
76
+ field_label = "Comma Separated"
77
+ checked = false
78
+
79
+ DataImportReport:
80
+ roles = ["price_manager", "rule_manager"]
81
+ import_type =? nil
82
+ comma_sep =? nil
83
+
84
+ title = if import_type
85
+ then "Data Import - " + import_type
86
+ else "Data Import Job"
87
+
88
+ data_import_field =?
89
+
90
+ import_type_rec = Marty::ImportType.lookup(import_type) ||
91
+ ERR("NULL ImportType", import_type)
92
+
93
+ result = Gemini::Helper.import_data(
94
+ import_type_rec,
95
+ data_import_field,
96
+ if comma_sep then "," else nil
97
+ )
98
+
99
+ form = [
100
+ ImportTypeField,
101
+ DataImportParam,
102
+ CommaSepField,
103
+ ]
104
+
105
+ format = "csv"
@@ -0,0 +1,52 @@
1
+ PostingField:
2
+ field_label = "Posting"
3
+ xtype = ":combo"
4
+ name = "pt_name"
5
+ store = [lp.name for lp in Marty::Posting.get_latest(10)]
6
+ value = store[0]
7
+
8
+ ######################################################################
9
+
10
+ PostingField1: PostingField
11
+ field_label = "Posting 1"
12
+ name = "pt_name1"
13
+
14
+ PostingField2: PostingField
15
+ field_label = "Posting 2"
16
+ name = "pt_name2"
17
+
18
+ ######################################################################
19
+
20
+ ClassListField:
21
+ field_label = "Tables"
22
+ xtype = ":multiselectcombo"
23
+ name = "class_list"
24
+ store = Marty::DataChange.class_list
25
+
26
+ ClassField: ClassListField
27
+ xtype = ":combo"
28
+ name = "class_name"
29
+ store = Marty::DataChange.class_list
30
+
31
+ ######################################################################
32
+
33
+ JsonField:
34
+ xtype = ":textareafield"
35
+ name = "json_field"
36
+ field_label = "JSON"
37
+ auto_scroll = true
38
+ spellcheck = false
39
+ field_style = {
40
+ "font_family": 'courier new',
41
+ "font_size": '12px'
42
+ }
43
+ height = 400
44
+
45
+ CsvField: JsonField
46
+ field_label = "CSV"
47
+ name = "csv_field"
48
+
49
+ TextField:
50
+ xtype = ":textfield"
51
+ field_label = "Text"
52
+ name = "text_field"
@@ -0,0 +1,134 @@
1
+ Style:
2
+ digit_0 = {"format_code" : "0"}
3
+ digit_1 = {"format_code" : "0.0"}
4
+ digit_2 = {"format_code" : "0.00"}
5
+ digit_3 = {"format_code" : "0.000"}
6
+ digit_4 = {"format_code" : "0.0000"}
7
+ date = {"format_code" : "mm/dd/yy"}
8
+ timestamp = {"format_code" : "m/d/yy h:mm AM/PM"}
9
+ datetime = {"format_code" : "yyyy-mm-dd h:mm:ss"}
10
+ dollars = {"format_code" : "$#,###"}
11
+ dollars_cent = {"format_code" : "$#,###.##"}
12
+
13
+ bg_gray = {"bg_color": "C5D9F1"}
14
+ bg_lightgreen = {"bg_color": "99CC00"}
15
+ bg_tan = {"bg_color": "FFCC66"}
16
+ bg_redish = {"bg_color": "EF5959"}
17
+ bg_lightgray = {"bg_color": "F1F5F5"}
18
+
19
+ quoted = {"quote_prefix": true}
20
+
21
+ gray_digit_3 = bg_gray + digit_3
22
+
23
+ bg_penny = {
24
+ "bg_color": "0D056F",
25
+ "fg_color": "FFFFFF",
26
+ }
27
+
28
+ bg_highlight = {
29
+ "bg_color": "FFFF00",
30
+ "fg_color": "0D056F",
31
+ }
32
+
33
+ bold = {"b": true}
34
+
35
+ penny_bold = bold + bg_penny
36
+
37
+ align_center = {
38
+ "alignment": {
39
+ "horizontal": ":center",
40
+ }
41
+ }
42
+
43
+ align_left = {
44
+ "alignment": {
45
+ "horizontal": ":left",
46
+ }
47
+ }
48
+
49
+ align_right = {
50
+ "alignment": {
51
+ "horizontal": ":right",
52
+ }
53
+ }
54
+
55
+ calibri = {"font_name": "Calibri"}
56
+ sz_14 = {"sz": 14}
57
+ sz_12 = {"sz": 12}
58
+ sz_10 = {"sz": 10}
59
+
60
+ h_hdr = bold + bg_highlight + align_center + calibri + sz_14
61
+ m_hdr = penny_bold + align_center + calibri + sz_14
62
+ s_hdr = penny_bold + align_left + calibri + sz_12
63
+ s_hdr_dt = s_hdr + datetime
64
+ s_hdr_date = s_hdr + date
65
+ g_bold = bg_gray + bold
66
+
67
+ border_thin = {
68
+ "style" : ":thin",
69
+ "color" : "000000",
70
+ }
71
+
72
+ #####################################################################
73
+
74
+ m_hdr_style0 = {"style": m_hdr}
75
+ m_hdr_style1 = {"style": [m_hdr]}
76
+
77
+ s_hdr_style2 = {"style": [s_hdr]*2}
78
+ s_hdr_style3 = {"style": [s_hdr]*3}
79
+
80
+ HeatMapFmt:
81
+ color_scale = [
82
+ {"type":":min", "val":0, "color":"FF63BE7B"},
83
+ {"type":":percent", "val":"50", "color":"FFFFEB84"},
84
+ {"type":":max", "val":0, "color":"FFF8696B"}
85
+ ]
86
+
87
+ cfmt = {
88
+ "type": ":colorScale",
89
+ "priority": 1,
90
+ "color_scale": color_scale,
91
+ }
92
+
93
+ ThresholdFmt:
94
+ winner =? 0
95
+ thresh_cell =? '$B$1'
96
+
97
+ cfmt = {
98
+ "type": ":expression",
99
+ "priority": 1,
100
+ "dxfId" : {
101
+ "fg_color": "FFF8696B",
102
+ "type": ":dxf",
103
+ "b": true,
104
+ },
105
+ "formula": 'ABS(INDIRECT("RC", FALSE))>'+thresh_cell,
106
+ }
107
+
108
+ cfmtnot0 = {
109
+ "type" : ":cellIs",
110
+ "operator" : ":notEqual",
111
+ "formula" : "0",
112
+ "dxfId" : {
113
+ "fg_color": "FFF8696B",
114
+ "type": ":dxf",
115
+ "b": true,
116
+ },
117
+ "priority" : 1,
118
+ }
119
+
120
+ cfmtequal = {
121
+ "type" : ":cellIs",
122
+ "operator" : ":equal",
123
+ "formula" : winner.to_s,
124
+ "dxfId" :
125
+ {
126
+ "fg_color": "FFF8696B",
127
+ "type": ":dxf",
128
+ "b": true,
129
+ },
130
+ "priority" : 1,
131
+ }
132
+
133
+ Row:
134
+ blank = ["row", []]
File without changes
@@ -0,0 +1,3 @@
1
+ module ClassList
2
+ Rails.configuration.marty.class_list = ["Gemini::FannieBup"]
3
+ end
File without changes
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/404.html -->
21
+ <div class="dialog">
22
+ <h1>The page you were looking for doesn't exist.</h1>
23
+ <p>You may have mistyped the address or the page may have moved.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/422.html -->
21
+ <div class="dialog">
22
+ <h1>The change you wanted was rejected.</h1>
23
+ <p>Maybe you tried to change something you didn't have access to.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/500.html -->
21
+ <div class="dialog">
22
+ <h1>We're sorry, but something went wrong.</h1>
23
+ </div>
24
+ </body>
25
+ </html>
File without changes
@@ -0,0 +1,3 @@
1
+ This directory currently contains a bunch of empty png files which are
2
+ needed to keep the feature test happy (only used with Travis CI).
3
+ FIXME: Should decide how to include the actual famfamfam icons.
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes