From fe17dface63a0f883af147bb8aea5924bae51072 Mon Sep 17 00:00:00 2001 From: evris99 Date: Thu, 21 Dec 2017 18:16:09 +0200 Subject: [PATCH 01/25] remove datatable in program/cfps --- app/views/admin/cfps/index.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/cfps/index.html.haml b/app/views/admin/cfps/index.html.haml index 09c208cf..1b80f411 100644 --- a/app/views/admin/cfps/index.html.haml +++ b/app/views/admin/cfps/index.html.haml @@ -7,7 +7,7 @@ - if @program.cfps .row .col-md-12 - %table.table.table-hover.datatable#tickets + %table.table.table-hover#tickets %thead %th Type %th Start Date From b32ddc453d5fdefa3a8c9727ac9fcbb365c808ff Mon Sep 17 00:00:00 2001 From: Ismael Olea Date: Mon, 4 Dec 2017 13:25:39 +0100 Subject: [PATCH 02/25] Fix the docker persistence for uploaded pictures: #1833 #1667 --- Dockerfile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Dockerfile b/Dockerfile index 4cc5c04c..6cd0c616 100644 --- a/Dockerfile +++ b/Dockerfile @@ -40,6 +40,10 @@ ENV DATA_DIR /data RUN install -d -m 0770 -o osem -g root $DATA_DIR VOLUME ["$DATA_DIR"] +# data persistence for uploaded files (logos, other pictures, etc) +RUN install -d -m 0755 -o osem -g osem /osem/ /osem/tmp /osem/tmp/uploads/ +VOLUME ["/osem/tmp/uploads/"] + USER osem EXPOSE 9292 From 8d17acb1a849991ab3804f44c31e3374e59615f3 Mon Sep 17 00:00:00 2001 From: Ismael Olea Date: Tue, 5 Dec 2017 15:06:03 +0100 Subject: [PATCH 03/25] Update Dockerfile Adding a needed volumen. --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6cd0c616..a0be4daa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -41,8 +41,9 @@ RUN install -d -m 0770 -o osem -g root $DATA_DIR VOLUME ["$DATA_DIR"] # data persistence for uploaded files (logos, other pictures, etc) -RUN install -d -m 0755 -o osem -g osem /osem/ /osem/tmp /osem/tmp/uploads/ +RUN install -d -m 0755 -o osem -g osem /osem/ /osem/tmp /osem/tmp/uploads/ /osem/public/ /osem/public/system/ VOLUME ["/osem/tmp/uploads/"] +VOLUME ["/osem/public/system/"] USER osem EXPOSE 9292 From 4c1a9078fe22ebba6f2a4c31a8bbee2c9fa25170 Mon Sep 17 00:00:00 2001 From: Ismael Olea Date: Fri, 8 Dec 2017 19:54:56 +0100 Subject: [PATCH 04/25] Reviewed changes Following indications from @TheAssassin. --- Dockerfile | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index a0be4daa..570a7560 100644 --- a/Dockerfile +++ b/Dockerfile @@ -38,12 +38,10 @@ RUN chown -R osem.root /osem/ && \ # data directory is used to cache the secret key in a file ENV DATA_DIR /data RUN install -d -m 0770 -o osem -g root $DATA_DIR -VOLUME ["$DATA_DIR"] - # data persistence for uploaded files (logos, other pictures, etc) -RUN install -d -m 0755 -o osem -g osem /osem/ /osem/tmp /osem/tmp/uploads/ /osem/public/ /osem/public/system/ -VOLUME ["/osem/tmp/uploads/"] -VOLUME ["/osem/public/system/"] +RUN mkdir 0775 -p /osem/tmp/cache /osem/tmp/uploads/ && \ + chown -R osem.osem /osem/tmp/ +VOLUME ["$DATA_DIR"] ["/osem/tmp/uploads/"] ["/osem/public/system/"] USER osem EXPOSE 9292 From 3afe9054480b99c22e4a961aaf778b7a631eaa4f Mon Sep 17 00:00:00 2001 From: Ismael Olea Date: Fri, 22 Dec 2017 20:55:21 +0100 Subject: [PATCH 05/25] Adding suggested better syntax --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 570a7560..6cf50964 100644 --- a/Dockerfile +++ b/Dockerfile @@ -41,7 +41,7 @@ RUN install -d -m 0770 -o osem -g root $DATA_DIR # data persistence for uploaded files (logos, other pictures, etc) RUN mkdir 0775 -p /osem/tmp/cache /osem/tmp/uploads/ && \ chown -R osem.osem /osem/tmp/ -VOLUME ["$DATA_DIR"] ["/osem/tmp/uploads/"] ["/osem/public/system/"] +VOLUME ["$DATA_DIR", "/osem/tmp/uploads/", "/osem/public/system/"] USER osem EXPOSE 9292 From 0091d87dc977aee3678ae5d098f18cb99a948173 Mon Sep 17 00:00:00 2001 From: Rishabh Singh Date: Fri, 22 Dec 2017 13:27:44 +0530 Subject: [PATCH 06/25] Fixed growing of doughnut charts on scrolling. Charts were growing on many pages due to spaces in id. Fixes #1903 --- app/views/admin/conferences/_doughnut_chart.html.haml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/admin/conferences/_doughnut_chart.html.haml b/app/views/admin/conferences/_doughnut_chart.html.haml index f4a8f0ba..6ad75cef 100644 --- a/app/views/admin/conferences/_doughnut_chart.html.haml +++ b/app/views/admin/conferences/_doughnut_chart.html.haml @@ -1,6 +1,6 @@ .text-center %h4 #{title} - %canvas.doughnut_chart{ id: "dough_#{title}", 'data-chart' => data.to_json } + %canvas.doughnut_chart{ id: "dough_#{title.parameterize.underscore}", 'data-chart' => data.to_json } - if data - data.each do |key, value| %span{ 'style' => "border-bottom: 3px solid #{value['color']}" } #{key}: #{value['value']} @@ -8,7 +8,7 @@ :javascript $(document).ready( function(){ - var d = $("#dough_#{title}"); + var d = $("#dough_#{title.parameterize.underscore}"); var dt = d.get(0).getContext('2d'); $(window).resize( respondCanvas ); From 96b450224e90ad18973a159cced1e0938108e733 Mon Sep 17 00:00:00 2001 From: AnkushMalik Date: Thu, 4 Jan 2018 00:37:16 +0530 Subject: [PATCH 07/25] Resolve Error on viewing conference#show Fix a typo in conference#show view Closes #1920 --- app/views/conferences/show.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/conferences/show.html.haml b/app/views/conferences/show.html.haml index d43c99cf..ea99b419 100644 --- a/app/views/conferences/show.html.haml +++ b/app/views/conferences/show.html.haml @@ -29,7 +29,7 @@ - if @conference.registration_open? = render 'registration', conference: @conference, registration_period: @conference.registration_period, - tickets: @tickets, conference_id: @conference_id.short_title + tickets: @tickets, conference_id: @conference.short_title - if @conference.splashpage.include_tickets && @conference.tickets.any? = render 'tickets', conference: @conference, tickets: @tickets From 304ab01874fc73e7fadd523c529f3e26e35f08a6 Mon Sep 17 00:00:00 2001 From: Rishabh Singh Date: Sat, 23 Dec 2017 14:00:34 +0530 Subject: [PATCH 08/25] Fixed error in booths#show when there is no logo. Added check for logo picture in booths#show Fixed #1916 --- app/views/admin/booths/show.html.haml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/views/admin/booths/show.html.haml b/app/views/admin/booths/show.html.haml index 6ed823e5..02d44609 100644 --- a/app/views/admin/booths/show.html.haml +++ b/app/views/admin/booths/show.html.haml @@ -1,7 +1,8 @@ .row .col-md-12 %h3 - = image_tag(@booth.picture.thumb.url, size: '20%', alt: '') + - if @booth.logo_link + = image_tag( @booth.picture.thumb.url, size: '20%', alt: '') = @booth.title .btn-group.pull-right = link_to 'Edit', edit_admin_conference_booth_path(@conference.short_title, @booth), class: 'btn btn-mini btn-primary' From ada178d62c7b5d96000b81173cdebe4d7b65da48 Mon Sep 17 00:00:00 2001 From: Rishabh Singh Date: Tue, 26 Dec 2017 13:57:32 +0530 Subject: [PATCH 09/25] Added check for image_tag occurences. Checking for presence of a image before using image_tag Fixes #1909 --- app/views/admin/sponsors/index.html.haml | 3 ++- app/views/conferences/_modal_description.haml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/views/admin/sponsors/index.html.haml b/app/views/admin/sponsors/index.html.haml index 1c8f1077..d2fc512c 100644 --- a/app/views/admin/sponsors/index.html.haml +++ b/app/views/admin/sponsors/index.html.haml @@ -19,7 +19,8 @@ - @conference.sponsors.each do |sponsor| %tr %td - = image_tag(sponsor.picture.thumb.url, width: '20%') + - if sponsor.picture? + = image_tag(sponsor.picture.thumb.url, width: '20%') %td = sponsor.name %td diff --git a/app/views/conferences/_modal_description.haml b/app/views/conferences/_modal_description.haml index eb6f2b69..7fe4173b 100644 --- a/app/views/conferences/_modal_description.haml +++ b/app/views/conferences/_modal_description.haml @@ -15,7 +15,8 @@ - if object.is_a? Sponsor - img_classes << ['img-sponsor', "img-sponsor-#{object.sponsorship_level.position}"] - = image_tag get_logo(object), class: img_classes + - if object.picture? + = image_tag get_logo(object), class: img_classes %p.description = object.description .modal-footer From e5948698db2581e1ac15457cf60790c27c8f4727 Mon Sep 17 00:00:00 2001 From: Thaleia Tagaraki Date: Mon, 11 Dec 2017 02:01:58 +0200 Subject: [PATCH 10/25] Added autofocus in a number of forms, plus correction of a few spelling mistakes folding code into existing hash in commercials/index --- app/views/admin/campaigns/_form.html.haml | 2 +- app/views/admin/commercials/index.html.haml | 2 +- app/views/admin/contacts/edit.html.haml | 2 +- app/views/admin/difficulty_levels/_form.html.haml | 2 +- app/views/admin/event_types/_form.html.haml | 2 +- app/views/admin/programs/_form.html.haml | 2 +- app/views/admin/reports/_all_events.html.haml | 2 +- app/views/admin/resources/_form.html.haml | 2 +- app/views/admin/roles/_form.html.haml | 2 +- app/views/admin/roles/show.html.haml | 2 +- app/views/admin/rooms/_form.html.haml | 2 +- app/views/admin/sponsors/_form.html.haml | 2 +- app/views/admin/sponsorship_levels/_form.html.haml | 2 +- app/views/admin/targets/_form.html.haml | 2 +- app/views/admin/tracks/_form.html.haml | 2 +- app/views/booths/_form.html.haml | 2 +- app/views/proposals/_proposal_form.html.haml | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/app/views/admin/campaigns/_form.html.haml b/app/views/admin/campaigns/_form.html.haml index 6b826300..71aa075e 100644 --- a/app/views/admin/campaigns/_form.html.haml +++ b/app/views/admin/campaigns/_form.html.haml @@ -11,7 +11,7 @@ .col-md-8 = semantic_form_for(@campaign, url: (@campaign.new_record? ? admin_conference_campaigns_path : admin_conference_campaign_path(@conference.short_title, @campaign))) do |f| = f.inputs do - = f.input :name + = f.input :name, input_html: { autofocus: true } = f.inputs name: 'UTM Parameters' do = f.input :utm_campaign, label: 'Campaign', hint: 'Groups all of the content from one campaign. E.g. 20percentpromocode' = f.input :utm_source, label: 'Source', hint: 'Which website is sending you traffic. E.g. Facebook, google+, blog' diff --git a/app/views/admin/commercials/index.html.haml b/app/views/admin/commercials/index.html.haml index 32779e2c..095ddad2 100644 --- a/app/views/admin/commercials/index.html.haml +++ b/app/views/admin/commercials/index.html.haml @@ -14,7 +14,7 @@ .row .col-md-6 = semantic_form_for(@commercial, url: admin_conference_commercials_path(conference_id: @conference.short_title)) do |f| - = f.input :url, label: 'URL', as: :string, input_html: { required: 'required' }, + = f.input :url, label: 'URL', as: :string, input_html: { required: 'required', autofocus: true }, hint: 'Just paste the url of your video/photo provider. YouTube, Vimeo, SpeakerDeck, SlideShare, Instagram, Flickr.' = f.action :submit, as: :button, button_html: { class: 'btn btn-primary pull-right', disabled: true } %hr diff --git a/app/views/admin/contacts/edit.html.haml b/app/views/admin/contacts/edit.html.haml index 872977b0..db06dd7e 100644 --- a/app/views/admin/contacts/edit.html.haml +++ b/app/views/admin/contacts/edit.html.haml @@ -8,7 +8,7 @@ .col-md-8 = semantic_form_for(@contact, url: admin_conference_contact_path(@conference.short_title), html: {multipart: true}) do |f| = f.inputs name: 'Mail' do - = f.input :email, hint: 'Contact email address for your conference. Will be used as reply-to address in emails sent out by the system.' + = f.input :email, input_html: { autofocus: true }, hint: 'Contact email address for your conference. Will be used as reply-to address in emails sent out by the system.' = f.input :sponsor_email, hint: 'This will appear in the sponsor segment of the splash for the sponsors to contact to the organizers' = f.inputs name: 'Social Media' do = f.input :social_tag, hint: "The hashtag you'll use on Twitter and Google+. Don't include the '#' sign!'" diff --git a/app/views/admin/difficulty_levels/_form.html.haml b/app/views/admin/difficulty_levels/_form.html.haml index fa47a88b..f28ab7e3 100644 --- a/app/views/admin/difficulty_levels/_form.html.haml +++ b/app/views/admin/difficulty_levels/_form.html.haml @@ -9,7 +9,7 @@ .row .col-md-8 = semantic_form_for(@difficulty_level, url: (@difficulty_level.new_record? ? admin_conference_program_difficulty_levels_path : admin_conference_program_difficulty_level_path(@conference.short_title, @difficulty_level))) do |f| - = f.input :title, required: true + = f.input :title, input_html: { autofocus: true }, required: true = f.input :description, input_html: {rows: 3, class: 'span6'} = f.input :color, input_html: {size: 6, type: 'color'} %p.text-right diff --git a/app/views/admin/event_types/_form.html.haml b/app/views/admin/event_types/_form.html.haml index 51a0ad99..29fac398 100644 --- a/app/views/admin/event_types/_form.html.haml +++ b/app/views/admin/event_types/_form.html.haml @@ -9,7 +9,7 @@ .row .col-md-12 = semantic_form_for(@event_type, url: (@event_type.new_record? ? admin_conference_program_event_types_path : admin_conference_program_event_type_path(@conference.short_title, @event_type))) do |f| - = f.input :title + = f.input :title, input_html: { autofocus: true } = f.input :length, input_html: {size: 3, type: 'number', step: @event_type.program.schedule_interval, min: @event_type.program.schedule_interval} = f.input :description = f.input :minimum_abstract_length, input_html: {size: 3} diff --git a/app/views/admin/programs/_form.html.haml b/app/views/admin/programs/_form.html.haml index 035093f0..9b42e2b0 100644 --- a/app/views/admin/programs/_form.html.haml +++ b/app/views/admin/programs/_form.html.haml @@ -9,7 +9,7 @@ = f.input :schedule_fluid, label: 'Allow submitters to change their event after it is scheduled' = f.input :rating, hint: 'Enter the number of different rating levels you want to have for voting on proposals. Enter 0 if you do not want to vote on proposals.' = f.input :languages, hint: "Enter the languages allowed for events as values of #{link_to('ISO 639-1', 'http://www.loc.gov/standards/iso639-2/php/code_list.php', target: "_blank")} language codes separated with commas. The first language would be the default language. Leave it blank if you do not want to specify languages.".html_safe - = f.input :schedule_interval, hint: "It is the minimal time interval of your schedule. The value should be 5, 6, 10, 12, 15, 20, 30 or 60. Warning! Some events could be unscheduled when changing this value." + = f.input :schedule_interval, input_html: { autofocus: true }, hint: "It is the minimal time interval of your schedule. The value should be 5, 6, 10, 12, 15, 20, 30 or 60. Warning! Some events could be unscheduled when changing this value." = f.input :blind_voting, hint: 'Enable this feature if you do not want to show voting results and voters prior to user submitting a vote. For the feature to work you need to set the voting dates below as well' = f.input :voting_start_date, as: :string, input_html: { id: 'datetimepicker-voting_start_date', readonly: true, value: (f.object.voting_start_date.to_formatted_s(:db_without_seconds) unless f.object.voting_start_date.nil?) } = f.input :voting_end_date, as: :string, input_html: { id: 'datetimepicker-voting_start_date', readonly: true, value: (f.object.voting_end_date.to_formatted_s(:db_without_seconds) unless f.object.voting_end_date.nil?) } diff --git a/app/views/admin/reports/_all_events.html.haml b/app/views/admin/reports/_all_events.html.haml index 98f405ea..cca8968a 100644 --- a/app/views/admin/reports/_all_events.html.haml +++ b/app/views/admin/reports/_all_events.html.haml @@ -5,7 +5,7 @@ All Events = "(#{@events.length})" %p.text-muted - All submissions and the information that they are mssing + All submissions and the information that they are missing .col-md-12 %table.table.table-striped.table-bordered.table-hover.datatable diff --git a/app/views/admin/resources/_form.html.haml b/app/views/admin/resources/_form.html.haml index ef999104..ce5f25b0 100644 --- a/app/views/admin/resources/_form.html.haml +++ b/app/views/admin/resources/_form.html.haml @@ -8,7 +8,7 @@ .row .col-md-8 = semantic_form_for(@resource, :url => (@resource.new_record? ? admin_conference_resources_path : admin_conference_resource_path(@conference.short_title, @resource))) do |f| - = f.input :name + = f.input :name, input_html: { autofocus: true } = f.input :description, input_html: { rows: 5, data: { provide: 'markdown-editable' } } = f.input :used = f.input :quantity diff --git a/app/views/admin/roles/_form.html.haml b/app/views/admin/roles/_form.html.haml index 2204ef89..860f43a9 100644 --- a/app/views/admin/roles/_form.html.haml +++ b/app/views/admin/roles/_form.html.haml @@ -10,6 +10,6 @@ = semantic_form_for @role, url: @url do |f| .row .col-md-5 - = f.input :description + = f.input :description, input_html: { autofocus: true } = f.action :submit, as: :button, button_html: { class: 'btn btn-primary' } diff --git a/app/views/admin/roles/show.html.haml b/app/views/admin/roles/show.html.haml index b264bc5f..b8796121 100644 --- a/app/views/admin/roles/show.html.haml +++ b/app/views/admin/roles/show.html.haml @@ -24,7 +24,7 @@ = u.label 'Add user by email: ' .input-group - = u.input :email, label: false, placeholder: "User's email" + = u.input :email, input_html: { autofocus: true }, label: false, placeholder: "User's email" .input-group-btn = u.submit 'Add', id: 'user-add', class: 'btn btn-primary' diff --git a/app/views/admin/rooms/_form.html.haml b/app/views/admin/rooms/_form.html.haml index eec272cd..90de99e0 100644 --- a/app/views/admin/rooms/_form.html.haml +++ b/app/views/admin/rooms/_form.html.haml @@ -9,7 +9,7 @@ .row .col-md-8 = semantic_form_for(@room, url: (@room.new_record? ? admin_conference_venue_rooms_path : admin_conference_venue_room_path(@conference.short_title, @room))) do |f| - = f.input :name, input_html: { autofocus: true} + = f.input :name, input_html: { autofocus: true } = f.input :size, label: 'Capacity', input_html: {size: 5} %p.text-right = f.action :submit, as: :button, button_html: { class: 'btn btn-primary' } diff --git a/app/views/admin/sponsors/_form.html.haml b/app/views/admin/sponsors/_form.html.haml index ba24f9f3..c465fc48 100644 --- a/app/views/admin/sponsors/_form.html.haml +++ b/app/views/admin/sponsors/_form.html.haml @@ -9,7 +9,7 @@ .row .col-md-8 = semantic_form_for(@sponsor, url: (@sponsor.new_record? ? admin_conference_sponsors_path : admin_conference_sponsor_path(@conference.short_title, @sponsor))) do |f| - = f.input :name + = f.input :name, input_html: { autofocus: true } = f.input :description = image_tag f.object.picture.thumb.url if f.object.picture? = f.input :picture diff --git a/app/views/admin/sponsorship_levels/_form.html.haml b/app/views/admin/sponsorship_levels/_form.html.haml index 60848928..ae819a71 100644 --- a/app/views/admin/sponsorship_levels/_form.html.haml +++ b/app/views/admin/sponsorship_levels/_form.html.haml @@ -9,6 +9,6 @@ .row .col-md-8 = semantic_form_for(@sponsorship_level, url: (@sponsorship_level.new_record? ? admin_conference_sponsorship_levels_path : admin_conference_sponsorship_level_path(@conference.short_title, @sponsorship_level))) do |f| - = f.input :title + = f.input :title, input_html: { autofocus: true } %p.text-right = f.action :submit, as: :button, button_html: { class: 'btn btn-primary' } diff --git a/app/views/admin/targets/_form.html.haml b/app/views/admin/targets/_form.html.haml index 1e81989b..df22922e 100644 --- a/app/views/admin/targets/_form.html.haml +++ b/app/views/admin/targets/_form.html.haml @@ -9,7 +9,7 @@ .col-md-8 = semantic_form_for(@target, url: (@target.new_record? ? admin_conference_targets_path : admin_conference_target_path(@conference.short_title, @target))) do |f| = f.input :due_date, as: :string, input_html: { class: 'target-due-date-datepicker'}, label: 'Until when do you want to have ' - = f.input :target_count, label: 'this amount of ' + = f.input :target_count, input_html: { autofocus: true }, label: 'this amount of ' = f.input :unit, as: :select, label: 'Unit', class: 'form-control', collection: Target.units.values, include_blank: false %p.text-right = f.action :submit, as: :button, button_html: { class: 'btn btn-primary' } diff --git a/app/views/admin/tracks/_form.html.haml b/app/views/admin/tracks/_form.html.haml index a621e1a4..36ff5734 100644 --- a/app/views/admin/tracks/_form.html.haml +++ b/app/views/admin/tracks/_form.html.haml @@ -9,7 +9,7 @@ .row .col-md-12 = semantic_form_for(@track, url: (@track.new_record? ? admin_conference_program_tracks_path(@conference.short_title) : admin_conference_program_track_path(@conference.short_title, @track))) do |f| - = f.input :name + = f.input :name, input_html: { autofocus: true } = f.input :short_name, hint: "A short and unique handle for the track, using only letters, numbers, underscores, and dashes. This will be used to identify the track in URLs etc. Example: 'my_awesome_track'", input_html: { required: 'required', pattern: '[a-zA-Z0-9_-]+', title: 'Only letters, numbers, underscores, and dashes.' } = f.input :color, input_html: {size: 6, type: 'color'}, required: true = f.input :start_date, as: :string, input_html: { id: 'registration-period-start-datepicker', start_date: @conference.start_date, end_date: @conference.end_date, readonly: 'readonly', required: @track.self_organized_and_accepted_or_confirmed? } diff --git a/app/views/booths/_form.html.haml b/app/views/booths/_form.html.haml index 55a51432..4f5b6018 100644 --- a/app/views/booths/_form.html.haml +++ b/app/views/booths/_form.html.haml @@ -2,7 +2,7 @@ .row .col-md-8 = semantic_form_for(@booth, url: @url, html: { multipart: true }) do |f| - = f.input :title, as: :string, autofocus: true, required: true + = f.input :title, as: :string, input_html: { autofocus: true }, required: true = f.input :description, input_html: { rows: 5, data: { provide: 'markdown-editable' } }, required: true, hint: 'This field becomes public upon request acceptance' = f.input :reasoning, input_html: { rows: 5, data: { provide: 'markdown-editable' } }, required: true, diff --git a/app/views/proposals/_proposal_form.html.haml b/app/views/proposals/_proposal_form.html.haml index 4b66240c..1b642d94 100644 --- a/app/views/proposals/_proposal_form.html.haml +++ b/app/views/proposals/_proposal_form.html.haml @@ -1,6 +1,6 @@ = semantic_form_for(@event, url: @url) do |f| = f.inputs name: 'Proposal Information' do - = f.input :title, as: :string, required: true + = f.input :title, as: :string, input_html: { autofocus: true }, required: true = f.input :subtitle, as: :string From 979377f2dfc8d95aa5fd3e575f34607e88bff905 Mon Sep 17 00:00:00 2001 From: Christina Anagnostou Date: Sat, 16 Dec 2017 16:30:11 +0200 Subject: [PATCH 11/25] Add unregistered speakers scope to program And use it in Conference#registration_limit_exceeded? Also change self.registered(conference) to registered(conference) to fix failures in linters --- app/models/conference.rb | 2 +- app/models/program.rb | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/models/conference.rb b/app/models/conference.rb index 7f821cdc..9adac888 100644 --- a/app/models/conference.rb +++ b/app/models/conference.rb @@ -719,7 +719,7 @@ class Conference < ApplicationRecord # * +True+ -> If the registration limit has been reached or exceeded # * +False+ -> If the registration limit hasn't been exceeded def registration_limit_exceeded? - registration_limit > 0 && registrations.count + program.speakers.confirmed.count - program.speakers.confirmed.registered(program.conference).count >= registration_limit + registration_limit > 0 && registrations.count + program.speakers.confirmed.unregistered(program.conference).count >= registration_limit end # Returns an hexadecimal color given a collection. The returned color changed diff --git a/app/models/program.rb b/app/models/program.rb index dab2f2b6..14554786 100644 --- a/app/models/program.rb +++ b/app/models/program.rb @@ -51,6 +51,10 @@ class Program < ApplicationRecord def registered(conference) joins(:registrations).where('registrations.conference_id = ?', conference.id) end + + def unregistered(conference) + self - registered(conference) + end end accepts_nested_attributes_for :event_types, allow_destroy: true From e1e0bdb4fc732928eb8da0d40394d68e6fc2bd71 Mon Sep 17 00:00:00 2001 From: Jan-Frederik Rieckers Date: Fri, 1 Dec 2017 20:40:46 +0100 Subject: [PATCH 12/25] Add possibility to link to mastodon --- app/assets/fonts/mastodon.eot | Bin 0 -> 5796 bytes app/assets/fonts/mastodon.otf | Bin 0 -> 4068 bytes app/assets/fonts/mastodon.svg | 14 ++++++ app/assets/fonts/mastodon.ttf | Bin 0 -> 5628 bytes app/assets/fonts/mastodon.woff | Bin 0 -> 3204 bytes app/assets/stylesheets/application.css | 1 + app/assets/stylesheets/mastodon.css.scss | 45 ++++++++++++++++++ app/controllers/admin/contacts_controller.rb | 2 +- app/models/contact.rb | 4 +- app/views/admin/contacts/edit.html.haml | 1 + app/views/conferences/_social_media.html.haml | 21 ++++++++ .../20171201163628_add_mastodon_to_contact.rb | 5 ++ db/schema.rb | 3 +- 13 files changed, 92 insertions(+), 4 deletions(-) create mode 100755 app/assets/fonts/mastodon.eot create mode 100755 app/assets/fonts/mastodon.otf create mode 100755 app/assets/fonts/mastodon.svg create mode 100755 app/assets/fonts/mastodon.ttf create mode 100755 app/assets/fonts/mastodon.woff create mode 100755 app/assets/stylesheets/mastodon.css.scss create mode 100644 app/views/conferences/_social_media.html.haml create mode 100644 db/migrate/20171201163628_add_mastodon_to_contact.rb diff --git a/app/assets/fonts/mastodon.eot b/app/assets/fonts/mastodon.eot new file mode 100755 index 0000000000000000000000000000000000000000..59cd79abcb858d809fcb753eb4c4e1bffbd75b08 GIT binary patch literal 5796 zcmd^COKe-m6}|HwKN6{*W$P0$j)#7dY>AK5|6@m%8B&yN%Z{m!71Bv+K2y}kkwjIZ zQ#&b&qCgXabqhD^1}KUaXm>+71>B&EELyZF8lao(ilB=I@S@umD4Ik)_mR}kasmY1 z^-=H5nS0O7+`0G8M?Y^Q`mBLSkVgDy>-;iW-`x3@y@aT7hl@l17??WCOfqn=S>P%Pf=&6f$Kw?|x(yP|`z34xFh59e?ekc8UPP#t+;$K9Se}`T!tS_$S zfBYaxdnyZV%55{PTN&*uuGvX*R0jdhwqtHsQ(2X z|7bnCnLCrb9>(}Th5pR?MrQrf7XrT}YRIAfmOXb5oHI(=*!bmHs#&peYt%xp-hS9O zd$CwqUbLtJQq~CQSSuhAWpPqlZ6V@-|4-_YQB(d2gVk2U-o8t5MybCp*JZ&htuWXU~gm76F@H@219q-c4OcRoj7C1z|r9Ihk94f zSGSkX$3Oe@8AOPRC8G2gQNo^WuO(KXjlIuNk&iF0w7rkcn(}Kac<*PHPPgoRj8|nN zwd1fOTJ!Q*!%sbZveVZ9>cxI}mmVl#jofsugmuWrO4tE>xrCkMrP&g8L4KozJrux! zTkO+IN9i5jeI1n;=NA2N9r9oaJAluXu#+0al@fMAo-Sbz&56wt z_ENj}Fq&PzyRp2ul#{2U9kRE(XGq?>E3*(SuURY7x}96fZfwf1T*$8FGAk?DP&&K1 zYHjAS^VzlO%;N18YolB(mvfno&E@Qx>2=9ZIz_)1NKVzgLSviJ`Hxr_DT-Yv($y()8>b) z;)dCC~AytVT@=h5>&!eGPMv? znkna{`XH_x?bo+X3r{qbj!nOu@Ed+#J|R^+p75)1(kIn0qv2#y7K$WmUY&-hRFkTk z_1(<;AfAvgB5z6Mi6>H!NY;564Kf-``BKSb(x*fqnKTr|6PaW(sB}}tq;j-bFvuB= zCzR8OD3=j|`AH>GLFF(F*d^x+&YKa*n&RO6g+7*6dZ!=qsLabe`Yv=k+c2%EL@MsH zrjrRH32k^L0hNy@RT?>{oThR|16v54?HU)VM#O-NjfkbRn+r;$(Z6zb29?{CY@|1u ze&nE=puo&M{C-0yr(u@@152~o^AC1ZKR;y~D*A|HEG zNgs?XTdDLm!x}3N;eAST)rwYVyfd}EjjA|jjL4SPqsJ0{pW#n-`h%+4ENEIx&0AwZ zRbyfTQmU%xC7u_65lO0Qu1%v>japFEqMJI~B@!M;!)#R(P04&psv0;gsOrqg*+juH zKbCA&)fwYXP#rNRrxKGhMWN3R`B7V5Zx*OFdM#0?twsE-h^h^6k|K2@g)073?`WI338vcNz7yd_D`e`#C@T9N&pK)M-8|*s%Uge z2w`W#QIiU!#by(#)`-ZM@**ic7&sM?DGdMXx;lY>>mreSs!;C=sEvT{B;0fib2}Oc zss^(lxNL-w$AfrKGk`e6u{Ct(Pe1`Oe{6^3xx21B@Phap^^f+1X}& z`+|dJp;R55Q~^_U22>}Oi-}B~KuR6DUJPs4;JxZg8OWEQ3hu-}G%B-GiH2_5%b~qq z*{|v{<$!HxH#j2paHv@K{RHA77! zLDlzFRAg8h^nQeb8rx(@PVmZv3oqvL6UGE~f&}(#?0HzOeL^%G!}tT(LK>0%__Hah zG8)L_Lxz+idGs~7tCpc+AIgC~!ICP)i#a@%c&JHT`W|ZSdP_3G8(ampN{ojQjd3h3 zL~;K*!J-y{;!dtbQ}c$>qt-n37%gh~fKy2<%!6$#n1o%|7`KLf21XdiyinMqpua-~ zfg!vTI3LHP2J*-uPL@2D;}ZiTEFl%Z_+i^!oPcHTa&j416(KB=qKz+Lv%m(uld0wTeswBN z9F`bgC;QlMyswNH!#@9>c>9wj8zbzDvQwixe?NPkO)Sl0XUb!kazk-(;wZ;DJQ`9x zSc|cz$j7nQiepDrFE|sX>PK;by%vLCcrnd;0A^);^8)D;^sb=5{pT{G3$9cq>gMVi literal 0 HcmV?d00001 diff --git a/app/assets/fonts/mastodon.otf b/app/assets/fonts/mastodon.otf new file mode 100755 index 0000000000000000000000000000000000000000..2d415249aba8713392bcbc0b37aca624f5f63afa GIT binary patch literal 4068 zcmd^CeT-Dq6+ds@eC;m#A?vb87I-U^!kX^F#@5u>2F2ZND+WT}eNq3>ad-BM`B-NL zgo0rWR!CNYxYlN48(SpS+!<IEC+qBJDnJ!>SI453f~6Zb^XaiPtDre z%P=PMztj&!Y=NyHpTNDeKV8@oo1|v=dl~)8bYja8+3O)%^U*{ziF9)5ldtYWA2C7` zL)muSr0~mKilDql3v9-6>Uh^SU*%Q#v`2Ke#p8ss-LHmfk0o^!-M2ib^>w%FPe*8LPg{BMQC>wW&ydXrXJunJK`tj=?-@9pTJ)e|&fnOL^~ zgJexG``280{Y>wRlnP`EIG+mS5XI>CfowznULc1lj@Z7Z2vu220yzr(wSinoS6KT4 zxr*wokFXjmT!GM7cOY9-NBaXgL^X6ckZtJ4133)&cpyh;o>djdQL3}r0=ber>l=Yw zMa!(`X$@s*h_+IW2B?qvsXz`bhjs;??WmzubQPrAVd22iw;G@fC6EUP?Iz6VHzRrU zSL5zQF9U577AeTB)QvVxv?e>WH8;@LUvQSMS>d#=Ty>Rm`&K6l)j%eZauS;g{n=dJ zS?%;@GlgU-m2K_LVpoKi#lyCF)9MlDR}7*(1ryZ|-X^6ndTBTsG}=25EAJa@oOTcLBz- ze+Brsn%eODmpjp4C=6ZQ)^={5eHIBvnu2P)Mk>Yh!$6J00zdR8EM~OCJl_f|$%@V< z3~c{Dukr~~X_ha!JLj?}j0{><#hDT|r^A)g3u$_hHN7}A?by=|;rr%T-o5HE=A>BiQts2qYk=}R4Ut-mHXC2s(@0xD6*Ad zm7f4_?Xq^0EwMuOFDt5RPIXP~ZP>@;Xw4MXrJpd_%4KR(9#cp^&eSZDrAt3Xk?0cB zQmx}ZkBu-b*QI-zKBwHf5AI}Ih*^9>rY?XLAJ?TvcQDnfo9<$|M7i6TYK?`ss1yrh zTcO+?qw(#dk%5PqUr_FMnV;6BQRd%@T})>DTDg0>OzimXXcsg4N^h4KY36BhhDke_ z|G>P1`8B1s#kcQ_?11KkQp_KjaJtC+p#TB4$M0hPn=ZlleHlBhbzW>e=698gX>aS& z-2?YBzoJVc%zsjDJQ_Y$fqSX7AJ{ByqCq1CAzl-c}VL! z_cFf;&&=;>{g9+bV@t#@&6U+miroU4i!e-=i|({|iHc5ALzT)K8H+#m?FiF6iD?WQ zwcf=vUyME$^UFoT$idxyY57hT3;xrRq-I$%>EaUx)uWP*VUpB%Pf3Alzh(M-OX(p~ zeNtWszC@7LiHC*5^axX<_-RxMscV!nZWN=M7GG&f-5;J=KJ`EYs`*M7@!!Qsi(r38 zraQWn#xhX_NX3iF9brC-wmZnT*zilb6u;xPJAR5yct_T^Lb=^cm&(vl24o00ULu|3BrfE`htxD0dWPdxp2nhXfqXjSF!18Rda;FDUhIxoene z_$%o{@qRiE-)uOHtji_}tx*xEG%!SYd%hf0vf*!)IDb|b$2!b@{1bnfR_fv)(^qiR zFs+x(J|>%A<}%aQq#HH`t=v7R%5(YrLsQF-oaOPZi{Wvy%wY)z4oh8n;PG3^3wXTs zKjAPo?hJpK;yB;`s~i^gmuB%8Zw@JBaCx@0Y?#33rBW`RiO-+Jr*05F*UJ{3Y(b1V zNes$mtlWMuOb^J(uTcc=>mpic?lFwSdjY&ed$I*}@qr<5*$}RxM-DktXFCT2M;g+iKsEtn8HW3tov+Z24Lbtj!*5IcNRQy5rB6McxlVv<;CP9D}(n8 zcxh$X=L3(71mOLQ_&EG!%m(lI;6ajezynTzyDUY=<G1iZNGG+VPuZ{*OPyGHMr$#SUxr7f3dXq0>@J>^I!1DA6v(y TgYRDX);3T1vc=s@ONjmf)Ll4R literal 0 HcmV?d00001 diff --git a/app/assets/fonts/mastodon.svg b/app/assets/fonts/mastodon.svg new file mode 100755 index 00000000..8ea5bf6e --- /dev/null +++ b/app/assets/fonts/mastodon.svg @@ -0,0 +1,14 @@ + + + +Copyright (C) 2017 by original authors @ fontello.com + + + + + + + + + + \ No newline at end of file diff --git a/app/assets/fonts/mastodon.ttf b/app/assets/fonts/mastodon.ttf new file mode 100755 index 0000000000000000000000000000000000000000..60c8ad301a75b01a6e6e32dca987434abea9989f GIT binary patch literal 5628 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 Ch}UEQ literal 0 HcmV?d00001 diff --git a/app/assets/fonts/mastodon.woff b/app/assets/fonts/mastodon.woff new file mode 100755 index 0000000000000000000000000000000000000000..733653731186078c6fbc05d6c5c2e1d58e150c9e GIT binary patch literal 3204 zcmY+Gc|26zAIC4l*kz7$XPoh+3szpLl@=XYMO&+DA;`+U#&p8LA@b?zt7($o}S0>B1~0C*02#O}ZG z;rRcXnYFDU05I8uR2!6yM4aqxOKVkikfngJ5hy!7c}x(2jQ0WA5Ex$q``~D!r4qtT ze+d9!Rsfj*C<$o){x-?Sl?*Z+0AQs70GCf}A`R<`_XF3mF~A)5|HSL+d5Z+HJ}?&o z01#x7x%x*pBHjf6I1X#5fjY^35zcS}Apmf~z*rQN44V$b&W-FJ1hT`rhaARL1puDj zgu^@yF#fkjJ5xLv9|YFr1kVCU{Lul7*$Yo5g6taj3}ImH&bCTrn2)!gKX}#&Fh>rQ zmKOHvSsw}!Tnjtg>o%yUX#=JAL0JTx3l2BojK-A_a1`GS4*Wz1M!AhZbH?FA0h*5b zBQ^OGx`|J@vWu(lvU4aZL_aIORw%r3fTSdPqy1%n%}sg zvTxHj%Q?crsN%YQc&4)ue%@BproKo76Tcy(3#?IU=N{N=DkydflNF&X%cbIh|M=0p z%v8>k9?D@*L6EqfRhpU?C#XGNyB;$>;k4m0;x~6H`0A>tstm1i)+aN$AaJ&`pD{}0 zznV0}wV0UlNVTbNK<@sM4##}d#g5BV1?@YM#MriR*2}!5X(MmN?im|PUHbcFnKAEg zacrgwb?&lh$D6_{7u!{I=Z`x~8ho%F4?c3Hysc|TU?r3JkAdK=lz#r%saOtJ zJ6k91dwVh8bmMOHi=l!nyR!3ddUtD8Zxsh>>6bfsUw$)n_GoLu(!`R#tW$)81AeSB zd0D}R@8)2jq37_D%>n7b_e@jBTP5`m-SM~*Y9z0c{$s|zBvvKM@>h~s!PSaH0fR-N z#nO4buz|^FMc+;&w);yD2VdV_(h1o1Lp|}`^{7U#tF9ka5IPi!$XkBhwce5(axR5=9=`2u$=co9~ z1ugHC z*qpJes_wNO;of|08e&)Md}fHNciw$Ub=`erTFPX8XI>=u!Z(8fX7xmslZ`3iY~Fj^ zpF0NAP?3Ysp_SzgrKf)l7_SvF{TA&Ox9nHsxDff!Hrnp2bLkCiT3i1Mp_10VK%-2% z+84bnu@sbWOKrUGp3{jFX%G2p$76b5OCQ(uTRzX;i=sXX(9IkyX`(Rsl5SZPW7Ad_ zHCnzyvS+Y4gY)d?9f}K-_50kzrp?ZX5pEf9W%`fPX>sT&W^Nifq6lJS?|4^I83Dsr zvm4n9;n_Q6kqzGo$Oei?RN4C%#Qr{O%;ZRhJ=D_>=bRv3%`lnvI96?A_|DD7!zhQ} zE7eA@>sbgf&r#=llvbILd3tN6liH`$2d2|M2M{XWN3^fhmoIo9P1x32w;G6x)Mq{D zAFz@A;N01m{CrI`D#ug)*~yY1|BLBewz@U@PBu37T$`fik@gDh6`nq>QV|c%WJh`A zr5Z6j89J4V0UepSjeDom423T3{X8XjgljC^0*k>ePrT?K9IY7B4yT+JP{yd8+SsxC zDJA{-b8sTIJ?8;c+=n&(9C644Qi^y#EU(6s@l~da#n<8TN%N7RPb@KT)JEv7jcgV< z{K7N%l*K<$@Sm)BFZwO{Yx%bel<%#WENv(h?m85IGv0pc7GM8*SQP(i)v(>$7bc_e zt0)*|gLqtm)I@Y^Sb05#IyDd1kPVx;H>Ho=Y^-?kt+7SuM`{vTB!XHP-Ct0UJK&ga z@oX%ZB$&RMUCTH887HY)Bzw_v)qC`v=c=hNwA8 zwvj!)GUFC~Z+m8Ouw9;^5VI{v_YcAx1%ABiN2Wlo*XBQ-887pN7mMdkp>LE{V{4#e z-Tshol4hj|Rqb$UG1T{VVKr)Aa)R&$@r|ioF0^Sv;LG3fGuA-CuXruJ`dJ3P+l4z^ zWd=P&`gEk8+Yh;*A^DoNOuAJ@sZ+V}9_AHl3{o z|JzIl2LKOvFZVcj^BV}Vt@)8|239FgCpEmB5Sm&@qs*^VJl7;+Mxq51nW64vX=sTC ze7#3wtBoyp2eHfB+=Zilhlp7F3Tp~ssOqyW`^k)qHW_^hpqFp&f_52OvClPK)Id!A zZ{8{esgE>?E0D0+ps+_(G)PYP31Et;OJ|PM%Hl1%R;p083i2~Hz=6?|kV&Jrko5sS~TAQuSK=ptI2COOZ9 z(`}l}Wf8k#2EXsVZ0f-lvG28dq-qPhzb+KXaEUJqs;s1}-jw7^cR!t`u<*+9=%XU@ zQ2xz0D|7Cs-DdhehwiX`_uk_?RFbhiW%u{G7h!Bj?0IB%+L8OuO0)0os019C`o~Zr z&^a9V2fo%fxmZ{e%3qFl=%hF$iuU(@dPGruSMsU|p(s(~(i1m_Af_W}DVv$K*viV0 z^i`+gW%~4Vp03HjRaNil4TtFfV8Sz5a!=#Ld;?#69`?)g(Su)ctfxg;W^a5&%_2l;4V)5a*3I6(?#62w>4%$3O8-Opw0-qm7noyOsqW0--zj>1+! zbhuvt?aR4FG^)vRyT~gqf1eQl|tGyfDLmS zK>IDQFw?bw*L`y5j#<`~q-vcf+WzqQbAH9`0vAFmTZdCu^2mBXv1ZZ;qyi?~;;5c+CG$S!4F(WZDOjcfBHy2|3QGO-` zjRpX873;A-d23(kK2i$K($WN{DQI&x3WkEUv5Jb=XP;C Date: Sun, 7 Jan 2018 16:06:50 +0530 Subject: [PATCH 13/25] Fixed org_admin administration dashboard error. Fixed error accessing admin dashboard by passing organization_id attribute. Fixes #1933 --- app/models/conference.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/models/conference.rb b/app/models/conference.rb index 9adac888..03402652 100644 --- a/app/models/conference.rb +++ b/app/models/conference.rb @@ -595,11 +595,11 @@ class Conference < ApplicationRecord # * +ActiveRecord+ def self.get_active_conferences_for_dashboard result = Conference.where('start_date > ?', Time.now) - .select('id, short_title, color, start_date') + .select('id, short_title, color, start_date, organization_id') if result.empty? result = Conference - .select('id, short_title, color, start_date').limit(2) + .select('id, short_title, color, start_date, organization_id').limit(2) .order(start_date: :desc) end result @@ -611,7 +611,7 @@ class Conference < ApplicationRecord # ====Returns # * +ActiveRecord+ def self.get_conferences_without_active_for_dashboard(active_conferences) - result = Conference.select('id, short_title, color, start_date').order(start_date: :desc) + result = Conference.select('id, short_title, color, start_date, organization_id').order(start_date: :desc) result - active_conferences end From 4e80372ac69a593c53f047a53753cd8b0401cf71 Mon Sep 17 00:00:00 2001 From: AnkushMalik Date: Tue, 9 Jan 2018 17:21:14 +0530 Subject: [PATCH 14/25] Change paths of buttons on conference show page Update path of track submission btn to track#new and proposal submission to proposal#new Closes #1813 --- app/views/conferences/_call_for_papers.haml | 2 +- app/views/conferences/_call_for_tracks.haml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/conferences/_call_for_papers.haml b/app/views/conferences/_call_for_papers.haml index 3bf0f295..b47d7118 100644 --- a/app/views/conferences/_call_for_papers.haml +++ b/app/views/conferences/_call_for_papers.haml @@ -23,5 +23,5 @@ left! %p.cta-button = link_to "Submit your proposal now", - conference_program_proposals_path(conference_id), + new_conference_program_proposal_path(conference_id), class: 'btn btn-success btn-lg text-center' diff --git a/app/views/conferences/_call_for_tracks.haml b/app/views/conferences/_call_for_tracks.haml index 7eb80fa6..6d78bd05 100644 --- a/app/views/conferences/_call_for_tracks.haml +++ b/app/views/conferences/_call_for_tracks.haml @@ -15,5 +15,5 @@ left! %p.cta-button = link_to("Submit your request for track", - conference_program_tracks_path(conference_id), + new_conference_program_track_path(conference_id), class: 'btn btn-success btn-lg text-center') From b7015b7d26f35af113a1d7c323a74ca3437fd000 Mon Sep 17 00:00:00 2001 From: Vincent Misson Date: Sat, 9 Dec 2017 01:00:16 +0100 Subject: [PATCH 15/25] Fix example file to work with docker mailhog Issue seems to be link with this commit : https://github.com/openSUSE/osem/commit/da735fe1c9b9e685cb9b87987f3048cfebbe7a3e More information here : https://github.com/openSUSE/osem/issues/1863 --- docker-compose.env.example | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.env.example b/docker-compose.env.example index 905ff612..14f35abd 100644 --- a/docker-compose.env.example +++ b/docker-compose.env.example @@ -32,9 +32,9 @@ SECRET_KEY_BASE=changemechangemechangeme" # you should comment out or remove the mailhog service from docker-compose.yml, # too OSEM_EMAIL_ADDRESS="osem@mailhog" -OSEM_SMTP_AUTHENTICATION="login" -OSEM_SMTP_ADDRESS="mailhog" -OSEM_SMTP_PORT="1025" +OSEM_SMTP_AUTHENTICATION=login +OSEM_SMTP_ADDRESS=mailhog +OSEM_SMTP_PORT=1025 OSEM_SMTP_USERNAME="mailhog" OSEM_SMTP_PASSWORD="mailhog" From f0a8f2b74c28a098715d2df3e1ab08354f88b94f Mon Sep 17 00:00:00 2001 From: Vincent Misson Date: Tue, 9 Jan 2018 10:25:39 +0100 Subject: [PATCH 16/25] Fix example file #update Remove only the quotes for OSEM_SMTP_PORT as it's an integer --- docker-compose.env.example | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.env.example b/docker-compose.env.example index 14f35abd..7bda181b 100644 --- a/docker-compose.env.example +++ b/docker-compose.env.example @@ -32,8 +32,8 @@ SECRET_KEY_BASE=changemechangemechangeme" # you should comment out or remove the mailhog service from docker-compose.yml, # too OSEM_EMAIL_ADDRESS="osem@mailhog" -OSEM_SMTP_AUTHENTICATION=login -OSEM_SMTP_ADDRESS=mailhog +OSEM_SMTP_AUTHENTICATION="login" +OSEM_SMTP_ADDRESS="mailhog" OSEM_SMTP_PORT=1025 OSEM_SMTP_USERNAME="mailhog" OSEM_SMTP_PASSWORD="mailhog" From e6be579566b40af87ce7731ed1072b519b38feb8 Mon Sep 17 00:00:00 2001 From: Marie-Elise Date: Mon, 8 Jan 2018 20:23:14 -0600 Subject: [PATCH 17/25] Updated user's booth edit path in booth#show file. --- app/views/booths/show.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/booths/show.html.haml b/app/views/booths/show.html.haml index 6b12229d..f1790504 100644 --- a/app/views/booths/show.html.haml +++ b/app/views/booths/show.html.haml @@ -6,7 +6,7 @@ = image_tag(@booth.picture.thumb.url, size: '20%', alt: '') = @booth.title .btn-group.pull-right - = link_to 'Edit', edit_admin_conference_booth_path(@conference.short_title, @booth), class: 'btn btn-mini btn-primary' + = link_to 'Edit', edit_conference_booth_path(@conference.short_title, @booth), class: 'btn btn-mini btn-primary' .row .col-md-12 From 0ee0da1898954da3825104ac36fee570a6b22f9f Mon Sep 17 00:00:00 2001 From: ViditChitkara Date: Wed, 10 Jan 2018 01:18:07 +0530 Subject: [PATCH 18/25] fixed venue updation error fixes #1952 --- app/views/admin/venues/show.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/venues/show.html.haml b/app/views/admin/venues/show.html.haml index b50c10da..36906e05 100644 --- a/app/views/admin/venues/show.html.haml +++ b/app/views/admin/venues/show.html.haml @@ -8,7 +8,7 @@ .row .col-md-6 - if @conference.venue.location? - = render '/conferences/venue_map' + = render '/conferences/venue_map', venue: @conference.venue -else - if @venue.commercial.nil? .row From 8e91f5194078f4c02bad52f68b1ed032a46778f1 Mon Sep 17 00:00:00 2001 From: Naman Gupta <01namangupta@gmail.com> Date: Thu, 11 Jan 2018 18:07:37 +0530 Subject: [PATCH 19/25] Removed .css from .css.scss from files which were causing deprecation warning --- .../stylesheets/{breakpoints.css.scss => breakpoints.scss} | 0 app/assets/stylesheets/{mastodon.css.scss => mastodon.scss} | 0 .../{osem-dashboard.css.scss => osem-dashboard.scss} | 2 +- app/assets/stylesheets/{osem-fonts.css.scss => osem-fonts.scss} | 0 .../stylesheets/{osem-navbar.css.scss => osem-navbar.scss} | 2 +- .../stylesheets/{osem-payments.css.scss => osem-payments.scss} | 0 .../stylesheets/{osem-rating.css.scss => osem-rating.scss} | 0 .../stylesheets/{osem-schedule.css.scss => osem-schedule.scss} | 0 .../stylesheets/{osem-splash.css.scss => osem-splash.scss} | 2 +- app/assets/stylesheets/{osem.css.scss => osem.scss} | 0 app/assets/stylesheets/{strap-on.css.scss => strap-on.scss} | 0 11 files changed, 3 insertions(+), 3 deletions(-) rename app/assets/stylesheets/{breakpoints.css.scss => breakpoints.scss} (100%) rename app/assets/stylesheets/{mastodon.css.scss => mastodon.scss} (100%) rename app/assets/stylesheets/{osem-dashboard.css.scss => osem-dashboard.scss} (96%) rename app/assets/stylesheets/{osem-fonts.css.scss => osem-fonts.scss} (100%) rename app/assets/stylesheets/{osem-navbar.css.scss => osem-navbar.scss} (96%) rename app/assets/stylesheets/{osem-payments.css.scss => osem-payments.scss} (100%) rename app/assets/stylesheets/{osem-rating.css.scss => osem-rating.scss} (100%) rename app/assets/stylesheets/{osem-schedule.css.scss => osem-schedule.scss} (100%) rename app/assets/stylesheets/{osem-splash.css.scss => osem-splash.scss} (99%) rename app/assets/stylesheets/{osem.css.scss => osem.scss} (100%) rename app/assets/stylesheets/{strap-on.css.scss => strap-on.scss} (100%) diff --git a/app/assets/stylesheets/breakpoints.css.scss b/app/assets/stylesheets/breakpoints.scss similarity index 100% rename from app/assets/stylesheets/breakpoints.css.scss rename to app/assets/stylesheets/breakpoints.scss diff --git a/app/assets/stylesheets/mastodon.css.scss b/app/assets/stylesheets/mastodon.scss similarity index 100% rename from app/assets/stylesheets/mastodon.css.scss rename to app/assets/stylesheets/mastodon.scss diff --git a/app/assets/stylesheets/osem-dashboard.css.scss b/app/assets/stylesheets/osem-dashboard.scss similarity index 96% rename from app/assets/stylesheets/osem-dashboard.css.scss rename to app/assets/stylesheets/osem-dashboard.scss index 5dc69879..b2d0d125 100644 --- a/app/assets/stylesheets/osem-dashboard.css.scss +++ b/app/assets/stylesheets/osem-dashboard.scss @@ -1,4 +1,4 @@ -@import "breakpoints.css.scss"; +@import "breakpoints.scss"; .dashbox span.fa { line-height: 1.1em; diff --git a/app/assets/stylesheets/osem-fonts.css.scss b/app/assets/stylesheets/osem-fonts.scss similarity index 100% rename from app/assets/stylesheets/osem-fonts.css.scss rename to app/assets/stylesheets/osem-fonts.scss diff --git a/app/assets/stylesheets/osem-navbar.css.scss b/app/assets/stylesheets/osem-navbar.scss similarity index 96% rename from app/assets/stylesheets/osem-navbar.css.scss rename to app/assets/stylesheets/osem-navbar.scss index bfaac9ac..011ebc89 100644 --- a/app/assets/stylesheets/osem-navbar.css.scss +++ b/app/assets/stylesheets/osem-navbar.scss @@ -1,4 +1,4 @@ -@import "breakpoints.css.scss"; +@import "breakpoints.scss"; .nav-osem { border: none; @include breakpoint(xs) { diff --git a/app/assets/stylesheets/osem-payments.css.scss b/app/assets/stylesheets/osem-payments.scss similarity index 100% rename from app/assets/stylesheets/osem-payments.css.scss rename to app/assets/stylesheets/osem-payments.scss diff --git a/app/assets/stylesheets/osem-rating.css.scss b/app/assets/stylesheets/osem-rating.scss similarity index 100% rename from app/assets/stylesheets/osem-rating.css.scss rename to app/assets/stylesheets/osem-rating.scss diff --git a/app/assets/stylesheets/osem-schedule.css.scss b/app/assets/stylesheets/osem-schedule.scss similarity index 100% rename from app/assets/stylesheets/osem-schedule.css.scss rename to app/assets/stylesheets/osem-schedule.scss diff --git a/app/assets/stylesheets/osem-splash.css.scss b/app/assets/stylesheets/osem-splash.scss similarity index 99% rename from app/assets/stylesheets/osem-splash.css.scss rename to app/assets/stylesheets/osem-splash.scss index 387dfc00..32cbb822 100644 --- a/app/assets/stylesheets/osem-splash.css.scss +++ b/app/assets/stylesheets/osem-splash.scss @@ -1,4 +1,4 @@ -@import "breakpoints.css.scss"; +@import "breakpoints.scss"; #splash { // Counter the general padding for #content diff --git a/app/assets/stylesheets/osem.css.scss b/app/assets/stylesheets/osem.scss similarity index 100% rename from app/assets/stylesheets/osem.css.scss rename to app/assets/stylesheets/osem.scss diff --git a/app/assets/stylesheets/strap-on.css.scss b/app/assets/stylesheets/strap-on.scss similarity index 100% rename from app/assets/stylesheets/strap-on.css.scss rename to app/assets/stylesheets/strap-on.scss From 26b6902af37a6e4763c1a6d95438e326359b9f64 Mon Sep 17 00:00:00 2001 From: James Mason Date: Sun, 12 Nov 2017 20:59:48 -0800 Subject: [PATCH 20/25] Explicity compress assets --- config/application.rb | 3 +++ config/environments/production.rb | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/config/application.rb b/config/application.rb index 4e3844ad..7e5e3a5d 100644 --- a/config/application.rb +++ b/config/application.rb @@ -60,6 +60,9 @@ module Osem # Version of your assets, change this if you want to expire all your assets config.assets.version = '1.0' + # Set cache headers + config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=31536000' } + config.active_job.queue_adapter = :delayed_job end end diff --git a/config/environments/production.rb b/config/environments/production.rb index 11a8c06b..2a9bf1f8 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -25,6 +25,10 @@ Osem::Application.configure do # Generate digests for assets URLs config.assets.digest = true + config.assets.css_compressor = :sass + config.assets.js_compressor = :uglifier + config.assets.gzip = true + # Defaults to nil and saved in location specified by config.assets.prefix # config.assets.manifest = YOUR_PATH From 32a6d698518aa125a14a63b3624b6a855bc05667 Mon Sep 17 00:00:00 2001 From: James Mason Date: Sun, 12 Nov 2017 21:06:01 -0800 Subject: [PATCH 21/25] Enable compression in Rack --- config.ru | 1 + 1 file changed, 1 insertion(+) diff --git a/config.ru b/config.ru index 988dac89..a0123600 100644 --- a/config.ru +++ b/config.ru @@ -1,4 +1,5 @@ # This file is used by Rack-based servers to start the application. require ::File.expand_path('../config/environment', __FILE__) +use Rack::Deflater run Osem::Application From e3b83e8ec14b89df94edba0916da9bf497ec6897 Mon Sep 17 00:00:00 2001 From: Marie-Elise Date: Sat, 13 Jan 2018 21:24:00 -0600 Subject: [PATCH 22/25] Hid create organization button from non-superadmin users. --- app/views/admin/organizations/index.html.haml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/views/admin/organizations/index.html.haml b/app/views/admin/organizations/index.html.haml index baf9bc80..7226d2a6 100644 --- a/app/views/admin/organizations/index.html.haml +++ b/app/views/admin/organizations/index.html.haml @@ -2,8 +2,9 @@ .col-md-12 .page-header %h1 Organizations - .btn-group.pull-right - = link_to 'Create Organization', new_admin_organization_path, class: 'btn btn-success pull-right' + - if can? :manage, :all + .btn-group.pull-right + = link_to 'Create Organization', new_admin_organization_path, class: 'btn btn-success pull-right' %p.text-muted Manage organizations in OSEM .row From 34af9b840b3b970a081fc74738d84cf4193dd0de Mon Sep 17 00:00:00 2001 From: Marie-Elise Date: Sat, 13 Jan 2018 22:40:42 -0600 Subject: [PATCH 23/25] Added condition to check for existing splashpage. Will redirect user if splashpage is not found. --- app/controllers/conferences_controller.rb | 58 ++++++++++++----------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/app/controllers/conferences_controller.rb b/app/controllers/conferences_controller.rb index 4b01ca29..aaa0c278 100644 --- a/app/controllers/conferences_controller.rb +++ b/app/controllers/conferences_controller.rb @@ -20,36 +20,40 @@ class ConferencesController < ApplicationController authorize! :show, @conference # TODO: reduce the 10 queries performed here splashpage = @conference.splashpage - if splashpage.include_cfp - cfps = @conference.program.cfps - @call_for_events = cfps.find { |call| call.cfp_type == 'events' } - if @call_for_events.try(:open?) - @event_types = @conference.event_types.pluck(:title) - @track_names = @conference.confirmed_tracks.pluck(:name).sort + if !splashpage.present? + redirect_to admin_conference_splashpage_path(@conference.short_title) + else + if splashpage.include_cfp + cfps = @conference.program.cfps + @call_for_events = cfps.find { |call| call.cfp_type == 'events' } + if @call_for_events.try(:open?) + @event_types = @conference.event_types.pluck(:title) + @track_names = @conference.confirmed_tracks.pluck(:name).sort + end + @call_for_tracks = cfps.find { |call| call.cfp_type == 'tracks' } end - @call_for_tracks = cfps.find { |call| call.cfp_type == 'tracks' } - end - if splashpage.include_program - @highlights = @conference.highlighted_events.eager_load(:speakers) - if splashpage.include_tracks - @tracks = @conference.confirmed_tracks.eager_load( - :room - ).order('tracks.name') + if splashpage.include_program + @highlights = @conference.highlighted_events.eager_load(:speakers) + if splashpage.include_tracks + @tracks = @conference.confirmed_tracks.eager_load( + :room + ).order('tracks.name') + end + if splashpage.include_booths + @booths = @conference.confirmed_booths.order('title') + end end - if splashpage.include_booths - @booths = @conference.confirmed_booths.order('title') + if splashpage.include_registrations || splashpage.include_tickets + @tickets = @conference.tickets.order('price_cents') + end + if splashpage.include_lodgings + @lodgings = @conference.lodgings.order('name') + end + if splashpage.include_sponsors + @sponsorship_levels = @conference.sponsorship_levels.eager_load( + :sponsors + ).order('sponsorship_levels.position ASC', 'sponsors.name') end - end - if splashpage.include_registrations || splashpage.include_tickets - @tickets = @conference.tickets.order('price_cents') - end - if splashpage.include_lodgings - @lodgings = @conference.lodgings.order('name') - end - if splashpage.include_sponsors - @sponsorship_levels = @conference.sponsorship_levels.eager_load( - :sponsors - ).order('sponsorship_levels.position ASC', 'sponsors.name') end end From afff7e1c660b6362e7b591b81002d9ff001d78e4 Mon Sep 17 00:00:00 2001 From: Marie-Elise Date: Mon, 15 Jan 2018 22:23:38 -0600 Subject: [PATCH 24/25] Refactored condition to check if splashpage is present. --- app/controllers/conferences_controller.rb | 63 ++++++++++++----------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/app/controllers/conferences_controller.rb b/app/controllers/conferences_controller.rb index aaa0c278..cb554f0c 100644 --- a/app/controllers/conferences_controller.rb +++ b/app/controllers/conferences_controller.rb @@ -20,41 +20,42 @@ class ConferencesController < ApplicationController authorize! :show, @conference # TODO: reduce the 10 queries performed here splashpage = @conference.splashpage - if !splashpage.present? - redirect_to admin_conference_splashpage_path(@conference.short_title) - else - if splashpage.include_cfp - cfps = @conference.program.cfps - @call_for_events = cfps.find { |call| call.cfp_type == 'events' } - if @call_for_events.try(:open?) - @event_types = @conference.event_types.pluck(:title) - @track_names = @conference.confirmed_tracks.pluck(:name).sort - end - @call_for_tracks = cfps.find { |call| call.cfp_type == 'tracks' } + + unless splashpage.present? + redirect_to admin_conference_splashpage_path(@conference.short_title) and return + end + + if splashpage.include_cfp + cfps = @conference.program.cfps + @call_for_events = cfps.find { |call| call.cfp_type == 'events' } + if @call_for_events.try(:open?) + @event_types = @conference.event_types.pluck(:title) + @track_names = @conference.confirmed_tracks.pluck(:name).sort end - if splashpage.include_program - @highlights = @conference.highlighted_events.eager_load(:speakers) - if splashpage.include_tracks - @tracks = @conference.confirmed_tracks.eager_load( - :room - ).order('tracks.name') - end - if splashpage.include_booths - @booths = @conference.confirmed_booths.order('title') - end + @call_for_tracks = cfps.find { |call| call.cfp_type == 'tracks' } + end + if splashpage.include_program + @highlights = @conference.highlighted_events.eager_load(:speakers) + if splashpage.include_tracks + @tracks = @conference.confirmed_tracks.eager_load( + :room + ).order('tracks.name') end - if splashpage.include_registrations || splashpage.include_tickets - @tickets = @conference.tickets.order('price_cents') - end - if splashpage.include_lodgings - @lodgings = @conference.lodgings.order('name') - end - if splashpage.include_sponsors - @sponsorship_levels = @conference.sponsorship_levels.eager_load( - :sponsors - ).order('sponsorship_levels.position ASC', 'sponsors.name') + if splashpage.include_booths + @booths = @conference.confirmed_booths.order('title') end end + if splashpage.include_registrations || splashpage.include_tickets + @tickets = @conference.tickets.order('price_cents') + end + if splashpage.include_lodgings + @lodgings = @conference.lodgings.order('name') + end + if splashpage.include_sponsors + @sponsorship_levels = @conference.sponsorship_levels.eager_load( + :sponsors + ).order('sponsorship_levels.position ASC', 'sponsors.name') + end end private From 5d816f934a94a69c721f58f69d3191847164c6f7 Mon Sep 17 00:00:00 2001 From: Marie-Elise Date: Tue, 16 Jan 2018 19:38:22 -0600 Subject: [PATCH 25/25] Corrected formatting errors. --- app/controllers/conferences_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/conferences_controller.rb b/app/controllers/conferences_controller.rb index cb554f0c..5e907cea 100644 --- a/app/controllers/conferences_controller.rb +++ b/app/controllers/conferences_controller.rb @@ -22,7 +22,7 @@ class ConferencesController < ApplicationController splashpage = @conference.splashpage unless splashpage.present? - redirect_to admin_conference_splashpage_path(@conference.short_title) and return + redirect_to admin_conference_splashpage_path(@conference.short_title) && return end if splashpage.include_cfp