render

in www/board/agenda/views/buttons/post.js.rb [28:299]


  def render
    _ModalDialog.wide_form.post_report_form! color: 'commented' do
      if @button == 'add item'
        _h4 'Select Item Type'

        _ul.new_item_type do
          _li do
            _button.btn.btn_primary 'Change Chair', onClick: selectItem
            _ '- change chair for an existing PMC'
          end

          _li do
            _button.btn.btn_primary 'Establish Project', onClick: selectItem
            _ '- direct to TLP project and subproject to TLP'
          end

          _li do
            _button.btn.btn_primary 'Terminate Project', onClick: selectItem
            _ '- move a project to the attic'
          end

          _li do
            _button.btn.btn_primary 'New Resolution', onClick: selectItem
            _ '- free form entry of a new resolution'
          end

          _li do
            _button.btn.btn_info 'Out of Cycle Report', onClick: selectItem
            _ '- report from a PMC not currently on the agenda for this month'
          end

          _li do
            _button.btn.btn_success 'Discussion Item', onClick: selectItem
            _ '- add a discussion item to the agenda'
          end
        end

        _button.btn_default 'Cancel', data_dismiss: 'modal'

      elsif @button == 'Change Chair'
        _h4 'Change Chair Resolution'

        _div.form_group do
          _label 'PMC', for: 'change-chair-pmc'
          _select.form_control.change_chair_pmc!(
            onChange: ->(event) {chair_pmc_change(event.target.value)}
          ) do
            @pmcs.each {|pmc| _option pmc}
          end
        end

        _div.form_group do
          _label 'Outgoing Chair', for: 'outgoing-chair'
          _input.form_control.outgoing_chair! value: @outgoing_chair,
            disabled: true
        end

        _div.form_group do
          _label 'Incoming Chair', for: 'incoming-chair'
          _select.form_control.incoming_chair! do
            @pmc_members.each do |person|
              _option person.name, value: person.id,
                selected: person.id == User.id
            end
          end
        end

        _button.btn_default 'Cancel', data_dismiss: 'modal'
        _button.btn_primary 'Draft', disabled: @disabled,
          onClick: draft_chair_change_resolution

      elsif @button == 'Establish Project'
        _h4 'Establish Project Resolution'

        _div.form_group do
          _label 'PMC name', for: 'establish-pmc'
          _input.form_control.establish_pmc! value: @pmcname
        end

        _div.form_group do
          
          pmcname = @pmcname
          if @pmcname and @pmcname !~ /[A-Z]/
            pmcname.gsub!(/\b\w/) {|c| c.upcase()}
          end

          _label 'Complete this sentence:', for: 'establish-description'
          _ " Apache #{pmcname} consists of software related to" if pmcname

          _textarea.form_control.establish_description! value: @pmcdesc,
            disabled: !pmcname
        end

        _div.form_group do
          _label 'Parent PMC name (if applicable)', for: 'parent-pmc'
          _select.form_control.parent_pmc!(
            onChange: ->(event) {parent_pmc_change(event.target.value)}
          ) do
            _option '-- none --', value: '', selected: true
            @pmcs.each {|pmc| _option pmc unless pmc == 'incubator'}
          end
        end

        if @chair
          _div.form_group do
            _label "Chair: #{@chair.name}"
          end
        end

        _label 'Initial set of PMC members'

        _p do
          if !@chair
              _ 'Search for the chair '
          else
              _ 'Search for additional PMC members '
          end
          _ 'using the search box below, and select '
          _ 'the desired name using the associated checkbox'
        end

        @pmc.each do |person|
          _div.form_check do
            _input.form_check_input type: 'checkbox', checked: true,
              value: person.id, id: "person_#{person.id}"
            _label.form_check_label person.name, for: "person_#{person.id}"
          end
        end

        _input.form_control value: @search, placeholder: 'search'

        if @search.length >= 3 and Server.committers
          search = @search.downcase().split(' ')
          Server.committers.each do |person|
            if
              search.all? {|part|
                person.id.include? part or
                person.name.downcase().include? part
              } \
                and
              not @pmc.include? person
            then
              _div.form_check key: person.id do
                _input.form_check_input type: 'checkbox',
                  id: "person_#{person.id}",
                  onClick: -> {establish_pmc(person)}
                _label.form_check_label person.name,
                  for: "person_#{person.id}"
              end
            end
          end
        elsif @search.length == 0 and @roster and not @roster.empty?
          @roster.each do |person|
            unless @pmc.include? person
              _div.form_check key: person.id do
                _input.form_check_input type: 'checkbox',
                  id: "person_#{person.id}",
                  onClick: -> {establish_pmc(person)}
                _label.form_check_label person.name,
                  for: "person_#{person.id}"
              end
            end
          end
        end

        _button.btn_default 'Cancel', data_dismiss: 'modal'
        _button.btn_primary 'Draft', onClick: draft_establish_project,
          disabled: (!@pmcname or !@pmcdesc or @pmc.empty?)

      elsif @button == 'Terminate Project'
        _h4 'Terminate Project Resolution'

        _div.form_group do
          _label 'PMC', for: 'terminate-pmc'
          _select.form_control.terminate_pmc! do
            @pmcs.each {|pmc| _option pmc}
          end
        end

        _p 'Reason for termination:'

        _div.form_check do
          _input.form_check_input.termvote! type: 'radio', name: 'termreason',
            onClick: -> {@termreason = 'vote'}
          _label.form_check_label 'by vote of the PMC', for: 'termvote'
        end

        _div.form_check do
          _input.form_check_input.termconsensus! type: 'radio',
            name: 'termreason', onClick: -> {@termreason = 'consensus'}
          _label.form_check_label 'by consensus of the PMC',
            for: 'termconsensus'
        end

        _div.form_check do
          _input.form_check_input.termboard! type: 'radio',
            name: 'termreason', onClick: -> {@termreason = 'board'}
          _label.form_check_label 'by the board for inactivity',
            for: 'termboard'
        end

        _button.btn_default 'Cancel', data_dismiss: 'modal'
        _button.btn_primary 'Draft', onClick: draft_terminate_project,
          disabled: (@pmcs.empty? or not @termreason)

      elsif @button == 'Out of Cycle Report'
        _h4 'Out of Cycle PMC Report'

        
        reporting_this_month = []
        Agenda.index.each do |item|
          if item.roster and item.attach =~ /^[A-Z]+$/
            reporting_this_month << item.roster.split('/').pop()
          end
        end

        
        _div.form_group do
          _label 'PMC', for: 'out-of-cycle-pmc'
          _select.form_control.out_of_cycle_pmc! do
            @pmcs.each do |pmc|
              _option pmc unless reporting_this_month.include? pmc
            end
          end
        end

        _button.btn_default 'Cancel', data_dismiss: 'modal'
        _button.btn_primary 'Draft', disabled: @pmcs.empty?,
          onClick: draft_out_of_cycle_report

      else

        _h4 @header

        
        if @header == 'Add Resolution' or @header == 'Add Discussion Item'
          _input.post_report_title! label: 'title', disabled: @disabled,
            placeholder: 'title', value: @title, onFocus: self.default_title
        end

        
        _textarea.post_report_text! label: @label, value: @report,
          placeholder: @label, rows: 17, disabled: @disabled,
          onInput: self.change_text

        
        if @@item.title == 'Treasurer'
          _form do
            _div.form_group do
              _label 'financial spreadsheet from virtual', for: 'upload'
              _input.upload! type: 'file', value: @upload
              _button.btn.btn_primary 'Upload', onClick: upload_spreadsheet,
                disabled: @disabled || !@upload
            end
          end
        end

        
        if @header != 'Add Resolution' and @header != 'Add Discussion Item'
          _input.post_report_message! label: 'commit message',
            disabled: @disabled, value: @message
        end

        
        _button.btn_default 'Cancel', data_dismiss: 'modal'
        _button 'Reflow', class: self.reflow_color(), onClick: self.reflow
        _button.btn_primary 'Submit', onClick: self.submit,
          disabled: (not self.ready())
      end
    end
  end