Merge branch 'dev'

This commit is contained in:
Mathieu Magnin 2018-03-09 13:35:33 +01:00
commit 23ed722038
174 changed files with 641 additions and 420 deletions

View file

@ -8,9 +8,21 @@ AllCops:
Bundler/DuplicatedGem: Bundler/DuplicatedGem:
Enabled: true Enabled: true
Bundler/InsecureProtocolSource:
Enabled: true
Bundler/OrderedGems: Bundler/OrderedGems:
Enabled: false Enabled: false
Gemspec/DuplicatedAssignment:
Enabled: true
Gemspec/OrderedDependencies:
Enabled: true
Gemspec/RequiredRubyVersion:
Enabled: true
Layout/AccessModifierIndentation: Layout/AccessModifierIndentation:
Enabled: true Enabled: true
@ -24,6 +36,9 @@ Layout/AlignParameters:
Enabled: true Enabled: true
EnforcedStyle: with_fixed_indentation EnforcedStyle: with_fixed_indentation
Layout/BlockAlignment:
Enabled: false
Layout/BlockEndNewline: Layout/BlockEndNewline:
Enabled: true Enabled: true
@ -31,18 +46,30 @@ Layout/CaseIndentation:
Enabled: true Enabled: true
EnforcedStyle: end EnforcedStyle: end
Layout/ClassStructure:
Enabled: false
Layout/ClosingParenthesisIndentation: Layout/ClosingParenthesisIndentation:
Enabled: true Enabled: true
Layout/CommentIndentation: Layout/CommentIndentation:
Enabled: true Enabled: true
Layout/ConditionPosition:
Enabled: false
Layout/DefEndAlignment:
Enabled: false
Layout/DotPosition: Layout/DotPosition:
Enabled: true Enabled: true
Layout/ElseAlignment: Layout/ElseAlignment:
Enabled: true Enabled: true
Layout/EmptyComment:
Enabled: true
Layout/EmptyLineAfterMagicComment: Layout/EmptyLineAfterMagicComment:
Enabled: true Enabled: true
@ -55,6 +82,9 @@ Layout/EmptyLines:
Layout/EmptyLinesAroundAccessModifier: Layout/EmptyLinesAroundAccessModifier:
Enabled: true Enabled: true
Layout/EmptyLinesAroundArguments:
Enabled: true
Layout/EmptyLinesAroundBeginBody: Layout/EmptyLinesAroundBeginBody:
Enabled: true Enabled: true
@ -73,6 +103,10 @@ Layout/EmptyLinesAroundMethodBody:
Layout/EmptyLinesAroundModuleBody: Layout/EmptyLinesAroundModuleBody:
Enabled: true Enabled: true
Layout/EndAlignment:
Enabled: true
EnforcedStyleAlignWith: variable
Layout/EndOfLine: Layout/EndOfLine:
Enabled: true Enabled: true
EnforcedStyle: lf EnforcedStyle: lf
@ -206,9 +240,6 @@ Layout/SpaceInsideArrayPercentLiteral:
Layout/SpaceInsideBlockBraces: Layout/SpaceInsideBlockBraces:
Enabled: true Enabled: true
Layout/SpaceInsideBrackets:
Enabled: true
Layout/SpaceInsideHashLiteralBraces: Layout/SpaceInsideHashLiteralBraces:
Enabled: true Enabled: true
@ -224,6 +255,9 @@ Layout/SpaceInsidePercentLiteralDelimiters:
Layout/SpaceInsideRangeLiteral: Layout/SpaceInsideRangeLiteral:
Enabled: true Enabled: true
Layout/SpaceInsideReferenceBrackets:
Enabled: true
Layout/SpaceInsideStringInterpolation: Layout/SpaceInsideStringInterpolation:
Enabled: true Enabled: true
@ -240,65 +274,58 @@ Lint/AmbiguousBlockAssociation:
Enabled: false Enabled: false
Lint/AmbiguousOperator: Lint/AmbiguousOperator:
Enabled: false Enabled: true
Lint/AmbiguousRegexpLiteral: Lint/AmbiguousRegexpLiteral:
Enabled: false Enabled: true
Lint/AssignmentInCondition: Lint/AssignmentInCondition:
Enabled: false Enabled: true
Lint/BlockAlignment: Lint/BigDecimalNew:
Enabled: false Enabled: true
Lint/BooleanSymbol:
Enabled: true
Lint/CircularArgumentReference: Lint/CircularArgumentReference:
Enabled: false Enabled: true
Lint/ConditionPosition:
Enabled: false
Lint/Debugger: Lint/Debugger:
Enabled: false Enabled: true
Lint/DefEndAlignment:
Enabled: false
Lint/DeprecatedClassMethods: Lint/DeprecatedClassMethods:
Enabled: false Enabled: true
Lint/DuplicateCaseCondition: Lint/DuplicateCaseCondition:
Enabled: false Enabled: true
Lint/DuplicateMethods: Lint/DuplicateMethods:
Enabled: false Enabled: true
Lint/DuplicatedKey: Lint/DuplicatedKey:
Enabled: false Enabled: true
Lint/EachWithObjectArgument: Lint/EachWithObjectArgument:
Enabled: false Enabled: true
Lint/ElseLayout: Lint/ElseLayout:
Enabled: false Enabled: true
Lint/EmptyEnsure: Lint/EmptyEnsure:
Enabled: false Enabled: true
Lint/EmptyExpression: Lint/EmptyExpression:
Enabled: false Enabled: true
Lint/EmptyInterpolation: Lint/EmptyInterpolation:
Enabled: false Enabled: true
Lint/EmptyWhen: Lint/EmptyWhen:
Enabled: false
Lint/EndAlignment:
Enabled: true Enabled: true
EnforcedStyleAlignWith: variable
Lint/EndInMethod: Lint/EndInMethod:
Enabled: false Enabled: true
Lint/EnsureReturn: Lint/EnsureReturn:
Enabled: false Enabled: false
@ -321,7 +348,10 @@ Lint/IneffectiveAccessModifier:
Lint/InheritException: Lint/InheritException:
Enabled: false Enabled: false
Lint/LiteralInCondition: Lint/InterpolationCheck:
Enabled: true
Lint/LiteralAsCondition:
Enabled: false Enabled: false
Lint/LiteralInInterpolation: Lint/LiteralInInterpolation:
@ -330,18 +360,30 @@ Lint/LiteralInInterpolation:
Lint/Loop: Lint/Loop:
Enabled: false Enabled: false
Lint/MissingCopEnableDirective:
Enabled: true
Lint/MultipleCompare: Lint/MultipleCompare:
Enabled: false Enabled: false
Lint/NestedMethodDefinition: Lint/NestedMethodDefinition:
Enabled: false Enabled: false
Lint/NestedPercentLiteral:
Enabled: true
Lint/NextWithoutAccumulator: Lint/NextWithoutAccumulator:
Enabled: false Enabled: false
Lint/NonLocalExitFromIterator: Lint/NonLocalExitFromIterator:
Enabled: false Enabled: false
Lint/NumberConversion:
Enabled: false
Lint/OrderedMagicComments:
Enabled: true
Lint/ParenthesesAsGroupedExpression: Lint/ParenthesesAsGroupedExpression:
Enabled: false Enabled: false
@ -354,6 +396,15 @@ Lint/PercentSymbolArray:
Lint/RandOne: Lint/RandOne:
Enabled: false Enabled: false
Lint/RedundantWithIndex:
Enabled: true
Lint/RedundantWithObject:
Enabled: true
Lint/RegexpAsCondition:
Enabled: true
Lint/RequireParentheses: Lint/RequireParentheses:
Enabled: false Enabled: false
@ -372,6 +423,9 @@ Lint/SafeNavigationChain:
Lint/ScriptPermission: Lint/ScriptPermission:
Enabled: false Enabled: false
Lint/ShadowedArgument:
Enabled: true
Lint/ShadowedException: Lint/ShadowedException:
Enabled: false Enabled: false
@ -390,9 +444,15 @@ Lint/UnderscorePrefixedVariableName:
Lint/UnifiedInteger: Lint/UnifiedInteger:
Enabled: false Enabled: false
Lint/UnneededDisable: Lint/UnneededCopDisableDirective:
Enabled: false Enabled: false
Lint/UnneededCopEnableDirective:
Enabled: true
Lint/UnneededRequireStatement:
Enabled: true
Lint/UnneededSplatExpansion: Lint/UnneededSplatExpansion:
Enabled: false Enabled: false
@ -477,15 +537,27 @@ Naming/ConstantName:
Naming/FileName: Naming/FileName:
Enabled: false Enabled: false
Naming/HeredocDelimiterCase:
Enabled: true
Naming/HeredocDelimiterNaming: Naming/HeredocDelimiterNaming:
Enabled: false Enabled: false
Naming/MemoizedInstanceVariableName:
Enabled: false
Naming/MethodName: Naming/MethodName:
Enabled: false Enabled: false
Naming/PredicateName: Naming/PredicateName:
Enabled: false Enabled: false
Naming/UncommunicativeBlockParamName:
Enabled: true
Naming/UncommunicativeMethodParamName:
Enabled: false
Naming/VariableName: Naming/VariableName:
Enabled: false Enabled: false
@ -522,9 +594,6 @@ Performance/FixedSize:
Performance/FlatMap: Performance/FlatMap:
Enabled: true Enabled: true
Performance/HashEachMethods:
Enabled: false
Performance/LstripRstrip: Performance/LstripRstrip:
Enabled: true Enabled: true
@ -564,20 +633,29 @@ Performance/StringReplacement:
Performance/TimesMap: Performance/TimesMap:
Enabled: true Enabled: true
Performance/UnfreezeString:
Enabled: true
Performance/UriDefaultParser:
Enabled: true
Rails/ActionFilter: Rails/ActionFilter:
Enabled: false Enabled: true
Rails/ActiveRecordAliases:
Enabled: true
Rails/ActiveSupportAliases: Rails/ActiveSupportAliases:
Enabled: false Enabled: true
Rails/ApplicationJob: Rails/ApplicationJob:
Enabled: false Enabled: true
Rails/ApplicationRecord: Rails/ApplicationRecord:
Enabled: false Enabled: true
Rails/Blank: Rails/Blank:
Enabled: false Enabled: true
Rails/CreateTableWithTimestamps: Rails/CreateTableWithTimestamps:
Enabled: false Enabled: false
@ -589,28 +667,30 @@ Rails/Delegate:
Enabled: false Enabled: false
Rails/DelegateAllowBlank: Rails/DelegateAllowBlank:
Enabled: false Enabled: true
Rails/DynamicFindBy: Rails/DynamicFindBy:
Enabled: false Enabled: true
Exclude:
- "spec/features/**/*.rb"
Rails/EnumUniqueness: Rails/EnumUniqueness:
Enabled: false Enabled: true
Rails/EnvironmentComparison: Rails/EnvironmentComparison:
Enabled: false Enabled: false
Rails/Exit: Rails/Exit:
Enabled: false Enabled: true
Rails/FilePath: Rails/FilePath:
Enabled: false Enabled: true
Rails/FindBy: Rails/FindBy:
Enabled: false Enabled: true
Rails/FindEach: Rails/FindEach:
Enabled: false Enabled: true
Rails/HasAndBelongsToMany: Rails/HasAndBelongsToMany:
Enabled: false Enabled: false
@ -619,7 +699,7 @@ Rails/HasManyOrHasOneDependent:
Enabled: false Enabled: false
Rails/HttpPositionalArguments: Rails/HttpPositionalArguments:
Enabled: false Enabled: true
Rails/InverseOf: Rails/InverseOf:
Enabled: false Enabled: false
@ -637,10 +717,10 @@ Rails/OutputSafety:
Enabled: true Enabled: true
Rails/PluralizationGrammar: Rails/PluralizationGrammar:
Enabled: false Enabled: true
Rails/Presence: Rails/Presence:
Enabled: false Enabled: true
Rails/Present: Rails/Present:
Enabled: true Enabled: true
@ -648,23 +728,26 @@ Rails/Present:
Rails/ReadWriteAttribute: Rails/ReadWriteAttribute:
Enabled: false Enabled: false
Rails/RedundantReceiverInWithOptions:
Enabled: true
Rails/RelativeDateConstant: Rails/RelativeDateConstant:
Enabled: false Enabled: true
Rails/RequestReferer: Rails/RequestReferer:
Enabled: false Enabled: true
Rails/ReversibleMigration: Rails/ReversibleMigration:
Enabled: false Enabled: false
Rails/SafeNavigation: Rails/SafeNavigation:
Enabled: false Enabled: true
Rails/SaveBang: Rails/SaveBang:
Enabled: false Enabled: false
Rails/ScopeArgs: Rails/ScopeArgs:
Enabled: false Enabled: true
Rails/SkipsModelValidations: Rails/SkipsModelValidations:
Enabled: false Enabled: false
@ -673,13 +756,13 @@ Rails/TimeZone:
Enabled: false Enabled: false
Rails/UniqBeforePluck: Rails/UniqBeforePluck:
Enabled: false Enabled: true
Rails/UnknownEnv: Rails/UnknownEnv:
Enabled: false Enabled: false
Rails/Validation: Rails/Validation:
Enabled: false Enabled: true
Rails: Rails:
Enabled: true Enabled: true
@ -688,16 +771,19 @@ RSpec/Focused:
Enabled: true Enabled: true
Security/Eval: Security/Eval:
Enabled: false Enabled: true
Security/JSONLoad: Security/JSONLoad:
Enabled: false Enabled: true
Security/MarshalLoad: Security/MarshalLoad:
Enabled: false Enabled: true
Security/Open:
Enabled: true
Security/YAMLLoad: Security/YAMLLoad:
Enabled: false Enabled: true
Style/Alias: Style/Alias:
Enabled: false Enabled: false
@ -756,6 +842,9 @@ Style/CollectionMethods:
Style/ColonMethodCall: Style/ColonMethodCall:
Enabled: false Enabled: false
Style/ColonMethodDefinition:
Enabled: true
Style/CommandLiteral: Style/CommandLiteral:
Enabled: false Enabled: false
@ -777,6 +866,9 @@ Style/DateTime:
Style/DefWithParentheses: Style/DefWithParentheses:
Enabled: false Enabled: false
Style/Dir:
Enabled: true
Style/Documentation: Style/Documentation:
Enabled: false Enabled: false
@ -792,12 +884,21 @@ Style/EachForSimpleLoop:
Style/EachWithObject: Style/EachWithObject:
Enabled: false Enabled: false
Style/EmptyBlockParameter:
Enabled: true
Style/EmptyCaseCondition: Style/EmptyCaseCondition:
Enabled: false Enabled: false
Style/EmptyElse: Style/EmptyElse:
Enabled: false Enabled: false
Style/EmptyLambdaParameter:
Enabled: true
Style/EmptyLineAfterGuardClause:
Enabled: false
Style/EmptyLiteral: Style/EmptyLiteral:
Enabled: false Enabled: false
@ -816,6 +917,9 @@ Style/EvalWithLocation:
Style/EvenOdd: Style/EvenOdd:
Enabled: false Enabled: false
Style/ExpandPathArguments:
Enabled: true
Style/FlipFlop: Style/FlipFlop:
Enabled: false Enabled: false
@ -840,9 +944,6 @@ Style/GuardClause:
Style/HashSyntax: Style/HashSyntax:
Enabled: false Enabled: false
Style/HeredocDelimiters:
Enabled: false
Style/IdenticalConditionalBranches: Style/IdenticalConditionalBranches:
Enabled: false Enabled: false
@ -894,6 +995,9 @@ Style/MethodDefParentheses:
Style/MethodMissing: Style/MethodMissing:
Enabled: false Enabled: false
Style/MinMax:
Enabled: true
Style/MissingElse: Style/MissingElse:
Enabled: false Enabled: false
@ -975,6 +1079,9 @@ Style/OptionalArguments:
Style/ParallelAssignment: Style/ParallelAssignment:
Enabled: false Enabled: false
Style/OrAssignment:
Enabled: true
Style/ParenthesesAroundCondition: Style/ParenthesesAroundCondition:
Enabled: false Enabled: false
@ -1002,6 +1109,9 @@ Style/RandomWithOffset:
Style/RedundantBegin: Style/RedundantBegin:
Enabled: false Enabled: false
Style/RedundantConditional:
Enabled: true
Style/RedundantException: Style/RedundantException:
Enabled: false Enabled: false
@ -1026,6 +1136,9 @@ Style/RescueModifier:
Style/RescueStandardError: Style/RescueStandardError:
Enabled: false Enabled: false
Style/ReturnNil:
Enabled: false
Style/SafeNavigation: Style/SafeNavigation:
Enabled: false Enabled: false
@ -1053,6 +1166,12 @@ Style/SpecialGlobalVars:
Style/StabbyLambdaParentheses: Style/StabbyLambdaParentheses:
Enabled: false Enabled: false
Style/StderrPuts:
Enabled: true
Style/StringHashKeys:
Enabled: false
Style/StringLiterals: Style/StringLiterals:
Enabled: false Enabled: false
@ -1077,12 +1196,27 @@ Style/SymbolProc:
Style/TernaryParentheses: Style/TernaryParentheses:
Enabled: false Enabled: false
Style/TrailingBodyOnClass:
Enabled: true
Style/TrailingBodyOnMethodDefinition:
Enabled: true
Style/TrailingBodyOnModule:
Enabled: true
Style/TrailingCommaInArguments: Style/TrailingCommaInArguments:
Enabled: false Enabled: false
Style/TrailingCommaInLiteral: Style/TrailingCommaInArrayLiteral:
Enabled: false Enabled: false
Style/TrailingCommaInHashLiteral:
Enabled: false
Style/TrailingMethodEndStatement:
Enabled: true
Style/TrailingUnderscoreVariable: Style/TrailingUnderscoreVariable:
Enabled: false Enabled: false

