forked from spen/seminar
				
			first commit for seminar
This commit is contained in:
		
						commit
						52d3581130
					
				| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
source "https://rubygems.org"
 | 
			
		||||
 | 
			
		||||
# Declare your gem's dependencies in seminar.gemspec.
 | 
			
		||||
# Bundler will treat runtime dependencies like base dependencies, and
 | 
			
		||||
# development dependencies will be added by default to the :development group.
 | 
			
		||||
gemspec
 | 
			
		||||
 | 
			
		||||
# Declare any dependencies that are still in development here instead of in
 | 
			
		||||
# your gemspec. These might include edge Rails or gems from your path or
 | 
			
		||||
# Git. Remember to move these dependencies to your gemspec before releasing
 | 
			
		||||
# your gem to rubygems.org.
 | 
			
		||||
 | 
			
		||||
# To use debugger
 | 
			
		||||
# gem 'debugger'
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,87 @@
 | 
			
		|||
PATH
 | 
			
		||||
  remote: .
 | 
			
		||||
  specs:
 | 
			
		||||
    seminar (0.0.1)
 | 
			
		||||
      rails (~> 4.1.9)
 | 
			
		||||
 | 
			
		||||
GEM
 | 
			
		||||
  remote: https://rubygems.org/
 | 
			
		||||
  specs:
 | 
			
		||||
    actionmailer (4.1.9)
 | 
			
		||||
      actionpack (= 4.1.9)
 | 
			
		||||
      actionview (= 4.1.9)
 | 
			
		||||
      mail (~> 2.5, >= 2.5.4)
 | 
			
		||||
    actionpack (4.1.9)
 | 
			
		||||
      actionview (= 4.1.9)
 | 
			
		||||
      activesupport (= 4.1.9)
 | 
			
		||||
      rack (~> 1.5.2)
 | 
			
		||||
      rack-test (~> 0.6.2)
 | 
			
		||||
    actionview (4.1.9)
 | 
			
		||||
      activesupport (= 4.1.9)
 | 
			
		||||
      builder (~> 3.1)
 | 
			
		||||
      erubis (~> 2.7.0)
 | 
			
		||||
    activemodel (4.1.9)
 | 
			
		||||
      activesupport (= 4.1.9)
 | 
			
		||||
      builder (~> 3.1)
 | 
			
		||||
    activerecord (4.1.9)
 | 
			
		||||
      activemodel (= 4.1.9)
 | 
			
		||||
      activesupport (= 4.1.9)
 | 
			
		||||
      arel (~> 5.0.0)
 | 
			
		||||
    activesupport (4.1.9)
 | 
			
		||||
      i18n (~> 0.6, >= 0.6.9)
 | 
			
		||||
      json (~> 1.7, >= 1.7.7)
 | 
			
		||||
      minitest (~> 5.1)
 | 
			
		||||
      thread_safe (~> 0.1)
 | 
			
		||||
      tzinfo (~> 1.1)
 | 
			
		||||
    arel (5.0.1.20140414130214)
 | 
			
		||||
    builder (3.2.2)
 | 
			
		||||
    erubis (2.7.0)
 | 
			
		||||
    hike (1.2.3)
 | 
			
		||||
    i18n (0.7.0)
 | 
			
		||||
    json (1.8.2)
 | 
			
		||||
    mail (2.6.3)
 | 
			
		||||
      mime-types (>= 1.16, < 3)
 | 
			
		||||
    mime-types (2.4.3)
 | 
			
		||||
    minitest (5.5.1)
 | 
			
		||||
    multi_json (1.10.1)
 | 
			
		||||
    rack (1.5.2)
 | 
			
		||||
    rack-test (0.6.3)
 | 
			
		||||
      rack (>= 1.0)
 | 
			
		||||
    rails (4.1.9)
 | 
			
		||||
      actionmailer (= 4.1.9)
 | 
			
		||||
      actionpack (= 4.1.9)
 | 
			
		||||
      actionview (= 4.1.9)
 | 
			
		||||
      activemodel (= 4.1.9)
 | 
			
		||||
      activerecord (= 4.1.9)
 | 
			
		||||
      activesupport (= 4.1.9)
 | 
			
		||||
      bundler (>= 1.3.0, < 2.0)
 | 
			
		||||
      railties (= 4.1.9)
 | 
			
		||||
      sprockets-rails (~> 2.0)
 | 
			
		||||
    railties (4.1.9)
 | 
			
		||||
      actionpack (= 4.1.9)
 | 
			
		||||
      activesupport (= 4.1.9)
 | 
			
		||||
      rake (>= 0.8.7)
 | 
			
		||||
      thor (>= 0.18.1, < 2.0)
 | 
			
		||||
    rake (10.4.2)
 | 
			
		||||
    sprockets (2.12.3)
 | 
			
		||||
      hike (~> 1.2)
 | 
			
		||||
      multi_json (~> 1.0)
 | 
			
		||||
      rack (~> 1.0)
 | 
			
		||||
      tilt (~> 1.1, != 1.3.0)
 | 
			
		||||
    sprockets-rails (2.2.4)
 | 
			
		||||
      actionpack (>= 3.0)
 | 
			
		||||
      activesupport (>= 3.0)
 | 
			
		||||
      sprockets (>= 2.8, < 4.0)
 | 
			
		||||
    sqlite3 (1.3.10)
 | 
			
		||||
    thor (0.19.1)
 | 
			
		||||
    thread_safe (0.3.4)
 | 
			
		||||
    tilt (1.4.1)
 | 
			
		||||
    tzinfo (1.2.2)
 | 
			
		||||
      thread_safe (~> 0.1)
 | 
			
		||||
 | 
			
		||||
PLATFORMS
 | 
			
		||||
  ruby
 | 
			
		||||
 | 
			
		||||
DEPENDENCIES
 | 
			
		||||
  seminar!
 | 
			
		||||
  sqlite3
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
Copyright 2015 YOURNAME
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining
 | 
			
		||||
a copy of this software and associated documentation files (the
 | 
			
		||||
"Software"), to deal in the Software without restriction, including
 | 
			
		||||
without limitation the rights to use, copy, modify, merge, publish,
 | 
			
		||||
distribute, sublicense, and/or sell copies of the Software, and to
 | 
			
		||||
permit persons to whom the Software is furnished to do so, subject to
 | 
			
		||||
the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be
 | 
			
		||||
included in all copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 | 
			
		||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | 
			
		||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 | 
			
		||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 | 
			
		||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 | 
			
		||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 | 
			
		||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
= Seminar
 | 
			
		||||
 | 
			
		||||
This project rocks and uses MIT-LICENSE.
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,32 @@
 | 
			
		|||
begin
 | 
			
		||||
  require 'bundler/setup'
 | 
			
		||||
rescue LoadError
 | 
			
		||||
  puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
require 'rdoc/task'
 | 
			
		||||
 | 
			
		||||
RDoc::Task.new(:rdoc) do |rdoc|
 | 
			
		||||
  rdoc.rdoc_dir = 'rdoc'
 | 
			
		||||
  rdoc.title    = 'Seminar'
 | 
			
		||||
  rdoc.options << '--line-numbers'
 | 
			
		||||
  rdoc.rdoc_files.include('README.rdoc')
 | 
			
		||||
  rdoc.rdoc_files.include('lib/**/*.rb')
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Bundler::GemHelper.install_tasks
 | 
			
		||||
 | 
			
		||||
require 'rake/testtask'
 | 
			
		||||
 | 
			
		||||
Rake::TestTask.new(:test) do |t|
 | 
			
		||||
  t.libs << 'lib'
 | 
			
		||||
  t.libs << 'test'
 | 
			
		||||
  t.pattern = 'test/**/*_test.rb'
 | 
			
		||||
  t.verbose = false
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
task default: :test
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,78 @@
 | 
			
		|||
