houston-core 0.7.0 → 0.8.0.pre

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 (99) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +45 -45
  3. data/app/assets/javascripts/houston/app/models/ticket.coffee +7 -5
  4. data/app/assets/javascripts/houston/app/views/new_ticket_view.coffee +1 -21
  5. data/app/assets/javascripts/houston/core/handlebars_helpers.coffee +0 -6
  6. data/app/assets/stylesheets/houston/application/commit.scss +16 -0
  7. data/app/assets/stylesheets/houston/application/navigation.scss +1 -0
  8. data/app/assets/stylesheets/houston/application/new_ticket_view.scss +0 -4
  9. data/app/assets/stylesheets/houston/application/projects.css.scss +0 -14
  10. data/app/assets/stylesheets/houston/application/release_form.scss +1 -1
  11. data/app/assets/stylesheets/houston/application/teams.scss +68 -0
  12. data/app/assets/templates/tickets/index.hbs +0 -1
  13. data/app/controllers/github/pulls_controller.rb +1 -0
  14. data/app/controllers/project_tickets_controller.rb +1 -5
  15. data/app/controllers/projects_controller.rb +10 -12
  16. data/app/controllers/teams_controller.rb +60 -0
  17. data/app/controllers/users_controller.rb +12 -12
  18. data/app/helpers/commit_helper.rb +3 -5
  19. data/app/helpers/exposure_helper.rb +1 -1
  20. data/app/helpers/ticket_helper.rb +0 -13
  21. data/app/interactors/ticket_report.rb +0 -7
  22. data/app/mailers/project_notification.rb +2 -23
  23. data/app/mailers/view_mailer.rb +0 -1
  24. data/app/models/ability.rb +28 -19
  25. data/app/models/commit.rb +0 -4
  26. data/app/models/project.rb +14 -29
  27. data/app/models/release.rb +0 -18
  28. data/app/models/role.rb +0 -22
  29. data/app/models/team.rb +43 -0
  30. data/app/models/team_user.rb +68 -0
  31. data/app/models/ticket.rb +2 -22
  32. data/app/models/user.rb +21 -30
  33. data/app/views/devise/sessions/new.html.erb +9 -7
  34. data/app/views/layouts/_mobile_navigation.html.erb +5 -3
  35. data/app/views/layouts/_navigation.html.erb +11 -10
  36. data/app/views/layouts/_tester_bar.html.erb +1 -1
  37. data/app/views/layouts/application.html.erb +1 -2
  38. data/app/views/project_tickets/_tickets.html.erb +0 -1
  39. data/app/views/project_tickets/index.xls.erb +0 -35
  40. data/app/views/project_tickets/new.html.erb +1 -2
  41. data/app/views/projects/_form.html.erb +7 -12
  42. data/app/views/projects/index.html.erb +10 -17
  43. data/app/views/releases/_changelog.html.erb +11 -14
  44. data/app/views/teams/_form.html.erb +45 -0
  45. data/app/views/teams/edit.html.erb +8 -0
  46. data/app/views/teams/index.html.erb +62 -0
  47. data/app/views/teams/new.html.erb +7 -0
  48. data/app/views/users/_form.html.erb +2 -11
  49. data/app/views/users/index.html.erb +8 -20
  50. data/app/views/users/new.html.erb +1 -1
  51. data/config/initializers/inflections.rb +7 -6
  52. data/config/routes.rb +19 -17
  53. data/db/migrate/20160812233255_repurpose_users_role.rb +16 -0
  54. data/db/migrate/20160813001242_create_teams.rb +42 -0
  55. data/db/structure.sql +110 -116
  56. data/lib/houston/boot.rb +0 -1
  57. data/lib/houston/boot/configuration.rb +26 -11
  58. data/lib/houston/boot/events.rb +0 -4
  59. data/lib/houston/version.rb +1 -1
  60. data/templates/new-instance/config/abilities.rb +68 -51
  61. data/templates/new-instance/config/conversations/mentions/unfurl_tasks.rb +1 -1
  62. data/templates/new-instance/config/events/deploy/notify_deployer_when_finished.rb +24 -16
  63. data/templates/new-instance/config/events/tests/email_when_completed.rb +11 -0
  64. data/templates/new-instance/config/integrations/ldap.rb +4 -0
  65. data/templates/new-instance/config/main.rb +10 -17
  66. data/templates/new-module/test/fixtures/users.yml +1 -2
  67. data/test/acceptance/creating_a_release_test.rb +1 -1
  68. data/test/factories/project_factory.rb +1 -0
  69. data/test/factories/user_factory.rb +3 -1
  70. data/test/fixtures/teams.yml +2 -0
  71. data/test/fixtures/teams_users.yml +5 -0
  72. data/test/fixtures/users.yml +1 -2
  73. data/test/integration/ci_integration_test.rb +2 -2
  74. data/test/support/config.rb +3 -5
  75. data/test/unit/controllers/deploys_controller_test.rb +11 -5
  76. data/test/unit/controllers/users_controller_test.rb +46 -0
  77. data/test/unit/models/release_test.rb +0 -9
  78. data/test/unit/models/serializer_test.rb +0 -8
  79. data/test/unit/models/ticket_test.rb +0 -32
  80. metadata +21 -24
  81. data/app/assets/javascripts/houston/app/table_row_expander.coffee +0 -52
  82. data/app/assets/javascripts/houston/app/views/problems_view.coffee +0 -114
  83. data/app/assets/stylesheets/houston/application/follow_up.scss +0 -44
  84. data/app/controllers/project_exceptions_controller.rb +0 -36
  85. data/app/controllers/project_pretickets_controller.rb +0 -27
  86. data/app/mailers/deploy_notification.rb +0 -33
  87. data/app/models/antecedent.rb +0 -15
  88. data/app/models/ticket_antecedent.rb +0 -39
  89. data/app/models/value_statement.rb +0 -9
  90. data/app/presenters/problem_presenter.rb +0 -49
  91. data/app/presenters/tester_presenter.rb +0 -15
  92. data/app/views/project_notification/follow_up.html.erb +0 -26
  93. data/app/views/project_pretickets/show.html.erb +0 -49
  94. data/app/views/releases/_antecedents.html.erb +0 -12
  95. data/config/initializers/hard_coded_knowledge.rb +0 -141
  96. data/db/migrate/20130427223925_create_project_quotas.rb +0 -14
  97. data/db/migrate/20140506035755_create_value_statements.rb +0 -9
  98. data/lib/houston/boot/ticket_antecedent_serializer.rb +0 -21
  99. data/test/unit/models/ticket_antecedents_test.rb +0 -38
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7313503e6891a81d74ee02d5c9b06315dce2df20
4
- data.tar.gz: aa75366ce3181bebdb91e6f883a1c8879adbcdf9
3
+ metadata.gz: 5c421314112e267c1d8fb60f812aadf4eb5e49ed
4
+ data.tar.gz: a596952d1eb956ceccc4a2f39117de8ab42e0b3c
5
5
  SHA512:
