336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

CentOS에 mono를 돌릴려고 홈피 갔으나 


6.x 이야기는 없어서 좀 찾아 봤습니다


CentOS 7, Fedora 19, and derivatives

Add the Mono Project GPG signing key and the package repository in a root shell with:


http://stackoverflow.com/questions/16900575/install-mono-and-monodevelop-on-centos-5-x-6-x


여기 나온 내용이 가장 좋은데요


우선 gcc 설치


su
cd /usr/src

Ensure GCC and friends are installed (to build the Mono source code)

yum install gcc gcc-c++ libtool bison autoconf automake


해당글의 링크는 오래 된 거니


http://download.mono-project.com/sources/mono/ 여기 가서 최신버전 다운


Grab and unpack the Mono source code

전 4.3.2 다운 했습니다


wget http://download.mono-project.com/sources/mono/mono-4.3.2.467.tar.bz2
tar -xvjf mono-4.3.2.467.tar.bz2

Build and install Mono

cd mono-4.3.2
./configure --prefix=/usr
make && make install


요래 하면 됩니다


이것 저것 하다가 꼬이면 저 같은 경우는 mono 2.x가 설치 되는 경우가 있으니


mono --version 하셔서 해당 버전이 뜨는지 확인 하시기 바랍니다.







336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.




http://oneifather.tistory.com/126 전에 포스팅한  내용으로 잘 쓰고 있었는데 ....


버그가 좀 나와서 코드를 수정해야 했다.


버그 내용이 다른건 아니고 원본 레드마인 소스가 하나의 버전을 기준으로 


데이터가 나오게 만들어진거라 


전에 소스 기준으로 콤보박스를 변경하면 데이터가 정상적으로 출력되지 않는다


모 레일즈 전문가가 하면 5분이면 dhml 스타일로 이쁘게수정하겠지만 


난 그냥 사채 프로그래머니 전통적인 Page Load 방식으로 수정한다




우선 레이아웃을 위와 같이 수정했다. 


하나의 콤보로 모든 버전의 데이터가 변경 되는 구조이다.



apps\redmine\htdocs\app\views\projects\show.html.erb 을 수정했다 


 <div class="issues box">

<table class="issue-report-complete">

<h3>

<legend>

<select onChange="window.location.href=this.value">

<% if params[:status_by] == "tracker" || params[:status_by] == ""%>

<option value="<%= project_path(@project)%>?status_by=tracker" selected="selected">유형</option>

<% else %>

<option value="<%= project_path(@project)%>?status_by=tracker">유형</option>

<%end%>

<% if params[:status_by] == "status"%>

<option value="<%= project_path(@project)%>?status_by=status" selected="selected">상태</option>

<% else %>

<option value="<%= project_path(@project)%>?status_by=status">상태</option>

<%end%>

<% if params[:status_by] == "priority"%>

<option value="<%= project_path(@project)%>?status_by=priority" selected="selected">우선순위</option>

<% else %>

<option value="<%= project_path(@project)%>?status_by=priority">우선순위</option>

<%end%>

<% if params[:status_by] == "author"%>

<option value="<%= project_path(@project)%>?status_by=author" selected="selected">저자</option>

<% else %>

<option value="<%= project_path(@project)%>?status_by=author">저자</option>

<%end%>

<% if params[:status_by] == "assigned_to"%>

<option value="<%= project_path(@project)%>?status_by=assigned_to" selected="selected">담당자</option>

<% else %>

<option value="<%= project_path(@project)%>?status_by=assigned_to">담당자</option>

<%end%>

<% if params[:status_by] == "category"%>

<option value="<%= project_path(@project)%>?status_by=category" selected="selected">범주</option>

<% else %>

<option value="<%= project_path(@project)%>?status_by=category">범주</option>

<%end%>

</select> 별 일감

</legend>

</h3>

<tr>

<td>

<% @versions.each do |version| %>

<header>

<h4 class="version"><%= link_to_version version, :name => version_anchor(version) %></h4>

</header>

<%= render :partial => 'projects/overview', :locals => {:version => version} %>

<%end%>

</td>

</tr>

</table>

  </div>


이런식의 구성을 취하도록 수정했다


overview의 내용도 


<% if version.completed? %>

  <p><%= format_date(version.effective_date) %></p>

<% elsif version.effective_date %>

  <p><strong><%= due_date_distance_in_words(version.effective_date) %></strong> (<%= format_date(version.effective_date) %>)</p>

<% end %>


<p><%=h version.description %></p>

<% if version.custom_field_values.any? %>

<ul>

  <% render_custom_field_values(version) do |custom_field, formatted| %>

    <li><span class="label"><%= custom_field.name %>:</span> <%= formatted %></li>

  <% end %>

</ul>

<% end %>