View file

@ -104,8 +104,10 @@ gem 'sanitize-url'
gem 'delayed_job_active_record' gem 'delayed_job_active_record'
gem "daemons" gem "daemons"
gem 'delayed_cron_job' gem 'delayed_cron_job'
gem "delayed_job_web" # FIXME: this is a fork, go back to official version
# once https://github.com/ejschmitt/delayed_job_web/issues/101
# has been merged and released
gem "delayed_job_web", git: 'https://github.com/breckenedge/delayed_job_web.git', branch: 'cve_2017_12097'
gem 'select2-rails' gem 'select2-rails'
# PDF Generation # PDF Generation

View file

@ -1,3 +1,13 @@
GIT
remote: https://github.com/breckenedge/delayed_job_web.git
revision: 6bcb10e61ea2b9a44ffa16be8536dff46ad51449
branch: cve_2017_12097
specs:
delayed_job_web (1.4)
activerecord (> 3.0.0)
delayed_job (> 2.0.3)
sinatra (>= 1.4.4)
GIT GIT
remote: https://github.com/hassox/warden.git remote: https://github.com/hassox/warden.git
revision: a4b197e0b28e7b576b0745b0f6aeaed8dbb774a4 revision: a4b197e0b28e7b576b0745b0f6aeaed8dbb774a4
@ -114,7 +124,7 @@ GEM
sass (>= 3.3.4) sass (>= 3.3.4)
bootstrap-wysihtml5-rails (0.3.3.8) bootstrap-wysihtml5-rails (0.3.3.8)
railties (>= 3.0) railties (>= 3.0)
brakeman (4.1.1) brakeman (4.2.0)
browser (2.5.2) browser (2.5.2)
builder (3.2.3) builder (3.2.3)
byebug (10.0.0) byebug (10.0.0)
@ -172,10 +182,6 @@ GEM
delayed_job_active_record (4.1.2) delayed_job_active_record (4.1.2)
activerecord (>= 3.0, < 5.2) activerecord (>= 3.0, < 5.2)
delayed_job (>= 3.0, < 5) delayed_job (>= 3.0, < 5)
delayed_job_web (1.4)
activerecord (> 3.0.0)
delayed_job (> 2.0.3)
sinatra (>= 1.4.4)
devise (4.4.1) devise (4.4.1)
bcrypt (~> 3.0) bcrypt (~> 3.0)
orm_adapter (~> 0.1) orm_adapter (~> 0.1)
@ -526,7 +532,7 @@ GEM
json json
orm_adapter (0.5.0) orm_adapter (0.5.0)
parallel (1.12.1) parallel (1.12.1)
parser (2.5.0.1) parser (2.5.0.3)
ast (~> 2.4.0) ast (~> 2.4.0)
pdf-core (0.7.0) pdf-core (0.7.0)
pg (0.19.0) pg (0.19.0)
@ -641,9 +647,9 @@ GEM
rspec-support (3.7.1) rspec-support (3.7.1)
rspec_junit_formatter (0.3.0) rspec_junit_formatter (0.3.0)
rspec-core (>= 2, < 4, != 2.12.0) rspec-core (>= 2, < 4, != 2.12.0)
rubocop (0.52.1) rubocop (0.53.0)
parallel (~> 1.10) parallel (~> 1.10)
parser (>= 2.4.0.2, < 3.0) parser (>= 2.5)
powerpack (~> 0.1) powerpack (~> 0.1)
rainbow (>= 2.2.2, < 4.0) rainbow (>= 2.2.2, < 4.0)
ruby-progressbar (~> 1.7) ruby-progressbar (~> 1.7)
@ -671,9 +677,9 @@ GEM
scenic (1.4.1) scenic (1.4.1)
activerecord (>= 4.0.0) activerecord (>= 4.0.0)
railties (>= 4.0.0) railties (>= 4.0.0)
scss_lint (0.56.0) scss_lint (0.57.0)
rake (>= 0.9, < 13) rake (>= 0.9, < 13)
sass (~> 3.5.3) sass (~> 3.5.5)
securecompare (1.0.0) securecompare (1.0.0)
select2-rails (4.0.3) select2-rails (4.0.3)
thor (~> 0.14) thor (~> 0.14)
@ -796,7 +802,7 @@ DEPENDENCIES
deep_cloneable deep_cloneable
delayed_cron_job delayed_cron_job
delayed_job_active_record delayed_job_active_record
delayed_job_web delayed_job_web!
devise devise
dotenv-rails dotenv-rails
draper draper

View file

