profile.tpl 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <script type="text/javascript">
  2. $(document).ready( function() {
  3. $("#skills").fcbkcomplete({
  4. json_url: "{$url}?a=find_skills",
  5. cache: false,
  6. filter_case: false,
  7. filter_hide: true,
  8. complete_text:"{'StartToType'|get_lang}",
  9. firstselected: true,
  10. //onremove: "testme",
  11. onselect:"check_skills",
  12. filter_selected: true,
  13. newel: true
  14. });
  15. //Open dialog
  16. $("#dialog-form").dialog({
  17. autoOpen: false,
  18. modal : true,
  19. width : 550,
  20. height : 350,
  21. });
  22. var name = $( "#name" ),
  23. description = $( "#description" ),
  24. allFields = $( [] ).add( name ).add( description ), tips = $(".validateTips");
  25. $("#dialog-form").dialog({
  26. buttons: {
  27. "Add" : function() {
  28. var bValid = true;
  29. bValid = bValid && checkLength( name, "name", 1, 255 );
  30. var params = $("#save_profile_form").serialize();
  31. $.ajax({
  32. url: '{$url}?a=save_profile&'+params,
  33. success:function(data) {
  34. $("#dialog-form").dialog("close");
  35. alert("{"Saved"|get_lang}");
  36. }
  37. });
  38. },
  39. },
  40. close: function() {
  41. $("#name").attr('value', '');
  42. $("#description").attr('value', '');
  43. }
  44. });
  45. $("#add_profile").click(function() {
  46. $("#name").attr('value', '');
  47. $("#description").attr('value', '');
  48. $("#dialog-form").dialog("open");
  49. });
  50. });
  51. function check_skills() {
  52. //selecting only selected users
  53. $("#skills option:selected").each(function() {
  54. var skill_id = $(this).val();
  55. if (skill_id != "" ) {
  56. $.ajax({
  57. url: "{$url}?a=skill_exists",
  58. data: "skill_id="+skill_id,
  59. success: function(return_value) {
  60. if (return_value == 0 ) {
  61. alert("{'SkillDoesNotExist'|get_lang}");
  62. //Deleting select option tag
  63. $("#skills option[value="+skill_id+"]").remove();
  64. //Deleting holder
  65. $(".holder li").each(function () {
  66. if ($(this).attr("rel") == skill_id) {
  67. $(this).remove();
  68. }
  69. });
  70. }
  71. },
  72. });
  73. }
  74. });
  75. }
  76. function checkLength( o, n, min, max ) {
  77. if ( o.val().length > max || o.val().length < min ) {
  78. o.addClass( "ui-state-error" );
  79. updateTips( "Length of " + n + " must be between " +
  80. min + " and " + max + "." );
  81. return false;
  82. } else {
  83. return true;
  84. }
  85. }
  86. </script>
  87. {$form}
  88. {if !empty($search_skill_list) }
  89. <div class="skills-skills">
  90. <h3>{"Skills"|get_lang}</h3>
  91. <ul class="holder">
  92. {foreach $search_skill_list as $search_skill_id}
  93. <li class="bit-box">
  94. {$skill_list[$search_skill_id].name}
  95. <a class="closebutton" href="?a=remove_skill&id={$search_skill_id}"></a>
  96. </li>
  97. {/foreach}
  98. </ul>
  99. <a id="add_profile" class="btn" href="#"> {"SaveThisSearch"|get_lang}</a>
  100. </div>
  101. {/if}
  102. {if !empty($profiles) }
  103. <div class="skills-profiles">
  104. <h3>{"SkillProfiles"|get_lang}</h3>
  105. <ul class="holder">
  106. {foreach $profiles as $profile}
  107. <li class="bit-box">
  108. <a href="?a=load_profile&id={$profile.id}">{$profile.name}</a>
  109. </li>
  110. {/foreach}
  111. </ul>
  112. </div>
  113. {/if}
  114. {if !empty($order_user_list) }
  115. <div class="skills-users">
  116. {foreach $order_user_list as $count => $user_list}
  117. <h2> {"Matches"|get_lang} {$count}/{$total_search_skills} </h2>
  118. {foreach $user_list as $user}
  119. <div class="ui-widget" style="width:400px">
  120. <div class="ui-widget-header">
  121. <h3>
  122. <img src="{$user['user'].avatar_small}" /> {$user['user'].complete_name} ({$user['user'].username})
  123. </h3>
  124. </div>
  125. <div class="ui-widget-content ">
  126. <h4>{"Skills"|get_lang} {$user.total_found_skills} / {$total_search_skills}</h4>
  127. <ul>
  128. {foreach $user['skills'] as $skill_data}
  129. <li>
  130. {if !empty({$skill_list[$skill_data.skill_id].name})}
  131. <span class="label_tag skill">{$skill_list[$skill_data.skill_id].name}</span>
  132. {else}
  133. {"SkillNotFound"|get_lang}
  134. {/if}
  135. {if $skill_data.found}
  136. *{"IHaveThisSkill"|get_lang}*
  137. {/if}
  138. </li>
  139. {/foreach}
  140. </ul>
  141. </div>
  142. </div>
  143. {/foreach}
  144. {/foreach}
  145. </div>
  146. {else}
  147. {if !empty($search_skill_list) }
  148. <div class="warning-message">{"NoResults"|get_lang}</div>
  149. {/if}
  150. {/if}
  151. <div id="dialog-form" style="display:none;">
  152. <form id="save_profile_form" class="form-horizontal" name="form">
  153. <fieldset>
  154. <div class="control-group">
  155. <label class="control-label" for="name">{"Name"|get_lang}</label>
  156. <div class="controls">
  157. <input type="text" name="name" id="name" size="40" />
  158. </div>
  159. </div>
  160. <div class="control-group">
  161. <label class="control-label" for="name">{"Description"|get_lang}</label>
  162. <div class="controls">
  163. <textarea name="description" id="description" class="span2" rows="7"></textarea>
  164. </div>
  165. </div>
  166. </fieldset>
  167. </form>
  168. </div>