interview 0.0.1 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/interview.gemspec +4 -0
  3. data/lib/generators/interview/install/install_generator.rb +47 -0
  4. data/lib/generators/interview/install/templates/32px.png +0 -0
  5. data/lib/generators/interview/install/templates/40px.png +0 -0
  6. data/lib/generators/interview/install/templates/application.js +22 -0
  7. data/lib/generators/interview/install/templates/bootstrap_interview.css.scss +98 -0
  8. data/lib/generators/interview/install/templates/ckeditor_config.js +19 -0
  9. data/lib/generators/interview/install/templates/colors.css.scss +2 -0
  10. data/lib/generators/interview/install/templates/defaults_de.yml +204 -0
  11. data/lib/generators/interview/install/templates/interview.js.coffee +72 -0
  12. data/lib/generators/interview/install/templates/interview.rb +4 -0
  13. data/lib/generators/interview/install/templates/jstree.css +916 -0
  14. data/lib/generators/interview/install/templates/jstree.js +5892 -0
  15. data/lib/generators/interview/install/templates/missing_large.png +0 -0
  16. data/lib/generators/interview/install/templates/missing_medium.png +0 -0
  17. data/lib/generators/interview/install/templates/missing_thumb.png +0 -0
  18. data/lib/generators/interview/install/templates/throbber.gif +0 -0
  19. data/lib/generators/interview/install/templates/views_defaults_de.yml +8 -0
  20. data/lib/generators/interview/view_control/templates/card.rb +6 -0
  21. data/lib/generators/interview/view_control/templates/form.rb +6 -0
  22. data/lib/generators/interview/view_control/templates/list.rb +6 -0
  23. data/lib/generators/interview/view_control/view_control_generator.rb +34 -0
  24. data/lib/interview/actionbar.rb +38 -0
  25. data/lib/interview/association_attribute.rb +33 -0
  26. data/lib/interview/association_list_attribute.rb +36 -0
  27. data/lib/interview/association_methods.rb +23 -0
  28. data/lib/interview/attribute.rb +141 -0
  29. data/lib/interview/boolean_attribute.rb +59 -0
  30. data/lib/interview/breadcrumbs.rb +21 -0
  31. data/lib/interview/container_attribute.rb +30 -0
  32. data/lib/interview/control.rb +73 -0
  33. data/lib/interview/control_def.rb +36 -0
  34. data/lib/interview/date_attribute.rb +20 -0
  35. data/lib/interview/datetime_attribute.rb +20 -0
  36. data/lib/interview/decimal_attribute.rb +10 -0
  37. data/lib/interview/dropdown.rb +26 -0
  38. data/lib/interview/form.rb +69 -0
  39. data/lib/interview/form_errors.rb +22 -0
  40. data/lib/interview/grid.rb +53 -0
  41. data/lib/interview/has_controls.rb +43 -0
  42. data/lib/interview/hidden_attribute.rb +15 -0
  43. data/lib/interview/html_control.rb +15 -0
  44. data/lib/interview/html_text_attribute.rb +19 -0
  45. data/lib/interview/image_attribute.rb +34 -0
  46. data/lib/interview/integer_attribute.rb +5 -0
  47. data/lib/interview/link.rb +129 -0
  48. data/lib/interview/list.rb +21 -0
  49. data/lib/interview/navigation.rb +55 -0
  50. data/lib/interview/navigation_item.rb +26 -0
  51. data/lib/interview/nested_form.rb +51 -0
  52. data/lib/interview/nested_form_add_link.rb +80 -0
  53. data/lib/interview/nested_form_remove_link.rb +28 -0
  54. data/lib/interview/object_context.rb +17 -0
  55. data/lib/interview/option_attribute.rb +74 -0
  56. data/lib/interview/polymorphic_add_link.rb +28 -0
  57. data/lib/interview/space.rb +18 -0
  58. data/lib/interview/string_attribute.rb +5 -0
  59. data/lib/interview/tab.rb +21 -0
  60. data/lib/interview/tab_box.rb +29 -0
  61. data/lib/interview/text.rb +15 -0
  62. data/lib/interview/text_attribute.rb +21 -0
  63. data/lib/interview/tooltip.rb +38 -0
  64. data/lib/interview/tree.rb +33 -0
  65. data/lib/interview/version.rb +1 -1
  66. data/lib/interview/view.rb +87 -0
  67. data/lib/interview.rb +196 -0
  68. metadata +107 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 214d73a81469f3042f55120139f80b2a108b9419