@ -129,6 +129,7 @@ Une fois `overmind` lancé, et un breakpoint `byebug` inséré dans le code, il
- Faire tourner Brakeman : `bundle exec brakeman` - Faire tourner Brakeman : `bundle exec brakeman`
- Linter les fichiers HAML : `bundle exec haml-lint app/views/` - Linter les fichiers HAML : `bundle exec haml-lint app/views/`
- Linter les fichiers SCSS : `bundle exec scss-lint app/assets/stylesheets/` - Linter les fichiers SCSS : `bundle exec scss-lint app/assets/stylesheets/`
- [AccessLint](http://accesslint.com/) tourne automatiquement sur les PRs
## Déploiement ## Déploiement

View file

@ -1,7 +1,7 @@
# Add your own tasks in files placed in lib/tasks ending in .rake, # Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require File.expand_path('../config/application', __FILE__) require File.expand_path('config/application', __dir__)
Rails.application.load_tasks Rails.application.load_tasks

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 542 B

After

Width:  |  Height:  |  Size: 403 B

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="53" width="318"><g font-size="50" fill="#373c42"><path d="M10.4 37.632c2.496 2.208 5.044 3.36 8.528 3.36 7.02 0 13.208-5.568 13.208-13.392 0-7.968-5.928-13.44-13.052-13.44-3.328 0-6.188 1.152-8.684 3.456V4.992H3.484V40.32H10.4v-2.688zm7.28-17.616c4.576 0 7.488 3.36 7.488 7.536 0 4.368-3.172 7.584-7.488 7.584-4.264 0-7.592-3.024-7.592-7.632 0-4.464 3.172-7.488 7.592-7.488zm40.204 12.816c-1.924 1.728-3.9 2.496-6.864 2.496-3.952 0-7.072-2.112-7.748-5.904h22.256c0-.576.052-.864.052-1.44 0-8.064-5.928-13.824-14.664-13.824-8.892 0-14.352 6.432-14.352 13.392 0 7.488 5.668 13.44 14.456 13.44 5.824 0 9.724-1.728 12.688-5.616l-5.824-2.544zm-14.3-8.448c1.352-3.216 4.004-4.8 7.436-4.8 3.692 0 6.656 1.824 7.592 4.8H43.584zm28.27-9.552H68.32v5.472h3.535V40.32h6.916V20.304h4.11v-5.472h-4.11V5.424h-6.91v9.408zM107.1 40.32h6.916V14.832H107.1v2.784c-2.496-2.304-5.356-3.456-8.684-3.456-7.176 0-13 5.472-13 13.44 0 7.824 6.136 13.392 13.156 13.392 3.484 0 6.084-1.152 8.528-3.36v2.688zm-7.28-20.304c4.368 0 7.592 3.024 7.592 7.488 0 4.656-3.328 7.632-7.592 7.632-4.316 0-7.436-3.216-7.436-7.584 0-4.176 2.86-7.536 7.436-7.536zm24.968 13.632c-2.184 0-4.004 1.584-4.004 3.648 0 2.016 1.82 3.696 4.004 3.696 2.236 0 3.952-1.68 3.952-3.696s-1.768-3.648-3.952-3.648zm38.08-18.816h-6.917v2.784c-2.6-2.256-5.3-3.456-8.73-3.456-7.02 0-12.89 5.184-12.89 13.056 0 7.632 5.83 13.104 13.26 13.104 3.59 0 6.09-1.104 8.37-3.168 0 2.4-.05 4.128-1.71 5.568-1.25 1.056-3.33 1.68-5.87 1.68-2.91 0-4.99-.672-6.4-2.208h-7.64c1.87 5.328 6.71 8.064 14.3 8.064 4.21 0 7.54-.912 10.04-2.832 3.17-2.496 4.21-5.808 4.21-10.752v-21.84zm-14.093 5.184c4.576 0 7.54 3.168 7.54 7.296 0 4.32-3.172 7.152-7.436 7.152-4.32 0-7.6-2.976-7.6-7.2 0-3.936 2.91-7.248 7.49-7.248zm34.068-5.856c-7.54 0-14.3 5.712-14.3 13.44 0 7.488 6.344 13.392 14.352 13.392 8.424 0 14.612-6.048 14.612-13.44 0-7.536-6.604-13.392-14.664-13.392zm.104 6.048c4.524 0 7.592 3.072 7.592 7.392 0 4.464-3.33 7.344-7.6 7.344-4.47 0-7.44-3.072-7.44-7.392 0-4.224 3.12-7.344 7.43-7.344zm20.16 6.288c0 2.112-.105 3.312.26 5.376 1.09 5.952 5.2 9.072 11.855 9.072 3.848 0 6.708-.96 8.892-3.216 2.912-2.976 3.224-6.432 3.224-11.136v-11.76h-6.916v13.584c0 4.32-1.508 6.672-5.2 6.672-3.64 0-5.2-2.4-5.2-6.96V14.832h-6.916v11.664zm40.07 13.824h4.47L259.4 14.832h-7.02l-6.968 15.024-6.968-15.024h-7.072l11.804 25.488zM264.856 35.6q1.228 0 2.057.79.857.766.857 1.873 0 1.108-.857 1.9-.857.763-2.057.763t-2.057-.764q-.83-.79-.83-1.9 0-1.106.83-1.87.85-.792 2.05-.792zm27.108-18.51l-.515 1.74h-4.17l-3.15 11.523q-2.09 7.62-4.2 11.786-3 5.88-6.46 8.12-2.63 1.71-5.26 1.71-1.72 0-2.92-.95-.89-.66-.89-1.72 0-.85.74-1.48.71-.61 1.77-.61.77 0 1.31.45.51.45.51 1.03 0 .58-.6 1.08-.46.37-.46.55 0 .23.2.37.255.18.8.18 1.226 0 2.6-.72 1.34-.71 2.4-2.14 1.054-1.4 1.996-4.06.4-1.11 2.146-7.31l4.97-17.85h-4.97l.4-1.74q2.37 0 3.315-.29.942-.314 1.713-1.16.8-.87 2.056-3.214 1.69-3.16 3.23-4.9 2.11-2.345 4.424-3.506 2.343-1.18 4.4-1.18 2.17 0 3.485 1.027 1.32 1.006 1.32 2.19 0 .926-.658 1.558-.658.63-1.687.63-.89 0-1.46-.47-.54-.475-.54-1.134 0-.42.37-1.03.37-.63.37-.84 0-.37-.26-.553-.37-.266-1.086-.266-1.8 0-3.23 1.058-1.913 1.4-3.43 4.38-.77 1.557-2.824 7.727h4.2z"/><path d="M293.906 17.934l9.855-1.476-4.11 12.814q5-7.884 9.09-11.02 2.32-1.794 3.77-1.794.95 0 1.49.527.55.5.55 1.477 0 1.74-.97 3.322-.68 1.186-1.97 1.186-.65 0-1.14-.395-.45-.396-.57-1.213-.06-.5-.26-.66-.22-.21-.54-.21-.48 0-.91.21-.74.37-2.25 2.057-2.37 2.58-5.14 6.69-1.19 1.74-2.05 3.93-1.2 3-1.37 3.61l-.912 3.32h-4.37l5.28-16.38q.915-2.85.915-4.06 0-.48-.43-.79-.57-.42-1.51-.42-.6 0-2.2.23l-.2-.98z"/></g></svg> <svg height="53" width="318" xmlns="http://www.w3.org/2000/svg"><g fill="#373c42"><path d="m10.4 37.632c2.496 2.208 5.044 3.36 8.528 3.36 7.02 0 13.208-5.568 13.208-13.392 0-7.968-5.928-13.44-13.052-13.44-3.328 0-6.188 1.152-8.684 3.456v-12.624h-6.916v35.328h6.916zm7.28-17.616c4.576 0 7.488 3.36 7.488 7.536 0 4.368-3.172 7.584-7.488 7.584-4.264 0-7.592-3.024-7.592-7.632 0-4.464 3.172-7.488 7.592-7.488zm40.204 12.816c-1.924 1.728-3.9 2.496-6.864 2.496-3.952 0-7.072-2.112-7.748-5.904h22.256c0-.576.052-.864.052-1.44 0-8.064-5.928-13.824-14.664-13.824-8.892 0-14.352 6.432-14.352 13.392 0 7.488 5.668 13.44 14.456 13.44 5.824 0 9.724-1.728 12.688-5.616zm-14.3-8.448c1.352-3.216 4.004-4.8 7.436-4.8 3.692 0 6.656 1.824 7.592 4.8zm28.27-9.552h-3.534v5.472h3.535v20.016h6.916v-20.016h4.11v-5.472h-4.11v-9.408h-6.91v9.408zm35.246 25.488h6.916v-25.488h-6.916v2.784c-2.496-2.304-5.356-3.456-8.684-3.456-7.176 0-13 5.472-13 13.44 0 7.824 6.136 13.392 13.156 13.392 3.484 0 6.084-1.152 8.528-3.36zm-7.28-20.304c4.368 0 7.592 3.024 7.592 7.488 0 4.656-3.328 7.632-7.592 7.632-4.316 0-7.436-3.216-7.436-7.584 0-4.176 2.86-7.536 7.436-7.536zm24.968 13.632c-2.184 0-4.004 1.584-4.004 3.648 0 2.016 1.82 3.696 4.004 3.696 2.236 0 3.952-1.68 3.952-3.696s-1.768-3.648-3.952-3.648zm38.08-18.816h-6.917v2.784c-2.6-2.256-5.3-3.456-8.73-3.456-7.02 0-12.89 5.184-12.89 13.056 0 7.632 5.83 13.104 13.26 13.104 3.59 0 6.09-1.104 8.37-3.168 0 2.4-.05 4.128-1.71 5.568-1.25 1.056-3.33 1.68-5.87 1.68-2.91 0-4.99-.672-6.4-2.208h-7.64c1.87 5.328 6.71 8.064 14.3 8.064 4.21 0 7.54-.912 10.04-2.832 3.17-2.496 4.21-5.808 4.21-10.752v-21.84zm-14.093 5.184c4.576 0 7.54 3.168 7.54 7.296 0 4.32-3.172 7.152-7.436 7.152-4.32 0-7.6-2.976-7.6-7.2 0-3.936 2.91-7.248 7.49-7.248zm34.068-5.856c-7.54 0-14.3 5.712-14.3 13.44 0 7.488 6.344 13.392 14.352 13.392 8.424 0 14.612-6.048 14.612-13.44 0-7.536-6.604-13.392-14.664-13.392zm.104 6.048c4.524 0 7.592 3.072 7.592 7.392 0 4.464-3.33 7.344-7.6 7.344-4.47 0-7.44-3.072-7.44-7.392 0-4.224 3.12-7.344 7.43-7.344zm20.16 6.288c0 2.112-.105 3.312.26 5.376 1.09 5.952 5.2 9.072 11.855 9.072 3.848 0 6.708-.96 8.892-3.216 2.912-2.976 3.224-6.432 3.224-11.136v-11.76h-6.916v13.584c0 4.32-1.508 6.672-5.2 6.672-3.64 0-5.2-2.4-5.2-6.96v-13.296h-6.916v11.664zm40.07 13.824h4.47l11.753-25.488h-7.02l-6.968 15.024-6.968-15.024h-7.072l11.804 25.488zm21.679-4.72q1.228 0 2.057.79.857.766.857 1.873 0 1.108-.857 1.9-.857.763-2.057.763t-2.057-.764q-.83-.79-.83-1.9 0-1.106.83-1.87.85-.792 2.05-.792zm27.108-18.51-.515 1.74h-4.17l-3.15 11.523q-2.09 7.62-4.2 11.786-3 5.88-6.46 8.12-2.63 1.71-5.26 1.71-1.72 0-2.92-.95-.89-.66-.89-1.72 0-.85.74-1.48.71-.61 1.77-.61.77 0 1.31.45.51.45.51 1.03 0 .58-.6 1.08-.46.37-.46.55 0 .23.2.37.255.18.8.18 1.226 0 2.6-.72 1.34-.71 2.4-2.14 1.054-1.4 1.996-4.06.4-1.11 2.146-7.31l4.97-17.85h-4.97l.4-1.74q2.37 0 3.315-.29.942-.314 1.713-1.16.8-.87 2.056-3.214 1.69-3.16 3.23-4.9 2.11-2.345 4.424-3.506 2.343-1.18 4.4-1.18 2.17 0 3.485 1.027 1.32 1.006 1.32 2.19 0 .926-.658 1.558-.658.63-1.687.63-.89 0-1.46-.47-.54-.475-.54-1.134 0-.42.37-1.03.37-.63.37-.84 0-.37-.26-.553-.37-.266-1.086-.266-1.8 0-3.23 1.058-1.913 1.4-3.43 4.38-.77 1.557-2.824 7.727h4.2z"/><path d="m293.906 17.934 9.855-1.476-4.11 12.814q5-7.884 9.09-11.02 2.32-1.794 3.77-1.794.95 0 1.49.527.55.5.55 1.477 0 1.74-.97 3.322-.68 1.186-1.97 1.186-.65 0-1.14-.395-.45-.396-.57-1.213-.06-.5-.26-.66-.22-.21-.54-.21-.48 0-.91.21-.74.37-2.25 2.057-2.37 2.58-5.14 6.69-1.19 1.74-2.05 3.93-1.2 3-1.37 3.61l-.912 3.32h-4.37l5.28-16.38q.915-2.85.915-4.06 0-.48-.43-.79-.57-.42-1.51-.42-.6 0-2.2.23l-.2-.98z"/></g></svg>

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><g fill="none" fill-rule="evenodd"><path d="M0 0h24v24H0z"/><path stroke="#15AD70" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 1C5.928 1 1 5.928 1 12s4.928 11 11 11 11-4.928 11-11S18.072 1 12 1z"/><path stroke="#15AD70" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 12.093L10.182 16 18 8"/></g></svg> <svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="m0 0h24v24h-24z"/><g stroke="#15ad70" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="m12 1c-6.072 0-11 4.928-11 11s4.928 11 11 11 11-4.928 11-11-4.928-11-11-11z"/><path d="m6 12.093 4.182 3.907 7.818-8"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 434 B

After

Width:  |  Height:  |  Size: 371 B

View file

@ -1 +1 @@
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>ic_attach</title><g fill="none" fill-rule="evenodd"><path d="M13.153 6.701l-4.512 7.815a1.638 1.638 0 0 0 .604 2.237 1.638 1.638 0 0 0 2.24-.596l3.324-5.758 1.843-3.193a3.277 3.277 0 0 0-1.207-4.475 3.277 3.277 0 0 0-4.478 1.192L7.642 9.681l-.395.686-2.533 4.387a4.23 4.23 0 0 0 1.557 5.774l.458.265a4.229 4.229 0 0 0 5.779-1.539l6.464-11.196" stroke="#0069CC" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M0 0h24v24H0z"/></g></svg> <svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="m13.153 6.701-4.512 7.815a1.638 1.638 0 0 0 .604 2.237 1.638 1.638 0 0 0 2.24-.596l3.324-5.758 1.843-3.193a3.277 3.277 0 0 0 -1.207-4.475 3.277 3.277 0 0 0 -4.478 1.192l-3.325 5.758-.395.686-2.533 4.387a4.23 4.23 0 0 0 1.557 5.774l.458.265a4.229 4.229 0 0 0 5.779-1.539l6.464-11.196" stroke="#0069cc" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/><path d="m0 0h24v24h-24z"/></g></svg>

Before

Width:  |  Height:  |  Size: 551 B

After

Width:  |  Height:  |  Size: 530 B

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><g fill="none" fill-rule="evenodd"><g stroke="#0069CC" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M11.999 7.104l-2.2-2.25h-6.6c-1.21 0-2.189 1.014-2.189 2.25l-.011 13.5c0 1.238.99 2.25 2.2 2.25h17.6c1.21 0 2.2-1.012 2.2-2.25V9.355c0-1.237-.99-2.25-2.2-2.25"/><path d="M20.877 6.871l1.829-1.829a.994.994 0 0 0 0-1.41l-2.339-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83-1.069 1.07L4.999 15.25V19h3.75L19.807 7.941l1.07-1.07zm-3.608-3.662l3.396 3.542"/></g><path d="M0 0h24v24H0z"/></g></svg> <svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><g stroke="#0069cc" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="m11.999 7.104-2.2-2.25h-6.6c-1.21 0-2.189 1.014-2.189 2.25l-.011 13.5c0 1.238.99 2.25 2.2 2.25h17.6c1.21 0 2.2-1.012 2.2-2.25v-11.249c0-1.237-.99-2.25-2.2-2.25"/><path d="m20.877 6.871 1.829-1.829a.994.994 0 0 0 0-1.41l-2.339-2.34a.996.996 0 0 0 -1.41 0l-1.83 1.83-1.069 1.07-11.059 11.058v3.75h3.75l11.058-11.059zm-3.608-3.662 3.396 3.542"/></g><path d="m0 0h24v24h-24z"/></g></svg>

Before

Width:  |  Height:  |  Size: 595 B

After

Width:  |  Height:  |  Size: 594 B

View file

@ -1 +1 @@
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>ic_follow_folder</title><g fill="none" fill-rule="evenodd"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2z" stroke="#15AD70" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><g stroke="#15AD70" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 13H7.533M12 10l4 3-4 3"/></g><path d="M0 0h24v24H0z"/></g></svg> <svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="m20 6h-8l-2-2h-6c-1.1 0-1.99.9-1.99 2l-.01 12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-10c0-1.1-.9-2-2-2z" stroke="#15ad70" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/><path d="m15 13h-7.467m4.467-3 4 3-4 3" stroke="#15ad70" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/><path d="m0 0h24v24h-24z"/></g></svg>

Before

Width:  |  Height:  |  Size: 494 B

After

Width:  |  Height:  |  Size: 467 B

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="640.5 640.5 512 512"><path d="M820.864 861.591h151.273v-56.727c0-20.879-7.387-38.705-22.159-53.478-14.773-14.772-32.599-22.159-53.478-22.159s-38.705 7.387-53.477 22.159c-14.773 14.773-22.159 32.599-22.159 53.478v56.727zm245.818 28.364v170.182c0 7.879-2.758 14.575-8.272 20.091-5.516 5.515-12.212 8.272-20.091 8.272H754.682c-7.879 0-14.576-2.758-20.091-8.272-5.515-5.516-8.272-12.212-8.272-20.091V889.955c0-7.879 2.757-14.576 8.272-20.091s12.212-8.273 20.091-8.273h9.455v-56.727c0-36.243 13-67.364 39-93.364s57.121-39 93.364-39c36.242 0 67.363 13 93.363 39s39 57.121 39 93.364v56.727h9.455c7.879 0 14.575 2.758 20.091 8.273 5.514 5.515 8.272 12.212 8.272 20.091z" fill="#999999"/></svg> <svg height="24" viewBox="640.5 640.5 512 512" width="24" xmlns="http://www.w3.org/2000/svg"><path d="m820.864 861.591h151.273v-56.727c0-20.879-7.387-38.705-22.159-53.478-14.773-14.772-32.599-22.159-53.478-22.159s-38.705 7.387-53.477 22.159c-14.773 14.773-22.159 32.599-22.159 53.478zm245.818 28.364v170.182c0 7.879-2.758 14.575-8.272 20.091-5.516 5.515-12.212 8.272-20.091 8.272h-283.637c-7.879 0-14.576-2.758-20.091-8.272-5.515-5.516-8.272-12.212-8.272-20.091v-170.182c0-7.879 2.757-14.576 8.272-20.091s12.212-8.273 20.091-8.273h9.455v-56.727c0-36.243 13-67.364 39-93.364s57.121-39 93.364-39c36.242 0 67.363 13 93.363 39s39 57.121 39 93.364v56.727h9.455c7.879 0 14.575 2.758 20.091 8.273 5.514 5.515 8.272 12.212 8.272 20.091z" fill="#999"/></svg>

Before

Width:  |  Height:  |  Size: 758 B

After

Width:  |  Height:  |  Size: 749 B

View file

@ -1 +1 @@
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>printer</title><g fill="none" fill-rule="evenodd"><path d="M0 0h24v24H0z"/><path d="M3 8v7h18V8H3zm0-2h18a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2zm1 9v2h16v-2H4z" fill="#0069CC" fill-rule="nonzero"/><path d="M7 2h10a2 2 0 0 1 2 2v3H5V4a2 2 0 0 1 2-2z" stroke="#0069CC" stroke-width="2"/><g transform="translate(5 13)"><path d="M0 0h14v7a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V0z" stroke="#0069CC" stroke-width="2"/><rect fill="#0069CC" fill-rule="nonzero" x="2" y="5" width="6" height="1.5" rx=".75"/><rect fill="#0069CC" fill-rule="nonzero" x="2" y="2.5" width="10" height="1.5" rx=".75"/></g></g></svg> <svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="m0 0h24v24h-24z"/><path d="m3 8v7h18v-7zm0-2h18a2 2 0 0 1 2 2v7a2 2 0 0 1 -2 2h-18a2 2 0 0 1 -2-2v-7a2 2 0 0 1 2-2zm1 9v2h16v-2z" fill="#0069cc" fill-rule="nonzero"/><path d="m7 2h10a2 2 0 0 1 2 2v3h-14v-3a2 2 0 0 1 2-2z" stroke="#0069cc" stroke-width="2"/><g transform="translate(5 13)"><path d="m0 0h14v7a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2-2z" stroke="#0069cc" stroke-width="2"/><g fill="#0069cc" fill-rule="nonzero"><rect height="1.5" rx=".75" width="6" x="2" y="5"/><rect height="1.5" rx=".75" width="10" x="2" y="2.5"/></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 707 B

After

Width:  |  Height:  |  Size: 666 B

View file

@ -1 +1 @@
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>close</title><path d="M12 1C5.928 1 1 5.928 1 12s4.928 11 11 11 11-4.928 11-11S18.072 1 12 1zm3.833 7L8 15.833 15.833 8zm0 7.833L8 8l7.833 7.833z" stroke="#ED1C24" stroke-width="2" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg> <svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="m12 1c-6.072 0-11 4.928-11 11s4.928 11 11 11 11-4.928 11-11-4.928-11-11-11zm3.833 7-7.833 7.833zm0 7.833-7.833-7.833z" fill="none" stroke="#ed1c24" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></svg>

Before

Width:  |  Height:  |  Size: 357 B

After

Width:  |  Height:  |  Size: 311 B

View file

@ -1 +1 @@
<svg width="25" height="25" viewBox="0 0 25 25" xmlns="http://www.w3.org/2000/svg"><title>Shape</title><path d="M20.37.5H4.946L.7 6.19l12 18.31 12-18.31L20.37.5zm2.355 5.69l-2.98 4.541c0-.006-.005-.011-.005-.011-.39-.975-.853-2.648-4.215-3.026 0 0-5.351.321-6.377-.563-1.025-.885-2.917-3.132 1.417-4.58 2.635-.885 5.716.377 5.998 3.887h3.488V2.213l2.674 3.977zM8.253 14.49a.148.148 0 0 0-.021.034L5.84 10.877l.005-.01s.912.732 4.232.884c3.32.146 6.25.146 7.158 1.087.912.94-.769 2.704-4.791 2.462-.005 0-2.257-3.606-4.19-.811zM18.311 2.19s.21 1.578-.756 1.972c0 0-.084-.355-1.207-1.972h1.963zm-12.735 0h2.45c-.454.192-3.657 1.989-3.417 6.8v.023L2.759 6.19l2.817-4zm4.073 14.496c.004 0 4.85.715 6.212-.186.059-.04.117-.079.18-.13l-3.299 5.031-3.093-4.715z" fill-rule="nonzero" fill="#0069CC"/></svg> <svg height="25" viewBox="0 0 25 25" width="25" xmlns="http://www.w3.org/2000/svg"><path d="m20.37.5h-15.424l-4.246 5.69 12 18.31 12-18.31zm2.355 5.69-2.98 4.541c0-.006-.005-.011-.005-.011-.39-.975-.853-2.648-4.215-3.026 0 0-5.351.321-6.377-.563-1.025-.885-2.917-3.132 1.417-4.58 2.635-.885 5.716.377 5.998 3.887h3.488v-4.225zm-14.472 8.3a.148.148 0 0 0 -.021.034l-2.392-3.647.005-.01s.912.732 4.232.884c3.32.146 6.25.146 7.158 1.087.912.94-.769 2.704-4.791 2.462-.005 0-2.257-3.606-4.19-.811zm10.058-12.3s.21 1.578-.756 1.972c0 0-.084-.355-1.207-1.972zm-12.735 0h2.45c-.454.192-3.657 1.989-3.417 6.8v.023l-1.85-2.823zm4.073 14.496c.004 0 4.85.715 6.212-.186.059-.04.117-.079.18-.13l-3.299 5.031z" fill="#0069cc"/></svg>

Before

Width:  |  Height:  |  Size: 798 B

After

Width:  |  Height:  |  Size: 720 B

View file

@ -1 +1 @@
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>without-continuation</title><g fill="none" fill-rule="evenodd"><path d="M12 1C5.928 1 1 5.928 1 12s4.928 11 11 11 11-4.928 11-11S18.072 1 12 1z" stroke="#333" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><g transform="translate(7 11)" fill-rule="nonzero" fill="#333"><circle cx="1" cy="1" r="1"/><circle cx="5" cy="1" r="1"/><circle cx="9" cy="1" r="1"/></g></g></svg> <svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="m12 1c-6.072 0-11 4.928-11 11s4.928 11 11 11 11-4.928 11-11-4.928-11-11-11z" stroke="#333" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/><g fill="#333" fill-rule="nonzero"><circle cx="8" cy="12" r="1"/><circle cx="12" cy="12" r="1"/><circle cx="16" cy="12" r="1"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 478 B

After

Width:  |  Height:  |  Size: 424 B

View file

@ -1 +1 @@
<svg width="96" height="92" viewBox="0 0 96 92" xmlns="http://www.w3.org/2000/svg"><title>08D2E231-4C84-4B79-AC9D-982A43B5F62D</title><g fill="none" fill-rule="evenodd"><path d="M0-2h96v96H0z"/><path d="M35 85.679c3.208 3.278 7.675 5.32 12.624 5.32 4.95 0 9.417-2.043 12.625-5.321-.922-3.106-3.123-6.105-8.248-6.105 0 0-1.634 1.592-4.377 1.592-2.744 0-4.376-1.592-4.376-1.592-5.125 0-7.326 2.999-8.248 6.106zM47.624 74.63c3.783 0 6.854-3.05 6.854-6.811 0-3.768-3.07-6.82-6.854-6.82-3.782 0-6.854 3.052-6.854 6.82 0 3.76 3.073 6.812 6.854 6.812zM1 42.679c3.208 3.278 7.675 5.32 12.625 5.32 4.949 0 9.417-2.043 12.625-5.321-.922-3.106-3.124-6.105-8.249-6.105 0 0-1.634 1.592-4.376 1.592-2.745 0-4.376-1.592-4.376-1.592-5.126 0-7.327 2.999-8.249 6.106zM13.624 31.63c3.783 0 6.854-3.05 6.854-6.811 0-3.768-3.07-6.82-6.854-6.82-3.783 0-6.854 3.052-6.854 6.82 0 3.76 3.074 6.812 6.854 6.812zM69 42.679c3.207 3.278 7.675 5.32 12.624 5.32 4.95 0 9.418-2.043 12.626-5.321-.922-3.106-3.124-6.105-8.249-6.105 0 0-1.635 1.592-4.377 1.592-2.743 0-4.375-1.592-4.375-1.592-5.126 0-7.328 2.999-8.25 6.106zM81.624 31.63c3.784 0 6.855-3.05 6.855-6.811 0-3.768-3.072-6.82-6.855-6.82-3.782 0-6.853 3.052-6.853 6.82 0 3.76 3.073 6.812 6.853 6.812zm-4.089-18.51C69.795 5.622 59.253 1 47.625 1s-22.17 4.622-29.91 12.12m50.143 68.825c10.966-5.859 19.089-16.33 21.788-28.825m-84.043 0c2.736 12.67 11.055 23.255 22.255 29.064" stroke="#FFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></g></svg> <svg height="92" viewBox="0 0 96 92" width="96" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="m0-2h96v96h-96z"/><path d="m35 85.679c3.208 3.278 7.675 5.32 12.624 5.32 4.95 0 9.417-2.043 12.625-5.321-.922-3.106-3.123-6.105-8.248-6.105 0 0-1.634 1.592-4.377 1.592-2.744 0-4.376-1.592-4.376-1.592-5.125 0-7.326 2.999-8.248 6.106zm12.624-11.049c3.783 0 6.854-3.05 6.854-6.811 0-3.768-3.07-6.82-6.854-6.82-3.782 0-6.854 3.052-6.854 6.82 0 3.76 3.073 6.812 6.854 6.812zm-46.624-31.951c3.208 3.278 7.675 5.32 12.625 5.32 4.949 0 9.417-2.043 12.625-5.321-.922-3.106-3.124-6.105-8.249-6.105 0 0-1.634 1.592-4.376 1.592-2.745 0-4.376-1.592-4.376-1.592-5.126 0-7.327 2.999-8.249 6.106zm12.624-11.049c3.783 0 6.854-3.05 6.854-6.811 0-3.768-3.07-6.82-6.854-6.82-3.783 0-6.854 3.052-6.854 6.82 0 3.76 3.074 6.812 6.854 6.812zm55.376 11.049c3.207 3.278 7.675 5.32 12.624 5.32 4.95 0 9.418-2.043 12.626-5.321-.922-3.106-3.124-6.105-8.249-6.105 0 0-1.635 1.592-4.377 1.592-2.743 0-4.375-1.592-4.375-1.592-5.126 0-7.328 2.999-8.25 6.106zm12.624-11.049c3.784 0 6.855-3.05 6.855-6.811 0-3.768-3.072-6.82-6.855-6.82-3.782 0-6.853 3.052-6.853 6.82 0 3.76 3.073 6.812 6.853 6.812zm-4.089-18.51c-7.74-7.498-18.282-12.12-29.91-12.12s-22.17 4.622-29.91 12.12m50.143 68.825c10.966-5.859 19.089-16.33 21.788-28.825m-84.043 0c2.736 12.67 11.055 23.255 22.255 29.064" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1 +1 @@
<svg width="77" height="95" viewBox="0 0 77 95" xmlns="http://www.w3.org/2000/svg"><title>48989501-DD47-4082-8A9E-1AFAB7A24CFE</title><g fill="none" fill-rule="evenodd"><path d="M-10-1h96v96h-96z"/><path d="M65.917 16a4.917 4.917 0 1 1-9.834 0 4.917 4.917 0 0 1 9.834 0z" stroke="#FFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M74.74 13.84h-3.718a10.153 10.153 0 0 0-1.41-3.395l2.631-2.631a1.26 1.26 0 0 0 0-1.784l-1.272-1.272a1.264 1.264 0 0 0-1.785 0l-2.63 2.632a10.202 10.202 0 0 0-3.395-1.412V2.262C63.161 1.566 62.596 1 61.9 1h-1.798c-.696 0-1.26.566-1.26 1.262v3.716a10.216 10.216 0 0 0-3.396 1.412l-2.632-2.632a1.261 1.261 0 0 0-1.783 0L49.76 6.03a1.26 1.26 0 0 0 0 1.784l2.63 2.63a10.196 10.196 0 0 0-1.412 3.396h-3.717a1.26 1.26 0 0 0-1.26 1.262V16.9a1.26 1.26 0 0 0 1.26 1.26h3.717c.265 1.23.75 2.375 1.411 3.396l-2.63 2.632a1.258 1.258 0 0 0 0 1.782l1.271 1.274a1.261 1.261 0 0 0 1.783 0l2.632-2.631a10.256 10.256 0 0 0 3.395 1.41v3.716c0 .696.565 1.263 1.261 1.263H61.9c.697 0 1.262-.567 1.262-1.263v-3.715a10.242 10.242 0 0 0 3.394-1.411l2.631 2.63a1.264 1.264 0 0 0 1.785 0l1.272-1.273a1.258 1.258 0 0 0 0-1.782l-2.63-2.632a10.153 10.153 0 0 0 1.41-3.395h3.717A1.26 1.26 0 0 0 76 16.9v-1.798a1.26 1.26 0 0 0-1.26-1.262z" stroke="#FFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M45 2H3.727A2.727 2.727 0 0 0 1 4.726v86.545A2.727 2.727 0 0 0 3.727 94h69.546A2.727 2.727 0 0 0 76 91.272V31M1 12h39" stroke="#FFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M8.256 7.028a2 2 0 1 1-4.002-.001 2 2 0 0 1 4.002.001m6 0a2 2 0 1 1-4.002-.001 2 2 0 0 1 4.002.001m6 0a2 2 0 1 1-4.002-.001 2 2 0 0 1 4.002.001" fill="#FFF"/><path d="M66 39H11m55 9H11m55 8H11m55 9H11m31-35H11m31 44H11" stroke="#FFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></g></svg> <svg height="95" viewBox="0 0 77 95" width="77" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="m-10-1h96v96h-96z"/><g stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="m65.917 16a4.917 4.917 0 1 1 -9.834 0 4.917 4.917 0 0 1 9.834 0z"/><path d="m74.74 13.84h-3.718a10.153 10.153 0 0 0 -1.41-3.395l2.631-2.631a1.26 1.26 0 0 0 0-1.784l-1.272-1.272a1.264 1.264 0 0 0 -1.785 0l-2.63 2.632a10.202 10.202 0 0 0 -3.395-1.412v-3.716c0-.696-.565-1.262-1.261-1.262h-1.798c-.696 0-1.26.566-1.26 1.262v3.716a10.216 10.216 0 0 0 -3.396 1.412l-2.632-2.632a1.261 1.261 0 0 0 -1.783 0l-1.271 1.272a1.26 1.26 0 0 0 0 1.784l2.63 2.63a10.196 10.196 0 0 0 -1.412 3.396h-3.717a1.26 1.26 0 0 0 -1.26 1.262v1.798a1.26 1.26 0 0 0 1.26 1.26h3.717c.265 1.23.75 2.375 1.411 3.396l-2.63 2.632a1.258 1.258 0 0 0 0 1.782l1.271 1.274a1.261 1.261 0 0 0 1.783 0l2.632-2.631a10.256 10.256 0 0 0 3.395 1.41v3.716c0 .696.565 1.263 1.261 1.263h1.799c.697 0 1.262-.567 1.262-1.263v-3.715a10.242 10.242 0 0 0 3.394-1.411l2.631 2.63a1.264 1.264 0 0 0 1.785 0l1.272-1.273a1.258 1.258 0 0 0 0-1.782l-2.63-2.632a10.153 10.153 0 0 0 1.41-3.395h3.717a1.26 1.26 0 0 0 1.259-1.261v-1.798a1.26 1.26 0 0 0 -1.26-1.262z"/><path d="m45 2h-41.273a2.727 2.727 0 0 0 -2.727 2.726v86.545a2.727 2.727 0 0 0 2.727 2.729h69.546a2.727 2.727 0 0 0 2.727-2.728v-60.272m-75-19h39"/></g><path d="m8.256 7.028a2 2 0 1 1 -4.002-.001 2 2 0 0 1 4.002.001m6 0a2 2 0 1 1 -4.002-.001 2 2 0 0 1 4.002.001m6 0a2 2 0 1 1 -4.002-.001 2 2 0 0 1 4.002.001" fill="#fff"/><path d="m66 39h-55m55 9h-55m55 8h-55m55 9h-55m31-35h-31m31 44h-31" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -1 +1 @@
<svg width="78" height="77" viewBox="0 0 78 77" xmlns="http://www.w3.org/2000/svg"><title>Bubble</title><g fill="none" fill-rule="evenodd"><path d="M1.71 74.123S7.274 57.91 6.97 57.397c-.03-.05-.054-.097-.082-.14A37.27 37.27 0 0 1 1.841 38.5C1.84 17.79 18.628 1 39.335 1c20.712 0 37.5 16.79 37.5 37.5S60.047 76 39.335 76a37.353 37.353 0 0 1-20.765-6.282.213.213 0 0 1 .032.025L1.71 74.123z" stroke="#FFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M25.168 38.917a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0M42.882 38.917a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0M60.597 38.917a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0" fill="#FFF"/></g></svg> <svg height="77" viewBox="0 0 78 77" width="78" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="m1.71 74.123s5.564-16.213 5.26-16.726c-.03-.05-.054-.097-.082-.14a37.27 37.27 0 0 1 -5.047-18.757c-.001-20.71 16.787-37.5 37.494-37.5 20.712 0 37.5 16.79 37.5 37.5s-16.788 37.5-37.5 37.5a37.353 37.353 0 0 1 -20.765-6.282.213.213 0 0 1 .032.025z" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/><path d="m25.168 38.917a3.75 3.75 0 1 1 -7.5 0 3.75 3.75 0 0 1 7.5 0m17.714 0a3.75 3.75 0 1 1 -7.5 0 3.75 3.75 0 0 1 7.5 0m17.715 0a3.75 3.75 0 1 1 -7.5 0 3.75 3.75 0 0 1 7.5 0" fill="#fff"/></g></svg>

Before

Width:  |  Height:  |  Size: 678 B

After

Width:  |  Height:  |  Size: 653 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View file

@ -1 +1 @@
<svg width="94" height="96" viewBox="0 0 94 96" xmlns="http://www.w3.org/2000/svg"><title>usager</title><g fill="none" fill-rule="evenodd"><path d="M17.334 12.334h39" stroke="#0069CC" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M26.09 7.316a2 2 0 1 1-4.002-.001 2 2 0 0 1 4.002.001M32.09 7.316a2 2 0 1 1-4.002-.001 2 2 0 0 1 4.002.001M38.09 7.316a2 2 0 1 1-4.002-.001 2 2 0 0 1 4.002.001" fill="#0069CC"/><path d="M82.334 39.334h-55M82.334 48.334h-53M82.334 56.334H34.995M82.334 65.334H39.352M54.334 30.334h-27M58.334 74.334H39.021M37.334 94.334h52.773c1.506 0 2.227-2.268 2.227-3.773V31.334M61.334 2.334H20.561c-1.506 0-3.227.174-3.227 1.68v43.32" stroke="#0069CC" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><g><path d="M62.284 30.249s2.225-6.485 2.104-6.69l-.033-.056A14.908 14.908 0 0 1 62.336 16c0-8.284 6.715-15 14.998-15 8.285 0 15 6.716 15 15 0 8.284-6.715 15-15 15-3.072 0-5.926-.929-8.306-2.513.003.001.013.01.013.01l-6.757 1.752z" fill="#D9E9FD"/><path d="M62.284 30.249s2.225-6.485 2.104-6.69l-.033-.056A14.908 14.908 0 0 1 62.336 16c0-8.284 6.715-15 14.998-15 8.285 0 15 6.716 15 15 0 8.284-6.715 15-15 15-3.072 0-5.926-.929-8.306-2.513.003.001.013.01.013.01l-6.757 1.752z" stroke="#0069CC" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M71.667 16.167a1.501 1.501 0 1 1-3.002 0 1.501 1.501 0 0 1 3.002 0M78.753 16.167a1.501 1.501 0 1 1-3.002 0 1.501 1.501 0 0 1 3.002 0M85.839 16.167a1.501 1.501 0 1 1-3.002 0 1.501 1.501 0 0 1 3.002 0" fill="#0069CC"/></g><g><path d="M1 87.05c4.277 4.37 10.235 7.094 16.834 7.094s12.555-2.725 16.833-7.096c-1.229-4.143-4.164-8.141-10.997-8.141 0 0-2.18 2.123-5.836 2.123-3.659 0-5.836-2.123-5.836-2.123-6.834 0-9.768 3.998-10.998 8.143" fill="#D9E9FD"/><path d="M1 87.05c4.277 4.37 10.235 7.094 16.834 7.094s12.555-2.725 16.833-7.096c-1.229-4.143-4.164-8.141-10.997-8.141 0 0-2.18 2.123-5.836 2.123-3.659 0-5.836-2.123-5.836-2.123-6.834 0-9.768 3.998-10.998 8.143z" stroke="#0069CC" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M17.834 72.32c5.044 0 9.138-4.069 9.138-9.083 0-5.025-4.094-9.094-9.138-9.094s-9.138 4.07-9.138 9.094c0 5.014 4.096 9.082 9.138 9.082" fill="#D9E9FD"/><path d="M17.834 72.32c5.044 0 9.138-4.069 9.138-9.083 0-5.025-4.094-9.094-9.138-9.094s-9.138 4.07-9.138 9.094c0 5.014 4.096 9.082 9.138 9.082z" stroke="#0069CC" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></g></g></svg> <svg height="96" viewBox="0 0 94 96" width="94" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="m17.334 12.334h39" stroke="#0069cc" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/><path d="m26.09 7.316a2 2 0 1 1 -4.002-.001 2 2 0 0 1 4.002.001m6 0a2 2 0 1 1 -4.002-.001 2 2 0 0 1 4.002.001m6 0a2 2 0 1 1 -4.002-.001 2 2 0 0 1 4.002.001" fill="#0069cc"/><path d="m82.334 39.334h-55m55 9h-53m53 8h-47.339m47.339 9h-42.982m14.982-35h-27m31 44h-19.313m-1.687 20h52.773c1.506 0 2.227-2.268 2.227-3.773v-59.227m-31-29h-40.773c-1.506 0-3.227.174-3.227 1.68v43.32" stroke="#0069cc" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/><path d="m62.284 30.249s2.225-6.485 2.104-6.69l-.033-.056a14.908 14.908 0 0 1 -2.019-7.503c0-8.284 6.715-15 14.998-15 8.285 0 15 6.716 15 15s-6.715 15-15 15c-3.072 0-5.926-.929-8.306-2.513.003.001.013.01.013.01z" fill="#d9e9fd"/><path d="m62.284 30.249s2.225-6.485 2.104-6.69l-.033-.056a14.908 14.908 0 0 1 -2.019-7.503c0-8.284 6.715-15 14.998-15 8.285 0 15 6.716 15 15s-6.715 15-15 15c-3.072 0-5.926-.929-8.306-2.513.003.001.013.01.013.01z" stroke="#0069cc" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/><path d="m71.667 16.167a1.501 1.501 0 1 1 -3.002 0 1.501 1.501 0 0 1 3.002 0m7.086 0a1.501 1.501 0 1 1 -3.002 0 1.501 1.501 0 0 1 3.002 0m7.086 0a1.501 1.501 0 1 1 -3.002 0 1.501 1.501 0 0 1 3.002 0" fill="#0069cc"/><path d="m1 87.05c4.277 4.37 10.235 7.094 16.834 7.094s12.555-2.725 16.833-7.096c-1.229-4.143-4.164-8.141-10.997-8.141 0 0-2.18 2.123-5.836 2.123-3.659 0-5.836-2.123-5.836-2.123-6.834 0-9.768 3.998-10.998 8.143" fill="#d9e9fd"/><path d="m1 87.05c4.277 4.37 10.235 7.094 16.834 7.094s12.555-2.725 16.833-7.096c-1.229-4.143-4.164-8.141-10.997-8.141 0 0-2.18 2.123-5.836 2.123-3.659 0-5.836-2.123-5.836-2.123-6.834 0-9.768 3.998-10.998 8.143z" stroke="#0069cc" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/><path d="m17.834 72.32c5.044 0 9.138-4.069 9.138-9.083 0-5.025-4.094-9.094-9.138-9.094s-9.138 4.07-9.138 9.094c0 5.014 4.096 9.082 9.138 9.082" fill="#d9e9fd"/><path d="m17.834 72.32c5.044 0 9.138-4.069 9.138-9.083 0-5.025-4.094-9.094-9.138-9.094s-9.138 4.07-9.138 9.094c0 5.014 4.096 9.082 9.138 9.082z" stroke="#0069cc" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View file

@ -1 +1 @@
<svg width="39" height="31" viewBox="0 0 39 31" xmlns="http://www.w3.org/2000/svg"><title>Slice</title><path d="M14.832 15.96v14.432H0v-10.13c0-3.886.672-7.471 2.016-10.756C3.36 6.222 5.616 3.053 8.784 0l5.472 4.163C10.512 8.05 8.4 11.981 7.92 15.96h6.912zm24.192 0v14.432H24.192v-10.13c0-3.886.672-7.471 2.016-10.756 1.344-3.284 3.6-6.453 6.768-9.506l5.472 4.163c-3.744 3.886-5.856 7.818-6.336 11.796h6.912z" fill="#0069CC" fill-rule="nonzero"/></svg> <svg height="31" viewBox="0 0 39 31" width="39" xmlns="http://www.w3.org/2000/svg"><path d="m14.832 15.96v14.432h-14.832v-10.13c0-3.886.672-7.471 2.016-10.756 1.344-3.284 3.6-6.453 6.768-9.506l5.472 4.163c-3.744 3.887-5.856 7.818-6.336 11.797zm24.192 0v14.432h-14.832v-10.13c0-3.886.672-7.471 2.016-10.756 1.344-3.284 3.6-6.453 6.768-9.506l5.472 4.163c-3.744 3.886-5.856 7.818-6.336 11.796h6.912z" fill="#0069cc"/></svg>

Before

Width:  |  Height:  |  Size: 452 B

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 21 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -1 +1 @@
<svg width="10" height="6" viewBox="0 0 10 6" xmlns="http://www.w3.org/2000/svg"><title>ic_dropdown</title><g fill="none" fill-rule="evenodd"><path stroke="#333" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M1 1l4 4 4-4"/><path d="M-7-9h24v24H-7z"/></g></svg> <svg height="6" viewBox="0 0 10 6" width="10" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="m1 1 4 4 4-4" stroke="#333" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/><path d="m-7-9h24v24h-24z"/></g></svg>

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 256 B

View file

@ -1 +1 @@
<svg width="10" height="6" viewBox="0 0 10 6" xmlns="http://www.w3.org/2000/svg"><title>ic_dropdown</title><g fill="none" fill-rule="evenodd"><path stroke="#333" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M1 5l4-4 4 4"/><path d="M-7 15h24V-9H-7z"/></g></svg> <svg height="6" viewBox="0 0 10 6" width="10" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="m1 5 4-4 4 4" stroke="#333" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/><path d="m-7 15h24v-24h-24z"/></g></svg>

Before

Width:  |  Height:  |  Size: 282 B

After

Width:  |  Height:  |  Size: 258 B

View file

@ -34,10 +34,10 @@
#tps-title { #tps-title {
font-family: Arial; font-family: Arial;
font-size: 24px; font-size: 16px;
font-weight: bold; font-weight: bold;
line-height: 28px; line-height: 20px;
margin-top: 17px; margin-top: 10px;
} }
} }

