diff --git a/app/assets/javascripts/inc/attribute_onoff.js b/app/assets/javascripts/inc/attribute_onoff.js new file mode 100644 index 00000000..efcbabd5 --- /dev/null +++ b/app/assets/javascripts/inc/attribute_onoff.js @@ -0,0 +1,33 @@ +function checkSwitch() { + $(".groups").each(function() { + $(this).find('.form-horizontal > .hide').length < $(this).find('.form-horizontal > div').length ? $(this).removeClass("disabled") : $(this).addClass("disabled") + }); + // $(".groups").addClass('disabled').has('.groups > .form-horizontal > div:not(.hide)').removeClass('disabled'); +} + +$(document).ready(function(){ + checkSwitch(); + $('.onoff').click(function () { + if($(this).parents("h4").length==1) { + $(this).parents(".map-block").toggleClass("disabled"); + $(this).parents(".map-block").find(".form-horizontal").toggleClass("hide"); + if($(this).parents(".map-block").hasClass("disabled")){ + $(this).text("OFF"); + }else{ + $(this).text("ON"); + } + } + if($(this).parents("legend").length==1) { + $(this).toggleClass("disabled"); + $(this).parents("legend").next("div").toggleClass("hide"); + if($(this).parents("legend").next("div").hasClass("hide")){ + $(this).text("OFF"); + }else{ + $(this).text("ON"); + } + checkSwitch(); + } + return false; + }); +}); + diff --git a/app/assets/javascripts/inc/attribute_panel_select.js b/app/assets/javascripts/inc/attribute_panel_select.js new file mode 100644 index 00000000..874c32d5 --- /dev/null +++ b/app/assets/javascripts/inc/attribute_panel_select.js @@ -0,0 +1,15 @@ +$(document).ready(function(){ + $(".status select").each(function (i) { + $(this).change(function () { + $(".status option:selected").eq(i).each(function () { + if($(this).attr("value")=="alumna") { + $(this).parents(".status").nextAll(".graduated").removeClass("hide"); + $(this).parents(".status").nextAll(".graduated").find("select").removeAttr("disabled"); + }else{ + $(this).parents(".status").nextAll(".graduated").addClass("hide"); + $(this).parents(".status").nextAll(".graduated").find("select").attr({disabled:''}); + } + }); + }) + }) +}); \ No newline at end of file diff --git a/app/assets/javascripts/inc/input_module.js b/app/assets/javascripts/inc/input_module.js.erb similarity index 70% rename from app/assets/javascripts/inc/input_module.js rename to app/assets/javascripts/inc/input_module.js.erb index 869a2098..944d935a 100644 --- a/app/assets/javascripts/inc/input_module.js +++ b/app/assets/javascripts/inc/input_module.js.erb @@ -1,21 +1,38 @@ jQuery(document).ready(function($) { // Stuff to do as soon as the DOM is ready. Use $() w/o colliding with other libs; var current_textarea = {}; - current_textarea['en'] = $("textarea[for=en]").val(); - current_textarea['zh_tw'] = $("textarea[for=zh_tw]").val(); + var lang = <%= VALID_LOCALES.to_s %>; + + $.each(lang,function(index,value){ + current_textarea[value] = $("textarea[for="+value+"]").val(); + }); + + // current_textarea['en'] = $("textarea[for=en]").val(); + // current_textarea['zh_tw'] = $("textarea[for=zh_tw]").val(); + + + $("div.controls").on("click","a.edit-btn",function(){ - switch($(this).parent().parent().find("ul li.active a").attr("href")){ - case ".tab1": - $("#tab3").addClass("active in"); - $(".modal-body li").eq(0).addClass("active"); - break; - case ".tab2": - $("#tab4").addClass("active in"); - $(".modal-body li").eq(1).addClass("active"); - break; - } - var lang = ["en","zh_tw"]; - for(i=0;i<2;i++){ + choosen_lang = $(this).parent().parent().find("ul li.active").attr("for"); + $(this).parents(".editMore").find(".modal_tab").removeClass("active in"); + $(this).parents(".editMore").find(".modal_tab[for="+choosen_lang+"]").addClass("active in"); + + $(this).parents(".editMore").find(".modal-body li").removeClass("active"); + $(this).parents(".editMore").find(".modal-body li[for="+choosen_lang+"]").addClass("active"); + // switch($(this).parent().parent().find("ul li.active a").attr("href")){ + // case ".tab1": + + // $("#tab3").addClass("active in"); + // $(".modal-body li").eq(0).addClass("active"); + // break; + // case ".tab2": + // $("#tab4").addClass("active in"); + // $(".modal-body li").eq(1).addClass("active"); + // break; + }); + + + $.each(lang,function(i,value){ var sa = $(".tab-content input.street_address_"+lang[i]).val(); var city = $(".tab-content input.city_"+lang[i]).val(); @@ -36,8 +53,8 @@ jQuery(document).ready(function($) { $(".tab-content").find('#street_address_'+lang[i]).val($(".tab-content textarea[for="+lang[i]+"]").val()); $(".modal-body input").val(""); } - } - }) + }); + $("textarea.dummy").change(function(){ var lang = $(this).attr("for"); if(current_textarea[lang] != $(this).val()) @@ -54,7 +71,7 @@ jQuery(document).ready(function($) { }) $(".bt-save").click(function(){ - var lang = ["en","zh_tw"]; + var lang = <%= VALID_LOCALES.to_s %>; for(i=0;i<2;i++){ var sa = $(".tab-content").find('#street_address_'+lang[i]).val(); var city = $(".tab-content").find('#city_'+lang[i]).val(); diff --git a/app/assets/javascripts/inc/ploy_input_field.js b/app/assets/javascripts/inc/ploy_input_field.js index a4bb01f5..d3369114 100644 --- a/app/assets/javascripts/inc/ploy_input_field.js +++ b/app/assets/javascripts/inc/ploy_input_field.js @@ -1,3 +1,5 @@ +// var $CloneTarget ; + function checkMultipleInput() { $(".multipleInput").each(function() { $(this).children('.controls').length==1 ? $(this).addClass("plural") : $(this).removeClass("plural") @@ -18,7 +20,15 @@ $modalNumber+=1; var $CloneTarget = $(this).parents(".controls").prev(".multipleInput").children('.controls:last'); $(this).parents(".controls").prev(".multipleInput").append($CloneTarget.clone()); - $(this).parents(".controls").prev(".multipleInput").children('.controls:last input').val(""); + + // $(this).parents(".controls").prev(".multipleInput").children('.controls:last input').val(""); + $(this).parents(".controls").prev(".multipleInput").children('.controls:last').find('input').val('') + $(this).parents(".controls").prev(".multipleInput").children('.controls:last').find('.tab-pane').addClass("NewInput_"+$modalNumber) + btn = $(this).parents(".controls").prev(".multipleInput").children('.controls:last').find(".nav.nav-pills li") + $.each(btn,function(i,value){ + old_link = $(this).children("a").attr("href"); + $(this).children("a").attr("href",old_link+".NewInput_"+$modalNumber); + }); removeInput(); checkMultipleInput(); return false; diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 0588ae5a..8f0824a6 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -8,6 +8,8 @@ class ApplicationController < ActionController::Base helper :admin before_filter :set_locale, :set_site + helper_attr :site_valid_locales + def set_current_user User.current = current_or_guest_user end diff --git a/app/helpers/attribute_fields_helper.rb b/app/helpers/attribute_fields_helper.rb index 5b7343fa..f7763c36 100644 --- a/app/helpers/attribute_fields_helper.rb +++ b/app/helpers/attribute_fields_helper.rb @@ -5,7 +5,9 @@ module AttributeFieldsHelper include ActionView::Helpers::DateHelper include ActionView::Helpers::TagHelper include ActionView::Helpers::RenderingHelper + include ActionView::Context include OrbitBasis::RenderAnywhere + def block_helper(user,index,disable = false) unless self.disabled @index = index @@ -30,7 +32,7 @@ module AttributeFieldsHelper 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)) + result = text_area_tag(get_field_name_base + key_field, value,@markup_options.merge({:placeholder=>place_holder,:for=>key})) result << hidden_field_tag(get_basic_field_name_base+"[temp][street_address][#{key}]",nil,:class=>"street_address_#{key}") result << hidden_field_tag(get_basic_field_name_base+"[temp][city][#{key}]",nil,:class=>"city_#{key}") @@ -54,7 +56,7 @@ module AttributeFieldsHelper end def render_date_durnation #Need re-write low priority - + end def render_radio_button @@ -82,100 +84,131 @@ module AttributeFieldsHelper end def render_text_field - control_group_wrapper do |key,value,add_more_counter| - if(add_more) - place_holder= @panel_setting["placeholder"][key] - text_field_tag(get_field_name_base + (key.nil? ? '' : "[][#{key}]"), value,@markup_options.merge(:placeholder=>place_holder)) - else - value = (can_muti_lang_input? ? @prefiled_value[key] : @prefiled_value) rescue nil + 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 + key_field, value,@markup_options.merge(:placeholder=>place_holder)) - end - end + text_field_tag([get_field_name_base,add_more_blank,key_field].join, value,@markup_options.merge(:placeholder=>place_holder)) + end end protected - def lang_panel_control_wrapper(&block) - result = '