6
- metadata.gz: db72d7a2dcc0808d565cd6a2262e63d1ab0ffb8b144b4a701086126d92c6f1f9ceb944352209ed35bbf5d8a5777ecf80c6186ac9e986ae1ebbf319a6f89bf537
7
- data.tar.gz: 4a99188cdd551613eac66106a3b0a86e79df16a64dc6f019e74137fb9bccd562ebc0fde7c4a78e575283aeaeb7ee3f00619a74fd9c1cc5b0f6c167ee41ce24a4
6
+ metadata.gz: caa4d1e8db286c8cf6e539f98313933e97cad69404049afe4d8be66ee99c10f6e080a8a8dc07ddeed762e2c4ea9392fd2b2a0bb7e3ccd7ec61a89282f201ad3c
7
+ data.tar.gz: 1bdf41fa186a2aaa2ab564f6b5961d7e673a367d4d62aac84089afaf1cd92e6748e201102bcd93d37f4d12f7c6082ddf1817b44dc1e9acc6423caea5213fbb71
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- houston-core (0.7.0)
4
+ houston-core (0.8.0.pre)
5
5
  activerecord-import
6
6
  activerecord-pluck_in_batches
7
7
  addressable (~> 2.3.8)
@@ -51,40 +51,40 @@ PATH
51
51
  GEM