View file

@ -349,7 +349,6 @@ $cta-panel-button-border-size: 2px;
@mixin role-button { @mixin role-button {
@include horizontal-padding(30px); @include horizontal-padding(30px);
height: 50px;
display: inline-block; display: inline-block;
border-radius: 100px; border-radius: 100px;
font-size: 20px; font-size: 20px;

View file

@ -8,7 +8,7 @@ class Admin::AttestationTemplatesController < AdminController
def update def update
attestation_template = @procedure.attestation_template attestation_template = @procedure.attestation_template
if attestation_template.update_attributes(activated_attestation_params) if attestation_template.update(activated_attestation_params)
flash.notice = "L'attestation a bien été modifiée" flash.notice = "L'attestation a bien été modifiée"
else else
flash.alert = attestation_template.errors.full_messages.join('<br>') flash.alert = attestation_template.errors.full_messages.join('<br>')

View file

@ -19,7 +19,7 @@ class Admin::GestionnairesController < AdminController
def create def create
email = params[:gestionnaire][:email].downcase email = params[:gestionnaire][:email].downcase
@gestionnaire = Gestionnaire.find_by_email(email) @gestionnaire = Gestionnaire.find_by(email: email)
procedure_id = params[:procedure_id] procedure_id = params[:procedure_id]
if @gestionnaire.nil? if @gestionnaire.nil?

View file

@ -11,7 +11,7 @@ class Admin::MailTemplatesController < AdminController
def update def update
mail_template = find_mail_template_by_slug(params[:id]) mail_template = find_mail_template_by_slug(params[:id])
mail_template.update_attributes(update_params) mail_template.update(update_params)
redirect_to admin_procedure_mail_templates_path redirect_to admin_procedure_mail_templates_path
end end

View file

@ -6,7 +6,7 @@ class Admin::PiecesJustificativesController < AdminController
end end
def update def update
if @procedure.update_attributes(update_params) if @procedure.update(update_params)
flash.now.notice = 'Modifications sauvegardées' flash.now.notice = 'Modifications sauvegardées'
else else
flash.now.notice = 'Une erreur est survenue' flash.now.notice = 'Une erreur est survenue'

View file

@ -105,7 +105,7 @@ class Admin::ProceduresController < AdminController
def update def update
@procedure = current_administrateur.procedures.find(params[:id]) @procedure = current_administrateur.procedures.find(params[:id])
if !@procedure.update_attributes(procedure_params) if !@procedure.update(procedure_params)
flash.now.alert = @procedure.errors.full_messages flash.now.alert = @procedure.errors.full_messages
return render 'edit' return render 'edit'
end end
@ -132,7 +132,7 @@ class Admin::ProceduresController < AdminController
return redirect_to admin_procedures_path return redirect_to admin_procedures_path
end end
procedure_path = ProcedurePath.find_by_path(params[:procedure_path]) procedure_path = ProcedurePath.find_by(path: params[:procedure_path])
if procedure_path if procedure_path
if procedure_path.administrateur_id == current_administrateur.id if procedure_path.administrateur_id == current_administrateur.id
procedure_path.procedure.archive procedure_path.procedure.archive
@ -154,7 +154,7 @@ class Admin::ProceduresController < AdminController
end end
def transfer def transfer
admin = Administrateur.find_by_email(params[:email_admin].downcase) admin = Administrateur.find_by(email: params[:email_admin].downcase)
if admin.nil? if admin.nil?
render '/admin/procedures/transfer', formats: 'js', status: 404 render '/admin/procedures/transfer', formats: 'js', status: 404

View file

@ -15,7 +15,7 @@ class Admin::TypesDeChampController < AdminController
end end
def update def update
@procedure.update_attributes(TypesDeChampService.create_update_procedure_params params) @procedure.update(TypesDeChampService.create_update_procedure_params params)
create_facade create_facade
flash.now.notice = 'Modifications sauvegardées' flash.now.notice = 'Modifications sauvegardées'
render 'show', format: :js render 'show', format: :js

View file

@ -16,7 +16,7 @@ class Admin::TypesDeChampPrivateController < AdminController
end end
def update def update
@procedure.update_attributes(TypesDeChampService.create_update_procedure_params params, true) @procedure.update(TypesDeChampService.create_update_procedure_params params, true)
create_facade create_facade
flash.now.notice = 'Modifications sauvegardées' flash.now.notice = 'Modifications sauvegardées'
render 'admin/types_de_champ/show', format: :js render 'admin/types_de_champ/show', format: :js

View file

@ -13,7 +13,7 @@ class APIController < ApplicationController
end end
def current_administrateur def current_administrateur
@administrateur ||= Administrateur.find_by_api_token(params[:token]) @administrateur ||= Administrateur.find_by(api_token: params[:token])
end end
def default_format_json def default_format_json

View file

@ -9,7 +9,7 @@ class InvitesController < ApplicationController
email = params[:email].downcase email = params[:email].downcase
user = User.find_by_email(email) user = User.find_by(email: email)
invite = class_var.create(dossier: dossier, user: user, email: email, email_sender: email_sender) invite = class_var.create(dossier: dossier, user: user, email: email, email_sender: email_sender)
if invite.valid? if invite.valid?

View file

@ -13,7 +13,7 @@ module NewGestionnaire
@avis_a_donner = gestionnaire_avis.without_answer @avis_a_donner = gestionnaire_avis.without_answer
@avis_donnes = gestionnaire_avis.with_answer @avis_donnes = gestionnaire_avis.with_answer
@statut = params[:statut].present? ? params[:statut] : A_DONNER_STATUS @statut = params[:statut].presence || A_DONNER_STATUS
@avis = case @statut @avis = case @statut
when A_DONNER_STATUS when A_DONNER_STATUS
@ -32,7 +32,7 @@ module NewGestionnaire
end end
def update def update
avis.update_attributes(avis_params) avis.update(avis_params)
flash.notice = 'Votre réponse est enregistrée.' flash.notice = 'Votre réponse est enregistrée.'
redirect_to instruction_gestionnaire_avis_path(avis) redirect_to instruction_gestionnaire_avis_path(avis)
end end

View file

@ -57,13 +57,13 @@ module NewGestionnaire
end end
def archive def archive
dossier.update_attributes(archived: true) dossier.update(archived: true)
current_gestionnaire.unfollow(dossier) current_gestionnaire.unfollow(dossier)
redirect_back(fallback_location: gestionnaire_procedures_url) redirect_back(fallback_location: gestionnaire_procedures_url)
end end
def unarchive def unarchive
dossier.update_attributes(archived: false) dossier.update(archived: false)
redirect_back(fallback_location: gestionnaire_procedures_url) redirect_back(fallback_location: gestionnaire_procedures_url)
end end
@ -166,7 +166,7 @@ module NewGestionnaire
def update_annotations def update_annotations
dossier = current_gestionnaire.dossiers.includes(champs_private: :type_de_champ).find(params[:dossier_id]) dossier = current_gestionnaire.dossiers.includes(champs_private: :type_de_champ).find(params[:dossier_id])
# FIXME: add attachements validation, cf. Champ#piece_justificative_file_errors # FIXME: add attachements validation, cf. Champ#piece_justificative_file_errors
dossier.update_attributes(champs_private_params) dossier.update(champs_private_params)
redirect_to annotations_privees_gestionnaire_dossier_path(procedure, dossier) redirect_to annotations_privees_gestionnaire_dossier_path(procedure, dossier)
end end

View file

@ -76,7 +76,7 @@ module NewGestionnaire
filtered_sorted_ids = sorted_ids filtered_sorted_ids = sorted_ids
end end
page = params[:page].present? ? params[:page] : 1 page = params[:page].presence || 1
filtered_sorted_paginated_ids = Kaminari filtered_sorted_paginated_ids = Kaminari
.paginate_array(filtered_sorted_ids) .paginate_array(filtered_sorted_ids)
@ -109,11 +109,11 @@ module NewGestionnaire
c.to_json c.to_json
end end
procedure_presentation.update_attributes(displayed_fields: fields) procedure_presentation.update(displayed_fields: fields)
current_sort = procedure_presentation.sort current_sort = procedure_presentation.sort
if !values.include?("#{current_sort['table']}/#{current_sort['column']}") if !values.include?("#{current_sort['table']}/#{current_sort['column']}")
procedure_presentation.update_attributes(sort: Procedure.default_sort) procedure_presentation.update(sort: Procedure.default_sort)
end end
redirect_back(fallback_location: gestionnaire_procedure_url(procedure)) redirect_back(fallback_location: gestionnaire_procedure_url(procedure))
@ -136,7 +136,7 @@ module NewGestionnaire
'order' => order 'order' => order
}.to_json }.to_json
procedure_presentation.update_attributes(sort: sort) procedure_presentation.update(sort: sort)
redirect_back(fallback_location: gestionnaire_procedure_url(procedure)) redirect_back(fallback_location: gestionnaire_procedure_url(procedure))
end end
@ -154,7 +154,7 @@ module NewGestionnaire
'value' => params[:value] 'value' => params[:value]
} }
procedure_presentation.update_attributes(filters: filters.to_json) procedure_presentation.update(filters: filters.to_json)
end end
redirect_back(fallback_location: gestionnaire_procedure_url(procedure)) redirect_back(fallback_location: gestionnaire_procedure_url(procedure))
@ -168,7 +168,7 @@ module NewGestionnaire
filters[statut] = filters[statut] - [filter_to_remove] filters[statut] = filters[statut] - [filter_to_remove]
procedure_presentation.update_attributes(filters: filters.to_json) procedure_presentation.update(filters: filters.to_json)
redirect_back(fallback_location: gestionnaire_procedure_url(procedure)) redirect_back(fallback_location: gestionnaire_procedure_url(procedure))
end end
@ -187,7 +187,7 @@ module NewGestionnaire
private private
def statut def statut
@statut ||= params[:statut].present? ? params[:statut] : 'a-suivre' @statut ||= (params[:statut].presence || 'a-suivre')
end end
def procedure def procedure
@ -245,7 +245,6 @@ module NewGestionnaire
.includes(filter['table']) .includes(filter['table'])
.where("#{filter['table'].pluralize}.#{filter['column']} LIKE ?", "%#{filter['value']}%") .where("#{filter['table'].pluralize}.#{filter['column']} LIKE ?", "%#{filter['value']}%")
end end
end.pluck(:id) end.pluck(:id)
end.reduce(:&) end.reduce(:&)
end end