function checkTagsQuantity() {
 | 
			
		||||
  var $tagLead = $('.tag-lead'),
 | 
			
		||||
  	  $tagsGroups = $('.tags-groups');
 | 
			
		||||
 | 
			
		||||
  $tagsGroups.each(function(i) {
 | 
			
		||||
    var $children = $(this).children().length;
 | 
			
		||||
    $tagLead.eq(i).children('.badge').text($children);
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function checkedLength() {
 | 
			
		||||
  var $tagsList = $('#tags-list'),
 | 
			
		||||
      $defaultTags,
 | 
			
		||||
      ids;
 | 
			
		||||
  function reload_links() {
 | 
			
		||||
    var _checked = 0;
 | 
			
		||||
    ids = [];
 | 
			
		||||
    $defaultTags = $('li.default input[type="checkbox"]');
 | 
			
		||||
    $defaultTags.each(function(index, el) {
 | 
			
		||||
      if($(el).prop('checked')) {
 | 
			
		||||
        _checked ++;
 | 
			
		||||
        ids.push($(el).val())
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
    console.log(_checked,ids)
 | 
			
		||||
    if(_checked > 0) {
 | 
			
		||||
      $('#deselect').removeClass('hide');
 | 
			
		||||
      $('#deselect').on('click', deselect);
 | 
			
		||||
      $('#deleteItems').attr('rel', "<%= Rails.application.routes.url_helpers.delete_items_admin_seminar_items_path %>" + "?ids=" + ids);
 | 
			
		||||
      $('#deleteItems').removeClass('hide');
 | 
			
		||||
 | 
			
		||||
    } else {
 | 
			
		||||
      $('#deselect').addClass('hide');
 | 
			
		||||
      $('#deleteItems').attr('rel', "");
 | 
			
		||||
      $('#deleteItems').addClass('hide');
 | 
			
		||||
      $('#deselect').off('click', deselect);
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
  $tagsList.on('click', '.card', function(event) {
 | 
			
		||||
    reload_links();
 | 
			
		||||
  });
 | 
			
		||||
  $('#selectAllTags').on('click', function() {
 | 
			
		||||
    $('.filter-item:not(".mark") input[type="checkbox"]').prop('checked', true);
 | 
			
		||||
    $('.filter-item:not(".mark") .card').addClass('active');
 | 
			
		||||
    reload_links();
 | 
			
		||||
  });
 | 
			
		||||
  $('#deleteItems').on('click', function() {
 | 
			
		||||
    $('#delete_seminar_items .tags-groups').empty();
 | 
			
		||||
    $('#delete_seminar_items a.delete-tags').attr("href", $(this).attr("rel"));
 | 
			
		||||
    if(ids.length) {
 | 
			
		||||
      $('.filter-item').children('.card.active').each(function(i, e) {
 | 
			
		||||
        console.log($(e))
 | 
			
		||||
        $(e).parents('.filter-item').clone().appendTo('#delete_seminar_items .tags-groups');
 | 
			
		||||
        $('#delete_seminar_items .tags-groups .filter-item').addClass('def');
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    $('#delete_seminar_items').modal('show', cleanTagInputs());
 | 
			
		||||
    function cleanTagInputs(){
 | 
			
		||||
      var $tagsDelete = $('#delete_seminar_items'),
 | 
			
		||||
      $filterItem = $tagsDelete.find('.filter-item');
 | 
			
		||||
      $filterItem.find('.card, .amount').remove();
 | 
			
		||||
      $filterItem.find('a').removeAttr('class');
 | 
			
		||||
      $filterItem.find('a').removeAttr('href');
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  function deselect() {
 | 
			
		||||
    $('.tags input[type="checkbox"]').prop('checked', false);
 | 
			
		||||
    $('.card').removeClass('active');
 | 
			
		||||
    $('.bottomnav .toggable').not('.open-slide').addClass('hide');
 | 
			
		||||
    $('#deleteItems').attr('rel', "");
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$(function() {
 | 
			
		||||
    checkedLength();
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,494 @@
 | 
			
		|||
// Retrieve the initial data
 | 
			
		||||
function temporary() {
 | 
			
		||||
	attributesArray.length = 0;
 | 
			
		||||
	$('.attributes').each(function() {
 | 
			
		||||
		var attributesData = {},
 | 
			
		||||
			$selectType = $('.dataType').data().type;
 | 
			
		||||
 | 
			
		||||
		// Capture "attributes-body" within the input[type = "text"] val
 | 
			
		||||
		$(this).find('.attributes-body').find('input[type="text"]').each(function(i) {
 | 
			
		||||
			var $type = $(this).data().type;
 | 
			
		||||
			attributesData[$type] = $(this).val();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		// Capture "attributes-body" within the input[type = "radio"] checked
 | 
			
		||||
		$(this).find('.attributes-body').find('input[type="radio"]').each(function(i) {
 | 
			
		||||
			var $type = $(this).data().type;
 | 
			
		||||
			attributesData[$type] = $(this).prop("checked");
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		// Capture "attributes-body" within the dataType selected
 | 
			
		||||
		$(this).find('.attributes-body').find('.dataType').children("option:selected").each(function () {
 | 
			
		||||
			attributesData[$selectType] = {};
 | 
			
		||||
			attributesData[$selectType].index = $(this).index();
 | 
			
		||||
			attributesData[$selectType].name = $(this).attr('ref');
 | 
			
		||||
			if($(this).attr('ref') == 'typeB' || $(this).attr('ref') == 'typeE' || $(this).attr('ref') == 'typeF') {
 | 
			
		||||
				attributesData[$selectType].option = [];
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		// Capture "field-type" within the input[type = "text"] val
 | 
			
		||||
		$(this).find('.field-type').find('input[type="text"]').each(function(i) {
 | 
			
		||||
			var $type = $(this).data().type;
 | 
			
		||||
			if(!$type.match('option_lang')) {
 | 
			
		||||
				attributesData[$selectType][$type] = $(this).val();
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		$(this).find('.field-type .add-target').find('.input-append').each(function() {
 | 
			
		||||
			var append = []
 | 
			
		||||
			$(this).children('input[type="text"]').each(function() {
 | 
			
		||||
				var val = $(this).val();
 | 
			
		||||
				append.push(val);
 | 
			
		||||
			});
 | 
			
		||||
			attributesData[$selectType].option.push(append);
 | 
			
		||||
		})
 | 
			
		||||
 | 
			
		||||
		// Capture "field-type" within the input[type = "checkbox"] checked
 | 
			
		||||
		$(this).find('.field-type').find('input[type="checkbox"]').each(function() {
 | 
			
		||||
			var $type = $(this).data().type;
 | 
			
		||||
			attributesData[$selectType][$type] = $(this).prop("checked");
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		// Capture "field-type" within the input[type = "radio"] checked
 | 
			
		||||
		$(this).find('.field-type').find('input[type="radio"]').each(function() {
 | 
			
		||||
			var $type = $(this).data().type;
 | 
			
		||||
			attributesData[$selectType][$type] = $(this).prop("checked");
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		// Capture "field-type" within the dataType selected
 | 
			
		||||
		$(this).find('.field-type').find('select').children("option:selected").each(function () {
 | 
			
		||||
			attributesData[$selectType].dateFormat = $(this).index();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		attributesArray.push(attributesData);
 | 
			
		||||
	});
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Determine the Append input length
 | 
			
		||||
function inputAppendLength() {
 | 
			
		||||
	$('.add-target').each(function(i) {
 | 
			
		||||
		if($(this).children('.input-append:not(:hidden)').length == 1 || $(this).children('.input-append').length == 1) {
 | 
			
		||||
			$(this).children('.input-append').each(function() {
 | 
			
		||||
				if($(this).children('div').hasClass('tab-content')) {
 | 
			
		||||
					var btnLength = $(this).children('.btn').length;
 | 
			
		||||
					$(this).find('.btn').eq(btnLength-2).addClass('last');
 | 
			
		||||
					$(this).find('.remove-input').addClass('hide');
 | 
			
		||||
				} else {
 | 
			
		||||
					var mediumLength = $(this).children('.input-medium').length;
 | 
			
		||||
					$(this).children('.input-medium').eq(mediumLength-1).addClass('last');
 | 
			
		||||
					$(this).children('.remove-input').addClass('hide');
 | 
			
		||||
				}
 | 
			
		||||
			});
 | 
			
		||||
		} else {
 | 
			
		||||
			$(this).children('.input-append').each(function() {
 | 
			
		||||
				if($(this).children('div').hasClass('tab-content')) {
 | 
			
		||||
					$(this).find('.btn').removeClass('last');
 | 
			
		||||
					$(this).find('.remove-input').removeClass('hide');
 | 
			
		||||
				} else {
 | 
			
		||||
					$(this).children('.input-medium').removeClass('last');
 | 
			
		||||
					$(this).children('.remove-input').removeClass('hide');
 | 
			
		||||
				}
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Role Attribute Template Data
 | 
			
		||||
function setData(l, type, ol) {
 | 
			
		||||
	var fields = $('#info').length ? "info[seminar_signup_fields]" : $('#sub_seminar_main').length ? "sub_seminar_main[seminar_signup_fields]" : "seminar_main[seminar_signup_fields]",
 | 
			
		||||
		data = {
 | 
			
		||||
			_add_more:				["add_more_"			+l, fields+"["+l+"]["+type+"][add_more]"],
 | 
			
		||||
			_calendar:				["calendar_"			+l, fields+"["+l+"]["+type+"][calendar]"],
 | 
			
		||||
			_cross_lang:			["cross_lang_"			+l, fields+"["+l+"]["+type+"][cross_lang]"],
 | 
			
		||||
			_disabled:				["disabled_"			+l, fields+"["+l+"][disabled]"],
 | 
			
		||||
			_format:				["format_"				+l, fields+"["+l+"]["+type+"][format]"],
 | 
			
		||||
			_initial:				["initial_"				+l, fields+"["+l+"]["+type+"][initial]"],
 | 
			
		||||
			_is_range:				["is_range_"			+l, fields+"["+l+"]["+type+"][is_range]"],
 | 
			
		||||
			_key:					["key_"					+l, fields+"["+l+"][key]"],
 | 
			
		||||
			_markup:				fields+"["+l+"][markup]",
 | 
			
		||||
			_option_list:			["option_list_"+l+"_"+ol, fields+"["+l+"]["+type+"][option_list]["+ol+"]", "option_list_"+ol],
 | 
			
		||||
			_placeholder:			["placeholder_"			+l, fields+"["+l+"]["+type+"][placeholder]"],
 | 
			
		||||
			_title_translations:	["title_translations_"	+l, fields+"["+l+"][title_translations]"],
 | 
			
		||||
			_to_delete:				["to_delete_"			+l, fields+"["+l+"][to_delete]"],
 | 
			
		||||
			_to_require:			["to_require_"		    +l, fields+"["+l+"][to_require]"],
 | 
			
		||||
		};
 | 
			
		||||
	return data;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Get Default Address Form
 | 
			
		||||
function getAddressForm(trigger, element, decide) {
 | 
			
		||||
	if(decide) {
 | 
			
		||||
		addressVal.length = addressArray.length = 0;
 | 
			
		||||
		var addressAllVal = [];
 | 
			
		||||
		var inputNameArray = [];
 | 
			
		||||
		trigger.closest('.input-append').find('.tab-pane').each(function() {
 | 
			
		||||
			var adderssText = $(this).children('input[type="text"]').val(),
 | 
			
		||||
				addersshidden = '',
 | 
			
		||||
				addressData = {},
 | 
			
		||||
				inputName = [];
 | 
			
		||||
			$(this).children('input:not(:first)').each(function(j) {
 | 
			
		||||
				var name = $(this).attr('name'),
 | 
			
		||||
					val = $(this).val();
 | 
			
		||||
				addersshidden += val;
 | 
			
		||||
				addressData[name] = val;
 | 
			
		||||
				inputName.push(name);
 | 
			
		||||
			});
 | 
			
		||||
			addressArray.push(addressData);
 | 
			
		||||
			addressAllVal.push(adderssText);
 | 
			
		||||
			inputNameArray.push(inputName);
 | 
			
		||||
			if(adderssText != addersshidden) {
 | 
			
		||||
				addressVal.push(false);
 | 
			
		||||
			} else {
 | 
			
		||||
				addressVal.push(true);
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
		element.find('.tab-pane').each(function(i) {
 | 
			
		||||
			$(this).find('textarea, input[type="text"]').each(function(j) {
 | 
			
		||||
				$(this).attr('name',inputNameArray[i][j]);
 | 
			
		||||
			});
 | 
			
		||||
			if(addressVal[i]) {
 | 
			
		||||
				$(this).find('textarea, input[type="text"]').each(function(j) {
 | 
			
		||||
					$(this).val(addressArray[i][$(this).attr('name')]);
 | 
			
		||||
				});
 | 
			
		||||
			} else {
 | 
			
		||||
				$(this).find('textarea').val(addressAllVal[i]);
 | 
			
		||||
				$(this).find('input[type="text"]').each(function(j) {
 | 
			
		||||
					$(this).val('');
 | 
			
		||||
				});
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
	};
 | 
			
		||||
	element.off('show');
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Return Address Form
 | 
			
		||||
function returnAddressForm(element, decide) {
 | 
			
		||||
	if(decide) {
 | 
			
		||||
		addressArray.length = 0;
 | 
			
		||||
		element.find('.tab-pane').each(function(i) {
 | 
			
		||||
			var addressData = {};
 | 
			
		||||
			$(this).find('textarea, input[type="text"]').each(function(j) {
 | 
			
		||||
				var name = $(this).attr('name'),
 | 
			
		||||
					val = $(this).val();
 | 
			
		||||
				addressData[name] = val;
 | 
			
		||||
			});
 | 
			
		||||
			addressArray.push(addressData);
 | 
			
		||||
		});
 | 
			
		||||
		$.map(addressInputId, function(n, i) {
 | 
			
		||||
			var v = '';
 | 
			
		||||
			$('#'+n).find('input[type="hidden"]').each(function() {
 | 
			
		||||
				$(this).val(addressArray[i][$(this).attr('name')]);
 | 
			
		||||
				v += addressArray[i][$(this).attr('name')]
 | 
			
		||||
			});
 | 
			
		||||
			$('#'+n).find('input[type="text"]').each(function() {
 | 
			
		||||
				$(this).val(v);
 | 
			
		||||
			});
 | 
			
		||||
		});
 | 
			
		||||
	};
 | 
			
		||||
	returnDecide = false;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
$(function() {
 | 
			
		||||
	appendIndex = null;
 | 
			
		||||
	if($('#user-forms').length) {
 | 
			
		||||
		addressVal = [];
 | 
			
		||||
		addressArray = [];
 | 
			
		||||
		addressInputId = [];
 | 
			
		||||
		seminar_mainType = null;
 | 
			
		||||
		returnDecide = false;
 | 
			
		||||
		$('.attributes').each(function() {
 | 
			
		||||
			if($(this).find('.toggle-check').attr('value') == "true") {
 | 
			
		||||
				$(this).addClass('disabled').children('.attributes-body').hide();
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
		$('.returnDecide').on(clickEvent, function() {
 | 
			
		||||
			returnDecide = true;
 | 
			
		||||
		})
 | 
			
		||||
		$('#address-field').on('hidden', function () {
 | 
			
		||||
			$('.btn[data-toggle="modal"]').removeClass('active').blur();
 | 
			
		||||
			$(this).find('.nav-tabs > li').removeClass('active').eq(0).addClass('active');
 | 
			
		||||
			$(this).find('.tab-content > .tab-pane').removeClass('active in').eq(0).addClass('active in');
 | 
			
		||||
			$(this).on('show', getAddressForm(null, $(this), false));
 | 
			
		||||
			returnAddressForm($(this), returnDecide)
 | 
			
		||||
		});
 | 
			
		||||
		$('.control-group').delegate('.btn[data-toggle="modal"]', 'click', function() {
 | 
			
		||||
			var $trigger = $(this);
 | 
			
		||||
			addressInputId.length = 0;
 | 
			
		||||
			$(this).closest('.input-append').find('.tab-pane').each(function() {
 | 
			
		||||
				addressInputId.push($(this).attr('id'));
 | 
			
		||||
			});
 | 
			
		||||
			$('#address-field').on('show', getAddressForm($trigger, $('#address-field'), true));
 | 
			
		||||
		});
 | 
			
		||||
		$('#user-forms').delegate('.togglebox, .delete, .trigger, .remove-input', clickEvent, function(event) {
 | 
			
		||||
			if($(this).hasClass('togglebox')) {
 | 
			
		||||
				var seminar_main_staus = [];
 | 
			
		||||
				if($(this).hasClass('disable')) {
 | 
			
		||||
					$(this).find('.toggle-check')
 | 
			
		||||
						   .attr('value', 'false')
 | 
			
		||||
						   .closest('.attributes')
 | 
			
		||||
						   .removeClass('disabled')
 | 
			
		||||
						   .children('.attributes-body')
 | 
			
		||||
						   .fadeIn(300);
 | 
			
		||||
				} else {
 | 
			
		||||
					$(this).find('.toggle-check')
 | 
			
		||||
						   .attr('value', 'true')
 | 
			
		||||
						   .closest('.attributes')
 | 
			
		||||
						   .addClass('disabled')
 | 
			
		||||
						   .children('.attributes-body')
 | 
			
		||||
						   .fadeOut(300)
 | 
			
		||||
						   .find('.check')
 | 
			
		||||
						   .attr("checked",false)
 | 
			
		||||
						   .attr("value",seminar_main_staus);
 | 
			
		||||
				}
 | 
			
		||||
				$(this).toggleClass('disable');
 | 
			
		||||
			};
 | 
			
		||||
			if($(this).hasClass('remove-input')) {
 | 
			
		||||
				$(this).closest('.input-append').fadeOut(300, function() {
 | 
			
		||||
					$(this).remove();
 | 
			
		||||
					inputAppendLength();
 | 
			
		||||
				});
 | 
			
		||||
			};
 | 
			
		||||
			if($(this).hasClass('trigger')) {
 | 
			
		||||
				appendIndex = $(this).closest('.controls').find('.input-append').length;
 | 
			
		||||
				nameNumber = $(this).closest('.controls').find('.input-append:eq(0)').find('input').eq(0).attr('name');
 | 
			
		||||
				nameNumber = nameNumber.match(/[^[\D\]]+(?=])/g)[0];
 | 
			
		||||
				seminar_mainType = $(this).data('seminar_mains')
 | 
			
		||||
				if($(this).hasClass('textInput')) {
 | 
			
		||||
					$("#template-text").tmpl().appendTo($(this).closest('.controls').find('.add-target'));
 | 
			
		||||
				} else if ($(this).hasClass('textLengInput')) {
 | 
			
		||||
					$("#template-text-language").tmpl().appendTo($(this).closest('.controls').find('.add-target'));
 | 
			
		||||
				} else if ($(this).hasClass('address')) {
 | 
			
		||||
					$("#template-address").tmpl().appendTo($(this).closest('.controls').find('.add-target'));
 | 
			
		||||
				} 
 | 
			
		||||
				inputAppendLength();
 | 
			
		||||
			};
 | 
			
		||||
			event.preventDefault();
 | 
			
		||||
		});
 | 
			
		||||
		inputAppendLength();
 | 
			
		||||
	} else {
 | 
			
		||||
		attributesArray = [];
 | 
			
		||||
		attributesHeaderLength = null;
 | 
			
		||||
		templateType = null;
 | 
			
		||||
		attributeIndex = null;
 | 
			
		||||
		if($('.add-target').length) {
 | 
			
		||||
			inputAppendLength();
 | 
			
		||||
		}
 | 
			
		||||
		if(!$('.attributes').length) {
 | 
			
		||||
			$('#attributes-area').addClass('clickHere');
 | 
			
		||||
		} else {
 | 
			
		||||
			temporary();
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		$('.add-attributes').on(clickEvent, function() {
 | 
			
		||||
			if($('#attributes-area').hasClass('clickHere')) {
 | 
			
		||||
				$('#attributes-area').removeClass('clickHere');
 | 
			
		||||
			};
 | 
			
		||||
		    attributesHeaderLength = $('.attributes:not(:hidden)').length+1;
 | 
			
		||||
		    attributesLength = $('#attributes-area .attributes').length;
 | 
			
		||||
		    $("#template-attributes").tmpl(setData(attributesLength, templateType, appendIndex)).appendTo( "#attributes-area" );
 | 
			
		||||
		    $('.toggle-check').togglebox();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		$('.attributes.default').each(function(i) {
 | 
			
		||||
			$(this).children('.field-type').not('.default').hide();
 | 
			
		||||
			$(this).find('input[type="text"]').on('keyup', function() {
 | 
			
		||||
				$(this).trigger("checking");
 | 
			
		||||
			});
 | 
			
		||||
			$(this).find('input[type="radio"], input[type="checkbox"], select').change(function() {
 | 
			
		||||
				$(this).trigger("checking");
 | 
			
		||||
			});
 | 
			
		||||
			$(this).delegate('input[type="text"], input[type="radio"], input[type="checkbox"], select', 'checking', function(e) {
 | 
			
		||||
				var e = e.target.type,
 | 
			
		||||
					$data = $(this).data().type;
 | 
			
		||||
				switch(e) {
 | 
			
		||||
					case 'text':
 | 
			
		||||
						var val = $(this).val();
 | 
			
		||||
						if(!$(this).closest('.field-type').length) {
 | 
			
		||||
							$data = attributesArray[i][$data];
 | 
			
		||||
						} else if(!$(this).closest('.add-target').length) {
 | 
			
		||||
							$data = attributesArray[i].select[$data];
 | 
			
		||||
						} else {
 | 
			
		||||
							appendIndex = $(this).parent('.input-append').index()
 | 
			
		||||
							optionIndex = $(this).index()
 | 
			
		||||
							$data = attributesArray[i].select.option[appendIndex][optionIndex];
 | 
			
		||||
						}
 | 
			
		||||
						if(val != $data) {
 | 
			
		||||
							$(this).closest('.attributes').find('.reply').removeClass('hide');
 | 
			
		||||
						}
 | 
			
		||||
						break;
 | 
			
		||||
					case 'radio':
 | 
			
		||||
						var checked = $(this).prop("checked");
 | 
			
		||||
						$data = attributesArray[i][$data];
 | 
			
		||||
						if(checked != $data) {
 | 
			
		||||
							$(this).closest('.attributes').find('.reply').removeClass('hide');
 | 
			
		||||
						}
 | 
			
		||||
						break;
 | 
			
		||||
					case 'checkbox':
 | 
			
		||||
						var checked = $(this).prop("checked");
 | 
			
		||||
						$data = attributesArray[i].select[$data];
 | 
			
		||||
						if(checked != $data) {
 | 
			
		||||
							$(this).closest('.attributes').find('.reply').removeClass('hide');
 | 
			
		||||
						}
 | 
			
		||||
						break;
 | 
			
		||||
					case 'select-one':
 | 
			
		||||
						var ref,
 | 
			
		||||
							$data = attributesArray[i].select.name;
 | 
			
		||||
						$(this).children("option:selected").each(function() {
 | 
			
		||||
							ref = $(this).attr('ref');
 | 
			
		||||
						});
 | 
			
		||||
						if(ref != $data) {
 | 
			
		||||
							$(this).closest('.attributes').find('.reply').removeClass('hide');
 | 
			
		||||
						}
 | 
			
		||||
						break;
 | 
			
		||||
				};
 | 
			
		||||
			});
 | 
			
		||||
			$(this).delegate('.reply', clickEvent, function() {
 | 
			
		||||
				var $bodyText = $(this).parent('.attributes-header').siblings('.attributes-body').find('input[type="text"]'),
 | 
			
		||||
					$bodyRadio = $(this).parent('.attributes-header').siblings('.attributes-body').find('input[type="radio"]'),
 | 
			
		||||
					$bodySelected = $(this).parent('.attributes-header').siblings('.attributes-body').find('.dataType').children("option"),
 | 
			
		||||
					$fieldTypeO = $(this).parent('.attributes-header').siblings('.field-type.default'),
 | 
			
		||||
					$fieldTypeN = $(this).parent('.attributes-header').siblings('.field-type').not('.default');
 | 
			
		||||
				$bodyText.each(function() {
 | 
			
		||||
					var $type = $(this).data().type;
 | 
			
		||||
					$(this).val(attributesArray[i][$type]);
 | 
			
		||||
				});
 | 
			
		||||
				$bodyRadio.each(function() {
 | 
			
		||||
					var $type = $(this).data().type;
 | 
			
		||||
					$(this).prop("checked", attributesArray[i][$type])
 | 
			
		||||
				});
 | 
			
		||||
				$fieldTypeO.find('input[type="text"]').each(function() {
 | 
			
		||||
					var $type = $(this).data().type;
 | 
			
		||||
					if(!$type.match('option_lang')) {
 | 
			
		||||
						$(this).val(attributesArray[i].select[$type]);
 | 
			
		||||
					}
 | 
			
		||||
				});
 | 
			
		||||
				$fieldTypeO.find('.add-target').find('.input-append').each(function(k) {
 | 
			
		||||
					$(this).children('input[type="text"]').each(function(j) {
 | 
			
		||||
						$(this).val(attributesArray[i].select.option[k][j]);
 | 
			
		||||
						// var val = $(this).val();
 | 
			
		||||
						// append.push(val);
 | 
			
		||||
					});
 | 
			
		||||
				})
 | 
			
		||||
				$fieldTypeO.find('input[type="checkbox"], input[type="radio"]').each(function() {
 | 
			
		||||
					var $type = $(this).data().type;
 | 
			
		||||
					$(this).prop("checked", attributesArray[i].select[$type]);
 | 
			
		||||
				});
 | 
			
		||||
				$fieldTypeO.find('select').children("option").eq(attributesArray[i].select.dateFormat).prop('selected',true);
 | 
			
		||||
				$bodySelected.eq(attributesArray[i].select.index).prop('selected',true);
 | 
			
		||||
				$fieldTypeO.show();
 | 
			
		||||
				$fieldTypeN.empty().hide();
 | 
			
		||||
				$(this).addClass('hide')
 | 
			
		||||
				return false
 | 
			
		||||
			})
 | 
			
		||||
		});
 | 
			
		||||
		$('#attributes-area').delegate('.togglebox, .delete, .trigger, .remove-input', clickEvent, function(event) {
 | 
			
		||||
			if($(this).hasClass('togglebox')) {
 | 
			
		||||
				if($(this).hasClass('disable')) {
 | 
			
		||||
					$(this).find('.toggle-check')
 | 
			
		||||
						   .attr('value', 'false')
 | 
			
		||||
						   .closest('.attributes')
 | 
			
		||||
						   .removeClass('disabled')
 | 
			
		||||
						   .find('input, select')
 | 
			
		||||
						   .removeAttr('disabled')
 | 
			
		||||
						   .end('.attributes')
 | 
			
		||||
						   .find('.btn-group .btn')
 | 
			
		||||
						   .removeClass('disabled')
 | 
			
		||||
						   .end().find('.attribute_field_disabled').attr('value', 'false');
 | 
			
		||||
					if($(this).closest('.attributes').find('.dataType').children("option:selected").attr('ref')) {
 | 
			
		||||
						$(this).closest('.attributes').find('.field-type').addClass('in').find('.control-group').delay(150).fadeIn(300);
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
					$(this).find('.toggle-check')
 | 
			
		||||
						   .attr('value', 'true')
 | 
			
		||||
						   .closest('.attributes')
 | 
			
		||||
						   .addClass('disabled')
 | 
			
		||||
						   .find('.attributes-body input, .attributes-body select')
 | 
			
		||||
						   .attr({'disabled': 'disabled'})
 | 
			
		||||
						   .end('.attributes')
 | 
			
		||||
						   .find('.btn-group .btn')
 | 
			
		||||
						   .addClass('disabled')
 | 
			
		||||
						   .end().find('.attribute_field_disabled').attr('value', 'true')
 | 
			
		||||
						   .end().find('.field-type .control-group').fadeOut(300, function() {
 | 
			
		||||
						    	$(this).parent('.field-type').removeClass('in');
 | 
			
		||||
						   });
 | 
			
		||||
				}
 | 
			
		||||
				$(this).toggleClass('disable');
 | 
			
		||||
			};
 | 
			
		||||
			if($(this).hasClass('delete')) {
 | 
			
		||||
				$(this).closest('.attributes').fadeOut(300, function() {
 | 
			
		||||
					$('.attributes:not(:hidden)').each(function(i) {
 | 
			
		||||
						$(this).find('.attributes-header h4 span').text(i+1);
 | 
			
		||||
					});
 | 
			
		||||
					attributesHeaderLength = $('.attributes:not(:hidden)').length+1;
 | 
			
		||||
					if(!$('.attributes:not(:hidden)').length) {
 | 
			
		||||
						$('#attributes-area').addClass('clickHere');
 | 
			
		||||
					};
 | 
			
		||||
				}).find('.attribute_field_to_delete').attr('value', 'true');;
 | 
			
		||||
			};
 | 
			
		||||
			if($(this).hasClass('trigger')) {
 | 
			
		||||
				// appendIndex = $(this).closest('.controls').find('.input-append').length;
 | 
			
		||||
				appendIndex = $(this).closest('.controls').find('.input-append:last-child').children('input:first-child').attr('name');
 | 
			
		||||
				// appendIndex = appendIndex.split("][");
 | 
			
		||||
				// appendIndex = parseInt(appendIndex[appendIndex.length-2])+1;
 | 
			
		||||
				appendIndex = parseInt(appendIndex.match(/[^[\D\]]+(?=])/g)[1])+1;
 | 
			
		||||
				console.log(appendIndex)
 | 
			
		||||
				attributeIndex = $(this).closest('.attributes').index();
 | 
			
		||||
				templateType = $(this).closest('.attributes').find('.dataType').children("option:selected").attr('ref');
 | 
			
		||||
				$("#template-input-append").tmpl(setData(attributeIndex, templateType, appendIndex)).appendTo($(this).closest('.controls').find('.add-target'));
 | 
			
		||||
				inputAppendLength();
 | 
			
		||||
			};
 | 
			
		||||
			if($(this).hasClass('remove-input')) {
 | 
			
		||||
				$(this).parent('.input-append').fadeOut(300, function() {
 | 
			
		||||
					$(this).remove()
 | 
			
		||||
					inputAppendLength();
 | 
			
		||||
				});
 | 
			
		||||
 | 
			
		||||
			}
 | 
			
		||||
			event.preventDefault();
 | 
			
		||||
		});
 | 
			
		||||
		$('#attributes-area').delegate('.dataType', 'change', function() {
 | 
			
		||||
	        $(this).children("option:selected").each(function () {
 | 
			
		||||
	        	var target = $(this).closest('.attributes').find('.field-type').not('.default');
 | 
			
		||||
	    		attributeIndex = $(this).closest('.attributes').index();
 | 
			
		||||
	        	appendIndex = 0
 | 
			
		||||
	        	// $(this).closest('.attributes').find('.add-target').find('.input-append').length;
 | 
			
		||||
	        	if($(this).closest('.attributes').hasClass('default')){
 | 
			
		||||
	        		var i = $(this).closest('.attributes').index()
 | 
			
		||||
	        		if($(this).attr('ref') == attributesArray[i].select.name) {
 | 
			
		||||
	        			$(this).closest('.attributes').find('.field-type.default').show()
 | 
			
		||||
	        			target.empty().hide();
 | 
			
		||||
	        		} else {
 | 
			
		||||
	        			$(this).closest('.attributes').find('.field-type.default').hide()
 | 
			
		||||
			        	if($(this).attr('ref')) {
 | 
			
		||||
			        		templateType = $(this).attr('ref');
 | 
			
		||||
				        	target.removeAttr('class').addClass('field-type fade in ' + templateType).empty();
 | 
			
		||||
				        	$("#template-type").tmpl(setData(attributeIndex, templateType, appendIndex)).appendTo(target);
 | 
			
		||||
				        	if(templateType == 'typeB' || templateType == 'typeE' || templateType == 'typeF') {
 | 
			
		||||
				        		inputAppendLength();
 | 
			
		||||
				        	}
 | 
			
		||||
			        	} else {
 | 
			
		||||
			        		target.removeAttr('class').addClass('field-type fade')
 | 
			
		||||
			        		target.empty();
 | 
			
		||||
			        	};
 | 
			
		||||
			        	target.show();
 | 
			
		||||
	        		}
 | 
			
		||||
	        	} else {
 | 
			
		||||
		        	if($(this).attr('ref')) {
 | 
			
		||||
		        		templateType = $(this).attr('ref');
 | 
			
		||||
			        	target.removeAttr('class').addClass('field-type fade in ' + templateType).empty();
 | 
			
		||||
			        	$("#template-type").tmpl(setData(attributeIndex, templateType, appendIndex)).appendTo(target);
 | 
			
		||||
			        	if(templateType == 'typeB' || templateType == 'typeE' || templateType == 'typeF') {
 | 
			
		||||
			        		inputAppendLength();
 | 
			
		||||
			        	}
 | 
			
		||||
		        	} else {
 | 
			
		||||
		        		target.removeAttr('class').addClass('field-type fade')
 | 
			
		||||
		        		target.empty();
 | 
			
		||||
		        	};
 | 
			
		||||
	        	}
 | 
			
		||||
	        });
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
# Place all the behaviors and hooks related to the matching controller here.
 | 
			
		||||
# All this logic will automatically be available in application.js.
 | 
			
		||||
# You can use CoffeeScript in this file: http://coffeescript.org/
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,29 @@
 | 
			
		|||
$(function() {
 | 
			
		||||
 | 
			
		||||
  $('a[data-toggle="tab"]').click(function (e) {
 | 
			
		||||
    e.preventDefault();
 | 
			
		||||
    $(this).tab('show');
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  $.pageslide.closeCallback(function(pageslide, item) {
 | 
			
		||||
    $('.filter-item').removeClass("active");
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  $.pageslide.loadComplete(function(pageslide, item) {
 | 
			
		||||
    
 | 
			
		||||
    $('.filter-item').removeClass("active");
 | 
			
		||||
 | 
			
		||||
    item.closest('li').addClass('active');
 | 
			
		||||
    
 | 
			
		||||
    if(item.data('id') == 'new') {
 | 
			
		||||
      resetForm();
 | 
			
		||||
      pageslide.find('form:eq(0)').attr('action', window.location.pathname);
 | 
			
		||||
      pageslide.find('form:eq(0)').attr('method', 'post');
 | 
			
		||||
    }else {
 | 
			
		||||
      setForm(item.data('form'));
 | 
			
		||||
      pageslide.find('form:eq(0)').attr('action', window.location.pathname + '/' + item.data('id'));
 | 
			
		||||
      pageslide.find('form:eq(0)').attr('method', 'put');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  });
 | 
			
		||||
})
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
// Place all the styles related to the seminar controller here.
 | 
			
		||||
// They will automatically be included in application.css.
 | 
			
		||||
// You can use Sass (SCSS) here: http://sass-lang.com/
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
/*
 | 
			
		||||
  *= require lib/tags-groups
 | 
			
		||||
*/
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
class Admin::SeminarAgreementsController < OrbitAdminController
 | 
			
		||||
 | 
			
		||||
  def initialize
 | 
			
		||||
    super
 | 
			
		||||
    @app_title = 'seminar'
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def index
 | 
			
		||||
    @seminar_agreement = SeminarAgreement.first || SeminarAgreement.create
 | 
			
		||||
    @url = admin_seminar_agreement_path(@seminar_agreement)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def update
 | 
			
		||||
    @seminar_agreement = SeminarAgreement.first
 | 
			
		||||
    @seminar_agreement.update_attributes(params.require(:seminar_agreement).permit!)
 | 
			
		||||
    
 | 
			
		||||
    redirect_to admin_seminar_agreements_path, notice: t('seminar.save_success')
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,70 @@
 | 
			
		|||
# encoding: utf-8
 | 
			
		||||
class Admin::SeminarItemContentsController < OrbitAdminController
 | 
			
		||||
  
 | 
			
		||||
  before_action ->(module_app = @app_title) { set_variables module_app }
 | 
			
		||||
 | 
			
		||||
  def initialize
 | 
			
		||||
    super
 | 
			
		||||
    @app_title = "seminar"
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def index
 | 
			
		||||
 | 
			
		||||
    @seminar_item_contents = SeminarItemContent.where(:seminar_main_id => params[:seminar_main_id]).page(params[:page]).per(10)
 | 
			
		||||
    @seminar = SeminarMain.find(params[:seminar_main_id])
 | 
			
		||||
 | 
			
		||||
    @seminar_items = SeminarItem.where(:_id.nin=> SeminarItemContent.where(:seminar_main_id => params[:seminar_main_id]).collect{|t| t.seminar_item_id} ).collect{|a| [a.title,a.id]}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def new
 | 
			
		||||
 | 
			
		||||
    @contents = SeminarItemContent.where(:seminar_main_id => params[:seminar_main_id]).collect{|t| t.seminar_item_id}
 | 
			
		||||
    @seminar_item_content = SeminarItemContent.new
 | 
			
		||||
 | 
			
		||||
    @seminar_items = SeminarItem.where(:_id.nin=> @contents).collect{|a| [a.title,a.id]}
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def create
 | 
			
		||||
 | 
			
		||||
    seminar_item_content = SeminarItemContent.new(seminar_item_content_params)
 | 
			
		||||
 | 
			
		||||
    seminar_item_content.create_user_id = current_user.id
 | 
			
		||||
    seminar_item_content.update_user_id = current_user.id
 | 
			
		||||
 | 
			
		||||
    seminar_item_content.save
 | 
			
		||||
 | 
			
		||||
    redirect_to params['referer_url']+"?seminar_main_id="+seminar_item_content.seminar_main_id
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def edit
 | 
			
		||||
 | 
			
		||||
    @seminar_item_content = SeminarItemContent.find(params[:id])
 | 
			
		||||
    @seminar = SeminarMain.find(@seminar_item_content.seminar_main_id)
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def update
 | 
			
		||||
    
 | 
			
		||||
    @seminar_item_content = SeminarItemContent.find(params[:id])
 | 
			
		||||
    @seminar_item_content.update_attributes(seminar_item_content_params)
 | 
			
		||||
 | 
			
		||||
    redirect_to "/admin/seminar_item_contents?seminar_main_id="+@seminar_item_content.seminar_main_id
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def destroy
 | 
			
		||||
    @seminar_item_content = SeminarItemContent.find(params[:id])
 | 
			
		||||
 | 
			
		||||
    @seminar_item_content.destroy
 | 
			
		||||
 | 
			
		||||
    redirect_to "/admin/seminar_item_contents?seminar_main_id="+@seminar_item_content.seminar_main_id
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def seminar_item_content_params
 | 
			
		||||
    params.require(:seminar_item_content).permit!
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,52 @@
 | 
			
		|||
class Admin::SeminarItemsController < OrbitAdminController
 | 
			
		||||
 | 
			
		||||
  def initialize
 | 
			
		||||
    super
 | 
			
		||||
    @app_title = 'seminar'
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def index
 | 
			
		||||
    @seminar_items = SeminarItem.all
 | 
			
		||||
    @url = admin_seminar_item_path(@seminar_items)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def create
 | 
			
		||||
    @seminar_item = SeminarItem.new(seminar_item_params)
 | 
			
		||||
    @seminar_item.save
 | 
			
		||||
    redirect_to request.referer, :status => 303
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def create_in_form
 | 
			
		||||
    @seminar_item = SeminarItem.new(seminar_item_params)
 | 
			
		||||
    @seminar_item.saveseminar_item
 | 
			
		||||
    render :json => {:id=>@seminar_item.id.to_s, :title=>@seminar_item.title}.to_json ,:layout => false
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def update
 | 
			
		||||
    @seminar_item = SeminarItem.find(params[:id])
 | 
			
		||||
    @seminar_item.update_attributes(seminar_item_params)
 | 
			
		||||
    redirect_to request.referer, :status => 303
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def toggle
 | 
			
		||||
    @seminar_item = SeminarItem.find(params[:id])
 | 
			
		||||
    @seminar_item.save!
 | 
			
		||||
    redirect_to request.referer, :status => 303
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def delete_items
 | 
			
		||||
    items = SeminarItem.find(params[:ids].split(',')) rescue nil
 | 
			
		||||
    if items
 | 
			
		||||
      items.each(&:destroy)
 | 
			
		||||
    end
 | 
			
		||||
    redirect_to request.referer, :status => 303
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def seminar_item_params
 | 
			
		||||
    params.require(:seminar_item).permit!
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,53 @@
 | 
			
		|||
# encoding: utf-8
 | 
			
		||||
class Admin::SeminarSignupsController < OrbitAdminController
 | 
			
		||||
  include Admin::SeminarsHelper
 | 
			
		||||
  before_action ->(module_app = @app_title) { set_variables module_app }
 | 
			
		||||
 | 
			
		||||
  def initialize
 | 
			
		||||
    super
 | 
			
		||||
    @app_title = "seminar"
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def edit
 | 
			
		||||
 | 
			
		||||
    params[:controller] = "admin/seminars"
 | 
			
		||||
 | 
			
		||||
    @seminar_signup = SeminarSignup.find(params[:id])
 | 
			
		||||
    @seminar = SeminarMain.find(@seminar_signup.seminar_main_id)
 | 
			
		||||
 | 
			
		||||
    @form_index = 0 
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def update
 | 
			
		||||
    
 | 
			
		||||
    @seminar_signup = SeminarSignup.find(params[:id])
 | 
			
		||||
    @seminar_signup.update_attributes(seminar_signup_params)
 | 
			
		||||
 | 
			
		||||
    if !params[:seminar_signup_values].nil?
 | 
			
		||||
      params[:seminar_signup_values].each_with_index do |r,i|
 | 
			
		||||
        field_value = r.last[:id].present?
 | 
			
		||||
        @custom_field_value = SeminarSignupValue.put_field_values(@seminar_signup, r.last, r.last[:id], field_value)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    redirect_to "/admin/seminars/#{@seminar_signup.seminar_main_id}/seminar_signup"
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def destroy
 | 
			
		||||
    @seminar_signup = SeminarSignup.find(params[:id])
 | 
			
		||||
 | 
			
		||||
    @seminar_main_id = @seminar_signup.seminar_main_id
 | 
			
		||||
 | 
			
		||||
    @seminar_signup.destroy
 | 
			
		||||
 | 
			
		||||
    redirect_to "/admin/seminars/#{@seminar_main_id}/seminar_signup"
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def seminar_signup_params
 | 
			
		||||
    params.require(:seminar_signup).permit!
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,194 @@
 | 
			
		|||
# encoding: utf-8
 | 
			
		||||
class Admin::SeminarsController < OrbitAdminController
 | 
			
		||||
 | 
			
		||||
  require 'axlsx'
 | 
			
		||||
 | 
			
		||||
  before_action ->(module_app = @app_title) { set_variables module_app }
 | 
			
		||||
  before_action :set_seminar, only: [:edit, :set_write_off, :seminar_signup, :destroy]
 | 
			
		||||
 | 
			
		||||
  def initialize
 | 
			
		||||
    super
 | 
			
		||||
    @app_title = "seminar"
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def filter_fields(categories)
 | 
			
		||||
    {
 | 
			
		||||
      :category=>categories.map{|c| {:title=>(c.title.blank? ? " " : c.title), :id=>c.id}}
 | 
			
		||||
    }
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def index
 | 
			
		||||
    @categories = @module_app.categories.enabled
 | 
			
		||||
    @filter_fields = filter_fields(@categories)
 | 
			
		||||
    @table_fields = [:category, 'seminar.title', 'seminar.event_during', 'seminar.signup_during', 'seminar.signup_count', 'seminar.export']
 | 
			
		||||
 | 
			
		||||
    if !params[:sort].blank? 
 | 
			
		||||
      if params[:sort] == 'event_during'
 | 
			
		||||
        sort = {:seminar_start_date.to_sym=>params[:order]} 
 | 
			
		||||
      elsif params[:sort] == 'signup_during'
 | 
			
		||||
        sort = {:signup_start_date.to_sym=>params[:order]} 
 | 
			
		||||
      else
 | 
			
		||||
        sort = {params[:sort].to_sym=>params[:order]} 
 | 
			
		||||
      end
 | 
			
		||||
    else
 | 
			
		||||
     sort = {:signup_start_date=>"desc"}
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    @seminars = SeminarMain.all.order_by(sort).with_categories(filters("category"))
 | 
			
		||||
 | 
			
		||||
    @seminars = search_data(@seminars,[:title]).page(params[:page]).per(10)
 | 
			
		||||
    
 | 
			
		||||
    if request.xhr?
 | 
			
		||||
      render :partial => "index"
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def export
 | 
			
		||||
 | 
			
		||||
    @seminar = SeminarMain.find(params[:id])
 | 
			
		||||
    @seminar_signups = SeminarSignup.where(:seminar_main_id => params[:id])
 | 
			
		||||
 | 
			
		||||
    respond_to do |format|
 | 
			
		||||
      format.xlsx {
 | 
			
		||||
        response.headers['Content-Disposition'] = 'attachment; filename="export.xlsx"'
 | 
			
		||||
      }
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def new
 | 
			
		||||
 | 
			
		||||
    @seminar = SeminarMain.new
 | 
			
		||||
 | 
			
		||||
    @seminar_items = SeminarItem.all
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def create
 | 
			
		||||
    
 | 
			
		||||
    if !seminar_params['seminar_links_attributes'].nil?
 | 
			
		||||
      seminar_params['seminar_links_attributes'].each do |idx,link|
 | 
			
		||||
        seminar_params['seminar_links_attributes'].delete(idx.to_s) if link['url'].blank?
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    seminar = SeminarMain.new(seminar_params)
 | 
			
		||||
 | 
			
		||||
    seminar.create_user_id = current_user.id
 | 
			
		||||
    seminar.update_user_id = current_user.id
 | 
			
		||||
 | 
			
		||||
    seminar.save
 | 
			
		||||
 | 
			
		||||
    redirect_to params['referer_url']
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def edit
 | 
			
		||||
 | 
			
		||||
    @seminar_items = SeminarItem.all
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def update
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    params[:seminar_main][:registration_status] = (params[:seminar_main][:registration_status] ? params[:seminar_main][:registration_status] : [])
 | 
			
		||||
    
 | 
			
		||||
    uid = params[:id].split('-').last
 | 
			
		||||
    @seminar = SeminarMain.find_by(:uid=>uid)
 | 
			
		||||
 | 
			
		||||
    if params[:seminar_main][:seminar_signup_fields]
 | 
			
		||||
      seminar_params[:seminar_signup_fields].each do |a|
 | 
			
		||||
        @field_name = 'seminar_main'
 | 
			
		||||
        field_status = a.last[:id].present?
 | 
			
		||||
        @attribute_field = SeminarSignupField.add_seminar_signup_field(@seminar, a.last, a.last[:id], field_status)
 | 
			
		||||
        @attribute = @seminar
 | 
			
		||||
      end
 | 
			
		||||
      flash.now[:notice] = "Updated Fields"
 | 
			
		||||
      @seminar.seminar_signup_fields.each{|t| t.destroy if t["to_delete"] == true}
 | 
			
		||||
 | 
			
		||||
      redirect_to admin_seminars_path
 | 
			
		||||
 | 
			
		||||
    else
 | 
			
		||||
 | 
			
		||||
      if !seminar_params['seminar_links_attributes'].nil?
 | 
			
		||||
        seminar_params['seminar_links_attributes'].each do |idx,link|
 | 
			
		||||
          seminar_params['seminar_links_attributes'].delete(idx.to_s) if link['url'].blank?
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
      
 | 
			
		||||
      @seminar.update_user_id = current_user.id
 | 
			
		||||
 | 
			
		||||
      if @seminar.update_attributes(seminar_params)
 | 
			
		||||
        @seminar.seminar_signup_fields.each{|t| t.destroy if t["to_delete"] == true}
 | 
			
		||||
        redirect_to params['referer_url']
 | 
			
		||||
      else
 | 
			
		||||
        flash.now[:error] = t('update.error.category')
 | 
			
		||||
        render action: :edit
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
  def set_write_off
 | 
			
		||||
 | 
			
		||||
    @seminar.donation_write_off_status = true
 | 
			
		||||
    @seminar.save
 | 
			
		||||
 | 
			
		||||
    redirect_to "/admin/seminars?page=#{params['page']}"
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def destroy
 | 
			
		||||
 | 
			
		||||
    @seminar.destroy
 | 
			
		||||
    redirect_to "/admin/seminars"
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def seminar_signup_field
 | 
			
		||||
    @field_name = 'seminar_main'
 | 
			
		||||
    @attribute = SeminarMain.find(params[:id]) 
 | 
			
		||||
    @attribute_type = 'seminar'
 | 
			
		||||
    @class = 'seminars'
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def seminar_signup
 | 
			
		||||
 | 
			
		||||
    if !params[:search].blank?
 | 
			
		||||
      @seminar_signups = SeminarSignup.where(:seminar_main_id => @seminar.id, :name=>params[:search]).page(params[:page]).per(10)
 | 
			
		||||
    else
 | 
			
		||||
      @seminar_signups = SeminarSignup.where(:seminar_main_id => @seminar.id).page(params[:page]).per(10)
 | 
			
		||||
    end
 | 
			
		||||
    
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def edit_seminar_signup
 | 
			
		||||
    @seminar_signup = SeminarSignup.find(params[:id])
 | 
			
		||||
    @seminar = SeminarMain.find(@seminar_signup.seminar_main_id)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def delete_seminar_signup
 | 
			
		||||
    
 | 
			
		||||
    @seminar_signup = SeminarSignup.find(params[:id])
 | 
			
		||||
 | 
			
		||||
    @seminar_id = @seminar_signup.seminar_main_id
 | 
			
		||||
 | 
			
		||||
    @seminar_signup.destroy
 | 
			
		||||
 | 
			
		||||
    redirect_to "/admin/seminars/@seminar_id.to_s/seminar_signup"
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def set_seminar
 | 
			
		||||
    @seminar = SeminarMain.find(params[:id])
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def seminar_params
 | 
			
		||||
    params.require(:seminar_main).permit!
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,317 @@
 | 
			
		|||
class SeminarsController < ApplicationController
 | 
			
		||||
	
 | 
			
		||||
  helper MemberHelper
 | 
			
		||||
  include Admin::SeminarsHelper
 | 
			
		||||
 | 
			
		||||
  def index
 | 
			
		||||
 | 
			
		||||
  	time_now = Time.now
 | 
			
		||||
 | 
			
		||||
    seminars = SeminarMain.filter_by_categories.desc(:signup_start_date).page(OrbitHelper.params[:page_no]).per(OrbitHelper.page_data_count)
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
      "seminars" => seminars,
 | 
			
		||||
      'time_now' => time_now,
 | 
			
		||||
      "total_pages" => seminars.total_pages
 | 
			
		||||
    } 
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def show_privacy
 | 
			
		||||
 | 
			
		||||
    params = OrbitHelper.params
 | 
			
		||||
 | 
			
		||||
    seminar = SeminarMain.find_by(uid: params[:uid])
 | 
			
		||||
 | 
			
		||||
    seminar_agreement = SeminarAgreement.first
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
      'seminar' => seminar,
 | 
			
		||||
      "seminar_agreement" => seminar_agreement
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def show_data
 | 
			
		||||
 | 
			
		||||
  	time_now = Time.now
 | 
			
		||||
 | 
			
		||||
    session = OrbitHelper.get_session
 | 
			
		||||
 | 
			
		||||
    params = OrbitHelper.params
 | 
			
		||||
 | 
			
		||||
    seminar = SeminarMain.find_by(uid: params[:uid])
 | 
			
		||||
 | 
			
		||||
    if !seminar.registration_status.blank? and seminar.signup_start_date <= time_now and ( seminar.signup_end_date.nil? or  seminar.signup_end_date+1 >= time_now )
 | 
			
		||||
      sign_up = ('<a href="'+ OrbitHelper.url_to_show(seminar.to_param) + '" target="_blank">' + t('seminar.signup') + '</a>').html_safe
 | 
			
		||||
    elsif seminar.registration_status.blank?
 | 
			
		||||
      sign_up = t('seminar.sign_up_not_open')
 | 
			
		||||
    elsif seminar.signup_start_date > time_now
 | 
			
		||||
      sign_up = t('seminar.sign_up_not_yet')
 | 
			
		||||
    else
 | 
			
		||||
      sign_up = t('seminar.sign_up_overdue')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    if !seminar.registration_status.blank? and seminar.registration_status.include?('C') and seminar.contribute_start_date <= time_now and ( seminar.contribute_end_date.nil? or seminar.contribute_end_date+1 >= time_now )
 | 
			
		||||
      if !session[:seminar_signup_id].blank? 
 | 
			
		||||
        if session[:seminar_main_id] == seminar.id
 | 
			
		||||
          contribute_action = ('<a href="'+ OrbitHelper.url_to_show(seminar.to_param) + '?method=con_upload">' + t('seminar_signup.uploads') + '</a>').html_safe
 | 
			
		||||
        else
 | 
			
		||||
          contribute_action = ('<a href="'+ OrbitHelper.url_to_show(seminar.to_param) + '?method=con_login">' + t('seminar_signup.con_login') + '</a>').html_safe
 | 
			
		||||
        end
 | 
			
		||||
      else
 | 
			
		||||
        contribute_action = ('<a href="'+ OrbitHelper.url_to_show(seminar.to_param) + '?method=con_login">' + t('seminar_signup.con_login') + '</a>').html_safe
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
      'seminar' => seminar,
 | 
			
		||||
      'sign_up' => sign_up,
 | 
			
		||||
      'contribute_action' => contribute_action,
 | 
			
		||||
      'time_now' => time_now,
 | 
			
		||||
      'contribute_time_range' => SeminarMain.time_range(seminar.contribute_start_date, seminar.contribute_end_date),
 | 
			
		||||
      'sign_up_time_range' => SeminarMain.time_range(seminar.signup_start_date, seminar.signup_end_date),
 | 
			
		||||
      'seminar_time_range' => SeminarMain.time_range(seminar.seminar_start_date, seminar.seminar_end_date)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def show
 | 
			
		||||
 | 
			
		||||
    params = OrbitHelper.params
 | 
			
		||||
 | 
			
		||||
    module_app = ModuleApp.where(:key => "seminar").first
 | 
			
		||||
 | 
			
		||||
    categories = module_app.categories
 | 
			
		||||
 | 
			
		||||
    seminar = SeminarMain.find_by(uid: params[:uid])
 | 
			
		||||
 | 
			
		||||
    seminar_signup = SeminarSignup.new
 | 
			
		||||
 | 
			
		||||
  	time_now = Time.now
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
      "seminar" => seminar,
 | 
			
		||||
      "seminar_signup" => seminar_signup,
 | 
			
		||||
      "time_now" => time_now
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def check_email
 | 
			
		||||
 | 
			
		||||
    params = OrbitHelper.params
 | 
			
		||||
 | 
			
		||||
    if !params[:email].blank? 
 | 
			
		||||
      count = SeminarSignup.where(:email => params[:email], :seminar_main_id => params[:no]).count
 | 
			
		||||
 | 
			
		||||
      result = count > 0 ? '已存在' : '可使用'
 | 
			
		||||
    else
 | 
			
		||||
      result = '請輸入email'
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
      "result" => result
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def check_availability
 | 
			
		||||
 | 
			
		||||
    params = OrbitHelper.params
 | 
			
		||||
 | 
			
		||||
    response = {}
 | 
			
		||||
    case params[:type]
 | 
			
		||||
    when "seminar_signup_email"
 | 
			
		||||
 | 
			
		||||
      response["success"] = SeminarSignup.where(:email => params[:value], :seminar_main_id => params[:no]).count > 0 ? false : true
 | 
			
		||||
    end
 | 
			
		||||
    render :json => response.to_json
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def create
 | 
			
		||||
    
 | 
			
		||||
    @signup = SeminarSignup.where(email: params[:seminar_signup][:email], seminar_main_id: params[:seminar_signup][:seminar_main_id] ).first
 | 
			
		||||
 | 
			
		||||
    @seminar_signup = SeminarSignup.new(seminar_signup_params)
 | 
			
		||||
 | 
			
		||||
    if @signup.blank? && @seminar_signup.save
 | 
			
		||||
    # if gotcha_valid? && @seminar_signup.save
 | 
			
		||||
 | 
			
		||||
      if !params[:seminar_signup_values].nil?
 | 
			
		||||
        params[:seminar_signup_values].each_with_index do |r,i|
 | 
			
		||||
          field_value = r.last[:id].present?
 | 
			
		||||
          @custom_field_value = SeminarSignupValue.put_field_values(@seminar_signup, r.last, r.last[:seminar_signup_field_id], field_value)
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      redirect_to "#{params[:referer_url]}/?method=signup_ok"
 | 
			
		||||
    else
 | 
			
		||||
      if !@signup.blank?
 | 
			
		||||
       redirect_to "#{params[:referer_url]}", :notice => 'mail已存在'
 | 
			
		||||
      else
 | 
			
		||||
       redirect_to "#{params[:referer_url]}", :notice => t('recaptcha.errors.verification_failed')
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def signup_ok
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def add_file_proc
 | 
			
		||||
 | 
			
		||||
    @con = SeminarSignupContribute.new(seminar_signup_contribute_params)
 | 
			
		||||
 | 
			
		||||
    if @con.save
 | 
			
		||||
 | 
			
		||||
      redirect_to "#{params[:referer_url]}/?method=con_upload"
 | 
			
		||||
    else
 | 
			
		||||
      redirect_to "#{params[:referer_url]}", :notice => t('recaptcha.errors.verification_failed')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def update
 | 
			
		||||
 | 
			
		||||
    @con = SeminarSignupContribute.find(params[:seminar_signup_contribute][:id])
 | 
			
		||||
    @con.update_attributes(seminar_signup_contribute_params)
 | 
			
		||||
 | 
			
		||||
    if @con.save
 | 
			
		||||
 | 
			
		||||
      redirect_to "#{params[:referer_url]}/?method=con_upload"
 | 
			
		||||
    else
 | 
			
		||||
      redirect_to "#{params[:referer_url]}", :notice => t('recaptcha.errors.verification_failed')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def del_file
 | 
			
		||||
 | 
			
		||||
    con = SeminarSignupContribute.find(params[:con_no])
 | 
			
		||||
 | 
			
		||||
    # seminar_signup = SeminarSignup.find_by(_id: con.seminar_signup_id )
 | 
			
		||||
    # seminar = SeminarMain.find_by(_id: seminar_signup.seminar_main_id )
 | 
			
		||||
 | 
			
		||||
    con.destroy
 | 
			
		||||
 | 
			
		||||
    redirect_to "#{params[:referer_url]}/?method=con_upload"
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def add_file
 | 
			
		||||
 | 
			
		||||
    session = OrbitHelper.get_session
 | 
			
		||||
 | 
			
		||||
    if !session[:seminar_main_id].blank?
 | 
			
		||||
 | 
			
		||||
      seminar = SeminarMain.find_by(id: session[:seminar_main_id])
 | 
			
		||||
 | 
			
		||||
      seminar_signup = SeminarSignup.find_by(_id: session[:seminar_signup_id], seminar_main_id: session[:seminar_main_id] )
 | 
			
		||||
 | 
			
		||||
    else
 | 
			
		||||
 | 
			
		||||
      seminar = {}
 | 
			
		||||
      seminar_signup = {}
 | 
			
		||||
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    con = SeminarSignupContribute.new
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
      'con' => con,
 | 
			
		||||
      'seminar' => seminar,
 | 
			
		||||
      'seminar_signup' => seminar_signup
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def edit_file
 | 
			
		||||
 | 
			
		||||
    params = OrbitHelper.params
 | 
			
		||||
 | 
			
		||||
    con = SeminarSignupContribute.find(params[:con_no])
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
      'con' => con
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def con_upload
 | 
			
		||||
 | 
			
		||||
    time_now = Time.now
 | 
			
		||||
 | 
			
		||||
    session = OrbitHelper.get_session
 | 
			
		||||
 | 
			
		||||
    if !session[:seminar_main_id].blank?
 | 
			
		||||
 | 
			
		||||
      seminar = SeminarMain.find_by(id: session[:seminar_main_id])
 | 
			
		||||
 | 
			
		||||
      seminar_signup = SeminarSignup.find_by(_id: session[:seminar_signup_id], seminar_main_id: session[:seminar_main_id] )
 | 
			
		||||
 | 
			
		||||
    else
 | 
			
		||||
 | 
			
		||||
      seminar = {}
 | 
			
		||||
      seminar_signup = {}
 | 
			
		||||
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
      'time_now' => time_now,
 | 
			
		||||
      'seminar' => seminar,
 | 
			
		||||
      'seminar_signup' => seminar_signup
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def con_logout
 | 
			
		||||
 | 
			
		||||
    # redirect_to page_for_seminar_url
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def con_login
 | 
			
		||||
 | 
			
		||||
    time_now = Time.now
 | 
			
		||||
 | 
			
		||||
    params = OrbitHelper.params
 | 
			
		||||
 | 
			
		||||
    seminar = SeminarMain.find_by(uid: params[:uid])
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
      'seminar' => seminar,
 | 
			
		||||
      'time_now' => time_now
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def con_login_proc
 | 
			
		||||
 | 
			
		||||
    seminar = SeminarMain.find_by(id: params[:seminar_signup][:seminar_main_id])
 | 
			
		||||
 | 
			
		||||
    @seminar_signup = SeminarSignup.where(:status=>'C', :email=> params[:user_name], :password => params[:password], :seminar_main_id => params[:seminar_signup][:seminar_main_id]).first
 | 
			
		||||
 | 
			
		||||
    if !@seminar_signup.blank?
 | 
			
		||||
 | 
			
		||||
      session[:seminar_signup_id] = @seminar_signup.id
 | 
			
		||||
      session[:seminar_main_id] = @seminar_signup.seminar_main_id
 | 
			
		||||
 | 
			
		||||
      redirect_to "#{params[:referer_url]}/?method=con_upload"
 | 
			
		||||
    else
 | 
			
		||||
      redirect_to "#{params[:referer_url]}/?method=con_login", :notice => '登入失敗'
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def seminar_signup_params
 | 
			
		||||
    params.require(:seminar_signup).permit!
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def seminar_signup_contribute_params
 | 
			
		||||
    params.require(:seminar_signup_contribute).permit!
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,451 @@
 | 
			
		|||
module Admin::SeminarsFieldHelper
 | 
			
		||||
 | 
			
		||||
  include ActionView::Helpers::FormTagHelper
 | 
			
		||||
  include ActionView::Helpers::FormOptionsHelper
 | 
			
		||||
  include ActionView::Helpers::DateHelper
 | 
			
		||||
  include ActionView::Helpers::TagHelper
 | 
			
		||||
  include ActionView::Helpers::RenderingHelper
 | 
			
		||||
  include ActionView::Context
 | 
			
		||||
  include OrbitBasis::RenderAnywhere
 | 
			
		||||
 | 
			
		||||
  include OrbitFormHelper
 | 
			
		||||
 | 
			
		||||
  def block_helper(member,index,disable = false,attribute_type=nil,signup=nil, to_require=true)
 | 
			
		||||
    unless self.disabled
 | 
			
		||||
      @index = index
 | 
			
		||||
      @require = to_require
 | 
			
		||||
      @markup_options = markup_options.merge(:disabled=>disable, :required => to_require)
 | 
			
		||||
      @member = member
 | 
			
		||||
      @attribute_value = @member.get_value_from_field_id(id,signup)
 | 
			
		||||
      @attribute_type = attribute_type
 | 
			
		||||
      @new_attribute = @attribute_value.nil?
 | 
			
		||||
      @attribute_value = @attribute_value || signup.seminar_signup_values.build(seminar_signup_field_id: id)
 | 
			
		||||
      @prefiled_value = @attribute_value.value rescue nil
 | 
			
		||||
      return instance_eval("render_#{markup}") rescue ""
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def lang_tab(str,lang)
 | 
			
		||||
      content_tag(:div,str,:class=>"tab-pane fade",:id=>(get_field_name_base+"tab_#{lang}"))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def render_address
 | 
			
		||||
    control_group_wrapper do |key,value|
 | 
			
		||||
      value = (can_muti_lang_input? ?  @prefiled_value[key] : @prefiled_value) rescue nil
 | 
			
		||||
      key_field = can_muti_lang_input? ? "[#{key}]" : ""
 | 
			
		||||
      place_holder= @panel_setting["placeholder"][key] rescue ''
 | 
			
		||||
      # result = text_area_tag(get_field_name_base + key_field,  value,@markup_options.merge({:placeholder=>place_holder,:for=>key}))
 | 
			
		||||
      result = text_field_tag(get_field_name_base + key_field,  value,@markup_options.merge({:placeholder=>place_holder,:for=>key}))
 | 
			
		||||
 | 
			
		||||
      add_ext= @attribute_value.address_key[key] rescue {}
 | 
			
		||||
 | 
			
		||||
      result << hidden_field_tag(get_basic_field_name_base+"[address_key][#{key}][county]",add_ext["county"],:class=>"county_#{key}")
 | 
			
		||||
      result << hidden_field_tag(get_basic_field_name_base+"[address_key][#{key}][street_address]",add_ext["street_address"],:class=>"street_address_#{key}")
 | 
			
		||||
      result << hidden_field_tag(get_basic_field_name_base+"[address_key][#{key}][city]",add_ext["city"],:class=>"city_#{key}")
 | 
			
		||||
      result << hidden_field_tag(get_basic_field_name_base+"[address_key][#{key}][zip]",add_ext["zip"],:class=>"zip_#{key}")
 | 
			
		||||
      result << hidden_field_tag(get_basic_field_name_base+"[address_key][#{key}][country]",add_ext["country"],:class=>"country_#{key}")
 | 
			
		||||
      result << hidden_field_tag(get_basic_field_name_base+"[address_key][#{key}][indicator]",add_ext["indicator"],:class=>"indicator_#{key}")
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def render_checkbox
 | 
			
		||||
     @prefiled_value ||=[]
 | 
			
		||||
    control_group_wrapper do 
 | 
			
		||||
      a = self.typeE[:option_list].collect do |key,value|
 | 
			
		||||
        label_tag(key,check_box_tag(get_field_name_base+"[#{key}]", true ,  (@prefiled_value.include?(key) ? true : false), { :id=>"seminar_signup_values_#{self.id}"})+value[I18n.locale.to_s],@markup_options.merge(:class=>"checkbox inline"))
 | 
			
		||||
      end.join rescue ""
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def render_date 
 | 
			
		||||
    d = DateTime.now()
 | 
			
		||||
 | 
			
		||||
    if date_is_range?
 | 
			
		||||
      # fill_from = @attribute_value.get_date(:from) rescue nil
 | 
			
		||||
      # fill_to = @attribute_value.get_date(:to) rescue nil
 | 
			
		||||
      control_group_wrapper do
 | 
			
		||||
 | 
			
		||||
      case self.typeC['format']
 | 
			
		||||
        when 'format1'
 | 
			
		||||
          fill_from = (@prefiled_value && @prefiled_value["from"] ) ? @prefiled_value["from"] : d.strftime("%Y/%m/%d %H:%M")
 | 
			
		||||
          fill_to = (@prefiled_value && @prefiled_value["to"] ) ? @prefiled_value["to"] : d.strftime("%Y/%m/%d %H:%M")
 | 
			
		||||
          buf = datetime_picker(get_field_name_base+'[from]', fill_from, 'yyyy/MM/dd hh:mm', true)
 | 
			
		||||
          buf << ' ~ '
 | 
			
		||||
          buf << datetime_picker(get_field_name_base+'[to]', fill_to, 'yyyy/MM/dd hh:mm', true)
 | 
			
		||||
        when 'format2'
 | 
			
		||||
          fill_from = (@prefiled_value && @prefiled_value["from"] ) ? @prefiled_value["from"] : d.strftime("%Y/%m/%d")
 | 
			
		||||
          fill_to = (@prefiled_value && @prefiled_value["to"] ) ? @prefiled_value["to"] : d.strftime("%Y/%m/%d")
 | 
			
		||||
          buf = datetime_picker(get_field_name_base+'[from]', fill_from, 'yyyy/MM/dd')
 | 
			
		||||
          buf << ' ~ '
 | 
			
		||||
          buf << datetime_picker(get_field_name_base+'[to]', fill_to, 'yyyy/MM/dd')
 | 
			
		||||
        when 'format3'
 | 
			
		||||
          fill_from = (@prefiled_value && @prefiled_value["from"] ) ? @prefiled_value["from"] : d.strftime("%Y/%m")
 | 
			
		||||
          fill_to = (@prefiled_value && @prefiled_value["to"] ) ? @prefiled_value["to"] : d.strftime("%Y/%m/")
 | 
			
		||||
          buf = datetime_picker(get_field_name_base+'[from]', fill_from, 'yyyy/MM')        
 | 
			
		||||
          buf << ' ~ '
 | 
			
		||||
          buf << datetime_picker(get_field_name_base+'[to]', fill_to, 'yyyy/MM')
 | 
			
		||||
        when 'format4'
 | 
			
		||||
          fill_from = (@prefiled_value && @prefiled_value["from"] ) ? @prefiled_value["from"] : d.strftime("%Y")
 | 
			
		||||
          fill_to = (@prefiled_value && @prefiled_value["to"] ) ? @prefiled_value["to"] : d.strftime("%Y")
 | 
			
		||||
          buf = datetime_picker(get_field_name_base+'[from]', fill_from, 'yyyy')  
 | 
			
		||||
          buf << ' ~ '
 | 
			
		||||
          buf << datetime_picker(get_field_name_base+'[to]', fill_to, 'yyyy')
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        # buf = date_select(get_field_name_base+'[from]',nil,@markup_options.merge(:default=>fill_from),:class=>"input-small")
 | 
			
		||||
        # buf << ' ~ '
 | 
			
		||||
        # buf << date_select(get_field_name_base+'[to]',nil,@markup_options.merge(:default=>fill_to),:class=>"input-small")
 | 
			
		||||
        buf
 | 
			
		||||
      end
 | 
			
		||||
    else
 | 
			
		||||
      # @prefiled_value = @attribute_value.get_date
 | 
			
		||||
      # @prefiled_value = @attribute_value.get_date
 | 
			
		||||
 | 
			
		||||
      case self.typeC['format']
 | 
			
		||||
        when 'format1'
 | 
			
		||||
          tmp = datetime_picker(get_field_name_base, (@prefiled_value ? @prefiled_value : d.strftime("%Y/%m/%d %H:%M")), 'yyyy/MM/dd hh:mm', true)
 | 
			
		||||
        when 'format2'
 | 
			
		||||
          tmp = datetime_picker(get_field_name_base, (@prefiled_value ? @prefiled_value : d.strftime("%Y/%m/%d")), 'yyyy/MM/dd')
 | 
			
		||||
        when 'format3'
 | 
			
		||||
          tmp = datetime_picker(get_field_name_base, (@prefiled_value ? @prefiled_value : d.strftime("%Y/%m")), 'yyyy/MM')        
 | 
			
		||||
        when 'format4'
 | 
			
		||||
          tmp = datetime_picker(get_field_name_base, (@prefiled_value ? @prefiled_value : d.strftime("%Y")), 'yyyy')  
 | 
			
		||||
        end
 | 
			
		||||
      
 | 
			
		||||
      control_group_wrapper{tmp} 
 | 
			
		||||
      # control_group_wrapper{date_select(get_field_name_base,nil,@markup_options.merge(:default=>@prefiled_value),:class=>"input-small")} 
 | 
			
		||||
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def seminar_datetime_picker(object_name, value, format, time=false)
 | 
			
		||||
    content_tag :div, :class => "input-append datetimepick", "data-date-format"=>format, "data-picktime"=>"#{time}" do
 | 
			
		||||
      concat text_field_tag(object_name, value, :placeholder=>format)
 | 
			
		||||
      concat (content_tag :span, :class => 'add-on clearDate' do
 | 
			
		||||
                content_tag :i, nil, :class => 'icons-cross-3'
 | 
			
		||||
              end)
 | 
			
		||||
      concat (content_tag :span, :class => 'add-on iconbtn' do
 | 
			
		||||
                content_tag :i, nil, 'data-time-icon' => 'icons-clock', 'data-date-icon' => 'icons-calendar', :class=>"icons-calendar"
 | 
			
		||||
              end)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def render_date_durnation #Need re-write low priority
 | 
			
		||||
    
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def render_radio_button
 | 
			
		||||
    @prefiled_value ||=[]
 | 
			
		||||
    control_group_wrapper do
 | 
			
		||||
      self.typeE[:option_list].collect do |key,value|
 | 
			
		||||
        label_tag(key,radio_button_tag(get_field_name_base, key ,  (@prefiled_value.include?(key) ? true : false), {:required=>@require})+value[I18n.locale.to_s],@markup_options.merge(:class=>"radio inline"))
 | 
			
		||||
      end.join 
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def render_select
 | 
			
		||||
    prompt = @panel_setting["initial"][I18n.locale.to_s] rescue nil
 | 
			
		||||
    @markup_options.merge!(:prompt => prompt) unless prompt.nil?
 | 
			
		||||
    control_group_wrapper{select_tag( get_field_name_base,options_for_select(self.typeB["option_list"].collect{|p| [p[1][I18n.locale.to_s],p[0]]},@prefiled_value),@markup_options)} rescue ""
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def render_text_area
 | 
			
		||||
     control_group_wrapper do |key,value|
 | 
			
		||||
      value = can_muti_lang_input? ?  @prefiled_value[key] : @prefiled_value
 | 
			
		||||
      key = can_muti_lang_input? ? "[#{key}]" : ""
 | 
			
		||||
      place_holder= @panel_setting["placeholder"][I18n.locale.to_s] rescue ''
 | 
			
		||||
      text_area_tag(get_field_name_base + key,  value,@markup_options.merge(:placeholder=>place_holder))
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def render_text_field
 | 
			
		||||
      a = control_group_wrapper do |key,value|
 | 
			
		||||
        add_more_blank = can_add_more ? "[]" : ""
 | 
			
		||||
        key_field = can_muti_lang_input? ? "[#{key}]" : ""
 | 
			
		||||
        place_holder= @panel_setting["placeholder"][key] rescue ''
 | 
			
		||||
        text_field_tag([get_field_name_base,add_more_blank,key_field].join,  value,@markup_options.merge(:placeholder=>place_holder))
 | 
			
		||||
      end  
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def date_is_range?
 | 
			
		||||
    is_range =  "false"
 | 
			
		||||
    data = get_data
 | 
			
		||||
    if !data.nil?
 | 
			
		||||
      is_range = data['is_range'] if data.has_key? "is_range"  
 | 
			
		||||
    end
 | 
			
		||||
    is_range == "true" 
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
protected
 | 
			
		||||
 | 
			
		||||
  def valid_locales
 | 
			
		||||
    site = Site.first
 | 
			
		||||
    [I18n.locale]+(site.valid_locales-[I18n.locale])
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def lang_panel_tabbable_wrapper(add_more_params,&block)
 | 
			
		||||
    add_more_counter = ''
 | 
			
		||||
 | 
			
		||||
    if self.markup=='text_area' #or self.markup=='address' 
 | 
			
		||||
 | 
			
		||||
      tmp1 = valid_locales.collect do |key|
 | 
			
		||||
        value = @prefiled_value[key]  rescue nil
 | 
			
		||||
        # div_class_ary = ["tab-pane" ,"fade","#{get_pairing_tab_class({})}_#{key}"]
 | 
			
		||||
        div_class_ary = ["tab-pane" ,"fade"]
 | 
			
		||||
 | 
			
		||||
        div_id = "#{get_pairing_tab_class({})}_#{key}"
 | 
			
		||||
 | 
			
		||||
        if can_add_more
 | 
			
		||||
          add_more_value = add_more_params[0][:value]
 | 
			
		||||
          add_more_counter = add_more_params[0][:counter]
 | 
			
		||||
          value = add_more_value[key] rescue nil
 | 
			
		||||
          div_class_ary << "add_more_item_#{add_more_counter}"
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        div_class = div_class_ary.join(" ")
 | 
			
		||||
        div_class << (key == I18n.locale ?  " active in" : '')
 | 
			
		||||
        content_tag(:div,yield(key,value), :id=>div_id,:class=>div_class)
 | 
			
		||||
      end# of VALID_LOCALES.collect for tabed input
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      tmp2 = content_tag(:div,:class => 'btn-group', :data=>{:toggle=>"buttons-radio"}) do 
 | 
			
		||||
        buff2 = valid_locales.each.collect do |key|
 | 
			
		||||
            # link_entry = self.add_more ? "#{add_more_tab(:tab_btn,loop_counter,key)}" : "#tab"+id.to_s+"_#{key}"
 | 
			
		||||
            link_entry_ary = ["##{get_pairing_tab_class({})}","_#{key}"]
 | 
			
		||||
            link_entry_ary << ".add_more_item_#{add_more_counter}" if can_add_more
 | 
			
		||||
            link_entry = link_entry_ary.join
 | 
			
		||||
            link_to(I18n.t(key),link_entry,:data=>{:toggle=>"tab"},:class=>"btn #{(key == I18n.locale ?  "active" : nil)}",:for=>key)
 | 
			
		||||
        end  # of VALID_LOCALES.collect for tabs
 | 
			
		||||
 | 
			
		||||
        buff2 << link_to((content_tag :i,'',:class=>'icon-edit'),"##{get_pairing_tab_class({})}_m_window", :role=>"button",:class=>'btn',:data=>{:toggle=>"modal"}) if self.markup == 'address'
 | 
			
		||||
        buff2 << link_to((content_tag :i,'',:class=>'icon-trash'),"#",:class=>"btn remove-input") if self.add_more
 | 
			
		||||
        buff2.join.html_safe
 | 
			
		||||
      end # of content ul
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
      tmp = content_tag :div,:class=> "tab-content textarea-lang" do
 | 
			
		||||
        tmp2 << tmp1.join('').html_safe
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
    else
 | 
			
		||||
 | 
			
		||||
      # tmp = content_tag :div,:class=> (add_more || self.markup=='address') ?  "input-append" : "tab-content" do
 | 
			
		||||
      tmp1 = 
 | 
			
		||||
        content_tag :div,:class=> "tab-content" do
 | 
			
		||||
 | 
			
		||||
          buff = valid_locales.collect do |key|
 | 
			
		||||
            value = @prefiled_value[key]  rescue nil
 | 
			
		||||
            # div_class_ary = ["tab-pane" ,"fade","#{get_pairing_tab_class({})}_#{key}"]
 | 
			
		||||
            div_class_ary = ["tab-pane" ,"fade"]
 | 
			
		||||
 | 
			
		||||
            div_id = "#{get_pairing_tab_class({})}_#{key}"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            if can_add_more
 | 
			
		||||
              add_more_value = add_more_params[0][:value]
 | 
			
		||||
              add_more_counter = add_more_params[0][:counter]
 | 
			
		||||
              value = add_more_value[key] rescue nil
 | 
			
		||||
              div_class_ary << "add_more_item_#{add_more_counter}"
 | 
			
		||||
            end
 | 
			
		||||
 | 
			
		||||
            div_class = div_class_ary.join(" ")
 | 
			
		||||
            div_class << (key == I18n.locale ?  " active in" : '')
 | 
			
		||||
            content_tag(:div,yield(key,value), :id=>div_id,:class=>div_class)
 | 
			
		||||
          end# of VALID_LOCALES.collect for tabed input
 | 
			
		||||
 | 
			
		||||
          buff.join('').html_safe
 | 
			
		||||
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
      tmp2 = content_tag(:div,:class => 'btn-group', :data=>{:toggle=>"buttons-radio"}) do 
 | 
			
		||||
        buff2 = valid_locales.each.collect do |key|
 | 
			
		||||
            # link_entry = self.add_more ? "#{add_more_tab(:tab_btn,loop_counter,key)}" : "#tab"+id.to_s+"_#{key}"
 | 
			
		||||
            link_entry_ary = ["##{get_pairing_tab_class({})}","_#{key}"]
 | 
			
		||||
            link_entry_ary << ".add_more_item_#{add_more_counter}" if can_add_more
 | 
			
		||||
            link_entry = link_entry_ary.join
 | 
			
		||||
            link_to(I18n.t(key),link_entry,:data=>{:toggle=>"tab"},:class=>"btn #{(key == I18n.locale ?  "active" : nil)}",:for=>key)
 | 
			
		||||
        end  # of VALID_LOCALES.collect for tabs
 | 
			
		||||
 | 
			
		||||
        buff2 << link_to((content_tag :i,'',:class=>'icon-edit'),"#address-field", :role=>"button",:class=>'btn',:data=>{:toggle=>"modal"}) if self.markup == 'address'
 | 
			
		||||
        buff2 << link_to((content_tag :i,'',:class=>'icon-trash'),"#",:class=>"btn remove-input") if self.add_more
 | 
			
		||||
        buff2.join.html_safe
 | 
			
		||||
      end # of content ul
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
      tmp = content_tag :div,:class=> "input-append" do
 | 
			
		||||
        tmp1 << tmp2
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  def controls_wrapper(*add_more_params,&block)
 | 
			
		||||
      result = ''
 | 
			
		||||
      add_more_counter = ""
 | 
			
		||||
 | 
			
		||||
      if can_add_more
 | 
			
		||||
        add_more_counter = add_more_params[0][:counter] 
 | 
			
		||||
        add_more_value = add_more_params[0][:value]  
 | 
			
		||||
      end
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    if can_muti_lang_input?
 | 
			
		||||
      result << lang_panel_tabbable_wrapper(add_more_params,&block)
 | 
			
		||||
      result << gen_modal_dialog if self.markup == "address"
 | 
			
		||||
 | 
			
		||||
      # result << add_more_unt if can_add_more
 | 
			
		||||
    else #cross lang field
 | 
			
		||||
      
 | 
			
		||||
      case can_add_more
 | 
			
		||||
       when true
 | 
			
		||||
         value = add_more_params[0][:value]  
 | 
			
		||||
         result << content_tag(:div,:class=>"input-append"){yield(nil,value) + link_to((content_tag :i,'',:class=>'icon-trash'),"#",:class=>"btn remove-input") }
 | 
			
		||||
         # result << add_more_unt
 | 
			
		||||
        else
 | 
			
		||||
         value = @prefiled_value
 | 
			
		||||
         result << yield(nil,value)
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
      result.html_safe
 | 
			
		||||
 | 
			
		||||
  end # of def controls_wrapper(&block)
 | 
			
		||||
 | 
			
		||||
  def control_group_wrapper(&block) 
 | 
			
		||||
    div_class = can_muti_lang_input? ? "col-sm-10 controls" : "col-sm-10 controls"
 | 
			
		||||
    # div_class = can_muti_lang_input? ? "control-group language-swich" : "control-group"
 | 
			
		||||
    result =""
 | 
			
		||||
 | 
			
		||||
    case self.markup
 | 
			
		||||
 | 
			
		||||
      when "text_field"
 | 
			
		||||
 | 
			
		||||
        if can_add_more
 | 
			
		||||
 | 
			
		||||
          multipleInputs  =  
 | 
			
		||||
            content_tag(:div,:class=>"add-target") do
 | 
			
		||||
              @attribute_value.add_more_counter.times.collect do |t|
 | 
			
		||||
               controls_wrapper(:value=>(@prefiled_value[t] rescue nil),:counter=>t,&block)
 | 
			
		||||
              end.join('').html_safe # of add_more fields
 | 
			
		||||
            end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
          temp =  content_tag(:div, multipleInputs + add_more_unt, :class=>'add-input')
 | 
			
		||||
          
 | 
			
		||||
          result = form_label + content_tag(:div,temp,:class=>div_class)  
 | 
			
		||||
 | 
			
		||||
          # result =  label +  multipleInputs + add_more_unt
 | 
			
		||||
          # result = label + 一堆的輸入框(要用 multipleInput editMore 包起來)  + add_more btn + hidden_fields
 | 
			
		||||
        else
 | 
			
		||||
          result = form_label + content_tag(:div,controls_wrapper(&block),:class=>div_class)  
 | 
			
		||||
          
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
      when "address"
 | 
			
		||||
 | 
			
		||||
        # address  = content_tag :div,:class=>"multipleInput editMore" do
 | 
			
		||||
        address  = content_tag :div,:class=>"col-sm-10" do
 | 
			
		||||
            form_label + content_tag(:div, controls_wrapper(&block), :class=>'add-input')
 | 
			
		||||
        end # of div  multipleInput editMore
 | 
			
		||||
 | 
			
		||||
        result =  address
 | 
			
		||||
 | 
			
		||||
    else
 | 
			
		||||
      result = form_label + content_tag(:div,controls_wrapper(&block),:class=>div_class)  
 | 
			
		||||
 | 
			
		||||
    end
 | 
			
		||||
    
 | 
			
		||||
    result << end_block
 | 
			
		||||
    result.html_safe
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  def add_more_unt    
 | 
			
		||||
    temp_field_name =  get_basic_field_name_base + '[temp]'
 | 
			
		||||
    add_more = content_tag :p,:class=> 'add-btn' do
 | 
			
		||||
        content = link_to (content_tag :i,I18n.t(:add),:class=>"icon-plus"),"#","data-roles"=>"role_a",:class=>"trigger #{can_muti_lang_input? ? 'textLengInput' : 'textInput' } btn btn-small btn-primary"
 | 
			
		||||
        content << hidden_field_tag("#{temp_field_name}[count]",@attribute_value.add_more_counter ,:class=>"list_count")
 | 
			
		||||
        content << hidden_field_tag("#{temp_field_name}[count]",get_basic_field_name_base,:class=>"field_name")
 | 
			
		||||
        content
 | 
			
		||||
    end # of div
 | 
			
		||||
    # add_more = content_tag :div,:class=> 'controls' do
 | 
			
		||||
    #   content_tag :span,:class=> 'help-block' do
 | 
			
		||||
    #     content = link_to (content_tag :i,I18n.t(:add),:class=>"icon-plus-sign"),"#",:class=>'addinput'
 | 
			
		||||
    #     content << hidden_field_tag("#{temp_field_name}[count]",@attribute_value.add_more_counter ,:class=>"list_count")
 | 
			
		||||
    #     content << hidden_field_tag("#{temp_field_name}[count]",get_basic_field_name_base,:class=>"field_name")
 | 
			
		||||
    #     content
 | 
			
		||||
    #   end # of span
 | 
			
		||||
    # end # of div
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def end_block
 | 
			
		||||
    if @new_attribute
 | 
			
		||||
      hidden_field_tag(get_basic_field_name_base+"[seminar_signup_field_id]",id,:for=>"field_#{@index}")
 | 
			
		||||
    else
 | 
			
		||||
      hidden_field_tag(get_basic_field_name_base+"[id]",@attribute_value.id,:for=>"field_#{@index}")
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def add_more_tab(mode,counter,key)
 | 
			
		||||
    case mode
 | 
			
		||||
    when :input_field
 | 
			
		||||
      get_pairing_tab_class(:suffix=>['','tab'+counter.to_s,key].join('-'))
 | 
			
		||||
    when :tab_btn
 | 
			
		||||
      ".#{get_pairing_tab_class(:suffix=>['','tab'+counter.to_s,key].join('-'))}"
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get_pairing_tab_class(opts)
 | 
			
		||||
    prefix = opts[:prefix]
 | 
			
		||||
    suffix = opts[:suffix]
 | 
			
		||||
    str = get_basic_field_name_base.gsub("[","_").gsub("]",'')
 | 
			
		||||
    str = prefix.nil? ? str : prefix+ str 
 | 
			
		||||
    suffix.nil? ? str : str + suffix
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get_basic_field_name_base
 | 
			
		||||
    "seminar_signup_values[#{@index}]"
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get_field_name_base
 | 
			
		||||
    get_basic_field_name_base + "[value]"
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def form_label
 | 
			
		||||
    label_tag(key,(!@require.blank? ? '*'+title : title),:class=>"col-sm-2 control-label muted")
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def can_muti_lang_input?
 | 
			
		||||
    if self.markup == "address"
 | 
			
		||||
      return true
 | 
			
		||||
    else
 | 
			
		||||
      LIST[:markups][markup]["muti_lang_input_supprt"] and !(get_data["cross_lang"] == "true")  
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def can_add_more
 | 
			
		||||
    if self.markup == "address"
 | 
			
		||||
      return false
 | 
			
		||||
    else
 | 
			
		||||
      add_more
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def gen_modal_dialog
 | 
			
		||||
    render_anywhere("shared/attribute_field/address_modal_dialog",{
 | 
			
		||||
        :field_name=>title,
 | 
			
		||||
        :html_id=>"address-field",
 | 
			
		||||
        :btn_class => "#{get_pairing_tab_class({})}",
 | 
			
		||||
        :field_name_basic => get_basic_field_name_base
 | 
			
		||||
          }
 | 
			
		||||
        )
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
module Admin::SeminarsHelper
 | 
			
		||||
  def page_for_seminar(seminar)
 | 
			
		||||
    ann_page = nil
 | 
			
		||||
    pages = Page.where(:module=>'seminar')
 | 
			
		||||
    
 | 
			
		||||
    pages.each do |page|
 | 
			
		||||
      if page.categories.count ==1
 | 
			
		||||
        if page.categories.include?(seminar.category.id.to_s)
 | 
			
		||||
          ann_page = page
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
      break if !ann_page.nil?
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    if ann_page.nil?
 | 
			
		||||
       pages.each do |page|
 | 
			
		||||
        if page.categories.include?(seminar.category.id.to_s)
 | 
			
		||||
          ann_page = page
 | 
			
		||||
        end
 | 
			
		||||
        break if !ann_page.nil?
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    ann_page = pages.first if ann_page.nil?
 | 
			
		||||
    request.protocol+(request.host_with_port+ann_page.url+'/'+seminar.to_param).gsub('//','/') rescue "/"
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def page_for_seminar_url
 | 
			
		||||
    page = Page.where(:module => 'seminar').first
 | 
			
		||||
    return request.protocol+(request.host_with_port+"/#{I18n.locale}#{page.url}").gsub('//','/') rescue "/"
 | 
			
		||||
    # return "/#{I18n.locale}#{page.url}/#{seminar.to_param}"
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,109 @@
 | 
			
		|||
module Admin::SeminarsValuesHelper
 | 
			
		||||
  def show_west_calender(from_to=nil)
 | 
			
		||||
    case from_to
 | 
			
		||||
      when :to
 | 
			
		||||
        date = get_date(:to)
 | 
			
		||||
      when :from
 | 
			
		||||
        date = get_date(:from)
 | 
			
		||||
      when nil
 | 
			
		||||
        date = get_date
 | 
			
		||||
    end
 | 
			
		||||
    
 | 
			
		||||
    # case self.member_profile_field["typeC"]["format"]
 | 
			
		||||
    #   when 'format1' #  Y/M/D h:m
 | 
			
		||||
    #     date.strftime("%Y/%m/%d %H:%M")
 | 
			
		||||
    #   when 'format2' #  Y/M/D
 | 
			
		||||
    #     date.strftime("%Y/%m/%d")
 | 
			
		||||
    #   when 'format3' #  Y/M
 | 
			
		||||
    #     date.strftime("%Y/%m")
 | 
			
		||||
    #   when 'format4' #  Y
 | 
			
		||||
    #     date.strftime("%Y")
 | 
			
		||||
    # end # of  case west cal format
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def show_minguo_calendar(from_to=nil)
 | 
			
		||||
    get_minguo
 | 
			
		||||
    
 | 
			
		||||
    case from_to
 | 
			
		||||
      when :to
 | 
			
		||||
        date = get_date(:to)
 | 
			
		||||
      when :from
 | 
			
		||||
        date = get_date(:from)
 | 
			
		||||
      when nil
 | 
			
		||||
        date = get_date
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    @date = date.split('/')
 | 
			
		||||
    date_year = @date[0].to_i
 | 
			
		||||
 | 
			
		||||
    year_str = ""
 | 
			
		||||
      unless date_year == 1912
 | 
			
		||||
        m_year = (date_year - 1912).abs.to_s + I18n.t("date.minguo_calendar.year")
 | 
			
		||||
        year_str = minguo_format_year(m_year)
 | 
			
		||||
      end
 | 
			
		||||
      get_minguo_year(from_to) + minguo_m_y_d_time(from_to)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get_minguo_year(from_to=nil)
 | 
			
		||||
    case from_to
 | 
			
		||||
      when :to
 | 
			
		||||
        date = get_date(:to)
 | 
			
		||||
      when :from
 | 
			
		||||
        date = get_date(:from)
 | 
			
		||||
      when nil
 | 
			
		||||
        date = get_date
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    @date = date.split('/')
 | 
			
		||||
    date_year = @date[0].to_i
 | 
			
		||||
 | 
			
		||||
    m_year = (date_year - 1911).abs
 | 
			
		||||
    year_end = I18n.t("date.minguo_calendar.year")
 | 
			
		||||
      case 
 | 
			
		||||
        when date_year <1912
 | 
			
		||||
          I18n.t("date.minguo_calendar.before") + (m_year+1).to_s + year_end
 | 
			
		||||
        when  date_year ==1912
 | 
			
		||||
          I18n.t("date.minguo_calendar.first_year") 
 | 
			
		||||
        when date_year >1912
 | 
			
		||||
          I18n.t("date.minguo_calendar.after")+ (m_year).to_s + year_end
 | 
			
		||||
    end # of case tw_calendar year
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def minguo_m_y_d_time(from_to=nil)
 | 
			
		||||
    case from_to
 | 
			
		||||
      when :to
 | 
			
		||||
        date = get_date(:to)
 | 
			
		||||
      when :from
 | 
			
		||||
        date = get_date(:from)
 | 
			
		||||
      when nil
 | 
			
		||||
        date = get_date
 | 
			
		||||
    end
 | 
			
		||||
    @date = date.split('/')
 | 
			
		||||
 | 
			
		||||
    case self.seminar_signup_field["typeC"]["format"]
 | 
			
		||||
        when 'format1' #  Y/M/D h:m
 | 
			
		||||
          "/#{@date[1]}/#{@date[2]}"
 | 
			
		||||
        when 'format2' #  Y/M/D
 | 
			
		||||
          "/#{@date[1]}/#{@date[2]}"
 | 
			
		||||
        when 'format3' #  Y/M
 | 
			
		||||
 | 
			
		||||
          "/#{@date[1]}#{I18n.t("date.minguo_calendar.month")}"\
 | 
			
		||||
        when 'format4' #  Y
 | 
			
		||||
          ''
 | 
			
		||||
      end # of  case 
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get_date_by_format(from_to = nil)
 | 
			
		||||
    case I18n.locale
 | 
			
		||||
    when :zh_tw
 | 
			
		||||
      case 
 | 
			
		||||
        when self.seminar_signup_field["typeC"]["calendar"] == "west_calendar"
 | 
			
		||||
          show_west_calender(from_to)
 | 
			
		||||
        when self.seminar_signup_field["typeC"]["calendar"] == "tw_calendar"
 | 
			
		||||
          show_minguo_calendar(from_to)
 | 
			
		||||
      end #case self.seminar_signup_field["typeC"]["calendar"]
 | 
			
		||||
    when :en
 | 
			
		||||
      show_west_calender(from_to)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
class SeminarAgreement
 | 
			
		||||
  include Mongoid::Document
 | 
			
		||||
  include Mongoid::Timestamps
 | 
			
		||||
 | 
			
		||||
  field :content, localize: true
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
# encoding: utf-8
 | 
			
		||||
class SeminarFile
 | 
			
		||||
 | 
			
		||||
  include Mongoid::Document
 | 
			
		||||
  include Mongoid::Timestamps
 | 
			
		||||
 | 
			
		||||
  mount_uploader :file, AssetUploader
 | 
			
		||||
 | 
			
		||||
  field :description, localize: true
 | 
			
		||||
  field :title, localize: true
 | 
			
		||||
  
 | 
			
		||||
  belongs_to :seminar_main
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
class SeminarItem
 | 
			
		||||
  include Mongoid::Document
 | 
			
		||||
  include Mongoid::Timestamps
 | 
			
		||||
 | 
			
		||||
  field :title, localize: true
 | 
			
		||||
 | 
			
		||||
  belongs_to :seminar_main
 | 
			
		||||
 | 
			
		||||
  has_many :seminar_item_contents, :autosave => true, :dependent => :destroy
 | 
			
		||||
  accepts_nested_attributes_for :seminar_item_contents, :allow_destroy => true
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,15 @@
 | 
			
		|||
# encoding: utf-8
 | 
			
		||||
class SeminarItemContent
 | 
			
		||||
 | 
			
		||||
  include Mongoid::Document
 | 
			
		||||
  include Mongoid::Timestamps
 | 
			
		||||
 | 
			
		||||
  field :content, localize: true
 | 
			
		||||
  
 | 
			
		||||
  field :create_user_id
 | 
			
		||||
  field :update_user_id
 | 
			
		||||
  
 | 
			
		||||
  belongs_to :seminar_item
 | 
			
		||||
  belongs_to :seminar_main
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,25 @@
 | 
			
		|||
# encoding: utf-8
 | 
			
		||||
require 'uri'
 | 
			
		||||
 | 
			
		||||
class SeminarLink
 | 
			
		||||
  include Mongoid::Document
 | 
			
		||||
  include Mongoid::Timestamps
 | 
			
		||||
  
 | 
			
		||||
  field :url
 | 
			
		||||
  field :title, localize: true
 | 
			
		||||
    
 | 
			
		||||
  belongs_to :seminar_main
 | 
			
		||||
 | 
			
		||||
  before_validation :add_http
 | 
			
		||||
  
 | 
			
		||||
  validates :url, :presence => true, :format => /\A(http|https):\/\/(([a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5})|((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(:[0-9]{1,5})?(\/.*)?\Z/i
 | 
			
		||||
 | 
			
		||||
  protected
 | 
			
		||||
 | 
			
		||||
  def add_http
 | 
			
		||||
    unless self.url[/^http:\/\//] || self.url[/^https:\/\//]
 | 
			
		||||
      self.url = 'http://' + self.url
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,79 @@
 | 
			
		|||
class SeminarMain
 | 
			
		||||
  include Mongoid::Document
 | 
			
		||||
  include Mongoid::Timestamps
 | 
			
		||||
 | 
			
		||||
  include OrbitModel::Impression
 | 
			
		||||
  # encoding: utf-8
 | 
			
		||||
  include OrbitCategory::Categorizable
 | 
			
		||||
  include Slug
 | 
			
		||||
  
 | 
			
		||||
  field :title, as: :slug_title, type: String, localize: true
 | 
			
		||||
  field :speaker, localize: true
 | 
			
		||||
  field :content, localize: true
 | 
			
		||||
  field :act_place, localize: true
 | 
			
		||||
 | 
			
		||||
  field :seminar_start_date, :type => Date, :default => Time.now
 | 
			
		||||
  field :seminar_end_date, :type => Date, :default => Time.now
 | 
			
		||||
 | 
			
		||||
  field :signup_start_date, :type => Date, :default => Time.now
 | 
			
		||||
  field :signup_end_date, :type => Date, :default => Time.now
 | 
			
		||||
 | 
			
		||||
  field :contribute_start_date, :type => Date
 | 
			
		||||
  field :contribute_end_date, :type => Date
 | 
			
		||||
  
 | 
			
		||||
  field :contribute_file_count, type: String
 | 
			
		||||
 | 
			
		||||
  field :registration_status , :type => Array #C: 投稿者 G:一般
 | 
			
		||||
 | 
			
		||||
  field :create_user_id
 | 
			
		||||
  field :update_user_id
 | 
			
		||||
 | 
			
		||||
  belongs_to :seminar_item
 | 
			
		||||
 | 
			
		||||
  has_many :seminar_links, :autosave => true, :dependent => :destroy
 | 
			
		||||
  has_many :seminar_files, :autosave => true, :dependent => :destroy
 | 
			
		||||
  has_many :seminar_item_contents, :autosave => true, :dependent => :destroy
 | 
			
		||||
  has_many :seminar_signups, :autosave => true, :dependent => :destroy
 | 
			
		||||
  has_many :seminar_signup_fields, :autosave => true, :dependent => :destroy
 | 
			
		||||
  
 | 
			
		||||
  accepts_nested_attributes_for :seminar_links, :allow_destroy => true
 | 
			
		||||
  accepts_nested_attributes_for :seminar_files, :allow_destroy => true
 | 
			
		||||
  accepts_nested_attributes_for :seminar_item_contents, :allow_destroy => true
 | 
			
		||||
  accepts_nested_attributes_for :seminar_signups, :allow_destroy => true
 | 
			
		||||
  accepts_nested_attributes_for :seminar_signup_fields, :allow_destroy => true
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  def self.time_range(date1 = null, date2 = null)
 | 
			
		||||
 | 
			
		||||
    if !date1.blank?
 | 
			
		||||
 | 
			
		||||
      r = "#{date1.strftime('%Y-%m-%d')}"
 | 
			
		||||
 | 
			
		||||
      if date2
 | 
			
		||||
        r += " - #{date2.strftime('%Y-%m-%d')}" 
 | 
			
		||||
      else
 | 
			
		||||
        r += " - #{I18n.t(:no_deadline)}"
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      r
 | 
			
		||||
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get_attribute_value(attribute_field, signup_id)
 | 
			
		||||
      SeminarSignupValue.find_by(seminar_signup_field_id: attribute_field.id, seminar_signup_id: signup_id)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get_attribute_values(attribute_type=nil)
 | 
			
		||||
      @attribute_values = attribute_type.seminar_signup_values rescue nil
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
  def get_value_from_field_id(field_id,attribute_type=nil)
 | 
			
		||||
      values = get_attribute_values(attribute_type)
 | 
			
		||||
      value = values.detect {|value| value.seminar_signup_field_id == field_id} rescue nil
 | 
			
		||||
      value ? value : nil
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
# encoding: utf-8
 | 
			
		||||
class SeminarSignup
 | 
			
		||||
 | 
			
		||||
  include Mongoid::Document
 | 
			
		||||
  include Mongoid::Timestamps
 | 
			
		||||
 | 
			
		||||
  field :status
 | 
			
		||||
  field :name
 | 
			
		||||
  field :unit, localize: true
 | 
			
		||||
  field :tel, type: String
 | 
			
		||||
  field :phone, type: String
 | 
			
		||||
  field :fax, type: String
 | 
			
		||||
  field :email, type: String
 | 
			
		||||
  field :address, localize: true
 | 
			
		||||
  field :password
 | 
			
		||||
  field :note, localize: true
 | 
			
		||||
  
 | 
			
		||||
  belongs_to :seminar_main
 | 
			
		||||
 | 
			
		||||
  has_many :seminar_signup_values
 | 
			
		||||
  has_many :seminar_signup_contributes
 | 
			
		||||
  
 | 
			
		||||
  accepts_nested_attributes_for :seminar_signup_values, allow_destroy: true
 | 
			
		||||
  accepts_nested_attributes_for :seminar_signup_contributes, allow_destroy: true
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
class SeminarSignupContribute
 | 
			
		||||
 | 
			
		||||
  include Mongoid::Document
 | 
			
		||||
  include Mongoid::Timestamps
 | 
			
		||||
 | 
			
		||||
  mount_uploader :file, AssetUploader
 | 
			
		||||
 | 
			
		||||
  field :description
 | 
			
		||||
  field :title
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  belongs_to :seminar_signup
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,160 @@
 | 
			
		|||
class SeminarSignupField
 | 
			
		||||
  include Mongoid::Document
 | 
			
		||||
  include Mongoid::Timestamps
 | 
			
		||||
  include Mongoid::Attributes::Dynamic
 | 
			
		||||
  include ::AttributeFieldsHelper
 | 
			
		||||
  include ::Admin::SeminarsFieldHelper
 | 
			
		||||
 | 
			
		||||
  field :key, type: String
 | 
			
		||||
  field :af_count
 | 
			
		||||
  field :title, type: String, localize: true
 | 
			
		||||
  field :markup, default: "text_field"
 | 
			
		||||
  field :option_list, type: Hash,default: {}
 | 
			
		||||
  field :markup_options, type: Hash
 | 
			
		||||
  field :built_in, type: Boolean, default: false
 | 
			
		||||
  field :disabled, type: Boolean, default: false
 | 
			
		||||
  field :to_delete, type: Boolean, default: false
 | 
			
		||||
  
 | 
			
		||||
  field :to_require,type: Boolean, default: true
 | 
			
		||||
  
 | 
			
		||||
  field :typeA, type: Hash, default: {cross_lang: false}
 | 
			
		||||
  field :typeB, type: Hash, default: {}
 | 
			
		||||
  field :typeC, type: Hash, default: {calendar: "west_calendar", format: "format3"}
 | 
			
		||||
  field :typeD, type: Hash, default: {cross_lang: false}
 | 
			
		||||
  field :typeE, type: Hash, default: {}
 | 
			
		||||
 | 
			
		||||
  belongs_to :seminar_main
 | 
			
		||||
  has_many :seminar_signup_values, autosave: true, dependent: :destroy
 | 
			
		||||
  before_save :check_option_list
 | 
			
		||||
 | 
			
		||||
  def markup_value
 | 
			
		||||
    get_data["option_list"]
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def add_more
 | 
			
		||||
     (get_data["add_more"] == "true" ? true : false) rescue false
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def locale
 | 
			
		||||
    get_data["cross_lang"] == "true" ? false : true
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self_defined_markup_options?
 | 
			
		||||
    (self.seminar.method(self[:key].pluralize.to_sym)  && self.seminar.method(self[:key].pluralize+"_for_"+markup)) rescue false
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def option_list
 | 
			
		||||
    if self_defined_markup_options?
 | 
			
		||||
      #Class need to have corresponding field and value agent 
 | 
			
		||||
     # Ex: For "status" the class must have field called "statuses" for the relation and "statuses_for_select" for the select function 
 | 
			
		||||
     method = self.seminar.method(self[:key].pluralize+"_for_"+markup)
 | 
			
		||||
      return  (method.call rescue {})
 | 
			
		||||
    elsif self[:option_list].nil?  || (self[:option_list].empty?)
 | 
			
		||||
      return {}
 | 
			
		||||
    else
 | 
			
		||||
      return self[:option_list]
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def markup_options=(var)
 | 
			
		||||
    self[:markup_options] = (eval(var)  rescue {})
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def markup_options
 | 
			
		||||
    if self[:markup_options].nil?
 | 
			
		||||
      return {}
 | 
			
		||||
    else
 | 
			
		||||
      Hash[self[:markup_options].map{|key,val|[key.to_sym,val]}]  rescue {}
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def panel
 | 
			
		||||
    panel  = LIST[:markups][self[:markup]]["panel"]
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get_data
 | 
			
		||||
    self[panel]
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def typeA=(var)
 | 
			
		||||
    check_add_more_convert(var)
 | 
			
		||||
    check_cross_lang_convert(var,"typeA")
 | 
			
		||||
    self["typeA"] = var
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def typeD=(var)
 | 
			
		||||
    check_cross_lang_convert(var,"typeD")
 | 
			
		||||
    self["typeD"] = var
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def is_built_in?
 | 
			
		||||
    self.built_in
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
  def is_disabled?
 | 
			
		||||
    self.disabled
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.add_seminar_signup_field(seminar,seminar_param, seminar_signup_field_id=nil,field_status)
 | 
			
		||||
    @field_name = 'seminar'
 | 
			
		||||
    if field_status.eql?(true)
 | 
			
		||||
      @seminar_signup_field_counter = seminar.seminar_signup_fields.count rescue nil
 | 
			
		||||
      @seminar_signup_field = self.find(seminar_signup_field_id) rescue nil
 | 
			
		||||
      old_key = @seminar_signup_field.key
 | 
			
		||||
      @seminar_signup_field.update(seminar_param)
 | 
			
		||||
      @seminar_signup_field.save
 | 
			
		||||
      attribute_values = @seminar_signup_field.seminar_signup_values
 | 
			
		||||
      if attribute_values.count > 0
 | 
			
		||||
        attribute_values.each do |av|
 | 
			
		||||
          av.key = seminar_param["key"]
 | 
			
		||||
          av.save
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
      @seminar_signup_field[:af_count] = @seminar_signup_field_counter
 | 
			
		||||
    else
 | 
			
		||||
      @seminar_signup_field_counter = seminar.seminar_signup_fields.count rescue nil
 | 
			
		||||
      @seminar_signup_field = seminar.seminar_signup_fields.build(seminar_param) rescue nil
 | 
			
		||||
      @seminar_signup_field.save  
 | 
			
		||||
      @seminar_signup_field[:af_count] = @seminar_signup_field_counter
 | 
			
		||||
    end
 | 
			
		||||
    return @seminar_signup_field
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  protected
 | 
			
		||||
 | 
			
		||||
  def check_cross_lang_convert(var,field)
 | 
			
		||||
    if self[field]["cross_lang"] != var["cross_lang"]
 | 
			
		||||
      case var["cross_lang"]
 | 
			
		||||
      when "true"  #from no-add_more to add_more
 | 
			
		||||
        cross_lang_convert(:to_cross_lang)  
 | 
			
		||||
      else #from add_more to no-add_more
 | 
			
		||||
        cross_lang_convert(:to_no_cross_lang)
 | 
			
		||||
      end # of case
 | 
			
		||||
    end # of if
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
   def check_add_more_convert(var)
 | 
			
		||||
    if self["typeA"]["add_more"] != var["add_more"]
 | 
			
		||||
      case var["add_more"]
 | 
			
		||||
      when "true"  #from no-add_more to add_more
 | 
			
		||||
        add_more_convert(:to_add_more)  
 | 
			
		||||
      else #from add_more to no-add_more
 | 
			
		||||
        add_more_convert(:to_no_add_more)
 | 
			
		||||
      end # of case
 | 
			
		||||
    end # of if
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def cross_lang_convert(opt) 
 | 
			
		||||
    
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def check_option_list
 | 
			
		||||
    self[:option_list] = self[panel]["option_list"] rescue nil
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def add_more_convert(opt) 
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,213 @@
 | 
			
		|||
class SeminarSignupValue
 | 
			
		||||
  include Mongoid::Document
 | 
			
		||||
  include Mongoid::Timestamps
 | 
			
		||||
  include Mongoid::Attributes::Dynamic
 | 
			
		||||
  include ::AttributeValuesHelper
 | 
			
		||||
  include ::Admin::SeminarsValuesHelper
 | 
			
		||||
 | 
			
		||||
  field :key, type: String
 | 
			
		||||
 | 
			
		||||
  belongs_to :seminar_signup_field
 | 
			
		||||
  belongs_to :seminar_signup
 | 
			
		||||
 | 
			
		||||
  before_save :check_key
 | 
			
		||||
  before_save :data_proc
 | 
			
		||||
 | 
			
		||||
  def add_more_counter
 | 
			
		||||
    index_max = self["val"].count rescue 0
 | 
			
		||||
    index_max == 0 ?   1 : index_max
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def value(index = nil)
 | 
			
		||||
  	site = Site.first
 | 
			
		||||
    result = case self.seminar_signup_field.markup
 | 
			
		||||
      when 'text_field','text_area'
 | 
			
		||||
        if self.seminar_signup_field.add_more and (self.seminar_signup_field.markup == "text_field")
 | 
			
		||||
          index.nil? ? self["val"] : self["val"][index]
 | 
			
		||||
        else
 | 
			
		||||
          self.seminar_signup_field.get_data["cross_lang"] =="true" ?  self["val"] : Hash[site.valid_locales.collect{|lang|  [lang,self[lang.to_sym]]}]
 | 
			
		||||
        end
 | 
			
		||||
      when 'select','radio_button','address'
 | 
			
		||||
        self["val"]
 | 
			
		||||
      when 'date'
 | 
			
		||||
          if !self["val"].blank? and !self["val"]['(1i)'].blank?
 | 
			
		||||
            "#{self["val"]['(1i)']}/#{self["val"]['(2i)']}/#{self["val"]['(3i)']}"
 | 
			
		||||
          else
 | 
			
		||||
            self["val"]
 | 
			
		||||
          end
 | 
			
		||||
      when 'checkbox'
 | 
			
		||||
        self["val"]
 | 
			
		||||
    end #end of case self.seminar_signup_field.markup
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def value=(value)
 | 
			
		||||
    #save everything to temp_data waiting for futher process
 | 
			
		||||
    self[:temp_data] = value
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get_field_value
 | 
			
		||||
    if (self.seminar_signup_field.markup.eql?("text_field") || self.seminar_signup_field.markup.eql?("text_area"))
 | 
			
		||||
        field_value = self.value[I18n.locale]
 | 
			
		||||
      elsif (self.seminar_signup_field.markup.eql?("select") || self.seminar_signup_field.markup.eql?("radio_button"))
 | 
			
		||||
        field_value = self.seminar_signup_field.markup_value["#{self.value}"][I18n.locale] rescue nil
 | 
			
		||||
      elsif self.seminar_signup_field.markup.eql?("address")
 | 
			
		||||
        field_value = rf[:address_key][I18n.locale].map{|k,v| v}.delete_if(&:blank?).join(', ')
 | 
			
		||||
      elsif self.seminar_signup_field.markup.eql?("date")
 | 
			
		||||
        case self.seminar_signup_field.typeC['format']
 | 
			
		||||
        when 'format1'
 | 
			
		||||
          field_value = self.value.to_date.strftime("%Y/%m/%d")
 | 
			
		||||
        when 'format2'
 | 
			
		||||
          field_value = self.value.to_date.strftime("%Y/%m/%d")
 | 
			
		||||
        when 'format3'
 | 
			
		||||
          field_value = self.value.to_date.strftime("%Y/%m")       
 | 
			
		||||
        when 'format4'
 | 
			
		||||
          field_value = self.value.to_date.strftime("%Y")  
 | 
			
		||||
        end
 | 
			
		||||
      elsif self.seminar_signup_field.markup.eql?("checkbox")
 | 
			
		||||
        field_value = self.value.map {|v| self.seminar_signup_field.markup_value["#{v}"][I18n.locale]}.join(', ') rescue nil
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    field_value = (field_value =~ /\A#{URI::regexp(['http', 'https'])}\z/) ? "<a href='#{field_value}' target='blank'>#{field_value}</a>" : field_value
 | 
			
		||||
    field_value = (field_value =~ /\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i) ? "<a href='mailto:#{field_value}'>#{field_value}</a>" : field_value
 | 
			
		||||
 | 
			
		||||
    if !field_value.blank?
 | 
			
		||||
    {
 | 
			
		||||
      "key" => self.seminar_signup_field.key,
 | 
			
		||||
      "title" => self.seminar_signup_field.title,
 | 
			
		||||
      "value" => field_value,
 | 
			
		||||
      "val" => field_value = self.value
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
      {
 | 
			
		||||
        "key" => self.seminar_signup_field.key,
 | 
			
		||||
        "title" => self.seminar_signup_field.title,
 | 
			
		||||
        "value" => "",
 | 
			
		||||
        "val" => field_value = self.value
 | 
			
		||||
      }
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get_value_by_locale(locale,add_more_index=nil)
 | 
			
		||||
    case self.seminar_signup_field.markup
 | 
			
		||||
      when "text_field"
 | 
			
		||||
        case self.seminar_signup_field.add_more
 | 
			
		||||
          when true
 | 
			
		||||
            if self.seminar_signup_field.locale
 | 
			
		||||
              add_more_index.nil? ? self.value.collect{|t| t[locale.to_s]}.join(",") : self.value(add_more_index)[locale]
 | 
			
		||||
            else
 | 
			
		||||
              add_more_index.nil? ? self.value.join(",") : self.value(add_more_index)
 | 
			
		||||
            end
 | 
			
		||||
            
 | 
			
		||||
          when false
 | 
			
		||||
            self.seminar_signup_field.locale ? self[locale.to_s]  : self.value  
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
      when "select"
 | 
			
		||||
        markup_values = self.seminar_signup_field.self_defined_markup_options? ? self.seminar_signup_field.markup_value : self.seminar_signup_field.markup_value
 | 
			
		||||
        markup_values[self.value][locale.to_s] rescue 'NoData'
 | 
			
		||||
 | 
			
		||||
      when "text_area"
 | 
			
		||||
        self.seminar_signup_field.locale ? self[locale.to_s]  : self.value
 | 
			
		||||
 | 
			
		||||
      when "date"
 | 
			
		||||
        if self.seminar_signup_field.date_is_range?
 | 
			
		||||
          get_date_by_format(:from) + ' ~ '  + get_date_by_format(:to)
 | 
			
		||||
          # self.value["from"] + ' ~ ' + self.value["to"]
 | 
			
		||||
        else
 | 
			
		||||
          get_date_by_format  
 | 
			
		||||
          # self.value
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
      when "address"
 | 
			
		||||
        self.value[locale.to_s]
 | 
			
		||||
 | 
			
		||||
      when "radio_button"
 | 
			
		||||
        markup_values = self.seminar_signup_field.markup_value
 | 
			
		||||
        markup_values[self.value][locale.to_s]
 | 
			
		||||
 | 
			
		||||
      when "checkbox" 
 | 
			
		||||
        markup_values = self.seminar_signup_field.markup_value
 | 
			
		||||
        self.value.collect{|key| markup_values["#{key}"][I18n.locale]}.join(",")
 | 
			
		||||
      when "date_durnation"
 | 
			
		||||
        self.value
 | 
			
		||||
 | 
			
		||||
      else
 | 
			
		||||
        self.seminar_signup_field.locale ? self[locale.to_s]  : self.value
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get_date(item = nil)
 | 
			
		||||
    case item
 | 
			
		||||
    when :from
 | 
			
		||||
      # data = self[:val]["from"]
 | 
			
		||||
      data = self.value["from"]
 | 
			
		||||
    when :to
 | 
			
		||||
      # data = self[:val]["to"]
 | 
			
		||||
      data = self.value["to"]
 | 
			
		||||
    when nil
 | 
			
		||||
      # data = self[:val]
 | 
			
		||||
      data = self.value
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Date.new(data["(1i)"].to_i,data["(2i)"].to_i,data["(3i)"].to_i) rescue nil
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.put_field_values(member, field_value_param, field_value_id=nil,field_value_status)
 | 
			
		||||
    if field_value_status.eql?(true)
 | 
			
		||||
      @seminar_signup_field_value = self.find(field_value_id) rescue nil
 | 
			
		||||
      @seminar_signup_field_value.update(field_value_param) rescue nil
 | 
			
		||||
      @seminar_signup_field_value.save rescue nil
 | 
			
		||||
    else
 | 
			
		||||
      @seminar_signup_field_value = member.seminar_signup_values.build(field_value_param) rescue nil
 | 
			
		||||
      @seminar_signup_field_value.save
 | 
			
		||||
    end
 | 
			
		||||
    return @seminar_signup_field_value
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
protected
 | 
			
		||||
  
 | 
			
		||||
def unset_all_lang_values
 | 
			
		||||
    VALID_LOCALES.each{|t| self.unset t}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def data_proc
 | 
			
		||||
    unless self[:temp_data].nil?
 | 
			
		||||
      case self.seminar_signup_field.markup
 | 
			
		||||
        when "address"
 | 
			
		||||
           self["val"] = self["temp_data"]
 | 
			
		||||
        when 'text_field','text_area'
 | 
			
		||||
          if self.seminar_signup_field.add_more
 | 
			
		||||
            self["val"] = self["temp_data"]
 | 
			
		||||
          else # if not add_more
 | 
			
		||||
            if self.seminar_signup_field.can_muti_lang_input?
 | 
			
		||||
                self[:temp_data].each do |key,val| 
 | 
			
		||||
                  self[key] = val
 | 
			
		||||
                  end if(!self.seminar_signup_field.get_data[:cross_lang]) 
 | 
			
		||||
              else
 | 
			
		||||
                self["val"] = self[:temp_data]
 | 
			
		||||
            end
 | 
			
		||||
          end # of self.seminar_signup_field.add_more
 | 
			
		||||
         
 | 
			
		||||
        when 'select','date','radio_button'
 | 
			
		||||
          self["val"] = self[:temp_data]
 | 
			
		||||
        when 'checkbox'
 | 
			
		||||
          self["val"] = self[:temp_data].keys 
 | 
			
		||||
      end #end of case self.seminar_signup_field.markup  
 | 
			
		||||
    end # of self[:temp_data].nil?
 | 
			
		||||
    self.unset('temp_data')
 | 
			
		||||
    self.unset('temp')
 | 
			
		||||
  end #of data_proc
 | 
			
		||||
 | 
			
		||||
  def check_key
 | 
			
		||||
    self.key = self.seminar_signup_field.key
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def method_missing(*field)
 | 
			
		||||
    if field.size < 1
 | 
			
		||||
      self[field[0]]  
 | 
			
		||||
    else
 | 
			
		||||
      self[(field[0].to_s.delete "=")] = field[1]
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,63 @@
 | 
			
		|||
<% content_for :page_specific_css do %>
 | 
			
		||||
  <%= stylesheet_link_tag "lib/main-forms" %>
 | 
			
		||||
  <%= stylesheet_link_tag "lib/main-list" %>
 | 
			
		||||
<% end %>
 | 
			
		||||
<% content_for :page_specific_javascript do %>
 | 
			
		||||
  <%= javascript_include_tag "lib/module-area" %>  
 | 
			
		||||
<% end %>
 | 
			
		||||
 | 
			
		||||
<h2><%= t('seminar.seminar') %></h2>
 | 
			
		||||
 | 
			
		||||
<%= form_for @seminar_agreement, url:  @url, html: {class: "form-horizontal main-forms"} do |f| %>
 | 
			
		||||
<fieldset>
 | 
			
		||||
 | 
			
		||||
<!-- Input Area -->
 | 
			
		||||
<div class="input-area">
 | 
			
		||||
 | 
			
		||||
  <!-- Language Tabs -->
 | 
			
		||||
  <div class="nav-name"><strong><%= t(:language) %></strong></div>
 | 
			
		||||
  <ul class="nav nav-pills language-nav">
 | 
			
		||||
    <% @site_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_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
    
 | 
			
		||||
      <div class="<%= locale %> tab-pane fade <%= ( i == 0 ) ? "in active" : '' %>">
 | 
			
		||||
 | 
			
		||||
        <div class="control-group input-content">
 | 
			
		||||
          <label class="control-label muted"><%= t('seminar.seminar_agreements_content') %></label>
 | 
			
		||||
          <div class="controls">
 | 
			
		||||
            <div class="textarea">
 | 
			
		||||
              <%= f.fields_for :content_translations do |f| %>
 | 
			
		||||
                <%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@seminar_agreement.content_translations[locale] rescue nil) %>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
    <% end %>
 | 
			
		||||
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
  <!-- Form Actions -->
 | 
			
		||||
  <div class="form-actions">
 | 
			
		||||
    <%= get_referer_url[:action] rescue "" %>
 | 
			
		||||
    <%= f.submit t('submit'), class: 'btn btn-primary' %>
 | 
			
		||||
    <input type="hidden" name="referer_url" value="<%= get_referer_url %>">
 | 
			
		||||
    <%= link_to t('cancel'), admin_seminars_path, :class=>"btn" %>  
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
</fieldset>
 | 
			
		||||
 | 
			
		||||
<% end %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,91 @@
 | 
			
		|||
 | 
			
		||||
	<% 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/file-type" %>
 | 
			
		||||
	  <%= javascript_include_tag "lib/module-area" %>  
 | 
			
		||||
	<% 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>
 | 
			
		||||
	  </ul>
 | 
			
		||||
 | 
			
		||||
	  <!-- Module -->
 | 
			
		||||
	  <div class="tab-content module-area">
 | 
			
		||||
 | 
			
		||||
	    <!-- Basic Module -->
 | 
			
		||||
	    <div class="tab-pane fade in active" id="basic">
 | 
			
		||||
 | 
			
		||||
	      <!-- Item -->
 | 
			
		||||
	      <div class="control-group">
 | 
			
		||||
	        <label class="control-label muted"><%= t('seminar.set_seminar_items') %></label>
 | 
			
		||||
	        <div class="controls">
 | 
			
		||||
	          <% if !@seminar_item_content.seminar_item_id.blank? %>
 | 
			
		||||
	          <%= @seminar_item_content.seminar_item.title %>
 | 
			
		||||
	          <% else %>
 | 
			
		||||
	          <%= select_tag "seminar_item_content[seminar_item_id]", options_for_select(@seminar_items) %>
 | 
			
		||||
	          <% end %>
 | 
			
		||||
	        </div>
 | 
			
		||||
	      </div>
 | 
			
		||||
 | 
			
		||||
	    </div>
 | 
			
		||||
 | 
			
		||||
	  </div>
 | 
			
		||||
 | 
			
		||||
	  <!-- Language Tabs -->
 | 
			
		||||
	  <div class="nav-name"><strong><%= t(:language) %></strong></div>
 | 
			
		||||
	  <ul class="nav nav-pills language-nav">
 | 
			
		||||
	    <% @site_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_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
	    
 | 
			
		||||
	      <div class="<%= locale %> tab-pane fade <%= ( i == 0 ) ? "in active" : '' %>">
 | 
			
		||||
 | 
			
		||||
	        <!-- Content -->
 | 
			
		||||
	        <div class="control-group input-content">
 | 
			
		||||
	          <label class="control-label muted"><%= t('seminar_item_content.content') %></label>
 | 
			
		||||
	          <div class="controls">
 | 
			
		||||
	            <div class="textarea">
 | 
			
		||||
	              <%= f.fields_for :content_translations do |f| %>
 | 
			
		||||
	                <%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@seminar_item_content.content_translations[locale] rescue nil) %>
 | 
			
		||||
	              <% end %>
 | 
			
		||||
	            </div>
 | 
			
		||||
	          </div>
 | 
			
		||||
	        </div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	      </div>
 | 
			
		||||
 | 
			
		||||
	    <% end %>
 | 
			
		||||
 | 
			
		||||
	  </div>
 | 
			
		||||
 | 
			
		||||
	</div>
 | 
			
		||||
 | 
			
		||||
	<!-- Form Actions -->
 | 
			
		||||
	<div class="form-actions">
 | 
			
		||||
	  <%= f.hidden_field :seminar_main_id, :value => (!params[:seminar_main_id].blank? ? params[:seminar_main_id] : @seminar_item_content.seminar_main_id) %>
 | 
			
		||||
	  <%= get_referer_url[:seminarion] rescue "" %>
 | 
			
		||||
	  <%= f.submit t('submit'), class: 'btn btn-primary' %>
 | 
			
		||||
	  <input type="hidden" name="referer_url" value="<%= get_referer_url %>">
 | 
			
		||||
	  <%= link_to t('cancel'), admin_seminars_path, :class=>"btn" %>  
 | 
			
		||||
	</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
<%= form_for @seminar_item_content, url: admin_seminar_item_content_path(@seminar_item_content), html: {class: "form-horizontal main-forms"} do |f| %>
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    <%= render :partial => 'form', locals: {f: f} %>
 | 
			
		||||
  </fieldset>
 | 
			
		||||
<% end %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,43 @@
 | 
			
		|||
 | 
			
		||||
<span id="index_table">
 | 
			
		||||
	<script>
 | 
			
		||||
  if(document.querySelectorAll("#orbit-bar").length==0) location.reload();
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<h4><%= @seminar.title %></h4>
 | 
			
		||||
 | 
			
		||||
<table class="table main-list">
 | 
			
		||||
  <thead>
 | 
			
		||||
    <tr class="sort-header">
 | 
			
		||||
     <th class='span2'><%= t(:item)%></th>
 | 
			
		||||
    </tr>
 | 
			
		||||
  </thead>
 | 
			
		||||
  <tbody>
 | 
			
		||||
    <% @seminar_item_contents.each do |seminar_item_content| %>
 | 
			
		||||
      <tr>
 | 
			
		||||
        <td>
 | 
			
		||||
          <%= seminar_item_content.seminar_item.title %>
 | 
			
		||||
          <div class="quick-edit">
 | 
			
		||||
            <ul class="nav nav-pills">
 | 
			
		||||
              <% if can_edit_or_delete?(seminar_item_content) %>
 | 
			
		||||
                <li><a href="/admin/seminar_item_contents/<%=seminar_item_content.id.to_s%>/edit"><%= t(:edit) %></a></li>
 | 
			
		||||
                <li><a href="#" class="delete text-error" rel="/admin/seminar_item_contents/<%=seminar_item_content.id.to_s%>"><%= t(:delete_) %></a></li>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </ul>
 | 
			
		||||
          </div>
 | 
			
		||||
        </td>
 | 
			
		||||
      </tr>
 | 
			
		||||
    <% end %>
 | 
			
		||||
  </tbody>
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
<%= link_to content_tag(:i, nil, :class => 'icon-plus') +' '+ t('new_'), new_admin_seminar_item_content_path(:seminar_main_id=>params[:seminar_main_id]), :class => 'btn btn-primary' if @seminar_items.count > 0 %>
 | 
			
		||||
          
 | 
			
		||||
<%=
 | 
			
		||||
  content_tag :div, class: "bottomnav clearfix" do
 | 
			
		||||
    content_tag :div, paginate(@seminar_item_contents), class: "pagination pagination-centered"
 | 
			
		||||
  end
 | 
			
		||||
%>
 | 
			
		||||
</span>
 | 
			
		||||
 | 
			
		||||
<%= render 'layouts/delete_modal', delete_options: @delete_options %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
<%= form_for @seminar_item_content, url: admin_seminar_item_contents_path, html: {class: "form-horizontal main-forms"} do |f| %>
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    <%= render :partial => 'form', locals: {f: f} %>
 | 
			
		||||
  </fieldset>
 | 
			
		||||
<% end %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
<div id="delete_seminar_items" class="modal hide" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
 | 
			
		||||
  <div class="modal-header">
 | 
			
		||||
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
 | 
			
		||||
    <h3 id="myModalLabel"><%= t('seminar_item.del_item') %></h3>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div class="modal-body tags">
 | 
			
		||||
    <span class="text-warning text-center"><%= t('tag.warning.delete') %></span>
 | 
			
		||||
    <hr>
 | 
			
		||||
    <ul class="tags-groups checkbox-card">
 | 
			
		||||
    </ul>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div class="modal-footer">
 | 
			
		||||
    <button class="btn" data-dismiss="modal" aria-hidden="true"><%= t(:close) %></button>
 | 
			
		||||
    <%= link_to t(:delete_), nil, class: "delete-tags btn btn-danger", method: :post, remote: true %>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
<%= f.fields_for :title_translations do |f| %>
 | 
			
		||||
  <% @site_in_use_locales.each do |locale| %>
 | 
			
		||||
    <div class="control-group">
 | 
			
		||||
      <label class="control-label"><%= "#{t(:name)} (#{t(locale)})" %></label>
 | 
			
		||||
      <div class="controls">
 | 
			
		||||
        <input class="input-large" id="<%=locale%>" name="seminar_item[title_translations][<%=locale%>]" placeholder="<%=t(:name)%>" type="text">
 | 
			
		||||
        <span class="help-inline hide"><%= t('front_page.name_field_helper') %></span>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  <% end %>
 | 
			
		||||
<% end %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
<!-- footer -->
 | 
			
		||||
<div class="bottomnav clearfix">
 | 
			
		||||
  <div class="action pull-right">
 | 
			
		||||
    <button id="selectAllTags" class="btn"><%= t(:select_all) %></button>
 | 
			
		||||
    <button id="deselect" class="btn btn-inverse toggable hide"><%= t(:deselect_all) %></button>
 | 
			
		||||
    <%= link_to t(:delete_), '#', id: "deleteItems", class: "btn btn-danger toggable hide", rel: '' %>
 | 
			
		||||
    <%= link_to content_tag(:i, nil, class: "icons-plus") + " " + t(:add), '#', class: "btn btn-primary open-slide", data: {title: t('seminar_item.new_item'), id: 'new'} %>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
<!-- footer:end -->
 | 
			
		||||
 | 
			
		||||
<!-- tags -->
 | 
			
		||||
<div class="tags">
 | 
			
		||||
  <div id="tags-list">
 | 
			
		||||
    <p class="tag-lead lead muted"><%= t('seminar_item.set_item') %></p>
 | 
			
		||||
    <% if !@seminar_items.blank? %>
 | 
			
		||||
      <ul class="tags-groups checkbox-card module-tags">
 | 
			
		||||
        <%= render partial: "item", collection: @seminar_items, locals: {in_module: true} %>
 | 
			
		||||
      </ul>
 | 
			
		||||
      <% end %>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
<!-- tags:end -->
 | 
			
		||||
 | 
			
		||||
<!-- delete -->
 | 
			
		||||
<%= render 'delete_modal' %>
 | 
			
		||||
<!-- delete:end -->
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
<li class="filter-item default">
 | 
			
		||||
  <p class="card pull-left">
 | 
			
		||||
    <input type="checkbox" value="<%= item.id %>">
 | 
			
		||||
  </p>
 | 
			
		||||
  <%= link_to '#', class: "open-slide", data: {title: t('seminar_item.edit_item'), id: item.id.to_s, form: item.title_translations} do %>
 | 
			
		||||
    <%= item.title_translations.values.join(" / ") %>
 | 
			
		||||
  <% end %>
 | 
			
		||||
</li>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,81 @@
 | 
			
		|||
<div id="seminar_items_index">
 | 
			
		||||
  <%= render 'index' %>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<!-- pageslide -->
 | 
			
		||||
<div id="pageslide">
 | 
			
		||||
  <div class="page-title clearfix">
 | 
			
		||||
    <a class="pull-right" href="javascript:$.pageslide.close()">
 | 
			
		||||
      <i class="icons-arrow-left-2"></i>
 | 
			
		||||
    </a>
 | 
			
		||||
    <span></span>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div class="view-page">
 | 
			
		||||
    <div class="nano">
 | 
			
		||||
      <div class="content">
 | 
			
		||||
        <div id="add-tags">
 | 
			
		||||
 | 
			
		||||
          <div class="tab-content">
 | 
			
		||||
 | 
			
		||||
            <div class="set_new tab-pane fade active in">
 | 
			
		||||
              <%= form_for :seminar_item, url: nil, remote: true do |f| %>
 | 
			
		||||
                <fieldset>
 | 
			
		||||
                  <%= render :partial => "form", :locals => { :f => f } %>
 | 
			
		||||
                  <div class="form-actions">
 | 
			
		||||
                    <a href="javascript:$.pageslide.close()" class="btn btn-small"><%= t(:cancel) %></a>
 | 
			
		||||
                    <%= f.submit t(:submit), class: 'btn btn-primary btn-small', id: "tag_submit" %>
 | 
			
		||||
                  </div>
 | 
			
		||||
                </fieldset>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
          </div>
 | 
			
		||||
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<% content_for :page_specific_css do %>
 | 
			
		||||
  <%= stylesheet_link_tag "seminar_sets" %>
 | 
			
		||||
<% end %>
 | 
			
		||||
<% content_for :page_specific_javascript do %>
 | 
			
		||||
  <%= javascript_include_tag "check_seminar_set_items.js" %>
 | 
			
		||||
  <%= javascript_include_tag "seminar_sets.js" %>
 | 
			
		||||
<% end %>
 | 
			
		||||
 | 
			
		||||
<script type="text/javascript">
 | 
			
		||||
  var validate = function(dom){
 | 
			
		||||
    var valid = true;
 | 
			
		||||
    if($(dom).val()==""){
 | 
			
		||||
      valid=false;
 | 
			
		||||
      $(dom).parent().parent().addClass('error');
 | 
			
		||||
      $(dom).next().removeClass('hide');
 | 
			
		||||
    }else{
 | 
			
		||||
      $(dom).parent().parent().removeClass('error');
 | 
			
		||||
      $(dom).next().addClass('hide');
 | 
			
		||||
    }
 | 
			
		||||
    return valid;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  $(function(){
 | 
			
		||||
    $.each($('.set_new form input:text'),function(){
 | 
			
		||||
      $(this).blur(function(){
 | 
			
		||||
        validate($(this));
 | 
			
		||||
      });
 | 
			
		||||
      $(this).keyup(function(){
 | 
			
		||||
        validate($(this));
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  $("#tag_submit").click(function(){
 | 
			
		||||
    var valid = true;
 | 
			
		||||
    $.each($(".set_new form input:text"),function(){
 | 
			
		||||
      if(!validate($(this))) valid=false;
 | 
			
		||||
    });
 | 
			
		||||
    if(!valid) return false;
 | 
			
		||||
  });
 | 
			
		||||
</script>
 | 
			
		||||
<!-- pageslide:end -->
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
$("#delete_seminar_items").modal('hide');
 | 
			
		||||
$("#seminar_items_index").html("<%= j render 'index' %>")
 | 
			
		||||
$.pageslide.close();
 | 
			
		||||
openSlide();
 | 
			
		||||
$('.card').cardCheck({
 | 
			
		||||
    item: $('.card input[type="checkbox"]'),
 | 
			
		||||
});
 | 
			
		||||
checkedLength();
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,191 @@
 | 
			
		|||
<%= form_for @seminar_signup, url: admin_seminar_signup_path(@seminar_signup), html: {class: "form-horizontal main-forms"} do |f| %>
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    
 | 
			
		||||
<% 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/datetimepicker/date.time.picker.js" %>
 | 
			
		||||
  <%= javascript_include_tag "lib/file-type" %>
 | 
			
		||||
  <%= javascript_include_tag "lib/module-area" %>  
 | 
			
		||||
<% end %>
 | 
			
		||||
 | 
			
		||||
<!-- Input Area -->
 | 
			
		||||
<div class="input-area">
 | 
			
		||||
 | 
			
		||||
  <!-- Language -->
 | 
			
		||||
  <div class="tab-content">
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      <!-- Title -->
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t('seminar.title') %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <%= @seminar.title %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label for="status" class="control-label muted"><%= t('seminar.registration_status') %></label>
 | 
			
		||||
        <div class="controls">          
 | 
			
		||||
          <label class="radio inline">
 | 
			
		||||
            <%= f.radio_button :status, 'G', :checked => true , :onclick => "$('#registration_status').addClass('hide');" %> <%= t('seminar.registration_status_G') %>
 | 
			
		||||
          </label>
 | 
			
		||||
          <label class="radio inline">
 | 
			
		||||
            <%= f.radio_button :status, 'C', :onclick => "$('#registration_status').removeClass('hide');" %> <%= t('seminar.registration_status_C') %>
 | 
			
		||||
          </label>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <!-- Name -->
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t('seminar_signup.name') %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <%= f.text_field :name, :class => "input-block-level", placeholder: t('seminar_signup.name') %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <!-- unit -->
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t('seminar_signup.unit') %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <div class="input-append">
 | 
			
		||||
            <div class="tab-content">
 | 
			
		||||
              <% @site_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
              <div class="tab-pane fade <%= ( i == 0 ) ? "active in" : '' %>" id="unit_<%= locale %>">
 | 
			
		||||
                <%= f.fields_for "unit_translations".to_sym do |f| %>
 | 
			
		||||
                  <%= f.text_field locale, :class=>"input-block-level", :value => (@seminar_signup.send("unit_translations")[locale] rescue nil), :placeholder=> "#{t(locale.to_s)}", :required => true %>
 | 
			
		||||
                <% end %>
 | 
			
		||||
              </div>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="btn-group" data-toggle="buttons-radio">
 | 
			
		||||
              <% @site_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
                <a class="btn <%= ( i == 0 ) ? "active" : '' %>" href="#unit_<%= locale %>" data-toggle="tab"><%= t(locale.to_s) %></a>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <!-- Tel -->
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t('seminar_signup.tel') %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <%= f.text_field :tel, :class=>"input-block-level", :placeholder=> t('seminar_signup.tel'), :required => true %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <!-- Phone -->
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t('seminar_signup.phone') %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <%= f.text_field :phone, :class=>"input-block-level", :placeholder=> t('seminar_signup.phone') %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <!-- Fax -->
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t('seminar_signup.fax') %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <%= f.text_field :phone, :class=>"input-block-level", :placeholder=> t('seminar_signup.fax') %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <!-- address -->
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t("seminar_signup.address") %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          
 | 
			
		||||
          <div class="input-append">
 | 
			
		||||
            <div class="tab-content">
 | 
			
		||||
              <% @site_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
              <div class="tab-pane fade <%= ( i == 0 ) ? "active in" : '' %>" id="address_<%= locale %>">
 | 
			
		||||
                <%= f.fields_for "address_translations".to_sym do |f| %>
 | 
			
		||||
                  <%= f.text_field locale, :class=>"input-block-level", :value => (@seminar_signup.send("address_translations")[locale] rescue nil), :placeholder=> "#{t(locale.to_s)}" %>
 | 
			
		||||
                <% end %>
 | 
			
		||||
              </div>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="btn-group" data-toggle="buttons-radio">
 | 
			
		||||
              <% @site_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
                <a class="btn <%= ( i == 0 ) ? "active" : '' %>" href="#address_<%= locale %>" data-toggle="tab"><%= t(locale.to_s) %></a>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <!-- Email -->
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t(:email) %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <%= f.email_field :email, :class=>"input-block-level", :placeholder=> t(:email), :required => true %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <!-- password -->
 | 
			
		||||
      <div class="control-group <%= @seminar_signup.status == 'C' ? '' : 'hide' %>" id="registration_status">
 | 
			
		||||
        <label class="control-label muted"><%= t('seminar_signup.password') %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <%= f.text_field :password, :class=>"input-block-level", :placeholder=> t('seminar_signup.password') %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      
 | 
			
		||||
    
 | 
			
		||||
      <!-- Note -->
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t('seminar_signup.note') %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <div class="tab-content textarea-lang">
 | 
			
		||||
            <div class="btn-group" data-toggle="buttons-radio">
 | 
			
		||||
              <% @site_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
                <a class="btn <%= ( i == 0 ) ? "active" : '' %>" href="#note_<%= locale %>" for="<%= locale %>" data-toggle="tab"><%= t(locale.to_s) %></a>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
            <% @site_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
            <div class="tab-pane fade <%= ( i == 0 ) ? "active in" : '' %>" id="note_<%= locale %>">
 | 
			
		||||
              <%= f.fields_for "note_translations".to_sym do |f| %>
 | 
			
		||||
                <%= f.text_area locale, rows: 5, :class=>"input-block-level", :value => (@seminar_signup.send("note_translations")[locale] rescue nil), :placeholder=> "#{t(locale.to_s)}" %>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
            <% end %>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <hr>
 | 
			
		||||
 | 
			
		||||
      <% @seminar.seminar_signup_fields.asc(:_id).each  do |rf| %>
 | 
			
		||||
 | 
			
		||||
        <div class="control-group">
 | 
			
		||||
 | 
			
		||||
         <%= rf.block_helper(@seminar,@form_index,false,"seminar_signup", @seminar_signup, rf.to_require) %>
 | 
			
		||||
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <% @form_index = @form_index +1 %>
 | 
			
		||||
 | 
			
		||||
      <% end %>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<!-- Form Actions -->
 | 
			
		||||
<div class="form-actions">
 | 
			
		||||
  <%#= get_referer_url[:action] rescue "" %>
 | 
			
		||||
  <%= f.submit t('submit'), class: 'btn btn-primary' %>
 | 
			
		||||
  <%= link_to t('cancel'), "/admin/seminars/#{@seminar.id}/seminar_signup", :class=>"btn" %>  
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  </fieldset>
 | 
			
		||||
<% end %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,132 @@
 | 
			
		|||
<div class="attributes default <%= attribute_field.disabled ?  'disabled' : ''%>">
 | 
			
		||||
<%
 | 
			
		||||
  attribute_field.af_count ? @af_counter = attribute_field_counter + attribute_field.af_count : @af_counter = attribute_field_counter
 | 
			
		||||
%>
 | 
			
		||||
  <div class="attributes-header clearfix">
 | 
			
		||||
    <div class="toggle-control" style="float: right;">
 | 
			
		||||
      <div class="togglebox <%= attribute_field.disabled ?  'disabled' : ''%>">
 | 
			
		||||
      <%= hidden_field "#{@field_name}[seminar_signup_fields][#{@af_counter}]","disabled",:value=>attribute_field.disabled,:class=>"toggle-check", :data=>{:deploy=>"right"} %>
 | 
			
		||||
      <label><b></b></label>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <a class="btn btn-mini pull-right btn-danger delete" href="#"><i class="icon-trash"></i> <%= t(:delete_)%></a>
 | 
			
		||||
    <%= hidden_field "#{@field_name}[seminar_signup_fields][#{@af_counter}]","to_delete",:value=>false,:class=>"attribute_field_to_delete"%>
 | 
			
		||||
    <a class="btn btn-mini pull-right btn-inverse reply hide" href="#"><i class="icons-reply"></i> Reset</a>
 | 
			
		||||
    <h4>Field <span><%= @af_counter + 1 %></span></h4>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div class="attributes-body">
 | 
			
		||||
    <div class="control-group">
 | 
			
		||||
      <label class="control-label muted" for="key_<%= @af_counter %>"><%= t(:key) %></label>
 | 
			
		||||
      <div class="controls">
 | 
			
		||||
        <%= text_field "#{@field_name}[seminar_signup_fields][#{@af_counter}]","key",:value=>attribute_field.key, :data=>{:type=>"key"} %>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>   
 | 
			
		||||
    
 | 
			
		||||
    <%= render :partial=>"shared/attribute_field/placeholder_block",:locals=>{:values=>attribute_field.title_translations,:class_ext=>"pull-left",:label_ext=>t(:name),:field_name=>"#{@field_name}[seminar_signup_fields][#{@af_counter}][title_translations]"}%>
 | 
			
		||||
 | 
			
		||||
    <div class="control-group">
 | 
			
		||||
      <label class="control-label muted" for=""><%= t('seminar.to_require') %></label>
 | 
			
		||||
      <div class="controls">
 | 
			
		||||
        <label class="radio inline">
 | 
			
		||||
          <%= radio_button("#{@field_name}[seminar_signup_fields][#{@af_counter}]", "to_require", "true",:checked => (attribute_field.to_require == true ? true : false), :data=>{:type=>"search_true"}) %><%= t(:yes_)%>
 | 
			
		||||
        </label>
 | 
			
		||||
        <label class="radio inline">
 | 
			
		||||
          <%= radio_button("#{@field_name}[seminar_signup_fields][#{@af_counter}]", "to_require", "false",:checked => (attribute_field.to_require == false ? true : false), :data=>{:type=>"search_false"}) %><%= t(:no_)%>
 | 
			
		||||
        </label>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="control-group">
 | 
			
		||||
      <label class="control-label muted" for=""><%= t(:type)%></label>
 | 
			
		||||
      <div class="controls">
 | 
			
		||||
        <select class="dataType" data-type="select" name=<%= "#{@field_name}[seminar_signup_fields][#{@af_counter}][markup]"%>>
 | 
			
		||||
          <%LIST[:markups].each do |key,val|%>
 | 
			
		||||
          <% if key != 'address' %>
 | 
			
		||||
             <option  value="<%= key %>" <%= attribute_field.markup == key ?  'selected="selected"' : '' %> ref="<%=val["panel"]%>"><%=t("lists.markups."+key)%></option >
 | 
			
		||||
          <% end %>
 | 
			
		||||
          <% end %>
 | 
			
		||||
        </select>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <div class="field-type fade"></div>
 | 
			
		||||
 | 
			
		||||
    <%= content_tag :div,:class=>"field-type default fade in #{show_type_panel(attribute_field,"typeA")}" do%>
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t(:enabled_for)%></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <label class="checkbox inline">
 | 
			
		||||
            <%= check_box_tag("#{@field_name}[seminar_signup_fields][#{@af_counter}][typeA][cross_lang]","true",attribute_field["typeA"]["cross_lang"],:data=>{:type=>"cross_lang"}) %>
 | 
			
		||||
            <%=  t(:cross_lang) %>
 | 
			
		||||
          </label>
 | 
			
		||||
          <label class="checkbox inline">
 | 
			
		||||
            <%= check_box_tag("#{@field_name}[seminar_signup_fields][#{@af_counter}][typeA][add_more]","true",attribute_field["typeA"]["add_more"],:data=>{:type=>"add_more"}) %>
 | 
			
		||||
            <%= t(:add_more)%>
 | 
			
		||||
          </label>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <%= render :partial=>"shared/attribute_field/placeholder_block",:locals=>{:values=>attribute_field["typeA"]["placeholder"],:field_name=>"#{@field_name}[seminar_signup_fields][#{@af_counter}][typeA][placeholder]"}%>
 | 
			
		||||
    <% end if show_type_panel(attribute_field,"typeA") != 'typeA hide' %>
 | 
			
		||||
 | 
			
		||||
    <%= content_tag :div,:class=>"field-type default fade in #{show_type_panel(attribute_field,"typeB")}" do %>
 | 
			
		||||
      <%= render :partial=>"shared/attribute_field/placeholder_block",:locals=>{:label_ext=>t(:initial),:values=>attribute_field["typeB"]["initial"],:field_name=>"#{@field_name}[seminar_signup_fields][#{@af_counter}][typeB][initial]"}%>
 | 
			
		||||
 | 
			
		||||
      <% if attribute_field.self_defined_markup_options?%>
 | 
			
		||||
        <%= render :partial=>"shared/attribute_field/list_block",:locals=>{:values=>attribute_field["option_list"],:field_name=> "#{@field_name}[seminar_signup_fields][#{@af_counter}][attribute][seminar][statuses]"} %>
 | 
			
		||||
      <%else #normal list%>
 | 
			
		||||
          <%= render :partial=>"shared/attribute_field/list_block",:locals=>{:values=>attribute_field["option_list"],:field_name=> "#{@field_name}[seminar_signup_fields][#{@af_counter}][typeB][option_list]"} %>
 | 
			
		||||
      <% end #of self_defined_markup_options?%>
 | 
			
		||||
      
 | 
			
		||||
    <% end if show_type_panel(attribute_field,"typeB") != 'typeB hide' %>
 | 
			
		||||
 | 
			
		||||
    <%= content_tag :div,:class=>"field-type default fade in #{show_type_panel(attribute_field,"typeC")}" do %>
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
          <label class="control-label"><%= t("date.format")%></label>
 | 
			
		||||
          <div class="controls">
 | 
			
		||||
            <%= select "#{@field_name}[seminar_signup_fields][#{@af_counter}][typeC]","format",Admin::AttributeValuesViewHelper::OPT,:class=>"dataType",:selected=>attribute_field["typeC"]["format"] %>
 | 
			
		||||
          </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
          <label class="control-label"><%= t("date.range")%></label>
 | 
			
		||||
          <div class="controls">
 | 
			
		||||
              <label class="radio inline">
 | 
			
		||||
                <%= radio_button("#{@field_name}[seminar_signup_fields][#{@af_counter}][typeC]", "is_range", "false",:checked => (!attribute_field.date_is_range? ? true : false)) %><%= t(:yes_)%>
 | 
			
		||||
              </label>
 | 
			
		||||
              <label class="radio inline">
 | 
			
		||||
                <%= radio_button("#{@field_name}[seminar_signup_fields][#{@af_counter}][typeC]", "is_range", "true",:checked => (attribute_field.date_is_range? ? true : false)) %><%= t(:no_)%>
 | 
			
		||||
              </label>
 | 
			
		||||
          </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
          <label class="control-label"><%= t("date.calendar")%></label>
 | 
			
		||||
          <div class="controls">
 | 
			
		||||
              <label class="radio inline">
 | 
			
		||||
                <%= radio_button("#{@field_name}[seminar_signup_fields][#{@af_counter}][typeC]", "calendar", "west_calendar",:checked =>(attribute_field["typeC"]["calendar"]== "west_calendar" ? true : false)) %><%= t("date.west_calendar")%>
 | 
			
		||||
              </label>
 | 
			
		||||
              <label class="radio inline">
 | 
			
		||||
                <%= radio_button("#{@field_name}[seminar_signup_fields][#{@af_counter}][typeC]", "calendar", "tw_calendar",:checked =>(attribute_field["typeC"]["calendar"]== "tw_calendar" ? true : false)) %><%= t("date.tw_calendar")%>
 | 
			
		||||
              </label>
 | 
			
		||||
          </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    <% end if show_type_panel(attribute_field,"typeC") != 'typeC hide' %>
 | 
			
		||||
 | 
			
		||||
    <%= content_tag :div,:class=>"field-type default fade in #{show_type_panel(attribute_field,"typeD")}" do%>
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
          <label class="control-label"><%= t(:enabled_for)%></label>
 | 
			
		||||
          <div class="controls">
 | 
			
		||||
              <label class="checkbox inline">
 | 
			
		||||
                <%= check_box_tag("#{@field_name}[seminar_signup_fields][#{@af_counter}][typeD][cross_lang]","true",attribute_field["typeD"]["cross_lang"]) %>
 | 
			
		||||
                <%= t(:cross_lang)%>
 | 
			
		||||
              </label>
 | 
			
		||||
          </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <%= render :partial=>"shared/attribute_field/placeholder_block",:locals=>{:field_name=>"#{@field_name}[seminar_signup_fields][#{@af_counter}][typeD][placeholder]",:values=>attribute_field["typeD"]["placeholder"]} %>
 | 
			
		||||
    <% end if show_type_panel(attribute_field,"typeD") != 'typeD hide' %>
 | 
			
		||||
 | 
			
		||||
    <%= content_tag :div,:class=>"field-type default fade in #{show_type_panel(attribute_field,"typeE")}" do%>
 | 
			
		||||
      <%= render :partial=>"shared/attribute_field/list_block",:locals=>{:field_name=>"#{@field_name}[seminar_signup_fields][#{@af_counter}][typeE][option_list]",:values=>attribute_field["typeE"]["option_list"]}%>
 | 
			
		||||
    <% end if show_type_panel(attribute_field,"typeE") != 'typeE hide' %>
 | 
			
		||||
 | 
			
		||||
    <%= hidden_field "#{@field_name}[seminar_signup_fields][#{@af_counter}]","id",:value=>attribute_field.id%>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,287 @@
 | 
			
		|||
<% 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/file-type" %>
 | 
			
		||||
  <%= javascript_include_tag "lib/module-area" %>  
 | 
			
		||||
<% 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="#signup" data-toggle="tab"><%= t('seminar.signup') %></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">
 | 
			
		||||
          <%= select_category(f, @module_app) %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <!-- Seminar Date Time Picker -->
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t('seminar.seminar_start_date') %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <%= f.datetime_picker :seminar_start_date, :no_label => true, :format=>"yyyy/MM/dd" %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t('seminar.seminar_end_date') %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <%= f.datetime_picker :seminar_end_date, :no_label => true, :format=>"yyyy/MM/dd" %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    <!-- Sign up Module -->
 | 
			
		||||
    <div class="tab-pane fade in " id="signup">
 | 
			
		||||
 | 
			
		||||
      <!-- host -->
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t("seminar.registration_status") %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
         <% ['G','C'].each do |t| %>
 | 
			
		||||
            <label class="checkbox inline">
 | 
			
		||||
              <input type="checkbox" name="seminar_main[registration_status][]" value="<%=t%>" <%=(!@seminar.registration_status.blank? and @seminar.registration_status.include?(t)) ? "checked" : "" %> ><%= t("seminar.registration_status_#{t}") %>
 | 
			
		||||
            </label>
 | 
			
		||||
         <% end %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div> 
 | 
			
		||||
 | 
			
		||||
      <!-- Sign up Date Time Picker -->
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t('seminar.signup_start_date') %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <%= f.datetime_picker :signup_start_date, :no_label => true, :format=>"yyyy/MM/dd" %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t('seminar.signup_end_date') %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <%= f.datetime_picker :signup_end_date, :no_label => true, :format=>"yyyy/MM/dd" %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <!-- Contribute Date Time Picker -->
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t('seminar.contribute_start_date') %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <%= f.datetime_picker :contribute_start_date, :no_label => true, :format=>"yyyy/MM/dd" %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t('seminar.contribute_end_date') %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <%= f.datetime_picker :contribute_end_date, :no_label => true, :format=>"yyyy/MM/dd" %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted"><%= t('seminar.contribute_file_count') %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <%= f.text_field :contribute_file_count %>
 | 
			
		||||
          (空白無限制)
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <!-- Language Tabs -->
 | 
			
		||||
  <div class="nav-name"><strong><%= t(:language) %></strong></div>
 | 
			
		||||
  <ul class="nav nav-pills language-nav">
 | 
			
		||||
    <% @site_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_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('seminar.title') %></label>
 | 
			
		||||
          <div class="controls">
 | 
			
		||||
            <%= f.fields_for :title_translations do |f| %>
 | 
			
		||||
              <%= f.text_field locale, class: "input-block-level", placeholder: t(:title), value: (@seminar.title_translations[locale] rescue nil) %>
 | 
			
		||||
            <% end %>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <!-- Speaker -->
 | 
			
		||||
        <div class="control-group input-title">
 | 
			
		||||
          <label class="control-label muted"><%= t('seminar.speaker') %></label>
 | 
			
		||||
          <div class="controls">
 | 
			
		||||
            <%= f.fields_for :speaker_translations do |f| %>
 | 
			
		||||
              <%= f.text_field locale, class: "input-block-level", placeholder: t('seminar.speaker'), value: (@seminar.speaker_translations[locale] rescue nil) %>
 | 
			
		||||
            <% end %>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <!-- Content -->
 | 
			
		||||
        <div class="control-group input-content">
 | 
			
		||||
          <label class="control-label muted"><%= t('seminar.content') %></label>
 | 
			
		||||
          <div class="controls">
 | 
			
		||||
            <div class="textarea">
 | 
			
		||||
              <%= f.fields_for :content_translations do |f| %>
 | 
			
		||||
                <%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@seminar.content_translations[locale] rescue nil) %>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <!-- Place-->
 | 
			
		||||
        <div class="control-group input-title">
 | 
			
		||||
          <label class="control-label muted"><%= t('seminar.act_place') %></label>
 | 
			
		||||
          <div class="controls">
 | 
			
		||||
            <%= f.fields_for :act_place_translations do |f| %>
 | 
			
		||||
              <%= f.text_field locale, class: "input-block-level", placeholder: t('seminar.act_place'), value: (@seminar.act_place_translations[locale] rescue nil) %>
 | 
			
		||||
            <% end %>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
    <% end %>
 | 
			
		||||
 | 
			
		||||
    <!-- Link -->
 | 
			
		||||
    <div class="control-group">
 | 
			
		||||
      <label class="control-label muted"><%= t(:link) %></label>
 | 
			
		||||
      <div class="controls add-input">
 | 
			
		||||
 | 
			
		||||
        <!-- Exist -->
 | 
			
		||||
        <% if @seminar && !@seminar.seminar_links.blank? %>
 | 
			
		||||
          <div class="exist">
 | 
			
		||||
            <% @seminar.seminar_links.each_with_index do |seminar_link, i| %>
 | 
			
		||||
              <%= f.fields_for :seminar_links, seminar_link do |f| %>
 | 
			
		||||
                <%= render :partial => 'form_link', :object => seminar_link, :locals => {:f => f, :i => i} %>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            <% end %> 
 | 
			
		||||
            <hr>
 | 
			
		||||
          </div>
 | 
			
		||||
        <% end %>
 | 
			
		||||
 | 
			
		||||
        <!-- Add -->
 | 
			
		||||
        <div class="add-target">
 | 
			
		||||
        </div>
 | 
			
		||||
        <p class="add-btn">
 | 
			
		||||
          <%= hidden_field_tag 'seminar_link_field_count', @seminar.seminar_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 @seminar && !@seminar.seminar_files.blank? %>
 | 
			
		||||
          <div class="exist">
 | 
			
		||||
            <% @seminar.seminar_files.each_with_index do |seminar_file, i| %>
 | 
			
		||||
              <%= f.fields_for :seminar_files, seminar_file do |f| %>
 | 
			
		||||
                <%= render :partial => 'form_file', :object => seminar_file, :locals => {:f => f, :i => i} %>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            <% end %> 
 | 
			
		||||
            <hr>
 | 
			
		||||
          </div>
 | 
			
		||||
        <% end %>
 | 
			
		||||
 | 
			
		||||
        <!-- Add -->
 | 
			
		||||
        <div class="add-target">
 | 
			
		||||
        </div>
 | 
			
		||||
        <p class="add-btn">
 | 
			
		||||
          <%= hidden_field_tag 'seminar_file_field_count', @seminar.seminar_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">
 | 
			
		||||
  <%= get_referer_url[:seminarion] rescue "" %>
 | 
			
		||||
  <%= f.submit t('submit'), class: 'btn btn-primary' %>
 | 
			
		||||
  <input type="hidden" name="referer_url" value="<%= get_referer_url %>">
 | 
			
		||||
  <%= link_to t('cancel'), admin_seminars_path, :class=>"btn" %>  
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<% content_for :page_specific_javascript do %>
 | 
			
		||||
  <script>
 | 
			
		||||
    $(function() {
 | 
			
		||||
      $("#main-wrap").after("");
 | 
			
		||||
 | 
			
		||||
      $(document).on('click', '#add_link', function(){
 | 
			
		||||
        var new_id = $(this).prev().attr('value');
 | 
			
		||||
        var old_id = new RegExp("new_seminar_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, :seminar_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_seminar_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, :seminar_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();
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
    });
 | 
			
		||||
  </script>
 | 
			
		||||
<% end %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,55 @@
 | 
			
		|||
<% if form_file.new_record? %>
 | 
			
		||||
  <div class="fileupload fileupload-new start-line" data-provides="fileupload">
 | 
			
		||||
<% else %>
 | 
			
		||||
  <div class="fileupload fileupload-exist start-line" data-provides="fileupload">
 | 
			
		||||
    <% if form_file.file.blank? %>
 | 
			
		||||
      <%= t(:no_file) %>
 | 
			
		||||
    <% else %>
 | 
			
		||||
      <%= link_to content_tag(:i) + form_file.file_identifier, form_file.file.url, {:class => 'file-link file-type', :target => '_blank', :title => form_file.file_identifier} %>
 | 
			
		||||
    <% end %>
 | 
			
		||||
<% end %>
 | 
			
		||||
  <div class="input-prepend input-append">
 | 
			
		||||
    <label>
 | 
			
		||||
      <span class="add-on btn btn-file" title='<%= t(:file_) %>'>
 | 
			
		||||
        <i class="icons-paperclip"></i>
 | 
			
		||||
        <%= f.file_field :file %>
 | 
			
		||||
      </span>
 | 
			
		||||
      <div class="uneditable-input input-medium">
 | 
			
		||||
        <i class="icon-file fileupload-exists"></i>
 | 
			
		||||
        <span class="fileupload-preview"><%= (form_file.new_record? || form_file.file.blank?) ? t(:select_file) : t(:change_file) %></span>
 | 
			
		||||
      </div>
 | 
			
		||||
    </label>
 | 
			
		||||
    <span class="add-on icons-pencil" title='<%= t(:alternative) %>'></span>
 | 
			
		||||
    <span class="tab-content">
 | 
			
		||||
      <% @site_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
        <span class="tab-pane fade <%= ( i == 0 ) ? "in active" : '' %> <%= locale %>">
 | 
			
		||||
          <%= f.fields_for :title_translations do |f| %>
 | 
			
		||||
            <%= f.text_field locale, :class => "input-medium", placeholder: t(:alternative), :value => (form_file.title_translations[locale] rescue nil) %>
 | 
			
		||||
          <% end %>
 | 
			
		||||
        </span>
 | 
			
		||||
      <% end %>
 | 
			
		||||
    </span>
 | 
			
		||||
    <span class="add-on icons-pencil" title='<%= t(:description) %>'></span>
 | 
			
		||||
    <span class="tab-content">
 | 
			
		||||
      <% @site_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
        <span class="tab-pane fade <%= ( i == 0 ) ? "in active" : '' %> <%= locale %>">
 | 
			
		||||
          <%= f.fields_for :description_translations do |f| %>
 | 
			
		||||
            <%= f.text_field locale, :class => "input-medium", placeholder: t(:description), :value => (form_file.description_translations[locale] rescue nil) %>
 | 
			
		||||
          <% end %>
 | 
			
		||||
        </span>
 | 
			
		||||
      <% end %>
 | 
			
		||||
    </span>
 | 
			
		||||
    </span>
 | 
			
		||||
    <% if form_file.new_record? %>
 | 
			
		||||
      <span class="delete_file add-on btn" title="<%= t(:delete_) %>">
 | 
			
		||||
        <a class="icon-trash"></a>
 | 
			
		||||
      </span>
 | 
			
		||||
    <% else %> 
 | 
			
		||||
      <span class="remove_existing_record add-on btn" title="<%= t(:remove) %>">
 | 
			
		||||
        <%= f.hidden_field :id %>
 | 
			
		||||
        <a class="icon-remove"></a>
 | 
			
		||||
        <%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %>
 | 
			
		||||
      </span>
 | 
			
		||||
    <% end %>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,26 @@
 | 
			
		|||
<div class="input-prepend input-append start-line">
 | 
			
		||||
  <span class="add-on icons-link" title="<%= t(:url) %>"></span>
 | 
			
		||||
  <%= f.text_field :url, class: "input-large", placeholder: t(:url) %>
 | 
			
		||||
  <span class="add-on icons-pencil" title="<%= t(:url_alt) %>"></span>
 | 
			
		||||
  <span class="tab-content">
 | 
			
		||||
    <% @site_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
      <span class="tab-pane fade <%= ( i == 0 ) ? "in active" : '' %> <%= locale %>">
 | 
			
		||||
        <%= f.fields_for :title_translations do |f| %>
 | 
			
		||||
          <%= f.text_field locale, :class => "input-large", placeholder: t(:url_alt), :value => (form_link.title_translations[locale] rescue nil) %>
 | 
			
		||||
        <% end %>
 | 
			
		||||
      </span>
 | 
			
		||||
    <% end %>
 | 
			
		||||
  </span>
 | 
			
		||||
  
 | 
			
		||||
  <% if form_link.new_record? %>
 | 
			
		||||
    <span class="delete_link add-on btn" title="<%= t(:delete_) %>">
 | 
			
		||||
      <a class="icon-trash"></a>
 | 
			
		||||
    </span>
 | 
			
		||||
  <% else %>  
 | 
			
		||||
    <span class="remove_existing_record add-on btn" title="<%= t(:remove) %>">
 | 
			
		||||
      <%= f.hidden_field :id %>
 | 
			
		||||
      <a class="icon-remove"></a>
 | 
			
		||||
      <%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %>
 | 
			
		||||
    </span>
 | 
			
		||||
  <% end %>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,47 @@
 | 
			
		|||
<script>
 | 
			
		||||
  if(document.querySelectorAll("#orbit-bar").length==0) location.reload();
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<table class="table main-list">
 | 
			
		||||
  <thead>
 | 
			
		||||
    <tr class="sort-header">
 | 
			
		||||
      <% @table_fields.each do |f| %>
 | 
			
		||||
        <% if f == 'seminar.title' %>
 | 
			
		||||
          <th class='span4'><%= t(f)%></th>
 | 
			
		||||
        <% else %>
 | 
			
		||||
          <%= thead(f) %>
 | 
			
		||||
        <% end %>
 | 
			
		||||
      <% end %>
 | 
			
		||||
    </tr>
 | 
			
		||||
  </thead>
 | 
			
		||||
  <tbody>
 | 
			
		||||
    <% @seminars.each do |seminar| %>
 | 
			
		||||
      <tr>
 | 
			
		||||
        <td><%= seminar.category.title %></td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <a href="<%= page_for_seminar(seminar) %>?method=show_data" target="_blank"><%= seminar.title %></a>
 | 
			
		||||
          <div class="quick-edit">
 | 
			
		||||
            <ul class="nav nav-pills">
 | 
			
		||||
              <% if can_edit_or_delete?(seminar) %>
 | 
			
		||||
                <li><a href="/admin/seminars/<%=seminar.id.to_s%>/edit"><%= t(:edit) %></a></li>
 | 
			
		||||
                <li><a href="<%= admin_seminar_item_contents_path(:seminar_main_id=>seminar.id.to_s) %>"><%= t('seminar.set_seminar_item_content') %></a></li>
 | 
			
		||||
                <li><a href="/admin/seminars/<%=seminar.id.to_s%>/seminar_signup_field"><%= t('seminar.set_seminar_signup_field') %></a></li>
 | 
			
		||||
                <li><a href="#" class="delete text-error" rel="/admin/seminars/<%=seminar.id.to_s%>"><%= t(:delete_) %></a></li>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </ul>
 | 
			
		||||
          </div>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td><%= SeminarMain.time_range(seminar.seminar_start_date, seminar.seminar_end_date) %></td>
 | 
			
		||||
        <td><%= SeminarMain.time_range(seminar.signup_start_date, seminar.signup_end_date) %></td>
 | 
			
		||||
        <td><a href="/admin/seminars/<%=seminar.id.to_s%>/seminar_signup"><%= seminar.seminar_signups.count %></a></td>
 | 
			
		||||
        <td><a href="/admin/seminars/<%=seminar.id.to_s%>/export?format=xlsx" target="_blank"><%= t('seminar.export') %></a></td>
 | 
			
		||||
      </tr>
 | 
			
		||||
    <% end %>
 | 
			
		||||
  </tbody>
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
<%=
 | 
			
		||||
  content_tag :div, class: "bottomnav clearfix" do
 | 
			
		||||
    content_tag :div, paginate(@seminars), class: "pagination pagination-centered"
 | 
			
		||||
  end
 | 
			
		||||
%>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,268 @@
 | 
			
		|||
<%#= encoding: utf-8 %>
 | 
			
		||||
 | 
			
		||||
<script id="template-attributes" type="text/x-tmpl">
 | 
			
		||||
  <div class="attributes">
 | 
			
		||||
    <div class="attributes-header clearfix">
 | 
			
		||||
      <input class="toggle-check" data-deploy="right" id="${_disabled[0]}" name="${_disabled[1]}" type="hidden" value="false">
 | 
			
		||||
      <a class="btn btn-mini pull-right btn-danger delete" href="#"><i class="icon-trash"></i> Delete</a>
 | 
			
		||||
      <a class="btn btn-mini pull-right btn-inverse reply hide" href="#"><i class="icons-reply"></i> Reply</a>
 | 
			
		||||
      <input class="attribute_field_to_delete" id="${_to_delete[0]}" name="${_to_delete[1]}" type="hidden" value="false">
 | 
			
		||||
      <h4>Field <span>${attributesHeaderLength}</span></h4>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="attributes-body">
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted" for="${_key[0]}"><%= t(:key) %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <input type="text" data-type="key" id="${_key[0]}" name="${_key[1]}" placeholder="<%= t(:key) %>">
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted" for=""><%= t(:name) %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <div class="input-append">
 | 
			
		||||
            <div class="tab-content">
 | 
			
		||||
            <% @site_in_use_locales.each do |locale| %>
 | 
			
		||||
              <% active = (locale == @site_in_use_locales.first ? "active" : "") %>
 | 
			
		||||
              <div class="tab-pane <%= active %> fade in" id="${_title_translations[0]+'_<%= locale%>'}">
 | 
			
		||||
                <input type="text" data-type="lang_<%= locale%>" name="${_title_translations[1]+'[<%= locale%>]'}" placeholder="<%= t(locale).to_s %>">
 | 
			
		||||
              </div>
 | 
			
		||||
            <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="btn-group" data-toggle="buttons-radio">
 | 
			
		||||
            <% @site_in_use_locales.each do |locale| %>
 | 
			
		||||
              <% active = (locale == @site_in_use_locales.first ? "active" : "") %>
 | 
			
		||||
              <a class="btn <%= active %>" href="${'#'+_title_translations[0]+'_<%= locale%>'}" data-toggle="tab"><%= t(locale).to_s %></a>
 | 
			
		||||
            <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted" for=""><%= t('seminar.to_require') %></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
            <label class="radio inline">
 | 
			
		||||
              <input type="radio" data-type="search_true" id="${_to_require[0]+'_true'}" name="${_to_require[1]}" value="true" checked=""> <%= t(:yes_)%>
 | 
			
		||||
            </label>
 | 
			
		||||
            <label class="radio inline">
 | 
			
		||||
              <input type="radio" data-type="search_false" id="${_to_require[0]+'_false'}" name="${_to_require[1]}" value="false"> <%= t(:no_)%>
 | 
			
		||||
            </label>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="control-group">
 | 
			
		||||
        <label class="control-label muted" for=""><%= t(:type)%></label>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <select class="dataType" data-type="select" name="${_markup}">
 | 
			
		||||
            <%LIST[:markups].each do |key,val|%>
 | 
			
		||||
            <% if key != 'address' %>
 | 
			
		||||
             <option  value="<%= key %>" ref="<%=val["panel"]%>"><%=t("lists.markups."+key)%></option >
 | 
			
		||||
            <% end %>
 | 
			
		||||
            <% end %>
 | 
			
		||||
          </select>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="field-type fade in typeA">
 | 
			
		||||
     <div class="control-group">
 | 
			
		||||
      <label class="control-label muted"><%= t(:enabled_for)%></label>
 | 
			
		||||
      <div class="controls">
 | 
			
		||||
          <label class="checkbox inline">
 | 
			
		||||
            <input type="checkbox" data-type="enable_monolingual" id="${_cross_lang[0]}" name="${_cross_lang[1]}" value="true">
 | 
			
		||||
            <%=  t(:cross_lang) %>
 | 
			
		||||
          </label>
 | 
			
		||||
          <label class="checkbox inline">
 | 
			
		||||
            <input type="checkbox" data-type="extendable_field" id="${_add_more[0]}" name="${_add_more[1]}" value="true">
 | 
			
		||||
            <%= t(:add_more)%>
 | 
			
		||||
          </label>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="control-group">
 | 
			
		||||
      <label class="control-label muted"><%= t(:placeholder) %></label>
 | 
			
		||||
      <div class="controls">
 | 
			
		||||
        <div class="input-append">
 | 
			
		||||
          <div class="tab-content">
 | 
			
		||||
 | 
			
		||||
            <% @site_in_use_locales.each do |locale| %>
 | 
			
		||||
              <% active = (locale == @site_in_use_locales.first ? "active" : "") %>
 | 
			
		||||
 | 
			
		||||
            <div class="tab-pane <%= active %> fade in" id="${_placeholder[0]+'_<%= locale %>'}">
 | 
			
		||||
              <input type="text" data-type="lang_<%= locale %>" placeholder="<%= t(locale).to_s %>" name="${_placeholder[1]+'[<%= locale %>]'}">
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            <% end %>
 | 
			
		||||
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="btn-group" data-toggle="buttons-radio">
 | 
			
		||||
 | 
			
		||||
            <% @site_in_use_locales.each do |locale| %>
 | 
			
		||||
              <% active = (locale == @site_in_use_locales.first ? "active" : "") %>
 | 
			
		||||
 | 
			
		||||
            <a class="btn <%= active %>" href="${'#'+_placeholder[0]+'_<%= locale %>'}" data-toggle="tab"><%= t(locale).to_s %></a>
 | 
			
		||||
            <% end %>
 | 
			
		||||
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<script id="template-type" type="text/x-tmpl">
 | 
			
		||||
  {{if templateType == 'typeA' || templateType == 'typeD' || templateType == 'typeG'}}
 | 
			
		||||
    <div class="control-group">
 | 
			
		||||
      <label class="control-label muted"><%= t(:enabled_for)%></label>
 | 
			
		||||
      <div class="controls">
 | 
			
		||||
        {{if templateType == 'typeA' || templateType == 'typeD'}}
 | 
			
		||||
          <label class="checkbox inline">
 | 
			
		||||
            <input type="checkbox" data-type="enable_monolingual" id="${_cross_lang[0]}" name="${_cross_lang[1]}" value="true">
 | 
			
		||||
            <%=  t(:cross_lang) %>
 | 
			
		||||
          </label>
 | 
			
		||||
        {{/if}}
 | 
			
		||||
        {{if templateType == 'typeA' || templateType == 'typeG'}}
 | 
			
		||||
          <label class="checkbox inline">
 | 
			
		||||
            <input type="checkbox" data-type="extendable_field" id="${_add_more[0]}" name="${_add_more[1]}" value="true">
 | 
			
		||||
            <%= t(:add_more)%>
 | 
			
		||||
          </label>
 | 
			
		||||
        {{/if}}
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  {{/if}}
 | 
			
		||||
 | 
			
		||||
  {{if templateType == 'typeA' || templateType == 'typeB' || templateType == 'typeD'}}
 | 
			
		||||
    <div class="control-group">
 | 
			
		||||
      <label class="control-label muted">
 | 
			
		||||
        {{if templateType == 'typeB'}}
 | 
			
		||||
          <%= t(:initial) %>
 | 
			
		||||
        {{else}}
 | 
			
		||||
          <%= t(:placeholder) %>
 | 
			
		||||
        {{/if}}
 | 
			
		||||
      </label>
 | 
			
		||||
      <div class="controls">
 | 
			
		||||
        <div class="input-append">
 | 
			
		||||
          <div class="tab-content">
 | 
			
		||||
 | 
			
		||||
            <% @site_in_use_locales.each do |locale| %>
 | 
			
		||||
              <% active = (locale == @site_in_use_locales.first ? "active" : "") %>
 | 
			
		||||
 | 
			
		||||
            <div class="tab-pane <%= active %> fade in" id=
 | 
			
		||||
              {{if templateType == 'typeB'}}
 | 
			
		||||
                "${_initial[0]+'_<%= locale %>'}"
 | 
			
		||||
              {{else}}
 | 
			
		||||
                "${_placeholder[0]+'_<%= locale %>'}"
 | 
			
		||||
              {{/if}}
 | 
			
		||||
            >
 | 
			
		||||
              <input type="text" data-type="lang_<%= locale %>" placeholder="<%= t(locale).to_s %>" name=
 | 
			
		||||
                {{if templateType == 'typeB'}}
 | 
			
		||||
                  "${_initial[1]+'[<%= locale %>]' }"
 | 
			
		||||
                {{else}}
 | 
			
		||||
                  "${_placeholder[1]+'[<%= locale %>]'}"
 | 
			
		||||
                {{/if}}
 | 
			
		||||
              >
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            <% end %>
 | 
			
		||||
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="btn-group" data-toggle="buttons-radio">
 | 
			
		||||
 | 
			
		||||
            <% @site_in_use_locales.each do |locale| %>
 | 
			
		||||
              <% active = (locale == @site_in_use_locales.first ? "active" : "") %>
 | 
			
		||||
 | 
			
		||||
            <a class="btn <%= active %>" href=
 | 
			
		||||
              {{if templateType == 'typeB'}}
 | 
			
		||||
                "${'#'+_initial[0]+'_<%= locale %>'}"
 | 
			
		||||
              {{else}}
 | 
			
		||||
                "${'#'+_placeholder[0]+'_<%= locale %>'}"
 | 
			
		||||
              {{/if}}
 | 
			
		||||
            data-toggle="tab"><%= t(locale).to_s %></a>
 | 
			
		||||
 | 
			
		||||
            <% end %>
 | 
			
		||||
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  {{/if}}
 | 
			
		||||
 | 
			
		||||
  {{if templateType == 'typeB' || templateType == 'typeE' || templateType == 'typeF'}}
 | 
			
		||||
    <div class="control-group">
 | 
			
		||||
      <label class="control-label muted" for=""><%= t(:options)%></label>
 | 
			
		||||
      <div class="controls add-input">
 | 
			
		||||
        <div class="add-target single">
 | 
			
		||||
          <%= content_tag :div,:class=>"input-append" do%>
 | 
			
		||||
            <% @site_in_use_locales.each do |locale| %>
 | 
			
		||||
              <% last = (locale == @site_in_use_locales.last ? true : false) %>
 | 
			
		||||
                <input type="text" data-type="${_option_list[2]+'_<%= locale %>' }" id="${_option_list[0]+'_<%= locale %>'}" name="${_option_list[1]+'[<%= locale %>]'}" class="input-medium" placeholder="<%= t(locale).to_s %>">
 | 
			
		||||
                <% if last %>
 | 
			
		||||
                  <a href="#" class="btn remove-input"> <i class="icon-trash"></i> </a> 
 | 
			
		||||
                <% end %>
 | 
			
		||||
            <% end %>
 | 
			
		||||
          <% end %>
 | 
			
		||||
        </div>
 | 
			
		||||
        <p class="add-btn">
 | 
			
		||||
          <a href="#" class="${templateType+' trigger btn btn-mini btn-primary'}"><i class="icons-plus"></i> Add</a>
 | 
			
		||||
        </p>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  {{/if}}
 | 
			
		||||
 | 
			
		||||
  {{if templateType == 'typeC'}}
 | 
			
		||||
    <div class="control-group">
 | 
			
		||||
      <label class="control-label muted" for=""><%= t("date.format")%></label>
 | 
			
		||||
      <div class="controls">
 | 
			
		||||
        <select data-type="date" id="${_format[0]}" name="${_format[1]}">
 | 
			
		||||
          <option value="format1">YYYY / MM / DD hh : mm</option>
 | 
			
		||||
          <option value="format2">YYYY / MM / DD</option>
 | 
			
		||||
          <option value="format3">YYYY / MM</option>
 | 
			
		||||
          <option value="format4">YYYY</option>
 | 
			
		||||
        </select>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="control-group">
 | 
			
		||||
      <label class="control-label muted" for=""><%= t("date.range")%></label>
 | 
			
		||||
      <div class="controls">
 | 
			
		||||
        <label class="radio inline">
 | 
			
		||||
          <input type="radio" data-type="time_period_flase" id="${_is_range[0]+'_false'}" name="${_is_range[1]}" value="false" checked="checked"> <%= t(:yes_)%>
 | 
			
		||||
        </label>
 | 
			
		||||
        <label class="radio inline">
 | 
			
		||||
          <input type="radio" data-type="time_period_true" id="${_is_range[0]+'_true'}" name="${_is_range[1]}" value="true"> <%= t(:no_)%>
 | 
			
		||||
        </label>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="control-group">
 | 
			
		||||
      <label class="control-label muted" for=""><%= t("date.calendar")%></label>
 | 
			
		||||
      <div class="controls">
 | 
			
		||||
        <label class="radio inline">
 | 
			
		||||
          <input type="radio" data-type="calendar_ac" id="${_calendar[0]+'_west_calendar'}" name="${_calendar[1]}" value="west_calendar" checked="checked"> <%= t("date.west_calendar")%>
 | 
			
		||||
        </label>
 | 
			
		||||
        <label class="radio inline">
 | 
			
		||||
          <input type="radio" data-type="calendar_roc" id="${_calendar[0]+'_tw_calendar'}" name="${_calendar[1]}" value="tw_calendar"> <%= t("date.tw_calendar")%>
 | 
			
		||||
        </label>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  {{/if}}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<script id="template-input-append" type="text/x-tmpl">
 | 
			
		||||
  <%= content_tag :div,:class=>"input-append" do%>
 | 
			
		||||
    <% @site_in_use_locales.each do |locale| %>
 | 
			
		||||
      <% last = (locale == @site_in_use_locales.last ? true : false) %>
 | 
			
		||||
        <input type="text" data-type="${_option_list[2]+'_<%= locale %>' }" id="${_option_list[0]+'_<%= locale %>'}" name="${_option_list[1]+'[<%= locale %>]'}" class="input-medium" placeholder="<%= t(locale).to_s %>">
 | 
			
		||||
        <% if last %>
 | 
			
		||||
          <a href="#" class="btn remove-input"> <i class="icon-trash"></i> </a> 
 | 
			
		||||
        <% end %>
 | 
			
		||||
    <% end %>
 | 
			
		||||
  <% end %>
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script id="template-text" type="text/x-tmpl">
 | 
			
		||||
  <div class="input-append">
 | 
			
		||||
    <input type="text" id="${'text'+_text[0]}" name="${_text[1]+'[text]'}" class="input-medium" placeholder="Text">
 | 
			
		||||
    <a href="#" class="btn remove-input">
 | 
			
		||||
      <i class="icon-trash"></i>
 | 
			
		||||
    </a>
 | 
			
		||||
  </div>
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
<%= form_for @seminar, url: admin_seminar_path(@seminar), html: {class: "form-horizontal main-forms"} do |f| %>
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    <%= render :partial => 'form', locals: {f: f} %>
 | 
			
		||||
  </fieldset>
 | 
			
		||||
<% end %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,54 @@
 | 
			
		|||
# encoding: utf-8
 | 
			
		||||
 | 
			
		||||
wb = xlsx_package.workbook
 | 
			
		||||
 | 
			
		||||
wb.add_worksheet(name: @seminar.title) do |sheet|
 | 
			
		||||
 | 
			
		||||
  row = [t('seminar_signup.signup_time')]
 | 
			
		||||
 | 
			
		||||
  row << t('seminar_signup.name')
 | 
			
		||||
  
 | 
			
		||||
  row << t('seminar_signup.unit')
 | 
			
		||||
 | 
			
		||||
  row << t('seminar_signup.tel')
 | 
			
		||||
 | 
			
		||||
  row << t('seminar_signup.phone')
 | 
			
		||||
 | 
			
		||||
  row << t('seminar_signup.fax')
 | 
			
		||||
 | 
			
		||||
  row << t('seminar_signup.address')
 | 
			
		||||
 | 
			
		||||
  row << t(:email)
 | 
			
		||||
 | 
			
		||||
  row << t('seminar_signup.note')
 | 
			
		||||
 | 
			
		||||
  @seminar.seminar_signup_fields.asc(:_id).each  do |rf| 
 | 
			
		||||
    row << rf.title
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  sheet.add_row row
 | 
			
		||||
 | 
			
		||||
  @seminar.seminar_signups.each do |signup|
 | 
			
		||||
 | 
			
		||||
    row2 = []
 | 
			
		||||
 | 
			
		||||
    row2 << "#{signup.created_at} "
 | 
			
		||||
    row2 << "#{signup[:name]} "
 | 
			
		||||
    row2 << "#{signup.unit} "
 | 
			
		||||
    row2 << "#{signup[:tel]} "
 | 
			
		||||
    row2 << "#{signup[:phone]} "
 | 
			
		||||
    row2 << "#{signup[:fax]} "
 | 
			
		||||
    row2 << "#{signup.address} "
 | 
			
		||||
    row2 << "#{signup[:email]} "
 | 
			
		||||
    row2 << "#{signup.note} "
 | 
			
		||||
 | 
			
		||||
    @seminar.seminar_signup_fields.asc(:_id).each  do |rf| 
 | 
			
		||||
      row2 << nl2br(show_attribute_value(@seminar.get_attribute_value(rf,signup.id).get_value_by_locale(I18n.locale))) rescue ' '
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    sheet.add_row row2
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
<%=  render_filter @filter_fields, "index_table" %>
 | 
			
		||||
<span id="index_table">
 | 
			
		||||
  <%= render 'index'%>
 | 
			
		||||
</span>
 | 
			
		||||
 | 
			
		||||
<%= render 'layouts/delete_modal', delete_options: @delete_options %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
<%= form_for @seminar, url: admin_seminars_path, html: {class: "form-horizontal main-forms"} do |f| %>
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    <%= render :partial => 'form', locals: {f: f} %>
 | 
			
		||||
  </fieldset>
 | 
			
		||||
<% end %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,44 @@
 | 
			
		|||
 | 
			
		||||
<span id="index_table">
 | 
			
		||||
	<script>
 | 
			
		||||
  if(document.querySelectorAll("#orbit-bar").length==0) location.reload();
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<h4><%= @seminar.title %></h4>
 | 
			
		||||
 | 
			
		||||
<table class="table main-list">
 | 
			
		||||
  <thead>
 | 
			
		||||
    <tr class="sort-header">
 | 
			
		||||
     <th class='span2'><%= t('seminar_item_content.name')%></th>
 | 
			
		||||
    </tr>
 | 
			
		||||
  </thead>
 | 
			
		||||
  <tbody>
 | 
			
		||||
    <% @seminar_item_contents.each do |seminar_item_content| %>
 | 
			
		||||
      <tr>
 | 
			
		||||
        <td>
 | 
			
		||||
          <%= seminar_item_content.content %>
 | 
			
		||||
          <div class="quick-edit">
 | 
			
		||||
            <ul class="nav nav-pills">
 | 
			
		||||
              <% if can_edit_or_delete?(act_signup) %>
 | 
			
		||||
                <li><a href="/admin/seminar_item_contents/<%=seminar_item_content.id.to_s%>/edit"><%= t(:edit) %></a></li>
 | 
			
		||||
                <li><a href="#" class="delete text-error" rel="/admin/seminar_item_contents/<%=seminar_item_content.id.to_s%>"><%= t(:delete_) %></a></li>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </ul>
 | 
			
		||||
          </div>
 | 
			
		||||
        </td>
 | 
			
		||||
      </tr>
 | 
			
		||||
    <% end %>
 | 
			
		||||
  </tbody>
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
<%= link_to content_tag(:i, nil, :class => 'icon-plus') +' '+ t('new_'), 
 | 
			
		||||
          '/admin/seminar_item_contents/'+@member.to_param+'/journal_papers/new', :class => 'btn btn-primary' %>
 | 
			
		||||
          
 | 
			
		||||
<%=
 | 
			
		||||
  content_tag :div, class: "bottomnav clearfix" do
 | 
			
		||||
    content_tag :div, paginate(@seminar_item_contents), class: "pagination pagination-centered"
 | 
			
		||||
  end
 | 
			
		||||
%>
 | 
			
		||||
</span>
 | 
			
		||||
 | 
			
		||||
<%= render 'layouts/delete_modal', delete_options: @delete_options %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,60 @@
 | 
			
		|||
 | 
			
		||||
<span id="index_table">
 | 
			
		||||
	<script>
 | 
			
		||||
  if(document.querySelectorAll("#orbit-bar").length==0) location.reload();
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<form id="module-search-form">
 | 
			
		||||
<div class="sc-field">
 | 
			
		||||
<input id="filter-input" class="search-query input-medium" type="text" name="search" value="<%= params[:search] %>" placeholder="搜尋">
 | 
			
		||||
</div>
 | 
			
		||||
</form>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h4><%= @seminar.title %></h4>
 | 
			
		||||
 | 
			
		||||
<table class="table main-list">
 | 
			
		||||
  <thead>
 | 
			
		||||
    <tr class="sort-header">
 | 
			
		||||
     <th class='span2'><%= t('seminar_signup.name')%></th>
 | 
			
		||||
     <th class='span2'><%= t('seminar.registration_status')%></th>
 | 
			
		||||
     <th class='span2'><%= t('seminar_signup.uploads')%></th>
 | 
			
		||||
    </tr>
 | 
			
		||||
  </thead>
 | 
			
		||||
  <tbody>
 | 
			
		||||
    <% @seminar_signups.each do |seminar_signup| %>
 | 
			
		||||
      <tr>
 | 
			
		||||
        <td>
 | 
			
		||||
          <%= seminar_signup.name %>
 | 
			
		||||
          <div class="quick-edit">
 | 
			
		||||
            <ul class="nav nav-pills">
 | 
			
		||||
              <% if can_edit_or_delete?(seminar_signup) %>
 | 
			
		||||
                <li><a href="/admin/seminar_signups/<%=seminar_signup.id.to_s%>/edit"><%= t(:edit) %></a></li>
 | 
			
		||||
                <li><a href="#" class="delete text-error" rel="/admin/seminar_signups/<%=seminar_signup.id.to_s%>"><%= t(:delete_) %></a></li>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </ul>
 | 
			
		||||
          </div>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td><%= t("seminar.registration_status_#{seminar_signup.status}") if !seminar_signup.status.blank? %></td>
 | 
			
		||||
        <td>
 | 
			
		||||
          <ul>
 | 
			
		||||
          <% seminar_signup.seminar_signup_contributes.collect do |seminar_signup_contribute| %>
 | 
			
		||||
          <li><%= link_to (seminar_signup_contribute.title.blank? ? File.basename(seminar_signup_contribute.file.path) : seminar_signup_contribute.title) , seminar_signup_contribute.file.url, {:target => '_blank', :title => seminar_signup_contribute.description} if seminar_signup_contribute.file.file           
 | 
			
		||||
          %></li>
 | 
			
		||||
          <% end %>
 | 
			
		||||
          </ul>
 | 
			
		||||
        </td>
 | 
			
		||||
      </tr>
 | 
			
		||||
    <% end %>
 | 
			
		||||
  </tbody>
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
<%=
 | 
			
		||||
  content_tag :div, class: "bottomnav clearfix" do
 | 
			
		||||
    content_tag :div, paginate(@seminar_signups), class: "pagination pagination-centered"
 | 
			
		||||
  end
 | 
			
		||||
%>
 | 
			
		||||
</span>
 | 
			
		||||
 | 
			
		||||
<%= render 'layouts/delete_modal', delete_options: @delete_options %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,37 @@
 | 
			
		|||
<% content_for :page_specific_css do -%>
 | 
			
		||||
    <%= stylesheet_link_tag "lib/wrap-nav.css" %>
 | 
			
		||||
    <%= stylesheet_link_tag "lib/pageslide.css" %>
 | 
			
		||||
    <%= stylesheet_link_tag "lib/main-forms.css" %>
 | 
			
		||||
    <%= stylesheet_link_tag "lib/togglebox.css" %>
 | 
			
		||||
<% end -%>
 | 
			
		||||
 | 
			
		||||
<% content_for :page_specific_javascript do -%>
 | 
			
		||||
    <%= javascript_include_tag "lib/jquery.tmpl.min.js" %>
 | 
			
		||||
    <%= javascript_include_tag "field-forms.js" %>
 | 
			
		||||
<% end -%>
 | 
			
		||||
 | 
			
		||||
<%= form_for @attribute,:url => admin_seminar_path(@attribute) , :html => { :class=> "form-horizontal main-forms" } do |f| %>
 | 
			
		||||
  <% if flash.now[:notice].present? %>
 | 
			
		||||
    <%= flash.now[:notice]%>
 | 
			
		||||
  <% end %>
 | 
			
		||||
 | 
			
		||||
  <h3><%= @attribute.title %></h3>
 | 
			
		||||
  <fieldset>
 | 
			
		||||
 | 
			
		||||
    <div id="attributes-area" class="input-area">
 | 
			
		||||
      <%= render partial: "attribute_field",collection: @attribute.seminar_signup_fields.asc(:_id)%>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="form-actions">
 | 
			
		||||
      <button type="button" class="btn btn-success add-attributes"><%= t(:add_attribute_field) %></button>
 | 
			
		||||
      <%= hidden_field_tag 'id', params[:id] if !params[:id].blank? %>
 | 
			
		||||
      <%= f.submit t(:submit),:class=>"btn btn-primary"%>  
 | 
			
		||||
      <%= link_to t('cancel'), get_go_back, :class=>"btn" %>              
 | 
			
		||||
    </div>
 | 
			
		||||
  </fieldset>
 | 
			
		||||
<% end %>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<% content_for :page_specific_javascript do -%>
 | 
			
		||||
  <%= render 'support_member_form_js' %>
 | 
			
		||||
<% end -%>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,59 @@
 | 
			
		|||
<% # encoding: utf-8 %>
 | 
			
		||||
<% 
 | 
			
		||||
	data = action_data 
 | 
			
		||||
  @con = data["con"]
 | 
			
		||||
  @seminar = data["seminar"]
 | 
			
		||||
	@seminar_signup = data["seminar_signup"]
 | 
			
		||||
%>
 | 
			
		||||
<% if !session[:seminar_signup_id].blank? %>
 | 
			
		||||
 | 
			
		||||
  <% if ( @seminar.contribute_file_count.blank? or @seminar_signup.seminar_signup_contributes.count < @seminar.contribute_file_count.to_i )  %>
 | 
			
		||||
 | 
			
		||||
<%= form_for @con, url: add_file_proc_seminars_path, html: {class: "content form-horizontal" , :id=>"new-seminar-signup-contribute"} do |f| %>
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="file_name" class="col-sm-2 control-label">*<%= t('seminar_signup.file_name') %></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
          <%= f.text_field :title, :class=>"input-medium form-control", :id=>'name', :placeholder=> t('seminar_signup.file_name'), :required => true %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="note" class="col-sm-2 control-label"><%= t('seminar_signup.file_note') %></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
          <%= f.text_area :description, rows: 5, :class=>"input-medium form-control", :placeholder=> t('seminar_signup.file_note') %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="file" class="col-sm-2 control-label"><%= t('seminar_signup.files') %></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
         <%= f.file_field :file %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <div class="col-sm-offset-2 col-sm-10">
 | 
			
		||||
          <input type="hidden" name="referer_url" value="<%= request.original_url.split(request.env["HTTP_HOST"]).last.split('?').first %>">
 | 
			
		||||
          <input type="hidden" name="seminar_signup_contribute[seminar_signup_id]" value="<%= session[:seminar_signup_id] %>">
 | 
			
		||||
          <%= f.submit t('submit'), class: 'btn btn-primary', :id => 'button-mail' %>
 | 
			
		||||
          <%= f.button t('cancel'), type: 'reset', class: 'btn' %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
<% end %>
 | 
			
		||||
 | 
			
		||||
<% else %>
 | 
			
		||||
 | 
			
		||||
上傳檔案數已滿
 | 
			
		||||
 | 
			
		||||
<% end %>
 | 
			
		||||
 | 
			
		||||
<% else %>
 | 
			
		||||
 | 
			
		||||
請先登入
 | 
			
		||||
<br />
 | 
			
		||||
<a href="<%= page_for_seminar_url %>">回列表頁</a>
 | 
			
		||||
 | 
			
		||||
<% end %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
<% # encoding: utf-8 %>
 | 
			
		||||
<% 
 | 
			
		||||
	data = action_data 
 | 
			
		||||
%>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,10 @@
 | 
			
		|||
<% # encoding: utf-8 %>
 | 
			
		||||
<% 
 | 
			
		||||
	data = action_data 
 | 
			
		||||
	result = data["result"]
 | 
			
		||||
%>
 | 
			
		||||
 | 
			
		||||
<center>
 | 
			
		||||
<p><%= result %> </p>
 | 
			
		||||
<a onClick="window.close()">關閉視窗</a>
 | 
			
		||||
</center>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,53 @@
 | 
			
		|||
<% # encoding: utf-8 %>
 | 
			
		||||
<% 
 | 
			
		||||
	data = action_data 
 | 
			
		||||
  @seminar = data["seminar"]
 | 
			
		||||
	@time_now = data["time_now"]
 | 
			
		||||
%>
 | 
			
		||||
 | 
			
		||||
<% if @seminar.contribute_start_date <= @time_now and (@seminar.contribute_end_date.nil? or @seminar.contribute_end_date+1 >= @time_now ) %>
 | 
			
		||||
 | 
			
		||||
<section id="main-wrap">
 | 
			
		||||
  <div class="sign-in have-other-sign-in">
 | 
			
		||||
    <% flash.each do |key, msg| %>
 | 
			
		||||
      <%= content_tag :p, msg, :class => [key, "alert alert-error in fade"] %>
 | 
			
		||||
    <% end %>
 | 
			
		||||
    <div class="form">
 | 
			
		||||
      <h2><%= @seminar.title %></h2>
 | 
			
		||||
      <h3 class="login-logo"><%= t('seminar_signup.con_login') %></h3>
 | 
			
		||||
      <div>
 | 
			
		||||
        <input name="utf8" type="hidden" value="" />
 | 
			
		||||
        <input name="authenticity_token" type="hidden" value="" />
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="form-block">
 | 
			
		||||
        <div class="form-list clearfix">
 | 
			
		||||
          <%= form_tag con_login_proc_seminars_path, :class => 'content' do %>
 | 
			
		||||
            <div class="control-group clear">
 | 
			
		||||
              <label for="user_email">
 | 
			
		||||
                <i class="icon-user"></i>
 | 
			
		||||
              </label>
 | 
			
		||||
              <%= text_field_tag :user_name, params[:user_name], :placeholder => t("users.user_id"), :id=>"user_email" %>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="control-group clear">
 | 
			
		||||
              <label for="user_password">
 | 
			
		||||
                <i class="icon-lock"></i>
 | 
			
		||||
              </label>
 | 
			
		||||
              <%= password_field_tag :password, nil, :placeholder => t(:dots), :id=>"user_password" %>
 | 
			
		||||
            </div>
 | 
			
		||||
            <br/>  
 | 
			
		||||
            <input type="hidden" name="referer_url" value="<%= request.original_url.split(request.env["HTTP_HOST"]).last.split('?').first %>">
 | 
			
		||||
            <input type="hidden" name="seminar_signup[seminar_main_id]" value="<%= @seminar.id %>">
 | 
			
		||||
            <button class="btn btn-primary" name="button" type="submit"><%= t(:login) %></button>
 | 
			
		||||
          <% end %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <br/>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</section>
 | 
			
		||||
 | 
			
		||||
<% else %>
 | 
			
		||||
 | 
			
		||||
已截止
 | 
			
		||||
 | 
			
		||||
<% end %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,13 @@
 | 
			
		|||
<% # encoding: utf-8 %>
 | 
			
		||||
<% 
 | 
			
		||||
  # data = action_data 
 | 
			
		||||
 | 
			
		||||
  session[:seminar_signup_id] = nil
 | 
			
		||||
  session[:seminar_main_id] = nil
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
%>
 | 
			
		||||
 | 
			
		||||
<%= t('seminar_signup.logouting') %>
 | 
			
		||||
 | 
			
		||||
<script>document.location.href="<%= page_for_seminar_url %>";</script>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,71 @@
 | 
			
		|||
<% # encoding: utf-8 %>
 | 
			
		||||
<% 
 | 
			
		||||
	data = action_data 
 | 
			
		||||
	@seminar = data["seminar"]
 | 
			
		||||
	@seminar_signup = data["seminar_signup"]
 | 
			
		||||
	@time_now = data["time_now"]
 | 
			
		||||
%>
 | 
			
		||||
<% if @seminar.contribute_start_date <= @time_now and ( @seminar.contribute_end_date.nil? or @seminar.contribute_end_date+1 >= @time_now ) %>
 | 
			
		||||
 | 
			
		||||
	<% if !session[:seminar_signup_id].blank? %>
 | 
			
		||||
 | 
			
		||||
	<a href="<%= OrbitHelper.url_to_show(@seminar.to_param) %>?method=con_logout&con_no=<%= @seminar.id %>" class='btn btn-primary'><%= t('seminar_signup.logout') %></a>
 | 
			
		||||
 | 
			
		||||
	<table class="table table-hover table-striped seminar-index">
 | 
			
		||||
		<caption>
 | 
			
		||||
			<h3><%= @seminar.title %></h3>
 | 
			
		||||
		</caption>
 | 
			
		||||
		<thead>
 | 
			
		||||
			<tr>
 | 
			
		||||
				<th class="col-md-2"><%= t('seminar_signup.file_name') %></th>
 | 
			
		||||
				<th class="col-md-2"><%= t('seminar_signup.file_note') %></th>
 | 
			
		||||
				<th class="col-md-2"><%= t('seminar_signup.files') %></th>
 | 
			
		||||
				<th class="col-md-2"><%= t(:action) %></th>
 | 
			
		||||
			</tr>
 | 
			
		||||
		</thead>
 | 
			
		||||
		<tbody>
 | 
			
		||||
			<% 
 | 
			
		||||
				@seminar_signup.seminar_signup_contributes.each do |seminar_signup_contribute| 	
 | 
			
		||||
			%>
 | 
			
		||||
			<tr>
 | 
			
		||||
				<td><%= seminar_signup_contribute.title %></td>
 | 
			
		||||
				<td><%= seminar_signup_contribute.description %></td>
 | 
			
		||||
				<td><%= link_to (seminar_signup_contribute.title.blank? ? File.basename(seminar_signup_contribute.file.path) : seminar_signup_contribute.title) , seminar_signup_contribute.file.url, {:target => '_blank', :title => seminar_signup_contribute.description} if seminar_signup_contribute.file.file %></td>
 | 
			
		||||
				<td>
 | 
			
		||||
					<%= link_to t(:edit), OrbitHelper.url_to_show(@seminar.to_param) + '?method=edit_file&con_no=' + seminar_signup_contribute.id, :class => 'btn btn-primary' %> 
 | 
			
		||||
					<form method="post" action="<%= del_file_seminars_path %>">
 | 
			
		||||
	  					<%= submit_tag t(:delete_), class: "btn btn-primary" %>
 | 
			
		||||
	          			<input type="hidden" name="referer_url" value="<%= request.original_url.split(request.env["HTTP_HOST"]).last.split('?').first %>">
 | 
			
		||||
	  					<input type="hidden" name="con_no" value="<%= seminar_signup_contribute.id %>">
 | 
			
		||||
					</form>
 | 
			
		||||
 | 
			
		||||
				</td>
 | 
			
		||||
			</tr>
 | 
			
		||||
			<% end %>
 | 
			
		||||
		</tbody>
 | 
			
		||||
	</table>
 | 
			
		||||
 | 
			
		||||
	<% if ( @seminar.contribute_file_count.blank? or @seminar_signup.seminar_signup_contributes.count < @seminar.contribute_file_count.to_i ) %>
 | 
			
		||||
 | 
			
		||||
	<%= link_to content_tag(:i, nil, :class => 'icon-plus') +' '+ t('new_'), OrbitHelper.url_to_show(@seminar.to_param) + '?method=add_file', :class => 'btn btn-primary' %>
 | 
			
		||||
 | 
			
		||||
	<% end %>
 | 
			
		||||
 | 
			
		||||
	<br />
 | 
			
		||||
	<br />
 | 
			
		||||
	檔案上限: <%= @seminar.contribute_file_count.blank? ? '無' : @seminar.contribute_file_count %>
 | 
			
		||||
 | 
			
		||||
	<% else %>
 | 
			
		||||
 | 
			
		||||
	請先登入
 | 
			
		||||
	<br />
 | 
			
		||||
	<a href="<%= page_for_seminar_url %>">回列表頁</a>
 | 
			
		||||
 | 
			
		||||
	<% end %>
 | 
			
		||||
 | 
			
		||||
<% else %>
 | 
			
		||||
 | 
			
		||||
已截止
 | 
			
		||||
 | 
			
		||||
<% end %>
 | 
			
		||||
          
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,46 @@
 | 
			
		|||
<% # encoding: utf-8 %>
 | 
			
		||||
<% 
 | 
			
		||||
	data = action_data 
 | 
			
		||||
	@con = data["con"]
 | 
			
		||||
%>
 | 
			
		||||
<% if !session[:seminar_signup_id].blank? %>
 | 
			
		||||
 | 
			
		||||
<%= form_for @con, url: edit_file_proc_seminars_path, html: {class: "content form-horizontal" , :id=>"new-seminar-signup-contribute"} do |f| %>
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="file_name" class="col-sm-2 control-label">*<%= t('seminar_signup.file_name') %></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
          <%= f.text_field :title, :class=>"input-medium form-control", :id=>'name', :placeholder=> t('seminar_signup.file_name'), :required => true %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="note" class="col-sm-2 control-label"><%= t('seminar_signup.file_note') %></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
          <%= f.text_area :description, rows: 5, :class=>"input-medium form-control", :placeholder=> t('seminar_signup.file_note') %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="file" class="col-sm-2 control-label"><%= t('seminar_signup.files') %></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
         <%= f.file_field :file %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <div class="col-sm-offset-2 col-sm-10">
 | 
			
		||||
          <input type="hidden" name="referer_url" value="<%= request.original_url.split(request.env["HTTP_HOST"]).last.split('?').first %>">
 | 
			
		||||
          <input type="hidden" name="seminar_signup_contribute[id]" value="<%= @con[:_id] %>">
 | 
			
		||||
          <input type="hidden" name="seminar_signup_contribute[seminar_signup_id]" value="<%= session[:seminar_signup_id] %>">
 | 
			
		||||
          <%= f.submit t('submit'), class: 'btn btn-primary', :id => 'button-mail' %>
 | 
			
		||||
          <%= f.button t('cancel'), type: 'reset', class: 'btn' %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
<% end %>
 | 
			
		||||
 | 
			
		||||
<% else %>
 | 
			
		||||
請登入
 | 
			
		||||
<% end %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,63 @@
 | 
			
		|||
<% # encoding: utf-8 %>
 | 
			
		||||
<% 
 | 
			
		||||
	data = action_data 
 | 
			
		||||
	@seminars = data["seminars"]
 | 
			
		||||
	@total_pages = data["total_pages"]
 | 
			
		||||
	@time_now = data["time_now"]
 | 
			
		||||
%>
 | 
			
		||||
 | 
			
		||||
<table class="table table-hover table-striped seminar-index">
 | 
			
		||||
	<caption>
 | 
			
		||||
		<h3><%= t('seminar.seminar') %></h3>
 | 
			
		||||
	</caption>
 | 
			
		||||
	<thead>
 | 
			
		||||
		<tr>
 | 
			
		||||
			<th class="col-md-2"><%= t(:category) %></th>
 | 
			
		||||
			<th class="col-md-3"><%= t('seminar.title') %></th>
 | 
			
		||||
			<th class="col-md-2"><%= t('seminar_signup.time') %></th>
 | 
			
		||||
			<th class="col-md-2"><%= t('seminar_signup.place') %></th>
 | 
			
		||||
			<th class="col-md-2"><%= t('seminar.signup') %></th>
 | 
			
		||||
		</tr>
 | 
			
		||||
	</thead>
 | 
			
		||||
	<tbody>
 | 
			
		||||
		<% 
 | 
			
		||||
			@seminars.each do |seminar| 	
 | 
			
		||||
 | 
			
		||||
			  if !seminar.registration_status.blank? and seminar.signup_start_date <= @time_now and ( seminar.signup_end_date.nil? or  seminar.signup_end_date+1 >= @time_now )
 | 
			
		||||
			  	sign_up = ('<a href="'+ OrbitHelper.url_to_show(seminar.to_param) + '" target="_blank">' + t('seminar.signup') + '</a>').html_safe
 | 
			
		||||
			  elsif seminar.registration_status.blank?
 | 
			
		||||
			  	sign_up = t('seminar.sign_up_not_open')
 | 
			
		||||
			  elsif seminar.signup_start_date > @time_now
 | 
			
		||||
			  	sign_up = t('seminar.sign_up_not_yet')
 | 
			
		||||
			  else
 | 
			
		||||
			  	sign_up = t('seminar.sign_up_overdue')
 | 
			
		||||
			  end
 | 
			
		||||
		%>
 | 
			
		||||
		<tr>
 | 
			
		||||
			<td><%= seminar.category.title %></td>
 | 
			
		||||
			<td><%= ('<a href="'+ OrbitHelper.url_to_show(seminar.to_param) + '?method=show_data" target="_blank">' + seminar.title + '</a>').html_safe %></td>
 | 
			
		||||
			<td><%= SeminarMain.time_range(seminar.seminar_start_date, seminar.seminar_end_date) %></td>
 | 
			
		||||
			<td><%= seminar.act_place %></td>
 | 
			
		||||
			<td>
 | 
			
		||||
				<%= sign_up %> <br />
 | 
			
		||||
 | 
			
		||||
				<%= 
 | 
			
		||||
				if !seminar.registration_status.blank? and seminar.registration_status.include?('C') and seminar.contribute_start_date <= @time_now and ( seminar.contribute_end_date.nil? or seminar.contribute_end_date+1 >= @time_now )
 | 
			
		||||
					if !session[:seminar_signup_id].blank? 
 | 
			
		||||
						if session[:seminar_main_id] == seminar.id
 | 
			
		||||
						('<a href="'+ OrbitHelper.url_to_show(seminar.to_param) + '?method=con_upload">' + t('seminar_signup.uploads') + '</a>').html_safe
 | 
			
		||||
						else
 | 
			
		||||
							('<a href="'+ OrbitHelper.url_to_show(seminar.to_param) + '?method=con_login">' + t('seminar_signup.con_login') + '</a>').html_safe
 | 
			
		||||
						end
 | 
			
		||||
					else
 | 
			
		||||
						('<a href="'+ OrbitHelper.url_to_show(seminar.to_param) + '?method=con_login">' + t('seminar_signup.con_login') + '</a>').html_safe
 | 
			
		||||
					end
 | 
			
		||||
				end
 | 
			
		||||
				 %>
 | 
			
		||||
			</td>
 | 
			
		||||
		</tr>
 | 
			
		||||
		<% end %>
 | 
			
		||||
	</tbody>
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
<%= create_pagination(@total_pages).html_safe if @total_pages > 1 %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,312 @@
 | 
			
		|||
<% # encoding: utf-8 %>
 | 
			
		||||
<% 
 | 
			
		||||
	data = action_data 
 | 
			
		||||
	@seminar = data["seminar"]
 | 
			
		||||
	@seminar_signup = data["seminar_signup"]
 | 
			
		||||
	@time_now = data["time_now"]
 | 
			
		||||
  @form_index = 0
 | 
			
		||||
%>
 | 
			
		||||
 | 
			
		||||
<% if !@seminar.registration_status.blank? and @seminar.signup_start_date < @time_now and ( @seminar.signup_end_date.nil? or @seminar.signup_end_date+1 > @time_now ) %>
 | 
			
		||||
  
 | 
			
		||||
  <%#= stylesheet_link_tag "lib/main-forms" %>
 | 
			
		||||
  <%= stylesheet_link_tag "basic/bootstrap-datetimepicker" %>
 | 
			
		||||
  <%= javascript_include_tag "lib/bootstrap-datetimepicker" %>
 | 
			
		||||
  <%= javascript_include_tag "lib/datetimepicker/date.time.picker.js" %>
 | 
			
		||||
  <%= javascript_include_tag "lib/datetimepicker/datetimepicker.js" %>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<% flash.each do |key, msg| %>
 | 
			
		||||
  <%= content_tag :p, msg, :class => [key, "alert alert-error in fade"] %>
 | 
			
		||||
<% end %>
 | 
			
		||||
 | 
			
		||||
<%= form_for @seminar_signup, url: seminars_path, html: {class: "content form-horizontal" , :id=>"new-seminar-signup"} do |f| %>
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    
 | 
			
		||||
      <!-- Title -->
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="title" class="col-sm-2 control-label"><%= t('seminar.title') %></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
          <%= @seminar.title %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="status" class="col-sm-2 control-label"><%= t('seminar.registration_status') %></label>
 | 
			
		||||
        <div class="col-sm-10">       
 | 
			
		||||
          <% if @seminar.registration_status.include?('G') %>   
 | 
			
		||||
          <label class="radio-inline">
 | 
			
		||||
            <%= f.radio_button :status, 'G', :checked => true , :onclick => "$('#registration_status').addClass('hide');" %> <%= t('seminar.registration_status_G') %>
 | 
			
		||||
          </label>
 | 
			
		||||
          <% end %>
 | 
			
		||||
          <% if @seminar.registration_status.include?('C') %>  
 | 
			
		||||
          <label class="radio-inline">
 | 
			
		||||
            <%= f.radio_button :status, 'C', :onclick => "$('#registration_status').removeClass('hide');", :checked => (@seminar.registration_status.count == 1 and @seminar.registration_status.include?('C') ? true : false) %> <%= t('seminar.registration_status_C') %>
 | 
			
		||||
          </label>
 | 
			
		||||
          <% end %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <!-- Name -->
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="name" class="col-sm-2 control-label">*<%= t('seminar_signup.name') %></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
          <%= f.text_field :name, :class=>"input-medium form-control", :id=>'name', :placeholder=> t('seminar_signup.name'), :required => true %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <!-- unit -->
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="unit" class="col-sm-2 control-label">*<%= t("seminar_signup.unit")%></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
          <div class="input-append">
 | 
			
		||||
            <div class="tab-content">
 | 
			
		||||
              <% @site_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
              <div class="tab-pane fade <%= ( i == 0 ) ? "active in" : '' %>" id="unit_<%= locale %>">
 | 
			
		||||
                <%= f.fields_for "unit_translations".to_sym do |f| %>
 | 
			
		||||
                  <%= f.text_field locale, :class=>"input-medium form-control", :value => (@seminar_signup.send("unit_translations")[locale] rescue nil), :placeholder=> "#{t(locale.to_s)}", :required => true %>
 | 
			
		||||
                <% end %>
 | 
			
		||||
              </div>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="btn-group" data-toggle="buttons-radio">
 | 
			
		||||
              <% @site_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
                <a class="btn <%= ( i == 0 ) ? "active" : '' %>" href="#unit_<%= locale %>" data-toggle="tab"><%= t(locale.to_s) %></a>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <!-- Tel -->
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="tel" class="col-sm-2 control-label">*<%= t('seminar_signup.tel') %></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
          <%= f.text_field :tel, :class=>"input-medium form-control", :placeholder=> t('seminar_signup.tel'), :required => true %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <!-- Phone -->
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="phone" class="col-sm-2 control-label"><%= t('seminar_signup.phone') %></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
          <%= f.text_field :phone, :class=>"input-medium form-control", :placeholder=> t('seminar_signup.phone') %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <!-- Fax -->
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="fax" class="col-sm-2 control-label"><%= t('seminar_signup.fax') %></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
          <%= f.text_field :fax, :class=>"input-medium form-control", :placeholder=> t('seminar_signup.fax') %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <!-- address -->
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="address" class="col-sm-2 control-label"><%= t("seminar_signup.address")%></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
          <div class="input-append">
 | 
			
		||||
            <div class="tab-content">
 | 
			
		||||
              <% @site_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
              <div class="tab-pane fade <%= ( i == 0 ) ? "active in" : '' %>" id="address_<%= locale %>">
 | 
			
		||||
                <%= f.fields_for "address_translations".to_sym do |f| %>
 | 
			
		||||
                  <%= f.text_field locale, :class=>"input-medium form-control", :value => (@seminar_signup.send("address_translations")[locale] rescue nil), :placeholder=> "#{t(locale.to_s)}" %>
 | 
			
		||||
                <% end %>
 | 
			
		||||
              </div>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="btn-group" data-toggle="buttons-radio">
 | 
			
		||||
              <% @site_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
                <a class="btn <%= ( i == 0 ) ? "active" : '' %>" href="#address_<%= locale %>" data-toggle="tab"><%= t(locale.to_s) %></a>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <!-- Email -->
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="email" class="col-sm-2 control-label">*<%= t(:email) %></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
          <%= f.email_field :email, :class=>"input-medium form-control availibility", :placeholder=> t(:email), :required => true %> <a href="#" onclick="window.open(' <%= OrbitHelper.url_to_show(@seminar.to_param) %>?method=check_email&no=<%=@seminar.id%>&layout=false&email='+ $('input[type=email]').val() , 'check mail', config='height=100,width=300');" class="btn btn-primary">check mail</a>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <div class="form-group <%= @seminar.registration_status[0] == 'C' ? '' : 'hide' %>" id="registration_status">
 | 
			
		||||
        <label for="password" class="col-sm-2 control-label">*<%= t('seminar_signup.password') %></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
          <%= f.text_field :password, :class=>"input-medium form-control", :placeholder=> t('seminar_signup.password') %>
 | 
			
		||||
          ( 此密碼為下次投稿上傳檔案時必須輸入的密碼。 )
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <!-- Note -->
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="note" class="col-sm-2 control-label"><%= t("seminar_signup.note")%></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
          <div class="input-append">
 | 
			
		||||
            <div class="tab-content">
 | 
			
		||||
              <% @site_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
              <div class="tab-pane fade <%= ( i == 0 ) ? "active in" : '' %>" id="note_<%= locale %>">
 | 
			
		||||
                <%= f.fields_for "note_translations".to_sym do |f| %>
 | 
			
		||||
                  <%= f.text_area locale, rows: 5, :class=>"input-medium form-control", :value => (@seminar_signup.send("note_translations")[locale] rescue nil), :placeholder=> "#{t(locale.to_s)}" %>
 | 
			
		||||
                <% end %>
 | 
			
		||||
              </div>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="btn-group" data-toggle="buttons-radio">
 | 
			
		||||
              <% @site_in_use_locales.each_with_index do |locale, i| %>
 | 
			
		||||
                <a class="btn <%= ( i == 0 ) ? "active" : '' %>" href="#note_<%= locale %>" data-toggle="tab"><%= t(locale.to_s) %></a>
 | 
			
		||||
              <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <% @seminar.seminar_signup_fields.asc(:_id).each  do |rf| %>
 | 
			
		||||
 | 
			
		||||
        <div class="form-group">
 | 
			
		||||
 | 
			
		||||
         <%= rf.block_helper(@seminar,@form_index,false,"seminar_signup",@seminar_signup, rf.to_require) %>
 | 
			
		||||
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <% @form_index = @form_index +1 %>
 | 
			
		||||
 | 
			
		||||
      <% end %>
 | 
			
		||||
 | 
			
		||||
      
 | 
			
		||||
      <!-- 驗證碼 -->
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="note" class="col-sm-2 control-label"><%= t('seminar_signup.recaptcha') %></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
          <%= gotcha_error %>
 | 
			
		||||
          <%= gotcha %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <label for="note" class="col-sm-2 control-label"><%= t('nkuht_donate.recaptcha') %></label>
 | 
			
		||||
        <div class="col-sm-10">
 | 
			
		||||
          <%= show_simple_captcha  %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <div class="col-sm-offset-2 col-sm-10">
 | 
			
		||||
        <label>
 | 
			
		||||
        	<input id="agree" name="agree" value="1" type="checkbox" required="required">
 | 
			
		||||
        	<a href="<%= OrbitHelper.url_to_show(@seminar.to_param) %>?method=show_privacy" target="_blank"><%= t("seminar_signup.agree")%></a>
 | 
			
		||||
        </label>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="form-group">
 | 
			
		||||
        <div class="col-sm-offset-2 col-sm-10">
 | 
			
		||||
          <input type="hidden" name="referer_url" value="<%= request.original_url.split(request.env["HTTP_HOST"]).last %>">
 | 
			
		||||
          <input type="hidden" name="seminar_signup[seminar_main_id]" value="<%= @seminar.id %>">
 | 
			
		||||
          <%= f.submit t('submit'), class: 'btn btn-primary', :id => 'button-mail' %>
 | 
			
		||||
          <%= f.button t('cancel'), type: 'reset', class: 'btn' %>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
  </fieldset>
 | 
			
		||||
<% end %>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<script type="text/javascript">
 | 
			
		||||
(function(){
 | 
			
		||||
  var validated = false,
 | 
			
		||||
      chks = false,
 | 
			
		||||
      pwd = $('#seminar_signup_password')
 | 
			
		||||
 | 
			
		||||
  $("form.content").submit(function(event) {
 | 
			
		||||
     
 | 
			
		||||
 | 
			
		||||
    if ($('#seminar_signup_status_c:checked').val() == 'C'){
 | 
			
		||||
      if (pwd.val() == ''){
 | 
			
		||||
        pwd.attr('required', true);
 | 
			
		||||
        pwd.focus();
 | 
			
		||||
        alert( '<%= t('seminar_signup.password') %>' + ' is required');
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    <% 
 | 
			
		||||
      @seminar.seminar_signup_fields.asc(:_id).each  do |rf| 
 | 
			
		||||
 | 
			
		||||
        if rf.markup == 'checkbox'
 | 
			
		||||
    %>
 | 
			
		||||
 | 
			
		||||
      var checkedCount = $("input[type=checkbox][id^=seminar_signup_values_<%= rf.id %>]:checked").length;
 | 
			
		||||
      if (checkedCount == 0){
 | 
			
		||||
        alert( '<%= rf.title %>' + ' is required');
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
    <% 
 | 
			
		||||
        end 
 | 
			
		||||
 | 
			
		||||
      end 
 | 
			
		||||
    %>
 | 
			
		||||
 | 
			
		||||
    var form = $(this),
 | 
			
		||||
        isChecked = $('#agree:checked').val()?true:false;
 | 
			
		||||
 | 
			
		||||
    if(!isChecked){
 | 
			
		||||
      return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  $(".availibility").blur(function(){
 | 
			
		||||
    var type = $(this).attr("id"),
 | 
			
		||||
      loader = $(this).parent().find('.loader'),
 | 
			
		||||
      elem = $(this),
 | 
			
		||||
      value = $(this).val() || null;
 | 
			
		||||
    var checkAvailability = function(){
 | 
			
		||||
      $.ajax({
 | 
			
		||||
        url : "<%= "#{OrbitHelper.url_to_show(@seminar.to_param)}?method=check_availability&no=#{@seminar.id}" %>",
 | 
			
		||||
        data : {"type" : type, "value" : value},
 | 
			
		||||
        dataType : "json",
 | 
			
		||||
        type : "get",
 | 
			
		||||
        success : function(data){
 | 
			
		||||
          if( data.success == true ){
 | 
			
		||||
            
 | 
			
		||||
alert("1tttt");
 | 
			
		||||
          }else{
 | 
			
		||||
            
 | 
			
		||||
alert("1ssss2");
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if( value ){
 | 
			
		||||
      if(type == "seminar_signup_email"){
 | 
			
		||||
        checkAvailability();
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
})();
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<% elsif @seminar.registration_status.blank? %>
 | 
			
		||||
 | 
			
		||||
<%= t('seminar.sign_up_not_open') %>
 | 
			
		||||
 | 
			
		||||
<% elsif @seminar.signup_start_date > @time_now %>
 | 
			
		||||
 | 
			
		||||
<%= t('seminar.sign_up_not_yet') %>
 | 
			
		||||
 | 
			
		||||
<% else %>
 | 
			
		||||
 | 
			
		||||
<%= t('seminar.sign_up_overdue') %>
 | 
			
		||||
 | 
			
		||||
<% end %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,91 @@
 | 
			
		|||
<% # encoding: utf-8 %>
 | 
			
		||||
 | 
			
		||||
<% 
 | 
			
		||||
	data = action_data 
 | 
			
		||||
  @seminar = data["seminar"]
 | 
			
		||||
	@sign_up = data["sign_up"]
 | 
			
		||||
  @sign_up_time_range = data["sign_up_time_range"]
 | 
			
		||||
  @seminar_time_range = data["seminar_time_range"]
 | 
			
		||||
  @contribute_time_range = data["contribute_time_range"]
 | 
			
		||||
	@contribute_action = data["contribute_action"]
 | 
			
		||||
%>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<table class="table table-striped seminarive-show-table">
 | 
			
		||||
  <tbody >
 | 
			
		||||
    <tr>
 | 
			
		||||
      <th class="seminarive-title-field"><%= t(:category) %></th>
 | 
			
		||||
      <td class="seminarive-title-value"><%= @seminar.category.title %></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <th class="seminarive-title-field"><i class="fa fa-calendar fa-fw"></i><%= t('seminar.event_during') %></th>
 | 
			
		||||
      <td class="seminarive-title-value"><%= @seminar_time_range %></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <th class="seminarive-title-field"><%= t('seminar.title') %></th>
 | 
			
		||||
      <td class="seminarive-title-value"><%= @seminar.title %></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <% if !@seminar.speaker.blank? %>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <th class="seminarive-title-field"><%= t('seminar.speaker') %></th>
 | 
			
		||||
      <td class="seminarive-title-value"><%= @seminar.speaker %></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <% end %>
 | 
			
		||||
    <% if !@seminar.content.blank? %>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <th class="seminarive-title-field"><%= t('seminar.content') %></th>
 | 
			
		||||
      <td class="seminarive-title-value"><%= nl2br(@seminar.content) %></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <% end %>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <th class="seminarive-title-field"><i class="fa fa-calendar fa-fw"></i><%= t('seminar.signup_during') %></th>
 | 
			
		||||
      <td class="seminarive-title-value"><%= @sign_up_time_range %></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <% if !@contribute_time_range.blank? %>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <th class="seminarive-title-field"><i class="fa fa-calendar fa-fw"></i><%= t('seminar.contribute_during') %></th>
 | 
			
		||||
      <td class="seminarive-title-value"><%= @contribute_time_range %></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <% end %>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <th class="seminarive-title-field"><%= t('seminar.signup') %></th>
 | 
			
		||||
      <td class="seminarive-title-value"><%= @sign_up %><br /><%= @contribute_action %></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <% if !@seminar.act_place.blank? %>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <th class="seminarive-title-field"><i class="icon-flag"></i><%= t('seminar.act_place') %></th>
 | 
			
		||||
      <td class="seminarive-title-value"><%= @seminar.act_place %></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <% end %>
 | 
			
		||||
    <% if !@seminar.seminar_files.blank? %>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <th class="seminarive-title-field"><i class="fa fa-fw fa-paperclip"></i><%= t(:file_) %></th>
 | 
			
		||||
      <td class="seminarive-title-value">        
 | 
			
		||||
        <% @seminar.seminar_files.map do |file| %>
 | 
			
		||||
        <%= link_to (file.title.blank? ? File.basename(file.file.path) : file.title) , file.file.url, {:target => '_blank', :title => file.description} if file.file.file %>
 | 
			
		||||
        <% end %>
 | 
			
		||||
      </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <% end %>
 | 
			
		||||
    <% if !@seminar.seminar_links.blank? %>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <th class="seminarive-title-field"><i class="fa fa-fw fa-link"></i><%= t(:link) %></th>
 | 
			
		||||
      <td class="seminarive-title-value">
 | 
			
		||||
        <% @seminar.seminar_links.map do |link| %>
 | 
			
		||||
        <%= link_to (link.title.blank? ? link.url : link.title), link.url, :target => '_blank' %>
 | 
			
		||||
        <% end %>
 | 
			
		||||
      </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <% end %>
 | 
			
		||||
    <% @seminar.seminar_item_contents.asc(:_id).each do |item_content| %>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <th class="seminarive-title-field"><%= item_content.seminar_item.title %></th>
 | 
			
		||||
      <td class="seminarive-title-value"><%= item_content.content.html_safe %></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <% end %>
 | 
			
		||||
  </tbody>
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
<br />
 | 
			
		||||
 | 
			
		||||
<%= link_to t(:close), 'javascript:window.close();', :class => 'btn btn-primary' %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
<% # encoding: utf-8 %>
 | 
			
		||||
 | 
			
		||||
<% 
 | 
			
		||||
	data = action_data 
 | 
			
		||||
	@seminar_agreement = data["seminar_agreement"]
 | 
			
		||||
%>
 | 
			
		||||
 | 
			
		||||
<style type="text/css">
 | 
			
		||||
.highlight {
 | 
			
		||||
    background-color: #f7f7f9;
 | 
			
		||||
    border: 1px solid #e1e1e8;
 | 
			
		||||
    border-radius: 4px;
 | 
			
		||||
    margin-bottom: 14px;
 | 
			
		||||
    padding: 9px 14px;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 | 
			
		||||
<h3>個資及隱私權保護宣告</h3>
 | 
			
		||||
 | 
			
		||||
<div class="highlight seminar_privacy">
 | 
			
		||||
 | 
			
		||||
<%= @seminar_agreement.content.html_safe %>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<br />
 | 
			
		||||
 | 
			
		||||
<%= link_to t(:close), 'javascript:window.close();', :class => 'btn btn-primary' %>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
<% # encoding: utf-8 %>
 | 
			
		||||
<% 
 | 
			
		||||
	data = action_data 
 | 
			
		||||
%>
 | 
			
		||||
 | 
			
		||||
您的報名已成功,感謝您的參與。
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
<style type="text/css">
 | 
			
		||||
  .simple_captcha{border: 1px solid #ccc; padding: 5px !important;}
 | 
			
		||||
  .simple_captcha,
 | 
			
		||||
  .simple_captcha div{display: table;}
 | 
			
		||||
  .simple_captcha .simple_captcha_field,
 | 
			
		||||
  .simple_captcha .simple_captcha_image{
 | 
			
		||||
    border: 1px solid #ccc;
 | 
			
		||||
    margin: 0px 0px 2px 0px !important;
 | 
			
		||||
    padding: 0px !important;
 | 
			
		||||
  }
 | 
			
		||||
  .simple_captcha .simple_captcha_image img{
 | 
			
		||||
    margin: 0px !important;
 | 
			
		||||
    padding: 0px !important;
 | 
			
		||||
    width: 110px !important;
 | 
			
		||||
  }
 | 
			
		||||
  .simple_captcha .simple_captcha_label{font-size: 12px;}
 | 
			
		||||
  .simple_captcha .simple_captcha_field input{
 | 
			
		||||
    width: 150px !important;
 | 
			
		||||
    font-size: 16px;
 | 
			
		||||
    border: none;
 | 
			
		||||
    background-color: #efefef;
 | 
			
		||||
  }
 | 
			
		||||
</style>
 | 
			
		||||
 | 
			
		||||
<div class='simple_captcha'>
 | 
			
		||||
  <div class='simple_captcha_image'>
 | 
			
		||||
    <%= simple_captcha_options[:image] %>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <div class='simple_captcha_field'>
 | 
			
		||||
    <%= simple_captcha_options[:field] %>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
#!/usr/bin/env ruby
 | 
			
		||||
# This command will automatically be run when you run "rails" with Rails 4 gems installed from the root of your application.
 | 
			
		||||
 | 
			
		||||
ENGINE_ROOT = File.expand_path('../..', __FILE__)
 | 
			
		||||
ENGINE_PATH = File.expand_path('../../lib/nkuht_donate/engine', __FILE__)
 | 
			
		||||
 | 
			
		||||
# Set up gems listed in the Gemfile.
 | 
			
		||||
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
 | 
			
		||||
require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
 | 
			
		||||
 | 
			
		||||
# require 'rails/all'
 | 
			
		||||
# require 'rails/engine/commands'
 | 
			
		||||
require "action_controller/railtie"
 | 
			
		||||
require "action_mailer/railtie"
 | 
			
		||||
require "sprockets/railtie"
 | 
			
		||||
require "rails/test_unit/railtie"
 | 
			
		||||
require 'rails/engine/commands'
 | 
			
		||||
require "mongoid/railtie"
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,86 @@
 | 
			
		|||
en:
 | 
			
		||||
 | 
			
		||||
  simple_captcha:
 | 
			
		||||
    placeholder: ""
 | 
			
		||||
    label: ""
 | 
			
		||||
 | 
			
		||||
  restful_actions:
 | 
			
		||||
    act_signup: 報名資料
 | 
			
		||||
 | 
			
		||||
  module_name:
 | 
			
		||||
    seminar: 研討會
 | 
			
		||||
 | 
			
		||||
  recaptcha:
 | 
			
		||||
    errors:
 | 
			
		||||
      verification_failed: 驗證碼錯誤
 | 
			
		||||
 | 
			
		||||
  seminar:
 | 
			
		||||
    export_csv: 匯出CSV
 | 
			
		||||
    recaptcha: 驗證碼
 | 
			
		||||
    yes_: 是
 | 
			
		||||
    no_: 否
 | 
			
		||||
    seminar: 研討會
 | 
			
		||||
    title: 研討會名稱
 | 
			
		||||
    speaker: 主講者
 | 
			
		||||
    content: 內容說明
 | 
			
		||||
    act_place: 活動地點
 | 
			
		||||
    registration_status: 報名身分
 | 
			
		||||
    registration_status_C: 投稿者
 | 
			
		||||
    registration_status_G: 一般報名
 | 
			
		||||
    seminar_start_date: 活動開始時間
 | 
			
		||||
    seminar_end_date: 活動結束時間
 | 
			
		||||
    signup_start_date: 報名開始時間
 | 
			
		||||
    signup_end_date: 報名結束時間
 | 
			
		||||
    contribute_start_date: 投稿開始時間
 | 
			
		||||
    contribute_end_date: 投稿結束時間
 | 
			
		||||
    event_during: 活動期間 
 | 
			
		||||
    contribute_during: 投稿期間 
 | 
			
		||||
    signup_during: 報名期間 
 | 
			
		||||
    signup_count: 報名人數 
 | 
			
		||||
    signup: 報名 
 | 
			
		||||
    export: 匯出 
 | 
			
		||||
    set_seminar_items: 項目 
 | 
			
		||||
    set_seminar_signup_field: 圈選設定 
 | 
			
		||||
    set_seminar_item_content: 項目設定 
 | 
			
		||||
    set_seminar_agreements: 個資宣告設定 
 | 
			
		||||
    seminar_agreements_content: 個資宣告內容
 | 
			
		||||
    to_require: 是否必填
 | 
			
		||||
    sign_up_not_yet: 報名時間未開始
 | 
			
		||||
    sign_up_not_open: 未開放報名
 | 
			
		||||
    sign_up_overdue: 報名時間已過
 | 
			
		||||
    contribute_file_count: 投稿檔案數
 | 
			
		||||
 | 
			
		||||
    frontend:
 | 
			
		||||
        seminar: 研討會前台
 | 
			
		||||
 | 
			
		||||
  seminar_item:
 | 
			
		||||
    new_item: 新增項目
 | 
			
		||||
    edit_item: 編輯項目
 | 
			
		||||
    set_item: 設定項目
 | 
			
		||||
    del_item: 刪除項目
 | 
			
		||||
 | 
			
		||||
  seminar_item_content:
 | 
			
		||||
    content: 內容
 | 
			
		||||
 | 
			
		||||
  seminar_signup:
 | 
			
		||||
    signup_time: 報名時間
 | 
			
		||||
    name: Name
 | 
			
		||||
    unit: 單位
 | 
			
		||||
    tel: TEL
 | 
			
		||||
    phone: Mobile telephone
 | 
			
		||||
    fax: Fax
 | 
			
		||||
    address: 地址
 | 
			
		||||
    email: e-mail信箱 
 | 
			
		||||
    password: 密碼
 | 
			
		||||
    note: 註解
 | 
			
		||||
    time: (開始/結束)時間
 | 
			
		||||
    place: 地點
 | 
			
		||||
    agree: "Accept Privacy and Personal Information Protection Policy of the Site"
 | 
			
		||||
    signup_field: 圈選項目
 | 
			
		||||
    uploads: 上傳檔案
 | 
			
		||||
    con_login: 投稿者登入
 | 
			
		||||
    file_name: 稿件名稱
 | 
			
		||||
    file_note: 摘要
 | 
			
		||||
    files: 檔案
 | 
			
		||||
    logout: 登出
 | 
			
		||||
    logouting: 登出中
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,87 @@
 | 
			
		|||
zh_tw:
 | 
			
		||||
 | 
			
		||||
  simple_captcha:
 | 
			
		||||
    placeholder: ""
 | 
			
		||||
    label: ""
 | 
			
		||||
 | 
			
		||||
  restful_actions:
 | 
			
		||||
    act_signup: 報名資料
 | 
			
		||||
 | 
			
		||||
  module_name:
 | 
			
		||||
    seminar: 研討會
 | 
			
		||||
 | 
			
		||||
  recaptcha:
 | 
			
		||||
    errors:
 | 
			
		||||
      verification_failed: 驗證碼錯誤
 | 
			
		||||
 | 
			
		||||
  seminar:
 | 
			
		||||
    export_csv: 匯出CSV
 | 
			
		||||
    recaptcha: 驗證碼
 | 
			
		||||
    yes_: 是
 | 
			
		||||
    no_: 否
 | 
			
		||||
    seminar: 研討會
 | 
			
		||||
    title: 研討會名稱
 | 
			
		||||
    speaker: 主講者
 | 
			
		||||
    content: 內容說明
 | 
			
		||||
    act_place: 活動地點
 | 
			
		||||
    registration_status: 報名身分
 | 
			
		||||
    registration_status_C: 投稿者
 | 
			
		||||
    registration_status_G: 一般報名
 | 
			
		||||
    seminar_start_date: 活動開始時間
 | 
			
		||||
    seminar_end_date: 活動結束時間
 | 
			
		||||
    signup_start_date: 報名開始時間
 | 
			
		||||
    signup_end_date: 報名結束時間
 | 
			
		||||
    contribute_start_date: 投稿開始時間
 | 
			
		||||
    contribute_end_date: 投稿結束時間
 | 
			
		||||
    event_during: 活動期間 
 | 
			
		||||
    contribute_during: 投稿期間 
 | 
			
		||||
    signup_during: 報名期間 
 | 
			
		||||
    signup_count: 報名人數 
 | 
			
		||||
    signup: 報名 
 | 
			
		||||
    export: 匯出 
 | 
			
		||||
    set_seminar_items: 項目 
 | 
			
		||||
    set_seminar_signup_field: 圈選設定 
 | 
			
		||||
    set_seminar_item_content: 項目設定 
 | 
			
		||||
    set_seminar_agreements: 個資宣告設定 
 | 
			
		||||
    seminar_agreements_content: 個資宣告內容
 | 
			
		||||
    to_require: 是否必填
 | 
			
		||||
    sign_up_not_yet: 報名時間未開始
 | 
			
		||||
    sign_up_not_open: 未開放報名
 | 
			
		||||
    sign_up_overdue: 報名時間已過
 | 
			
		||||
    contribute_file_count: 投稿檔案數
 | 
			
		||||
 | 
			
		||||
    frontend:
 | 
			
		||||
        seminar: 研討會前台
 | 
			
		||||
 | 
			
		||||
  seminar_item:
 | 
			
		||||
    new_item: 新增項目
 | 
			
		||||
    edit_item: 編輯項目
 | 
			
		||||
    set_item: 設定項目
 | 
			
		||||
    del_item: 刪除項目
 | 
			
		||||
 | 
			
		||||
  seminar_item_content:
 | 
			
		||||
    content: 內容
 | 
			
		||||
 | 
			
		||||
  seminar_signup:
 | 
			
		||||
    signup_time: 報名時間
 | 
			
		||||
    name: 姓名
 | 
			
		||||
    unit: 單位
 | 
			
		||||
    tel: 聯絡電話
 | 
			
		||||
    phone: 行動電話
 | 
			
		||||
    fax: 傳真
 | 
			
		||||
    address: 地址
 | 
			
		||||
    email: e-mail信箱 
 | 
			
		||||
    password: 密碼
 | 
			
		||||
    note: 註解
 | 
			
		||||
    time: (開始/結束)時間
 | 
			
		||||
    place: 地點
 | 
			
		||||
    agree: 同意接受本站個資及隱私權保護宣告
 | 
			
		||||
    recaptcha: 驗證碼
 | 
			
		||||
    signup_field: 圈選項目
 | 
			
		||||
    uploads: 上傳檔案
 | 
			
		||||
    con_login: 投稿者登入
 | 
			
		||||
    file_name: 稿件名稱
 | 
			
		||||
    file_note: 摘要
 | 
			
		||||
    files: 檔案
 | 
			
		||||
    logout: 登出
 | 
			
		||||
    logouting: 登出中
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,39 @@
 | 
			
		|||
Rails.application.routes.draw do
 | 
			
		||||
 | 
			
		||||
  locales = Site.first.in_use_locales rescue I18n.available_locales
 | 
			
		||||
  
 | 
			
		||||
  scope "(:locale)", locale: Regexp.new(locales.join("|")) do
 | 
			
		||||
   namespace :admin do
 | 
			
		||||
    resources :seminars do
 | 
			
		||||
      member do
 | 
			
		||||
        get 'export'
 | 
			
		||||
        get 'set_write_off'
 | 
			
		||||
        get 'seminar_signup'
 | 
			
		||||
        get 'seminar_item_content'
 | 
			
		||||
        get 'seminar_signup_field'
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
    resources :seminar_items do
 | 
			
		||||
      collection do
 | 
			
		||||
        post 'delete_items'
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
    resources :seminar_agreements
 | 
			
		||||
    resources :seminar_signups
 | 
			
		||||
    resources :seminar_item_contents
 | 
			
		||||
   end
 | 
			
		||||
 | 
			
		||||
    resources :seminars do
 | 
			
		||||
      collection do
 | 
			
		||||
        get ':slug_title-:uid', to: 'seminars#show'
 | 
			
		||||
        post 'con_login_proc', to: 'seminars#con_login_proc'
 | 
			
		||||
        post 'con_logout_proc', to: 'seminars#con_logout_proc'
 | 
			
		||||
        post 'add_file_proc', to: 'seminars#add_file_proc'
 | 
			
		||||
        post 'edit_file_proc', to: 'seminars#edit_file_proc'
 | 
			
		||||
        post 'del_file', to: 'seminars#del_file'
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
require "seminar/engine"
 | 
			
		||||
 | 
			
		||||
module Seminar
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,50 @@
 | 
			
		|||
module Seminar
 | 
			
		||||
  class Engine < ::Rails::Engine
 | 
			
		||||
    initializer "seminar" do 
 | 
			
		||||
      OrbitApp.registration "Seminar", :type => "ModuleApp" do
 | 
			
		||||
        module_label "seminar.seminar"
 | 
			
		||||
        base_url File.expand_path File.dirname(__FILE__)
 | 
			
		||||
        authorizable
 | 
			
		||||
        categorizable
 | 
			
		||||
        frontend_enabled
 | 
			
		||||
        data_count 1..20
 | 
			
		||||
 | 
			
		||||
        side_bar do
 | 
			
		||||
          head_label_i18n 'seminar.seminar', icon_class: "icon-globe"
 | 
			
		||||
          available_for "managers"
 | 
			
		||||
          active_for_controllers (['admin/seminars'])
 | 
			
		||||
          head_link_path "admin_seminars_path"
 | 
			
		||||
 | 
			
		||||
          context_link 'list_',
 | 
			
		||||
                                :link_path=>"admin_seminars_path" ,
 | 
			
		||||
                                :priority=>1,
 | 
			
		||||
                                :active_for_action=>{'admin/seminars'=>'index'},
 | 
			
		||||
                                :available_for => 'managers'
 | 
			
		||||
          context_link 'new_', 
 | 
			
		||||
                                :link_path=>"new_admin_seminar_path" ,
 | 
			
		||||
                                :priority=>2,
 | 
			
		||||
                                :active_for_action=>{'admin/seminars'=>'new'},
 | 
			
		||||
                                :available_for => 'managers'
 | 
			
		||||
          context_link 'categories',
 | 
			
		||||
                                :link_path=>"admin_module_app_categories_path" ,
 | 
			
		||||
                                :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'seminar').id}",
 | 
			
		||||
                                :priority=>3,
 | 
			
		||||
                                :active_for_action=>{'admin/seminars'=>'categories'},
 | 
			
		||||
                                :active_for_category => 'Seminar',
 | 
			
		||||
                                :available_for => 'managers'
 | 
			
		||||
          context_link 'seminar.set_seminar_items',
 | 
			
		||||
                                :link_path=>"admin_seminar_items_path" ,
 | 
			
		||||
                                :priority=>3,
 | 
			
		||||
                                :active_for_action=>{'admin/seminars'=>'seminar_items'},
 | 
			
		||||
                                :available_for => 'managers'
 | 
			
		||||
          context_link 'seminar.set_seminar_agreements',
 | 
			
		||||
                                :link_path=>"admin_seminar_agreements_path" ,
 | 
			
		||||
                                :priority=>3,
 | 
			
		||||
                                :active_for_action=>{'admin/seminars'=>'seminar_agreements'},
 | 
			
		||||
                                :available_for => 'managers'
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
module Seminar
 | 
			
		||||
  VERSION = "0.0.1"
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
# desc "Explaining what the task does"
 | 
			
		||||
# task :seminar do
 | 
			
		||||
#   # Task goes here
 | 
			
		||||
# end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,23 @@
 | 
			
		|||
$:.push File.expand_path("../lib", __FILE__)
 | 
			
		||||
 | 
			
		||||
# Maintain your gem's version:
 | 
			
		||||
require "seminar/version"
 | 
			
		||||
 | 
			
		||||
# Describe your gem and declare its dependencies:
 | 
			
		||||
Gem::Specification.new do |s|
 | 
			
		||||
  s.name        = "seminar"
 | 
			
		||||
  s.version     = Seminar::VERSION
 | 
			
		||||
  s.authors     = ["TODO: Your name"]
 | 
			
		||||
  s.email       = ["TODO: Your email"]
 | 
			
		||||
  s.homepage    = "TODO"
 | 
			
		||||
  s.summary     = "TODO: Summary of Seminar."
 | 
			
		||||
  s.description = "TODO: Description of Seminar."
 | 
			
		||||
  s.license     = "MIT"
 | 
			
		||||
 | 
			
		||||
  s.files = Dir["{app,config,db,lib}/**/*", "MIT-LICENSE", "Rakefile", "README.rdoc"]
 | 
			
		||||
  s.test_files = Dir["test/**/*"]
 | 
			
		||||
 | 
			
		||||
  s.add_dependency "rails", "~> 4.1.9"
 | 
			
		||||
 | 
			
		||||
  s.add_development_dependency "sqlite3"
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
require 'test_helper'
 | 
			
		||||
 | 
			
		||||
class SeminarControllerTest < ActionController::TestCase
 | 
			
		||||
  # test "the truth" do
 | 
			
		||||
  #   assert true
 | 
			
		||||
  # end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
== README
 | 
			
		||||
 | 
			
		||||
This README would normally document whatever steps are necessary to get the
 | 
			
		||||
application up and running.
 | 
			
		||||
 | 
			
		||||
Things you may want to cover:
 | 
			
		||||
 | 
			
		||||
* Ruby version
 | 
			
		||||
 | 
			
		||||
* System dependencies
 | 
			
		||||
 | 
			
		||||
* Configuration
 | 
			
		||||
 | 
			
		||||
* Database creation
 | 
			
		||||
 | 
			
		||||
* Database initialization
 | 
			
		||||
 | 
			
		||||
* How to run the test suite
 | 
			
		||||
 | 
			
		||||
* Services (job queues, cache servers, search engines, etc.)
 | 
			
		||||
 | 
			
		||||
* Deployment instructions
 | 
			
		||||
 | 
			
		||||
* ...
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Please feel free to use a different markup language if you do not plan to run
 | 
			
		||||
<tt>rake doc:app</tt>.
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
# 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.
 | 
			
		||||
 | 
			
		||||
require File.expand_path('../config/application', __FILE__)
 | 
			
		||||
 | 
			
		||||
Rails.application.load_tasks
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,13 @@
 | 
			
		|||
// This is a manifest file that'll be compiled into application.js, which will include all the files
 | 
			
		||||
// listed below.
 | 
			
		||||
//
 | 
			
		||||
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
 | 
			
		||||
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
 | 
			
		||||
//
 | 
			
		||||
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
 | 
			
		||||
// compiled file.
 | 
			
		||||
//
 | 
			
		||||
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
 | 
			
		||||
// about supported directives.
 | 
			
		||||
//
 | 
			
		||||
//= require_tree .
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,15 @@
 | 
			
		|||
/*
 | 
			
		||||
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 | 
			
		||||
 * listed below.
 | 
			
		||||
 *
 | 
			
		||||
 * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
 | 
			
		||||
 * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
 | 
			
		||||
 *
 | 
			
		||||
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 | 
			
		||||
 * compiled file so the styles you add here take precedence over styles defined in any styles
 | 
			
		||||
 * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
 | 
			
		||||
 * file per style scope.
 | 
			
		||||
 *
 | 
			
		||||
 *= require_tree .
 | 
			
		||||
 *= require_self
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
class ApplicationController < ActionController::Base
 | 
			
		||||
  # Prevent CSRF attacks by raising an exception.
 | 
			
		||||
  # For APIs, you may want to use :null_session instead.
 | 
			
		||||
  protect_from_forgery with: :exception
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
module ApplicationHelper
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
<!DOCTYPE html>
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
  <title>Dummy</title>
 | 
			
		||||
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
 | 
			
		||||
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
 | 
			
		||||
  <%= csrf_meta_tags %>
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<%= yield %>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
#!/usr/bin/env ruby
 | 
			
		||||
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
 | 
			
		||||
load Gem.bin_path('bundler', 'bundle')
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
#!/usr/bin/env ruby
 | 
			
		||||
APP_PATH = File.expand_path('../../config/application',  __FILE__)
 | 
			
		||||
require_relative '../config/boot'
 | 
			
		||||
require 'rails/commands'
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
#!/usr/bin/env ruby
 | 
			
		||||
require_relative '../config/boot'
 | 
			
		||||
require 'rake'
 | 
			
		||||
Rake.application.run
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
# This file is used by Rack-based servers to start the application.
 | 
			
		||||
 | 
			
		||||
require ::File.expand_path('../config/environment',  __FILE__)
 | 
			
		||||
run Rails.application
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,23 @@
 | 
			
		|||
require File.expand_path('../boot', __FILE__)
 | 
			
		||||
 | 
			
		||||
require 'rails/all'
 | 
			
		||||
 | 
			
		||||
Bundler.require(*Rails.groups)
 | 
			
		||||
require "seminar"
 | 
			
		||||
 | 
			
		||||
module Dummy
 | 
			
		||||
  class Application < Rails::Application
 | 
			
		||||
    # Settings in config/environments/* take precedence over those specified here.
 | 
			
		||||
    # Application configuration should go into files in config/initializers
 | 
			
		||||
    # -- all .rb files in that directory are automatically loaded.
 | 
			
		||||
 | 
			
		||||
    # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
 | 
			
		||||
    # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
 | 
			
		||||
    # config.time_zone = 'Central Time (US & Canada)'
 | 
			
		||||
 | 
			
		||||
    # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
 | 
			
		||||
    # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
 | 
			
		||||
    # config.i18n.default_locale = :de
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
# Set up gems listed in the Gemfile.
 | 
			
		||||
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__)
 | 
			
		||||
 | 
			
		||||
require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
 | 
			
		||||
$LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__)
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,25 @@
 | 
			
		|||
# SQLite version 3.x
 | 
			
		||||
#   gem install sqlite3
 | 
			
		||||
#
 | 
			
		||||
#   Ensure the SQLite 3 gem is defined in your Gemfile
 | 
			
		||||
#   gem 'sqlite3'
 | 
			
		||||
#
 | 
			
		||||
default: &default
 | 
			
		||||
  adapter: sqlite3
 | 
			
		||||
  pool: 5
 | 
			
		||||
  timeout: 5000
 | 
			
		||||
 | 
			
		||||
development:
 | 
			
		||||
  <<: *default
 | 
			
		||||
  database: db/development.sqlite3
 | 
			
		||||
 | 
			
		||||
# Warning: The database defined as "test" will be erased and
 | 
			
		||||
# re-generated from your development database when you run "rake".
 | 
			
		||||
# Do not set this db to the same as development or production.
 | 
			
		||||
test:
 | 
			
		||||
  <<: *default
 | 
			
		||||
  database: db/test.sqlite3
 | 
			
		||||
 | 
			
		||||
production:
 | 
			
		||||
  <<: *default
 | 
			
		||||
  database: db/production.sqlite3
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
# Load the Rails application.
 | 
			
		||||
require File.expand_path('../application', __FILE__)
 | 
			
		||||
 | 
			
		||||
# Initialize the Rails application.
 | 
			
		||||
Rails.application.initialize!
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,37 @@
 | 
			
		|||
Rails.application.configure do
 | 
			
		||||
  # Settings specified here will take precedence over those in config/application.rb.
 | 
			
		||||
 | 
			
		||||
  # In the development environment your application's code is reloaded on
 | 
			
		||||
  # every request. This slows down response time but is perfect for development
 | 
			
		||||
  # since you don't have to restart the web server when you make code changes.
 | 
			
		||||
  config.cache_classes = false
 | 
			
		||||
 | 
			
		||||
  # Do not eager load code on boot.
 | 
			
		||||
  config.eager_load = false
 | 
			
		||||
 | 
			
		||||
  # Show full error reports and disable caching.
 | 
			
		||||
  config.consider_all_requests_local       = true
 | 
			
		||||
  config.action_controller.perform_caching = false
 | 
			
		||||
 | 
			
		||||
  # Don't care if the mailer can't send.
 | 
			
		||||
  config.action_mailer.raise_delivery_errors = false
 | 
			
		||||
 | 
			
		||||
  # Print deprecation notices to the Rails logger.
 | 
			
		||||
  config.active_support.deprecation = :log
 | 
			
		||||
 | 
			
		||||
  # Raise an error on page load if there are pending migrations.
 | 
			
		||||
  config.active_record.migration_error = :page_load
 | 
			
		||||
 | 
			
		||||
  # Debug mode disables concatenation and preprocessing of assets.
 | 
			
		||||
  # This option may cause significant delays in view rendering with a large
 | 
			
		||||
  # number of complex assets.
 | 
			
		||||
  config.assets.debug = true
 | 
			
		||||
 | 
			
		||||
  # Adds additional error checking when serving assets at runtime.
 | 
			
		||||
  # Checks for improperly declared sprockets dependencies.
 | 
			
		||||
  # Raises helpful error messages.
 | 
			
		||||
  config.assets.raise_runtime_errors = true
 | 
			
		||||
 | 
			
		||||
  # Raises error for missing translations
 | 
			
		||||
  # config.action_view.raise_on_missing_translations = true
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,78 @@
 | 
			
		|||
Rails.application.configure do
 | 
			
		||||
  # Settings specified here will take precedence over those in config/application.rb.
 | 
			
		||||
 | 
			
		||||
  # Code is not reloaded between requests.
 | 
			
		||||
  config.cache_classes = true
 | 
			
		||||
 | 
			
		||||
  # Eager load code on boot. This eager loads most of Rails and
 | 
			
		||||
  # your application in memory, allowing both threaded web servers
 | 
			
		||||
  # and those relying on copy on write to perform better.
 | 
			
		||||
  # Rake tasks automatically ignore this option for performance.
 | 
			
		||||
  config.eager_load = true
 | 
			
		||||
 | 
			
		||||
  # Full error reports are disabled and caching is turned on.
 | 
			
		||||
  config.consider_all_requests_local       = false
 | 
			
		||||
  config.action_controller.perform_caching = true
 | 
			
		||||
 | 
			
		||||
  # Enable Rack::Cache to put a simple HTTP cache in front of your application
 | 
			
		||||
  # Add `rack-cache` to your Gemfile before enabling this.
 | 
			
		||||
  # For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
 | 
			
		||||
  # config.action_dispatch.rack_cache = true
 | 
			
		||||
 | 
			
		||||
  # Disable Rails's static asset server (Apache or nginx will already do this).
 | 
			
		||||
  config.serve_static_assets = false
 | 
			
		||||
 | 
			
		||||
  # Compress JavaScripts and CSS.
 | 
			
		||||
  config.assets.js_compressor = :uglifier
 | 
			
		||||
  # config.assets.css_compressor = :sass
 | 
			
		||||
 | 
			
		||||
  # Do not fallback to assets pipeline if a precompiled asset is missed.
 | 
			
		||||
  config.assets.compile = false
 | 
			
		||||
 | 
			
		||||
  # Generate digests for assets URLs.
 | 
			
		||||
  config.assets.digest = true
 | 
			
		||||
 | 
			
		||||
  # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
 | 
			
		||||
 | 
			
		||||
  # Specifies the header that your server uses for sending files.
 | 
			
		||||
  # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
 | 
			
		||||
  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
 | 
			
		||||
 | 
			
		||||
  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
 | 
			
		||||
  # config.force_ssl = true
 | 
			
		||||
 | 
			
		||||
  # Set to :debug to see everything in the log.
 | 
			
		||||
  config.log_level = :info
 | 
			
		||||
 | 
			
		||||
  # Prepend all log lines with the following tags.
 | 
			
		||||
  # config.log_tags = [ :subdomain, :uuid ]
 | 
			
		||||
 | 
			
		||||
  # Use a different logger for distributed setups.
 | 
			
		||||
  # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
 | 
			
		||||
 | 
			
		||||
  # Use a different cache store in production.
 | 
			
		||||
  # config.cache_store = :mem_cache_store
 | 
			
		||||
 | 
			
		||||
  # Enable serving of images, stylesheets, and JavaScripts from an asset server.
 | 
			
		||||
  # config.action_controller.asset_host = "http://assets.example.com"
 | 
			
		||||
 | 
			
		||||
  # Ignore bad email addresses and do not raise email delivery errors.
 | 
			
		||||
  # Set this to true and configure the email server for immediate delivery to raise delivery errors.
 | 
			
		||||
  # config.action_mailer.raise_delivery_errors = false
 | 
			
		||||
 | 
			
		||||
  # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
 | 
			
		||||
  # the I18n.default_locale when a translation cannot be found).
 | 
			
		||||
  config.i18n.fallbacks = true
 | 
			
		||||
 | 
			
		||||
  # Send deprecation notices to registered listeners.
 | 
			
		||||
  config.active_support.deprecation = :notify
 | 
			
		||||
 | 
			
		||||
  # Disable automatic flushing of the log to improve performance.
 | 
			
		||||
  # config.autoflush_log = false
 | 
			
		||||
 | 
			
		||||
  # Use default logging formatter so that PID and timestamp are not suppressed.
 | 
			
		||||
  config.log_formatter = ::Logger::Formatter.new
 | 
			
		||||
 | 
			
		||||
  # Do not dump schema after migrations.
 | 
			
		||||
  config.active_record.dump_schema_after_migration = false
 | 
			
		||||
end
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue