houston-core 0.7.0 → 0.8.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +45 -45
- data/app/assets/javascripts/houston/app/models/ticket.coffee +7 -5
- data/app/assets/javascripts/houston/app/views/new_ticket_view.coffee +1 -21
- data/app/assets/javascripts/houston/core/handlebars_helpers.coffee +0 -6
- data/app/assets/stylesheets/houston/application/commit.scss +16 -0
- data/app/assets/stylesheets/houston/application/navigation.scss +1 -0
- data/app/assets/stylesheets/houston/application/new_ticket_view.scss +0 -4
- data/app/assets/stylesheets/houston/application/projects.css.scss +0 -14
- data/app/assets/stylesheets/houston/application/release_form.scss +1 -1
- data/app/assets/stylesheets/houston/application/teams.scss +68 -0
- data/app/assets/templates/tickets/index.hbs +0 -1
- data/app/controllers/github/pulls_controller.rb +1 -0
- data/app/controllers/project_tickets_controller.rb +1 -5
- data/app/controllers/projects_controller.rb +10 -12
- data/app/controllers/teams_controller.rb +60 -0
- data/app/controllers/users_controller.rb +12 -12
- data/app/helpers/commit_helper.rb +3 -5
- data/app/helpers/exposure_helper.rb +1 -1
- data/app/helpers/ticket_helper.rb +0 -13
- data/app/interactors/ticket_report.rb +0 -7
- data/app/mailers/project_notification.rb +2 -23
- data/app/mailers/view_mailer.rb +0 -1
- data/app/models/ability.rb +28 -19
- data/app/models/commit.rb +0 -4
- data/app/models/project.rb +14 -29
- data/app/models/release.rb +0 -18
- data/app/models/role.rb +0 -22
- data/app/models/team.rb +43 -0
- data/app/models/team_user.rb +68 -0
- data/app/models/ticket.rb +2 -22
- data/app/models/user.rb +21 -30
- data/app/views/devise/sessions/new.html.erb +9 -7
- data/app/views/layouts/_mobile_navigation.html.erb +5 -3
- data/app/views/layouts/_navigation.html.erb +11 -10
- data/app/views/layouts/_tester_bar.html.erb +1 -1
- data/app/views/layouts/application.html.erb +1 -2
- data/app/views/project_tickets/_tickets.html.erb +0 -1
- data/app/views/project_tickets/index.xls.erb +0 -35
- data/app/views/project_tickets/new.html.erb +1 -2
- data/app/views/projects/_form.html.erb +7 -12
- data/app/views/projects/index.html.erb +10 -17
- data/app/views/releases/_changelog.html.erb +11 -14
- data/app/views/teams/_form.html.erb +45 -0
- data/app/views/teams/edit.html.erb +8 -0
- data/app/views/teams/index.html.erb +62 -0
- data/app/views/teams/new.html.erb +7 -0
- data/app/views/users/_form.html.erb +2 -11
- data/app/views/users/index.html.erb +8 -20
- data/app/views/users/new.html.erb +1 -1
- data/config/initializers/inflections.rb +7 -6
- data/config/routes.rb +19 -17
- data/db/migrate/20160812233255_repurpose_users_role.rb +16 -0
- data/db/migrate/20160813001242_create_teams.rb +42 -0
- data/db/structure.sql +110 -116
- data/lib/houston/boot.rb +0 -1
- data/lib/houston/boot/configuration.rb +26 -11
- data/lib/houston/boot/events.rb +0 -4
- data/lib/houston/version.rb +1 -1
- data/templates/new-instance/config/abilities.rb +68 -51
- data/templates/new-instance/config/conversations/mentions/unfurl_tasks.rb +1 -1
- data/templates/new-instance/config/events/deploy/notify_deployer_when_finished.rb +24 -16
- data/templates/new-instance/config/events/tests/email_when_completed.rb +11 -0
- data/templates/new-instance/config/integrations/ldap.rb +4 -0
- data/templates/new-instance/config/main.rb +10 -17
- data/templates/new-module/test/fixtures/users.yml +1 -2
- data/test/acceptance/creating_a_release_test.rb +1 -1
- data/test/factories/project_factory.rb +1 -0
- data/test/factories/user_factory.rb +3 -1
- data/test/fixtures/teams.yml +2 -0
- data/test/fixtures/teams_users.yml +5 -0
- data/test/fixtures/users.yml +1 -2
- data/test/integration/ci_integration_test.rb +2 -2
- data/test/support/config.rb +3 -5
- data/test/unit/controllers/deploys_controller_test.rb +11 -5
- data/test/unit/controllers/users_controller_test.rb +46 -0
- data/test/unit/models/release_test.rb +0 -9
- data/test/unit/models/serializer_test.rb +0 -8
- data/test/unit/models/ticket_test.rb +0 -32
- metadata +21 -24
- data/app/assets/javascripts/houston/app/table_row_expander.coffee +0 -52
- data/app/assets/javascripts/houston/app/views/problems_view.coffee +0 -114
- data/app/assets/stylesheets/houston/application/follow_up.scss +0 -44
- data/app/controllers/project_exceptions_controller.rb +0 -36
- data/app/controllers/project_pretickets_controller.rb +0 -27
- data/app/mailers/deploy_notification.rb +0 -33
- data/app/models/antecedent.rb +0 -15
- data/app/models/ticket_antecedent.rb +0 -39
- data/app/models/value_statement.rb +0 -9
- data/app/presenters/problem_presenter.rb +0 -49
- data/app/presenters/tester_presenter.rb +0 -15
- data/app/views/project_notification/follow_up.html.erb +0 -26
- data/app/views/project_pretickets/show.html.erb +0 -49
- data/app/views/releases/_antecedents.html.erb +0 -12
- data/config/initializers/hard_coded_knowledge.rb +0 -141
- data/db/migrate/20130427223925_create_project_quotas.rb +0 -14
- data/db/migrate/20140506035755_create_value_statements.rb +0 -9
- data/lib/houston/boot/ticket_antecedent_serializer.rb +0 -21
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c421314112e267c1d8fb60f812aadf4eb5e49ed
|
4
|
+
data.tar.gz: a596952d1eb956ceccc4a2f39117de8ab42e0b3c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: caa4d1e8db286c8cf6e539f98313933e97cad69404049afe4d8be66ee99c10f6e080a8a8dc07ddeed762e2c4ea9392fd2b2a0bb7e3ccd7ec61a89282f201ad3c
|
7
|
+
data.tar.gz: 1bdf41fa186a2aaa2ab564f6b5961d7e673a367d4d62aac84089afaf1cd92e6748e201102bcd93d37f4d12f7c6082ddf1817b44dc1e9acc6423caea5213fbb71
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
houston-core (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.
|
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.
|
170
|
+
globalid (0.3.7)
|
171
171
|
activesupport (>= 4.1.0)
|
172
172
|
googlecharts (1.6.12)
|
173
|
-
handlebars_assets (0.23.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
291
|
-
ruby-progressbar (1.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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#{
|
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
|
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
|
+
}
|
@@ -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 {
|
@@ -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
|
+
}
|