View file

@ -170,7 +170,7 @@ class StatsController < ApplicationController
end end
def avis_usage def avis_usage
[3.week.ago, 2.week.ago, 1.week.ago].map do |min_date| [3.weeks.ago, 2.weeks.ago, 1.week.ago].map do |min_date|
max_date = min_date + 1.week max_date = min_date + 1.week
weekly_dossiers = Dossier.includes(:avis).where(created_at: min_date..max_date).to_a weekly_dossiers = Dossier.includes(:avis).where(created_at: min_date..max_date).to_a
@ -189,7 +189,7 @@ class StatsController < ApplicationController
end end
def avis_average_answer_time def avis_average_answer_time
[3.week.ago, 2.week.ago, 1.week.ago].map do |min_date| [3.weeks.ago, 2.weeks.ago, 1.week.ago].map do |min_date|
max_date = min_date + 1.week max_date = min_date + 1.week
average = Avis.with_answer average = Avis.with_answer
@ -203,7 +203,7 @@ class StatsController < ApplicationController
end end
def avis_answer_percentages def avis_answer_percentages
[3.week.ago, 2.week.ago, 1.week.ago].map do |min_date| [3.weeks.ago, 2.weeks.ago, 1.week.ago].map do |min_date|
max_date = min_date + 1.week max_date = min_date + 1.week
weekly_avis = Avis.where(created_at: min_date..max_date) weekly_avis = Avis.where(created_at: min_date..max_date)
@ -222,7 +222,7 @@ class StatsController < ApplicationController
end end
def motivation_usage_dossier def motivation_usage_dossier
[3.week.ago, 2.week.ago, 1.week.ago].map do |date| [3.weeks.ago, 2.weeks.ago, 1.week.ago].map do |date|
min_date = date.beginning_of_week min_date = date.beginning_of_week
max_date = date.end_of_week max_date = date.end_of_week
@ -241,7 +241,7 @@ class StatsController < ApplicationController
end end
def motivation_usage_procedure def motivation_usage_procedure
[3.week.ago, 2.week.ago, 1.week.ago].map do |date| [3.weeks.ago, 2.weeks.ago, 1.week.ago].map do |date|
min_date = date.beginning_of_week min_date = date.beginning_of_week
max_date = date.end_of_week max_date = date.end_of_week