52
52
  remote: https://rubygems.org/
53
53
  specs:
54
- actionmailer (4.2.7)
55
- actionpack (= 4.2.7)
56
- actionview (= 4.2.7)
57
- activejob (= 4.2.7)
54
+ actionmailer (4.2.7.1)
55
+ actionpack (= 4.2.7.1)
56
+ actionview (= 4.2.7.1)
57
+ activejob (= 4.2.7.1)
58
58
  mail (~> 2.5, >= 2.5.4)
59
59
  rails-dom-testing (~> 1.0, >= 1.0.5)
60
- actionpack (4.2.7)
61
- actionview (= 4.2.7)
62
- activesupport (= 4.2.7)
60
+ actionpack (4.2.7.1)
61
+ actionview (= 4.2.7.1)
62
+ activesupport (= 4.2.7.1)
63
63
  rack (~> 1.6)
64
64
  rack-test (~> 0.6.2)
65
65
  rails-dom-testing (~> 1.0, >= 1.0.5)
66
66
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
67
- actionview (4.2.7)
68
- activesupport (= 4.2.7)
67
+ actionview (4.2.7.1)
68
+ activesupport (= 4.2.7.1)
69
69
  builder (~> 3.1)
70
70
  erubis (~> 2.7.0)
71
71
  rails-dom-testing (~> 1.0, >= 1.0.5)
72
72
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
73
- activejob (4.2.7)
74
- activesupport (= 4.2.7)
73
+ activejob (4.2.7.1)
74
+ activesupport (= 4.2.7.1)
75
75
  globalid (>= 0.3.0)
76
- activemodel (4.2.7)
77
- activesupport (= 4.2.7)
76
+ activemodel (4.2.7.1)
77
+ activesupport (= 4.2.7.1)
78
78
  builder (~> 3.1)
79
- activerecord (4.2.7)
80
- activemodel (= 4.2.7)
81
- activesupport (= 4.2.7)
79
+ activerecord (4.2.7.1)
80
+ activemodel (= 4.2.7.1)
81
+ activesupport (= 4.2.7.1)
82
82
  arel (~> 6.0)
83
83
  activerecord-import (0.15.0)
84
84
  activerecord (>= 3.2)
85
85
  activerecord-pluck_in_batches (0.1.1)
86
86
  activerecord
87
- activesupport (4.2.7)
87
+ activesupport (4.2.7.1)
88
88
  i18n (~> 0.7)
89
89
  json (~> 1.7, >= 1.7.7)
90
90
  minitest (~> 5.1)
@@ -101,7 +101,7 @@ GEM
101
101
  browser (1.1.0)
102
102
  builder (3.2.2)
103
103
  cancan (1.6.10)
104
- capybara (2.7.0)
104
+ capybara (2.7.1)
105
105
  addressable
106
106
  mime-types (>= 1.16)
107
107
  nokogiri (>= 1.3.3)
@@ -167,10 +167,10 @@ GEM
167
167
  faraday-raise-errors (0.2.0)
168
168
  faraday
169
169
  gemoji (2.1.0)
170
- globalid (0.3.6)
170
+ globalid (0.3.7)
171
171
  activesupport (>= 4.1.0)
172
172
  googlecharts (1.6.12)
173
- handlebars_assets (0.23.0)
173
+ handlebars_assets (0.23.1)
174
174
  execjs (~> 2.0)
175
175
  multi_json (~> 1.0)
176
176
  sprockets (>= 2.0.0)
@@ -200,18 +200,18 @@ GEM
200
200
  mime-types (2.99.2)
