<%= @department.name %> (<%= @department.type_name %>)

<% if @department.parent %>

상위 부서: <%= link_to @department.parent.name, department_path(@department.parent) %>

<% end %> <% if @department.description.present? %>

설명: <%= @department.description %>

<% end %>

리더

팀장 <% if @department.leader %> <%= link_to @department.leader.name, user_path(@department.leader) %> 팀장 <% else %> 미지정 <% end %>
대결자 <% if @department.acting_leader && @department.leader.nil? %> <%= link_to @department.acting_leader.name, user_path(@department.acting_leader) %> 대결 <% elsif @department.acting_leader %> <%= link_to @department.acting_leader.name, user_path(@department.acting_leader) %> 대결 (비활성) <% else %> 미지정 <% end %>
<% if @department.leader || @department.acting_leader %>

<%= link_to '리더 해제', clear_leader_department_path(@department), method: :patch, class: 'icon icon-del', data: { confirm: '리더를 해제하시겠습니까?' } %>

<% end %>

구성원 (<%= @members.count %>명)

<% if @members.any? %> <% @members.each do |member| %> <% end %>
이름 역할 작업
<%= link_to member.user.name, user_path(member.user) %> <% if @department.leader_id == member.user_id %> 팀장 <% elsif @department.acting_leader_id == member.user_id %> 대결 <% end %> <%= member.user.login %> <% unless @department.leader_id == member.user_id %> <%= link_to '팀장 지정', set_leader_department_path(@department, user_id: member.user_id), method: :patch, class: 'icon icon-user', title: '팀장으로 지정' %> <% end %> <% unless @department.acting_leader_id == member.user_id %> <%= link_to '대결자', set_acting_leader_department_path(@department, user_id: member.user_id), method: :patch, class: 'icon icon-user', title: '대결자로 지정' %> <% end %> <%= link_to '제거', remove_member_department_path(@department, user_id: member.user_id), method: :delete, data: { confirm: '이 구성원을 제거하시겠습니까?' }, class: 'icon icon-del' %>
<% else %>

구성원이 없습니다.

<% end %>

구성원 추가 (LDAP 검색)


<%= link_to '목록으로', departments_path, class: 'icon icon-back' %> <%= link_to '수정', edit_department_path(@department), class: 'icon icon-edit' %>

<%= javascript_tag do %> var searchTimeout = null; $('#ldap_search').on('keyup', function() { var query = $(this).val(); if (searchTimeout) clearTimeout(searchTimeout); if (query.length < 2) { $('#search_results').html(''); $('#search_status').text(''); return; } $('#search_status').text('검색 중...'); searchTimeout = setTimeout(function() { $.ajax({ url: '<%= search_ldap_departments_path %>', data: { q: query }, dataType: 'json', success: function(data) { $('#search_status').text(data.length + '명 발견'); var html = ''; if (data.length === 0) { html = '

검색 결과가 없습니다.

'; } else { html = ''; data.forEach(function(user) { html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; }); html += '
ID이름이메일상태
' + user.uid + '' + user.name + '' + (user.email || '-') + '' + (user.exists ? 'Redmine 등록됨' : 'LDAP만') + ''; if (user.exists) { html += '
'; html += ''; html += ''; html += ''; html += '
'; } else { html += '
'; html += ''; html += ''; html += ''; html += ''; html += '
'; } html += '
'; } $('#search_results').html(html); }, error: function() { $('#search_status').text('검색 오류'); $('#search_results').html('

검색 중 오류가 발생했습니다.

'); } }); }, 300); }); <% end %>