4
- data.tar.gz: 6cddca734537021d6e8d1eb3600f9d64025fa251
3
+ metadata.gz: 1243093b8b45f1cde37f11136901f07adbe3284d
4
+ data.tar.gz: 565c2aed48243fa5fd0a996095cc6d150bb6caab
5
5
  SHA512:
6
- metadata.gz: 948e83694d1e6633106a7181623aa2866a5a57f40413c592aa184eab9b60ff8a4670df3d4da0a14de4d3dbf409132fa83d7a93e1686e7240f4baf691307768ae
7
- data.tar.gz: 8aa7fe7a539ac8167570b99c1da9dbf32607cee67999493bc60ff2eecbe8bfbd795503d54c2362de65d245a45fed7f9f35b5f00fda950eadb6da149f952f52b2
6
+ metadata.gz: 1bcec915d352d14a1a52e35028d3c59e8d0948e305a811f474c7eff716e16df9c1b52f2df2ed5817c6972f89fc3ca64d327be673651a9cce2bcbea1a5350cbe3
7
+ data.tar.gz: 1a8d6447c720d09fd9fa21e8af4c9540e2fe67a4e56cf07b0478a1e1803bfb0404a514ad991215ff0a382b06a935fe94df0d528f4efab2bfcacbbef624ff8103
data/interview.gemspec CHANGED
@@ -20,4 +20,8 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
22
22
  spec.add_development_dependency "rake"
23
+
24
+ spec.add_runtime_dependency "activesupport"
25
+ spec.add_runtime_dependency "draper"
26
+ spec.add_runtime_dependency "builder"
23
27
  end
