#
# Organization Chart
# NOTE: this view of the data is Member-private
PVTCLASS = 'text-warning'
_html do
  _base href: '..'
  _link rel: 'stylesheet', href: "stylesheets/app.css?#{cssmtime}"

  _body? do
    _whimsy_body(
      title: @role['info']['role'],
      breadcrumbs: {
        roster: '.',
        orgchart: 'orgchart/' # This is a sub-page of orgchart
      }
    ) do
      id = @role['info']['id'] || @role['info']['chair'] # may be single id or array
      names= []
      [id].flatten.each do |id1|
        names << ASF::Person.find(id1).public_name
      end
      _whimsy_panel_table(
        title: "#{@role['info']['role']} - #{names.join(', ')}",
        helpblock: -> {
          _ 'Note that this detail page includes  '
          _span.glyphicon.glyphicon_lock :aria_hidden, class: 'text-primary', aria_label: 'ASF Members Private'
          _span ' Member private data.', class: PVTCLASS
        }
      ) do
        # ********************************************************************
        # *                             Summary                              *
        # ********************************************************************
        _table.table do
          _tbody do
            @role['info'].each do |key, value|
              next if key == 'role'
              next unless value
              (key =~ /private/i) ? (pvt = PVTCLASS) : (pvt = '')
              _tr_ do
                _td key, class: pvt

                if %w(id chair).include? key
                  _td class: pvt do
                    if value == 'tbd'
                      _span value
                    else
                      [value].flatten.each_with_index do |value1, i| # may be single id or array of ids
                        _ ', ' if i > 0
                        _a value1, href: "committer/#{value1}"
                      end
                    end
                  end
                elsif %w(reports-to).include? key
                  _td! class: pvt do
                    value.split(/[, ]+/).each_with_index do |role, index|
                      _span ', ' if index > 0
                      if role == 'members'
                        _a role, href: 'roster/members'
                      else
                        _a role, href: "orgchart/#{role}"
                      end
                    end
                  end
                elsif %w(email).include? key
                  _td class: pvt do
                    _a value, href: "mailto:#{value}"
                  end
                elsif %w(private-list).include? key
                  _td class: pvt do
                    if value == 'board-private@apache.org'
                      _a value, href: "mailto:#{value}"
                    else
                      _a value, href: "https://lists.apache.org/list.html?#{value}"
                    end
                  end
                elsif %w(roster resolution).include? key
                  _td class: pvt do
                    _a value, href: value
                  end
                else
                  _td value, class: pvt
                end
                _td class: pvt do
                  _(@desc[key]) if @desc.key?(key)
                end
              end
            end
          end
        end

        # ********************************************************************
        # *                             Oversees                             *
        # ********************************************************************
        unless @oversees.empty?
          @oversees = @oversees.sort_by {|name, duties| duties['info']['role']}
          _ul.list_group do
            _li.list_group_item.active do
              _h4 'This Officer Oversees'
            end
            _li.list_unstyled do
              _ul style: 'margin-top: 15px; margin-bottom: 15px;' do
                @oversees.each do |name, duties|
                  _li do
                    _a duties['info']['role'], href: "orgchart/#{name}"
                  end
                end
              end
            end
          end
        end

        # ********************************************************************
        # *                             Details                              *
        # ********************************************************************
        _ul.list_group do
          @role.each do |title, text|
            next if title == 'info' or title == 'mtime'
            _li.list_group_item.active do
              (title =~ /private/i) ? _h4.text_capitalize.text_warning(title) : _h4.text_capitalize(title)
            end
            _li.list_group_item do
              _markdown text
            end
          end
        end

        # ********************************************************************
        # *                           Source Code                            *
        # ********************************************************************
        _ul.list_group do
          _li.list_group_item.active do
            _h4.text_warning('See This Source File')
          end
          _li.list_group_item do
            txtnam = File.basename(env['REQUEST_URI'])
            _a "foundation/officers/personnel-duties/#{txtnam}.txt", href: ASF::SVN.svnpath!('personnel-duties', "#{txtnam}.txt")
          end
        end

      end
    end
  end
end
