代码重置

luoquan
luoquan 10 years ago
parent e80caf87b2
commit 7d70e63f8d

@ -1,30 +1,30 @@
<% if ma.class == UserFeedbackMessage %> <% if ma.class == UserFeedbackMessage %>
<% if ma.journals_for_message_type == "JournalsForMessage" %> <% if ma.journals_for_message_type == "JournalsForMessage" %>
<ul class="homepageNewsList fl"> <ul class="homepageNewsList fl">
<li class="homepageNewsPortrait fl"> <li class="homepageNewsPortrait fl">
<a href="javascript:void(0);"><%=link_to image_tag(url_to_avatar(ma.journals_for_message.user), :width => "30", :height => "30"), user_path(ma.journals_for_message.user) %></a> <a href="javascript:void(0);"><%=link_to image_tag(url_to_avatar(ma.journals_for_message.user), :width => "30", :height => "30"), user_path(ma.journals_for_message.user) %></a>
</li> </li>
<li class="homepageNewsPubType fl"> <li class="homepageNewsPubType fl">
<%=link_to ma.journals_for_message.user, user_path(ma.journals_for_message.user), :class => "newsBlue homepageNewsPublisher" %> <%=link_to ma.journals_for_message.user, user_path(ma.journals_for_message.user), :class => "newsBlue homepageNewsPublisher" %>
<span class="<%= ma.viewed == 0 ? "homepageNewsTypeNotRead fl":"homepageNewsType fl" %>"><%= ma.journals_for_message.reply_id == 0 ? "给你留言了:" : "回复了你的留言:" %></span> <span class="<%= ma.viewed == 0 ? "homepageNewsTypeNotRead fl":"homepageNewsType fl" %>"><%= ma.journals_for_message.reply_id == 0 ? "给你留言了:" : "回复了你的留言:" %></span>
</li> </li>
<li class="homepageNewsContent fl"><a href="javascript:void(0);" class="newsGrey"> <li class="homepageNewsContent fl">
<%= link_to ma.journals_for_message.notes.gsub("<p>","").gsub("</p>","").gsub("<br />","").html_safe, feedback_path(ma.journals_for_message.jour_id), :class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", <%= link_to ma.journals_for_message.notes.gsub("<p>","").gsub("</p>","").gsub("<br />","").html_safe, feedback_path(ma.journals_for_message.jour_id), :class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}",
:onmouseover =>"message_titile_show($(this),event)", :onmouseover =>"message_titile_show($(this),event)",
:onmouseout => "message_titile_hide($(this))" %></a> :onmouseout => "message_titile_hide($(this))" %>
</li> </li>
<div style="display: none" class="message_title_red system_message_style" > <div style="display: none" class="message_title_red system_message_style" >
<% if ma.journals_for_message.reply_id == 0 %> <% if ma.journals_for_message.reply_id == 0 %>
<%= ma.journals_for_message.notes.html_safe %> <%= ma.journals_for_message.notes.html_safe %>
<% else %> <% else %>
<div class="fl"><strong>您的留言:</strong></div> <div class="fl"><strong>您的留言:</strong></div>
<div class="ml60"><%= JournalsForMessage.find(ma.journals_for_message.m_reply_id).notes.html_safe %></div> <div class="ml60"><%= JournalsForMessage.find(ma.journals_for_message.m_reply_id).notes.html_safe %></div>
<div class="fl"><strong>回复内容:</strong></div> <div class="fl"><strong>回复内容:</strong></div>
<div class="ml60"><%= ma.journals_for_message.notes.html_safe %></div> <div class="ml60"><%= ma.journals_for_message.notes.html_safe %></div>
<% end %> <% end %>
</div> </div>
<li class="homepageNewsTime fl"><%= time_tag(ma.journals_for_message.created_on).html_safe %> </li> <li class="homepageNewsTime fl"><%= time_tag(ma.journals_for_message.created_on).html_safe %> </li>
</ul> </ul>
<% end %> <% end %>
<% end %> <% end %>

@ -1387,7 +1387,6 @@ ActiveRecord::Schema.define(:version => 20160304234903) do
t.integer "changeset_num", :default => 0 t.integer "changeset_num", :default => 0
t.integer "board_message_num", :default => 0 t.integer "board_message_num", :default => 0
t.integer "board_num", :default => 0 t.integer "board_num", :default => 0
t.integer "act_num", :default => 0
t.integer "attach_num", :default => 0 t.integer "attach_num", :default => 0
t.datetime "commit_time" t.datetime "commit_time"
end end

@ -1,354 +1,354 @@
/* /*
# Code Review plugin for Redmine # Code Review plugin for Redmine
# Copyright (C) 2009-2013 Haruyuki Iida # Copyright (C) 2009-2013 Haruyuki Iida
# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License # modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2 # as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version. # of the License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
var topZindex = 1000; var topZindex = 1000;
var action_type = ''; var action_type = '';
var rev = ''; var rev = '';
var rev_to = ''; var rev_to = '';
var path = ''; var path = '';
var urlprefix = ''; var urlprefix = '';
var review_form_dialog = null; var review_form_dialog = null;
var add_form_title = null; var add_form_title = null;
var review_dialog_title = null; var review_dialog_title = null;
var repository_id = null; var repository_id = null;
var filenames = []; var filenames = [];
var ReviewCount = function(total, open, progress){ var ReviewCount = function(total, open, progress){
this.total = total; this.total = total;
this.open = open; this.open = open;
this.closed = total - open; this.closed = total - open;
this.progress = progress this.progress = progress
}; };
var CodeReview = function(id) { var CodeReview = function(id) {
this.id = id; this.id = id;
this.path = ''; this.path = '';
this.line = 0; this.line = 0;
this.url = ''; this.url = '';
this.is_closed = false; this.is_closed = false;
}; };
var review_counts = new Array(); var review_counts = new Array();
var code_reviews_map = new Array(); var code_reviews_map = new Array();
var code_reviews_dialog_map = new Array(); var code_reviews_dialog_map = new Array();
function UpdateRepositoryView(title) { function UpdateRepositoryView(title) {
var header = $("table.changesets thead tr:first"); var header = $("table.changesets thead tr:first");
var th = $('<th></th>'); var th = $('<th></th>');
th.html(title); th.html(title);
header.append(th); header.append(th);
$('tr.changeset td.id a').each(function(i){ $('tr.changeset td.id a').each(function(i){
var revision = this.getAttribute("href"); var revision = this.getAttribute("href");
revision = revision.substr(revision.lastIndexOf("/") + 1); revision = revision.substr(revision.lastIndexOf("/") + 1);
var review = review_counts['revision_' + revision]; var review = review_counts['revision_' + revision];
var td = $('<td/>',{ var td = $('<td/>',{
'class':'progress' 'class':'progress'
}); });
td.html(review.progress); td.html(review.progress);
$(this.parentNode.parentNode).append(td); $(this.parentNode.parentNode).append(td);
}); });
} }
//add function $.down //add function $.down
if(! $.fn.down) if(! $.fn.down)
(function($) { (function($) {
$.fn.down = function() { $.fn.down = function() {
var el = this[0] && this[0].firstChild; var el = this[0] && this[0].firstChild;
while (el && el.nodeType != 1) while (el && el.nodeType != 1)
el = el.nextSibling; el = el.nextSibling;
return $(el); return $(el);
}; };
})(jQuery); })(jQuery);
function UpdateRevisionView() { function UpdateRevisionView() {
$('li.change').each(function(){ $('li.change').each(function(){
var li = $(this); var li = $(this);
if (li.hasClass('folder')) return; if (li.hasClass('folder')) return;
var a = li.down('a'); var a = li.down('a');
if (a.size() == 0) return; if (a.size() == 0) return;
var path = a.attr('href').replace(urlprefix, '').replace(/\?.*$/, ''); var path = a.attr('href').replace(urlprefix, '').replace(/\?.*$/, '');
var reviewlist = code_reviews_map[path]; var reviewlist = code_reviews_map[path];
if (reviewlist == null) return; if (reviewlist == null) return;
var ul = $('<ul></ul>'); var ul = $('<ul></ul>');
for (var j = 0; j < reviewlist.length; j++) { for (var j = 0; j < reviewlist.length; j++) {
var review = reviewlist[j]; var review = reviewlist[j];
var icon = review.is_closed? 'icon-closed-review': 'icon-review'; var icon = review.is_closed? 'icon-closed-review': 'icon-review';
var item = $('<li></li>', { var item = $('<li></li>', {
'class': 'icon ' + icon + ' code_review_summary' 'class': 'icon ' + icon + ' code_review_summary'
}); });
item.html(review.url); item.html(review.url);
ul.append(item); ul.append(item);
} }
li.append(ul); li.append(ul);
}); });
} }
function setAddReviewButton(url, change_id, image_tag, is_readonly, is_diff, attachment_id){ function setAddReviewButton(url, change_id, image_tag, is_readonly, is_diff, attachment_id){
var filetables = []; var filetables = [];
var j = 0; var j = 0;
$('table').each(function(){ $('table').each(function(){
if($(this).hasClass('filecontent')){ if($(this).hasClass('filecontent')){
filetables[j++] = this; filetables[j++] = this;
} }
}); });
j = 0; j = 0;
$('table.filecontent th.filename').each(function(){ $('table.filecontent th.filename').each(function(){
filenames[j] = $.trim($(this).text()); filenames[j] = $.trim($(this).text());
j++; j++;
}); });
addReviewUrl = url + '?change_id=' + change_id + '&action_type=' + action_type + addReviewUrl = url + '?change_id=' + change_id + '&action_type=' + action_type +
'&rev=' + rev + '&rev_to=' + rev_to + '&rev=' + rev + '&rev_to=' + rev_to +
'&attachment_id=' + attachment_id + '&repository_id=' + encodeURIComponent(repository_id); '&attachment_id=' + attachment_id + '&repository_id=' + encodeURIComponent(repository_id);
if (path != null && path.length > 0) { if (path != null && path.length > 0) {
addReviewUrl = addReviewUrl + '&path=' + encodeURIComponent(path); addReviewUrl = addReviewUrl + '&path=' + encodeURIComponent(path);
} }
var num = 0; var num = 0;
if (is_diff) { if (is_diff) {
num = 1; num = 1;
} }
var i, l, tl; var i, l, tl;
for (i = 0, tl = filetables.length; i < tl; i++) { for (i = 0, tl = filetables.length; i < tl; i++) {
var table = filetables[i]; var table = filetables[i];
var trs = table.getElementsByTagName('tr'); var trs = table.getElementsByTagName('tr');
for (j = 0,l = trs.length; j < l; j++) { for (j = 0,l = trs.length; j < l; j++) {
var tr = trs[j]; var tr = trs[j];
var ths = tr.getElementsByTagName('th'); var ths = tr.getElementsByTagName('th');
var th = ths[num]; var th = ths[num];
if (th == null) { if (th == null) {
continue; continue;
} }
var th_html = th.innerHTML; var th_html = th.innerHTML;
var line = th_html.match(/[0-9]+/); var line = th_html.match(/[0-9]+/);
if (line == null) { if (line == null) {
continue; continue;
} }
var span_html = '<span white-space="nowrap" id="review_span_' + line + '_' + i + '">'; var span_html = '<span white-space="nowrap" id="review_span_' + line + '_' + i + '">';
if (!is_readonly) { if (!is_readonly) {
span_html += image_tag; span_html += image_tag;
} }
span_html += '</span>'; span_html += '</span>';
th.innerHTML = th_html + span_html; th.innerHTML = th_html + span_html;
var img = th.getElementsByTagName('img')[0]; var img = th.getElementsByTagName('img')[0];
if (img != null ) { if (img != null ) {
img.id = 'add_revew_img_' + line + '_' + i; img.id = 'add_revew_img_' + line + '_' + i;
$(img).click(clickPencil); $(img).click(clickPencil);
} }
} }
} }
} }
function clickPencil(e) function clickPencil(e)
{ {
// alert('$(e.target).attr("id") = ' + $(e.target).attr("id")); // alert('$(e.target).attr("id") = ' + $(e.target).attr("id"));
var result = $(e.target).attr("id").match(/([0-9]+)_([0-9]+)/); var result = $(e.target).attr("id").match(/([0-9]+)_([0-9]+)/);
var line = result[1]; var line = result[1];
var file_count = eval(result[2]); var file_count = eval(result[2]);
var url = addReviewUrl + '&line=' + line + '&file_count=' + file_count; var url = addReviewUrl + '&line=' + line + '&file_count=' + file_count;
if (path == null || path.length == 0) { if (path == null || path.length == 0) {
url = url + '&path=' + encodeURIComponent(filenames[file_count]) + '&diff_all=true'; url = url + '&path=' + encodeURIComponent(filenames[file_count]) + '&diff_all=true';
} }
addReview(url); addReview(url);
formPopup(e.pageX, e.pageY); formPopup(e.pageX, e.pageY);
e.preventDefault(); e.preventDefault();
} }
var addReviewUrl = null; var addReviewUrl = null;
var showReviewUrl = null; var showReviewUrl = null;
var showReviewImageTag = null; var showReviewImageTag = null;
var showClosedReviewImageTag = null; var showClosedReviewImageTag = null;
function setShowReviewButton(line, review_id, is_closed, file_count) { function setShowReviewButton(line, review_id, is_closed, file_count) {
//alert('file_count = ' + file_count); //alert('file_count = ' + file_count);
var span = $('#review_span_' + line + '_' + file_count); var span = $('#review_span_' + line + '_' + file_count);
if (span.size() == 0) { if (span.size() == 0) {
return; return;
} }
var innerSpan = $('<span></span>',{id: 'review_' + review_id}); var innerSpan = $('<span></span>',{id: 'review_' + review_id});
span.append(innerSpan); span.append(innerSpan);
innerSpan.html(is_closed? showClosedReviewImageTag : showReviewImageTag); innerSpan.html(is_closed? showClosedReviewImageTag : showReviewImageTag);
var div = $('<div></div>', { var div = $('<div></div>', {
'class':'draggable', 'class':'draggable',
id: 'show_review_' + review_id id: 'show_review_' + review_id
}); });
$('#code_review').append(div); $('#code_review').append(div);
innerSpan.down('img').click(function(e) { innerSpan.down('img').click(function(e) {
var review_id = $(e.target).parent().attr('id').match(/[0-9]+/)[0]; var review_id = $(e.target).parent().attr('id').match(/[0-9]+/)[0];
var span = $('#review_' + review_id); // span element of view review button var span = $('#review_' + review_id); // span element of view review button
var pos = span.offset(); var pos = span.offset();
showReview(showReviewUrl, review_id, pos.left + 10 + 5, pos.top + 25); showReview(showReviewUrl, review_id, pos.left + 10 + 5, pos.top + 25);
}); });
} }
function popupReview(review_id) { function popupReview(review_id) {
var span = $('#review_' + review_id); // span element of view review button var span = $('#review_' + review_id); // span element of view review button
var pos = span.offset(); var pos = span.offset();
$('html,body').animate({ scrollTop: pos.top }, $('html,body').animate({ scrollTop: pos.top },
{duration: 'fast', {duration: 'fast',
complete: function(){showReview(showReviewUrl, review_id, pos.left + 10 + 5, pos.top)}}); complete: function(){showReview(showReviewUrl, review_id, pos.left + 10 + 5, pos.top)}});
// position and show popup dialog // position and show popup dialog
// create popup dialog // create popup dialog
//var win = showReview(showReviewUrl, review_id, pos.left + 10 + 5, pos.top); //var win = showReview(showReviewUrl, review_id, pos.left + 10 + 5, pos.top);
// win.toFront(); // win.toFront();
} }
function showReview(url, review_id, x, y) { function showReview(url, review_id, x, y) {
if (code_reviews_dialog_map[review_id] != null) { if (code_reviews_dialog_map[review_id] != null) {
var cur_win = code_reviews_dialog_map[review_id]; var cur_win = code_reviews_dialog_map[review_id];
cur_win.hide(); cur_win.hide();
code_reviews_dialog_map[review_id] = null; code_reviews_dialog_map[review_id] = null;
} }
$('#show_review_' + review_id).load(url, {review_id: review_id}); $('#show_review_' + review_id).load(url, {review_id: review_id});
var review = getReviewObjById(review_id); var review = getReviewObjById(review_id);
var win = $('#show_review_' + review_id).dialog({ var win = $('#show_review_' + review_id).dialog({
show: {effect:'scale'},// ? 'top-left' show: {effect:'scale'},// ? 'top-left'
//position: [x, y + 5], //position: [x, y + 5],
width:640, width:640,
zIndex: topZindex, zIndex: topZindex,
title: review_dialog_title title: review_dialog_title
}); });
// win.getContent().style.color = "#484848"; // win.getContent().style.color = "#484848";
// win.getContent().style.background = "#ffffff"; // win.getContent().style.background = "#ffffff";
topZindex++; topZindex++;
code_reviews_dialog_map[review_id] = win; code_reviews_dialog_map[review_id] = win;
return win return win
} }
function getReviewObjById(review_id) { function getReviewObjById(review_id) {
for (var reviewlist in code_reviews_map) { for (var reviewlist in code_reviews_map) {
for (var i = 0; i < reviewlist.length; i++) { for (var i = 0; i < reviewlist.length; i++) {
var review = reviewlist[i]; var review = reviewlist[i];
if (review.id == review_id) { if (review.id == review_id) {
return review; return review;
} }
} }
} }
return null; return null;
} }
function formPopup(x, y){ function formPopup(x, y){
//@see http://docs.jquery.com/UI/Effects/Scale //@see http://docs.jquery.com/UI/Effects/Scale
var win = $('#review-form-frame').dialog({ var win = $('#review-form-frame').dialog({
show: {effect:'scale', direction: 'both'},// ? 'top-left' show: {effect:'scale', direction: 'both'},// ? 'top-left'
// position: [x, y + 5], // position: [x, y + 5],
width:640, width:640,
zIndex: topZindex, zIndex: topZindex,
title: add_form_title title: add_form_title
}); });
// win.getContent().style.background = "#ffffff"; // win.getContent().style.background = "#ffffff";
if (review_form_dialog != null) { if (review_form_dialog != null) {
review_form_dialog.destroy(); review_form_dialog.destroy();
review_form_dialog = null; review_form_dialog = null;
} }
review_form_dialog = win; review_form_dialog = win;
topZindex += 10; topZindex += 10;
return false; return false;
} }
function hideForm() { function hideForm() {
if (review_form_dialog == null) { if (review_form_dialog == null) {
return; return;
} }
review_form_dialog.dialog('close'); review_form_dialog.dialog('close');
review_form_dialog = null; review_form_dialog = null;
$('#review-form').html(''); $('#review-form').html('');
} }
function addReview(url) { function addReview(url) {
$('#review-form').load(url); $('#review-form').load(url);
} }
function deleteReview(review_id) { function deleteReview(review_id) {
$('show_review_' + review_id).remove(); $('show_review_' + review_id).remove();
$('review_' + review_id).remove(); $('review_' + review_id).remove();
} }
function changeImage(review_id, is_closed) { function changeImage(review_id, is_closed) {
var span = $('review_' + review_id); var span = $('review_' + review_id);
var new_image = null; var new_image = null;
var dummy = new Element('span'); var dummy = new Element('span');
if (is_closed) { if (is_closed) {
dummy.insert(showClosedReviewImageTag); dummy.insert(showClosedReviewImageTag);
} }
else { else {
dummy.insert(showReviewImageTag); dummy.insert(showReviewImageTag);
} }
new_image = dummy.down().getAttribute('src'); new_image = dummy.down().getAttribute('src');
//alert(new_image); //alert(new_image);
span.down('img').setAttribute('src', new_image); span.down('img').setAttribute('src', new_image);
} }
function make_addreview_link(project, link) { function make_addreview_link(project, link) {
var alist = $('#content p a'); var alist = $('#content p a');
if (alist == null) { if (alist == null) {
return; return;
} }
var a = alist[0]; var a = alist[0];
var p = a.parentNode; var p = a.parentNode;
p.innerHTML = p.innerHTML + " | " + link; p.innerHTML = p.innerHTML + " | " + link;
} }
function call_update_revisions(url) { function call_update_revisions(url) {
var changeset_ids = ''; var changeset_ids = '';
var links = $$('table.changesets tbody tr.changeset td.id a'); var links = $$('table.changesets tbody tr.changeset td.id a');
for (var i = 0; i < links.length; i++) { for (var i = 0; i < links.length; i++) {
var link = links[i]; var link = links[i];
var href = link.getAttribute('href'); var href = link.getAttribute('href');
var id = href.replace(/^.*\/revisions\//, ''); var id = href.replace(/^.*\/revisions\//, '');
if (i > 0) { if (i > 0) {
changeset_ids += ','; changeset_ids += ',';
} }
changeset_ids += id; changeset_ids += id;
} }
new Ajax.Updater('code_review_revisions', url, new Ajax.Updater('code_review_revisions', url,
{ {
evalScripts:true, evalScripts:true,
method:'get', method:'get',
parameters: 'changeset_ids=' + encodeURI(changeset_ids) parameters: 'changeset_ids=' + encodeURI(changeset_ids)
}); });
} }
$.fn.serialize2json = function() $.fn.serialize2json = function()
{ {
var o = {}; var o = {};
var a = this.serializeArray(); var a = this.serializeArray();
$.each(a, function() { $.each(a, function() {
if (o[this.name]) { if (o[this.name]) {
if (!o[this.name].push) { if (!o[this.name].push) {
o[this.name] = [o[this.name]]; o[this.name] = [o[this.name]];
} }
o[this.name].push(this.value || ''); o[this.name].push(this.value || '');
} else { } else {
o[this.name] = this.value || ''; o[this.name] = this.value || '';
} }
}); });
return o; return o;
}; };

@ -1,4 +1,4 @@
dt.code_review { dt.code_review {
background-image: url(../images/review.png); background-image: url(../images/review.png);
} }

@ -1,97 +1,97 @@
/* /*
# Code Review plugin for Redmine # Code Review plugin for Redmine
# Copyright (C) 2009 Haruyuki Iida # Copyright (C) 2009 Haruyuki Iida
# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License # modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2 # as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version. # of the License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
#review-form-frame { #review-form-frame {
height: 100%; height: 100%;
} }
.autoscroll table.filecontent th.line-num { .autoscroll table.filecontent th.line-num {
white-space: nowrap; white-space: nowrap;
vertical-align: bottom; vertical-align: bottom;
padding-top: 0; padding-top: 0;
padding-bottom: 0; padding-bottom: 0;
text-align:left; text-align:left;
} }
table.filecontent th.line-num img{ table.filecontent th.line-num img{
padding: 0; padding: 0;
margin: 0; margin: 0;
cursor: pointer; cursor: pointer;
} }
.code-review-form-title { .code-review-form-title {
background-color: #002059; background-color: #002059;
color: white; color: white;
padding-left: 2px; padding-left: 2px;
padding-right: 2px; padding-right: 2px;
cursor: default; cursor: default;
} }
.code_review_viewer { .code_review_viewer {
min-width: 300px; min-width: 300px;
/* /*
max-width: 60%; max-width: 60%;
*/ */
/* max-height: 400px; */ /* max-height: 400px; */
} }
.code_review_viewer .issue{ .code_review_viewer .issue{
} }
.code_review_body { .code_review_body {
background-color: white; background-color: white;
padding:2px; padding:2px;
} }
#code_review_list table.list td { #code_review_list table.list td {
text-align: center; text-align: center;
} }
#code_review_list table.list td.path { #code_review_list table.list td.path {
text-align: left; text-align: left;
} }
#code_review_list table.list td.subject { #code_review_list table.list td.subject {
text-align: left; text-align: left;
} }
.icon-review { .icon-review {
background-image: url(../images/review.png); background-image: url(../images/review.png);
background-repeat: no-repeat; background-repeat: no-repeat;
} }
.icon-closed-review { .icon-closed-review {
background-image: url(../images/closed_review.png); background-image: url(../images/closed_review.png);
background-repeat: no-repeat; background-repeat: no-repeat;
} }
.icon-settings { .icon-settings {
background-image: url(../../../images/changeset.png); background-image: url(../../../images/changeset.png);
background-repeat: no-repeat; background-repeat: no-repeat;
} }
li.code_review_summary { li.code_review_summary {
list-style-type: none; list-style-type: none;
} }