@@ -0,0 +1,47 @@
1
+ require 'rails/generators'
2
+
3
+ module Interview
4
+ module Generators
5
+ class InstallGenerator < ::Rails::Generators::Base
6
+
7
+ source_root File.expand_path("../templates", __FILE__)
8
+ desc "This generator installs Interview"
9
+
10
+ def add_view_controls
11
+ empty_directory "app/view_controls"
12
+ end
13
+
14
+ def add_assets
15
+ copy_file "bootstrap_interview.css.scss", "app/assets/stylesheets/bootstrap_interview.css.scss"
16
+ copy_file "colors.css.scss", "app/assets/stylesheets/colors.css.scss"
17
+ copy_file "application.js", "app/assets/javascripts/application.js" # todo: überdenken
18
+ copy_file "interview.js.coffee", "app/assets/javascripts/interview.js.coffee"
19
+ copy_file "missing_thumb.png", "app/assets/images/missing_thumb.png"
20
+ copy_file "missing_medium.png", "app/assets/images/missing_medium.png"
21
+ copy_file "missing_large.png", "app/assets/images/missing_large.png"
22
+ copy_file "32px.png", "app/assets/images/32px.png"
23
+ copy_file "40px.png", "app/assets/images/40px.png"
24
+ copy_file "throbber.gif", "app/assets/images/throbber.gif"
25
+ copy_file "jstree.css", "app/assets/stylesheets/jstree.css"
26
+ copy_file "jstree.js", "app/assets/javascripts/jstree.js"
27
+ end
28
+
29
+ def add_initializers
30
+ copy_file "interview.rb", "config/initializers/interview.rb" # todo: überarbeiten
31
+ end
32
+
33
+ def add_locales
34
+ copy_file "defaults_de.yml", "config/locales/defaults_de.yml"
35
+ empty_directory "config/locales/views"
36
+ copy_file "views_defaults_de.yml", "config/locales/views/defaults_de.yml"
37
+ empty_directory "config/locales/models"
38
+ end
39
+
40
+ def install_ckeditor
41
+ empty_directory "app/assets/javascripts/ckeditor"
42
+ copy_file "ckeditor_config.js", "app/assets/javascripts/ckeditor/config.js"
43
+ end
44
+
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,22 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file.
9
+ //
10
+ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require jquery
14
+ //= require jquery.turbolinks
15
+ //= require jquery_ujs
16
+ //= require bootstrap
17
+ //= require underscore
18
+ //= require jquery.ui.sortable
19
+ //= require jquery.ui.effect-highlight
20
+ //= require interview
21
+ //= require_tree .
22
+ //= require turbolinks
@@ -0,0 +1,98 @@
1
+ @import 'font-awesome';
2
+
3
+ @import 'colors';
4
+
5
+ $navbar-default-brand-color: $brand-primary;
6
+ $navbar-default-bg: $brand-primary-lighten;
7
+
8
+ @import 'bootstrap';
9
+
10
+ $actionbar-padding: 5px !default;
11
+ $actionbar-margin-bottom: 0px !default;
12
+
13
+ .actionbar {
14
+ > ul {
15
+ list-style: none;
16
+ padding-left: 0;
17
+ margin-bottom: $actionbar-margin-bottom;
18
+ margin-left: -$actionbar-padding;
19
+
20
+ > li {
21
+ display: inline-block;
22
+ padding-left: $actionbar-padding;
23
+ padding-right: $actionbar-padding;
24
+ }
25
+ }
26
+
27
+ .actionbar-right {
28
+ float: right !important;
29
+ margin-right: -$actionbar-padding;
30
+ }
31
+
32
+ .actionbar-title {
33
+ font-size: $font-size-large;
34
+ }
35
+
36
+ .btn {
37
+ @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);
38
+ }
39
+
40
+ }
41
+
42
+
43
+ $caption-list-margin-bottom: ($line-height-computed / 2) !default;
44
+
45
+ .caption-list {
46
+ dd {
47
+ margin-bottom: $caption-list-margin-bottom;
48
+ }
49
+ dd.dd-only {
50
+ margin-left: 0;
51
+ }
52
+ }
53
+
54
+ .caption-list.dl-horizontal {
55
+ dt {
56
+ text-align: left;
57
+ }
58
+ }
59
+
60
+
61
+ $nav-stacked-link-padding-level1: 5px 15px 5px 30px !default;
62
+ $nav-stacked-link-padding-level2: 5px 15px 5px 45px !default;
63
+
64
+ .nav.nav-pills.nav-stacked {
65
+ > li.level0 > a {
66
+ font-weight: bold;
67
+ }
68
+ > li.level1 > a {
69
+ padding: $nav-stacked-link-padding-level1;
70
+ }
71
+ > li.level2 > a {
72
+ padding: $nav-stacked-link-padding-level1;
73
+ }
74
+ }
75
+
76
+ .popover-content {
77
+ font-size: $font-size-base;
78
+ font-weight: normal;
79
+ }
80
+
81
+ .popover {
82
+ width: $popover-max-width;
83
+ }
84
+
85
+ .handle {
86
+ cursor: pointer;
87
+ color: $brand-primary;
88
+ }
89
+
90
+ .alert-info {
91
+ border: 1px solid;
92
+ }
93
+
94
+ .form-inline {
95
+ input {
96
+ width: auto;
97
+ }
98
+ }
@@ -0,0 +1,19 @@
1
+ //= require ckeditor/init
2
+
3
+ CKEDITOR.editorConfig = function( config )
4
+ {
5
+ config.enterMode = CKEDITOR.ENTER_BR;
6
+ config.toolbar = 'InterviewDefault';
7
+
8
+ config.toolbar_InterviewDefault =
9
+ [
10
+ { name: 'font', items : [ 'Format','FontSize' ] },
11
+ { name: 'basicstyles', items : [ 'Underline','Bold','Italic','Strike' ] },
12
+ { name: 'colors', items : [ 'TextColor','BGColor' ] },
13
+ { name: 'paragraph', items : [ 'NumberedList','BulletedList','-','Outdent','Indent' ] },
14
+ { name: 'justify', items : [ 'JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'] },
15
+ { name: 'insert', items : [ 'Link','Table' ] },
16
+ { name: 'tools', items : [ 'Maximize','-','Source' ] }
17
+ ];
18
+
19
+ };
@@ -0,0 +1,2 @@
1
+ $brand-primary: #428bca;
2
+ $brand-primary-lighten: lighten($brand-primary, 45%);
@@ -0,0 +1,204 @@
1
+ # https://github.com/svenfuchs/rails-i18n/tree/master/rails/locale
2
+ de:
3
+ date:
4
+ abbr_day_names:
5
+ - So
6
+ - Mo
7
+ - Di
8
+ - Mi
9
+ - Do
10
+ - Fr
11
+ - Sa
12
+ abbr_month_names:
13
+ -
14
+ - Jan
15
+ - Feb
16
+ - Mär
17
+ - Apr
18
+ - Mai
19
+ - Jun
20
+ - Jul
21
+ - Aug
22
+ - Sep
23
+ - Okt
24
+ - Nov
25
+ - Dez
26
+ day_names:
27
+ - Sonntag
28
+ - Montag
29
+ - Dienstag
30
+ - Mittwoch
31
+ - Donnerstag
32
+ - Freitag
33
+ - Samstag
34
+ formats:
35
+ default: ! '%d.%m.%Y'
36
+ long: ! '%e. %B %Y'
37
+ short: ! '%e. %b'
38
+ month_names:
39
+ -
40
+ - Januar
41
+ - Februar
42
+ - März
43
+ - April
44
+ - Mai
45
+ - Juni
46
+ - Juli
47
+ - August
48
+ - September
49
+ - Oktober
50
+ - November
51
+ - Dezember
52
+ order:
53
+ - :day
54
+ - :month
55
+ - :year
56
+ datetime:
57
+ distance_in_words:
58
+ about_x_hours:
59
+ one: etwa eine Stunde
60
+ other: etwa %{count} Stunden
61
+ about_x_months:
62
+ one: etwa ein Monat
63
+ other: etwa %{count} Monate
64
+ about_x_years:
65
+ one: etwa ein Jahr
66
+ other: etwa %{count} Jahre
67
+ almost_x_years:
68
+ one: fast ein Jahr
69
+ other: fast %{count} Jahre
70
+ half_a_minute: eine halbe Minute
71
+ less_than_x_minutes:
72
+ one: weniger als eine Minute
73
+ other: weniger als %{count} Minuten
74
+ less_than_x_seconds:
75
+ one: weniger als eine Sekunde
76
+ other: weniger als %{count} Sekunden
77
+ over_x_years:
78
+ one: mehr als ein Jahr
79
+ other: mehr als %{count} Jahre
80
+ x_days:
81
+ one: ein Tag
82
+ other: ! '%{count} Tage'
83
+ x_minutes:
84
+ one: eine Minute
85
+ other: ! '%{count} Minuten'
86
+ x_months:
87
+ one: ein Monat
88
+ other: ! '%{count} Monate'
89
+ x_seconds:
90
+ one: eine Sekunde
91
+ other: ! '%{count} Sekunden'
92
+ prompts:
93
+ day: Tag
94
+ hour: Stunden
95
+ minute: Minuten
96
+ month: Monat
97
+ second: Sekunden
98
+ year: Jahr
99
+ errors: &errors
100
+ format: ! '%{attribute} %{message}'
101
+ messages:
102
+ accepted: muss akzeptiert werden
103
+ blank: muss ausgefüllt werden
104
+ confirmation: stimmt nicht mit der Bestätigung überein
105
+ empty: muss ausgefüllt werden
106
+ equal_to: muss genau %{count} sein
107
+ even: muss gerade sein
108
+ exclusion: ist nicht verfügbar
109
+ greater_than: muss größer als %{count} sein
110
+ greater_than_or_equal_to: muss größer oder gleich %{count} sein
111
+ inclusion: ist kein gültiger Wert
112
+ invalid: ist nicht gültig
113
+ less_than: muss kleiner als %{count} sein
114
+ less_than_or_equal_to: muss kleiner oder gleich %{count} sein
115
+ not_a_number: ist keine Zahl
116
+ not_an_integer: muss ganzzahlig sein
117
+ odd: muss ungerade sein
118
+ record_invalid: ! 'Gültigkeitsprüfung ist fehlgeschlagen: %{errors}'
119
+ taken: ist bereits vergeben
120
+ too_long: ist zu lang (mehr als %{count} Zeichen)
121
+ too_short: ist zu kurz (weniger als %{count} Zeichen)
122
+ wrong_length: hat die falsche Länge (muss genau %{count} Zeichen haben)
123
+ template:
124
+ body: ! 'Bitte überprüfen Sie die folgenden Felder:'
125
+ header:
126
+ one: ! 'Konnte %{model} nicht speichern: ein Fehler.'
127
+ other: ! 'Konnte %{model} nicht speichern: %{count} Fehler.'
128
+ helpers:
129
+ select:
130
+ prompt: Bitte wählen
131
+ submit:
132
+ create: ! '%{model} erstellen'
133
+ submit: ! '%{model} speichern'
134
+ update: ! '%{model} aktualisieren'
135
+ number:
136
+ currency:
137
+ format:
138
+ delimiter: .
139
+ format: ! '%n %u'
140
+ precision: 2
141
+ separator: ! ','
142
+ significant: false
143
+ strip_insignificant_zeros: false
144
+ unit: €
145
+ format:
146
+ delimiter: .
147
+ precision: 2
148
+ separator: ! ','
149
+ significant: false
150
+ strip_insignificant_zeros: false
151
+ human:
152
+ decimal_units:
153
+ format: ! '%n %u'
154
+ units:
155
+ billion:
156
+ one: Milliarde
157
+ other: Milliarden
158
+ million: Millionen
159
+ quadrillion:
160
+ one: Billiarde
161
+ other: Billiarden
162
+ thousand: Tausend
163
+ trillion: Billionen
164
+ unit: ''
165
+ format:
166
+ delimiter: ''
167
+ precision: 1
168
+ significant: true
169
+ strip_insignificant_zeros: true
170
+ storage_units:
171
+ format: ! '%n %u'
172
+ units:
173
+ byte:
174
+ one: Byte
175
+ other: Bytes
176
+ gb: GB
177
+ kb: KB
178
+ mb: MB
179
+ tb: TB
180
+ percentage:
181
+ format:
182
+ delimiter: ''
183
+ precision:
184
+ format:
185
+ delimiter: ''
186
+ support:
187
+ array:
188
+ last_word_connector: ! ' und '
189
+ two_words_connector: ! ' und '
190
+ words_connector: ! ', '
191
+ time:
192
+ am: vormittags
193
+ formats:
194
+ default: ! '%A, %d. %B %Y, %H:%M Uhr'
195
+ long: ! '%A, %d. %B %Y, %H:%M Uhr'
196
+ short: ! '%d. %B, %H:%M Uhr'
197
+ pm: nachmittags
198
+ # remove these aliases after 'activemodel' and 'activerecord' namespaces are removed from Rails repository
199
+ activemodel:
200
+ errors:
201
+ <<: *errors
202
+ activerecord:
203
+ errors:
204
+ <<: *errors
@@ -0,0 +1,72 @@
1
+ jQuery ->
2
+
3
+ $(".tip").popover(placement: 'top auto')
4
+
5
+ $(".tip").on 'click', (event) ->
6
+ event.preventDefault()
7
+
8
+ $(".action_hint").tooltip(placement: 'top auto')
9
+
10
+ $('.tab_box a').click (e) ->
11
+ e.preventDefault()
12
+ $(this).tab('show')
13
+
14
+ bind_remove_links = ->
15
+ $('.nested_form_remove_link').click (e) ->
16
+ e.preventDefault()
17
+ $(this).closest(".nested_form").find(".nested_form_destroy").val("1")
18
+ $(this).closest(".nested_form").collapse('hide')
19
+
20
+ bind_remove_links()
21
+
22
+ $('.nested_form_add_link').click (e) ->
23
+ e.preventDefault()
24
+ new_id = new Date().getTime()
25
+ regexp = new RegExp("new_association", "g")
26
+ html = $(this).data('content').replace(regexp, new_id)
27
+ $(".nested_forms").append(html)
28
+ bind_remove_links()
29
+
30
+ $('.nested_form_polymorphic_add_link').click (e) ->
31
+ e.preventDefault()
32
+ object_class = $('#add_link_class').children('option:selected').val()
33
+ if object_class != ''
34
+ data = $(this).data('content')
35
+ new_id = new Date().getTime()
36
+ regexp = new RegExp("new_association", "g")
37
+ html = data[object_class].replace(regexp, new_id)
38
+ $(".nested_forms").append(html)
39
+ bind_remove_links()
40
+
41
+ $('.polymorphic_add_link').click (e) ->
42
+ e.preventDefault()
43
+ object_class = $('#add_link_class').children('option:selected').val()
44
+ if object_class != ''
45
+ location.href = "#{$(this).attr('href')}?type=#{object_class}"
46
+
47
+ $('.jstree').each ->
48
+ params =
49
+ "core":
50
+ "data": $(this).data('content')
51
+ "themes":
52
+ "dots": false
53
+ "plugins": []
54
+ if $(this).data('sortable')
55
+ params["core"]["check_callback"] = true
56
+ params["plugins"].push "dnd"
57
+ tree = $(this).jstree params
58
+ tree.on "select_node.jstree", (e, data) ->
59
+ location.href = data.node.a_attr.href
60
+ if $(this).data('sortable')
61
+ tree.on "move_node.jstree", (e, data) ->
62
+ $(tree).siblings('.alert').remove()
63
+ $.ajax
64
+ async: false,
65
+ type: 'post',
66
+ url: "#{data.node.a_attr.href}/move.json"
67
+ data:
68
+ "parent": if data.parent != '#' then data.parent else ''
69
+ "position": data.position
70
+ error: (data) ->
71
+ tree.jstree('refresh')
72
+ $(tree).before("<div class=\"alert alert-danger\">#{data.responseText}</div>")
@@ -0,0 +1,4 @@
1
+ Rails.application.config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
2
+ Rails.application.config.i18n.default_locale = :de
3
+
4
+ Rails.application.config.generators.stylesheets false