201
201
  mini_portile2 (2.1.0)
202
202
  minitest (5.9.0)
203
- minitest-reporters (1.1.8)
203
+ minitest-reporters (1.1.11)
204
204
  ansi
205
205
  builder
206
206
  minitest (>= 5.0)
207
207
  ruby-progressbar
208
208
  minitest-reporters-turn_reporter (0.1.0)
209
209
  minitest-reporters
210
- multi_json (1.11.2)
210
+ multi_json (1.12.1)
211
211
  multi_xml (0.5.5)
212
212
  multipart-post (2.0.0)
213
213
  neat-rails (0.5.0)
214
- nested_editor_for (0.1.0)
214
+ nested_editor_for (0.1.1)
215
215
  net-ldap (0.12.1)
216
216
  net-ssh (2.9.4)
217
217
  netrc (0.11.0)
@@ -235,7 +235,7 @@ GEM
235
235
  nokogiri
236
236
  openxml-package (>= 0.2.0)
237
237
  orm_adapter (0.5.0)
238
- ox (2.4.3)
238
+ ox (2.4.4)
239
239
  pg (0.18.4)
240
240
  pg_search (1.0.6)
241
241
  activerecord (>= 3.1)
@@ -246,7 +246,7 @@ GEM
246
246
  css_parser (>= 1.4.5)
247
247
  htmlentities (>= 4.0.0)
248
248
  progressbar (0.21.0)
249
- pry (0.10.3)
249
+ pry (0.10.4)
250
250
  coderay (~> 1.1.0)
251
251
  method_source (~> 0.8.1)
252
252
  slop (~> 3.4)
@@ -255,16 +255,16 @@ GEM
255
255
  rack (>= 1.0)
256
256
  rack-utf8_sanitizer (1.3.2)
257
257
  rack (>= 1.0, < 3.0)
258
- rails (4.2.7)
259
- actionmailer (= 4.2.7)
260
- actionpack (= 4.2.7)
261
- actionview (= 4.2.7)
262
- activejob (= 4.2.7)
263
- activemodel (= 4.2.7)
264
- activerecord (= 4.2.7)
265
- activesupport (= 4.2.7)
258
+ rails (4.2.7.1)
259
+ actionmailer (= 4.2.7.1)
260
+ actionpack (= 4.2.7.1)
261
+ actionview (= 4.2.7.1)
262
+ activejob (= 4.2.7.1)
263
+ activemodel (= 4.2.7.1)
264
+ activerecord (= 4.2.7.1)
265
+ activesupport (= 4.2.7.1)
266
266
  bundler (>= 1.3.0, < 2.0)
267
- railties (= 4.2.7)
267
+ railties (= 4.2.7.1)
268
268
  sprockets-rails
269
269
  rails-deprecated_sanitizer (1.0.3)
270
270
  activesupport (>= 4.2.0.alpha)
@@ -274,9 +274,9 @@ GEM
274
274
  rails-deprecated_sanitizer (>= 1.0.1)
275
275
  rails-html-sanitizer (1.0.3)
276
276
  loofah (~> 2.0)
277
- railties (4.2.7)
278
- actionpack (= 4.2.7)
279
- activesupport (= 4.2.7)
277
+ railties (4.2.7.1)
278
+ actionpack (= 4.2.7.1)
279
+ activesupport (= 4.2.7.1)
280
280
  rake (>= 0.8.7)
281
281
  thor (>= 0.18.1, < 2.0)
282
282
  rake (11.2.2)
@@ -287,14 +287,14 @@ GEM
287
287
  http-cookie (>= 1.0.2, < 2.0)
288
288
  mime-types (>= 1.16, < 3.0)
289
289
  netrc (~> 0.7)
290
- rr (1.1.2)
291
- ruby-progressbar (1.7.5)
290
+ rr (1.2.0)
291
+ ruby-progressbar (1.8.1)
292
292
  rubyzip (1.1.7)
293
293
  rufus-scheduler (3.2.1)