<% if version.issues_count > 0 %>

    <%= progress_bar([version.closed_percent, version.completed_percent],

                     :width => '90%', :legend => ('%0.0f%' % version.completed_percent)) %>

    <p class="progress-info">

      <%= link_to(l(:label_x_issues, :count => version.issues_count),

                  version_filtered_issues_path(version, :status_id => '*')) %>

      &nbsp;

      (<%= link_to_if(version.closed_issues_count > 0,

                      l(:label_x_closed_issues_abbr, :count => version.closed_issues_count),

                      version_filtered_issues_path(version, :status_id => 'c')) %>

      &#8212;

      <%= link_to_if(version.open_issues_count > 0,

                     l(:label_x_open_issues_abbr, :count => version.open_issues_count),

                     version_filtered_issues_path(version, :status_id => 'o')) %>)

    </p>

&nbsp;

<div id="status_by">

<%= render_issue_status_by_project(version, params[:status_by]) %>

</div>


&nbsp;

<% else %>

    <p class="progress-info"><%= l(:label_roadmap_no_issues) %></p>

<% end %>


요렇게 수정 했다.


내용을 보면 render_issue_status_by_project 함수 보일거고 


projects_helper.rb에 아래처럼 추가하고 


def render_issue_status_by_project(version, criteria)

    criteria = 'tracker' unless STATUS_BY_CRITERIAS.include?(criteria)


    h = Hash.new {|k,v| k[v] = [0, 0]}

    begin

      # Total issue count

      version.fixed_issues.group(criteria).count.each {|c,s| h[c][0] = s}

      # Open issues count

      version.fixed_issues.open.group(criteria).count.each {|c,s| h[c][1] = s}

    rescue ActiveRecord::RecordNotFound

    # When grouping by an association, Rails throws this exception if there's no result (bug)

    end

    # Sort with nil keys in last position

    counts = h.keys.sort {|a,b| a.nil? ? 1 : (b.nil? ? -1 : a <=> b)}.collect {|k| {:group => k, :total => h[k][0], :open => h[k][1], :closed => (h[k][0] - h[k][1])}}

    max = counts.collect {|c| c[:total]}.max


    render :partial => 'projects/issue_counts', :locals => {:version => version, :criteria => criteria, :counts => counts, :max => max}

  end


_issue_counts.html.erb에 아래와 같이 추가 했다


<%= form_tag({}, :id => "status_by_form") do -%>

<fieldset>

<% if counts.empty? %>

    <p><em><%= l(:label_no_data) %></em></p>

<% else %>

    <table class="version-issue">

    <% counts.each do |count| %>

    <tr>

        <td>

          <% if count[:group] -%>

            <%= link_to(count[:group], project_issues_path(version.project, :set_filter => 1, :status_id => '*', :fixed_version_id => version, "#{criteria}_id" => count[:group])) %>

          <% else -%>

            <%= link_to(l(:label_none), project_issues_path(version.project, :set_filter => 1, :status_id => '*', :fixed_version_id => version, "#{criteria}_id" => "!*")) %>

          <% end %>

        </td>

        <td>

            <%= progress_bar((count[:closed].to_f / count[:total])*100,

                  :legend => "#{count[:closed]}/#{count[:total]}",

                  :width => "#{(count[:total].to_f / max * 200).floor}px;") %>

        </td>

    </tr>

    <% end %>

    </table>

<% end %>

</fieldset>

<% end %>


끝!!!! 





' > 잡 지식' 카테고리의 다른 글

CentOS 6.x에 mono 설치  (0) 2016.03.10
Redmine 시작 페이지 바꾸기  (1) 2016.01.28
WinSCP Upload 스크립터  (0) 2016.01.27
Visual Studio 2012 - Macros for Build Commands and Properties  (0) 2012.12.10
robocopy (폴더 싱크 맞추기)  (0) 2012.07.17
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

월급은 쬐금 주면서 


회사에서 하는 일이 좀 많다


모 그래도 운영은 안하니 다른 고생하는 분들에 비하면 


쬐금 일하긴 하지만 ....


그중 요즘에 주로 하는 Redmine 시작 페이지 변경 작업에 대해서 쬐금 적어 본다 ~


bitnami_redmine 윈도우판 기준이다



팀에서 원하는 시작 페이지 모습은 대충 





이런거 같았다 


보면 알겠지만 Versions에 있는 디자인을 좀 가져 오면 된다.


apps\redmine\htdocs\app\views\projects\show.html.erb 를 열어서 


<% if User.current.allowed_to?(:view_issues, @project) %> 이거 찾아서 


아래에다 대충 이렇게 넣어 준다.


<div class="issues box">

<table class="issue-report-complete">

<h3>버전별 달성률</h3>

<tr>

<td>

<% @versions.each do |version| %>

<header>

<h4 class="version"><%= link_to_version version, :name => version_anchor(version) %></h4>

</header>

<%= render :partial => 'projects/overview', :locals => {:version => version} %>

<%end%>

</td>

</tr>

</table>

  </div>


html도 style도 조금 수정해야 하니 class="issue-report-complete" 이런식으로 class도 잡았다


apps\redmine\htdocs\public\stylesheets\application.css 열어서


/***** Tables *****/

