buttons

in www/board/agenda/views/models/agenda.js.rb [497:567]


  def buttons
    list = []

    unless (@attach !~ /^\d+$/ and @comments === undefined) or Minutes.complete
      
      if self.pending
        list << {form: AddComment, text: 'edit comment'}
      else
        list << {form: AddComment, text: 'add comment'}
      end
    end

    list << {button: Attend} if @title == 'Roll Call'

    if @attach =~ /^(\d+|7?[A-Z]+|4[A-Z]|8[.A-Z])$/
      if User.role == :secretary or not Minutes.complete
        unless Minutes.draft_posted
          if @attach =~ /^8[.A-Z]/
            if @attach =~ /^8[A-Z]/
              list << {form: Post, text: 'edit item'}
            elsif not text or @text.strip().empty?
              list << {form: Post, text: 'post item'}
            else
              list << {form: Post, text: 'edit items'}
            end
          elsif self.missing
            list << {form: Post, text: 'post report'}
          elsif @attach =~ /^7\w/
            list << {form: Post, text: 'edit resolution'}
          else
            list << {form: Post, text: 'edit report'}
          end
        end
      end
    end

    if User.role == :director
      unless self.missing or @comments === undefined or Minutes.complete
        list << {button: Approve} if @attach =~ /^(3[A-Z]|\d+|[A-Z]+)$/
      end

    elsif User.role == :secretary
      unless Minutes.draft_posted
        if @attach =~ /^7\w/
          list << {form: Vote}
        elsif Minutes.get(@title)
          list << {form: AddMinutes, text: 'edit minutes'}
        elsif ['Call to order', 'Adjournment'].include? @title
          list << {button: Timestamp}
        else
          list << {form: AddMinutes, text: 'add minutes'}
        end
      end

      if @attach =~ /^3\w/
        if
          Minutes.get(@title) == 'approved' and
          Server.drafts.include? @text[/board_minutes_\w+\.txt/]
        then
          list << {form: PublishMinutes}
        end
      elsif @title == 'Adjournment'
        if Minutes.ready_to_post_draft
          list << {form: DraftMinutes}
        end
      end
    end

    list
  end