').insertAfter(fileSpan.find('input.filename'));
- progressSpan.progressbar();
- fileSpan.addClass('ajax-waiting');
-
- var maxSyncUpload = $(inputEl).data('max-concurrent-uploads');
-
+ //在插入文件名的后边插入div
+ var progressSpan = $('
').insertAfter(fileSpan.find('input.upload_filename'));
+ progressSpan.progressbar(); //将div处理成progress bar
+ fileSpan.addClass('ajax-waiting'); //添加文件正在上传的状态
+ var containerid = $(inputEl).data('containerid');//多个上传控件需要的容器id
+ if(containerid == undefined ){ //选择了多少个文件也要显示,因为有时候文件过大,一时半会传不完,但还是显示文件没有选择
+ var count = $('#attachments_fields>span').length;
+ $('#upload_file_count').html("" + count + "" + '个文件被选择');
+ }else{
+ var count = $('#attachments_fields' + containerid + '>span').length;
+ $('#upload_file_count'+containerid).html("" + count + "" + '个文件被选择');
+ }
+ //最大的同步上传参数
+ var maxSyncUpload = 1 //$(inputEl).data('max-concurrent-uploads');
+ //如果没有指定同步上传参数 或者参数不对,或者需要上传的文件已经小于同步上传的个数,那么直接上传
if (maxSyncUpload == null || maxSyncUpload <= 0 || ajaxUpload.uploading < maxSyncUpload)
- actualUpload(file, attachmentId, fileSpan, inputEl);
- else
- $(inputEl).parents('form').queue('upload', actualUpload.bind(this, file, attachmentId, fileSpan, inputEl));
+ actualUpload(file, attachmentId, fileSpan, inputEl,btnId);
+ else //否则就进行队列上传
+ $(inputEl).parents('form').queue('upload', actualUpload.bind(this, file, attachmentId, fileSpan, inputEl,btnId));
}
ajaxUpload.uploading = 0;
@@ -312,11 +346,15 @@ function uploadBlob(blob, uploadUrl, attachmentId, options) {
});
}
-function addInputFiles(inputEl) {
+function addInputFiles(inputEl,btnId) {
// var clearedFileInput = $(inputEl).clone().val('');
if (inputEl.files) {
+// if(inputEl.files.length >= 5){
+// alert('一次选择的文件不能超过5个')
+// return;
+// }
// upload files using ajax
- uploadAndAttachFiles(inputEl.files, inputEl);
+ uploadAndAttachFiles(inputEl.files, inputEl,btnId);
// $(inputEl).remove();
} else {
// browser not supporting the file API, upload on form submission
@@ -338,12 +376,16 @@ function addInputFiles(inputEl) {
//clearedFileInput.insertAfter('#attachments_fields');
}
-function addInputFiles_board(inputEl, id) {
+function addInputFiles_board(inputEl, id,btnId) {
// var clearedFileInput = $(inputEl).clone().val('');
if (inputEl.files) {
+// if(inputEl.files.length >= 5){
+// alert('一次选择的文件不能超过5个')
+// return;
+// }
// upload files using ajax
- uploadAndAttachFiles_board(inputEl.files, inputEl, id);
+ uploadAndAttachFiles_board(inputEl.files, inputEl, id,btnId);
// $(inputEl).remove();
} else {
// browser not supporting the file API, upload on form submission
@@ -363,7 +405,7 @@ function addInputFiles_board(inputEl, id) {
//clearedFileInput.insertAfter('#attachments_fields');
}
-function uploadAndAttachFiles(files, inputEl) {
+function uploadAndAttachFiles(files, inputEl,btnId) {
var maxFileSize = $(inputEl).data('max-file-size');
var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');
@@ -378,12 +420,12 @@ function uploadAndAttachFiles(files, inputEl) {
window.alert(maxFileSizeExceeded);
} else {
$.each(files, function() {
- addFile(inputEl, this, true);
+ addFile(inputEl, this, true,btnId);
});
}
}
-function uploadAndAttachFiles_board(files, inputEl, id) {
+function uploadAndAttachFiles_board(files, inputEl, id,btnId) {
var maxFileSize = $(inputEl).data('max-file-size');
var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');
@@ -398,7 +440,7 @@ function uploadAndAttachFiles_board(files, inputEl, id) {
window.alert(maxFileSizeExceeded);
} else {
$.each(files, function() {
- addFile_board(inputEl, this, true, id);
+ addFile_board(inputEl, this, true, id,btnId);
});
}
}
@@ -471,10 +513,15 @@ $(function() {
//课程课件
function addInputFilesCourseSource(inputEl) {
checkBox = arguments[1] == 'public' ? false : true;
+ btnId = arguments[2];
// var clearedFileInput = $(inputEl).clone().val('');
if (inputEl.files) {
+// if(inputEl.files.length >= 5){
+// alert('一次选择的文件不能超过5个')
+// return;
+// }
// upload files using ajax
- uploadAndAttachFilesCourseSource(inputEl.files, inputEl,checkBox);
+ uploadAndAttachFilesCourseSource(inputEl.files, inputEl,checkBox,btnId);
// $(inputEl).remove();
} else {
// browser not supporting the file API, upload on form submission
@@ -496,7 +543,7 @@ function addInputFilesCourseSource(inputEl) {
//clearedFileInput.insertAfter('#attachments_fields');
}
-function uploadAndAttachFilesCourseSource(files, inputEl,checkBox) {
+function uploadAndAttachFilesCourseSource(files, inputEl,checkBox,btnId) {
var maxFileSize = $(inputEl).data('max-file-size');
var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');
@@ -511,12 +558,12 @@ function uploadAndAttachFilesCourseSource(files, inputEl,checkBox) {
window.alert(maxFileSizeExceeded);
} else {
$.each(files, function() {
- addFileCourseSource(inputEl, this, true,checkBox);
+ addFileCourseSource(inputEl, this, true,checkBox,btnId);
});
}
}
-function addFileCourseSource(inputEl, file, eagerUpload,checkBox) {
+function addFileCourseSource(inputEl, file, eagerUpload,checkBox,btnId) {
var attachments_frame = '#attachments_fields';
if ($(attachments_frame).children().length < 30) {
@@ -595,7 +642,7 @@ function addFileCourseSource(inputEl, file, eagerUpload,checkBox) {
}
if (eagerUpload) {
- ajaxUpload(file, attachmentId, fileSpan, inputEl);
+ ajaxUpload(file, attachmentId, fileSpan, inputEl,btnId);
}
return attachmentId;
diff --git a/public/javascripts/course.js b/public/javascripts/course.js
index 0c7f4156f..84e087c49 100644
--- a/public/javascripts/course.js
+++ b/public/javascripts/course.js
@@ -954,13 +954,19 @@ function regexStudentWorkDescription()
function new_student_work()
{
if(regexStudentWorkName()&®exStudentWorkDescription())
- {$("#new_student_work").submit();}
+ {
+ $("#new_student_work").submit();
+ $("#ajax-indicator").hide();
+ }
}
function edit_student_work(id)
{
if(regexStudentWorkName()&®exStudentWorkDescription())
- {$("#edit_student_work_" + id).submit();}
+ {
+ $("#edit_student_work_" + id).submit();
+ $("#ajax-indicator").hide();
+ }
}
//
diff --git a/public/javascripts/feedback.js b/public/javascripts/feedback.js
index b30c8f91d..97209131e 100644
--- a/public/javascripts/feedback.js
+++ b/public/javascripts/feedback.js
@@ -1,5 +1,10 @@
(function($){
$.fn.fix = function(options){
+ var u = navigator.userAgent;
+ if((u.indexOf('Android') > -1 || u.indexOf('Linux') > -1 ||u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1)){
+ $("#scrollsidebar").css("display","none");
+ return;
+ }
var defaults = {
float : 'right',
minStatue : true,
@@ -73,6 +78,11 @@ function cookieget(n)
$(function(){
+ var u = navigator.userAgent;
+ if((u.indexOf('Android') > -1 || u.indexOf('Linux') > -1 ||u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1)){
+ $("#scrollsidebar").css("display","none");
+ return;
+ }
$(".closeSidebar").click(function(){
$(".show_btn").css("display","none");
$("#scrollsidebar").css("display","none");
@@ -109,4 +119,30 @@ $(function(){
$("#textCount").text(50-$("#subject").val().length)
}
});
-});
\ No newline at end of file
+});
+
+//var browser={
+// versions:function(){
+// var u = navigator.userAgent, app = navigator.appVersion;
+// return {//移动终端浏览器版本信息
+// trident: u.indexOf('Trident') > -1, //IE内核
+// presto: u.indexOf('Presto') > -1, //opera内核
+// webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
+// gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
+// mobile: !!u.match(/AppleWebKit.*Mobile.*/)||!!u.match(/AppleWebKit/), //是否为移动终端
+// ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
+// android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
+// iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器
+// iPad: u.indexOf('iPad') > -1, //是否iPad
+// webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
+// };
+// }(),
+// language:(navigator.browserLanguage || navigator.language).toLowerCase()
+//}
+//document.writeln("语言版本: "+browser.language);
+//document.writeln(" 是否为移动终端: "+browser.versions.mobile);
+//document.writeln(" ios终端: "+browser.versions.ios);
+//document.writeln(" android终端: "+browser.versions.android);
+//document.writeln(" 是否为iPhone: "+browser.versions.iPhone);
+//document.writeln(" 是否iPad: "+browser.versions.iPad);
+//document.writeln(navigator.userAgent);
\ No newline at end of file
diff --git a/public/javascripts/new_user.js b/public/javascripts/new_user.js
index ca7b28ee7..a0647b592 100644
--- a/public/javascripts/new_user.js
+++ b/public/javascripts/new_user.js
@@ -250,13 +250,19 @@ function regex_evaluation_num(){
function new_student_work()
{
if(regexStudentWorkName()&®exStudentWorkDescription())
- {$("#new_student_work").submit();}
+ {
+ $("#new_student_work").submit();
+ $("#ajax-indicator").hide();
+ }
}
function edit_student_work(id)
{
if(regexStudentWorkName()&®exStudentWorkDescription())
- {$("#edit_student_work_" + id).submit();}
+ {
+ $("#edit_student_work_" + id).submit();
+ $("#ajax-indicator").hide();
+ }
}
//验证作品名称
diff --git a/public/javascripts/org.js b/public/javascripts/org.js
new file mode 100644
index 000000000..e26995931
--- /dev/null
+++ b/public/javascripts/org.js
@@ -0,0 +1,45 @@
+//�����֯��Ա���ύ����
+function submit_add_org_members(){
+ $("#org_member_add_form").submit();
+}
+
+function observeSearchfield(fieldId, targetId, url) {
+ $('#'+fieldId).each(function() {
+ var $this = $(this);
+ $this.addClass('autocomplete');
+ $this.attr('data-value-was', $this.val());
+ var check = function() {
+ var val = $this.val();
+ if ($this.attr('data-value-was') != val){
+ $this.attr('data-value-was', val);
+ $.ajax({
+ url: url,
+ type: 'get',
+ data: {q: $this.val()},
+ success: function(data){ if(targetId) $('#'+targetId).html(data); },
+ beforeSend: function(){ $this.addClass('ajax-loading'); },
+ complete: function(){ $this.removeClass('ajax-loading'); }
+ });
+ }
+ };
+ var reset = function() {
+ if (timer) {
+ clearInterval(timer);
+ timer = setInterval(check, 300);
+ }
+ };
+ var timer = setInterval(check, 300);
+ $this.bind('keyup click mousemove', reset);
+ });
+}
+
+//显示更多的项目
+function show_more_org_project(url){
+ $.get(
+ url,
+ { page: $("#org_project_page_num").val() },
+ function (data) {
+
+ }
+ );
+}
\ No newline at end of file
diff --git a/public/stylesheets/courses.css b/public/stylesheets/courses.css
index 342833981..5469078a5 100644
--- a/public/stylesheets/courses.css
+++ b/public/stylesheets/courses.css
@@ -43,10 +43,13 @@ a:hover.news_foot{ color:#787b7e; border:1px solid #d4d4d4;}
.pingBackTit{ float:left; width:573px; margin-left:10px; }
.hworkUl{ height:30px; border-bottom:1px solid #eaeaea; line-height:30px; vertical-align:middle; background-color: #f6f6f6;}
.hworkH30 {height:30px !important; line-height:30px !important;}
-.hworkListRow {height:65px; border-bottom:1px dashed #eaeaea; line-height:65px; vertical-align:middle;}
+.hworkListRow {height:65px; border-bottom:1px dashed #eaeaea; line-height:65px; vertical-align:middle; position: relative;}
.hworkListRow:hover {background-color:#f6f6f7;}
.hworkUl li{ float:left;}
.hworkListRow li{ float:left;}
+.hworkTip{position:absolute; padding:3px 5px; border:1px solid #eaeaea; display:block; right:-108px; top:20px; background-color:#ffffff; line-height:20px; box-shadow:0px 2px 8px rgba(146, 153, 169, 0.5);}
+.hworkTip em {display:block; border-width:8px; position:absolute; bottom:4px; left:-16px; border-style:dashed solid dashed dashed; border-color:transparent #eaeaea transparent transparent; font-size:0; line-height:0;}
+.hworkTip span {display:block; border-width:8px; position:absolute; bottom:4px; left:-15px; border-style:dashed solid dashed dashed; border-color:transparent #FFF transparent transparent; font-size:0; line-height:0;}
.hworkList340 {width:335px; text-align:left; height:50px; line-height:50px;padding-left:5px;}
.hworkList80 {width:80px; text-align:center;}
.hworkList50 {width:50px; text-align:center;}
@@ -179,6 +182,7 @@ a.f_grey:hover {color:#000000;}
/*.upbtn{ margin:42px 0 0 10px; border:none; color:#999; width:150px;}*/
.red_btn_cir{ background:#e74c3c; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.green_btn_cir{ background:#28be6c; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
+.red_homework_btn_cir{ background:#e74c3c; padding:1px 3px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.green_homework_btn_cir{ background:#28be6c; padding:1px 3px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.grey_btn_cir{ background:#b2b2b2; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal; font-size:12px;}
.grey_homework_btn_cir{ background:#b2b2b2; padding:1px 3px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal; font-size:12px;}
@@ -492,6 +496,13 @@ a:hover.tijiao{ background:#0f99a9;}
.ni_con_work p{ color:#808181; }
a.xls{ margin-left:5px; color:#136b3b;}
.grey_c{ color:#808181;}
+
+.disable_btn { height:46px; display:block; width:90px; color:#fff; background:#d0d2d0; text-align:center; padding-top:4px; margin-right:15px;}
+a.term_btn{ height:38px; display:block; width:90px; color:#fff; background:#269ac9; text-align:center; padding-top:12px; margin-right:15px;}
+a:hover.term_btn{ background:#297fb8;}
+p.c_black{ color:#000000;}
+a.exit { height:24px; display:block; width:80px; color:#000000; background:#c3c3c3; text-align:center; padding-top:4px;}
+.lh22{ line-height: 22px;}
/* 学生列表*/
.st_list{ width:670px;}
.st_search{ }
@@ -545,7 +556,6 @@ a:hover.st_add{ color:#ff8e15;}
a.link_file{ background:url(../images/pic_file.png) 0 2px no-repeat; padding-left:20px; }
a:hover.link_file{ background:url(../images/pic_file.png) 0 -25px no-repeat; color:#3ca5c6;}
-.r_txt_tit{width:510px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;color:#15bccf; float:left; color:#09658c; font-size:14px;}
blockquote {background: #e8e8e8;padding: 10px;margin-bottom: 5px;word-break: break-all;word-wrap: break-word;}
.respond-form{display: none;margin: auto;clear: both;}
@@ -895,7 +905,8 @@ a.work_list_tit{width:580px; display:block; overflow:hidden; font-size:14px; f
.filename { background: url(../images/pic_file.png) 0 -25px no-repeat;color: #3ca5c6;max-width: 150px;border: none; padding-left: 20px;margin-right: 10px;margin-bottom: 5px; white-space: nowrap; text-overflow:ellipsis;}
.ajax-waiting input.upload_filename {background:url(../images/hourglass.png) no-repeat 0px 50%;}
.ajax-loading input.upload_filename {background:url(../images/loading.gif) no-repeat 0px 50%;}
-.upload_filename{ background: url(../images/pic_file.png) 0 -20px no-repeat;color: #7f7f7f;width: 370px;border: none; padding-left: 20px;margin-right: 10px;margin-bottom: 5px; white-space: nowrap; text-overflow:ellipsis;}
+div.ui-progressbar { width: 100px; height:14px; margin: 2px 0 -5px 8px; display: inline-block; }
+.upload_filename{ background: url(../images/pic_file.png) 0 -20px no-repeat;color: #7f7f7f;width: 270px;border: none; padding-left: 20px;margin-right: 10px;margin-bottom: 5px; white-space: nowrap; text-overflow:ellipsis;}
.evaluation{position: relative;}
.evaluation_submit{position: absolute;right: 0px;bottom: 0px;}
.student_work_search{background-color: #64bdd9;color: white !important;padding: 2px 7px;margin-left: 10px;cursor: pointer; }
@@ -976,6 +987,7 @@ a:hover.icon_remove{background:url(../images/course/icons.png) -20px -338px no-r
.m_w505{max-width: 505px;}
.m_w500{max-width: 500px;}
.m_w530{max-width: 530px;}
+.m_w600{max-width: 600px;}
.ProResultTable{ color:#888888;}
.T_C{ text-align:center;}
.SearchIcon{background:url(../images/homepage_icon2.png) 676px -393px no-repeat; }
@@ -1117,3 +1129,15 @@ a.postRouteLink:hover {text-decoration:underline;}
.syllabusSettingIcon:hover {cursor: pointer}
.pic_files{display:block; background:url(../images/public_icon.png) 0px -578px no-repeat; width:20px; height:15px;}
+
+/*确定按钮*/
+input.sendSourceText {
+ font-size: 14px;
+ color: #ffffff;
+ background-color: #269ac9;
+ cursor: pointer;
+ outline: none;
+ border: none;
+ width: 50px;
+ height: 25px;
+}
diff --git a/public/stylesheets/new_user.css b/public/stylesheets/new_user.css
index f21a4b1fd..6ccfc47f6 100644
--- a/public/stylesheets/new_user.css
+++ b/public/stylesheets/new_user.css
@@ -131,6 +131,7 @@ a.linkGrey6:hover {color:#ffffff !important;}
.w350{ width:350px;}
.w610{ width:610px;}
.w600{ width:600px;}
+.w713{width: 713px;}
.h22{ height:22px;}
.h26{ height:26px;}
.h50{ height:50px;}
@@ -260,7 +261,7 @@ a:hover.grey_n_btn{ background:#717171; color:#fff;}
.green_btn{ background:#28be6c; color:#fff; font-weight:normal;padding:2px 10px; text-align:center;}
a.green_btn{background:#28be6c;color:#fff; font-weight:normal; padding:2px 10px; text-align:center;}
a:hover.green_btn{ background:#14ad5a;}
-.blue_btn{ background:#64bdd9; color:#fff; font-size:14px; font-weight:normal;padding:2px 8px; text-align:center;}
+.blue_btn{ background:#64bdd9; color:#fff; font-weight:normal;padding:2px 8px; text-align:center;}
a.blue_btn{background:#64bdd9;color:#fff; font-weight:normal; padding:2px 10px; text-align:center;}
a:hover.blue_btn{ background:#329cbd;}
a.orange_btn{ background:#ff5722;color:#fff; font-weight:normal; padding:2px 10px; text-align:center; }
@@ -298,6 +299,7 @@ a:hover.bgreen_n_btn{background:#08a384;}
.green_btn_cir{ background:#28be6c; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.green_homework_btn_cir{ background:#28be6c; padding:1px 3px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.grey_btn_cir{ background:#b2b2b2; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal; font-size:12px;}
+.red_homework_btn_cir{ background:#e74c3c; padding:1px 3px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.grey_homework_btn_cir{ background:#b2b2b2; padding:1px 3px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal; font-size:12px;}
.blue_btn_cir{ background:#3498db; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.orange_btn_cir{ background:#e67e22; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal; font-size:12px;}
@@ -1081,6 +1083,7 @@ a:hover.icon_remove{background:url(../images/course/icons.png) -20px -338px no-r
.m_w460{max-width: 460px;}
.m_w505{max-width: 505px;}
.m_w530{max-width: 530px;}
+.m_w600{max-width: 600px;}
.ProResultTable{ color:#888888;}
.T_C{ text-align:center;}
.SearchIcon{background:url(../images/homepage_icon2.png) 676px -393px no-repeat; }
@@ -1155,7 +1158,8 @@ img.ui-datepicker-trigger {
}
.ajax-waiting input.upload_filename {background:url(../images/hourglass.png) no-repeat 0px 50%;}
.ajax-loading input.upload_filename {background:url(../images/loading.gif) no-repeat 0px 50%;}
-.upload_filename{ background: url(../images/pic_file.png) 0 -25px no-repeat;color: #7f7f7f;width: 370px;border: none; padding-left: 20px;margin-right: 10px;margin-bottom: 5px; white-space: nowrap; text-overflow:ellipsis;}
+div.ui-progressbar { width: 100px; height:14px; margin: 2px 0 -5px 8px; display: inline-block; }
+.upload_filename{ background: url(../images/pic_file.png) 0 -25px no-repeat;color: #7f7f7f;width: 270px;border: none; padding-left: 20px;margin-right: 10px;margin-bottom: 5px; white-space: nowrap; text-overflow:ellipsis;}
.message_title{border: 1px solid #9C9C9C;padding: 0.6em;margin-left: 1.4em;margin-right: 0.4em;border-radius: 4px;font-family: "Microsoft YaHei";background-size: 100% 100%;margin-bottom: 5px;background-color: #fff; max-width:400px;word-wrap:break-word; word-break:break-all;}
.message_title_red{border: 1px solid #484848;padding: 0.6em;margin-left: 1.4em;margin-right: 0.4em;border-radius: 4px;font-family: "Microsoft YaHei";background-size: 100% 100%;margin-bottom: 5px;background-color: #fff;background-image: -moz-linear-gradient(top, #fff, #E0E0E0);}
diff --git a/public/stylesheets/org.css b/public/stylesheets/org.css
new file mode 100644
index 000000000..c8116003e
--- /dev/null
+++ b/public/stylesheets/org.css
@@ -0,0 +1,52 @@
+@charset "utf-8";
+/* CSS Document */
+
+.orgName {width:130px; color:#484848;}
+.organization_r_h02{ width:970px; height:40px; background:#eaeaea; margin-bottom:10px;}
+.organization_h2{ background:#64bdd9; color:#fff; height:33px; width:90px; text-align:center; font-weight:normal; padding-top:7px; font-size:16px;}
+
+.orgSettingOp {width:45px; height:21px; color:#269ac9; text-align:center; border-bottom:3px solid #e4e4e4; float:left; font-weight:bold; cursor:pointer;}
+.orgBorder {width:628px; height:21px; border-bottom:3px solid #e4e4e4; float:left;}
+.orgOpActive {border-bottom:3px solid #269ac9 !important; color:#444444;}
+.logoBorder {border:1px solid #eaeaea; padding:2px;}
+.logoBorder:hover {border:1px solid #269ac9;}
+.logoEnter {border:1px solid #eaeaea; padding:2px 5px; margin-top:37px;}
+.orgNameInput {width:600px; outline:none; border:1px solid #eaeaea; float:right; height:22px;}
+.orgRow {font-size:14px; color:#484848;}
+.orgDes {width:600px; height:150px; outline:none; border:1px solid #eaeaea; float:right; resize:none;}
+.w607 {width:607px;}
+.orgUrlInput {width:200px; outline:none; border:1px solid #eaeaea; height:22px;}
+a.saveBtn {padding:3px 5px; background-color:#269ac9; color:#ffffff;}
+a.saveBtn:hover {background-color:#297fb8;}
+.orgMemberList {width:410px; float:left;}
+.orgListRow {border-bottom:1px solid #e4e4e4; padding-bottom:5px;}
+.orgListUser {width:119px; float:left;}
+.orgListRole {width:180px; float:left;}
+.orgMemContainer {width:278px;}
+.orgMemberAdd {float:right; width:240px;}
+.orgAddSearch {border:1px solid #dddddd; outline:none; width:180px; height:22px; color:#9b9b9b;}
+.undis {display:none;}
+.dis {display:inline-block;}
+.upbtn { margin: 40px 0px 0px 15px;
+ display: block;
+ padding: 2px 5px;
+ border: 1px solid #EAEAEA;}
+
+a.org_member_btn{ padding:1px 5px; background:#15bccf; color:#fff;}
+
+/*项目关联css*/
+.relateOrg {width:335px;}
+.relatedList {width:335px;}
+.searchOrg {height:24px; width:200px; color:#9b9b9b9; border:1px solid #15bccf;}
+a.cancelBtn {padding:3px 5px; background-color:#D9D9D9; color:#656565;}
+a.cancelBtn:hover {background-color:#717171; color:#ffffff;}
+.relatedList ul li {border-bottom:1px solid #e4e4e4; width:320px; height:22px; vertical-align:middle; line-height:22px;}
+.relatedListName {width:240px; text-align:left; max-width:240px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis;}
+.relatedListOption {width:80px; text-align:center;}
+.relateOrgName {width:240px; max-width:240px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis;color:#656565;}
+
+/*组织列表*/
+.mt28 {margin-top:28px;}
+.orgWrap {width:880px; float:left;}
+.orgTitle {width:880px; max-width:880px; margin-bottom:5px;word-break: break-all; word-wrap:break-word; }
+.orgIntro {width:880px; max-width:880px; margin-bottom:6px; color:#484848;}
\ No newline at end of file
diff --git a/public/stylesheets/project.css b/public/stylesheets/project.css
index e7a24b151..3dedf1396 100644
--- a/public/stylesheets/project.css
+++ b/public/stylesheets/project.css
@@ -371,10 +371,10 @@ span.add_attachment {font-size: 80%;line-height: 2.5em;}
.reply_btn:hover{ background:#999; color:#fff; }
.ajax-waiting input.upload_filename {background:url(../images/hourglass.png) no-repeat 0px 50%;}
.ajax-loading input.upload_filename {background:url(../images/loading.gif) no-repeat 0px 50%;}
-.upload_filename{ background: url(../images/pic_file.png) 0 -22px no-repeat;color: #7f7f7f;width: 370px;border: none; padding-left: 20px;margin-right: 10px;margin-bottom: 5px; white-space: nowrap; text-overflow:ellipsis;}
+.upload_filename{ background: url(../images/pic_file.png) 0 -22px no-repeat;color: #7f7f7f;width: 270px;border: none; padding-left: 20px;margin-right: 10px;margin-bottom: 5px; white-space: nowrap; text-overflow:ellipsis;}
.attachments_fields input.description {margin-left:4px; width:100px; }
.attachments_fields span .boldSpan{display:block; white-space:nowrap; font-family:'微软雅黑';}
-.attachments_fields div.ui-progressbar { width: 100px; height:14px; margin: 2px 0 -5px 8px; display: inline-block; }
+div.ui-progressbar { width: 100px; height:14px; margin: 2px 0 -5px 8px; display: inline-block; }
a.remove-upload:hover {text-decoration:none !important;}
.attachments_fields input.is_public_checkbox {width:20px;}
diff --git a/spec/controllers/org_document_comment_controller_spec.rb b/spec/controllers/org_document_comment_controller_spec.rb
new file mode 100644
index 000000000..016416264
--- /dev/null
+++ b/spec/controllers/org_document_comment_controller_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe OrgDocumentCommentController, :type => :controller do
+
+end
diff --git a/spec/controllers/org_member_controller_spec.rb b/spec/controllers/org_member_controller_spec.rb
new file mode 100644
index 000000000..a116db00f
--- /dev/null
+++ b/spec/controllers/org_member_controller_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe OrgMemberController, :type => :controller do
+
+end
diff --git a/spec/controllers/org_projects_controller_spec.rb b/spec/controllers/org_projects_controller_spec.rb
new file mode 100644
index 000000000..8adc91d66
--- /dev/null
+++ b/spec/controllers/org_projects_controller_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe OrgProjectsController, :type => :controller do
+
+end
diff --git a/spec/controllers/organizations_controller_spec.rb b/spec/controllers/organizations_controller_spec.rb
new file mode 100644
index 000000000..cf00f4cf9
--- /dev/null
+++ b/spec/controllers/organizations_controller_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe OrganizationsController, :type => :controller do
+
+end
diff --git a/spec/factories/org_activities.rb b/spec/factories/org_activities.rb
new file mode 100644
index 000000000..552ea70f9
--- /dev/null
+++ b/spec/factories/org_activities.rb
@@ -0,0 +1,6 @@
+FactoryGirl.define do
+ factory :org_activity do
+
+ end
+
+end
diff --git a/spec/factories/org_document_comments.rb b/spec/factories/org_document_comments.rb
new file mode 100644
index 000000000..206c471aa
--- /dev/null
+++ b/spec/factories/org_document_comments.rb
@@ -0,0 +1,11 @@
+FactoryGirl.define do
+ factory :org_document_comment do
+ title "MyString"
+content "MyText"
+organization_id 1
+creator_id 1
+parent_id 1
+reply_id 1
+ end
+
+end
diff --git a/spec/factories/org_members.rb b/spec/factories/org_members.rb
new file mode 100644
index 000000000..90997fd30
--- /dev/null
+++ b/spec/factories/org_members.rb
@@ -0,0 +1,8 @@
+FactoryGirl.define do
+ factory :org_member do
+ user_id 1
+organization_id 1
+role "MyString"
+ end
+
+end
diff --git a/spec/models/org_activity_spec.rb b/spec/models/org_activity_spec.rb
new file mode 100644
index 000000000..e452fe172
--- /dev/null
+++ b/spec/models/org_activity_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe OrgActivity, :type => :model do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/models/org_document_comment_spec.rb b/spec/models/org_document_comment_spec.rb
new file mode 100644
index 000000000..ba5dd15a4
--- /dev/null
+++ b/spec/models/org_document_comment_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe OrgDocumentComment, :type => :model do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/models/org_member_spec.rb b/spec/models/org_member_spec.rb
new file mode 100644
index 000000000..e7058e5b3
--- /dev/null
+++ b/spec/models/org_member_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe OrgMember, :type => :model do
+ pending "add some examples to (or delete) #{__FILE__}"
+end