table.issue-report-complete { border: 1px solid #e4e4e4;  border-collapse: collapse; width: 100%; margin-bottom: 4px; }

table.issue-report-complete th { background-color:#EEEEEE; padding: 4px; padding-left:8px; white-space:nowrap; text-align: center;}

table.issue-report-complete th.number { width: 20%; background-color:#EEEEEE; padding: 4px; padding-left:8px; white-space:nowrap; text-align: center;}

table.issue-report-complete td {vertical-align:center; padding-left:8px; text-align:left; width: 20%;}

table.issue-report-complete td.progress {vertical-align:center; padding-left:8px; text-align:center; }

table.issue-report-complete th.title { width: 25%; background-color:#EEEEEE; padding: 4px; padding-left:8px; white-space:nowrap; text-align: center;}


/***** Tables *****/

table.version-issue { border: 1px solid #e4e4e4;  border-collapse: collapse; width: 100%; margin-bottom: 5px; margin-top: 5px; }

table.version-issue td {vertical-align:center; padding-left:8px; padding-top:4px; text-align:left; width: 3em;}


이정도 넣어 주고 


apps\redmine\htdocs\app\views\projects\_overview.html.erb 새로 작성한다.


<% if version.completed? %>

  <p><%= format_date(version.effective_date) %></p>

<% elsif version.effective_date %>

  <p><strong><%= due_date_distance_in_words(version.effective_date) %></strong> (<%= format_date(version.effective_date) %>)</p>

<% end %>


<p><%=h version.description %></p>

<% if version.custom_field_values.any? %>

<ul>

  <% render_custom_field_values(version) do |custom_field, formatted| %>

    <li><span class="label"><%= custom_field.name %>:</span> <%= formatted %></li>

  <% end %>

</ul>

<% end %>


<% if version.issues_count > 0 %>

    <%= progress_bar([version.closed_percent, version.completed_percent],

                     :width => '90%', :legend => ('%0.0f%' % version.completed_percent)) %>

    <p class="progress-info">

      <%= link_to(l(:label_x_issues, :count => version.issues_count),

                  version_filtered_issues_path(version, :status_id => '*')) %>

      &nbsp;

      (<%= link_to_if(version.closed_issues_count > 0,

                      l(:label_x_closed_issues_abbr, :count => version.closed_issues_count),

                      version_filtered_issues_path(version, :status_id => 'c')) %>

      &#8212;

      <%= link_to_if(version.open_issues_count > 0,

                     l(:label_x_open_issues_abbr, :count => version.open_issues_count),

                     version_filtered_issues_path(version, :status_id => 'o')) %>)

    </p>

&nbsp;

<div id="status_by">

<%= render_issue_status_by(version, params[:status_by]) %>

</div>

&nbsp;

<% else %>

    <p class="progress-info"><%= l(:label_roadmap_no_issues) %></p>

<% end %>


요래 작성했으면

시작페이지가 변경 되는데 글자가 가운데 정렬일 것이다 

\apps\redmine\htdocs\app\views\versions\_issue_counts.html.erb 열어서 

<%= form_tag({}, :id => "status_by_form") do -%>
<fieldset>
<legend>
<%= l(:label_issues_by,
       select_tag('status_by',
                   status_by_options_for_select(criteria),
                   :id => 'status_by_select',
                   :data => {:remote => true, :method => 'post', :url => status_by_version_path(version)})).html_safe %>
</legend>
<% if counts.empty? %>
    <p><em><%= l(:label_no_data) %></em></p>
<% else %>
    <table class="version-issue">
    <% counts.each do |count| %>
    <tr>
        <td>
          <% if count[:group] -%>
            <%= link_to(count[:group], project_issues_path(version.project, :set_filter => 1, :status_id => '*', :fixed_version_id => version, "#{criteria}_id" => count[:group])) %>
          <% else -%>
            <%= link_to(l(:label_none), project_issues_path(version.project, :set_filter => 1, :status_id => '*', :fixed_version_id => version, "#{criteria}_id" => "!*")) %>
          <% end %>
        </td>
        <td>
            <%= progress_bar((count[:closed].to_f / count[:total])*100,
                  :legend => "#{count[:closed]}/#{count[:total]}",
                  :width => "#{(count[:total].to_f / max * 200).floor}px;") %>
        </td>
    </tr>
    <% end %>
    </table>
<% end %>
</fieldset>
<% end %>

요런식으로 변경해 준다 아까 입력한 class 적용 시키는 부분이다 

요거 하는데 7시간 걸림 

개인적으로 레일즈가 node보다 싫다~ 





' > 잡 지식' 카테고리의 다른 글

CentOS 6.x에 mono 설치  (0) 2016.03.10
Redmine Projects 페이지 변경  (0) 2016.02.19
WinSCP Upload 스크립터  (0) 2016.01.27
Visual Studio 2012 - Macros for Build Commands and Properties  (0) 2012.12.10
robocopy (폴더 싱크 맞추기)  (0) 2012.07.17

+ Recent posts