Skip to content
Snippets Groups Projects
group2summary.tpl 2.03 KiB
Newer Older
xavier's avatar
xavier committed
<div id='groups'>
xavier's avatar
xavier committed
  <div class='crm-summary-row groups'>
xavier's avatar
xavier committed
    <div class='crm-label'>Groups</div>
    <div class='crm-content'>
xavier's avatar
xavier committed
      <span id="load_groups" class="crm-button">show me<span>
xavier's avatar
xavier committed
    </div>
  </div>
</div>

xavier's avatar
xavier committed
{* 
xavier's avatar
xavier committed
var data={crmAPI entity='GroupContact' action='get' sequential=1 contact_id=$contactId};
xavier's avatar
xavier committed
to avoid creating javascript global variables, wrap them in an anonymous function and assign the parameters from smarty variables on the last line before {/literal} 
*}
xavier's avatar
xavier committed

{literal}
xavier's avatar
xavier committed
<style>
.groups .crm-label,#group_add li {cursor:pointer;}
</style>

<script>
xavier's avatar
xavier committed
(function(contact_id,data){
xavier's avatar
xavier committed

xavier's avatar
xavier committed
cj(function($){
  if ($(".crm-contact_type_label").length == 0) {
xavier's avatar
xavier committed
    CRM.alert("Someone has changed the summary layout, groups can't be displayed properly");
xavier's avatar
xavier committed
    return;
  }
  $(".crm-contact_type_label").parent().parent().prepend($("#groups").html());
  $("#groups").remove();
xavier's avatar
xavier committed

xavier's avatar
xavier committed
  var groups=[];
  $.each(data.values, function(key) {
    groups.push(data.values[key].title);
  });
xavier's avatar
xavier committed
  $(".groups .crm-content").html(groups.join(","));

xavier's avatar
xavier committed
    
xavier's avatar
xavier committed
  $(".groups .crm-label").click(function(){
    CRM.api('Group', 'get', {'sequential': 1},
      {success: function(data) {
        var groups= "<ul id='group_add'>";
        $.each(data.values, function(key) {
          groups = groups + "<li data-id='"+data.values[key].id+"'>"+data.values[key].title+"</li>";
        });
        groups = groups + "<ul>";
        CRM.alert(groups,"add to a group","info",{expires:0});
        $("#group_add li").click(function(){
          var id = $(this).data("id");
          var name = $(this).html();
          CRM.api('GroupContact', 'create', {'sequential': 1, 'group_id':id,'contact_id': contact_id},
           {success: function(data) {
              var groups =$(".groups .crm-content").html();
              $(".groups .crm-content").html(groups+","+name);
              CRM.alert("group added",name,"success");
           }}
         ); 
      })
     }
    });
xavier's avatar
xavier committed
  });

xavier's avatar
xavier committed
});

xavier's avatar
xavier committed
}
xavier's avatar
xavier committed
{/literal}
xavier's avatar
xavier committed
({$contactId},
{crmAPI entity='GroupContact' action='get' sequential=1 contact_id=$contactId}
));
xavier's avatar
xavier committed
</script>