@ -1,19 +1,19 @@
Copyright (c) 2006 Sébastien Gruhier (http://xilinus.com, http://itseb.com) Copyright (c) 2006 Sébastien Gruhier (http://xilinus.com, http://itseb.com)
Permission is hereby granted, free of charge, to any person obtaining Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including "Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish, without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to permit persons to whom the Software is furnished to do so, subject to
the following conditions: the following conditions:
The above copyright notice and this permission notice shall be The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software. included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

@ -1,119 +1,119 @@
.overlay_alert { .overlay_alert {
background-color: #85BBEF; background-color: #85BBEF;
filter:alpha(opacity=60); filter:alpha(opacity=60);
-moz-opacity: 0.6; -moz-opacity: 0.6;
opacity: 0.6; opacity: 0.6;
} }
.alert_nw { .alert_nw {
width: 5px; width: 5px;
height: 5px; height: 5px;
background: transparent url(alert/top_left.gif) no-repeat bottom left; background: transparent url(alert/top_left.gif) no-repeat bottom left;
} }
.alert_n { .alert_n {
height: 5px; height: 5px;
background: transparent url(alert/top.gif) repeat-x bottom left; background: transparent url(alert/top.gif) repeat-x bottom left;
} }
.alert_ne { .alert_ne {
width: 5px; width: 5px;
height: 5px; height: 5px;
background: transparent url(alert/top_right.gif) no-repeat bottom left background: transparent url(alert/top_right.gif) no-repeat bottom left
} }
.alert_e { .alert_e {
width: 5px; width: 5px;
background: transparent url(alert/right.gif) repeat-y 0 0; background: transparent url(alert/right.gif) repeat-y 0 0;
} }
.alert_w { .alert_w {
width: 5px; width: 5px;
background: transparent url(alert/left.gif) repeat-y 0 0; background: transparent url(alert/left.gif) repeat-y 0 0;
} }
.alert_sw { .alert_sw {
width: 5px; width: 5px;
height: 5px; height: 5px;
background: transparent url(alert/bottom_left.gif) no-repeat 0 0; background: transparent url(alert/bottom_left.gif) no-repeat 0 0;
} }
.alert_s { .alert_s {
height: 5px; height: 5px;
background: transparent url(alert/bottom.gif) repeat-x 0 0; background: transparent url(alert/bottom.gif) repeat-x 0 0;
} }
.alert_se, .alert_sizer { .alert_se, .alert_sizer {
width: 5px; width: 5px;
height: 5px; height: 5px;
background: transparent url(alert/bottom_right.gif) no-repeat 0 0; background: transparent url(alert/bottom_right.gif) no-repeat 0 0;
} }
.alert_close { .alert_close {
width:0px; width:0px;
height:0px; height:0px;
display:none; display:none;
} }
.alert_minimize { .alert_minimize {
width:0px; width:0px;
height:0px; height:0px;
display:none; display:none;
} }
.alert_maximize { .alert_maximize {
width:0px; width:0px;
height:0px; height:0px;
display:none; display:none;
} }
.alert_title { .alert_title {
float:left; float:left;
height:1px; height:1px;
width:100%; width:100%;
} }
.alert_content { .alert_content {
overflow:visible; overflow:visible;
color: #000; color: #000;
font-family: Tahoma, Arial, sans-serif; font-family: Tahoma, Arial, sans-serif;
font: 12px arial; font: 12px arial;
background: #FFF; background: #FFF;
} }
/* For alert/confirm dialog */ /* For alert/confirm dialog */
.alert_window { .alert_window {
background: #FFF; background: #FFF;
padding:20px; padding:20px;
margin-left:auto; margin-left:auto;
margin-right:auto; margin-right:auto;
width:400px; width:400px;
} }
.alert_message { .alert_message {
font: 12px arial; font: 12px arial;
width:100%; width:100%;
color:#F00; color:#F00;
padding-bottom:10px; padding-bottom:10px;
} }
.alert_buttons { .alert_buttons {
text-align:center; text-align:center;
width:100%; width:100%;
} }
.alert_buttons input { .alert_buttons input {
width:20%; width:20%;
margin:10px; margin:10px;
} }
.alert_progress { .alert_progress {
float:left; float:left;
margin:auto; margin:auto;
text-align:center; text-align:center;
width:100%; width:100%;
height:16px; height:16px;
background: #FFF url('alert/progress.gif') no-repeat center center background: #FFF url('alert/progress.gif') no-repeat center center
} }

@ -1,88 +1,88 @@
.overlay_alert_lite { .overlay_alert_lite {
background-color: #85BBEF; background-color: #85BBEF;
filter:alpha(opacity=60); filter:alpha(opacity=60);
-moz-opacity: 0.6; -moz-opacity: 0.6;
opacity: 0.6; opacity: 0.6;
} }
.alert_lite_sizer { .alert_lite_sizer {
width:0px; width:0px;
height:0px; height:0px;
display:none; display:none;
} }
.alert_lite_close { .alert_lite_close {
width:0px; width:0px;
height:0px; height:0px;
display:none; display:none;
} }
.alert_lite_minimize { .alert_lite_minimize {
width:0px; width:0px;
height:0px; height:0px;
display:none; display:none;
} }
.alert_lite_maximize { .alert_lite_maximize {
width:0px; width:0px;
height:0px; height:0px;
display:none; display:none;
} }
.alert_lite_title { .alert_lite_title {
width:0px; width:0px;
height:0px; height:0px;
display:none; display:none;
} }
.alert_lite_content { .alert_lite_content {
overflow:auto; overflow:auto;
color: #000; color: #000;
font-family: Tahoma, Arial, sans-serif; font-family: Tahoma, Arial, sans-serif;
font-size: 10px; font-size: 10px;
background: #FFF; background: #FFF;
} }
/* For alert/confirm dialog */ /* For alert/confirm dialog */
.alert_lite_window { .alert_lite_window {
border:1px solid #F00; border:1px solid #F00;
background: #FFF; background: #FFF;
padding:20px; padding:20px;
margin-left:auto; margin-left:auto;
margin-right:auto; margin-right:auto;
width:400px; width:400px;
} }
.alert_lite_message { .alert_lite_message {
font-size:16px; font-size:16px;
text-align:center; text-align:center;
width:100%; width:100%;
color:#F00; color:#F00;
padding-bottom:10px; padding-bottom:10px;
} }
.alert_lite_buttons { .alert_lite_buttons {
text-align:center; text-align:center;
width:100%; width:100%;
} }
.alert_lite_buttons input { .alert_lite_buttons input {
width:20%; width:20%;
margin:10px; margin:10px;
} }
.alert_lite_progress { .alert_lite_progress {
float:left; float:left;
margin:auto; margin:auto;
text-align:center; text-align:center;
width:100%; width:100%;
height:16px; height:16px;
background: #FFF url('alert/progress.gif') no-repeat center center background: #FFF url('alert/progress.gif') no-repeat center center
} }
table.alert_lite_header { table.alert_lite_header {
border:1px solid #F00; border:1px solid #F00;
background:#FFF background:#FFF
} }

@ -1,150 +1,150 @@
.overlay_alphacube { .overlay_alphacube {
background-color: #85BBEF; background-color: #85BBEF;
filter:alpha(opacity=60); filter:alpha(opacity=60);
-moz-opacity: 0.6; -moz-opacity: 0.6;
opacity: 0.6; opacity: 0.6;
} }
.alphacube_nw { .alphacube_nw {
background: transparent url(alphacube/left-top.gif) no-repeat 0 0; background: transparent url(alphacube/left-top.gif) no-repeat 0 0;
width:10px; width:10px;
height:25px; height:25px;
} }
.alphacube_n { .alphacube_n {
background: transparent url(alphacube/top-middle.gif) repeat-x 0 0; background: transparent url(alphacube/top-middle.gif) repeat-x 0 0;
height:25px; height:25px;
} }
.alphacube_ne { .alphacube_ne {
background: transparent url(alphacube/right-top.gif) no-repeat 0 0; background: transparent url(alphacube/right-top.gif) no-repeat 0 0;
width:10px; width:10px;
height:25px; height:25px;
} }
.alphacube_w { .alphacube_w {
background: transparent url(alphacube/frame-left.gif) repeat-y top left; background: transparent url(alphacube/frame-left.gif) repeat-y top left;
width:7px; width:7px;
} }
.alphacube_e { .alphacube_e {
background: transparent url(alphacube/frame-right.gif) repeat-y top right; background: transparent url(alphacube/frame-right.gif) repeat-y top right;
width:7px; width:7px;
} }
.alphacube_sw { .alphacube_sw {
background: transparent url(alphacube/bottom-left-c.gif) no-repeat 0 0; background: transparent url(alphacube/bottom-left-c.gif) no-repeat 0 0;
width:7px; width:7px;
height:7px; height:7px;
} }
.alphacube_s { .alphacube_s {
background: transparent url(alphacube/bottom-middle.gif) repeat-x 0 0; background: transparent url(alphacube/bottom-middle.gif) repeat-x 0 0;
height:7px; height:7px;
} }
.alphacube_se, .alphacube_sizer { .alphacube_se, .alphacube_sizer {
background: transparent url(alphacube/bottom-right-c.gif) no-repeat 0 0; background: transparent url(alphacube/bottom-right-c.gif) no-repeat 0 0;
width:7px; width:7px;
height:7px; height:7px;
} }
.alphacube_sizer { .alphacube_sizer {
cursor:se-resize; cursor:se-resize;
} }
.alphacube_close { .alphacube_close {
width: 23px; width: 23px;
height: 23px; height: 23px;
background: transparent url(alphacube/button-close-focus.gif) no-repeat 0 0; background: transparent url(alphacube/button-close-focus.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:0px; top:0px;
right:11px; right:11px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.alphacube_minimize { .alphacube_minimize {
width: 23px; width: 23px;
height: 23px; height: 23px;
background: transparent url(alphacube/button-min-focus.gif) no-repeat 0 0; background: transparent url(alphacube/button-min-focus.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:0px; top:0px;
right:55px; right:55px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.alphacube_maximize { .alphacube_maximize {
width: 23px; width: 23px;
height: 23px; height: 23px;
background: transparent url(alphacube/button-max-focus.gif) no-repeat 0 0; background: transparent url(alphacube/button-max-focus.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:0px; top:0px;
right:33px; right:33px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.alphacube_title { .alphacube_title {
float:left; float:left;
height:14px; height:14px;
font-size:14px; font-size:14px;
text-align:center; text-align:center;
margin-top:2px; margin-top:2px;
width:100%; width:100%;
color:#123456; color:#123456;
} }
.alphacube_content { .alphacube_content {
overflow:auto; overflow:auto;
color: #000; color: #000;
font-family: Tahoma, Arial, sans-serif; font-family: Tahoma, Arial, sans-serif;
font: 12px arial; font: 12px arial;
background:#FDFDFD; background:#FDFDFD;
} }
/* For alert/confirm dialog */ /* For alert/confirm dialog */
.alphacube_window { .alphacube_window {
border:1px solid #F00; border:1px solid #F00;
background: #FFF; background: #FFF;
padding:20px; padding:20px;
margin-left:auto; margin-left:auto;
margin-right:auto; margin-right:auto;
width:400px; width:400px;
} }
.alphacube_message { .alphacube_message {
font: 12px arial; font: 12px arial;
text-align:center; text-align:center;
width:100%; width:100%;
padding-bottom:10px; padding-bottom:10px;
} }
.alphacube_buttons { .alphacube_buttons {
text-align:center; text-align:center;
width:100%; width:100%;
} }
.alphacube_buttons input { .alphacube_buttons input {
width:20%; width:20%;
margin:10px; margin:10px;
} }
.alphacube_progress { .alphacube_progress {
float:left; float:left;
margin:auto; margin:auto;
text-align:center; text-align:center;
width:100%; width:100%;
height:16px; height:16px;
background: #FFF url('alert/progress.gif') no-repeat center center background: #FFF url('alert/progress.gif') no-repeat center center
} }
.alphacube_wired_frame { .alphacube_wired_frame {
background: #FFF; background: #FFF;
filter:alpha(opacity=60); filter:alpha(opacity=60);
-moz-opacity: 0.6; -moz-opacity: 0.6;
opacity: 0.6; opacity: 0.6;
} }

@ -1,51 +1,51 @@
<public:component> <public:component>
<public:attach event="onpropertychange" onevent="propertyChanged()" /> <public:attach event="onpropertychange" onevent="propertyChanged()" />
<script> <script>
var supported = /MSIE (5\.5)|[6789]/.test(navigator.userAgent) && navigator.platform == "Win32"; var supported = /MSIE (5\.5)|[6789]/.test(navigator.userAgent) && navigator.platform == "Win32";
var realSrc; var realSrc;
var blankSrc = "blank.gif"; var blankSrc = "blank.gif";
if (supported) fixImage(); if (supported) fixImage();
function propertyChanged() { function propertyChanged() {
if (!supported) return; if (!supported) return;
var pName = event.propertyName; var pName = event.propertyName;
if (pName != "src") return; if (pName != "src") return;
// if not set to blank // if not set to blank
if ( ! new RegExp(blankSrc).test(src)) if ( ! new RegExp(blankSrc).test(src))
fixImage(); fixImage();
}; };
function fixImage() { function fixImage() {
// get src // get src
var src = element.src; var src = element.src;
// check for real change // check for real change
if (src == realSrc) { if (src == realSrc) {
element.src = blankSrc; element.src = blankSrc;
return; return;
} }
if ( ! new RegExp(blankSrc).test(src)) { if ( ! new RegExp(blankSrc).test(src)) {
// backup old src // backup old src
realSrc = src; realSrc = src;
} }
// test for png // test for png
if ( /\.png$/.test( realSrc.toLowerCase() ) ) { if ( /\.png$/.test( realSrc.toLowerCase() ) ) {
// set blank image // set blank image
element.src = blankSrc; element.src = blankSrc;
// set filter // set filter
element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" +
src + "',sizingMethod='scale')"; src + "',sizingMethod='scale')";
} }
else { else {
// remove filter // remove filter
element.runtimeStyle.filter = ""; element.runtimeStyle.filter = "";
} }
} }
</script> </script>
</public:component> </public:component>

@ -1,121 +1,121 @@
.overlay_darkX { .overlay_darkX {
background-color: #85BBEF; background-color: #85BBEF;
filter:alpha(opacity=60); filter:alpha(opacity=60);
-moz-opacity: 0.6; -moz-opacity: 0.6;
opacity: 0.6; opacity: 0.6;
} }
.darkX_nw { .darkX_nw {
background: transparent url(darkX/titlebar-left-focused.png) no-repeat 0 0; background: transparent url(darkX/titlebar-left-focused.png) no-repeat 0 0;
width:6px; width:6px;
height:21px; height:21px;
} }
.darkX_n { .darkX_n {
background: transparent url(darkX/titlebar-mid-focused.png) repeat-x 0 0; background: transparent url(darkX/titlebar-mid-focused.png) repeat-x 0 0;
height:21px; height:21px;
} }
.darkX_ne { .darkX_ne {
background: transparent url(darkX/titlebar-right-focused.png) no-repeat 0 0; background: transparent url(darkX/titlebar-right-focused.png) no-repeat 0 0;
width:6px; width:6px;
height:21px; height:21px;
} }
.darkX_w { .darkX_w {
background: transparent url(darkX/frame-left-focused.png) repeat-y top left; background: transparent url(darkX/frame-left-focused.png) repeat-y top left;
width:3px; width:3px;
} }
.darkX_e { .darkX_e {
background: transparent url(darkX/frame-right-focused.png) repeat-y top right; background: transparent url(darkX/frame-right-focused.png) repeat-y top right;
width:3px; width:3px;
} }
.darkX_sw { .darkX_sw {
background: transparent url(darkX/frame-bottom-left-focused.png) no-repeat 0 0; background: transparent url(darkX/frame-bottom-left-focused.png) no-repeat 0 0;
width:5px; width:5px;
height:3px; height:3px;
} }
.darkX_s { .darkX_s {
background: transparent url(darkX/frame-bottom-mid-focused.png) repeat-x 0 0; background: transparent url(darkX/frame-bottom-mid-focused.png) repeat-x 0 0;
height:3px; height:3px;
} }
.darkX_se, .darkX_sizer { .darkX_se, .darkX_sizer {
background: transparent url(darkX/frame-bottom-right-focused.png) no-repeat 0 0; background: transparent url(darkX/frame-bottom-right-focused.png) no-repeat 0 0;
width:5px; width:5px;
height:3px; height:3px;
} }
.darkX_sizer { .darkX_sizer {
cursor:se-resize; cursor:se-resize;
} }
.darkX_close { .darkX_close {
width: 21px; width: 21px;
height: 21px; height: 21px;
background: transparent url(darkX/button-close-focused.png) no-repeat 0 0; background: transparent url(darkX/button-close-focused.png) no-repeat 0 0;
position:absolute; position:absolute;
top:0px; top:0px;
right:5px; right:5px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.darkX_minimize { .darkX_minimize {
width: 21px; width: 21px;
height: 21px; height: 21px;
background: transparent url(darkX/button-minimize-focused.png) no-repeat 0 0; background: transparent url(darkX/button-minimize-focused.png) no-repeat 0 0;
position:absolute; position:absolute;
top:0px; top:0px;
right:26px; right:26px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.darkX_maximize { .darkX_maximize {
width: 21px; width: 21px;
height: 21px; height: 21px;
background: transparent url(darkX/button-maximize-focused.png) no-repeat 0 0; background: transparent url(darkX/button-maximize-focused.png) no-repeat 0 0;
position:absolute; position:absolute;
top:0px; top:0px;
right:47px; right:47px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.darkX_title { .darkX_title {
float:left; float:left;
height:14px; height:14px;
font-size:12px; font-size:12px;
text-align:center; text-align:center;
margin-top:2px; margin-top:2px;
width:100%; width:100%;
color:#FFF; color:#FFF;
} }
.darkX_content { .darkX_content {
overflow:auto; overflow:auto;
color: #E6DF2A; color: #E6DF2A;
font-family: Tahoma, Arial, sans-serif; font-family: Tahoma, Arial, sans-serif;
font-size: 14px; font-size: 14px;
background:#5E5148; background:#5E5148;
} }
/* FOR IE */ /* FOR IE */
* html .darkX_minimize { * html .darkX_minimize {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/darkX/button-minimize-focused.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/darkX/button-minimize-focused.png", sizingMethod="crop");
} }
* html .darkX_maximize { * html .darkX_maximize {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/darkX/button-maximize-focused.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/darkX/button-maximize-focused.png", sizingMethod="scale");
} }
* html .darkX_close { * html .darkX_close {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/darkX/button-close-focused.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/darkX/button-close-focused.png", sizingMethod="crop");
} }

@ -1,25 +1,25 @@
div.inspector div.inspectable { div.inspector div.inspectable {
padding: 0.25em 0 0.25em 1em; padding: 0.25em 0 0.25em 1em;
background-color: Gray; background-color: Gray;
color: white; color: white;
border: outset 2px white; border: outset 2px white;
cursor: pointer; cursor: pointer;
} }
div.inspector div.child { div.inspector div.child {
margin: 0 0 0 1em; margin: 0 0 0 1em;
} }
#debug_window_content { /* DIV container for debug sizing*/ #debug_window_content { /* DIV container for debug sizing*/
width:250px; width:250px;
height:100px; height:100px;
background-color:#000; background-color:#000;
} }
#debug { /* DIV container for debug contents*/ #debug { /* DIV container for debug contents*/
padding:3px; padding:3px;
color:#0f0; color:#0f0;
font-family:monaco, Tahoma, Verdana, Arial, Helvetica, sans-serif; font-family:monaco, Tahoma, Verdana, Arial, Helvetica, sans-serif;
font-size:10px; font-size:10px;
} }

@ -1,155 +1,155 @@
.overlay_dialog { .overlay_dialog {
background-color: #666666; background-color: #666666;
filter:alpha(opacity=60); filter:alpha(opacity=60);
-moz-opacity: 0.6; -moz-opacity: 0.6;
opacity: 0.6; opacity: 0.6;
} }
.overlay___invisible__ { .overlay___invisible__ {
background-color: #666666; background-color: #666666;
filter:alpha(opacity=0); filter:alpha(opacity=0);
-moz-opacity: 0; -moz-opacity: 0;
opacity: 0; opacity: 0;
} }
.dialog_nw { .dialog_nw {
width: 9px; width: 9px;
height: 23px; height: 23px;
background: transparent url(default/top_left.gif) no-repeat 0 0; background: transparent url(default/top_left.gif) no-repeat 0 0;
} }
.dialog_n { .dialog_n {
background: transparent url(default/top_mid.gif) repeat-x 0 0; background: transparent url(default/top_mid.gif) repeat-x 0 0;
height: 23px; height: 23px;
} }
.dialog_ne { .dialog_ne {
width: 9px; width: 9px;
height: 23px; height: 23px;
background: transparent url(default/top_right.gif) no-repeat 0 0; background: transparent url(default/top_right.gif) no-repeat 0 0;
} }
.dialog_e { .dialog_e {
width: 2px; width: 2px;
background: transparent url(default/center_right.gif) repeat-y 0 0; background: transparent url(default/center_right.gif) repeat-y 0 0;
} }
.dialog_w { .dialog_w {
width: 2px; width: 2px;
background: transparent url(default/center_left.gif) repeat-y 0 0; background: transparent url(default/center_left.gif) repeat-y 0 0;
} }
.dialog_sw { .dialog_sw {
width: 9px; width: 9px;
height: 19px; height: 19px;
background: transparent url(default/bottom_left.gif) no-repeat 0 0; background: transparent url(default/bottom_left.gif) no-repeat 0 0;
} }
.dialog_s { .dialog_s {
background: transparent url(default/bottom_mid.gif) repeat-x 0 0; background: transparent url(default/bottom_mid.gif) repeat-x 0 0;
height: 19px; height: 19px;
} }
.dialog_se { .dialog_se {
width: 9px; width: 9px;
height: 19px; height: 19px;
background: transparent url(default/bottom_right.gif) no-repeat 0 0; background: transparent url(default/bottom_right.gif) no-repeat 0 0;
} }
.dialog_sizer { .dialog_sizer {
width: 9px; width: 9px;
height: 19px; height: 19px;
background: transparent url(default/sizer.gif) no-repeat 0 0; background: transparent url(default/sizer.gif) no-repeat 0 0;
cursor:se-resize; cursor:se-resize;
} }
.dialog_close { .dialog_close {
width: 14px; width: 14px;
height: 14px; height: 14px;
background: transparent url(default/close.gif) no-repeat 0 0; background: transparent url(default/close.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:5px; top:5px;
left:8px; left:8px;
cursor:pointer; cursor:pointer;
z-index:2000; z-index:2000;
} }
.dialog_minimize { .dialog_minimize {
width: 14px; width: 14px;
height: 15px; height: 15px;
background: transparent url(default/minimize.gif) no-repeat 0 0; background: transparent url(default/minimize.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:5px; top:5px;
left:28px; left:28px;
cursor:pointer; cursor:pointer;
z-index:2000; z-index:2000;
} }
.dialog_maximize { .dialog_maximize {
width: 14px; width: 14px;
height: 15px; height: 15px;
background: transparent url(default/maximize.gif) no-repeat 0 0; background: transparent url(default/maximize.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:5px; top:5px;
left:49px; left:49px;
cursor:pointer; cursor:pointer;
z-index:2000; z-index:2000;
} }
.dialog_title { .dialog_title {
float:left; float:left;
height:14px; height:14px;
font-family: Tahoma, Arial, sans-serif; font-family: Tahoma, Arial, sans-serif;
font-size:12px; font-size:12px;
text-align:center; text-align:center;
width:100%; width:100%;
color:#000; color:#000;
} }
.dialog_content { .dialog_content {
overflow:auto; overflow:auto;
color: #DDD; color: #DDD;
font-family: Tahoma, Arial, sans-serif; font-family: Tahoma, Arial, sans-serif;
font-size: 10px; font-size: 10px;
background-color:#123; background-color:#123;
} }
.top_draggable, .bottom_draggable { .top_draggable, .bottom_draggable {
cursor:move; cursor:move;
} }
.status_bar { .status_bar {
font-size:12px; font-size:12px;
} }
.status_bar input{ .status_bar input{
font-size:12px; font-size:12px;
} }
.wired_frame { .wired_frame {
display: block; display: block;
position: absolute; position: absolute;
border: 1px #000 dashed; border: 1px #000 dashed;
} }
/* DO NOT CHANGE THESE VALUES*/ /* DO NOT CHANGE THESE VALUES*/
.dialog { .dialog {
display: block; display: block;
position: absolute; position: absolute;
} }
.dialog table.table_window { .dialog table.table_window {
border-collapse: collapse; border-collapse: collapse;
border-spacing: 0; border-spacing: 0;
width: 100%; width: 100%;
margin: 0px; margin: 0px;
padding:0px; padding:0px;
} }
.dialog table.table_window td , .dialog table.table_window th { .dialog table.table_window td , .dialog table.table_window th {
padding: 0; padding: 0;
} }
.dialog .title_window { .dialog .title_window {
-moz-user-select:none; -moz-user-select:none;
} }

@ -1,3 +1,3 @@
/* PNG fix for all themes that uses PNG images on IE */ /* PNG fix for all themes that uses PNG images on IE */
td, div { behavior: url(../themes/iefix/iepngfix.htc) } td, div { behavior: url(../themes/iefix/iepngfix.htc) }

@ -1,54 +1,54 @@
<public:component> <public:component>
<public:attach event="onpropertychange" onevent="doFix()" /> <public:attach event="onpropertychange" onevent="doFix()" />
<script type="text/javascript"> <script type="text/javascript">
// IE5.5+ PNG Alpha Fix v1.0RC4 // IE5.5+ PNG Alpha Fix v1.0RC4
// (c) 2004-2005 Angus Turnbull http://www.twinhelix.com // (c) 2004-2005 Angus Turnbull http://www.twinhelix.com
// This is licensed under the CC-GNU LGPL, version 2.1 or later. // This is licensed under the CC-GNU LGPL, version 2.1 or later.
// For details, see: http://creativecommons.org/licenses/LGPL/2.1/ // For details, see: http://creativecommons.org/licenses/LGPL/2.1/
// Modified/Simplified on 04/23/2007 by Sebastien Gruhier (http://www.xilinus.com) // Modified/Simplified on 04/23/2007 by Sebastien Gruhier (http://www.xilinus.com)
// To work only on background and to handle repeat bg // To work only on background and to handle repeat bg
// This must be a path to a blank image. That's all the configuration you need. // This must be a path to a blank image. That's all the configuration you need.
if (typeof blankImg == 'undefined') var blankImg = 'blank.gif'; if (typeof blankImg == 'undefined') var blankImg = 'blank.gif';
var f = 'DXImageTransform.Microsoft.AlphaImageLoader'; var f = 'DXImageTransform.Microsoft.AlphaImageLoader';
function filt(s, m) function filt(s, m)
{ {
if (filters[f]) if (filters[f])
{ {
filters[f].enabled = s ? true : false; filters[f].enabled = s ? true : false;
if (s) with (filters[f]) { src = s; sizingMethod = m } if (s) with (filters[f]) { src = s; sizingMethod = m }
} }
else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")'; else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")';
} }
function doFix() function doFix()
{ {
// Assume IE7 is OK. // Assume IE7 is OK.
if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent) || if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent) ||
(event && !/(background|src)/.test(event.propertyName))) return; (event && !/(background|src)/.test(event.propertyName))) return;
var bgImg = currentStyle.backgroundImage || style.backgroundImage; var bgImg = currentStyle.backgroundImage || style.backgroundImage;
var bgRepeat = currentStyle.backgroundRepeat || style.backgroundRepeat; var bgRepeat = currentStyle.backgroundRepeat || style.backgroundRepeat;
if (bgImg && bgImg != 'none') if (bgImg && bgImg != 'none')
{ {
if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i)) if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i))
{ {
var s = RegExp.$1; var s = RegExp.$1;
if (currentStyle.width == 'auto' && currentStyle.height == 'auto') if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
style.width = offsetWidth + 'px'; style.width = offsetWidth + 'px';
style.backgroundImage = 'none'; style.backgroundImage = 'none';
filt(s, bgRepeat == "no-repeat" ? 'crop' : 'scale'); filt(s, bgRepeat == "no-repeat" ? 'crop' : 'scale');
} }
} }
} }
doFix(); doFix();
</script> </script>
</public:component> </public:component>

@ -1,67 +1,67 @@
<public:component> <public:component>
<public:attach event="onpropertychange" onevent="doFix()" /> <public:attach event="onpropertychange" onevent="doFix()" />
<script type="text/javascript"> <script type="text/javascript">
// IE5.5+ PNG Alpha Fix v1.0RC4 // IE5.5+ PNG Alpha Fix v1.0RC4
// (c) 2004-2005 Angus Turnbull http://www.twinhelix.com // (c) 2004-2005 Angus Turnbull http://www.twinhelix.com
// This is licensed under the CC-GNU LGPL, version 2.1 or later. // This is licensed under the CC-GNU LGPL, version 2.1 or later.
// For details, see: http://creativecommons.org/licenses/LGPL/2.1/ // For details, see: http://creativecommons.org/licenses/LGPL/2.1/
// This must be a path to a blank image. That's all the configuration you need. // This must be a path to a blank image. That's all the configuration you need.
if (typeof blankImg == 'undefined') var blankImg = 'blank.gif'; if (typeof blankImg == 'undefined') var blankImg = 'blank.gif';
var f = 'DXImageTransform.Microsoft.AlphaImageLoader'; var f = 'DXImageTransform.Microsoft.AlphaImageLoader';
function filt(s, m) function filt(s, m)
{ {
if (filters[f]) if (filters[f])
{ {
filters[f].enabled = s ? true : false; filters[f].enabled = s ? true : false;
if (s) with (filters[f]) { src = s; sizingMethod = m } if (s) with (filters[f]) { src = s; sizingMethod = m }
} }
else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")'; else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")';
} }
function doFix() function doFix()
{ {
alert('ok') alert('ok')
// Assume IE7 is OK. // Assume IE7 is OK.
if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent) || if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent) ||
(event && !/(background|src)/.test(event.propertyName))) return; (event && !/(background|src)/.test(event.propertyName))) return;
var bgImg = currentStyle.backgroundImage || style.backgroundImage; var bgImg = currentStyle.backgroundImage || style.backgroundImage;
if (tagName == 'IMG') if (tagName == 'IMG')
{ {
if ((/\.png$/i).test(src)) if ((/\.png$/i).test(src))
{ {
if (currentStyle.width == 'auto' && currentStyle.height == 'auto') if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
style.width = offsetWidth + 'px'; style.width = offsetWidth + 'px';
filt(src, 'scale'); filt(src, 'scale');
src = blankImg; src = blankImg;
} }
else if (src.indexOf(blankImg) < 0) filt(); else if (src.indexOf(blankImg) < 0) filt();
} }
else if (bgImg && bgImg != 'none') else if (bgImg && bgImg != 'none')
{ {
if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i)) if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i))
{ {
var s = RegExp.$1; var s = RegExp.$1;
if (currentStyle.width == 'auto' && currentStyle.height == 'auto') if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
style.width = offsetWidth + 'px'; style.width = offsetWidth + 'px';
style.backgroundImage = 'none'; style.backgroundImage = 'none';
filt(s, 'crop'); filt(s, 'crop');
// IE link fix. // IE link fix.
for (var n = 0; n < childNodes.length; n++) for (var n = 0; n < childNodes.length; n++)
if (childNodes[n].style) childNodes[n].style.position = 'relative'; if (childNodes[n].style) childNodes[n].style.position = 'relative';
} }
else filt(); else filt();
} }
} }
doFix(); doFix();

