# Copyright (c) 2010, Diaspora Inc. This file is # licensed under the Affero General Public License version 3 or later. See # the COPYRIGHT file. module ApplicationHelper def how_long_ago(obj) timeago(obj.created_at) end def timeago(time, options={}) options[:class] ||= "timeago" content_tag(:abbr, time.to_s, options.merge(:title => time.iso8601)) if time end def bookmarklet "javascript:(function(){f='#{AppConfig[:pod_url]}bookmarklet?url='+encodeURIComponent(window.location.href)+'&title='+encodeURIComponent(document.title)+'¬es='+encodeURIComponent(''+(window.getSelection?window.getSelection():document.getSelection?document.getSelection():document.selection.createRange().text))+'&v=1&';a=function(){if(!window.open(f+'noui=1&jump=doclose','diasporav1','location=yes,links=no,scrollbars=no,toolbar=no,width=620,height=250'))location.href=f+'jump=yes'};if(/Firefox/.test(navigator.userAgent)){setTimeout(a,0)}else{a()}})()" end def object_fields(object) object.attributes.keys end def type_partial(post) class_name = post.class.name.to_s.underscore "#{class_name.pluralize}/#{class_name}" end def hard_link(string, path) link_to string, path, :rel => 'external' end def post_yield_tag(post) (':' + post.id.to_s).to_sym end def info_text(text) image_tag 'icons/monotone_question.png', :class => 'what_is_this', :title => text end def get_javascript_strings_for(language) defaults = I18n.t('javascripts', :locale => DEFAULT_LANGUAGE) if language != DEFAULT_LANGUAGE translations = I18n.t('javascripts', :locale => language) defaults.update(translations) end defaults end def direction_for(string) return '' unless string.respond_to?(:cleaned_is_rtl?) string.cleaned_is_rtl? ? 'rtl' : 'ltr' end def rtl? @rtl ||= RTL_LANGUAGES.include? I18n.locale end def controller_index_path kontroller = request.filtered_parameters["controller"] if kontroller.downcase != "contacts" kontroller = "aspects" end self.send((kontroller + "_path").to_sym) end def left_nav_root if request.filtered_parameters["controller"] == "contacts" t('contacts.index.my_contacts') else t('aspects.index.your_aspects') end end def contacts_link if current_user.contacts.size > 0 contacts_path else featured_users_path end end def all_services_connected? current_user.services.size == AppConfig[:configured_services].size end end