View file

@ -22,7 +22,7 @@ class Users::CarteController < UsersController
ModuleApiCartoService.save_cadastre! dossier, params[:json_latlngs] ModuleApiCartoService.save_cadastre! dossier, params[:json_latlngs]
end end
dossier.update_attributes(json_latlngs: params[:json_latlngs]) dossier.update(json_latlngs: params[:json_latlngs])
redirect_to modifier_dossier_path(dossier) redirect_to modifier_dossier_path(dossier)
end end

View file

@ -88,7 +88,7 @@ class Users::DescriptionController < UsersController
flash.notice = 'Nouveaux fichiers envoyés' if flash.alert.nil? flash.notice = 'Nouveaux fichiers envoyés' if flash.alert.nil?
end end
return redirect_to users_dossiers_invite_path(id: current_user.invites.find_by_dossier_id(@dossier.id).id) if invite return redirect_to users_dossiers_invite_path(id: current_user.invites.find_by(dossier_id: @dossier.id).id) if invite
redirect_to users_dossier_recapitulatif_path redirect_to users_dossier_recapitulatif_path
end end

View file

@ -1,7 +1,7 @@
class Users::Dossiers::InvitesController < UsersController class Users::Dossiers::InvitesController < UsersController
def authenticate_user! def authenticate_user!
session["user_return_to"] = request.fullpath session["user_return_to"] = request.fullpath
return redirect_to new_user_registration_path(user_email: params[:email]) if params[:email].present? && User.find_by_email(params[:email]).nil? return redirect_to new_user_registration_path(user_email: params[:email]) if params[:email].present? && User.find_by(email: params[:email]).nil?
super super
end end

