2014-05-01 08:41:00 +00:00
|
|
|
<% content_for :page_specific_css do %>
|
|
|
|
<%= stylesheet_link_tag "lib/main-forms" %>
|
|
|
|
<%= stylesheet_link_tag "lib/fileupload" %>
|
|
|
|
<%= stylesheet_link_tag "lib/main-list" %>
|
|
|
|
<% end %>
|
|
|
|
<% content_for :page_specific_javascript do %>
|
|
|
|
<%= javascript_include_tag "lib/bootstrap-fileupload" %>
|
|
|
|
<%= javascript_include_tag "lib/bootstrap-datetimepicker" %>
|
|
|
|
<%= javascript_include_tag "lib/datetimepicker/datetimepicker.js" %>
|
|
|
|
<%= javascript_include_tag "lib/modal-preview" %>
|
|
|
|
<%= javascript_include_tag "lib/file-type" %>
|
|
|
|
<%= javascript_include_tag "lib/module-area" %>
|
|
|
|
<%= javascript_include_tag "member-selection" %>
|
|
|
|
<% end %>
|
|
|
|
|
|
|
|
<!-- Input Area -->
|
|
|
|
<div class="input-area">
|
|
|
|
|
|
|
|
<!-- Module Tabs -->
|
|
|
|
<div class="nav-name"><strong><%= t(:module) %></strong></div>
|
|
|
|
<ul class="nav nav-pills module-nav">
|
|
|
|
<li class="active"><a href="#basic" data-toggle="tab"><%= t(:basic) %></a></li>
|
|
|
|
<li><a href="#status" data-toggle="tab"><%= t(:status) %></a></li>
|
|
|
|
<li><a href="#tag" data-toggle="tab"><%= t(:tags) %></a></li>
|
|
|
|
<li><a href="#imageupload" data-toggle="tab"><%= t(:image) %></a></li>
|
|
|
|
<li><a href="#mail-group" data-toggle="tab"><%= t('announcement.email_reminder')%></a></li>
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<!-- Module -->
|
|
|
|
<div class="tab-content module-area">
|
|
|
|
|
|
|
|
<!-- Basic Module -->
|
|
|
|
<div class="tab-pane fade in active" id="basic">
|
|
|
|
|
|
|
|
<!-- Category -->
|
|
|
|
<div class="control-group">
|
|
|
|
<label class="control-label muted"><%= t(:category) %></label>
|
|
|
|
<div class="controls">
|
2014-05-12 08:16:46 +00:00
|
|
|
<%= select_category(f, @module_app) %>
|
2014-05-01 08:41:00 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Date Time Picker -->
|
|
|
|
<div class="control-group">
|
|
|
|
<label class="control-label muted"><%= t(:start) %></label>
|
|
|
|
<div class="controls">
|
|
|
|
<%= f.datetime_picker :postdate, :no_label => true %>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="control-group">
|
|
|
|
<label class="control-label muted"><%= t(:end) %></label>
|
|
|
|
<div class="controls">
|
|
|
|
<%= f.datetime_picker :deadline, :no_label => true %>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Status Module -->
|
|
|
|
<div class="tab-pane fade" id="status">
|
|
|
|
|
|
|
|
<!-- Status -->
|
|
|
|
<div class="control-group">
|
|
|
|
<label class="control-label muted"><%= t(:status) %></label>
|
|
|
|
<div class="controls" data-toggle="buttons-checkbox">
|
|
|
|
<label class="checkbox inline btn <%= 'active' if @bulletin.is_top? %>">
|
|
|
|
<%= f.check_box :is_top %> <%= t(:top) %>
|
|
|
|
</label>
|
|
|
|
<label class="checkbox inline btn <%= 'active' if @bulletin.is_hot? %>">
|
|
|
|
<%= f.check_box :is_hot %> <%= t(:hot) %>
|
|
|
|
</label>
|
|
|
|
<label class="checkbox inline btn <%= 'active' if @bulletin.is_hidden? %>">
|
|
|
|
<%= f.check_box :is_hidden %> <%= t(:hide) %>
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
<%# end %>
|
|
|
|
|
|
|
|
<!-- Tag Module -->
|
|
|
|
<div class="tab-pane fade" id="tag">
|
|
|
|
<div class="control-group">
|
|
|
|
<label class="control-label muted"><%= t(:tags) %></label>
|
2014-05-12 08:16:46 +00:00
|
|
|
<%= select_tag(f, @module_app, @bulletin) %>
|
2014-05-01 08:41:00 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Images Module -->
|
|
|
|
<div class="tab-pane fade" id="imageupload">
|
|
|
|
|
|
|
|
<!-- Images Upload -->
|
|
|
|
<div class="control-group">
|
|
|
|
<label class="control-label muted"><%= t(:image) %></label>
|
|
|
|
<div class="controls">
|
|
|
|
<div class="fileupload fileupload-new clearfix <%= 'fileupload-edit' if @bulletin.image.file %>" data-provides="fileupload">
|
|
|
|
<div class="fileupload-new thumbnail pull-left">
|
|
|
|
<% if @bulletin.image.file %>
|
|
|
|
<%= image_tag @bulletin.image %>
|
|
|
|
<% else %>
|
|
|
|
<img src="http://www.placehold.it/50x50/EFEFEF/AAAAAA" />
|
|
|
|
<% end %>
|
|
|
|
</div>
|
|
|
|
<div class="fileupload-preview fileupload-exists thumbnail pull-left"></div>
|
|
|
|
<span class="btn btn-file">
|
|
|
|
<span class="fileupload-new"><%= t(:select_image) %></span>
|
|
|
|
<span class="fileupload-exists"><%= t(:change) %></span>
|
|
|
|
<%= f.file_field :image %>
|
|
|
|
</span>
|
|
|
|
<a href="#" class="btn fileupload-exists" data-dismiss="fileupload"><%= t(:cancel) %></a>
|
|
|
|
<div class="controls" data-toggle="buttons-checkbox">
|
|
|
|
<label class="checkbox inline btn btn-danger fileupload-remove">
|
|
|
|
<%= f.check_box :remove_image %><%= t(:remove) %>
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Mail Group Module -->
|
|
|
|
<div class="tab-pane fade" id="mail-group">
|
|
|
|
|
|
|
|
<!-- Mail Group -->
|
|
|
|
<div class="control-group">
|
|
|
|
<label class="control-label muted"><%= t("announcement.email_to") %></label>
|
|
|
|
<div class="controls">
|
|
|
|
|
|
|
|
<label class="checkbox inline">
|
|
|
|
<%= check_box_tag('bulletin[email_sent]', '1', (!@bulletin.email_sent.blank? ? true : false), :id=>'remind-check') %><%= t('announcement.activate_email_reminder')%>
|
|
|
|
</label>
|
|
|
|
|
|
|
|
<div class="content-box">
|
|
|
|
<p>
|
|
|
|
<%#= render partial: 'admin/member_selects/email_selection_box', locals: {field: 'bulletin[email_user_ids][]', users: @email_users} %>
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="control-group">
|
|
|
|
<label class="control-label muted"></label>
|
|
|
|
<div class="controls">
|
|
|
|
<div class="content-box">
|
|
|
|
<span class="help-block"><%= "#{t("announcement.other_mailaddress")}(#{t("announcement.other_mailaddress_note")})"%> </span>
|
|
|
|
<%= f.text_area :other_mailaddress, :class=>"span12", :cols=>"25", :rows=>"10" %>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="content-box">
|
|
|
|
<div class="control-group">
|
|
|
|
<label class="control-label muted"><%= t("announcement.email_sentdate") %></label>
|
|
|
|
<div class="controls">
|
|
|
|
<%#= f.datetime_picker :email_sentdate, :no_label => true %>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Language Tabs -->
|
|
|
|
<div class="nav-name"><strong><%= t(:language) %></strong></div>
|
|
|
|
<ul class="nav nav-pills language-nav">
|
|
|
|
<% Site.first.in_use_locales.each_with_index do |locale, i| %>
|
|
|
|
<li class="<%= 'active' if i == 0 %>">
|
|
|
|
<a data-toggle="tab" href=".<%= locale %>"><%= t(locale) %></a>
|
|
|
|
</li>
|
|
|
|
<% end %>
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<!-- Language -->
|
|
|
|
<div class="tab-content language-area">
|
|
|
|
|
|
|
|
<% Site.first.in_use_locales.each_with_index do |locale, i| %>
|
|
|
|
|
|
|
|
<div class="<%= locale %> tab-pane fade <%= ( i == 0 ) ? "in active" : '' %>">
|
|
|
|
|
|
|
|
<!-- Title-->
|
|
|
|
<div class="control-group input-title">
|
|
|
|
<label class="control-label muted"><%= t(:title) %></label>
|
|
|
|
<div class="controls">
|
|
|
|
<%= f.fields_for :title_translations do |f| %>
|
|
|
|
<%= f.text_field locale, class: "input-block-level", placeholder: t(:title), value: (@bulletin.title_translations[locale] rescue nil) %>
|
|
|
|
<% end %>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Sub Title -->
|
|
|
|
<div class="control-group input-subtitle">
|
|
|
|
<label class="control-label muted"><%= t(:subtitle) %></label>
|
|
|
|
<div class="controls">
|
|
|
|
<div class="textarea">
|
|
|
|
<%= f.fields_for :subtitle_translations do |f| %>
|
|
|
|
<%= f.text_area locale, rows: 2, class: "input-block-level", value: (@bulletin.subtitle_translations[locale] rescue nil) %>
|
|
|
|
<% end %>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Content -->
|
|
|
|
<div class="control-group input-content">
|
|
|
|
<label class="control-label muted"><%= t(:content) %></label>
|
|
|
|
<div class="controls">
|
|
|
|
<div class="textarea">
|
|
|
|
<%= f.fields_for :text_translations do |f| %>
|
|
|
|
<%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@bulletin.text_translations[locale] rescue nil) %>
|
|
|
|
<% end %>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<% end %>
|
|
|
|
|
|
|
|
<!-- Link -->
|
|
|
|
<div class="control-group">
|
|
|
|
<label class="control-label muted"><%= t(:link) %></label>
|
|
|
|
<div class="controls add-input">
|
|
|
|
|
|
|
|
<!-- Exist -->
|
|
|
|
<% if @bulletin && !@bulletin.bulletin_links.blank? %>
|
|
|
|
<div class="exist">
|
|
|
|
<% @bulletin.bulletin_links.each_with_index do |bulletin_link, i| %>
|
|
|
|
<%= f.fields_for :bulletin_links, bulletin_link do |f| %>
|
|
|
|
<%= render :partial => 'form_link', :object => bulletin_link, :locals => {:f => f, :i => i} %>
|
|
|
|
<% end %>
|
|
|
|
<% end %>
|
|
|
|
<hr>
|
|
|
|
</div>
|
|
|
|
<% end %>
|
|
|
|
|
|
|
|
<!-- Add -->
|
|
|
|
<div class="add-target">
|
|
|
|
</div>
|
|
|
|
<p class="add-btn">
|
|
|
|
<%= hidden_field_tag 'bulletin_link_field_count', @bulletin.bulletin_links.count %>
|
|
|
|
<a id="add_link" class="trigger btn btn-small btn-primary"><i class="icons-plus"></i> <%= t(:add) %></a>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- File -->
|
|
|
|
<div class="control-group">
|
|
|
|
<label class="control-label muted"><%= t(:file_) %></label>
|
|
|
|
<div class="controls">
|
|
|
|
|
|
|
|
<!-- Exist -->
|
|
|
|
<% if @bulletin && !@bulletin.bulletin_files.blank? %>
|
|
|
|
<div class="exist">
|
|
|
|
<% @bulletin.bulletin_files.each_with_index do |bulletin_file, i| %>
|
|
|
|
<%= f.fields_for :bulletin_files, bulletin_file do |f| %>
|
|
|
|
<%= render :partial => 'form_file', :object => bulletin_file, :locals => {:f => f, :i => i} %>
|
|
|
|
<% end %>
|
|
|
|
<% end %>
|
|
|
|
<hr>
|
|
|
|
</div>
|
|
|
|
<% end %>
|
|
|
|
|
|
|
|
<!-- Add -->
|
|
|
|
<div class="add-target">
|
|
|
|
</div>
|
|
|
|
<p class="add-btn">
|
|
|
|
<%= hidden_field_tag 'bulletin_file_field_count', @bulletin.bulletin_files.count %>
|
|
|
|
<a id="add_file" class="trigger btn btn-small btn-primary"><i class="icons-plus"></i> <%= t(:add) %></a>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Form Actions -->
|
|
|
|
<div class="form-actions">
|
|
|
|
<%= f.submit t('submit'), class: 'btn btn-primary' %>
|
|
|
|
<%= button_tag t("preview"), id: "button_for_preview", name: "commit", class: 'btn post_preview', type: :button, url: admin_announcements_path %>
|
|
|
|
<%= link_to t('cancel'), admin_announcements_path, :class=>"btn" %>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<% content_for :page_specific_javascript do %>
|
|
|
|
<script>
|
|
|
|
$(function() {
|
|
|
|
$(document).on('click', '#add_link', function(){
|
|
|
|
var new_id = $(this).prev().attr('value');
|
|
|
|
var old_id = new RegExp("new_bulletin_links", "g");
|
|
|
|
var on = $('.language-nav li.active').index();
|
|
|
|
var le = $(this).parent('.add-btn').prev('.add-target').children('.start-line').length;
|
|
|
|
$(this).prev().attr('value', parseInt(new_id) + 1);
|
|
|
|
$(this).parent().siblings('.add-target').append(("<%= escape_javascript(add_attribute 'form_link', f, :bulletin_links) %>").replace(old_id, new_id));
|
|
|
|
$(this).parent('.add-btn').prev('.add-target').children('.start-line').eq(le).children('.tab-content').children('.tab-pane').eq(on).addClass('in active').siblings().removeClass('in active');
|
|
|
|
formTip();
|
|
|
|
});
|
|
|
|
$(document).on('click', '#add_file', function(){
|
|
|
|
var new_id = $(this).prev().attr('value');
|
|
|
|
var old_id = new RegExp("new_bulletin_files", "g");
|
|
|
|
var on = $('.language-nav li.active').index();
|
|
|
|
var le = $(this).parent('.add-btn').prev('.add-target').children('.start-line').length;
|
|
|
|
$(this).prev().attr('value', parseInt(new_id) + 1);
|
|
|
|
$(this).parent().siblings('.add-target').append(("<%= escape_javascript(add_attribute 'form_file', f, :bulletin_files) %>").replace(old_id, new_id));
|
|
|
|
$(this).parent('.add-btn').prev('.add-target').children('.start-line').eq(le).children('.input-append').find('.tab-content').each(function() {
|
|
|
|
$(this).children('.tab-pane').eq(on).addClass('in active').siblings().removeClass('in active');
|
|
|
|
});
|
|
|
|
formTip();
|
|
|
|
});
|
|
|
|
$(document).on('click', '.delete_link', function(){
|
|
|
|
$(this).parents('.input-prepend').remove();
|
|
|
|
});
|
|
|
|
$(document).on('click', '.delete_file', function(){
|
|
|
|
$(this).parents('.input-prepend').remove();
|
|
|
|
});
|
|
|
|
$(document).on('click', '.remove_existing_record', function(){
|
|
|
|
if(confirm("<%= I18n.t(:sure?)%>")){
|
|
|
|
$(this).children('.should_destroy').attr('value', 1);
|
|
|
|
$(this).parents('.start-line').hide();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#remind-check').prop('checked') ? '':$('.content-box').addClass('hide')
|
|
|
|
$('#remind-check').on('change', function() {
|
|
|
|
$(this).prop('checked') ? $('.content-box').removeClass('hide'):$('.content-box').addClass('hide')
|
|
|
|
})
|
|
|
|
|
|
|
|
});
|
|
|
|
</script>
|
|
|
|
<% end %>
|