* exclude manual segments from audience segments dropdown
* specs 🎉
* fix deleteDisplayAds specs
* add seed for display ad with manually managed segment
* moar specs
138 lines
6.7 KiB
Text
138 lines
6.7 KiB
Text
<div class="grid l:grid-cols-2 gap-6 mb-4">
|
|
<div class="flex flex-col gap-4">
|
|
<% if @display_ad.creator.present? %>
|
|
<div class="crayons-field">
|
|
<%= label_tag :creator, "Created by:", class: "crayons-field__label" %>
|
|
<%= text_field_tag :creator, @display_ad.creator.name, class: "crayons-textfield", disabled: true, autocomplete: "off" %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<div class="crayons-field">
|
|
<%= label_tag :name, "Name:", class: "crayons-field__label" %>
|
|
<%= text_field_tag :name, @display_ad.name, class: "crayons-textfield", autocomplete: "off" %>
|
|
</div>
|
|
|
|
<div class="crayons-field">
|
|
<%= label_tag :organization_id, "Organization ID:", class: "crayons-field__label" %>
|
|
<%= text_field_tag :organization_id, @display_ad.organization_id, class: "crayons-textfield", placeholder: "1234", autocomplete: "off" %>
|
|
</div>
|
|
|
|
<div class="crayons-field">
|
|
<%= label_tag :body_markdown, "Body Markdown:", class: "crayons-field__label" %>
|
|
<%= text_area_tag :body_markdown, @display_ad.body_markdown, size: "100x5", class: "crayons-textfield" %>
|
|
</div>
|
|
|
|
<div class="crayons-field">
|
|
<%= label_tag :placement_area, "Placement Area:", class: "crayons-field__label" %>
|
|
<%= select_tag :placement_area, options_for_select(display_ads_placement_area_options_array, selected: @display_ad.placement_area), include_blank: "Select...", class: "crayons-select js-placement-area" %>
|
|
</div>
|
|
|
|
<div class="crayons-field">
|
|
<div id="display-ad-targeted-tags"></div>
|
|
</div>
|
|
|
|
<div class="crayons-field hidden">
|
|
<%= label_tag :tag_list, "Tag List:", class: "crayons-field__label" %>
|
|
<%= text_field_tag :tag_list, @display_ad.tag_list.to_s, class: "crayons-textfield js-tags-textfield", autocomplete: "off" %>
|
|
</div>
|
|
|
|
<div class="crayons-field hidden">
|
|
<%= label_tag :exclude_article_ids, "Exclude Article IDs:", class: "crayons-field__label" %>
|
|
<%= text_field_tag :exclude_article_ids, @display_ad.exclude_article_ids.join(", "), class: "crayons-textfield js-exclude-ids-textfield", autocomplete: "off" %>
|
|
</div>
|
|
|
|
<div class="crayons-field">
|
|
<fieldset aria-describedby="section-description" aria-describedby="display-to-description">
|
|
<legend class="crayons-field crayons-field__label pl-0">Display to user group</legend>
|
|
<p id="display-to-description" class="crayons-field__description mb-2">Determines which user group will be able to see the Display Ad</p>
|
|
|
|
<label class="crayons-field crayons-field--radio mb-2">
|
|
<%= radio_button_tag :display_to, "all", @display_ad.display_to_all?, class: "crayons-radio" %>
|
|
<div class="crayons-field__label">All users</div>
|
|
</label>
|
|
|
|
<label class="crayons-field crayons-field--radio mb-2">
|
|
<%= radio_button_tag :display_to, "logged_in", @display_ad.display_to_logged_in?, class: "crayons-radio" %>
|
|
<div class="crayons-field__label">Only logged in users</div>
|
|
</label>
|
|
|
|
<label class="crayons-field crayons-field--radio mb-2">
|
|
<%= radio_button_tag :display_to, "logged_out", @display_ad.display_to_logged_out?, class: "crayons-radio" %>
|
|
<div class="crayons-field__label">Only logged out users</div>
|
|
</label>
|
|
</fieldset>
|
|
</div>
|
|
|
|
<div class="crayons-field <%= "hidden" if @display_ad.audience_segment.blank? %>">
|
|
<%= label_tag :audience_segment_id, "Users who:", class: "crayons-field__label" %>
|
|
<% if @display_ad.audience_segment&.manual? %>
|
|
<%= select_tag :audience_segment_id,
|
|
options_for_select(single_audience_segment_option(@display_ad), selected: @display_ad.audience_segment_id),
|
|
disabled: true,
|
|
class: "crayons-select js-audience-segment" %>
|
|
<% else %>
|
|
<%= select_tag :audience_segment_id,
|
|
options_for_select(automatic_audience_segments_options_array, selected: @display_ad.audience_segment_id),
|
|
include_blank: "All users",
|
|
class: "crayons-select js-audience-segment" %>
|
|
<% end %>
|
|
</div>
|
|
|
|
<div class="crayons-field">
|
|
<fieldset aria-describedby="section-description" aria-describedby="type-of-description">
|
|
<legend class="crayons-field crayons-field__label pl-0">Type</legend>
|
|
|
|
<label class="crayons-field crayons-field--radio mb-2">
|
|
<%= radio_button_tag :type_of, "in_house", @display_ad.in_house?, class: "crayons-radio" %>
|
|
<div class="crayons-field__label">In-House Ad</div>
|
|
</label>
|
|
|
|
<label class="crayons-field crayons-field--radio mb-2">
|
|
<%= radio_button_tag :type_of, "community", @display_ad.community?, class: "crayons-radio" %>
|
|
<div class="crayons-field__label">Community</div>
|
|
</label>
|
|
|
|
<label class="crayons-field crayons-field--radio mb-2">
|
|
<%= radio_button_tag :type_of, "external", @display_ad.external?, class: "crayons-radio" %>
|
|
<div class="crayons-field__label">External</div>
|
|
</label>
|
|
</fieldset>
|
|
</div>
|
|
|
|
<div class="crayons-field">
|
|
<%= label_tag :published, "Published:", class: "crayons-field__label" %>
|
|
<%= select_tag :published, options_for_select([false, true], selected: @display_ad.published), class: "crayons-select" %>
|
|
</div>
|
|
|
|
<div class="crayons-field">
|
|
<%= label_tag :approved, "Approved:", class: "crayons-field__label" %>
|
|
<%= select_tag :approved, options_for_select([false, true], selected: @display_ad.approved), class: "crayons-select" %>
|
|
</div>
|
|
|
|
<div class="crayons-field">
|
|
<%= label_tag :priority, "Prioritized:", class: "crayons-field__label" %>
|
|
<%= select_tag :priority, options_for_select([false, true], selected: @display_ad.priority), class: "crayons-select" %>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="crayons-card crayons-card--secondary crayons-sponsorship text-styles text-styles--display-ad">
|
|
<% if @display_ad.persisted? %>
|
|
<%= @display_ad.processed_html.html_safe %>
|
|
<% else %>
|
|
<div class="flex flex-col gap-3">
|
|
<p>
|
|
Display ads will show up in the designated placement area <strong>once published and approved</strong>. You can safely preview them here before publishing.
|
|
</p>
|
|
<p>
|
|
Multiple ads that share the same placement area will be swapped every few minutes. <strong>The units with the most engagement will show up the most often</strong>.
|
|
</p>
|
|
<p>
|
|
Organization ID is optional. Use it if you want to attribute an ad to a specific organization.
|
|
</p>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<%= javascript_packs_with_chunks_tag "admin/displayAds", defer: true %>
|