@ -1,333 +1,333 @@
/* Focused windows */ /* Focused windows */
.overlay_mac_os_x { .overlay_mac_os_x {
background-color: #85BBEF; background-color: #85BBEF;
filter:alpha(opacity=60); filter:alpha(opacity=60);
-moz-opacity: 0.6; -moz-opacity: 0.6;
opacity: 0.6; opacity: 0.6;
} }
.mac_os_x_nw { .mac_os_x_nw {
background: transparent url(mac_os_x/TL_Main.png) no-repeat 0 0; background: transparent url(mac_os_x/TL_Main.png) no-repeat 0 0;
width:24px; width:24px;
height:30px; height:30px;
} }
.mac_os_x_n { .mac_os_x_n {
background: transparent url(mac_os_x/T_Main.png) repeat-x 0 0; background: transparent url(mac_os_x/T_Main.png) repeat-x 0 0;
height:30px; height:30px;
} }
.mac_os_x_ne { .mac_os_x_ne {
background: transparent url(mac_os_x/TR_Main.png) no-repeat 0 0; background: transparent url(mac_os_x/TR_Main.png) no-repeat 0 0;
width:31px; width:31px;
height:30px; height:30px;
} }
.mac_os_x_w { .mac_os_x_w {
background: transparent url(mac_os_x/L_Main.png) repeat-y top left; background: transparent url(mac_os_x/L_Main.png) repeat-y top left;
width:16px; width:16px;
} }
.mac_os_x_e { .mac_os_x_e {
background: transparent url(mac_os_x/R_Main.png) repeat-y top right; background: transparent url(mac_os_x/R_Main.png) repeat-y top right;
width:16px; width:16px;
} }
.mac_os_x_sw { .mac_os_x_sw {
background: transparent url(mac_os_x/BL_Main.png) no-repeat 0 0; background: transparent url(mac_os_x/BL_Main.png) no-repeat 0 0;
width:31px; width:31px;
height:40px; height:40px;
} }
.mac_os_x_s { .mac_os_x_s {
background: transparent url(mac_os_x/B_Main.png) repeat-x 0 0; background: transparent url(mac_os_x/B_Main.png) repeat-x 0 0;
height:40px; height:40px;
} }
.mac_os_x_se, .mac_os_x_sizer { .mac_os_x_se, .mac_os_x_sizer {
background: transparent url(mac_os_x/BR_Main.png) no-repeat 0 0; background: transparent url(mac_os_x/BR_Main.png) no-repeat 0 0;
width:31px; width:31px;
height:40px; height:40px;
} }
.mac_os_x_sizer { .mac_os_x_sizer {
cursor:se-resize; cursor:se-resize;
} }
.mac_os_x_close { .mac_os_x_close {
width: 19px; width: 19px;
height: 19px; height: 19px;
background: transparent url(mac_os_x/close.gif) no-repeat 0 0; background: transparent url(mac_os_x/close.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:12px; top:12px;
left:25px; left:25px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.mac_os_x_minimize { .mac_os_x_minimize {
width: 19px; width: 19px;
height: 19px; height: 19px;
background: transparent url(mac_os_x/minimize.gif) no-repeat 0 0; background: transparent url(mac_os_x/minimize.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:12px; top:12px;
left:45px; left:45px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.mac_os_x_maximize { .mac_os_x_maximize {
width: 19px; width: 19px;
height: 19px; height: 19px;
background: transparent url(mac_os_x/maximize.gif) no-repeat 0 0; background: transparent url(mac_os_x/maximize.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:12px; top:12px;
left:65px; left:65px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.mac_os_x_title { .mac_os_x_title {
float:left; float:left;
height:14px; height:14px;
font-family: Tahoma, Arial, sans-serif; font-family: Tahoma, Arial, sans-serif;
font-size:12px; font-size:12px;
text-align:center; text-align:center;
margin-top:8px; margin-top:8px;
width:100%; width:100%;
color:#000; color:#000;
} }
.mac_os_x_content { .mac_os_x_content {
overflow:auto; overflow:auto;
color: #222; color: #222;
font-family: Tahoma, Arial, sans-serif; font-family: Tahoma, Arial, sans-serif;
font-size: 10px; font-size: 10px;
background:#FFF; background:#FFF;
} }
.mac_os_x_s .status_bar { .mac_os_x_s .status_bar {
padding-bottom:24px; padding-bottom:24px;
} }
/* FOR IE */ /* FOR IE */
* html .mac_os_x_nw { * html .mac_os_x_nw {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TL_Main.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TL_Main.png", sizingMethod="crop");
} }
* html .mac_os_x_n { * html .mac_os_x_n {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/T_Main.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/T_Main.png", sizingMethod="scale");
} }
* html .mac_os_x_ne { * html .mac_os_x_ne {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TR_Main.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TR_Main.png", sizingMethod="crop");
} }
* html .mac_os_x_w { * html .mac_os_x_w {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/L_Main.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/L_Main.png", sizingMethod="scale");
} }
* html .mac_os_x_e { * html .mac_os_x_e {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/R_Main.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/R_Main.png", sizingMethod="scale");
} }
* html .mac_os_x_sw { * html .mac_os_x_sw {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BL_Main.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BL_Main.png", sizingMethod="crop");
} }
* html .mac_os_x_s { * html .mac_os_x_s {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/B_Main.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/B_Main.png", sizingMethod="scale");
} }
* html .mac_os_x_se { * html .mac_os_x_se {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR_Main.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR_Main.png", sizingMethod="crop");
} }
* html .mac_os_x_sizer { * html .mac_os_x_sizer {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR_Main.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR_Main.png", sizingMethod="crop");
} }
/* Focused windows */ /* Focused windows */
.overlay_blur_os_x { .overlay_blur_os_x {
background-color: #85BBEF; background-color: #85BBEF;
filter:alpha(opacity=60); filter:alpha(opacity=60);
-moz-opacity: 0.6; -moz-opacity: 0.6;
opacity: 0.6; opacity: 0.6;
} }
.blur_os_x_nw { .blur_os_x_nw {
background: transparent url(mac_os_x/TL.png) no-repeat 0 0; background: transparent url(mac_os_x/TL.png) no-repeat 0 0;
width:24px; width:24px;
height:30px; height:30px;
} }
.blur_os_x_n { .blur_os_x_n {
background: transparent url(mac_os_x/T.png) repeat-x 0 0; background: transparent url(mac_os_x/T.png) repeat-x 0 0;
height:30px; height:30px;
} }
.blur_os_x_ne { .blur_os_x_ne {
background: transparent url(mac_os_x/TR.png) no-repeat 0 0; background: transparent url(mac_os_x/TR.png) no-repeat 0 0;
width:31px; width:31px;
height:30px; height:30px;
} }
.blur_os_x_w { .blur_os_x_w {
background: transparent url(mac_os_x/L.png) repeat-y top left; background: transparent url(mac_os_x/L.png) repeat-y top left;
width:16px; width:16px;
} }
.blur_os_x_e { .blur_os_x_e {
background: transparent url(mac_os_x/R.png) repeat-y top right; background: transparent url(mac_os_x/R.png) repeat-y top right;
width:16px; width:16px;
} }
.blur_os_x_sw { .blur_os_x_sw {
background: transparent url(mac_os_x/BL.png) no-repeat 0 0; background: transparent url(mac_os_x/BL.png) no-repeat 0 0;
width:31px; width:31px;
height:40px; height:40px;
} }
.blur_os_x_s { .blur_os_x_s {
background: transparent url(mac_os_x/B.png) repeat-x 0 0; background: transparent url(mac_os_x/B.png) repeat-x 0 0;
height:40px; height:40px;
} }
.blur_os_x_se, .blur_os_x_sizer { .blur_os_x_se, .blur_os_x_sizer {
background: transparent url(mac_os_x/BR.png) no-repeat 0 0; background: transparent url(mac_os_x/BR.png) no-repeat 0 0;
width:31px; width:31px;
height:40px; height:40px;
} }
.blur_os_x_sizer { .blur_os_x_sizer {
cursor:se-resize; cursor:se-resize;
} }
.blur_os_x_close { .blur_os_x_close {
width: 19px; width: 19px;
height: 19px; height: 19px;
background: transparent url(mac_os_x/close.gif) no-repeat 0 0; background: transparent url(mac_os_x/close.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:12px; top:12px;
left:25px; left:25px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.blur_os_x_minimize { .blur_os_x_minimize {
width: 19px; width: 19px;
height: 19px; height: 19px;
background: transparent url(mac_os_x/minimize.gif) no-repeat 0 0; background: transparent url(mac_os_x/minimize.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:12px; top:12px;
left:45px; left:45px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.blur_os_x_maximize { .blur_os_x_maximize {
width: 19px; width: 19px;
height: 19px; height: 19px;
background: transparent url(mac_os_x/maximize.gif) no-repeat 0 0; background: transparent url(mac_os_x/maximize.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:12px; top:12px;
left:65px; left:65px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.blur_os_x_title { .blur_os_x_title {
float:left; float:left;
height:14px; height:14px;
font-family: Tahoma, Arial, sans-serif; font-family: Tahoma, Arial, sans-serif;
font-size:12px; font-size:12px;
text-align:center; text-align:center;
margin-top:8px; margin-top:8px;
width:100%; width:100%;
color:#000; color:#000;
} }
.blur_os_x_content { .blur_os_x_content {
overflow:auto; overflow:auto;
color: #222; color: #222;
font-family: Tahoma, Arial, sans-serif; font-family: Tahoma, Arial, sans-serif;
font-size: 10px; font-size: 10px;
background:#FFF; background:#FFF;
} }
.blur_os_x_s .status_bar { .blur_os_x_s .status_bar {
padding-bottom:24px; padding-bottom:24px;
} }
/* FOR IE */ /* FOR IE */
* html .blur_os_x_nw { * html .blur_os_x_nw {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TL.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TL.png", sizingMethod="crop");
} }
* html .blur_os_x_n { * html .blur_os_x_n {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/T.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/T.png", sizingMethod="scale");
} }
* html .blur_os_x_ne { * html .blur_os_x_ne {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TR.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TR.png", sizingMethod="crop");
} }
* html .blur_os_x_w { * html .blur_os_x_w {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/L.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/L.png", sizingMethod="scale");
} }
* html .blur_os_x_e { * html .blur_os_x_e {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/R.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/R.png", sizingMethod="scale");
} }
* html .blur_os_x_sw { * html .blur_os_x_sw {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BL.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BL.png", sizingMethod="crop");
} }
* html .blur_os_x_s { * html .blur_os_x_s {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/B.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/B.png", sizingMethod="scale");
} }
* html .blur_os_x_se { * html .blur_os_x_se {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR.png", sizingMethod="crop");
} }
* html .blur_os_x_sizer { * html .blur_os_x_sizer {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR.png", sizingMethod="crop");
} }

@ -1,160 +1,160 @@
.overlay_mac_os_x_dialog { .overlay_mac_os_x_dialog {
background-color: #FF7224; background-color: #FF7224;
filter:alpha(opacity=60); filter:alpha(opacity=60);
-moz-opacity: 0.6; -moz-opacity: 0.6;
opacity: 0.6; opacity: 0.6;
} }
.mac_os_x_dialog_nw { .mac_os_x_dialog_nw {
background: transparent url(mac_os_x_dialog/L.png) repeat-y top left; background: transparent url(mac_os_x_dialog/L.png) repeat-y top left;
width:16px; width:16px;
height:16px; height:16px;
} }
.mac_os_x_dialog_n { .mac_os_x_dialog_n {
background: transparent url(mac_os_x_dialog/bg.gif) repeat 0 0; background: transparent url(mac_os_x_dialog/bg.gif) repeat 0 0;
height:18px; height:18px;
} }
.mac_os_x_dialog_ne { .mac_os_x_dialog_ne {
background: transparent url(mac_os_x_dialog/R.png) repeat-y top left; background: transparent url(mac_os_x_dialog/R.png) repeat-y top left;
width:16px; width:16px;
height:16px; height:16px;
} }
.mac_os_x_dialog_w { .mac_os_x_dialog_w {
background: transparent url(mac_os_x_dialog/L.png) repeat-y top left; background: transparent url(mac_os_x_dialog/L.png) repeat-y top left;
width:16px; width:16px;
} }
.mac_os_x_dialog_e { .mac_os_x_dialog_e {
background: transparent url(mac_os_x_dialog/R.png) repeat-y top right; background: transparent url(mac_os_x_dialog/R.png) repeat-y top right;
width:16px; width:16px;
} }
.mac_os_x_dialog_sw { .mac_os_x_dialog_sw {
background: transparent url(mac_os_x_dialog/BL.png) no-repeat 0 0; background: transparent url(mac_os_x_dialog/BL.png) no-repeat 0 0;
width:31px; width:31px;
height:40px; height:40px;
} }
.mac_os_x_dialog_s { .mac_os_x_dialog_s {
background: transparent url(mac_os_x_dialog/B.png) repeat-x 0 0; background: transparent url(mac_os_x_dialog/B.png) repeat-x 0 0;
height:40px; height:40px;
} }
.mac_os_x_dialog_se, .mac_os_x_dialog_sizer { .mac_os_x_dialog_se, .mac_os_x_dialog_sizer {
background: transparent url(mac_os_x_dialog/BR.png) no-repeat 0 0; background: transparent url(mac_os_x_dialog/BR.png) no-repeat 0 0;
width:31px; width:31px;
height:40px; height:40px;
} }
.mac_os_x_dialog_sizer { .mac_os_x_dialog_sizer {
cursor:se-resize; cursor:se-resize;
} }
.mac_os_x_dialog_close { .mac_os_x_dialog_close {
width: 19px; width: 19px;
height: 19px; height: 19px;
background: transparent url(mac_os_x_dialog/close.gif) no-repeat 0 0; background: transparent url(mac_os_x_dialog/close.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:12px; top:12px;
left:25px; left:25px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.mac_os_x_dialog_minimize { .mac_os_x_dialog_minimize {
width: 19px; width: 19px;
height: 19px; height: 19px;
background: transparent url(mac_os_x_dialog/minimize.gif) no-repeat 0 0; background: transparent url(mac_os_x_dialog/minimize.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:12px; top:12px;
left:45px; left:45px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.mac_os_x_dialog_maximize { .mac_os_x_dialog_maximize {
width: 19px; width: 19px;
height: 19px; height: 19px;
background: transparent url(mac_os_x_dialog/maximize.gif) no-repeat 0 0; background: transparent url(mac_os_x_dialog/maximize.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:12px; top:12px;
left:65px; left:65px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.mac_os_x_dialog_title { .mac_os_x_dialog_title {
float:left; float:left;
height:14px; height:14px;
font-family: Tahoma, Arial, sans-serif; font-family: Tahoma, Arial, sans-serif;
font-size:12px; font-size:12px;
text-align:center; text-align:center;
margin-top:6px; margin-top:6px;
width:100%; width:100%;
color:#000; color:#000;
} }
.mac_os_x_dialog_content { .mac_os_x_dialog_content {
overflow:auto; overflow:auto;
color: #222; color: #222;
font-family: Tahoma, Arial, sans-serif; font-family: Tahoma, Arial, sans-serif;
font-size: 10px; font-size: 10px;
background: transparent url(mac_os_x_dialog/bg.gif) repeat 0 0; background: transparent url(mac_os_x_dialog/bg.gif) repeat 0 0;
} }
.mac_os_x_dialog_buttons { .mac_os_x_dialog_buttons {
text-align: center; text-align: center;
} }
/* FOR IE */ /* FOR IE */
* html .mac_os_x_dialog_nw { * html .mac_os_x_dialog_nw {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/L.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/L.png", sizingMethod="scale");
} }
* html .mac_os_x_dialog_ne { * html .mac_os_x_dialog_ne {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/R.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/R.png", sizingMethod="scale");
} }
* html .mac_os_x_dialog_w { * html .mac_os_x_dialog_w {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/L.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/L.png", sizingMethod="scale");
} }
* html .mac_os_x_dialog_e { * html .mac_os_x_dialog_e {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/R.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/R.png", sizingMethod="scale");
} }
* html .mac_os_x_dialog_sw { * html .mac_os_x_dialog_sw {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BL.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BL.png", sizingMethod="crop");
} }
* html .mac_os_x_dialog_s { * html .mac_os_x_dialog_s {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/B.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/B.png", sizingMethod="scale");
} }
* html .mac_os_x_dialog_se { * html .mac_os_x_dialog_se {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BR.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BR.png", sizingMethod="crop");
} }
* html .mac_os_x_dialog_sizer { * html .mac_os_x_dialog_sizer {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BR.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BR.png", sizingMethod="crop");
} }

@ -1,164 +1,164 @@
.overlay_nuncio img { border: none; } .overlay_nuncio img { border: none; }
.overlay_nuncio { .overlay_nuncio {
background-color: #666666; background-color: #666666;
} }
.nuncio_nw { .nuncio_nw {
width: 12px; width: 12px;
height: 28px; height: 28px;
background: url(nuncio/top_left.png) no-repeat; background: url(nuncio/top_left.png) no-repeat;
} }
.nuncio_n { .nuncio_n {
background: url(nuncio/top_mid.png) repeat-x; background: url(nuncio/top_mid.png) repeat-x;
height: 28px; height: 28px;
} }
.nuncio_ne { .nuncio_ne {
width: 21px; width: 21px;
height: 28px; height: 28px;
background: url(nuncio/top_right.png) no-repeat; background: url(nuncio/top_right.png) no-repeat;
} }
.nuncio_e { .nuncio_e {
width: 21px; width: 21px;
background: url(nuncio/center_right.png) repeat-y top right; background: url(nuncio/center_right.png) repeat-y top right;
} }
.nuncio_w { .nuncio_w {
width: 12px; width: 12px;
background: url(nuncio/center_left.png) repeat-y top left; background: url(nuncio/center_left.png) repeat-y top left;
} }
.nuncio_sw { .nuncio_sw {
width: 12px; width: 12px;
height: 18px; height: 18px;
background: url(nuncio/bottom_left.png) no-repeat; background: url(nuncio/bottom_left.png) no-repeat;
} }
.nuncio_s { .nuncio_s {
background: url(nuncio/bottom_mid.png) repeat-x 0 0; background: url(nuncio/bottom_mid.png) repeat-x 0 0;
height: 18px; height: 18px;
} }
.nuncio_se, .nuncio_sizer { .nuncio_se, .nuncio_sizer {
width: 21px; width: 21px;
height: 18px; height: 18px;
background: url(nuncio/bottom_right.png) no-repeat; background: url(nuncio/bottom_right.png) no-repeat;
} }
.nuncio_close { .nuncio_close {
width: 14px; width: 14px;
height: 14px; height: 14px;
background: url(nuncio/close.png) no-repeat; background: url(nuncio/close.png) no-repeat;
position:absolute; position:absolute;
top:10px; top:10px;
right:22px; right:22px;
cursor:pointer; cursor:pointer;
z-index:2000; z-index:2000;
} }
.nuncio_minimize { .nuncio_minimize {
width: 14px; width: 14px;
height: 15px; height: 15px;
background: url(nuncio/minimize.png) no-repeat; background: url(nuncio/minimize.png) no-repeat;
position:absolute; position:absolute;
top:10px; top:10px;
right:40px; right:40px;
cursor:pointer; cursor:pointer;
z-index:2000; z-index:2000;
} }
.nuncio_title { .nuncio_title {
float:left; float:left;
font-size:11px; font-size:11px;
font-weight: bold; font-weight: bold;
font-style: italic; font-style: italic;
color: #fff; color: #fff;
width: 100% width: 100%
} }
.nuncio_content { .nuncio_content {
background: url(nuncio/overlay.png) repeat; background: url(nuncio/overlay.png) repeat;
overflow:auto; overflow:auto;
color: #ddd; color: #ddd;
font-family: Tahoma, Arial, "sans-serif"; font-family: Tahoma, Arial, "sans-serif";
font-size: 10px; font-size: 10px;
} }
.nuncio_sizer { .nuncio_sizer {
cursor:se-resize; cursor:se-resize;
} }
.top_draggable, .bottom_draggable { .top_draggable, .bottom_draggable {
cursor:move cursor:move
} }
/* FOR IE */ /* FOR IE */
* html .nuncio_nw { * html .nuncio_nw {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_left.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_left.png", sizingMethod="crop");
} }
* html .nuncio_n { * html .nuncio_n {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_mid.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_mid.png", sizingMethod="scale");
} }
* html .nuncio_ne { * html .nuncio_ne {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_right.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_right.png", sizingMethod="crop");
} }
* html .nuncio_w { * html .nuncio_w {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/center_left.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/center_left.png", sizingMethod="scale");
} }
* html .nuncio_e { * html .nuncio_e {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/center_right.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/center_right.png", sizingMethod="scale");
} }
* html .nuncio_sw { * html .nuncio_sw {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_left.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_left.png", sizingMethod="crop");
} }
* html .nuncio_s { * html .nuncio_s {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_mid.png", sizingMethod="scale"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_mid.png", sizingMethod="scale");
} }
* html .nuncio_se { * html .nuncio_se {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_right.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_right.png", sizingMethod="crop");
} }
* html .nuncio_sizer { * html .nuncio_sizer {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_right.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_right.png", sizingMethod="crop");
} }
* html .nuncio_close { * html .nuncio_close {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/close.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/close.png", sizingMethod="crop");
} }
* html .nuncio_minimize { * html .nuncio_minimize {
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/minimize.png", sizingMethod="crop"); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/minimize.png", sizingMethod="crop");
} }

@ -1,108 +1,108 @@
.overlay_spread { .overlay_spread {
background-color: #85BBEF; background-color: #85BBEF;
filter:alpha(opacity=60); filter:alpha(opacity=60);
-moz-opacity: 0.6; -moz-opacity: 0.6;
opacity: 0.6; opacity: 0.6;
} }
.spread_nw { .spread_nw {
background: transparent url(spread/left-top.gif) no-repeat 0 0; background: transparent url(spread/left-top.gif) no-repeat 0 0;
width:10px; width:10px;
height:25px; height:25px;
} }
.spread_n { .spread_n {
background: transparent url(spread/top-middle.gif) repeat-x 0 0; background: transparent url(spread/top-middle.gif) repeat-x 0 0;
height:25px; height:25px;
} }
.spread_ne { .spread_ne {
background: transparent url(spread/right-top.gif) no-repeat 0 0; background: transparent url(spread/right-top.gif) no-repeat 0 0;
width:10px; width:10px;
height:25px; height:25px;
} }
.spread_w { .spread_w {
background: transparent url(spread/frame-left.gif) repeat-y top left; background: transparent url(spread/frame-left.gif) repeat-y top left;
width:7px; width:7px;
} }
.spread_e { .spread_e {
background: transparent url(spread/frame-right.gif) repeat-y top right; background: transparent url(spread/frame-right.gif) repeat-y top right;
width:7px; width:7px;
} }
.spread_sw { .spread_sw {
background: transparent url(spread/bottom-left-c.gif) no-repeat 0 0; background: transparent url(spread/bottom-left-c.gif) no-repeat 0 0;
width:7px; width:7px;
height:7px; height:7px;
} }
.spread_s { .spread_s {
background: transparent url(spread/bottom-middle.gif) repeat-x 0 0; background: transparent url(spread/bottom-middle.gif) repeat-x 0 0;
height:7px; height:7px;
} }
.spread_se, .spread_sizer { .spread_se, .spread_sizer {
background: transparent url(spread/bottom-right-c.gif) no-repeat 0 0; background: transparent url(spread/bottom-right-c.gif) no-repeat 0 0;
width:7px; width:7px;
height:7px; height:7px;
} }
.spread_sizer { .spread_sizer {
cursor:se-resize; cursor:se-resize;
} }
.spread_close { .spread_close {
width: 23px; width: 23px;
height: 23px; height: 23px;
background: transparent url(spread/button-close-focus.gif) no-repeat 0 0; background: transparent url(spread/button-close-focus.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:0px; top:0px;
right:11px; right:11px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.spread_minimize { .spread_minimize {
width: 23px; width: 23px;
height: 23px; height: 23px;
background: transparent url(spread/button-min-focus.gif) no-repeat 0 0; background: transparent url(spread/button-min-focus.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:0px; top:0px;
right:55px; right:55px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.spread_maximize { .spread_maximize {
width: 23px; width: 23px;
height: 23px; height: 23px;
background: transparent url(spread/button-max-focus.gif) no-repeat 0 0; background: transparent url(spread/button-max-focus.gif) no-repeat 0 0;
position:absolute; position:absolute;
top:0px; top:0px;
right:33px; right:33px;
cursor:pointer; cursor:pointer;
z-index:1000; z-index:1000;
} }
.spread_title { .spread_title {
float:left; float:left;
height:14px; height:14px;
font-family: Tahoma, Arial, sans-serif; font-family: Tahoma, Arial, sans-serif;
font-size:14px; font-size:14px;
font-weight:bold; font-weight:bold;
text-align:left; text-align:left;
margin-top:2px; margin-top:2px;
width:100%; width:100%;
color:#E47211; color:#E47211;
} }
.spread_content { .spread_content {
overflow:auto; overflow:auto;
color: #222; color: #222;
font-family: Tahoma, Arial, sans-serif; font-family: Tahoma, Arial, sans-serif;
font-size: 10px; font-size: 10px;
background:#A9EA00; background:#A9EA00;
} }

@ -1,109 +1,109 @@
/* CSS Document */ /* CSS Document */
/* 2015-06-26 */ /* 2015-06-26 */
.navContainer h1,h2,h3,h4,h5,h6,hr,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{ margin:0; padding:0;} .navContainer h1,h2,h3,h4,h5,h6,hr,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{ margin:0; padding:0;}
.navContainer body,table,input,textarea,select,button { font-family: "微软雅黑","宋体"; font-size:12px;line-height:1.5;} .navContainer body,table,input,textarea,select,button { font-family: "微软雅黑","宋体"; font-size:12px;line-height:1.5;}
div,img,tr,td,table{ border:0;} div,img,tr,td,table{ border:0;}
table,tr,td{border:0;cellspacing:0; cellpadding:0;} table,tr,td{border:0;cellspacing:0; cellpadding:0;}
ol,ul,li{ list-style-type:none} ol,ul,li{ list-style-type:none}
a:link,a:visited{text-decoration:none;} a:link,a:visited{text-decoration:none;}
/*a:hover,a:active{color:#000;}*/ /*a:hover,a:active{color:#000;}*/
/*常用*/ /*常用*/
/*#RSide{ background:#fff;}*/ /*#RSide{ background:#fff;}*/
/*上传图片处理*/ /*上传图片处理*/
.navSearchTypeBox{margin-top: 32px;} .navSearchTypeBox{margin-top: 32px;}
#navHomepageSearch{margin-top: 11px;background-color: white;} #navHomepageSearch{margin-top: 11px;background-color: white;}
.upload_img img{max-width: 100%;} .upload_img img{max-width: 100%;}
blockquote img{max-width: 100%;} blockquote img{max-width: 100%;}
.hidden{overflow:hidden; white-space: nowrap; text-overflow:ellipsis;} .hidden{overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
.none{display: none;} .none{display: none;}
.rside_back{ width:670px; margin-left:10px; background:#fff; margin-bottom:10px;} .rside_back{ width:670px; margin-left:10px; background:#fff; margin-bottom:10px;}
.break_word{ word-break:break-all; word-wrap: break-word;} .break_word{ word-break:break-all; word-wrap: break-word;}
select,input,textarea{ border:1px solid #64bdd9; background:#fff; color:#000; padding-left:5px; } select,input,textarea{ border:1px solid #64bdd9; background:#fff; color:#000; padding-left:5px; }
.sub_btn{ cursor:pointer; -moz-border-radius:3px; -webkit-border-radius:3px; border:1px solid #707070; color:#000; border-radius:3px; padding:1px 10px; background:#dbdbdb;} .sub_btn{ cursor:pointer; -moz-border-radius:3px; -webkit-border-radius:3px; border:1px solid #707070; color:#000; border-radius:3px; padding:1px 10px; background:#dbdbdb;}
.sub_btn:hover{ background:#b5e2fa; color:#000; border:1px solid #3c7fb1;} .sub_btn:hover{ background:#b5e2fa; color:#000; border:1px solid #3c7fb1;}
/*table{ background:#fff;}*/ /*table{ background:#fff;}*/
.more{ font-weight:normal; color:#999; font-size:12px;} .more{ font-weight:normal; color:#999; font-size:12px;}
.no_line{ border-bottom:none;} .no_line{ border-bottom:none;}
.line{border-bottom:1px dashed #d4d4d4; padding-bottom:10px; margin-bottom:10px;} .line{border-bottom:1px dashed #d4d4d4; padding-bottom:10px; margin-bottom:10px;}
.no_border{ border:none;background:none;} .no_border{ border:none;background:none;}
.min_search{ width:150px; height:20px; border:1px solid #d0d0d0; color:#666; background:url(../images/public_icon.png) 135px -193px no-repeat; cursor:pointer;} .min_search{ width:150px; height:20px; border:1px solid #d0d0d0; color:#666; background:url(../images/public_icon.png) 135px -193px no-repeat; cursor:pointer;}
.db {display:block;} .db {display:block;}
/* font & color */ /* font & color */
.f12{font-size:12px; font-weight:normal;} .f12{font-size:12px; font-weight:normal;}
.f14{font-size:14px;} .f14{font-size:14px;}
.f16{font-size:16px;} .f16{font-size:16px;}
.f18{font-size:18px;} .f18{font-size:18px;}
.fb{font-weight:bold;} .fb{font-weight:bold;}
/* Float & Clear */ /* Float & Clear */
.cl{ clear:both; overflow:hidden; } .cl{ clear:both; overflow:hidden; }
.fl{float:left;display:inline;} .fl{float:left;display:inline;}
.fr{float:right;display:inline;} .fr{float:right;display:inline;}
.f_l{ float:left;} .f_l{ float:left;}
.f_r{ float:right;} .f_r{ float:right;}
.clearfix:after{clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden} .clearfix:after{clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden}
.clearfix{clear:both;zoom:1} .clearfix{clear:both;zoom:1}
.break_word{ word-break:break-all; word-wrap: break-word;} .break_word{ word-break:break-all; word-wrap: break-word;}
.white_space{white-space:nowrap;} .white_space{white-space:nowrap;}
a.c_white{ color:#fff !important;} a.c_white{ color:#fff !important;}
input.c_white { color:#fff !important;} input.c_white { color:#fff !important;}
/* Spacing */ /* Spacing */
.ml2{ margin-left:2px;} .ml2{ margin-left:2px;}
.ml3{ margin-left:3px;} .ml3{ margin-left:3px;}
.ml4{ margin-left:4px;} .ml4{ margin-left:4px;}
.ml5{ margin-left:5px;} .ml5{ margin-left:5px;}
.ml8{ margin-left:8px;} .ml8{ margin-left:8px;}
.ml10{ margin-left:10px;} .ml10{ margin-left:10px;}
.ml15{ margin-left:15px;} .ml15{ margin-left:15px;}
.ml20{ margin-left:20px;} .ml20{ margin-left:20px;}
.ml40{ margin-left:40px;} .ml40{ margin-left:40px;}
.ml45{ margin-left:45px;} .ml45{ margin-left:45px;}
.ml55{ margin-left:55px;} .ml55{ margin-left:55px;}
.ml30{ margin-left:30px;} .ml30{ margin-left:30px;}
.ml60{ margin-left:60px;} .ml60{ margin-left:60px;}
.ml80{ margin-left:80px;} .ml80{ margin-left:80px;}
.ml90{ margin-left:90px;} .ml90{ margin-left:90px;}
.ml100{ margin-left:100px;} .ml100{ margin-left:100px;}
.ml110{ margin-left:110px;} .ml110{ margin-left:110px;}
.ml150 { margin-left:150px;} .ml150 { margin-left:150px;}
.mr5{ margin-right:5px;} .mr5{ margin-right:5px;}
.mr45 {margin-right:45px;} .mr45 {margin-right:45px;}
.mr55{ margin-right:55px;} .mr55{ margin-right:55px;}
.mr10{ margin-right:10px;} .mr10{ margin-right:10px;}
.mr15 {margin-right:15px;} .mr15 {margin-right:15px;}
.mr20{ margin-right:20px;} .mr20{ margin-right:20px;}
.mr30{ margin-right:30px;} .mr30{ margin-right:30px;}
.mr40{ margin-right:40px;} .mr40{ margin-right:40px;}
.mw20{ margin: 0 20px;} .mw20{ margin: 0 20px;}
.mt3{ margin-top:3px;} .mt3{ margin-top:3px;}
.mt5{ margin-top:5px;} .mt5{ margin-top:5px;}
.mt8{ margin-top:8px;} .mt8{ margin-top:8px;}
.mt10{ margin-top:10px !important;} .mt10{ margin-top:10px !important;}
.mt15 {margin-top:15px;} .mt15 {margin-top:15px;}
.mb4{ margin-bottom:4px;} .mb4{ margin-bottom:4px;}
.mb5{ margin-bottom:5px;} .mb5{ margin-bottom:5px;}
.mb8 {margin-bottom:8px;} .mb8 {margin-bottom:8px;}
.mb10{ margin-bottom:10px !important;} .mb10{ margin-bottom:10px !important;}
.mb20{ margin-bottom:20px;} .mb20{ margin-bottom:20px;}
.pl15{ padding-left:15px;} .pl15{ padding-left:15px;}
.w20{ width:20px;} .w20{ width:20px;}
.w60{ width:60px;} .w60{ width:60px;}
.w70{ width:70px;} .w70{ width:70px;}
.w90{ width:90px;} .w90{ width:90px;}
.w210{ width:210px;} .w210{ width:210px;}
.w150{ width:150px;} .w150{ width:150px;}
.w280{ width:280px;} .w280{ width:280px;}
.w430{ width:470px;} .w430{ width:470px;}
.w520{ width:520px;} .w520{ width:520px;}
.w543{ width:543px;} .w543{ width:543px;}
.w557{ width:557px;} .w557{ width:557px;}
.w583{ width:583px;} .w583{ width:583px;}
.w350{ width:350px;} .w350{ width:350px;}
.w610{ width:610px;} .w610{ width:610px;}
.w600{ width:600px;} .w600{ width:600px;}
.h22{ height:22px;} .h22{ height:22px;}
.h26{ height:26px;} .h26{ height:26px;}
.h50{ height:50px;} .h50{ height:50px;}
.h70{ height:70px;} .h70{ height:70px;}
.h150{ height:150px;} .h150{ height:150px;}

File diff suppressed because it is too large Load Diff

@ -1,66 +1,66 @@
.topbar_info02{ margin:5px 10px;width:480px; } .topbar_info02{ margin:5px 10px;width:480px; }
.topbar_info02 p{color: #7f7f7f;} .topbar_info02 p{color: #7f7f7f;}
.search{ margin-top:8px; margin-left:71px;} .search{ margin-top:8px; margin-left:71px;}
/*信息*/ /*信息*/
.project_info{ background:#fff; padding:10px; padding-right:0px;width:222px; padding-right:8px; margin-bottom:10px;} .project_info{ background:#fff; padding:10px; padding-right:0px;width:222px; padding-right:8px; margin-bottom:10px;}
.pr_info_id{ width:137px; color:#5a5a5a; font-size:14px; margin-top:5px;} .pr_info_id{ width:137px; color:#5a5a5a; font-size:14px; margin-top:5px;}
.pr_info_logo{ border:1px solid #eaeaea; width:60px; height:60px; padding:1px;} .pr_info_logo{ border:1px solid #eaeaea; width:60px; height:60px; padding:1px;}
.pr_info_logo:hover{ border:1px solid #64bdd9; } .pr_info_logo:hover{ border:1px solid #64bdd9; }
.pr_info_join{} .pr_info_join{}
a.pr_join_a{ color:#fff; display:block; padding:0 5px 0 3px; padding-top:2px; height:20px; margin-right:5px; float:left; text-align:center; background-color:#64bdd9; float:left; } a.pr_join_a{ color:#fff; display:block; padding:0 5px 0 3px; padding-top:2px; height:20px; margin-right:5px; float:left; text-align:center; background-color:#64bdd9; float:left; }
.pr_info_join a:hover{ background:#41a8c8;} .pr_info_join a:hover{ background:#41a8c8;}
.pr_join_span{color: #fff; display:block; padding:0 5px; padding-top:2px; height:20px; float:left; text-align:center; background: #CCC;} .pr_join_span{color: #fff; display:block; padding:0 5px; padding-top:2px; height:20px; float:left; text-align:center; background: #CCC;}
.pr_setting{ display:block; background:url(../images/leftside.png) -1px 0 no-repeat; width:11px; height:11px; margin-top:3px; float:left; } .pr_setting{ display:block; background:url(../images/leftside.png) -1px 0 no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
.pr_copy{ display:block; background:url(../images/leftside.png) -1px -23px no-repeat; width:11px; height:11px; margin-top:3px; float:left; } .pr_copy{ display:block; background:url(../images/leftside.png) -1px -23px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
.pr_close{ display:block; background:url(../images/leftside.png) -1px -49px no-repeat; width:11px; height:11px; margin-top:3px; float:left; } .pr_close{ display:block; background:url(../images/leftside.png) -1px -49px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
.pr_add{display:block; background:url(../images/leftside.png) 0px -71px no-repeat; width:11px; height:11px; margin-top:3px; float:left; } .pr_add{display:block; background:url(../images/leftside.png) 0px -71px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
.pr_arrow{display:block; background:url(../images/leftside.png) 0px -90px no-repeat; width:11px; height:11px; margin-top:3px; float:left; } .pr_arrow{display:block; background:url(../images/leftside.png) 0px -90px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
.pr_delete{ display:block; background:url(../images/leftside.png) -1px -157px no-repeat; width:11px; height:11px; margin-top:3px; float:left; } .pr_delete{ display:block; background:url(../images/leftside.png) -1px -157px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
.pr_info_name{ color:#3e4040; font-size:14px; line-height:1.5;} .pr_info_name{ color:#3e4040; font-size:14px; line-height:1.5;}
a:hover.pr_info_name{ color:#3ca5c6;} a:hover.pr_info_name{ color:#3ca5c6;}
.pr_info_score{ font-size:14px; color:#3e4040; } .pr_info_score{ font-size:14px; color:#3e4040; }
.pr_info_score a{ color:#ff7143;} .pr_info_score a{ color:#ff7143;}
.pr_info_score a:hover{ color:#64bdd9;} .pr_info_score a:hover{ color:#64bdd9;}
.img_private{ background:url(../images/new_project/img_project.png) 0 0 no-repeat; width:33px; height:16px; color:#fff; font-size:12px; padding-left:7px; } .img_private{ background:url(../images/new_project/img_project.png) 0 0 no-repeat; width:33px; height:16px; color:#fff; font-size:12px; padding-left:7px; }
.info_foot_num{ color:#3ca5c6; } .info_foot_num{ color:#3ca5c6; }
.pr_info_foot{ color:#7f7f7f; margin-top:5px; } .pr_info_foot{ color:#7f7f7f; margin-top:5px; }
a:hover.info_foot_num{ color:#2390b2;} a:hover.info_foot_num{ color:#2390b2;}
.info_box{background:#fff; padding:10px;width:220px; } .info_box{background:#fff; padding:10px;width:220px; }
.info_box ul li{ font-size:12px; color: #3e4040; line-height:1.7;} .info_box ul li{ font-size:12px; color: #3e4040; line-height:1.7;}
/*左侧导航*/ /*左侧导航*/
.subNavBox{width:240px; background:#fff;margin:10px 10px 0 0;} .subNavBox{width:240px; background:#fff;margin:10px 10px 0 0;}
.subNav{border-bottom:solid 1px #e5e3da;cursor:pointer;font-weight:bold;font-size:14px;color:#3ca5c6; height:26px;padding-left:10px;background-color:#fff; padding-top:2px;} .subNav{border-bottom:solid 1px #e5e3da;cursor:pointer;font-weight:bold;font-size:14px;color:#3ca5c6; height:26px;padding-left:10px;background-color:#fff; padding-top:2px;}
a.subNav_jiantou{background:url(../images/jiantou1.jpg) no-repeat;background-position:95% 50%; background-color:#fff;} a.subNav_jiantou{background:url(../images/jiantou1.jpg) no-repeat;background-position:95% 50%; background-color:#fff;}
a:hover.subNav_jiantou:hover{color:#0781b4; } a:hover.subNav_jiantou:hover{color:#0781b4; }
.currentDd{color:#0781b4; } .currentDd{color:#0781b4; }
.currentDt{background-color:#fff; } .currentDt{background-color:#fff; }
.navContent{display: none;border-bottom:solid 1px #e5e3da; } .navContent{display: none;border-bottom:solid 1px #e5e3da; }
.navContent li a{display:block;width:240px;heigh:28px;text-align:center;font-size:12px;line-height:28px;color:#333} .navContent li a{display:block;width:240px;heigh:28px;text-align:center;font-size:12px;line-height:28px;color:#333}
.navContent li a:hover{color:#fff;background-color:#b3e0ee} .navContent li a:hover{color:#fff;background-color:#b3e0ee}
a.subnav_num{ font-weight:normal; color:#ff7143; font-size:12px;} a.subnav_num{ font-weight:normal; color:#ff7143; font-size:12px;}
a.subnav_green{ background:#28be6c; color:#fff; font-size:12px; font-weight:normal;height:18px; padding:0px 5px; padding-top:2px; display:block; margin-top:2px; margin-bottom:5px; float:right; margin-right:5px;} a.subnav_green{ background:#28be6c; color:#fff; font-size:12px; font-weight:normal;height:18px; padding:0px 5px; padding-top:2px; display:block; margin-top:2px; margin-bottom:5px; float:right; margin-right:5px;}
a:hover.subnav_green{ background:#14ad5a;} a:hover.subnav_green{ background:#14ad5a;}
/*简介*/ /*简介*/
.project_intro{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px; color:#6d6d6d; line-height:1.9;} .project_intro{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px; color:#6d6d6d; line-height:1.9;}
.course_description{max-height: 420px;overflow:hidden; word-break: break-all;word-wrap: break-word;line-height: 20px;} .course_description{max-height: 420px;overflow:hidden; word-break: break-all;word-wrap: break-word;line-height: 20px;}
.project_board_content{overflow: hidden;max-height: 212px;word-break: break-all;word-wrap: break-word;} .project_board_content{overflow: hidden;max-height: 212px;word-break: break-all;word-wrap: break-word;}
.project_board_content1{overflow: hidden;max-height: 72px;word-break: break-all;word-wrap: break-word;} .project_board_content1{overflow: hidden;max-height: 72px;word-break: break-all;word-wrap: break-word;}
.course_description_none{max-height: none;} .course_description_none{max-height: none;}
.lg-foot{ border:1px solid #e8eef2; color: #929598; text-align:center; width:220px; height:23px; cursor:pointer;display: none;} .lg-foot{ border:1px solid #e8eef2; color: #929598; text-align:center; width:220px; height:23px; cursor:pointer;display: none;}
.lg-foot:hover{ color:#787b7e; border:1px solid #d4d4d4;} .lg-foot:hover{ color:#787b7e; border:1px solid #d4d4d4;}
/****标签(和资源库的tag样式一致)***/ /****标签(和资源库的tag样式一致)***/
.project_Label{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px; margin-bottom:10px;} .project_Label{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px; margin-bottom:10px;}
a.yellowBtn{ display:inline-block;color:#0d90c3; height:22px;} a.yellowBtn{ display:inline-block;color:#0d90c3; height:22px;}
.submit{height:21px;border:0; cursor:pointer; background:url(../images/btn.png) no-repeat 0 0;width:42px; margin-top:2px; margin-left:3px; } .submit{height:21px;border:0; cursor:pointer; background:url(../images/btn.png) no-repeat 0 0;width:42px; margin-top:2px; margin-left:3px; }
.isTxt{background:#fbfbfb url(../images/inputBg.png) repeat-x left top;height:22px;line-height:22px;border:1px solid #c1c1c1;padding:0 5px;color:#666666;} .isTxt{background:#fbfbfb url(../images/inputBg.png) repeat-x left top;height:22px;line-height:22px;border:1px solid #c1c1c1;padding:0 5px;color:#666666;}
.re_tag{ width: auto; padding:0 5px; padding-top:2px; border:1px solid #f8df8c; background:#fffce6; margin-right:5px; word-wrap: break-word;word-break: break-all } .re_tag{ width: auto; padding:0 5px; padding-top:2px; border:1px solid #f8df8c; background:#fffce6; margin-right:5px; word-wrap: break-word;word-break: break-all }
.re_tag a{ color:#0d90c3;} .re_tag a{ color:#0d90c3;}
.tag_h{ } .tag_h{ }
.tag_h span,.tag_h a{ margin-bottom:5px;} .tag_h span,.tag_h a{ margin-bottom:5px;}

@ -1,67 +1,67 @@
.topbar_info02{ margin:5px 10px;width:480px; } .topbar_info02{ margin:5px 10px;width:480px; }
.topbar_info02 p{color: #7f7f7f;} .topbar_info02 p{color: #7f7f7f;}
.search{ margin-top:8px; float:right; margin-right:5px;} .search{ margin-top:8px; float:right; margin-right:5px;}
/*信息*/ /*信息*/
.project_info{ background:#fff; padding:10px; padding-right:0px;width:222px; padding-right:8px; margin-bottom:10px;} .project_info{ background:#fff; padding:10px; padding-right:0px;width:222px; padding-right:8px; margin-bottom:10px;}
.pr_info_id{ width:137px; color:#5a5a5a; font-size:14px; margin-top:5px;} .pr_info_id{ width:137px; color:#5a5a5a; font-size:14px; margin-top:5px;}
.pr_info_logo{ border:1px solid #eaeaea; width:60px; height:60px; padding:1px;} .pr_info_logo{ border:1px solid #eaeaea; width:60px; height:60px; padding:1px;}
.pr_info_logo:hover{ border:1px solid #64bdd9; } .pr_info_logo:hover{ border:1px solid #64bdd9; }
.pr_info_join{} .pr_info_join{}
a.pr_join_a{ color:#fff; display:block; padding:0 5px 0 3px; padding-top:2px; height:20px; margin-right:5px; float:left; text-align:center; background-color:#64bdd9; float:left; } a.pr_join_a{ color:#fff; display:block; padding:0 5px 0 3px; padding-top:2px; height:20px; margin-right:5px; float:left; text-align:center; background-color:#64bdd9; float:left; }
a:hover.pr_join_a{ background:#41a8c8;} a:hover.pr_join_a{ background:#41a8c8;}
.pr_join_span{color: #fff; display:block; padding:0 5px; padding-top:2px; height:20px; margin-right:5px; float:left; text-align:center; background: #CCC;} .pr_join_span{color: #fff; display:block; padding:0 5px; padding-top:2px; height:20px; margin-right:5px; float:left; text-align:center; background: #CCC;}
.pr_setting{ display:block; background:url(../images/leftside.png) -1px 0 no-repeat; width:11px; height:11px; margin-top:3px; float:left; } .pr_setting{ display:block; background:url(../images/leftside.png) -1px 0 no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
.pr_copy{ display:block; background:url(../images/leftside.png) -1px -23px no-repeat; width:11px; height:11px; margin-top:3px; float:left; } .pr_copy{ display:block; background:url(../images/leftside.png) -1px -23px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
.pr_close{ display:block; background:url(../images/leftside.png) -1px -49px no-repeat; width:11px; height:11px; margin-top:3px; float:left; } .pr_close{ display:block; background:url(../images/leftside.png) -1px -49px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
.pr_add{display:block; background:url(../images/leftside.png) 0px -71px no-repeat; width:11px; height:11px; margin-top:3px; float:left; } .pr_add{display:block; background:url(../images/leftside.png) 0px -71px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
.pr_arrow{display:block; background:url(../images/leftside.png) 0px -90px no-repeat; width:11px; height:11px; margin-top:3px; float:left; } .pr_arrow{display:block; background:url(../images/leftside.png) 0px -90px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
.pr_info_name{ color:#3e4040; font-size:14px; line-height:1.5;} .pr_info_name{ color:#3e4040; font-size:14px; line-height:1.5;}
.pr_info_name:hover{ color:#3ca5c6;} .pr_info_name:hover{ color:#3ca5c6;}
.pr_info_score{ font-size:14px; color:#3e4040; } .pr_info_score{ font-size:14px; color:#3e4040; }
.pr_info_score a{ color:#ff7143;} .pr_info_score a{ color:#ff7143;}
.pr_info_score a:hover{ color:#64bdd9;} .pr_info_score a:hover{ color:#64bdd9;}
.img_private{ background:url(../images/new_project/img_project.png) 0 0 no-repeat; width:33px; height:16px; color:#fff; font-size:12px; padding-left:7px; } .img_private{ background:url(../images/new_project/img_project.png) 0 0 no-repeat; width:33px; height:16px; color:#fff; font-size:12px; padding-left:7px; }
/*.img_private{ background:url(../images/project/img_project.png) 0 0 no-repeat; width:33px; height:16px; color:#fff; font-size:12px; padding-left:7px; }*/ /*.img_private{ background:url(../images/project/img_project.png) 0 0 no-repeat; width:33px; height:16px; color:#fff; font-size:12px; padding-left:7px; }*/
.info_foot_num{ color:#3ca5c6; } .info_foot_num{ color:#3ca5c6; }
.pr_info_foot{ color:#7f7f7f; margin-top:5px; } .pr_info_foot{ color:#7f7f7f; margin-top:5px; }
.info_foot_num:hover{ color:#2390b2;} .info_foot_num:hover{ color:#2390b2;}
.info_box{background:#fff; padding:10px;width:220px; } .info_box{background:#fff; padding:10px;width:220px; }
.info_box ul li{ font-size:12px; color: #3e4040; line-height:1.7;} .info_box ul li{ font-size:12px; color: #3e4040; line-height:1.7;}
/*左侧导航*/ /*左侧导航*/
.subNavBox{width:240px; background:#fff;margin:10px 10px 0 0;} .subNavBox{width:240px; background:#fff;margin:10px 10px 0 0;}
.subNav{border-bottom:solid 1px #e5e3da;cursor:auto;font-weight:bold;font-size:14px;color:#3ca5c6; height:26px;padding-left:10px;background-color:#fff; padding-top:2px;} .subNav{border-bottom:solid 1px #e5e3da;cursor:auto;font-weight:bold;font-size:14px;color:#3ca5c6; height:26px;padding-left:10px;background-color:#fff; padding-top:2px;}
.subNav_jiantou{background:url(../images/jiantou1.jpg) no-repeat;background-position:95% 50%; background-color:#fff;} .subNav_jiantou{background:url(../images/jiantou1.jpg) no-repeat;background-position:95% 50%; background-color:#fff;}
.subNav_jiantou:hover{color:#0781b4; } .subNav_jiantou:hover{color:#0781b4; }
.currentDd{color:#0781b4;} .currentDd{color:#0781b4;}
.currentDt{background-color:#fff;} .currentDt{background-color:#fff;}
.navContent{display: none;border-bottom:solid 1px #e5e3da; } .navContent{display: none;border-bottom:solid 1px #e5e3da; }
.navContent li a{display:block;width:240px;heigh:28px;text-align:center;font-size:12px;line-height:28px;color:#333} .navContent li a{display:block;width:240px;heigh:28px;text-align:center;font-size:12px;line-height:28px;color:#333}
.navContent li a:hover{color:#fff;background-color:#b3e0ee} .navContent li a:hover{color:#fff;background-color:#b3e0ee}
a.subnav_num{ font-weight:normal; color:#ff7143; font-size:12px;} a.subnav_num{ font-weight:normal; color:#ff7143; font-size:12px;}
a.subnav_green{ background:#28be6c; color:#fff; font-size:12px; font-weight:normal;height:18px; padding:0px 5px; padding-top:2px; display:block; margin-top:2px; margin-bottom:5px; float:right; margin-right:5px;} a.subnav_green{ background:#28be6c; color:#fff; font-size:12px; font-weight:normal;height:18px; padding:0px 5px; padding-top:2px; display:block; margin-top:2px; margin-bottom:5px; float:right; margin-right:5px;}
a:hover.subnav_green{ background:#14ad5a;} a:hover.subnav_green{ background:#14ad5a;}
/*简介*/ /*简介*/
.project_intro{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px; color:#6d6d6d; line-height:1.9;} .project_intro{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px; color:#6d6d6d; line-height:1.9;}
.course_description{max-height: 420px;overflow:hidden; word-break: break-all;word-wrap: break-word;line-height: 20px;} .course_description{max-height: 420px;overflow:hidden; word-break: break-all;word-wrap: break-word;line-height: 20px;}
.course_description_none{max-height: none;} .course_description_none{max-height: none;}
.lg-foot{ border:1px solid #e8eef2; color: #929598; text-align:center; width:220px; height:23px; cursor:pointer;} .lg-foot{ border:1px solid #e8eef2; color: #929598; text-align:center; width:220px; height:23px; cursor:pointer;}
.lg-foot:hover{ color:#787b7e; border:1px solid #d4d4d4;} .lg-foot:hover{ color:#787b7e; border:1px solid #d4d4d4;}
/****标签(和资源库的tag样式一致)***/ /****标签(和资源库的tag样式一致)***/
.project_Label{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px; margin-bottom:10px;} .project_Label{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px; margin-bottom:10px;}
a.yellowBtn{ display:inline-block;color:#0d90c3; height:22px;} a.yellowBtn{ display:inline-block;color:#0d90c3; height:22px;}
.submit{height:21px;border:0; cursor:pointer; background:url(../images/btn.png) no-repeat 0 0;width:42px; margin-top:2px; margin-left:3px; } .submit{height:21px;border:0; cursor:pointer; background:url(../images/btn.png) no-repeat 0 0;width:42px; margin-top:2px; margin-left:3px; }
.isTxt{background:#fbfbfb url(../images/inputBg.png) repeat-x left top;height:22px;line-height:22px;border:1px solid #c1c1c1;padding:0 5px;color:#666666;} .isTxt{background:#fbfbfb url(../images/inputBg.png) repeat-x left top;height:22px;line-height:22px;border:1px solid #c1c1c1;padding:0 5px;color:#666666;}
.re_tag{ width: auto; padding:0 5px; padding-top:2px; height:20px; border:1px solid #f8df8c; background:#fffce6; margin-right:5px; } .re_tag{ width: auto; padding:0 5px; padding-top:2px; height:20px; border:1px solid #f8df8c; background:#fffce6; margin-right:5px; }
.re_tag a{ color:#0d90c3;} .re_tag a{ color:#0d90c3;}
.tag_h{ } .tag_h{ }
.tag_h span,.tag_h a{ margin-bottom:5px;} .tag_h span,.tag_h a{ margin-bottom:5px;}

@ -1,88 +1,88 @@
/* Pretty printing styles. Used with prettify.js. */ /* Pretty printing styles. Used with prettify.js. */
/* SPAN elements with the classes below are added by prettyprint. */ /* SPAN elements with the classes below are added by prettyprint. */
.pln { color: #000 } /* plain text */ .pln { color: #000 } /* plain text */
@media screen { @media screen {
.str { color: #080 } /* string content */ .str { color: #080 } /* string content */
.kwd { color: #008 } /* a keyword */ .kwd { color: #008 } /* a keyword */
.com { color: #800 } /* a comment */ .com { color: #800 } /* a comment */
.typ { color: #606 } /* a type name */ .typ { color: #606 } /* a type name */
.lit { color: #066 } /* a literal value */ .lit { color: #066 } /* a literal value */
/* punctuation, lisp open bracket, lisp close bracket */ /* punctuation, lisp open bracket, lisp close bracket */
.pun, .opn, .clo { color: #660 } .pun, .opn, .clo { color: #660 }
.tag { color: #008 } /* a markup tag name */ .tag { color: #008 } /* a markup tag name */
.atn { color: #606 } /* a markup attribute name */ .atn { color: #606 } /* a markup attribute name */
.atv { color: #080 } /* a markup attribute value */ .atv { color: #080 } /* a markup attribute value */
.dec, .var { color: #606 } /* a declaration; a variable name */ .dec, .var { color: #606 } /* a declaration; a variable name */
.fun { color: red } /* a function name */ .fun { color: red } /* a function name */
} }
/* Use higher contrast and text-weight for printable form. */ /* Use higher contrast and text-weight for printable form. */
@media print, projection { @media print, projection {
.str { color: #060 } .str { color: #060 }
.kwd { color: #006; font-weight: bold } .kwd { color: #006; font-weight: bold }
.com { color: #600; font-style: italic } .com { color: #600; font-style: italic }
.typ { color: #404; font-weight: bold } .typ { color: #404; font-weight: bold }
.lit { color: #044 } .lit { color: #044 }
.pun, .opn, .clo { color: #440 } .pun, .opn, .clo { color: #440 }
.tag { color: #006; font-weight: bold } .tag { color: #006; font-weight: bold }
.atn { color: #404 } .atn { color: #404 }
.atv { color: #060 } .atv { color: #060 }
} }
/* Put a border around prettyprinted code snippets. */ /* Put a border around prettyprinted code snippets. */
pre.prettyprint { padding: 2px; pre.prettyprint { padding: 2px;
border-left:30px solid #ccc; border-left:30px solid #ccc;
border-bottom: 1px solid #ccc; border-bottom: 1px solid #ccc;
border-right: 1px solid #ccc, border-right: 1px solid #ccc,
border-top: 1px solid #ccc } border-top: 1px solid #ccc }
pre li,ul,ol { pre li,ul,ol {
list-style-type: decimal; list-style-type: decimal;
} }
/* Specify class=linenums on a pre to get line numbering */ /* Specify class=linenums on a pre to get line numbering */
ol.linenums { margin-top: 0; margin-bottom: 0;line-height: 15px;margin-left: 0px !important; } /* IE indents via margin-left */ ol.linenums { margin-top: 0; margin-bottom: 0;line-height: 15px;margin-left: 0px !important; } /* IE indents via margin-left */
/*.list_style ol li {*/ /*.list_style ol li {*/
/*list-style-type: decimal;*/ /*list-style-type: decimal;*/
/*margin-left: 10px !important;*/ /*margin-left: 10px !important;*/
/*}*/ /*}*/
.linenums li { .linenums li {
margin-left: 5px !important; margin-left: 5px !important;
} }
li.L0, li.L0,
li.L1, li.L1,
li.L2, li.L2,
li.L3, li.L3,
li.L5, li.L5,
li.L6, li.L6,
li.L7, li.L7,
li.L8 { list-style-type: decimal; } li.L8 { list-style-type: decimal; }
/* Alternate shading for lines */ /* Alternate shading for lines */
li.L1, li.L1,
li.L3, li.L3,
li.L5, li.L5,
li.L7, li.L7,
li.L9 { background: #eee } li.L9 { background: #eee }
.prettyprint *{font-family:'courier new',monospace;} .prettyprint *{font-family:'courier new',monospace;}
/*.prettyprint .com { color: #93a1a1; }*/ /*.prettyprint .com { color: #93a1a1; }*/
/*.prettyprint .lit { color: #AE81FF; }*/ /*.prettyprint .lit { color: #AE81FF; }*/
/*.prettyprint .pun,*/ /*.prettyprint .pun,*/
/*.prettyprint .opn,*/ /*.prettyprint .opn,*/
/*.prettyprint .clo { color: #F8F8F2; }*/ /*.prettyprint .clo { color: #F8F8F2; }*/
/*.prettyprint .fun { color: #dc322f; }*/ /*.prettyprint .fun { color: #dc322f; }*/
/*.prettyprint .str,*/ /*.prettyprint .str,*/
/*.prettyprint .atv { color: #E6DB74; }*/ /*.prettyprint .atv { color: #E6DB74; }*/
/*.prettyprint .kwd,*/ /*.prettyprint .kwd,*/
/*.prettyprint .tag { color: #F92659; }*/ /*.prettyprint .tag { color: #F92659; }*/
/*.prettyprint .typ,*/ /*.prettyprint .typ,*/
/*.prettyprint .atn,*/ /*.prettyprint .atn,*/
/*.prettyprint .dec,*/ /*.prettyprint .dec,*/
/*.prettyprint .var { color: #A6E22E; }*/ /*.prettyprint .var { color: #A6E22E; }*/
/*.prettyprint .pln { color: #66D9EF; }*/ /*.prettyprint .pln { color: #66D9EF; }*/
.memo-content pre { .memo-content pre {
white-space:pre !important; white-space:pre !important;
word-wrap: break-word; word-wrap: break-word;
} }

File diff suppressed because it is too large Load Diff

@ -1,290 +1,290 @@
.git_usr_title{ .git_usr_title{
margin: 0px; margin: 0px;
overflow: hidden; overflow: hidden;
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
text-overflow: ellipsis; text-overflow: ellipsis;
vertical-align: top; vertical-align: top;
white-space: nowrap; white-space: nowrap;
padding: 0px 10px; padding: 0px 10px;
} }
.overall-summary{ .overall-summary{
position: relative; position: relative;
margin-bottom: 10px; margin-bottom: 10px;
border: 1px solid #DDD; border: 1px solid #DDD;
border-radius: 3px; border-radius: 3px;
} }
.overall-summary .overall-summary-bottomless{ .overall-summary .overall-summary-bottomless{
margin-bottom: 0px; margin-bottom: 0px;
border-bottom: 0px none; border-bottom: 0px none;
border-radius: 3px 3px 0px 0px; border-radius: 3px 3px 0px 0px;
} }
.stats-switcher-viewport{ .stats-switcher-viewport{
height: 38px; height: 38px;
overflow: hidden; overflow: hidden;
} }
.stats-switcher-viewport .stats-switcher-wrapper{ .stats-switcher-viewport .stats-switcher-wrapper{
position: relative; position: relative;
top: 0px; top: 0px;
transition: top 0.25s ease-in-out 0s; transition: top 0.25s ease-in-out 0s;
} }
.numbers-summary{ .numbers-summary{
display: table; display: table;
width: 100%; width: 100%;
table-layout: fixed; table-layout: fixed;
margin-top: 9px; margin-top: 9px;
} }
.numbers-summary li{ .numbers-summary li{
display: table-cell; display: table-cell;
padding: 0px; padding: 0px;
margin: 0px; margin: 0px;
text-align: center; text-align: center;
white-space: nowrap; white-space: nowrap;
} }
.numbers-summary .octicon { .numbers-summary .octicon {
color: #999; color: #999;
} }
.text-emphasized { .text-emphasized {
font-weight: bold; font-weight: bold;
color: #333; color: #333;
} }
.octicon .octicon-history { .octicon .octicon-history {
font: 16px/1 octicons; font: 16px/1 octicons;
display: inline-block; display: inline-block;
text-decoration: none; text-decoration: none;
text-rendering: auto; text-rendering: auto;
-moz-user-select: none; -moz-user-select: none;
} }
.select2-container { .select2-container {
margin: 0px; margin: 0px;
position: relative; position: relative;
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
} }
.select2-container .select2-choice { .select2-container .select2-choice {
display: block; display: block;
height: 26px; height: 26px;
padding: 0px 0px 0px 8px; padding: 0px 0px 0px 8px;
overflow: hidden; overflow: hidden;
position: relative; position: relative;
border: 1px solid #AAA; border: 1px solid #AAA;
white-space: nowrap; white-space: nowrap;
line-height: 26px; line-height: 26px;
color: #444; color: #444;
text-decoration: none; text-decoration: none;
border-radius: 4px; border-radius: 4px;
background-clip: padding-box; background-clip: padding-box;
-moz-user-select: none; -moz-user-select: none;
background-color: #FFF; background-color: #FFF;
background-image: linear-gradient(to top, #EEE 0%, #FFF 50%); background-image: linear-gradient(to top, #EEE 0%, #FFF 50%);
} }
.repository-title-dec{ .repository-title-dec{
color: #fff !important; color: #fff !important;
} }
.repository-url{ .repository-url{
color: #2D2D2D; color: #2D2D2D;
margin: auto 0px; margin: auto 0px;
text-align: center; text-align: center;
font-size: 14px; font-size: 14px;
margin-bottom: 10px; margin-bottom: 10px;
margin-top: 10px; margin-top: 10px;
} }
.center{ .center{
text-align: center; text-align: center;
} }
.light-well { .light-well {
background: #F9F9F9 none repeat scroll 0% 0%; background: #F9F9F9 none repeat scroll 0% 0%;
padding: 15px; padding: 15px;
} }
.page-title { .page-title {
margin-top: 0px; margin-top: 0px;
line-height: 1.5; line-height: 1.5;
font-weight: bold; font-weight: bold;
margin-bottom: 5px; margin-bottom: 5px;
font-size: 18px; font-size: 18px;
} }
/************* CodeRay styles *************/ /************* CodeRay styles *************/
.syntaxhl div {display: inline;} .syntaxhl div {display: inline;}
.syntaxhl .line-numbers {padding: 2px 4px 2px 4px; background-color: #eee; margin:0px 5px 0px 0px;} .syntaxhl .line-numbers {padding: 2px 4px 2px 4px; background-color: #eee; margin:0px 5px 0px 0px;}
.syntaxhl .code pre { overflow: auto } .syntaxhl .code pre { overflow: auto }
.syntaxhl .debug { color: white !important; background: blue !important; } .syntaxhl .debug { color: white !important; background: blue !important; }
.syntaxhl .annotation { color:#007 } .syntaxhl .annotation { color:#007 }
.syntaxhl .attribute-name { color:#b48 } .syntaxhl .attribute-name { color:#b48 }
.syntaxhl .attribute-value { color:#700 } .syntaxhl .attribute-value { color:#700 }
.syntaxhl .binary { color:#509 } .syntaxhl .binary { color:#509 }
.syntaxhl .char .content { color:#D20 } .syntaxhl .char .content { color:#D20 }
.syntaxhl .char .delimiter { color:#710 } .syntaxhl .char .delimiter { color:#710 }
.syntaxhl .char { color:#D20 } .syntaxhl .char { color:#D20 }
.syntaxhl .class { color:#258; font-weight:bold } .syntaxhl .class { color:#258; font-weight:bold }
.syntaxhl .class-variable { color:#369 } .syntaxhl .class-variable { color:#369 }
.syntaxhl .color { color:#0A0 } .syntaxhl .color { color:#0A0 }
.syntaxhl .comment { color:#385 } .syntaxhl .comment { color:#385 }
.syntaxhl .comment .char { color:#385 } .syntaxhl .comment .char { color:#385 }
.syntaxhl .comment .delimiter { color:#385 } .syntaxhl .comment .delimiter { color:#385 }
.syntaxhl .complex { color:#A08 } .syntaxhl .complex { color:#A08 }
.syntaxhl .constant { color:#258; font-weight:bold } .syntaxhl .constant { color:#258; font-weight:bold }
.syntaxhl .decorator { color:#B0B } .syntaxhl .decorator { color:#B0B }
.syntaxhl .definition { color:#099; font-weight:bold } .syntaxhl .definition { color:#099; font-weight:bold }
.syntaxhl .delimiter { color:black } .syntaxhl .delimiter { color:black }
.syntaxhl .directive { color:#088; font-weight:bold } .syntaxhl .directive { color:#088; font-weight:bold }
.syntaxhl .doc { color:#970 } .syntaxhl .doc { color:#970 }
.syntaxhl .doc-string { color:#D42; font-weight:bold } .syntaxhl .doc-string { color:#D42; font-weight:bold }
.syntaxhl .doctype { color:#34b } .syntaxhl .doctype { color:#34b }
.syntaxhl .entity { color:#800; font-weight:bold } .syntaxhl .entity { color:#800; font-weight:bold }
.syntaxhl .error { color:#F00; background-color:#FAA } .syntaxhl .error { color:#F00; background-color:#FAA }
.syntaxhl .escape { color:#666 } .syntaxhl .escape { color:#666 }
.syntaxhl .exception { color:#C00; font-weight:bold } .syntaxhl .exception { color:#C00; font-weight:bold }
.syntaxhl .float { color:#06D } .syntaxhl .float { color:#06D }
.syntaxhl .function { color:#06B; font-weight:bold } .syntaxhl .function { color:#06B; font-weight:bold }
.syntaxhl .global-variable { color:#d70 } .syntaxhl .global-variable { color:#d70 }
.syntaxhl .hex { color:#02b } .syntaxhl .hex { color:#02b }
.syntaxhl .imaginary { color:#f00 } .syntaxhl .imaginary { color:#f00 }
.syntaxhl .include { color:#B44; font-weight:bold } .syntaxhl .include { color:#B44; font-weight:bold }
.syntaxhl .inline { background-color: hsla(0,0%,0%,0.07); color: black } .syntaxhl .inline { background-color: hsla(0,0%,0%,0.07); color: black }
.syntaxhl .inline-delimiter { font-weight: bold; color: #666 } .syntaxhl .inline-delimiter { font-weight: bold; color: #666 }
.syntaxhl .instance-variable { color:#33B } .syntaxhl .instance-variable { color:#33B }
.syntaxhl .integer { color:#06D } .syntaxhl .integer { color:#06D }
.syntaxhl .key .char { color: #60f } .syntaxhl .key .char { color: #60f }
.syntaxhl .key .delimiter { color: #404 } .syntaxhl .key .delimiter { color: #404 }
.syntaxhl .key { color: #606 } .syntaxhl .key { color: #606 }
.syntaxhl .keyword { color:#939; font-weight:bold } .syntaxhl .keyword { color:#939; font-weight:bold }
.syntaxhl .label { color:#970; font-weight:bold } .syntaxhl .label { color:#970; font-weight:bold }
.syntaxhl .local-variable { color:#963 } .syntaxhl .local-variable { color:#963 }
.syntaxhl .namespace { color:#707; font-weight:bold } .syntaxhl .namespace { color:#707; font-weight:bold }
.syntaxhl .octal { color:#40E } .syntaxhl .octal { color:#40E }
.syntaxhl .operator { } .syntaxhl .operator { }
.syntaxhl .predefined { color:#369; font-weight:bold } .syntaxhl .predefined { color:#369; font-weight:bold }
.syntaxhl .predefined-constant { color:#069 } .syntaxhl .predefined-constant { color:#069 }
.syntaxhl .predefined-type { color:#0a5; font-weight:bold } .syntaxhl .predefined-type { color:#0a5; font-weight:bold }
.syntaxhl .preprocessor { color:#579 } .syntaxhl .preprocessor { color:#579 }
.syntaxhl .pseudo-class { color:#00C; font-weight:bold } .syntaxhl .pseudo-class { color:#00C; font-weight:bold }
.syntaxhl .regexp .content { color:#808 } .syntaxhl .regexp .content { color:#808 }
.syntaxhl .regexp .delimiter { color:#404 } .syntaxhl .regexp .delimiter { color:#404 }
.syntaxhl .regexp .modifier { color:#C2C } .syntaxhl .regexp .modifier { color:#C2C }
.syntaxhl .regexp { background-color:hsla(300,100%,50%,0.06); } .syntaxhl .regexp { background-color:hsla(300,100%,50%,0.06); }
.syntaxhl .reserved { color:#080; font-weight:bold } .syntaxhl .reserved { color:#080; font-weight:bold }
.syntaxhl .shell .content { color:#2B2 } .syntaxhl .shell .content { color:#2B2 }
.syntaxhl .shell .delimiter { color:#161 } .syntaxhl .shell .delimiter { color:#161 }
.syntaxhl .shell { background-color:hsla(120,100%,50%,0.06); } .syntaxhl .shell { background-color:hsla(120,100%,50%,0.06); }
.syntaxhl .string .char { color: #46a } .syntaxhl .string .char { color: #46a }
.syntaxhl .string .content { color: #46a } .syntaxhl .string .content { color: #46a }
.syntaxhl .string .delimiter { color: #46a } .syntaxhl .string .delimiter { color: #46a }
.syntaxhl .string .modifier { color: #46a } .syntaxhl .string .modifier { color: #46a }
.syntaxhl .symbol .content { color:#d33 } .syntaxhl .symbol .content { color:#d33 }
.syntaxhl .symbol .delimiter { color:#d33 } .syntaxhl .symbol .delimiter { color:#d33 }
.syntaxhl .symbol { color:#d33 } .syntaxhl .symbol { color:#d33 }
.syntaxhl .tag { color:#070 } .syntaxhl .tag { color:#070 }
.syntaxhl .type { color:#339; font-weight:bold } .syntaxhl .type { color:#339; font-weight:bold }
.syntaxhl .value { color: #088; } .syntaxhl .value { color: #088; }
.syntaxhl .variable { color:#037 } .syntaxhl .variable { color:#037 }
.syntaxhl .insert { background: hsla(120,100%,50%,0.12) } .syntaxhl .insert { background: hsla(120,100%,50%,0.12) }
.syntaxhl .delete { background: hsla(0,100%,50%,0.12) } .syntaxhl .delete { background: hsla(0,100%,50%,0.12) }
.syntaxhl .change { color: #bbf; background: #007; } .syntaxhl .change { color: #bbf; background: #007; }
.syntaxhl .head { color: #f8f; background: #505 } .syntaxhl .head { color: #f8f; background: #505 }
.syntaxhl .head .filename { color: white; } .syntaxhl .head .filename { color: white; }
.syntaxhl .delete .eyecatcher { background-color: hsla(0,100%,50%,0.2); border: 1px solid hsla(0,100%,45%,0.5); margin: -1px; border-bottom: none; border-top-left-radius: 5px; border-top-right-radius: 5px; } .syntaxhl .delete .eyecatcher { background-color: hsla(0,100%,50%,0.2); border: 1px solid hsla(0,100%,45%,0.5); margin: -1px; border-bottom: none; border-top-left-radius: 5px; border-top-right-radius: 5px; }
.syntaxhl .insert .eyecatcher { background-color: hsla(120,100%,50%,0.2); border: 1px solid hsla(120,100%,25%,0.5); margin: -1px; border-top: none; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; } .syntaxhl .insert .eyecatcher { background-color: hsla(120,100%,50%,0.2); border: 1px solid hsla(120,100%,25%,0.5); margin: -1px; border-top: none; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; }
.syntaxhl .insert .insert { color: #0c0; background:transparent; font-weight:bold } .syntaxhl .insert .insert { color: #0c0; background:transparent; font-weight:bold }
.syntaxhl .delete .delete { color: #c00; background:transparent; font-weight:bold } .syntaxhl .delete .delete { color: #c00; background:transparent; font-weight:bold }
.syntaxhl .change .change { color: #88f } .syntaxhl .change .change { color: #88f }
.syntaxhl .head .head { color: #f4f } .syntaxhl .head .head { color: #f4f }
/***** Media print specific styles *****/ /***** Media print specific styles *****/
@media print { @media print {
#top-menu, #header, #main-menu, #sidebar, #footer, .contextual, .other-formats { display:none; } #top-menu, #header, #main-menu, #sidebar, #footer, .contextual, .other-formats { display:none; }
#main { background: #fff; } #main { background: #fff; }
#content { width: 99%; margin: 0; padding: 0; border: 0; background: #fff; overflow: visible !important;} #content { width: 99%; margin: 0; padding: 0; border: 0; background: #fff; overflow: visible !important;}
#wiki_add_attachment { display:none; } #wiki_add_attachment { display:none; }
.hide-when-print { display: none; } .hide-when-print { display: none; }
.autoscroll {overflow-x: visible;} .autoscroll {overflow-x: visible;}
table.list {margin-top:0.5em;} table.list {margin-top:0.5em;}
table.list th, table.list td {border: 1px solid #aaa;} table.list th, table.list td {border: 1px solid #aaa;}
} }
.cloneUrl {width:235px; height:21px; border:1px solid #dddddd; outline:none; overflow:hidden; line-height:21px; resize:none;white-space:nowrap;} .cloneUrl {width:235px; height:21px; border:1px solid #dddddd; outline:none; overflow:hidden; line-height:21px; resize:none;white-space:nowrap;}
.cloneUrl2 {width:328px; height:21px; border:1px solid #dddddd; outline:none; overflow:hidden; line-height:21px; resize:none;white-space:nowrap;} .cloneUrl2 {width:328px; height:21px; border:1px solid #dddddd; outline:none; overflow:hidden; line-height:21px; resize:none;white-space:nowrap;}
.clone_btn {width:30px; height:21px; border-top:1px solid #dddddd; border-bottom:1px solid #dddddd; border-right:1px solid #dddddd; outline:none; float:left; background-image:linear-gradient(#FCFCFC, #EEE); text-align:center;} .clone_btn {width:30px; height:21px; border-top:1px solid #dddddd; border-bottom:1px solid #dddddd; border-right:1px solid #dddddd; outline:none; float:left; background-image:linear-gradient(#FCFCFC, #EEE); text-align:center;}
.vl_btn {height:21px; padding:0px 5px; vertical-align:middle; border:1px solid #dddddd; float:left; line-height:21px; background-image:linear-gradient(#FCFCFC, #EEE);} .vl_btn {height:21px; padding:0px 5px; vertical-align:middle; border:1px solid #dddddd; float:left; line-height:21px; background-image:linear-gradient(#FCFCFC, #EEE);}
.vl_btn_2 {height:21px; padding:0px 5px; vertical-align:middle; border-top:1px solid #dddddd; border-bottom:1px solid #dddddd; border-right:1px solid #dddddd; float:left; line-height:21px;} .vl_btn_2 {height:21px; padding:0px 5px; vertical-align:middle; border-top:1px solid #dddddd; border-bottom:1px solid #dddddd; border-right:1px solid #dddddd; float:left; line-height:21px;}
.recordBanner {width:670px; height:30px; background-color:#f1f1f1; color:#666666; line-height:30px; vertical-align:middle;} .recordBanner {width:670px; height:30px; background-color:#f1f1f1; color:#666666; line-height:30px; vertical-align:middle;}
.vl_copy {background:url(../images/vlicon/clone_url.png) 0px 0px no-repeat; padding-left:22px;} .vl_copy {background:url(../images/vlicon/clone_url.png) 0px 0px no-repeat; padding-left:22px;}
.vl_copy2 {background:url(../images/vlicon/clone_url.png) 0px 0px no-repeat; padding-left:22px;} .vl_copy2 {background:url(../images/vlicon/clone_url.png) 0px 0px no-repeat; padding-left:22px;}
.vl_zip {background:url(../images/vlicon/download_icon.png) 0px 0px no-repeat; padding-left:22px;} .vl_zip {background:url(../images/vlicon/download_icon.png) 0px 0px no-repeat; padding-left:22px;}
.vl_fork {background:url(../images/vlicon/fork_icon.png) 0px -2px no-repeat; padding-left:22px;} .vl_fork {background:url(../images/vlicon/fork_icon.png) 0px -2px no-repeat; padding-left:22px;}
.vl_commit {background:url(../images/vlicon/commit_icon.png) 0px -2px no-repeat; padding-left:22px;weight:20px;height: 24px;} .vl_commit {background:url(../images/vlicon/commit_icon.png) 0px -2px no-repeat; padding-left:22px;weight:20px;height: 24px;}
.vl_branch {background:url(../images/vlicon/branch_icon.png) 0px -2px no-repeat; padding-left:22px} .vl_branch {background:url(../images/vlicon/branch_icon.png) 0px -2px no-repeat; padding-left:22px}
.mt1 {margin-top:1px;} .mt1 {margin-top:1px;}
.mt2 {margin-top:2px;} .mt2 {margin-top:2px;}
.commit_content_dec{width: 200px;overflow: hidden; white-space: nowrap;text-overflow: ellipsis;} .commit_content_dec{width: 200px;overflow: hidden; white-space: nowrap;text-overflow: ellipsis;}
/*提交信息列表*/ /*提交信息列表*/
.col-md-10 { .col-md-10 {
width: 100%; width: 100%;
} }
ul.bordered-list { ul.bordered-list {
margin: 5px 0px; margin: 5px 0px;
padding: 0px; padding: 0px;
} }
ul.bordered-list li { ul.bordered-list li {
padding: 5px 0px; padding: 5px 0px;
border-bottom: 1px solid #EEE; border-bottom: 1px solid #EEE;
overflow: hidden; overflow: hidden;
display: block; display: block;
margin: 0px; margin: 0px;
} }
.commits-row ul li.commit { .commits-row ul li.commit {
padding: 8px 0px; padding: 8px 0px;
} }
li.commit .commit-row-title { li.commit .commit-row-title {
font-size: 15px; font-size: 15px;
line-height: 20px; line-height: 20px;
margin-bottom: 2px; margin-bottom: 2px;
} }
li.commit .commit-row-title .str-truncated { li.commit .commit-row-title .str-truncated {
max-width: 70%; max-width: 70%;
} }
.str-truncated { .str-truncated {
display: inline-block; display: inline-block;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
vertical-align: top; vertical-align: top;
white-space: nowrap; white-space: nowrap;
max-width: 82%; max-width: 82%;
} }
li.commit .commit-row-title .commit-row-message { li.commit .commit-row-title .commit-row-message {
color: #444; color: #444;
} }
.pull-right { .pull-right {
float: right; float: right;
color: #777; color: #777;
} }
li.commit .commit-row-title .commit_short_id { li.commit .commit-row-title .commit_short_id {
min-width: 65px; min-width: 65px;
font-family: "Menlo","Liberation Mono","Consolas","DejaVu Sans Mono","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; font-family: "Menlo","Liberation Mono","Consolas","DejaVu Sans Mono","Ubuntu Mono","Courier New","andale mono","lucida console",monospace;
} }
li.commit .commit-row-info { li.commit .commit-row-info {
color: #777; color: #777;
line-height: 24px; line-height: 24px;
font-size: 13px; font-size: 13px;
} }
li.commit .commit-row-info a { li.commit .commit-row-info a {
color: #777; color: #777;
} }
li.commit .commit-row-info .committed_ago { li.commit .commit-row-info .committed_ago {
display: inline-block; display: inline-block;
} }
.rep_history_title{ .rep_history_title{
font-weight: bold; font-weight: bold;
font-size: 13px; font-size: 13px;
color: #7F7F7F; color: #7F7F7F;
padding-bottom: 10px; padding-bottom: 10px;
} }
.rep_history_grey{ .rep_history_grey{
color: #7F7F7F; color: #7F7F7F;
} }
.rep_mail_name{max-width: 150px; overflow: hidden; text-overflow: ellipsis;} .rep_mail_name{max-width: 150px; overflow: hidden; text-overflow: ellipsis;}

@ -1,68 +1,68 @@
/* 2015-06-26 */ /* 2015-06-26 */
.topbar_info02{ margin:5px 10px;width:480px; } .topbar_info02{ margin:5px 10px;width:480px; }
.topbar_info02 p{color: #7f7f7f;} .topbar_info02 p{color: #7f7f7f;}
.search{ margin-top:8px; float:right; margin-right:5px;} .search{ margin-top:8px; float:right; margin-right:5px;}
/*信息*/ /*信息*/
.project_info{ background:#fff; padding:10px; padding-right:0px;width:222px; padding-right:8px; margin-bottom:10px;} .project_info{ background:#fff; padding:10px; padding-right:0px;width:222px; padding-right:8px; margin-bottom:10px;}
.pr_info_id{ width:137px; color:#5a5a5a; font-size:14px; margin-top:5px;} .pr_info_id{ width:137px; color:#5a5a5a; font-size:14px; margin-top:5px;}
.pr_info_logo{ border:1px solid #eaeaea; width:60px; height:60px; padding:1px;} .pr_info_logo{ border:1px solid #eaeaea; width:60px; height:60px; padding:1px;}
.pr_info_logo:hover{ border:1px solid #64bdd9; } .pr_info_logo:hover{ border:1px solid #64bdd9; }
.pr_info_join{} .pr_info_join{}
a.pr_join_a{ color:#fff; display:block; padding:0 5px 0 3px; padding-top:2px; height:20px; margin-right:5px; float:left; text-align:center; background-color:#64bdd9; float:left; } a.pr_join_a{ color:#fff; display:block; padding:0 5px 0 3px; padding-top:2px; height:20px; margin-right:5px; float:left; text-align:center; background-color:#64bdd9; float:left; }
a:hover.pr_join_a{ background:#41a8c8;} a:hover.pr_join_a{ background:#41a8c8;}
.pr_join_span{color: #fff; display:block; padding:0 5px; padding-top:2px; height:20px; margin-right:5px; float:left; text-align:center; background: #CCC;} .pr_join_span{color: #fff; display:block; padding:0 5px; padding-top:2px; height:20px; margin-right:5px; float:left; text-align:center; background: #CCC;}
.pr_setting{ display:block; background:url(../images/leftside.png) -1px 0 no-repeat; width:11px; height:11px; margin-top:3px; float:left; } .pr_setting{ display:block; background:url(../images/leftside.png) -1px 0 no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
.pr_copy{ display:block; background:url(../images/leftside.png) -1px -23px no-repeat; width:11px; height:11px; margin-top:3px; float:left; } .pr_copy{ display:block; background:url(../images/leftside.png) -1px -23px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
.pr_close{ display:block; background:url(../images/leftside.png) -1px -49px no-repeat; width:11px; height:11px; margin-top:3px; float:left; } .pr_close{ display:block; background:url(../images/leftside.png) -1px -49px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
.pr_add{display:block; background:url(../images/leftside.png) 0px -71px no-repeat; width:11px; height:11px; margin-top:3px; float:left; } .pr_add{display:block; background:url(../images/leftside.png) 0px -71px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
.pr_arrow{display:block; background:url(../images/leftside.png) 0px -90px no-repeat; width:11px; height:11px; margin-top:3px; float:left; } .pr_arrow{display:block; background:url(../images/leftside.png) 0px -90px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
.pr_info_name{ color:#3e4040; font-size:14px; line-height:1.5;} .pr_info_name{ color:#3e4040; font-size:14px; line-height:1.5;}
.pr_info_name:hover{ color:#3ca5c6;} .pr_info_name:hover{ color:#3ca5c6;}
.pr_info_score{ font-size:14px; color:#3e4040; } .pr_info_score{ font-size:14px; color:#3e4040; }
.pr_info_score a{ color:#ff7143;} .pr_info_score a{ color:#ff7143;}
.pr_info_score a:hover{ color:#64bdd9;} .pr_info_score a:hover{ color:#64bdd9;}
.img_private{ background:url(../images/img_project.png) 0 0 no-repeat; width:33px; height:16px; color:#fff; font-size:12px; padding-left:7px; } .img_private{ background:url(../images/img_project.png) 0 0 no-repeat; width:33px; height:16px; color:#fff; font-size:12px; padding-left:7px; }
.info_foot_num{ color:#3ca5c6; } .info_foot_num{ color:#3ca5c6; }
.pr_info_foot{ color:#7f7f7f; margin-top:5px; } .pr_info_foot{ color:#7f7f7f; margin-top:5px; }
.info_foot_num:hover{ color:#2390b2;} .info_foot_num:hover{ color:#2390b2;}
.info_box{background:#fff; padding:10px;width:220px; } .info_box{background:#fff; padding:10px;width:220px; }
.info_box ul li{ font-size:12px; color: #3e4040; line-height:1.7;} .info_box ul li{ font-size:12px; color: #3e4040; line-height:1.7;}
/*左侧导航*/ /*左侧导航*/
.subNavBox{width:240px; background:#fff;margin:10px 10px 0 0;} .subNavBox{width:240px; background:#fff;margin:10px 10px 0 0;}
.subNav{border-bottom:solid 1px #e5e3da;cursor:pointer;font-weight:bold;font-size:14px;color:#3ca5c6; height:26px;padding-left:10px;background-color:#fff; padding-top:2px;} .subNav{border-bottom:solid 1px #e5e3da;cursor:pointer;font-weight:bold;font-size:14px;color:#3ca5c6; height:26px;padding-left:10px;background-color:#fff; padding-top:2px;}
.subNav_jiantou{background:url(../images/jiantou1.jpg) no-repeat;background-position:95% 50%; background-color:#fff;} .subNav_jiantou{background:url(../images/jiantou1.jpg) no-repeat;background-position:95% 50%; background-color:#fff;}
.subNav_jiantou:hover{color:#0781b4; } .subNav_jiantou:hover{color:#0781b4; }
.currentDd{color:#0781b4;} .currentDd{color:#0781b4;}
.currentDt{background-color:#fff;} .currentDt{background-color:#fff;}
.navContent{display: none;border-bottom:solid 1px #e5e3da; } .navContent{display: none;border-bottom:solid 1px #e5e3da; }
.navContent li a{display:block;width:240px;heigh:28px;text-align:center;font-size:12px;line-height:28px;color:#333} .navContent li a{display:block;width:240px;heigh:28px;text-align:center;font-size:12px;line-height:28px;color:#333}
.navContent li a:hover{color:#fff;background-color:#b3e0ee} .navContent li a:hover{color:#fff;background-color:#b3e0ee}
a.subnav_num{ font-weight:normal; color:#ff7143; font-size:12px;} a.subnav_num{ font-weight:normal; color:#ff7143; font-size:12px;}
a.subnav_green{ background:#28be6c; color:#fff; font-size:12px; font-weight:normal;height:18px; padding:0px 5px; padding-top:2px; display:block; margin-top:2px; margin-bottom:5px; float:right; margin-right:5px;} a.subnav_green{ background:#28be6c; color:#fff; font-size:12px; font-weight:normal;height:18px; padding:0px 5px; padding-top:2px; display:block; margin-top:2px; margin-bottom:5px; float:right; margin-right:5px;}
a:hover.subnav_green{ background:#14ad5a;} a:hover.subnav_green{ background:#14ad5a;}
/*简介*/ /*简介*/
.project_intro{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px; color:#6d6d6d; line-height:1.9;} .project_intro{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px; color:#6d6d6d; line-height:1.9;}
.course_description{max-height: 420px;overflow:hidden; word-break: break-all;word-wrap: break-word;line-height: 20px;} .course_description{max-height: 420px;overflow:hidden; word-break: break-all;word-wrap: break-word;line-height: 20px;}
.course_description_none{max-height: none;} .course_description_none{max-height: none;}
.lg-foot{ border:1px solid #e8eef2; color: #929598; text-align:center; width:220px; height:23px; cursor:pointer;} .lg-foot{ border:1px solid #e8eef2; color: #929598; text-align:center; width:220px; height:23px; cursor:pointer;}
.lg-foot:hover{ color:#787b7e; border:1px solid #d4d4d4;} .lg-foot:hover{ color:#787b7e; border:1px solid #d4d4d4;}
/****标签(和资源库的tag样式一致)***/ /****标签(和资源库的tag样式一致)***/
.project_Label{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px; margin-bottom:10px;} .project_Label{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px; margin-bottom:10px;}
.project_Label_New {width:218px; padding-left:10px; background:#fff; margin-top:15px; margin-bottom:10px;} .project_Label_New {width:218px; padding-left:10px; background:#fff; margin-top:15px; margin-bottom:10px;}
a.yellowBtn{ display:inline-block;color:#0d90c3; height:22px;} a.yellowBtn{ display:inline-block;color:#0d90c3; height:22px;}
.submit{height:21px;border:0; cursor:pointer; background:url(images/btn.png) no-repeat 0 0;width:42px; margin-top:2px; margin-left:3px; } .submit{height:21px;border:0; cursor:pointer; background:url(images/btn.png) no-repeat 0 0;width:42px; margin-top:2px; margin-left:3px; }
.isTxt{background:#fbfbfb url(images/inputBg.png) repeat-x left top;height:22px;line-height:22px;border:1px solid #c1c1c1;padding:0 5px;color:#666666;} .isTxt{background:#fbfbfb url(images/inputBg.png) repeat-x left top;height:22px;line-height:22px;border:1px solid #c1c1c1;padding:0 5px;color:#666666;}
.re_tag{ width: auto; padding:0 5px; padding-top:2px; border:1px solid #f8df8c; background:#fffce6; margin-right:5px; word-wrap: break-word;word-break: break-all } .re_tag{ width: auto; padding:0 5px; padding-top:2px; border:1px solid #f8df8c; background:#fffce6; margin-right:5px; word-wrap: break-word;word-break: break-all }
.re_tag a{ color:#0d90c3;} .re_tag a{ color:#0d90c3;}
.tag_h{ } .tag_h{ }
.tag_h span,.tag_h a{ margin-bottom:5px;} .tag_h span,.tag_h a{ margin-bottom:5px;}

@ -1,155 +1,155 @@
#RSide{ min-height:1px;} #RSide{ min-height:1px;}
/* 左侧信息*/ /* 左侧信息*/
.users_info{background:#fff; padding:10px; width:230px; padding-right:0px; margin-bottom:10px; } .users_info{background:#fff; padding:10px; width:230px; padding-right:0px; margin-bottom:10px; }
.pic_head{ width:214px; height:214px; border:1px solid #cbcbcb; padding:2px; position:relative;} .pic_head{ width:214px; height:214px; border:1px solid #cbcbcb; padding:2px; position:relative;}
.pic_head:hover{border:1px solid #64bdd9;} .pic_head:hover{border:1px solid #64bdd9;}
.usersphoto_edit{ position:absolute; left:198px; top:200px;} .usersphoto_edit{ position:absolute; left:198px; top:200px;}
.icon_male{ background:url(../images/pic_uersall.png) 0 0 no-repeat; width:15px; height:15px;} .icon_male{ background:url(../images/pic_uersall.png) 0 0 no-repeat; width:15px; height:15px;}
.icon_female{ background:url(../images/pic_uersall.png) 0 -24px no-repeat; width:15px; height:15px;} .icon_female{ background:url(../images/pic_uersall.png) 0 -24px no-repeat; width:15px; height:15px;}
.pf_intro{ width:222px; margin-top:5px; color:#696969;word-break: break-all; } .pf_intro{ width:222px; margin-top:5px; color:#696969;word-break: break-all; }
.leftbox{ width:230px; padding:10px; padding-right:0px; padding-bottom:5px;background:#fff; margin-bottom:10px; margin-right:10px;} .leftbox{ width:230px; padding:10px; padding-right:0px; padding-bottom:5px;background:#fff; margin-bottom:10px; margin-right:10px;}
.pic_members{ display:block; width:38px; height:38px; border:1px solid #e9edf0; margin-right:5px; margin-bottom:5px;float:left;} .pic_members{ display:block; width:38px; height:38px; border:1px solid #e9edf0; margin-right:5px; margin-bottom:5px;float:left;}
.pic_members:hover{border:1px solid #c9c9c9;} .pic_members:hover{border:1px solid #c9c9c9;}
/*新建*/ /*新建*/
.top_new{ height:26px; border-bottom:10px solid #eaebed; padding:10px; background:#fff; float:left; margin-left:10px; width:730px; } .top_new{ height:26px; border-bottom:10px solid #eaebed; padding:10px; background:#fff; float:left; margin-left:10px; width:730px; }
.top_new_bg{ background:url(../images/pic_uersall.png) -43px 3px no-repeat; height:26px; width:260px;} .top_new_bg{ background:url(../images/pic_uersall.png) -43px 3px no-repeat; height:26px; width:260px;}
.top_newcourses_bg{ background:url(../images/pic_uersall.png) -43px -29px no-repeat; height:28px; width:260px;} .top_newcourses_bg{ background:url(../images/pic_uersall.png) -43px -29px no-repeat; height:28px; width:260px;}
.top_newproject_bg{ background:url(../images/pic_uersall.png) -43px -56px no-repeat; height:26px; width:260px;} .top_newproject_bg{ background:url(../images/pic_uersall.png) -43px -56px no-repeat; height:26px; width:260px;}
.newbtn{ height:24px; background:#18ca74; color:#fff; font-size:14px; padding:2px 12px 0 12px;} .newbtn{ height:24px; background:#18ca74; color:#fff; font-size:14px; padding:2px 12px 0 12px;}
.newbtn:hover{background: #14ad5a;} .newbtn:hover{background: #14ad5a;}
a.newbtn_add{ display:block; background:url(../images/pic_uersall.png) -265px 3px no-repeat; height:20px; width:15px;} a.newbtn_add{ display:block; background:url(../images/pic_uersall.png) -265px 3px no-repeat; height:20px; width:15px;}
a.newbtn_t{ font-size:14px; font-weight:bold; color:#fff;} a.newbtn_t{ font-size:14px; font-weight:bold; color:#fff;}
/*留言*/ /*留言*/
a.icon_face{background:url(../images/public_icon.png) 0px -671px no-repeat; display:block; height:25px; width:40px; padding-left:25px; padding-top:3px; } a.icon_face{background:url(../images/public_icon.png) 0px -671px no-repeat; display:block; height:25px; width:40px; padding-left:25px; padding-top:3px; }
a:hover.icon_face{background:url(../images/public_icon.png) -79px -671px no-repeat; } a:hover.icon_face{background:url(../images/public_icon.png) -79px -671px no-repeat; }
.inputUsers_message{ border:1px solid #d2d2d2; width:718px; height:48px; color:#666; padding:5px; margin-bottom:5px;} .inputUsers_message{ border:1px solid #d2d2d2; width:718px; height:48px; color:#666; padding:5px; margin-bottom:5px;}
.inputUsers_message02{ border:1px solid #d2d2d2; width:618px; height:26px; color:#666; padding:5px; margin-bottom:5px; } .inputUsers_message02{ border:1px solid #d2d2d2; width:618px; height:26px; color:#666; padding:5px; margin-bottom:5px; }
.message_list_box{ background:#f5f5f5; margin-top: 10px;} .message_list_box{ background:#f5f5f5; margin-top: 10px;}
.users_pic{ width:46px; height:46px; border:1px solid #e3e3e3;} .users_pic{ width:46px; height:46px; border:1px solid #e3e3e3;}
.users_pic:hover{ border:1px solid #a5a5a5;} .users_pic:hover{ border:1px solid #a5a5a5;}
.users_pic_sub{width:32px; height:32px; border:1px solid #e3e3e3;} .users_pic_sub{width:32px; height:32px; border:1px solid #e3e3e3;}
.users_pic_sub:hover{ border:1px solid #a5a5a5;} .users_pic_sub:hover{ border:1px solid #a5a5a5;}
.massage_txt{ max-width:360px; color: #666;word-break:break-all;} .massage_txt{ max-width:360px; color: #666;word-break:break-all;}
.massage_time{ color:#8d8d8d; margin-top:5px;} .massage_time{ color:#8d8d8d; margin-top:5px;}
.message_list{ border-bottom:1px dashed #c9c9c9; margin-bottom:10px;color: #5f5f5f;} .message_list{ border-bottom:1px dashed #c9c9c9; margin-bottom:10px;color: #5f5f5f;}
.message_list_more{ text-align:center; width:720px;} .message_list_more{ text-align:center; width:720px;}
/*课程动态*/ /*课程动态*/
.line_box{ width:728px; border:1px solid #d9d9d9; padding-bottom:10px;} .line_box{ width:728px; border:1px solid #d9d9d9; padding-bottom:10px;}
.users_courses_list{ height:24px; border-bottom:1px dashed #CCC; margin-bottom:10px;} .users_courses_list{ height:24px; border-bottom:1px dashed #CCC; margin-bottom:10px;}
.users_coursename{max-width:135px; font-weight:bold; overflow:hidden; white-space: nowrap; text-overflow:ellipsis; margin-right:5px; } .users_coursename{max-width:135px; font-weight:bold; overflow:hidden; white-space: nowrap; text-overflow:ellipsis; margin-right:5px; }
.course_name{max-width:60px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;} .course_name{max-width:60px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
.c_grey{ color:#8d8d8d;} .c_grey{ color:#8d8d8d;}
.users_courses_txt{max-width:330px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;} .users_courses_txt{max-width:330px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
.users_top{ height:39px; border-bottom:1px solid #d9d9d9; margin-bottom:10px;} .users_top{ height:39px; border-bottom:1px solid #d9d9d9; margin-bottom:10px;}
.users_h4{border-bottom:1px solid #d9d9d9; height:29px; padding:10px 0 0 10px; margin-bottom:10px; } .users_h4{border-bottom:1px solid #d9d9d9; height:29px; padding:10px 0 0 10px; margin-bottom:10px; }
/*弹框*/ /*弹框*/
.white_content_users{display:none;position:fixed;top:45%;left:45%;width:210px;height: auto; margin-bottom:20px;padding:10px;border:3px solid #15bccf;background-color:white;z-index:1002;overflow:auto;} .white_content_users{display:none;position:fixed;top:45%;left:45%;width:210px;height: auto; margin-bottom:20px;padding:10px;border:3px solid #15bccf;background-color:white;z-index:1002;overflow:auto;}
a.box_close{background:url(../images/img_floatbox.png) -22px 0 no-repeat;} a.box_close{background:url(../images/img_floatbox.png) -22px 0 no-repeat;}
/*我的课程*/ /*我的课程*/
.courses_top{ height:27px; border-bottom:3px solid #ebebeb;} .courses_top{ height:27px; border-bottom:3px solid #ebebeb;}
.courses_h2{ font-size:16px; font-weight:bold; color:#64bddb; border-bottom:3px solid #64bddb; padding-bottom:3px; padding-right:3px;} .courses_h2{ font-size:16px; font-weight:bold; color:#64bddb; border-bottom:3px solid #64bddb; padding-bottom:3px; padding-right:3px;}
.courses_select{} .courses_select{}
a.select_btn{ border:1px solid #acacac; padding:0px 10px; color:#989898; display:block;} a.select_btn{ border:1px solid #acacac; padding:0px 10px; color:#989898; display:block;}
a.select_btn:hover{ background:#64bddb; color:#fff;} a.select_btn:hover{ background:#64bddb; color:#fff;}
a.select_btn_select{ background:#64bddb; color:#fff;} a.select_btn_select{ background:#64bddb; color:#fff;}
.courses_list_pic{ border:1px solid #ede7e9; width:64px; height:64px; padding:1px;} .courses_list_pic{ border:1px solid #ede7e9; width:64px; height:64px; padding:1px;}
.courses_list_pic:hover{border:1px solid #64bdd9;} .courses_list_pic:hover{border:1px solid #64bdd9;}
.courses_list_title{ max-width:500px;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;} .courses_list_title{ max-width:500px;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
.pic_eye_blue{display:block; background:url(../images/pic_uersall.png) -372px 3px no-repeat; width:16px; height:15px; } .pic_eye_blue{display:block; background:url(../images/pic_uersall.png) -372px 3px no-repeat; width:16px; height:15px; }
.pic_eye_grey{display:block; background:url(../images/pic_uersall.png) -372px -10px no-repeat; width:16px; height:15px; } .pic_eye_grey{display:block; background:url(../images/pic_uersall.png) -372px -10px no-repeat; width:16px; height:15px; }
.td_w70{ width:70px;} .td_w70{ width:70px;}
.td_w60{ width:60px;} .td_w60{ width:60px;}
.td_w110{ width:110px;} .td_w110{ width:110px;}
.mt20{ margin-top:20px;} .mt20{ margin-top:20px;}
.courses_list{ padding-bottom:10px; } .courses_list{ padding-bottom:10px; }
.courses_list_table{ color:#6e6e6e;} .courses_list_table{ color:#6e6e6e;}
/****翻页***/ /****翻页***/
.wlist{float:right;} .wlist{float:right;}
.wlist li{float:left;} .wlist li{float:left;}
.wlist a{ float:left; border:1px solid #64bdd9; padding:0 5px; margin-left:3px; color:#64bdd9;} .wlist a{ float:left; border:1px solid #64bdd9; padding:0 5px; margin-left:3px; color:#64bdd9;}
.wlist a:hover{border:1px solid #64bdd9; background-color:#64bdd9; color:#fff; text-decoration:none;} .wlist a:hover{border:1px solid #64bdd9; background-color:#64bdd9; color:#fff; text-decoration:none;}
.wlist_select a { background-color:#48aac9; color:#fff;} .wlist_select a { background-color:#48aac9; color:#fff;}
/* TAB 切换效果 */ /* TAB 切换效果 */
.users_tb_{ border-bottom:3px solid #CCC; height:26px; } .users_tb_{ border-bottom:3px solid #CCC; height:26px; }
.users_tb_ ul{height:26px; } .users_tb_ ul{height:26px; }
.users_tb_ li{float:left;height:26px;width: 90px;cursor:pointer; font-size:14px; text-align:center; } .users_tb_ li{float:left;height:26px;width: 90px;cursor:pointer; font-size:14px; text-align:center; }
/* 控制显示与隐藏css类 */ /* 控制显示与隐藏css类 */
.users_normaltab { color:#666; } .users_normaltab { color:#666; }
.users_hovertab { color:#64bdd9; border-bottom:3px solid #64bdd9; font-weight:bold;} .users_hovertab { color:#64bdd9; border-bottom:3px solid #64bdd9; font-weight:bold;}
.users_normaltab a { color:#64bdd9 ; } .users_normaltab a { color:#64bdd9 ; }
.users_hovertab a{color:#fff; background-color:#64bdd9; text-decoration:none;} .users_hovertab a{color:#fff; background-color:#64bdd9; text-decoration:none;}
.users_dis{display:block; } .users_dis{display:block; }
.users_undis{display:none;} .users_undis{display:none;}
.users_ctt{ font-size:14px; color:#666; margin-top:10px;} .users_ctt{ font-size:14px; color:#666; margin-top:10px;}
.setting_left{ width:115px; text-align:right; float:left;} .setting_left{ width:115px; text-align:right; float:left;}
.setting_left li{ height:28px;line-height:28px;} .setting_left li{ height:28px;line-height:28px;}
.setting_right{width:500px; text-align:left; float:left; margin-left:8px;} .setting_right{width:500px; text-align:left; float:left; margin-left:8px;}
.setting_right li{ height:28px;line-height:28px;} .setting_right li{ height:28px;line-height:28px;}
.users_ctt ul li{ margin-bottom:10px;} .users_ctt ul li{ margin-bottom:10px;}
.users_ctt input,.users_ctt select,.users_ctt textarea{ border:1px solid #CCC;} .users_ctt input,.users_ctt select,.users_ctt textarea{ border:1px solid #CCC;}
.users_ctt input,.users_ctt select,.users_ctt option{ height:26px;} .users_ctt input,.users_ctt select,.users_ctt option{ height:26px;}
.users_ctt input,.users_ctt textarea{ margin-left:2px;} .users_ctt input,.users_ctt textarea{ margin-left:2px;}
/*.users_ctt textarea{ margin-bottom:nor;}*/ /*.users_ctt textarea{ margin-bottom:nor;}*/
.w450{ width:450px;} .w450{ width:450px;}
.w210{ width:200px;} .w210{ width:200px;}
.w70{ width:70px;} .w70{ width:70px;}
.h200{ height:200px;} .h200{ height:200px;}
/* 个人主页*/ /* 个人主页*/
a.edit_btn{display:block; background:url(../images/leftside.png) -1px 0 no-repeat; width:33px; height:18px; border:1px solid #cdcdcd; color:#333333; padding:0px 0 0 18px;} a.edit_btn{display:block; background:url(../images/leftside.png) -1px 0 no-repeat; width:33px; height:18px; border:1px solid #cdcdcd; color:#333333; padding:0px 0 0 18px;}
a:hover.edit_btn{ color:#ff5722;} a:hover.edit_btn{ color:#ff5722;}
a.gz_btn{display:block; background:url(../images/pic_uersall.png) -318px -25px no-repeat; width:53px; height:18px; border:1px solid #cdcdcd; color:#333333; padding:0px 0 0 18px;} a.gz_btn{display:block; background:url(../images/pic_uersall.png) -318px -25px no-repeat; width:53px; height:18px; border:1px solid #cdcdcd; color:#333333; padding:0px 0 0 18px;}
a:hover.gz_btn{ color:#ff5722;} a:hover.gz_btn{ color:#ff5722;}
a.qx_btn{display:block; background:url(../images/pic_uersall.png) -318px -47px no-repeat; width:53px; height:18px; border:1px solid #cdcdcd; color:#333333; padding:0px 0 0 18px;} a.qx_btn{display:block; background:url(../images/pic_uersall.png) -318px -47px no-repeat; width:53px; height:18px; border:1px solid #cdcdcd; color:#333333; padding:0px 0 0 18px;}
a:hover.qx_btn{color:#64bdd9;} a:hover.qx_btn{color:#64bdd9;}
a.c_lgrey{ color:#CCC;} a.c_lgrey{ color:#CCC;}
a:hover.c_lgrey{ color:#3ca5c6;} a:hover.c_lgrey{ color:#3ca5c6;}
.leftbox_ul_left{ width:60px; float:left; text-align:right; } .leftbox_ul_left{ width:60px; float:left; text-align:right; }
.leftbox_ul_right{ width:155px; float:left; margin-left:10px; } .leftbox_ul_right{ width:155px; float:left; margin-left:10px; }
.leftbox_ul_left li,.leftbox_ul_right li{ margin-bottom:5px;} .leftbox_ul_left li,.leftbox_ul_right li{ margin-bottom:5px;}
.c_dgrey{ color:#696969;} .c_dgrey{ color:#696969;}
.home_courses_list{ width:364px; margin-bottom:10px; } .home_courses_list{ width:364px; margin-bottom:10px; }
.home_list_title{ max-width:260px; font-size:14px; font-weight:bold;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;} .home_list_title{ max-width:260px; font-size:14px; font-weight:bold;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
.users_list{ } .users_list{ }
.users_course_intro{ width:530px;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;} .users_course_intro{ width:530px;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
/* 20150506上传头像*/ /* 20150506上传头像*/
.uppicBox{ width:265px; height:265px; background:#f2f2f5; float:left; color:#666; text-align:center;} .uppicBox{ width:265px; height:265px; background:#f2f2f5; float:left; color:#666; text-align:center;}
.showpicBox{width:133px; height:250px; background:#f2f2f5; float:left; margin-left:20px; text-align:center; padding-top:15px; color:#666;} .showpicBox{width:133px; height:250px; background:#f2f2f5; float:left; margin-left:20px; text-align:center; padding-top:15px; color:#666;}
.mr15{ margin-right:15px;} .mr15{ margin-right:15px;}
/* 新建作品*/ /* 新建作品*/
.mr8{ margin-right:8px;} .mr8{ margin-right:8px;}
.mt2{ margin-top:2px;} .mt2{ margin-top:2px;}
.fans_sign{ width:560px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;} .fans_sign{ width:560px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
.newhwork_div ul li{ margin-bottom:10px; font-size:14px; color:#666;} .newhwork_div ul li{ margin-bottom:10px; font-size:14px; color:#666;}
.newhwork_div input,.newhwork_div select{ height:26px;border:1px solid #CCC; } .newhwork_div input,.newhwork_div select{ height:26px;border:1px solid #CCC; }
.newhwork_div textarea{border:1px solid #CCC;} .newhwork_div textarea{border:1px solid #CCC;}
.w460{ width:460px;} .w460{ width:460px;}
/* 留言新增*/ /* 留言新增*/
.mes_box{ width:580px;} .mes_box{ width:580px;}
.mes_box02{ margin-left:50px; border-top:1px dashed #c9c9c9; padding-top:10px;margin-bottom: 10px;} .mes_box02{ margin-left:50px; border-top:1px dashed #c9c9c9; padding-top:10px;margin-bottom: 10px;}
.mes_box02_info{ width:540px; margin-left:5px;} .mes_box02_info{ width:540px; margin-left:5px;}
.users_r_top{ width:730px; height:40px; background:#eaeaea; margin-bottom:10px;} .users_r_top{ width:730px; height:40px; background:#eaeaea; margin-bottom:10px;}
.users_r_h2{background:#64bdd9; color:#fff; height:33px; width:90px; text-align:center; font-weight:normal; padding-top:7px; font-size:16px;} .users_r_h2{background:#64bdd9; color:#fff; height:33px; width:90px; text-align:center; font-weight:normal; padding-top:7px; font-size:16px;}
/*a.hidepic>img{display:none;}*/ /*a.hidepic>img{display:none;}*/
/*div.ke-toolbar{display:none;width:400px;border:none;background:none;padding:0px 0px;}*/ /*div.ke-toolbar{display:none;width:400px;border:none;background:none;padding:0px 0px;}*/
/*span.ke-toolbar-icon{line-height:26px;font-size:14px;padding-left:26px;}*/ /*span.ke-toolbar-icon{line-height:26px;font-size:14px;padding-left:26px;}*/
/*span.ke-toolbar-icon-url{background-image:url( ../images/public_icon.png )}*/ /*span.ke-toolbar-icon-url{background-image:url( ../images/public_icon.png )}*/
/*div.ke-toolbar .ke-outline{padding:0px 0px;line-height:26px;font-size:14px;}*/ /*div.ke-toolbar .ke-outline{padding:0px 0px;line-height:26px;font-size:14px;}*/
/*span.ke-icon-emoticons{background-position:0px -671px;width:50px;height:26px;}*/ /*span.ke-icon-emoticons{background-position:0px -671px;width:50px;height:26px;}*/
/*span.ke-icon-emoticons:hover{background-position:-79px -671px;width:50px;height:26px;}*/ /*span.ke-icon-emoticons:hover{background-position:-79px -671px;width:50px;height:26px;}*/
/*div.ke-toolbar .ke-outline{border:none;}*/ /*div.ke-toolbar .ke-outline{border:none;}*/
/*.cr{clear: right;}*/ /*.cr{clear: right;}*/
div.content{padding-top:10px;} div.content{padding-top:10px;}
.pcontent>.school_list,.content>.school_list { padding-left: 5px;} .pcontent>.school_list,.content>.school_list { padding-left: 5px;}
/*151231留言样式*/ /*151231留言样式*/
.messageWrap {width:658px; margin-left:10px;} .messageWrap {width:658px; margin-left:10px;}
.mesWrap2{ margin-left:60px; border-bottom:1px dashed #c9c9c9; padding-top:10px;} .mesWrap2{ margin-left:60px; border-bottom:1px dashed #c9c9c9; padding-top:10px;}
.mesContent2{width:613px;} .mesContent2{width:613px;}
.leaveMes {width:651px; height:50px; resize:none; border:1px solid #dddddd;} .leaveMes {width:651px; height:50px; resize:none; border:1px solid #dddddd;}
.mesSwitch {background:url(../images/public_icon.png) -4px -780px no-repeat; width:15px; height:18px; display:inline-block;} .mesSwitch {background:url(../images/public_icon.png) -4px -780px no-repeat; width:15px; height:18px; display:inline-block;}
.pr {position:relative;} .pr {position:relative;}

@ -1,5 +1,5 @@
#!/usr/bin/env ruby #!/usr/bin/env ruby
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment')) require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
require 'delayed/command' require 'delayed/command'
Delayed::Command.new(ARGV).daemonize Delayed::Command.new(ARGV).daemonize

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe BlogCommentsController, :type => :controller do RSpec.describe BlogCommentsController, :type => :controller do
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe BlogsController, :type => :controller do RSpec.describe BlogsController, :type => :controller do
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe OrgCoursesController, :type => :controller do RSpec.describe OrgCoursesController, :type => :controller do
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe OrgDocumentCommentController, :type => :controller do RSpec.describe OrgDocumentCommentController, :type => :controller do
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe OrgMemberController, :type => :controller do RSpec.describe OrgMemberController, :type => :controller do
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe OrgProjectsController, :type => :controller do RSpec.describe OrgProjectsController, :type => :controller do
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe OrgSubfieldsController, :type => :controller do RSpec.describe OrgSubfieldsController, :type => :controller do
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe OrganizationsController, :type => :controller do RSpec.describe OrganizationsController, :type => :controller do
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe ShieldActivitiesController, :type => :controller do RSpec.describe ShieldActivitiesController, :type => :controller do
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe SystemMessagesController, :type => :controller do RSpec.describe SystemMessagesController, :type => :controller do
end end

@ -1,12 +1,12 @@
# Read about factories at https://github.com/thoughtbot/factory_girl # Read about factories at https://github.com/thoughtbot/factory_girl
FactoryGirl.define do FactoryGirl.define do
factory :at_message do factory :at_message do
user nil user nil
at_message_id 1 at_message_id 1
at_message_type "MyString" at_message_type "MyString"
viewed false viewed false
container_type "MyString" container_type "MyString"
container_id 1 container_id 1
end end
end end

@ -1,6 +1,6 @@
# Read about factories at https://github.com/thoughtbot/factory_girl # Read about factories at https://github.com/thoughtbot/factory_girl
FactoryGirl.define do FactoryGirl.define do
factory :attachment_history do factory :attachment_history do
end end
end end

@ -1,10 +1,10 @@
#coding=utf-8 #coding=utf-8
# #
FactoryGirl.define do FactoryGirl.define do
factory :attachment do factory :attachment do
filename "11.gif" filename "11.gif"
filesize 296833 filesize 296833
digest "8a74e086d7716f89bc4fbac0606589c7" digest "8a74e086d7716f89bc4fbac0606589c7"
disk_directory "2015/05" disk_directory "2015/05"
end end
end end

@ -1,6 +1,6 @@
# Read about factories at https://github.com/thoughtbot/factory_girl # Read about factories at https://github.com/thoughtbot/factory_girl
FactoryGirl.define do FactoryGirl.define do
factory :blog_comment do factory :blog_comment do
end end
end end

@ -1,6 +1,6 @@
# Read about factories at https://github.com/thoughtbot/factory_girl # Read about factories at https://github.com/thoughtbot/factory_girl
FactoryGirl.define do FactoryGirl.define do
factory :blog do factory :blog do
end end
end end

@ -1,13 +1,13 @@
FactoryGirl.define do FactoryGirl.define do
factory :course_contributor_score do factory :course_contributor_score do
course_id 1 course_id 1
user_id 1 user_id 1
message_num 1 message_num 1
message_reply_num 1 message_reply_num 1
news_reply_num 1 news_reply_num 1
resource_num 1 resource_num 1
journal_num 1 journal_num 1
journal_reply_num 1 journal_reply_num 1
end end
end end

@ -1,10 +1,10 @@
FactoryGirl.define do FactoryGirl.define do
factory :course_message do factory :course_message do
user_id 1 user_id 1
course_id 1 course_id 1
course_message_id 1 course_message_id 1
course_message_type "MyString" course_message_type "MyString"
viewed 1 viewed 1
end end
end end

@ -1,15 +1,15 @@
#coding=utf-8 #coding=utf-8
# #
FactoryGirl.define do FactoryGirl.define do
factory :course do factory :course do
name 'name' name 'name'
time '2015' time '2015'
term 'term' term 'term'
class_period 1 class_period 1
password '111' password '111'
description 'description' description 'description'
is_public 1 is_public 1
open_student 1 open_student 1
association :teacher, factory: :user association :teacher, factory: :user
end end
end end

@ -1,19 +1,19 @@
FactoryGirl.define do FactoryGirl.define do
factory :dt, :class => 'Dts' do factory :dt, :class => 'Dts' do
IPLineCode "MyString" IPLineCode "MyString"
Description "MyString" Description "MyString"
Num "MyString" Num "MyString"
Variable "MyString" Variable "MyString"
TraceInfo "MyString" TraceInfo "MyString"
Method "MyString" Method "MyString"
File "MyString" File "MyString"
IPLine "MyString" IPLine "MyString"
Review "MyString" Review "MyString"
Category "MyString" Category "MyString"
Defect "MyString" Defect "MyString"
PreConditions "MyString" PreConditions "MyString"
StartLine "MyString" StartLine "MyString"
project_id 1 project_id 1
end end
end end

@ -1,10 +1,10 @@
FactoryGirl.define do FactoryGirl.define do
factory :forge_message do factory :forge_message do
user_id 1 user_id 1
project_id 1 project_id 1
forge_message_id 1 forge_message_id 1
forge_message_type "MyString" forge_message_type "MyString"
viewed 1 viewed 1
end end
end end

@ -1,11 +1,11 @@
# Read about factories at https://github.com/thoughtbot/factory_girl # Read about factories at https://github.com/thoughtbot/factory_girl
FactoryGirl.define do FactoryGirl.define do
factory :homework_detail_group do factory :homework_detail_group do
homework_common_id 1 homework_common_id 1
min_num 1 min_num 1
max_num 1 max_num 1
base_on_project 1 base_on_project 1
homework_common nil homework_common nil
end end
end end

@ -1,17 +1,17 @@
#coding=utf-8 #coding=utf-8
# #
#:author_id, :budget, :deadline, :name, :description, :homework_type, :password #:author_id, :budget, :deadline, :name, :description, :homework_type, :password
# FactoryGirl.define do # FactoryGirl.define do
# factory :homework, class: Bid do # factory :homework, class: Bid do
# name "test homework" # name "test homework"
# budget 0 # budget 0
# deadline {(Time.now+1.days).strftime('%Y-%m-%d')} # deadline {(Time.now+1.days).strftime('%Y-%m-%d')}
# description "description" # description "description"
# homework_type 3 # homework_type 3
# reward_type 3 # reward_type 3
# end # end
# #
# factory :homework_attach, class: HomeworkAttach do # factory :homework_attach, class: HomeworkAttach do
# end # end
# end # end

@ -1,7 +1,7 @@
FactoryGirl.define do FactoryGirl.define do
factory :invite_list do factory :invite_list do
project_id 1 project_id 1
user_id 1 user_id 1
end end
end end

@ -1,10 +1,10 @@
FactoryGirl.define do FactoryGirl.define do
factory :memo_message do factory :memo_message do
user_id 1 user_id 1
forum_id 1 forum_id 1
memo_id 1 memo_id 1
memo_type "MyString" memo_type "MyString"
viewed 1 viewed 1
end end
end end

@ -1,8 +1,8 @@
FactoryGirl.define do FactoryGirl.define do
factory :message_all do factory :message_all do
user_id 1 user_id 1
message_id 1 message_id 1
message_type "MyString" message_type "MyString"
end end
end end

@ -1,7 +1,7 @@
FactoryGirl.define do FactoryGirl.define do
factory :onclick_time do factory :onclick_time do
user_id 1 user_id 1
onclick_time "2015-09-06 14:57:02" onclick_time "2015-09-06 14:57:02"
end end
end end

@ -1,6 +1,6 @@
FactoryGirl.define do FactoryGirl.define do
factory :org_activity do factory :org_activity do
end end
end end

@ -1,11 +1,11 @@
FactoryGirl.define do FactoryGirl.define do
factory :org_document_comment do factory :org_document_comment do
title "MyString" title "MyString"
content "MyText" content "MyText"
organization_id 1 organization_id 1
creator_id 1 creator_id 1
parent_id 1 parent_id 1
reply_id 1 reply_id 1
end end
end end

@ -1,8 +1,8 @@
FactoryGirl.define do FactoryGirl.define do
factory :org_member do factory :org_member do
user_id 1 user_id 1
organization_id 1 organization_id 1
role "MyString" role "MyString"
end end
end end

@ -1,10 +1,10 @@
# Read about factories at https://github.com/thoughtbot/factory_girl # Read about factories at https://github.com/thoughtbot/factory_girl
FactoryGirl.define do FactoryGirl.define do
factory :principal_activity do factory :principal_activity do
user_id 1 user_id 1
principal_id 1 principal_id 1
principal_act_id 1 principal_act_id 1
principal_act_type "MyString" principal_act_type "MyString"
end end
end end

@ -1,6 +1,6 @@
# Read about factories at https://github.com/thoughtbot/factory_girl # Read about factories at https://github.com/thoughtbot/factory_girl
FactoryGirl.define do FactoryGirl.define do
factory :student_work_project do factory :student_work_project do
end end
end end

@ -1,8 +1,8 @@
FactoryGirl.define do FactoryGirl.define do
factory :system_messages do factory :system_messages do
id 1 id 1
user_id 1 user_id 1
content "MyString" content "MyString"
end end
end end

@ -1,9 +1,9 @@
FactoryGirl.define do FactoryGirl.define do
factory :user_feedback_message do factory :user_feedback_message do
user_id 1 user_id 1
journals_for_message_id 1 journals_for_message_id 1
journals_for_message_type "MyString" journals_for_message_type "MyString"
viewed 1 viewed 1
end end
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe AtMessage, :type => :model do RSpec.describe AtMessage, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe AttachmentHistory, :type => :model do RSpec.describe AttachmentHistory, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe CourseContributorScore, :type => :model do RSpec.describe CourseContributorScore, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe CourseMessage, :type => :model do RSpec.describe CourseMessage, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe Dts, :type => :model do RSpec.describe Dts, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'spec_helper' require 'spec_helper'
describe ForgeActivity do describe ForgeActivity do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe ForgeMessage, :type => :model do RSpec.describe ForgeMessage, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe HomeworkDetailGroup, :type => :model do RSpec.describe HomeworkDetailGroup, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe InviteList, :type => :model do RSpec.describe InviteList, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe MemoMessage, :type => :model do RSpec.describe MemoMessage, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe MessageAll, :type => :model do RSpec.describe MessageAll, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe OnclickTime, :type => :model do RSpec.describe OnclickTime, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe OrgActivity, :type => :model do RSpec.describe OrgActivity, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe OrgDocumentComment, :type => :model do RSpec.describe OrgDocumentComment, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe OrgMember, :type => :model do RSpec.describe OrgMember, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'spec_helper' require 'spec_helper'
describe Organization do describe Organization do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'spec_helper' require 'spec_helper'
describe PhoneAppVersion do describe PhoneAppVersion do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe PrincipalActivity, :type => :model do RSpec.describe PrincipalActivity, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe StudentWorkProject, :type => :model do RSpec.describe StudentWorkProject, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe SystemMessage, :type => :model do RSpec.describe SystemMessage, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,5 +1,5 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe UserFeedbackMessage, :type => :model do RSpec.describe UserFeedbackMessage, :type => :model do
pending "add some examples to (or delete) #{__FILE__}" pending "add some examples to (or delete) #{__FILE__}"
end end

@ -1,50 +1,50 @@
# This file is copied to spec/ when you run 'rails generate rspec:install' # This file is copied to spec/ when you run 'rails generate rspec:install'
ENV['RAILS_ENV'] ||= 'test' ENV['RAILS_ENV'] ||= 'test'
require 'spec_helper' require 'spec_helper'
require File.expand_path('../../config/environment', __FILE__) require File.expand_path('../../config/environment', __FILE__)
require 'rspec/rails' require 'rspec/rails'
# Add additional requires below this line. Rails is not loaded until this point! # Add additional requires below this line. Rails is not loaded until this point!
# Requires supporting ruby files with custom matchers and macros, etc, in # Requires supporting ruby files with custom matchers and macros, etc, in
# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are # spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
# run as spec files by default. This means that files in spec/support that end # run as spec files by default. This means that files in spec/support that end
# in _spec.rb will both be required and run as specs, causing the specs to be # in _spec.rb will both be required and run as specs, causing the specs to be
# run twice. It is recommended that you do not name files matching this glob to # run twice. It is recommended that you do not name files matching this glob to
# end with _spec.rb. You can configure this pattern with the --pattern # end with _spec.rb. You can configure this pattern with the --pattern
# option on the command line or in ~/.rspec, .rspec or `.rspec-local`. # option on the command line or in ~/.rspec, .rspec or `.rspec-local`.
# #
# The following line is provided for convenience purposes. It has the downside # The following line is provided for convenience purposes. It has the downside
# of increasing the boot-up time by auto-requiring all files in the support # of increasing the boot-up time by auto-requiring all files in the support
# directory. Alternatively, in the individual `*_spec.rb` files, manually # directory. Alternatively, in the individual `*_spec.rb` files, manually
# require only the support files necessary. # require only the support files necessary.
# #
# Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f } # Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
RSpec.configure do |config| RSpec.configure do |config|
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
config.fixture_path = "#{::Rails.root}/spec/fixtures" config.fixture_path = "#{::Rails.root}/spec/fixtures"
# If you're not using ActiveRecord, or you'd prefer not to run each of your # If you're not using ActiveRecord, or you'd prefer not to run each of your
# examples within a transaction, remove the following line or assign false # examples within a transaction, remove the following line or assign false
# instead of true. # instead of true.
config.use_transactional_fixtures = true config.use_transactional_fixtures = true
config.before(:suite) do config.before(:suite) do
require_relative "seeds" require_relative "seeds"
end end
# RSpec Rails can automatically mix in different behaviours to your tests # RSpec Rails can automatically mix in different behaviours to your tests
# based on their file location, for example enabling you to call `get` and # based on their file location, for example enabling you to call `get` and
# `post` in specs under `spec/controllers`. # `post` in specs under `spec/controllers`.
# #
# You can disable this behaviour by removing the line below, and instead # You can disable this behaviour by removing the line below, and instead
# explicitly tag your specs with their type, e.g.: # explicitly tag your specs with their type, e.g.:
# #
# RSpec.describe UsersController, :type => :controller do # RSpec.describe UsersController, :type => :controller do
# # ... # # ...
# end # end
# #
# The different available types are documented in the features, such as in # The different available types are documented in the features, such as in
# https://relishapp.com/rspec/rspec-rails/docs # https://relishapp.com/rspec/rspec-rails/docs
config.infer_spec_type_from_file_location! config.infer_spec_type_from_file_location!
end end

@ -1,87 +1,87 @@
require 'rails_helper' require 'rails_helper'
require 'shared_account_spec' require 'shared_account_spec'
RSpec.describe "Account request", :type => :request do RSpec.describe "Account request", :type => :request do
describe "注册用户" do describe "注册用户" do
include_context "create user" include_context "create user"
it "正常注册可以成功" do it "正常注册可以成功" do
shared_register shared_register
expect(response).to redirect_to(my_account_url) expect(response).to redirect_to(my_account_url)
end end
it "修改用户资料" do it "修改用户资料" do
shared_register shared_register
shared_update_user shared_update_user
expect(response).to redirect_to(user_url(session[:user_id])) expect(response).to redirect_to(user_url(session[:user_id]))
end end
end end
describe "用户登录" do describe "用户登录" do
let(:user){FactoryGirl.create(:user)} let(:user){FactoryGirl.create(:user)}
it "未登录访问需要登录页面会自动跳入登录页" do it "未登录访问需要登录页面会自动跳入登录页" do
get 'my/page' get 'my/page'
expect(response).to redirect_to(signin_path) expect(response).to redirect_to(signin_path)
end end
context "正常登录" do context "正常登录" do
before{ post signin_path, username: user.login, password: user.password } before{ post signin_path, username: user.login, password: user.password }
it "登录成功,正常跳转" do it "登录成功,正常跳转" do
expect(response).to redirect_to(my_account_url) expect(response).to redirect_to(my_account_url)
end end
it "登录成功session正确" do it "登录成功session正确" do
expect(user.id).to eq(session[:user_id]) expect(user.id).to eq(session[:user_id])
end end
it "正常登录后可以访问需要认证的页面" do it "正常登录后可以访问需要认证的页面" do
get 'my/account' get 'my/account'
expect(response).to have_http_status(:success) expect(response).to have_http_status(:success)
expect(response.body).to include(user.login) expect(response.body).to include(user.login)
end end
end end
context "登录失败" do context "登录失败" do
before{post signin_path, username: user.login, password: 'wrong password'} before{post signin_path, username: user.login, password: 'wrong password'}
it {expect(response).to render_template('account/login')} it {expect(response).to render_template('account/login')}
it "跳加登录页面" do it "跳加登录页面" do
get 'my/page' get 'my/page'
expect(response).to redirect_to(signin_path) expect(response).to redirect_to(signin_path)
end end
end end
context "自动登录" do context "自动登录" do
before{ before{
post signin_path, username: user.login, password: user.password, autologin: 1 post signin_path, username: user.login, password: user.password, autologin: 1
} }
it "登录成功跳转到个人首页" do it "登录成功跳转到个人首页" do
expect(response).to redirect_to(my_account_url) expect(response).to redirect_to(my_account_url)
end end
it "验证token" do it "验证token" do
token = Token.first token = Token.first
expect(token).not_to be_nil expect(token).not_to be_nil
expect(user.id).to eq(token.user.id) expect(user.id).to eq(token.user.id)
expect(token.action).to eq('autologin') expect(token.action).to eq('autologin')
expect(user.id).to eq(session[:user_id]) expect(user.id).to eq(session[:user_id])
expect(token.value).to eq(cookies['autologin']) expect(token.value).to eq(cookies['autologin'])
end end
it 'session 失效后可以用token自动重新登录' do it 'session 失效后可以用token自动重新登录' do
token = Token.first token = Token.first
reset! reset!
User.current = nil User.current = nil
get my_account_url get my_account_url
expect(response).to redirect_to(signin_url) expect(response).to redirect_to(signin_url)
cookies[:autologin] = token.value cookies[:autologin] = token.value
get my_account_url get my_account_url
expect(response).to have_http_status(:success) expect(response).to have_http_status(:success)
expect(response.body).to include(user.login) expect(response.body).to include(user.login)
end end
end end
end end
end end

@ -1,15 +1,15 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe "avatar request", type: :request do RSpec.describe "avatar request", type: :request do
describe "上传头像" do describe "上传头像" do
let(:user){FactoryGirl.create(:user)} let(:user){FactoryGirl.create(:user)}
it "参数正确,可以成功上传头像" do it "参数正确,可以成功上传头像" do
data = File.open("#{Rails.root}/spec/fixtures/test.jpg").read data = File.open("#{Rails.root}/spec/fixtures/test.jpg").read
binding.pry binding.pry
post upload_avatar_path(source_type: 'User', source_id: user.id, filename: 'test.jpg') post upload_avatar_path(source_type: 'User', source_id: user.id, filename: 'test.jpg')
expect(response).to have_http_status(:success) expect(response).to have_http_status(:success)
expect(response.body).to include(/\/images\/avatars\/User\//) expect(response.body).to include(/\/images\/avatars\/User\//)
end end
end end
end end

@ -1,88 +1,88 @@
require 'rails_helper' require 'rails_helper'
require 'shared_account_spec' require 'shared_account_spec'
RSpec.describe "课程", :type => :request do RSpec.describe "课程", :type => :request do
let(:course){FactoryGirl.attributes_for(:course)} let(:course){FactoryGirl.attributes_for(:course)}
describe "创建课程" do describe "创建课程" do
include_context "create user" include_context "create user"
before { before {
shared_register shared_register
shared_update_user shared_update_user
} }
context "参数正确,成功创建课程" do context "参数正确,成功创建课程" do
before{ before{
# uu = current_user # uu = current_user
# allow(User).to receive(:current).and_return(uu) # allow(User).to receive(:current).and_return(uu)
# allow(uu).to receive(:allowed_to?).and_return(123) # allow(uu).to receive(:allowed_to?).and_return(123)
post courses_path, post courses_path,
"course[name]"=> course[:name], "course[name]"=> course[:name],
"class_period"=> course[:class_period], "class_period"=> course[:class_period],
"time"=> course[:time], "time"=> course[:time],
"term"=> course[:term], "term"=> course[:term],
"course[password]"=>course[:password], "course[password]"=>course[:password],
"course[description]"=> course[:description], "course[description]"=> course[:description],
"course[is_public]"=> course[:is_public], "course[is_public]"=> course[:is_public],
"course[open_student]"=> course[:open_student] "course[open_student]"=> course[:open_student]
} }
it{expect(assigns(:course)).to be_instance_of(Course)} it{expect(assigns(:course)).to be_instance_of(Course)}
it{expect(response).to redirect_to(settings_course_url(assigns(:course), course_type: 1))} it{expect(response).to redirect_to(settings_course_url(assigns(:course), course_type: 1))}
end end
end end
describe "配置课程" do describe "配置课程" do
let (:course) {FactoryGirl.create(:course)} let (:course) {FactoryGirl.create(:course)}
context "修改课程图片" do context "修改课程图片" do
include Rack::Test::Methods include Rack::Test::Methods
let(:avatar) {Rack::Test::UploadedFile.new("#{Rails.root}/spec/fixtures/test.jpg",'image/jpg')} let(:avatar) {Rack::Test::UploadedFile.new("#{Rails.root}/spec/fixtures/test.jpg",'image/jpg')}
context "正常图片上传成功" do context "正常图片上传成功" do
subject(:resp) {post upload_avatar_path(source_type: 'Course', source_id: course.id, format: :json),"avatar"=>{image: avatar}} subject(:resp) {post upload_avatar_path(source_type: 'Course', source_id: course.id, format: :json),"avatar"=>{image: avatar}}
it{ expect(subject).to be_ok } it{ expect(subject).to be_ok }
it{ expect(subject.body).not_to be_empty } it{ expect(subject.body).not_to be_empty }
it "状态要为0" do it "状态要为0" do
o = ActiveSupport::JSON.decode(subject.body) o = ActiveSupport::JSON.decode(subject.body)
expect(o["status"]).to eq(0) expect(o["status"]).to eq(0)
end end
it "要回传图片地址" do it "要回传图片地址" do
o = ActiveSupport::JSON.decode(subject.body) o = ActiveSupport::JSON.decode(subject.body)
expect(o["url"]).not_to be_empty expect(o["url"]).not_to be_empty
end end
end end
context "不是图片,上传失败" do context "不是图片,上传失败" do
let(:invalid_avatar) {Rack::Test::UploadedFile.new("#{Rails.root}/spec/fixtures/hah.txt",'text/plain')} let(:invalid_avatar) {Rack::Test::UploadedFile.new("#{Rails.root}/spec/fixtures/hah.txt",'text/plain')}
before do before do
resp = post upload_avatar_path(source_type: 'Course', source_id: course.id, format: :json),"avatar"=>{image: invalid_avatar} resp = post upload_avatar_path(source_type: 'Course', source_id: course.id, format: :json),"avatar"=>{image: invalid_avatar}
@o = ActiveSupport::JSON.decode(resp.body) @o = ActiveSupport::JSON.decode(resp.body)
end end
it "状态不为0" do it "状态不为0" do
expect(@o["status"]).not_to eq(0) expect(@o["status"]).not_to eq(0)
end end
it "要回传错误信息" do it "要回传错误信息" do
expect(@o["message"]).to be_include("图片") expect(@o["message"]).to be_include("图片")
end end
end end
context "文件过大,上传失败" do context "文件过大,上传失败" do
before do before do
big_file = Rack::Test::UploadedFile.new("#{Rails.root}/spec/fixtures/test.jpg",'image/jpg') big_file = Rack::Test::UploadedFile.new("#{Rails.root}/spec/fixtures/test.jpg",'image/jpg')
allow(ActionDispatch::Http::UploadedFile).to receive(:new).and_return(double('BigFile',size: 10*1024*1024, original_filename: 'rais.jpg', tempfile: nil)) allow(ActionDispatch::Http::UploadedFile).to receive(:new).and_return(double('BigFile',size: 10*1024*1024, original_filename: 'rais.jpg', tempfile: nil))
# trace = TracePoint.new(:call) do |tp| # trace = TracePoint.new(:call) do |tp|
# p [tp.lineno, tp.defined_class, tp.method_id, tp.event] if tp.method_id == :post # p [tp.lineno, tp.defined_class, tp.method_id, tp.event] if tp.method_id == :post
# end # end
resp = post upload_avatar_path(source_type: 'Course', source_id: course.id, format: :json),'avatar[image]'=> big_file resp = post upload_avatar_path(source_type: 'Course', source_id: course.id, format: :json),'avatar[image]'=> big_file
@o = ActiveSupport::JSON.decode(resp.body) @o = ActiveSupport::JSON.decode(resp.body)
end end
it "状态不为0" do it "状态不为0" do
expect(@o["status"]).not_to eq(0) expect(@o["status"]).not_to eq(0)
end end
it "要回传错误信息" do it "要回传错误信息" do
expect(@o["message"]).to be_include("") expect(@o["message"]).to be_include("")
end end
end end
end end
end end
end end

@ -1,13 +1,13 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe "Gitlab request", :type => :request do RSpec.describe "Gitlab request", :type => :request do
describe "get repository files" do describe "get repository files" do
it "参数正确,可以获取正确列表 " do it "参数正确,可以获取正确列表 " do
api = Trustie::Gitlab::Api.new api = Trustie::Gitlab::Api.new
trees = api.trees(11) trees = api.trees(11)
expect(trees).to be_instance_of(Array) expect(trees).to be_instance_of(Array)
end end
end end
end end

@ -1,52 +1,52 @@
require 'rails_helper' require 'rails_helper'
require 'shared_account_spec' require 'shared_account_spec'
RSpec.describe "homework", type: :request do RSpec.describe "homework", type: :request do
include_context "create user" include_context "create user"
let(:course) {FactoryGirl.create(:course, teacher: current_user)} let(:course) {FactoryGirl.create(:course, teacher: current_user)}
let(:homework){FactoryGirl.attributes_for(:homework)} let(:homework){FactoryGirl.attributes_for(:homework)}
before { before {
shared_register shared_register
} }
describe "创建作业" do describe "创建作业" do
before do before do
post calls_create_homework_path(course_id: course.id), { post calls_create_homework_path(course_id: course.id), {
bid: homework bid: homework
} }
@homework = assigns(:bid) @homework = assigns(:bid)
end end
it "参数正确,可以成功创建作业" do it "参数正确,可以成功创建作业" do
expect(response).to redirect_to(course_homework_url(course.id)) expect(response).to redirect_to(course_homework_url(course.id))
end end
it {expect(course.homeworks).to_not be_empty} it {expect(course.homeworks).to_not be_empty}
it {expect(@homework.acts).to_not be_empty} it {expect(@homework.acts).to_not be_empty}
it {expect(@homework.watchers).to_not be_empty} it {expect(@homework.watchers).to_not be_empty}
it {expect(@homework.attachments).to_not be_empty} it {expect(@homework.attachments).to_not be_empty}
end end
describe "删除作业" do describe "删除作业" do
before do before do
shared_login shared_login
post calls_create_homework_path(course_id: course.id), { post calls_create_homework_path(course_id: course.id), {
bid: homework bid: homework
} }
@homework = assigns(:bid) @homework = assigns(:bid)
delete bids_homework_path(id: @homework.id) delete bids_homework_path(id: @homework.id)
end end
it{expect(response).to redirect_to(course_homework_path(course.id))} it{expect(response).to redirect_to(course_homework_path(course.id))}
it "homework_for_courses应删除" do it "homework_for_courses应删除" do
expect(course.homeworks).to be_empty expect(course.homeworks).to be_empty
end end
it "相关活动也删除" do it "相关活动也删除" do
expect(@homework.acts).to be_empty expect(@homework.acts).to be_empty
end end
it "watches 删除" do it "watches 删除" do
expect(@homework.watchers).to be_empty expect(@homework.watchers).to be_empty
end end
it "附件 删除" do it "附件 删除" do
expect(@homework.attachments).to be_empty expect(@homework.attachments).to be_empty
end end
end end
end end

@ -1,40 +1,40 @@
require 'rails_helper' require 'rails_helper'
require 'shared_account_spec' require 'shared_account_spec'
# "attachments"=>{"1"=>{"filename"=>"11.gif", "description"=>"", "is_public_checkbox"=>"1", "token"=>"33731.8a74e086d7716f89bc4fbac0606589c7"}} # "attachments"=>{"1"=>{"filename"=>"11.gif", "description"=>"", "is_public_checkbox"=>"1", "token"=>"33731.8a74e086d7716f89bc4fbac0606589c7"}}
RSpec.describe "作业打包下载", :type => :request do RSpec.describe "作业打包下载", :type => :request do
let(:student){FactoryGirl.create(:student)} let(:student){FactoryGirl.create(:student)}
describe "单独下载某学生作业" do describe "单独下载某学生作业" do
include_context "create user" include_context "create user"
before { before {
FactoryGirl.create(:user) FactoryGirl.create(:user)
shared_login shared_login
@homework = FactoryGirl.create(:homework, author_id: current_user.id) @homework = FactoryGirl.create(:homework, author_id: current_user.id)
@attch = HomeworkAttach.new @attch = HomeworkAttach.new
@attch.bid_id = @homework.id @attch.bid_id = @homework.id
@attch.user_id = student.id @attch.user_id = student.id
@attachment = Attachment.new(:file => File.open(File.join(Rails.root, "spec/fixtures/test.jpg"))) @attachment = Attachment.new(:file => File.open(File.join(Rails.root, "spec/fixtures/test.jpg")))
@attachment.author = User.current @attachment.author = User.current
@attachment.container_type = 'HomeworkAttach' @attachment.container_type = 'HomeworkAttach'
@attachment.container_id = @attch.id @attachment.container_id = @attch.id
@attachment.filename = "test.jpg" @attachment.filename = "test.jpg"
@attachment.save @attachment.save
params = {"1"=>{"filename" => "test.jpg", "description" =>"", params = {"1"=>{"filename" => "test.jpg", "description" =>"",
"is_public_checkbox"=>"1", "is_public_checkbox"=>"1",
"token" => "#{@attachment.id}.#{@attachment.digest}" } "token" => "#{@attachment.id}.#{@attachment.digest}" }
} }
@attch.save_attachments(params) @attch.save_attachments(params)
@attch.name = "test.jpg" @attch.name = "test.jpg"
@attch.save! @attch.save!
} }
it "正常下载" do it "正常下载" do
uu = current_user uu = current_user
allow(uu).to receive(:admin?).and_return(true) allow(uu).to receive(:admin?).and_return(true)
allow(User).to receive(:current).and_return(uu) allow(User).to receive(:current).and_return(uu)
get zipdown_download_user_homework_path, {homework:@attch.id} get zipdown_download_user_homework_path, {homework:@attch.id}
expect(response).to have_http_status(:success) expect(response).to have_http_status(:success)
expect(response.content_type).to eq(Mime::Type.new("applcation/zip",:zip)) expect(response.content_type).to eq(Mime::Type.new("applcation/zip",:zip))
end end
end end
end end

@ -1,18 +1,18 @@
if Role.count <= 0 if Role.count <= 0
ActiveRecord::Base.connection.execute( ActiveRecord::Base.connection.execute(
%Q{ %Q{
INSERT INTO `roles` (`id`, `name`, `position`, `assignable`, `builtin`, `permissions`, `issues_visibility`) INSERT INTO `roles` (`id`, `name`, `position`, `assignable`, `builtin`, `permissions`, `issues_visibility`)
VALUES VALUES
(1,'Non member',1,1,1,'---\n- :upload_attachments\n- :memos_attachments_download\n- :add_project\n- :projects_attachments_download\n- :add_course\n- :course_attachments_download\n- :view_course_files\n- :add_messages\n- :delete_own_messages\n- :view_calendar\n- :view_documents\n- :view_files\n- :view_gantt\n- :view_issues\n- :save_queries\n- :comment_news\n- :browse_repository\n- :view_changesets\n- :view_time_entries\n- :view_wiki_pages\n- :view_wiki_edits\n','default'), (1,'Non member',1,1,1,'---\n- :upload_attachments\n- :memos_attachments_download\n- :add_project\n- :projects_attachments_download\n- :add_course\n- :course_attachments_download\n- :view_course_files\n- :add_messages\n- :delete_own_messages\n- :view_calendar\n- :view_documents\n- :view_files\n- :view_gantt\n- :view_issues\n- :save_queries\n- :comment_news\n- :browse_repository\n- :view_changesets\n- :view_time_entries\n- :view_wiki_pages\n- :view_wiki_edits\n','default'),
(2,'Anonymous',2,1,2,'---\n- :memos_attachments_download\n- :view_course_files\n- :view_calendar\n- :view_documents\n- :view_files\n- :view_gantt\n- :view_issues\n- :browse_repository\n- :view_changesets\n- :view_time_entries\n- :view_wiki_pages\n- :view_wiki_edits\n','default'), (2,'Anonymous',2,1,2,'---\n- :memos_attachments_download\n- :view_course_files\n- :view_calendar\n- :view_documents\n- :view_files\n- :view_gantt\n- :view_issues\n- :browse_repository\n- :view_changesets\n- :view_time_entries\n- :view_wiki_pages\n- :view_wiki_edits\n','default'),
(3,'Manager',3,1,0,'---\n- :upload_attachments\n- :memos_attachments_download\n- :add_project\n- :edit_project\n- :close_project\n- :select_project_modules\n- :manage_members\n- :manage_versions\n- :add_subprojects\n- :is_manager\n- :projects_attachments_download\n- :as_teacher\n- :add_course\n- :edit_course\n- :close_course\n- :select_course_modules\n- :view_course_journals_for_messages\n- :course_attachments_download\n- :view_course_files\n- :view_homework_attaches\n- :quote_project\n- :manage_boards\n- :add_messages\n- :edit_messages\n- :edit_own_messages\n- :delete_messages\n- :delete_own_messages\n- :view_calendar\n- :view_code_review\n- :add_code_review\n- :edit_code_review\n- :delete_code_review\n- :assign_code_review\n- :code_review_setting\n- :add_documents\n- :edit_documents\n- :delete_documents\n- :view_documents\n- :manage_files\n- :view_files\n- :view_gantt\n- :manage_categories\n- :view_issues\n- :add_issues\n- :edit_issues\n- :manage_issue_relations\n- :manage_subtasks\n- :set_issues_private\n- :set_own_issues_private\n- :add_issue_notes\n- :edit_issue_notes\n- :edit_own_issue_notes\n- :view_private_notes\n- :set_notes_private\n- :move_issues\n- :delete_issues\n- :manage_public_queries\n- :save_queries\n- :view_issue_watchers\n- :add_issue_watchers\n- :delete_issue_watchers\n- :manage_news\n- :comment_news\n- :manage_repository\n- :browse_repository\n- :view_changesets\n- :commit_access\n- :manage_related_issues\n- :log_time\n- :view_time_entries\n- :edit_time_entries\n- :edit_own_time_entries\n- :manage_project_activities\n- :manage_wiki\n- :rename_wiki_pages\n- :delete_wiki_pages\n- :view_wiki_pages\n- :export_wiki_pages\n- :view_wiki_edits\n- :edit_wiki_pages\n- :delete_wiki_pages_attachments\n- :protect_wiki_pages\n','all'), (3,'Manager',3,1,0,'---\n- :upload_attachments\n- :memos_attachments_download\n- :add_project\n- :edit_project\n- :close_project\n- :select_project_modules\n- :manage_members\n- :manage_versions\n- :add_subprojects\n- :is_manager\n- :projects_attachments_download\n- :as_teacher\n- :add_course\n- :edit_course\n- :close_course\n- :select_course_modules\n- :view_course_journals_for_messages\n- :course_attachments_download\n- :view_course_files\n- :view_homework_attaches\n- :quote_project\n- :manage_boards\n- :add_messages\n- :edit_messages\n- :edit_own_messages\n- :delete_messages\n- :delete_own_messages\n- :view_calendar\n- :view_code_review\n- :add_code_review\n- :edit_code_review\n- :delete_code_review\n- :assign_code_review\n- :code_review_setting\n- :add_documents\n- :edit_documents\n- :delete_documents\n- :view_documents\n- :manage_files\n- :view_files\n- :view_gantt\n- :manage_categories\n- :view_issues\n- :add_issues\n- :edit_issues\n- :manage_issue_relations\n- :manage_subtasks\n- :set_issues_private\n- :set_own_issues_private\n- :add_issue_notes\n- :edit_issue_notes\n- :edit_own_issue_notes\n- :view_private_notes\n- :set_notes_private\n- :move_issues\n- :delete_issues\n- :manage_public_queries\n- :save_queries\n- :view_issue_watchers\n- :add_issue_watchers\n- :delete_issue_watchers\n- :manage_news\n- :comment_news\n- :manage_repository\n- :browse_repository\n- :view_changesets\n- :commit_access\n- :manage_related_issues\n- :log_time\n- :view_time_entries\n- :edit_time_entries\n- :edit_own_time_entries\n- :manage_project_activities\n- :manage_wiki\n- :rename_wiki_pages\n- :delete_wiki_pages\n- :view_wiki_pages\n- :export_wiki_pages\n- :view_wiki_edits\n- :edit_wiki_pages\n- :delete_wiki_pages_attachments\n- :protect_wiki_pages\n','all'),
(4,'Developer',4,1,0,'---\n- :add_project\n- :manage_members\n- :manage_versions\n- :projects_attachments_download\n- :add_course\n- :edit_course\n- :close_course\n- :select_course_modules\n- :view_course_journals_for_messages\n- :course_attachments_download\n- :view_course_files\n- :view_homework_attaches\n- :paret_in_homework\n- :select_contest_modules\n- :quote_project\n- :contest_attachments_download\n- :manage_contestnotifications\n- :notificationcomment_contestnotifications\n- :manage_boards\n- :add_messages\n- :edit_own_messages\n- :delete_own_messages\n- :view_calendar\n- :view_documents\n- :do_dts\n- :manage_files\n- :view_files\n- :view_gantt\n- :manage_categories\n- :view_issues\n- :add_issues\n- :edit_issues\n- :manage_issue_relations\n- :manage_subtasks\n- :set_issues_private\n- :set_own_issues_private\n- :add_issue_notes\n- :edit_own_issue_notes\n- :view_private_notes\n- :set_notes_private\n- :move_issues\n- :manage_public_queries\n- :save_queries\n- :view_issue_watchers\n- :add_issue_watchers\n- :delete_issue_watchers\n- :manage_news\n- :comment_news\n- :manage_repository\n- :browse_repository\n- :view_changesets\n- :commit_access\n- :manage_related_issues\n- :log_time\n- :view_time_entries\n- :edit_own_time_entries\n- :view_wiki_pages\n- :export_wiki_pages\n- :view_wiki_edits\n- :protect_wiki_pages\n','default'), (4,'Developer',4,1,0,'---\n- :add_project\n- :manage_members\n- :manage_versions\n- :projects_attachments_download\n- :add_course\n- :edit_course\n- :close_course\n- :select_course_modules\n- :view_course_journals_for_messages\n- :course_attachments_download\n- :view_course_files\n- :view_homework_attaches\n- :paret_in_homework\n- :select_contest_modules\n- :quote_project\n- :contest_attachments_download\n- :manage_contestnotifications\n- :notificationcomment_contestnotifications\n- :manage_boards\n- :add_messages\n- :edit_own_messages\n- :delete_own_messages\n- :view_calendar\n- :view_documents\n- :do_dts\n- :manage_files\n- :view_files\n- :view_gantt\n- :manage_categories\n- :view_issues\n- :add_issues\n- :edit_issues\n- :manage_issue_relations\n- :manage_subtasks\n- :set_issues_private\n- :set_own_issues_private\n- :add_issue_notes\n- :edit_own_issue_notes\n- :view_private_notes\n- :set_notes_private\n- :move_issues\n- :manage_public_queries\n- :save_queries\n- :view_issue_watchers\n- :add_issue_watchers\n- :delete_issue_watchers\n- :manage_news\n- :comment_news\n- :manage_repository\n- :browse_repository\n- :view_changesets\n- :commit_access\n- :manage_related_issues\n- :log_time\n- :view_time_entries\n- :edit_own_time_entries\n- :view_wiki_pages\n- :export_wiki_pages\n- :view_wiki_edits\n- :protect_wiki_pages\n','default'),
(5,'Reporter',5,1,0,'---\n- :upload_attachments\n- :memos_attachments_download\n- :add_project\n- :projects_attachments_download\n- :add_course\n- :edit_course\n- :close_course\n- :select_course_modules\n- :view_course_journals_for_messages\n- :course_attachments_download\n- :view_course_files\n- :view_homework_attaches\n- :manage_boards\n- :add_messages\n- :edit_own_messages\n- :delete_own_messages\n- :view_calendar\n- :view_code_review\n- :add_documents\n- :view_documents\n- :view_files\n- :view_gantt\n- :view_issues\n- :add_issues\n- :add_issue_notes\n- :edit_own_issue_notes\n- :save_queries\n- :comment_news\n- :browse_repository\n- :view_changesets\n- :log_time\n- :view_time_entries\n- :view_wiki_pages\n- :export_wiki_pages\n- :view_wiki_edits\n- :edit_wiki_pages\n- :delete_wiki_pages_attachments\n','default'), (5,'Reporter',5,1,0,'---\n- :upload_attachments\n- :memos_attachments_download\n- :add_project\n- :projects_attachments_download\n- :add_course\n- :edit_course\n- :close_course\n- :select_course_modules\n- :view_course_journals_for_messages\n- :course_attachments_download\n- :view_course_files\n- :view_homework_attaches\n- :manage_boards\n- :add_messages\n- :edit_own_messages\n- :delete_own_messages\n- :view_calendar\n- :view_code_review\n- :add_documents\n- :view_documents\n- :view_files\n- :view_gantt\n- :view_issues\n- :add_issues\n- :add_issue_notes\n- :edit_own_issue_notes\n- :save_queries\n- :comment_news\n- :browse_repository\n- :view_changesets\n- :log_time\n- :view_time_entries\n- :view_wiki_pages\n- :export_wiki_pages\n- :view_wiki_edits\n- :edit_wiki_pages\n- :delete_wiki_pages_attachments\n','default'),
(7,'TeachingAsistant',6,1,0,'---\n- :add_project\n- :edit_project\n- :manage_members\n- :projects_attachments_download\n- :as_teacher\n- :add_course\n- :edit_course\n- :close_course\n- :select_course_modules\n- :view_course_journals_for_messages\n- :course_attachments_download\n- :view_course_files\n- :view_homework_attaches\n- :manage_boards\n- :add_messages\n- :delete_own_messages\n- :view_calendar\n- :view_documents\n- :manage_files\n- :view_files\n- :view_gantt\n- :view_issues\n- :add_issues\n- :add_issue_notes\n- :save_queries\n- :manage_news\n- :comment_news\n- :browse_repository\n- :view_changesets\n- :view_time_entries\n- :view_wiki_pages\n- :export_wiki_pages\n- :view_wiki_edits\n- :edit_wiki_pages\n- :delete_wiki_pages_attachments\n','default'), (7,'TeachingAsistant',6,1,0,'---\n- :add_project\n- :edit_project\n- :manage_members\n- :projects_attachments_download\n- :as_teacher\n- :add_course\n- :edit_course\n- :close_course\n- :select_course_modules\n- :view_course_journals_for_messages\n- :course_attachments_download\n- :view_course_files\n- :view_homework_attaches\n- :manage_boards\n- :add_messages\n- :delete_own_messages\n- :view_calendar\n- :view_documents\n- :manage_files\n- :view_files\n- :view_gantt\n- :view_issues\n- :add_issues\n- :add_issue_notes\n- :save_queries\n- :manage_news\n- :comment_news\n- :browse_repository\n- :view_changesets\n- :view_time_entries\n- :view_wiki_pages\n- :export_wiki_pages\n- :view_wiki_edits\n- :edit_wiki_pages\n- :delete_wiki_pages_attachments\n','default'),
(9,'Teacher',7,1,0,'---\n- :upload_attachments\n- :memos_attachments_download\n- :add_project\n- :edit_project\n- :close_project\n- :select_project_modules\n- :manage_members\n- :manage_versions\n- :add_subprojects\n- :projects_attachments_download\n- :as_teacher\n- :add_course\n- :edit_course\n- :close_course\n- :select_course_modules\n- :view_course_journals_for_messages\n- :course_attachments_download\n- :view_course_files\n- :view_homework_attaches\n- :manage_boards\n- :add_messages\n- :edit_messages\n- :edit_own_messages\n- :delete_messages\n- :delete_own_messages\n- :view_calendar\n- :add_documents\n- :edit_documents\n- :delete_documents\n- :view_documents\n- :manage_files\n- :view_files\n- :view_gantt\n- :manage_categories\n- :view_issues\n- :add_issues\n- :edit_issues\n- :manage_issue_relations\n- :manage_subtasks\n- :set_issues_private\n- :set_own_issues_private\n- :add_issue_notes\n- :edit_own_issue_notes\n- :view_private_notes\n- :set_notes_private\n- :move_issues\n- :delete_issues\n- :manage_public_queries\n- :save_queries\n- :view_issue_watchers\n- :add_issue_watchers\n- :delete_issue_watchers\n- :manage_news\n- :comment_news\n- :manage_repository\n- :browse_repository\n- :view_changesets\n- :commit_access\n- :manage_related_issues\n- :log_time\n- :view_time_entries\n- :edit_time_entries\n- :edit_own_time_entries\n- :manage_project_activities\n- :manage_wiki\n- :rename_wiki_pages\n- :delete_wiki_pages\n- :view_wiki_pages\n- :export_wiki_pages\n- :view_wiki_edits\n- :edit_wiki_pages\n- :delete_wiki_pages_attachments\n- :protect_wiki_pages\n','default'), (9,'Teacher',7,1,0,'---\n- :upload_attachments\n- :memos_attachments_download\n- :add_project\n- :edit_project\n- :close_project\n- :select_project_modules\n- :manage_members\n- :manage_versions\n- :add_subprojects\n- :projects_attachments_download\n- :as_teacher\n- :add_course\n- :edit_course\n- :close_course\n- :select_course_modules\n- :view_course_journals_for_messages\n- :course_attachments_download\n- :view_course_files\n- :view_homework_attaches\n- :manage_boards\n- :add_messages\n- :edit_messages\n- :edit_own_messages\n- :delete_messages\n- :delete_own_messages\n- :view_calendar\n- :add_documents\n- :edit_documents\n- :delete_documents\n- :view_documents\n- :manage_files\n- :view_files\n- :view_gantt\n- :manage_categories\n- :view_issues\n- :add_issues\n- :edit_issues\n- :manage_issue_relations\n- :manage_subtasks\n- :set_issues_private\n- :set_own_issues_private\n- :add_issue_notes\n- :edit_own_issue_notes\n- :view_private_notes\n- :set_notes_private\n- :move_issues\n- :delete_issues\n- :manage_public_queries\n- :save_queries\n- :view_issue_watchers\n- :add_issue_watchers\n- :delete_issue_watchers\n- :manage_news\n- :comment_news\n- :manage_repository\n- :browse_repository\n- :view_changesets\n- :commit_access\n- :manage_related_issues\n- :log_time\n- :view_time_entries\n- :edit_time_entries\n- :edit_own_time_entries\n- :manage_project_activities\n- :manage_wiki\n- :rename_wiki_pages\n- :delete_wiki_pages\n- :view_wiki_pages\n- :export_wiki_pages\n- :view_wiki_edits\n- :edit_wiki_pages\n- :delete_wiki_pages_attachments\n- :protect_wiki_pages\n','default'),
(10,'Student',8,1,0,'---\n- :upload_attachments\n- :memos_attachments_download\n- :add_project\n- :projects_attachments_download\n- :as_student\n- :add_course\n- :edit_course\n- :close_course\n- :select_course_modules\n- :view_course_journals_for_messages\n- :course_attachments_download\n- :view_course_files\n- :view_homework_attaches\n- :paret_in_homework\n- :manage_boards\n- :add_messages\n- :edit_own_messages\n- :delete_own_messages\n- :view_calendar\n- :view_documents\n- :view_files\n- :view_gantt\n- :view_issues\n- :add_issues\n- :add_issue_notes\n- :save_queries\n- :comment_news\n- :browse_repository\n- :view_changesets\n- :view_time_entries\n- :view_wiki_pages\n- :view_wiki_edits\n','default'); (10,'Student',8,1,0,'---\n- :upload_attachments\n- :memos_attachments_download\n- :add_project\n- :projects_attachments_download\n- :as_student\n- :add_course\n- :edit_course\n- :close_course\n- :select_course_modules\n- :view_course_journals_for_messages\n- :course_attachments_download\n- :view_course_files\n- :view_homework_attaches\n- :paret_in_homework\n- :manage_boards\n- :add_messages\n- :edit_own_messages\n- :delete_own_messages\n- :view_calendar\n- :view_documents\n- :view_files\n- :view_gantt\n- :view_issues\n- :add_issues\n- :add_issue_notes\n- :save_queries\n- :comment_news\n- :browse_repository\n- :view_changesets\n- :view_time_entries\n- :view_wiki_pages\n- :view_wiki_edits\n','default');
} }
) )
end end

@ -1,42 +1,42 @@
require 'rails_helper' require 'rails_helper'
RSpec.shared_context "create user" do RSpec.shared_context "create user" do
let(:user) {FactoryGirl.attributes_for(:user)} let(:user) {FactoryGirl.attributes_for(:user)}
def shared_register def shared_register
post register_path, user: user post register_path, user: user
end end
def shared_update_user def shared_update_user
post my_account_url, post my_account_url,
login: user[:login], login: user[:login],
identity: 0, identity: 0,
technical_title: "教授", technical_title: "教授",
no: '', no: '',
"user[lastname]" => 'lastname', "user[lastname]" => 'lastname',
"user[firstname]" => 'firstname', "user[firstname]" => 'firstname',
enterprise_name: '', enterprise_name: '',
gender: 1, gender: 1,
province: '', province: '',
occupation: "", occupation: "",
"user[mail]" => user[:mail], "user[mail]" => user[:mail],
"user[language]" => "zh", "user[language]" => "zh",
province: '', province: '',
city: '', city: '',
"user[mail_notification]" => "all", "user[mail_notification]" => "all",
"user_extensions[birthday]" => '', "user_extensions[birthday]" => '',
"user_extensions[gender]" => 1, "user_extensions[gender]" => 1,
"user_extensions[brief_introduction]" => '', "user_extensions[brief_introduction]" => '',
"user_extensions[location]" => '', "user_extensions[location]" => '',
"user_extensions[occupation]" => '', "user_extensions[occupation]" => '',
"user_extensions[work_experience]" => '', "user_extensions[work_experience]" => '',
"user_extensions[zip_code]" => '' "user_extensions[zip_code]" => ''
end end
def shared_login def shared_login
post signin_path, username: user[:login], password: user[:password] post signin_path, username: user[:login], password: user[:password]
end end
def current_user def current_user
User.find(session[:user_id]) User.find(session[:user_id])
end end
end end

@ -1,91 +1,91 @@
require 'rubygems' require 'rubygems'
require 'rspec/core' require 'rspec/core'
# require_relative 'support/spork_patch' # require_relative 'support/spork_patch'
# This file was generated by the `rails generate rspec:install` command. Conventionally, all # This file was generated by the `rails generate rspec:install` command. Conventionally, all
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`. # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
# The generated `.rspec` file contains `--require spec_helper` which will cause # The generated `.rspec` file contains `--require spec_helper` which will cause
# this file to always be loaded, without a need to explicitly require it in any # this file to always be loaded, without a need to explicitly require it in any
# files. # files.
# #
# Given that it is always loaded, you are encouraged to keep this file as # Given that it is always loaded, you are encouraged to keep this file as
# light-weight as possible. Requiring heavyweight dependencies from this file # light-weight as possible. Requiring heavyweight dependencies from this file
# will add to the boot time of your test suite on EVERY test run, even for an # will add to the boot time of your test suite on EVERY test run, even for an
# individual file that may not need all of that loaded. Instead, consider making # individual file that may not need all of that loaded. Instead, consider making
# a separate helper file that requires the additional dependencies and performs # a separate helper file that requires the additional dependencies and performs
# the additional setup, and require it from the spec files that actually need # the additional setup, and require it from the spec files that actually need
# it. # it.
# #
# The `.rspec` file also contains a few flags that are not defaults but that # The `.rspec` file also contains a few flags that are not defaults but that
# users commonly want. # users commonly want.
# #
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
RSpec.configure do |config| RSpec.configure do |config|
# rspec-expectations config goes here. You can use an alternate # rspec-expectations config goes here. You can use an alternate
# assertion/expectation library such as wrong or the stdlib/minitest # assertion/expectation library such as wrong or the stdlib/minitest
# assertions if you prefer. # assertions if you prefer.
config.expect_with :rspec do |expectations| config.expect_with :rspec do |expectations|
# This option will default to `true` in RSpec 4. It makes the `description` # This option will default to `true` in RSpec 4. It makes the `description`
# and `failure_message` of custom matchers include text for helper methods # and `failure_message` of custom matchers include text for helper methods
# defined using `chain`, e.g.: # defined using `chain`, e.g.:
# be_bigger_than(2).and_smaller_than(4).description # be_bigger_than(2).and_smaller_than(4).description
# # => "be bigger than 2 and smaller than 4" # # => "be bigger than 2 and smaller than 4"
# ...rather than: # ...rather than:
# # => "be bigger than 2" # # => "be bigger than 2"
expectations.include_chain_clauses_in_custom_matcher_descriptions = true expectations.include_chain_clauses_in_custom_matcher_descriptions = true
end end
# rspec-mocks config goes here. You can use an alternate test double # rspec-mocks config goes here. You can use an alternate test double
# library (such as bogus or mocha) by changing the `mock_with` option here. # library (such as bogus or mocha) by changing the `mock_with` option here.
config.mock_with :rspec do |mocks| config.mock_with :rspec do |mocks|
# Prevents you from mocking or stubbing a method that does not exist on # Prevents you from mocking or stubbing a method that does not exist on
# a real object. This is generally recommended, and will default to # a real object. This is generally recommended, and will default to
# `true` in RSpec 4. # `true` in RSpec 4.
mocks.verify_partial_doubles = true mocks.verify_partial_doubles = true
end end
# The settings below are suggested to provide a good initial experience # The settings below are suggested to provide a good initial experience
# with RSpec, but feel free to customize to your heart's content. # with RSpec, but feel free to customize to your heart's content.
=begin =begin
# These two settings work together to allow you to limit a spec run # These two settings work together to allow you to limit a spec run
# to individual examples or groups you care about by tagging them with # to individual examples or groups you care about by tagging them with
# `:focus` metadata. When nothing is tagged with `:focus`, all examples # `:focus` metadata. When nothing is tagged with `:focus`, all examples
# get run. # get run.
config.filter_run :focus config.filter_run :focus
config.run_all_when_everything_filtered = true config.run_all_when_everything_filtered = true
# Limits the available syntax to the non-monkey patched syntax that is # Limits the available syntax to the non-monkey patched syntax that is
# recommended. For more details, see: # recommended. For more details, see:
# - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
# - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/ # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
# - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching # - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching
config.disable_monkey_patching! config.disable_monkey_patching!
# Many RSpec users commonly either run the entire suite or an individual # Many RSpec users commonly either run the entire suite or an individual
# file, and it's useful to allow more verbose output when running an # file, and it's useful to allow more verbose output when running an
# individual spec file. # individual spec file.
if config.files_to_run.one? if config.files_to_run.one?
# Use the documentation formatter for detailed output, # Use the documentation formatter for detailed output,
# unless a formatter has already been configured # unless a formatter has already been configured
# (e.g. via a command-line flag). # (e.g. via a command-line flag).
config.default_formatter = 'doc' config.default_formatter = 'doc'
end end
# Print the 10 slowest examples and example groups at the # Print the 10 slowest examples and example groups at the
# end of the spec run, to help surface which specs are running # end of the spec run, to help surface which specs are running
# particularly slow. # particularly slow.
config.profile_examples = 10 config.profile_examples = 10
# Run specs in random order to surface order dependencies. If you find an # Run specs in random order to surface order dependencies. If you find an
# order dependency and want to debug it, you can fix the order by providing # order dependency and want to debug it, you can fix the order by providing
# the seed, which is printed after each run. # the seed, which is printed after each run.
# --seed 1234 # --seed 1234
config.order = :random config.order = :random
# Seed global randomization in this process using the `--seed` CLI option. # Seed global randomization in this process using the `--seed` CLI option.
# Setting this allows you to use `--seed` to deterministically reproduce # Setting this allows you to use `--seed` to deterministically reproduce
# test failures related to randomization by passing the same `--seed` value # test failures related to randomization by passing the same `--seed` value
# as the one that triggered the failure. # as the one that triggered the failure.
Kernel.srand config.seed Kernel.srand config.seed
=end =end
end end

@ -1,22 +1,22 @@
# https://stackoverflow.com/questions/24030907/spork-0-9-2-and-rspec-3-0-0-uninitialized-constant-rspeccorecommandline-n/24085168#24085168 # https://stackoverflow.com/questions/24030907/spork-0-9-2-and-rspec-3-0-0-uninitialized-constant-rspeccorecommandline-n/24085168#24085168
# https://github.com/manafire/spork/commit/38c79dcedb246daacbadb9f18d09f50cc837de51#diff-937afaa19ccfee172d722a05112a7c6fL6 # https://github.com/manafire/spork/commit/38c79dcedb246daacbadb9f18d09f50cc837de51#diff-937afaa19ccfee172d722a05112a7c6fL6
class Spork::TestFramework::RSpec class Spork::TestFramework::RSpec
def run_tests(argv, stderr, stdout) def run_tests(argv, stderr, stdout)
if rspec1? if rspec1?
::Spec::Runner::CommandLine.run( ::Spec::Runner::CommandLine.run(
::Spec::Runner::OptionParser.parse(argv, stderr, stdout) ::Spec::Runner::OptionParser.parse(argv, stderr, stdout)
) )
elsif rspec3? elsif rspec3?
options = ::RSpec::Core::ConfigurationOptions.new(argv) options = ::RSpec::Core::ConfigurationOptions.new(argv)
::RSpec::Core::Runner.new(options).run(stderr, stdout) ::RSpec::Core::Runner.new(options).run(stderr, stdout)
else else
::RSpec::Core::CommandLine.new(argv).run(stderr, stdout) ::RSpec::Core::CommandLine.new(argv).run(stderr, stdout)
end end
end end
def rspec3? def rspec3?
return false if !defined?(::RSpec::Core::Version::STRING) return false if !defined?(::RSpec::Core::Version::STRING)
::RSpec::Core::Version::STRING =~ /^3\./ ::RSpec::Core::Version::STRING =~ /^3\./
end end
end end

@ -1,11 +1,11 @@
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
# This model initially had no columns defined. If you add columns to the # This model initially had no columns defined. If you add columns to the
# model remove the '{}' from the fixture names and add the columns immediately # model remove the '{}' from the fixture names and add the columns immediately
# below each fixture, per the syntax in the comments below # below each fixture, per the syntax in the comments below
# #
one: {} one: {}
# column: value # column: value
# #
two: {} two: {}
# column: value # column: value

@ -1,24 +1,24 @@
require File.expand_path('../../test_helper.rb',__FILE__) require File.expand_path('../../test_helper.rb',__FILE__)
class AuthTest < ActionDispatch::IntegrationTest class AuthTest < ActionDispatch::IntegrationTest
def setup def setup
ApiKey.delete_all ApiKey.delete_all
end end
test "login success when use correct password" do test "login success when use correct password" do
post('/api/v1/auth/login.json', {login: 'guange', password: '123456'}) post('/api/v1/auth/login.json', {login: 'guange', password: '123456'})
o = ActiveSupport::JSON.decode response.body o = ActiveSupport::JSON.decode response.body
puts o puts o
puts o["token"] puts o["token"]
assert_not_nil o["token"] assert_not_nil o["token"]
end end
test "login failure when incorrect password" do test "login failure when incorrect password" do
post('/api/v1/auth/login.json', {login: 'guange', password: 'wrongpass'}) post('/api/v1/auth/login.json', {login: 'guange', password: 'wrongpass'})
o = ActiveSupport::JSON.decode response.body o = ActiveSupport::JSON.decode response.body
assert_nil o["token"] assert_nil o["token"]
assert_equal o["error"], 'Unauthorized.' assert_equal o["error"], 'Unauthorized.'
end end
end end

@ -1,12 +1,12 @@
require File.expand_path('../../test_helper.rb',__FILE__) require File.expand_path('../../test_helper.rb',__FILE__)
class UsersTest < ActionDispatch::IntegrationTest class UsersTest < ActionDispatch::IntegrationTest
test "register a user" do test "register a user" do
end end
test "get all users" do test "get all users" do
get '/api/v1/users.json' get '/api/v1/users.json'
assert_response :success assert_response :success
end end
end end

@ -1,17 +1,17 @@
<<<<<<< HEAD:test/unit/bug_to_osp_test.rb <<<<<<< HEAD:test/unit/bug_to_osp_test.rb
require 'test_helper' require 'test_helper'
class BugToOspTest < ActiveSupport::TestCase class BugToOspTest < ActiveSupport::TestCase
# test "the truth" do # test "the truth" do
# assert true # assert true
# end # end
end end
======= =======
require 'test_helper' require 'test_helper'
class CourseGroupTest < ActiveSupport::TestCase class CourseGroupTest < ActiveSupport::TestCase
# test "the truth" do # test "the truth" do
# assert true # assert true
# end # end
end end
>>>>>>> a09a3dc378c45f43f5c4b090479fa292a846f4f0:test/unit/course_group_test.rb >>>>>>> a09a3dc378c45f43f5c4b090479fa292a846f4f0:test/unit/course_group_test.rb

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save