294
294
  rugged (0.24.0)
295
295
  safe_yaml (1.0.4)
296
296
  sass (3.4.22)
297
- sass-rails (5.0.5)
297
+ sass-rails (5.0.6)
298
298
  railties (>= 4.0.0, < 6)
299
299
  sass (~> 3.1)
300
300
  sprockets (>= 2.8, < 4.0)
@@ -313,7 +313,7 @@ GEM
313
313
  json
314
314
  simplecov
315
315
  slop (3.6.0)
316
- sprockets (3.6.3)
316
+ sprockets (3.7.0)
317
317
  concurrent-ruby (~> 1.0)
318
318
  rack (> 1, < 3)
319
319
  sprockets-rails (3.1.1)
@@ -322,7 +322,7 @@ GEM
322
322
  sprockets (>= 3.0.0)
323
323
  strongbox (0.7.2)
324
324
  activerecord
325
- test_after_commit (1.0.0)
325
+ test_after_commit (1.1.0)
326
326
  activerecord (>= 3.2)
327
327
  thor (0.19.1)
328
328
  thread_safe (0.3.5)
@@ -330,14 +330,14 @@ GEM
330
330
  timecop (0.8.1)
331
331
  tzinfo (1.2.2)
332
332
  thread_safe (~> 0.1)
333
- uglifier (3.0.0)
333
+ uglifier (3.0.1)
334
334
  execjs (>= 0.3.0, < 3)
335
335
  unf (0.1.4)
336
336
  unf_ext
337
337
  unf_ext (0.0.7.2)
338
338
  warden (1.2.6)
339
339
  rack (>= 1.0)
340
- webmock (1.24.3)
340
+ webmock (2.1.0)
341
341
  addressable (>= 2.3.6)
342
342
  crack (>= 0.3.2)
343
343
  hashdiff
@@ -1,3 +1,9 @@
1
+ # copied from sugar.js
2
+ escapeRegExp = (str)->
3
+ str = String(str) unless _.isString(str)
4
+ str.replace /([\\\/\'*+?|()\[\]{}.^$-])/g, '\\$1'
5
+
6
+
1
7
  class window.Ticket extends Backbone.Model
2
8
  urlRoot: '/tickets'
3
9
 
@@ -53,11 +59,10 @@ class window.Tickets extends Backbone.Collection
53
59
 
54
60
  search: (summary)->
55
61
  words = @getWords(summary)
56
- # console.log(summary, '->', words)
57
62
 
58
63
  return [] if words.length == 0
59
64
 
60
- regexes = (new RegExp("\\b#{RegExp.escape(word)}", 'i') for word in words)
65
+ regexes = (new RegExp("\\b#{escapeRegExp(word)}", 'i') for word in words)
61
66
 
62
67
  results = []
63
68
  for ticket in @models
@@ -116,8 +121,5 @@ class window.Tickets extends Backbone.Collection
116
121
  when 'summary' then (ticket)-> ticket.get('summary').toLowerCase().replace(/^\W/, '')
117
122
  when 'openedAt' then (ticket)-> ticket.get('openedAt')
118
123
  when 'number' then (ticket)-> ticket.get('number')
119
- when 'antecedents' then (ticket)->
120
- len = ticket.get('antecedents').length
121
- if len is 0 then null else len
122
124
  when 'closedAt' then (ticket)-> ticket.get('closedAt')
123
125
  else throw "Tickets#sorterFor doesn't know how to sort #{attribute}!"
@@ -28,7 +28,6 @@ class window.NewTicketView extends Backbone.View
28
28
  @$el.html HandlebarsTemplates['new_ticket/form']()
29
29
  @project = @options.project
30
30
  @tickets = new Tickets(@options.tickets)
31
- @LABELS = @options.labels
32
31
  @TAGS = @TYPES.map (type)-> "[#{type}]"
33
32
  @TAG_MATCHER = "\\[(#{@TYPES.join('|')})\\]"
34
33
  @renderSuggestion = HandlebarsTemplates['new_ticket/suggestion']
@@ -37,11 +36,6 @@ class window.NewTicketView extends Backbone.View
37
36
  @$summary.val "[#{@options.type}] " if @options.type
38
37
  @lastSearch = ''
39
38
 
40
- if @options.antecedents
41
- description = '### Antecedents\n' + (" - #{antecedent}" for antecedent in @options.antecedents).join("\n")
42
- $('#ticket_description').val(description)
43
- @showNewTicket(animate: false)
44
-
45
39
  Mousetrap.bindScoped '#ticket_summary, #ticket_description', 'mod+enter', (e)=>
46
40
  @$el.find('#create_ticket').click() if @$el.find(':focus').length > 0
47
41
 
@@ -73,20 +67,13 @@ class window.NewTicketView extends Backbone.View
73
67
  source: (query)->
74
68
  pos = @$element.getCursorPosition()
75
69
  a = query.indexOf(']')
76
- b = query.indexOf(':')
77
70
 
78
71
  if a is -1 or pos <= a
79
72
  @tquery = query.match(z)[1].toLowerCase()
80
73
  @mode = 'type'
81
74
  return view.TAGS
82
75
 
83
- else if a > 0 and (b is -1 or pos <= b)
84
- @lquery = query.match(y)[1]
85
- @lquery = new RegExp "\\b#{@lquery}", "i"
86
- @mode = 'label'
87
- return view.LABELS
88
-
89
- else if a > 0 and b > 0
76
+ else if a > 0
90
77
  @mode = 'summary'
91
78
  return []
92
79
 
@@ -98,14 +85,10 @@ class window.NewTicketView extends Backbone.View
98
85
  if @mode == 'type'
99
86
  view.autocompleteDescriptionFor(item)
100
87
  @$element.val().replace(/^[^\]]*(\] ?|$)?/, item + ' ')