View file

@ -110,7 +110,7 @@ class Users::DossiersController < UsersController
if etablissement_attributes.present? if etablissement_attributes.present?
etablissement_attributes = ActionController::Parameters.new(etablissement_attributes).permit! etablissement_attributes = ActionController::Parameters.new(etablissement_attributes).permit!
etablissement = @facade.dossier.create_etablissement(etablissement_attributes) etablissement = @facade.dossier.build_etablissement(etablissement_attributes)
if etablissement.save if etablissement.save
Rails.logger.info("etablissement saved, siret: #{siret}, id: #{etablissement.id}") Rails.logger.info("etablissement saved, siret: #{siret}, id: #{etablissement.id}")
@facade.dossier.mandataire_social!(current_user.france_connect_information) @facade.dossier.mandataire_social!(current_user.france_connect_information)
@ -156,7 +156,7 @@ class Users::DossiersController < UsersController
flash.alert = individual_errors flash.alert = individual_errors
redirect_to users_dossier_path(id: @facade.dossier.id) redirect_to users_dossier_path(id: @facade.dossier.id)
else else
if !Dossier.find(@facade.dossier.id).update_attributes update_params_with_formatted_birthdate if !Dossier.find(@facade.dossier.id).update update_params_with_formatted_birthdate
flash.alert = @facade.dossier.errors.full_messages flash.alert = @facade.dossier.errors.full_messages
return redirect_to users_dossier_path(id: @facade.dossier.id) return redirect_to users_dossier_path(id: @facade.dossier.id)
@ -259,7 +259,7 @@ class Users::DossiersController < UsersController
end end
def update_current_user_siret! siret def update_current_user_siret! siret
current_user.update_attributes(siret: siret) current_user.update(siret: siret)
end end
def facade id = params[:id] def facade id = params[:id]

View file

@ -20,7 +20,7 @@ class Users::SessionsController < Sessions::SessionsController
try_to_authenticate(Administrateur, remember_me) try_to_authenticate(Administrateur, remember_me)
if user_signed_in? if user_signed_in?
current_user.update_attributes(loged_in_with_france_connect: '') current_user.update(loged_in_with_france_connect: '')
end end
if user_signed_in? if user_signed_in?
@ -44,7 +44,7 @@ class Users::SessionsController < Sessions::SessionsController
if user_signed_in? if user_signed_in?
connected_with_france_connect = current_user.loged_in_with_france_connect connected_with_france_connect = current_user.loged_in_with_france_connect
current_user.update_attributes(loged_in_with_france_connect: '') current_user.update(loged_in_with_france_connect: '')
sign_out :user sign_out :user
@ -78,7 +78,9 @@ class Users::SessionsController < Sessions::SessionsController
end end
def try_to_authenticate(klass, remember_me = false) def try_to_authenticate(klass, remember_me = false)
if resource = klass.find_for_database_authentication(email: params[:user][:email]) resource = klass.find_for_database_authentication(email: params[:user][:email])
if resource.present?
if resource.valid_password?(params[:user][:password]) if resource.valid_password?(params[:user][:password])
resource.remember_me = remember_me resource.remember_me = remember_me
sign_in resource sign_in resource

View file

@ -2,7 +2,7 @@ class EntrepriseDecorator < Draper::Decorator
delegate_all delegate_all
def raison_sociale_or_name def raison_sociale_or_name
raison_sociale.blank? ? "#{nom} #{prenom}" : raison_sociale raison_sociale.presence || "#{nom} #{prenom}"
end end
def effectif def effectif

View file

@ -1,2 +0,0 @@
class TypeDeChampPrivateDecorator < TypeDeChampDecorator
end

View file

@ -19,4 +19,15 @@ module ApplicationHelper
current_gestionnaire.try(:email) || current_gestionnaire.try(:email) ||
current_administrateur.try(:email) current_administrateur.try(:email)
end end
def root_path_for_profile(nav_bar_profile)
case nav_bar_profile
when :gestionnaire
gestionnaire_procedures_path
when :user
users_dossiers_path
else
root_path
end
end
end end

View file

@ -7,7 +7,9 @@ class FileSizeValidator < ActiveModel::EachValidator
RESERVED_OPTIONS = [:minimum, :maximum, :within, :is, :tokenizer, :too_short, :too_long] RESERVED_OPTIONS = [:minimum, :maximum, :within, :is, :tokenizer, :too_short, :too_long]
def initialize(options) def initialize(options)
if range = (options.delete(:in) || options.delete(:within)) range = options.delete(:in) || options.delete(:within)
if range.present?
raise ArgumentError, ":in and :within must be a Range" if !range.is_a?(Range) raise ArgumentError, ":in and :within must be a Range" if !range.is_a?(Range)
options[:minimum], options[:maximum] = range.begin, range.end options[:minimum], options[:maximum] = range.begin, range.end
options[:maximum] -= 1 if range.exclude_end? options[:maximum] -= 1 if range.exclude_end?

View file

@ -1,4 +1,4 @@
class ApplicationMailer < ActionMailer::Base class ApplicationMailer < ActionMailer::Base
default from: "'demarches-simplifiees.fr' <#{I18n.t('dynamics.contact_email')}>" default from: "demarches-simplifiees.fr <#{I18n.t('dynamics.contact_email')}>"
layout 'mailer' layout 'mailer'
end end

View file

@ -1,4 +1,4 @@
class Administrateur < ActiveRecord::Base class Administrateur < ApplicationRecord
devise :database_authenticatable, :registerable, devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable :recoverable, :rememberable, :trackable, :validatable
@ -26,7 +26,7 @@ class Administrateur < ActiveRecord::Base
end end
def renew_api_token def renew_api_token
update_attributes(api_token: generate_api_token) update(api_token: generate_api_token)
end end
def registration_state def registration_state

View file

@ -1,4 +1,4 @@
class Administration < ActiveRecord::Base class Administration < ApplicationRecord
# Include default devise modules. Others available are: # Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable # :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :rememberable, :trackable, :validatable, :omniauthable, omniauth_providers: [:github] devise :database_authenticatable, :rememberable, :trackable, :validatable, :omniauthable, omniauth_providers: [:github]

View file

@ -1,4 +1,4 @@
class AssignTo < ActiveRecord::Base class AssignTo < ApplicationRecord
belongs_to :procedure belongs_to :procedure
belongs_to :gestionnaire belongs_to :gestionnaire
has_one :procedure_presentation, dependent: :destroy has_one :procedure_presentation, dependent: :destroy

View file

@ -1,4 +1,4 @@
class Cadastre < ActiveRecord::Base class Cadastre < ApplicationRecord
belongs_to :dossier, touch: true belongs_to :dossier, touch: true
def geometry def geometry

View file

@ -1,4 +1,4 @@
class Cerfa < ActiveRecord::Base class Cerfa < ApplicationRecord
belongs_to :dossier, touch: true belongs_to :dossier, touch: true
belongs_to :user belongs_to :user

View file

@ -1,4 +1,4 @@
class Champ < ActiveRecord::Base class Champ < ApplicationRecord
self.inheritance_column = :_type_disabled self.inheritance_column = :_type_disabled
belongs_to :dossier, touch: true belongs_to :dossier, touch: true
@ -13,8 +13,8 @@ class Champ < ActiveRecord::Base
before_save :multiple_select_to_string, if: Proc.new { type_champ == 'multiple_drop_down_list' } before_save :multiple_select_to_string, if: Proc.new { type_champ == 'multiple_drop_down_list' }
scope :updated_since?, -> (date) { where('champs.updated_at > ?', date) } scope :updated_since?, -> (date) { where('champs.updated_at > ?', date) }
scope :public_only, -> { where(type: 'ChampPublic').or(where(private: false)) } scope :public_only, -> { where(private: false) }
scope :private_only, -> { where(type: 'ChampPrivate').or(where(private: true)) } scope :private_only, -> { where(private: true) }
PIECE_JUSTIFICATIVE_FILE_MAX_SIZE = 200.megabytes PIECE_JUSTIFICATIVE_FILE_MAX_SIZE = 200.megabytes
@ -37,10 +37,6 @@ class Champ < ActiveRecord::Base
!private? !private?
end end
def private?
super || type == 'ChampPrivate'
end
def same_hour? num def same_hour? num
same_date? num, '%H' same_date? num, '%H'
end end

View file

@ -1,4 +1,4 @@
class Commentaire < ActiveRecord::Base class Commentaire < ApplicationRecord
belongs_to :dossier, touch: true belongs_to :dossier, touch: true
belongs_to :champ belongs_to :champ
belongs_to :piece_justificative belongs_to :piece_justificative
@ -6,7 +6,7 @@ class Commentaire < ActiveRecord::Base
mount_uploader :file, CommentaireFileUploader mount_uploader :file, CommentaireFileUploader
validates :file, file_size: { maximum: 20.megabytes, message: "La taille du fichier doit être inférieure à 20 Mo" } validates :file, file_size: { maximum: 20.megabytes, message: "La taille du fichier doit être inférieure à 20 Mo" }
validate :is_virus_free? validate :is_virus_free?
validates_presence_of :body, message: "Votre message ne peut être vide" validates :body, presence: { message: "Votre message ne peut être vide" }
default_scope { order(created_at: :asc) } default_scope { order(created_at: :asc) }
scope :updated_since?, -> (date) { where('commentaires.updated_at > ?', date) } scope :updated_since?, -> (date) { where('commentaires.updated_at > ?', date) }
@ -31,19 +31,12 @@ class Commentaire < ActiveRecord::Base
dossier_user_email = dossier.user.email dossier_user_email = dossier.user.email
invited_users_emails = dossier.invites_user.pluck(:email).to_a invited_users_emails = dossier.invites_user.pluck(:email).to_a
case email # - If the email is the contact email, the commentaire is a copy
when I18n.t("dynamics.contact_email") # of an automated notification email we sent to a user, so do nothing.
# The commentaire is a copy of an automated notification email # - If a user or an invited user posted a commentaire, do nothing,
# we sent to a user, so do nothing # the notification system will properly
# - Otherwise, a gestionnaire posted a commentaire, we need to notify the user
when dossier_user_email, *invited_users_emails if !email.in?([I18n.t("dynamics.contact_email"), dossier_user_email, *invited_users_emails])
# A user or an inved user posted a commentaire,
# do nothing, the notification system will properly
else
# A gestionnaire posted a commentaire,
# we need to notify the user
notify_user notify_user
end end
end end

View file