101
- else if @mode == 'label'
102
- @$element.val().replace(/\] ?[^:]*(: ?|$)/, '] ' + item + ': ')
103
88
 
104
89
  matcher: (item)->
105
90
  if @mode == 'type'
106
91
  ~item.toLowerCase().indexOf(@tquery)
107
- else if @mode == 'label'
108
- @lquery.test(item)
109
92
  else
110
93
  false
111
94
 
@@ -119,9 +102,6 @@ class window.NewTicketView extends Backbone.View
119
102
  if !///#{@TAG_MATCHER} ///.test(summary)
120
103
  @$el.attr('data-mode', 'type')
121
104
  @$suggestions.empty()
122
- else if !///#{@TAG_MATCHER} (.*):///.test(summary)
123
- @$el.attr('data-mode', 'label')
124
- @$suggestions.empty()
125
105
  else
126
106
  @$el.attr('data-mode', 'summary')
127
107
  md = summary.match(///#{@TAG_MATCHER} (.*)///)
@@ -91,12 +91,6 @@ Handlebars.registerHelper 'ifEq', (v1, v2, block)->
91
91
  else
92
92
  block.inverse(@)
93
93
 
94
- Handlebars.registerHelper 'summarizeAntecedents', (antecedents)->
95
- html = ''
96
- for kind, antecedents of _.groupBy(antecedents, (antecedent)-> antecedent.kind)
97
- html += "#{kind} <span class=\"badge\">#{antecedents.length}</span>"
98
- html
99
-
100
94
  Handlebars.registerPartial 'sprintTask', (task)->
101
95
  HandlebarsTemplates['sprints/task'](task)
102
96
 
@@ -4,3 +4,19 @@
4
4
  h2 { font-weight: 100; margin-left: 110px; }
5
5
  h4 { font-weight: 400; }
6
6
  }
7
+
8
+ .commit-extra-attribute {
9
+ color: #666;
10
+ font-size: 10px;
11
+ line-height: normal;
12
+ background: #f4f4f4;
13
+ display: inline-block;
14
+ padding: 2px;
15
+
16
+ &::before { content: '{{'; }
17
+ &::after { content: '}}'; }
18
+ }
19
+
20
+ .commit-extra-attribute-key::after {
21
+ content: ':';
22
+ }
@@ -136,6 +136,7 @@ $current-project-active-bg: #222;
136
136
  }
137
137
 
138
138
  &:hover { color: white; }
139
+ &:focus { color: white; }
139
140
  }
140
141
 
141
142
  .navbar .nav li.current-project.dropdown.open > .dropdown-toggle,
@@ -16,10 +16,6 @@
16
16
  content: 'What kind of ticket is this? [bug]? [feature]?';
17
17
  }
18
18
 
19
- &[data-mode="label"]::after {
20
- content: 'What view or feature does it have to do with? Profile? Enter Attendance?';
21
- }
22
-
23
19
  &[data-mode="summary"]::after {
24
20
  content: 'Hit return to finish making your ticket ⏎';
25
21
  }
@@ -65,20 +65,6 @@ td.project-participants .hidden-text { display: inline-block; }
65
65
  input[type="image"], input[type="checkbox"], input[type="radio"] { margin: 0; }
66
66
  }
67
67
 
68
- th, td {
69
- &.project-unfuddle-link {
70
- padding-right: 2px !important;
71
- }
72
- &.project-errbit-link {
73
- padding-left: 2px !important;
74
- padding-right: 2px !important;
75
- }
76
- &.project-github-link {
77
- padding-left: 2px !important;
78
- padding-right: 2px !important;
79
- }
80
- }
81
-
82
68
  td.project-title { white-space: nowrap; }
83
69
 
84
70
  td.project-feature-error {
@@ -43,7 +43,7 @@
43
43
  color: #777;
44
44
  }
45
45
 
46
- .release-antecedents ul, .release-commits ul {
46
+ .release-commits ul {
47
47
  max-width: 680px;
48
48
  margin: 5px 0;
49
49
  }
@@ -0,0 +1,68 @@
1
+ .teams {
2
+ column-width: 320px;
3
+ column-gap: 1em;
4
+ columns: 3;
5
+ }
6
+ @media (max-width: 1024px) { .teams { columns: 2; } }
7
+ @media (max-width: 720px) { .teams { columns: 1; } }
8
+
9
+ .team-wrapper {
10
+ -webkit-column-break-inside: avoid;
11
+ page-break-inside: avoid;
12
+ break-inside: avoid;
13
+ padding-bottom: 1em;
14
+ }
15
+
16
+ .team {
17
+ box-shadow: 0 1px 2px rgba(34, 25, 25, 0.1);
18
+ border: 1px solid #ccc;
19
+ padding: 2em;
20
+ border-radius: 4px;
21
+
22
+ h3 {
23
+ line-height: normal;
24
+ margin: 0 0 1em 0;
25
+ }
26
+
27
+ h6 {
28
+ text-transform: uppercase;
29
+ font-weight: 500;
30
+ color: #ccc;
31
+ margin: 2em 0 0.5em 0;
32
+ }
33
+
34
+ ol {
35
+ overflow: auto;
36
+ margin: 0;
37
+ padding: 0;
38
+ }
39
+
40
+ ol.team-members {
41
+ column-width: 320px;
42
+ column-gap: 1em;
43
+ columns: 2;
44
+ }
45
+
46
+ li.team-member {
47
+ -webkit-column-break-inside: avoid;
48
+ page-break-inside: avoid;
49
+ break-inside: avoid;
50
+ display: block;
51
+ position: relative;
52
+ line-height: normal;
53
+ padding: 0 0 0.5em 40px;
54
+ min-height: 32px;
55
+
56
+ .user-avatar {
57
+ position: absolute;
58
+ left: 0;
59
+ }
60
+
61
+ .user-name { display: block; }
62
+ .user-roles { display: block; }
63
+ }
64
+
65
+ .team-projects-add {
66
+ margin: 1em 0 0 0;
67
+ }
68
+ }