@ -1,4 +1,4 @@
class Dossier < ActiveRecord::Base class Dossier < ApplicationRecord
enum state: { enum state: {
brouillon: 'brouillon', brouillon: 'brouillon',
en_construction: 'en_construction', en_construction: 'en_construction',
@ -181,7 +181,6 @@ class Dossier < ActiveRecord::Base
def reset! def reset!
etablissement.destroy etablissement.destroy
entreprise.destroy
update_columns(autorisation_donnees: false) update_columns(autorisation_donnees: false)
end end

View file

@ -1,4 +1,4 @@
class DropDownList < ActiveRecord::Base class DropDownList < ApplicationRecord
belongs_to :type_de_champ belongs_to :type_de_champ
def options def options

View file

@ -1,12 +1,12 @@
class Entreprise < ActiveRecord::Base class Entreprise < ApplicationRecord
belongs_to :dossier belongs_to :dossier
has_one :etablissement, dependent: :destroy has_one :etablissement
has_one :rna_information, dependent: :destroy has_one :rna_information, dependent: :destroy
validates_presence_of :siren validates :siren, presence: true
validates_uniqueness_of :dossier_id validates :dossier_id, uniqueness: true
accepts_nested_attributes_for :rna_information accepts_nested_attributes_for :rna_information, update_only: true
before_save :default_values before_save :default_values

View file

@ -1,13 +1,13 @@
class Etablissement < ActiveRecord::Base class Etablissement < ApplicationRecord
belongs_to :dossier belongs_to :dossier
belongs_to :entreprise belongs_to :entreprise, dependent: :destroy
has_many :exercices, dependent: :destroy has_many :exercices, dependent: :destroy
accepts_nested_attributes_for :exercices accepts_nested_attributes_for :exercices
accepts_nested_attributes_for :entreprise accepts_nested_attributes_for :entreprise, update_only: true
validates_uniqueness_of :dossier_id validates :dossier_id, uniqueness: true
def geo_adresse def geo_adresse
[numero_voie, type_voie, nom_voie, complement_adresse, code_postal, localite].join(' ') [numero_voie, type_voie, nom_voie, complement_adresse, code_postal, localite].join(' ')

View file

@ -1,4 +1,4 @@
class Exercice < ActiveRecord::Base class Exercice < ApplicationRecord
belongs_to :etablissement belongs_to :etablissement
validates :ca, presence: true, allow_blank: false, allow_nil: false validates :ca, presence: true, allow_blank: false, allow_nil: false

View file

@ -1,8 +1,8 @@
class Follow < ActiveRecord::Base class Follow < ApplicationRecord
belongs_to :gestionnaire belongs_to :gestionnaire
belongs_to :dossier belongs_to :dossier
validates_uniqueness_of :gestionnaire_id, :scope => :dossier_id validates :gestionnaire_id, uniqueness: { scope: :dossier_id }
before_create :set_default_date before_create :set_default_date

View file

@ -1,4 +1,4 @@
class FranceConnectInformation < ActiveRecord::Base class FranceConnectInformation < ApplicationRecord
belongs_to :user belongs_to :user
validates :france_connect_particulier_id, presence: true, allow_blank: false, allow_nil: false validates :france_connect_particulier_id, presence: true, allow_blank: false, allow_nil: false

View file

@ -1,4 +1,4 @@
class Gestionnaire < ActiveRecord::Base class Gestionnaire < ApplicationRecord
devise :database_authenticatable, :registerable, devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable :recoverable, :rememberable, :trackable, :validatable

View file

@ -1,7 +1,7 @@
class Individual < ActiveRecord::Base class Individual < ApplicationRecord
belongs_to :dossier belongs_to :dossier
validates_uniqueness_of :dossier_id validates :dossier_id, uniqueness: true
validates :gender, presence: true, allow_nil: false, on: :update validates :gender, presence: true, allow_nil: false, on: :update
validates :nom, presence: true, allow_blank: false, allow_nil: false, on: :update validates :nom, presence: true, allow_blank: false, allow_nil: false, on: :update
validates :prenom, presence: true, allow_blank: false, allow_nil: false, on: :update validates :prenom, presence: true, allow_blank: false, allow_nil: false, on: :update

View file

@ -1,9 +1,9 @@
class Invite < ActiveRecord::Base class Invite < ApplicationRecord
belongs_to :dossier belongs_to :dossier
belongs_to :user belongs_to :user
validates_presence_of :email validates :email, presence: true
validates_uniqueness_of :email, :scope => :dossier_id validates :email, uniqueness: { scope: :dossier_id }
validates :email, email_format: true validates :email, email_format: true
end end

View file

@ -1,4 +1,4 @@
class ModuleAPICarto < ActiveRecord::Base class ModuleAPICarto < ApplicationRecord
belongs_to :procedure belongs_to :procedure
validates :use_api_carto, presence: true, allow_blank: true, allow_nil: false validates :use_api_carto, presence: true, allow_blank: true, allow_nil: false

View file

@ -1,4 +1,4 @@
class PieceJustificative < ActiveRecord::Base class PieceJustificative < ApplicationRecord
belongs_to :dossier, touch: true belongs_to :dossier, touch: true
belongs_to :type_de_piece_justificative belongs_to :type_de_piece_justificative
has_one :commentaire has_one :commentaire

View file

@ -1,4 +1,4 @@
class Procedure < ActiveRecord::Base class Procedure < ApplicationRecord
has_many :types_de_piece_justificative, -> { order "order_place ASC" }, dependent: :destroy has_many :types_de_piece_justificative, -> { order "order_place ASC" }, dependent: :destroy
has_many :types_de_champ, -> { public_only }, dependent: :destroy has_many :types_de_champ, -> { public_only }, dependent: :destroy
has_many :types_de_champ_private, -> { private_only }, class_name: 'TypeDeChamp', dependent: :destroy has_many :types_de_champ_private, -> { private_only }, class_name: 'TypeDeChamp', dependent: :destroy
@ -42,7 +42,7 @@ class Procedure < ActiveRecord::Base
def hide! def hide!
now = DateTime.now now = DateTime.now
self.update_attributes(hidden_at: now) self.update(hidden_at: now)
self.dossiers.update_all(hidden_at: now) self.dossiers.update_all(hidden_at: now)
end end
@ -89,8 +89,8 @@ class Procedure < ActiveRecord::Base
false false
else else
list[index_of_first_element].update_attributes(order_place: index_of_first_element + 1) list[index_of_first_element].update(order_place: index_of_first_element + 1)
list[index_of_first_element + 1].update_attributes(order_place: index_of_first_element) list[index_of_first_element + 1].update(order_place: index_of_first_element)
true true
end end
@ -129,7 +129,7 @@ class Procedure < ActiveRecord::Base
end end
def publish!(path) def publish!(path)
self.update_attributes!({ published_at: Time.now, archived_at: nil }) self.update!({ published_at: Time.now, archived_at: nil })
ProcedurePath.create!(path: path, procedure: self, administrateur: self.administrateur) ProcedurePath.create!(path: path, procedure: self, administrateur: self.administrateur)
end end
@ -138,7 +138,7 @@ class Procedure < ActiveRecord::Base
end end
def archive def archive
self.update_attributes!(archived_at: Time.now) self.update!(archived_at: Time.now)
end end
def archivee? def archivee?

View file

@ -1,4 +1,4 @@
class ProcedurePath < ActiveRecord::Base class ProcedurePath < ApplicationRecord
validates :path, format: { with: /\A[a-z0-9_\-]{3,50}\z/ }, presence: true, allow_blank: false, allow_nil: false validates :path, format: { with: /\A[a-z0-9_\-]{3,50}\z/ }, presence: true, allow_blank: false, allow_nil: false
validates :administrateur_id, presence: true, allow_blank: false, allow_nil: false validates :administrateur_id, presence: true, allow_blank: false, allow_nil: false
validates :procedure_id, presence: true, allow_blank: false, allow_nil: false validates :procedure_id, presence: true, allow_blank: false, allow_nil: false

View file

@ -1,4 +1,4 @@
class ProcedurePresentation < ActiveRecord::Base class ProcedurePresentation < ApplicationRecord
belongs_to :assign_to belongs_to :assign_to
def displayed_fields def displayed_fields

View file

@ -1,4 +1,4 @@
class QuartierPrioritaire < ActiveRecord::Base class QuartierPrioritaire < ApplicationRecord
belongs_to :dossier, touch: true belongs_to :dossier, touch: true
def geometry def geometry

View file

@ -1,4 +1,4 @@
class RNAInformation < ActiveRecord::Base class RNAInformation < ApplicationRecord
belongs_to :entreprise belongs_to :entreprise
validates :association_id, presence: true, allow_blank: false, allow_nil: false validates :association_id, presence: true, allow_blank: false, allow_nil: false

View file

@ -1,7 +1,7 @@
# See: # See:
# - https://robots.thoughtbot.com/implementing-multi-table-full-text-search-with-postgres # - https://robots.thoughtbot.com/implementing-multi-table-full-text-search-with-postgres
# - http://calebthompson.io/talks/search.html # - http://calebthompson.io/talks/search.html
class Search < ActiveRecord::Base class Search < ApplicationRecord
# :nodoc: # :nodoc:
# #
# Englobs a search result (actually a collection of Search objects) so it acts # Englobs a search result (actually a collection of Search objects) so it acts

View file

@ -4,7 +4,7 @@ class Siret
attr_accessor :siret attr_accessor :siret
validates_presence_of :siret validates :siret, presence: true
validates :siret, siret_format: true validates :siret, siret_format: true
before_validation :remove_whitespace before_validation :remove_whitespace

View file

@ -1,4 +1,4 @@
class TypeDeChamp < ActiveRecord::Base class TypeDeChamp < ApplicationRecord
self.inheritance_column = :_type_disabled self.inheritance_column = :_type_disabled
enum type_champs: { enum type_champs: {
@ -27,8 +27,8 @@ class TypeDeChamp < ActiveRecord::Base
belongs_to :procedure belongs_to :procedure
scope :public_only, -> { where(type: 'TypeDeChampPublic').or(where(private: false)) } scope :public_only, -> { where(private: false) }
scope :private_only, -> { where(type: 'TypeDeChampPrivate').or(where(private: true)) } scope :private_only, -> { where(private: true) }
has_many :champ, inverse_of: :type_de_champ, dependent: :destroy do has_many :champ, inverse_of: :type_de_champ, dependent: :destroy do
def build(params = {}) def build(params = {})
@ -71,10 +71,6 @@ class TypeDeChamp < ActiveRecord::Base
type_champ.in?(['header_section', 'explication']) type_champ.in?(['header_section', 'explication'])
end end
def private?
super || type == 'TypeDeChampPrivate'
end
def public? def public?
!private? !private?
end end

View file

@ -1,4 +1,4 @@
class TypeDePieceJustificative < ActiveRecord::Base class TypeDePieceJustificative < ApplicationRecord
has_many :pieces_justificatives, dependent: :destroy has_many :pieces_justificatives, dependent: :destroy
belongs_to :procedure belongs_to :procedure

View file

@ -1,4 +1,4 @@
class User < ActiveRecord::Base class User < ApplicationRecord
enum loged_in_with_france_connect: { enum loged_in_with_france_connect: {
particulier: 'particulier', particulier: 'particulier',
entreprise: 'entreprise' entreprise: 'entreprise'
@ -21,11 +21,11 @@ class User < ActiveRecord::Base
include CredentialsSyncableConcern include CredentialsSyncableConcern
def self.find_for_france_connect email, siret def self.find_for_france_connect email, siret
user = User.find_by_email(email) user = User.find_by(email: email)
if user.nil? if user.nil?
return User.create(email: email, password: Devise.friendly_token[0, 20], siret: siret) return User.create(email: email, password: Devise.friendly_token[0, 20], siret: siret)
else else
user.update_attributes(siret: siret) user.update(siret: siret)
user user
end end
end end

View file

@ -1,5 +1,5 @@
class StagingAuthService class StagingAuthService
CONFIG_PATH = Rails.root.join("config/basic_auth.yml") CONFIG_PATH = Rails.root.join("config", "basic_auth.yml")
def self.authenticate(username, password) def self.authenticate(username, password)
if enabled? if enabled?
@ -14,7 +14,7 @@ class StagingAuthService
end end
def self.config def self.config
if File.exists?(CONFIG_PATH) if File.exist?(CONFIG_PATH)
YAML.safe_load(File.read(CONFIG_PATH)).symbolize_keys YAML.safe_load(File.read(CONFIG_PATH)).symbolize_keys
else else
{} {}

View file

@ -1,6 +1,6 @@
class AttestationTemplateLogoUploader < BaseUploader class AttestationTemplateLogoUploader < BaseUploader
def root def root
File.join(Rails.root, 'public') Rails.root.join("public")
end end
# Choose what kind of storage to use for this uploader: # Choose what kind of storage to use for this uploader:

View file

@ -1,6 +1,6 @@
class AttestationTemplateSignatureUploader < BaseUploader class AttestationTemplateSignatureUploader < BaseUploader
def root def root
File.join(Rails.root, 'public') Rails.root.join("public")
end end
# Choose what kind of storage to use for this uploader: # Choose what kind of storage to use for this uploader:

View file

@ -1,6 +1,6 @@
class AttestationUploader < BaseUploader class AttestationUploader < BaseUploader
def root def root
File.join(Rails.root, 'public') Rails.root.join("public")
end end
# Choose what kind of storage to use for this uploader: # Choose what kind of storage to use for this uploader:

View file

@ -1,6 +1,6 @@
class CommentaireFileUploader < BaseUploader class CommentaireFileUploader < BaseUploader
def root def root
File.join(Rails.root, 'public') Rails.root.join("public")
end end
if Features.remote_storage if Features.remote_storage

View file

@ -1,7 +1,7 @@
require 'securerandom' require 'securerandom'
class LocalDownloader class LocalDownloader
BASE_PATH_DISK = File.join(Rails.root, "public/downloads/") BASE_PATH_DISK = Rails.root.join("public", "downloads")
def initialize(filename, filename_suffix = '') def initialize(filename, filename_suffix = '')
@filename = filename.to_s @filename = filename.to_s

View file

@ -1,6 +1,6 @@
class ProcedureLogoUploader < BaseUploader class ProcedureLogoUploader < BaseUploader
def root def root
File.join(Rails.root, "public") Rails.root.join("public")
end end
# Choose what kind of storage to use for this uploader: # Choose what kind of storage to use for this uploader:

View file

@ -1,3 +1,5 @@
- content_for(:title, 'Accessibilité')
.accessibilite .accessibilite
%h1.new-h1 Accessibilité %h1.new-h1 Accessibilité

View file

@ -41,6 +41,7 @@
- @attestation_template.tags.each do |tag| - @attestation_template.tags.each do |tag|
%tr %tr
%td %td
%code{ style: "white-space: pre-wrap;" }
= "--#{tag[:libelle]}--" = "--#{tag[:libelle]}--"
%td %td
= tag[:description] = tag[:description]

View file

@ -1,2 +1,2 @@
%data.mj-w-data{ "data-apikey" => "1v5T", "data-base" => "https://app.mailjet.com", "data-height" => "328", "data-lang" => "fr_FR", "data-statics" => "statics", "data-token" => "11c89e7ddb46fbcdcb7f8fe5fdfca818", "data-w-id" => "39b", "data-width" => "640" } %data.mj-w-data{ "data-apikey" => "1v5T", "data-base" => "https://app.mailjet.com", "data-height" => "328", "data-lang" => "fr_FR", "data-statics" => "statics", "data-token" => "11c89e7ddb46fbcdcb7f8fe5fdfca818", "data-w-id" => "39b", "data-width" => "640", "value" => "mj" }
%script{ src: 'https://app.mailjet.com/statics/js/widget.modal.js', 'data-turbolinks-eval': 'false' } %script{ src: 'https://app.mailjet.com/statics/js/widget.modal.js', 'data-turbolinks-eval': 'false' }

Some files were not shown because too many files have changed in this diff Show more