This commit is contained in:
Tim 2015-11-11 17:16:37 +08:00
commit aed305f5bf
12 changed files with 147 additions and 30 deletions

View File

@ -607,6 +607,13 @@ class ProjectsController < ApplicationController
@project.organization_id = params[:organization_id] @project.organization_id = params[:organization_id]
params[:project][:is_public] ? @project.is_public = 1 : @project.is_public = 0 params[:project][:is_public] ? @project.is_public = 1 : @project.is_public = 0
params[:project][:hidden_repo] ? @project.hidden_repo = 1 : @project.hidden_repo = 0 params[:project][:hidden_repo] ? @project.hidden_repo = 1 : @project.hidden_repo = 0
# 更新公开私有时同步gitlab公开私有
unless @project.gpid.nil?
g = Gitlab.client
gproject = g.project(@project.gpid)
params[:project][:is_public] ? g.edit_project(gproject.id, 20) : g.edit_project(gproject.id, 0)
end
# end
if validate_parent_id && @project.save if validate_parent_id && @project.save
@project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id') @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
if params[:project][:is_public] == '0' if params[:project][:is_public] == '0'

View File

@ -6,7 +6,7 @@
:id => '_file', :id => '_file',
:class => ie8? ? '':'file_selector', :class => ie8? ? '':'file_selector',
:multiple => true, :multiple => true,
:onchange => 'addInputFilesCourseSource(this,"'+ checkBox.to_s+'");', :onchange => 'addInputFilesCourseSource(this,"'+ checkBox.to_s+'","'+'submit_resource'+'");',
:style => ie8? ? '': 'display:none', :style => ie8? ? '': 'display:none',
:data => { :data => {
:max_file_size => Setting.attachment_max_size.to_i.kilobytes, :max_file_size => Setting.attachment_max_size.to_i.kilobytes,

View File

@ -5,7 +5,7 @@
:id => "_file#{container.id}", :id => "_file#{container.id}",
:class => ie8? ? '':'file_selector', :class => ie8? ? '':'file_selector',
:multiple => true, :multiple => true,
:onchange => "addInputFiles_board(this, '#{container.id}');", :onchange => "addInputFiles_board(this, '#{container.id}','"+"submit_resource"+"');",
:style => ie8? ? '': 'display:none', :style => ie8? ? '': 'display:none',
:data => { :data => {
:max_file_size => Setting.attachment_max_size.to_i.kilobytes, :max_file_size => Setting.attachment_max_size.to_i.kilobytes,

View File

@ -22,9 +22,10 @@
<%= render :partial => 'files/new_style_attachment_list',:locals => {:container => course} %> <%= render :partial => 'files/new_style_attachment_list',:locals => {:container => course} %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<a href="javascript:void(0);" class=" fr grey_btn mr40" onclick="hideModal();"><%= l(:button_cancel)%></a>
<a id="submit_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%= l(:button_confirm)%></a>
<a href="javascript:void(0);" class=" fr grey_btn mr40" onclick="hideModal();"><%= l(:button_cancel)%></a>
<!--<a id="submit_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%#= l(:button_confirm)%></a>-->
<%= submit_tag '确定',:onclick=>'submit_resource();',:onfocus=>'this.blur()',:id=>'submit_resource',:class=>'sendSourceText fr' %>
<% end %> <% end %>
</div> </div>

View File

@ -11,7 +11,8 @@
<%= render :partial => 'attachement_list',:locals => {:course => course} %> <%= render :partial => 'attachement_list',:locals => {:course => course} %>
<div class="cl"></div> <div class="cl"></div>
<a href="javascript:void(0);" class=" fr grey_btn mr40" onclick="closeModal();"><%= l(:button_cancel)%></a> <a href="javascript:void(0);" class=" fr grey_btn mr40" onclick="closeModal();"><%= l(:button_cancel)%></a>
<a id="submit_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%= l(:button_confirm)%></a> <!--<a id="submit_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%#= l(:button_confirm)%></a>-->
<%= submit_tag '确定',:onclick=>'submit_resource();',:onfocus=>'this.blur()',:id=>'submit_resource',:class=>'sendSourceText fr' %>
<% end %> <% end %>
</div> </div>

View File

@ -7,7 +7,7 @@
:id => '_file', :id => '_file',
:class => ie8? ? '':'file_selector', :class => ie8? ? '':'file_selector',
:multiple => true, :multiple => true,
:onchange => 'addInputFiles(this);', :onchange => 'addInputFiles(this,"'+'upload_files_submit_btn'+'");',
:style => ie8? ? '': 'display:none', :style => ie8? ? '': 'display:none',
:data => { :data => {
:max_file_size => Setting.attachment_max_size.to_i.kilobytes, :max_file_size => Setting.attachment_max_size.to_i.kilobytes,

View File

@ -0,0 +1,61 @@
<div class="mt10">
<span id="attachments_fields" class="attachments_fields">
<% if defined?(container) && container && container.saved_attachments %>
<% container.attachments.each_with_index do |attachment, i| %>
<span id="attachments_p<%= i %>">
<%= text_field_tag("attachments[p#{i}][filename]", attachment.filename, :class => 'filename link_file', :readonly=>'readonly')%>
<%= text_field_tag("attachments[p#{i}][description]", attachment.description, :maxlength => 254, :placeholder => l(:label_optional_description), :class => 'description', :style=>"display: inline-block;") %>
<span class="ispublic-label"><%= l(:field_is_public)%>:</span>
<%= check_box_tag("attachments[p#{i}][is_public_checkbox]", attachment.is_public,attachment.is_public == 1 ? true : false,:class => 'is_public')%>
<%= link_to('&nbsp;'.html_safe, attachment_path(attachment, :attachment_id => "p#{i}", :format => 'js'), :method => 'delete', :remote => true, :class => 'remove-upload') unless attachment.id.nil? %>
<%= hidden_field_tag "attachments[p#{i}][token]", "#{attachment.token}" %>
</span>
<div class="cl"></div>
<% end %>
<% container.saved_attachments.each_with_index do |attachment, i| %>
<span id="attachments_p<%= i %>">
<%= text_field_tag("attachments[p#{i}][filename]", attachment.filename, :class => 'filename readonly', :readonly=>'readonly')%>
<%= text_field_tag("attachments[p#{i}][description]", attachment.description, :maxlength => 254, :placeholder => l(:label_optional_description), :class => 'description', :style=>"display: inline-block;") %>
<span class="ispublic-label"><%= l(:field_is_public)%>:</span>
<%= check_box_tag("attachments[p#{i}][is_public_checkbox]", attachment.is_public,attachment.is_public == 1 ? true : false,:class => 'is_public')%>
<%= link_to('&nbsp;'.html_safe, attachment_path(attachment, :attachment_id => "p#{i}", :format => 'js'), :method => 'delete', :remote => true, :class => 'remove-upload') unless attachment.id.nil? %>
<%= hidden_field_tag "attachments[p#{i}][token]", "#{attachment.token}" %>
</span>
<div class="cl"></div>
<% end %>
<% end %>
</span>
<%= file_field_tag 'attachments[dummy][file]',
:id => '_file',
:class => ie8? ? '' : 'file_selector',
:multiple => true,
:onchange => 'addInputFiles(this,"'+'upload_files_submit_btn'+'");',
:style => ie8? ? '' : 'display:none',
:data => {
:max_file_size => Setting.attachment_max_size.to_i.kilobytes,
:max_file_size_message => l(:error_attachment_too_big, :max_size => number_to_human_size(Setting.attachment_max_size.to_i.kilobytes)),
:max_concurrent_uploads => Redmine::Configuration['max_concurrent_ajax_uploads'].to_i,
:upload_path => uploads_path(:format => 'js',:project =>nil),
:description_placeholder => l(:label_optional_description),
:field_is_public => l(:field_is_public),
:are_you_sure => l(:text_are_you_sure),
:file_count => l(:label_file_count),
:lebel_file_uploding => l(:lebel_file_uploding),
:delete_all_files => l(:text_are_you_sure_all)
} %>
</div>
<div class="cl"></div>
<div class="mt5 fl">
<!-- , user_import_resource_user_path(User.current.id,:homework_id=>container.id) -->
<a href="javascript:void(0);" class="AnnexBtn fl mt3 mr20" onclick="$('#_file').click();">上传附件</a>
<%= link_to "资源库",{:controller => 'users',:action=>'user_import_resource',:id=>User.current.id,:homework_id=>container.id},:class => "FilesBtn fl mt3 mr20",:remote => true%>
<% if defined?(has_program) && has_program %>
<a href="javascript:void(0);" class="ProBtn fl mt3">编程</a>
<span class="fl C_lgrey mt3 program_detail_info"></span>
<% end %>
</div>
<% content_for :header_tags do %>
<%= javascript_include_tag 'attachments' %>
<% end %>

View File

@ -45,9 +45,9 @@
<div style="margin-top: 10px" > <div style="margin-top: 10px" >
<div class="courseSendSubmit"> <div class="courseSendSubmit">
<!--<a href="javascript:void(0);" class="sendSourceText" onclick="">确定</a>--> <!--<a href="javascript:void(0);" class="sendSourceText" onclick="">确定</a>-->
<%= submit_tag '确定',:onclick=>'submit_files();',:onfocus=>'this.blur()',:class=>'sendSourceText' %> <%= submit_tag '确定',:onclick=>'submit_files();',:onfocus=>'this.blur()',:id=>'upload_files_submit_btn',:class=>'sendSourceText' %>
</div> </div>
<div class="courseSendCancel"><a href="javascript:void(0);" class="sendSourceText" onclick="closeModal();">取消</a></div> <div class="courseSendCancel"><a href="javascript:void(0);" id="upload_files_cancle_btn" class="sendSourceText" onclick="closeModal();">取消</a></div>
</div> </div>
<% end %> <% end %>
<div class="cl"></div> <div class="cl"></div>

View File

@ -72,6 +72,23 @@ class Gitlab::Client
post(url, :body => {:name => name}.merge(options)) post(url, :body => {:name => name}.merge(options))
end end
# Updates a project team member to a specified access level.
# id (required) - The ID of a project
# name (optional) - project name
# path (optional) - repository name for project
# description (optional) - short project description
# default_branch (optional)
# issues_enabled (optional)
# merge_requests_enabled (optional)
# wiki_enabled (optional)
# snippets_enabled (optional)
# public (optional) - if true same as setting visibility_level = 20
# visibility_level (optional)
def edit_project(id, visibility_level)
put("/projects/#{id}", :body => {:visibility_level => visibility_level})
end
# Deletes a project. # Deletes a project.
# #
# @example # @example

View File

@ -10,6 +10,9 @@ module Trustie
DEVELOPER = 30 DEVELOPER = 30
MASTER = 40 MASTER = 40
OWNER = 50 OWNER = 50
# 项目公开和私有
PUBLIC = 20
PRIVATE = 0
end end
class Sync class Sync
@ -45,7 +48,8 @@ module Trustie
issues_enabled: false, issues_enabled: false,
snippets_enabled: false, snippets_enabled: false,
public: false, public: false,
user_id: gid user_id: gid,
visibility_level: project.is_public? ? UserLevel::PUBLIC : UserLevel::PRIVATE
) )
project.gpid = gproject.id project.gpid = gproject.id
project.save! project.save!
@ -84,7 +88,8 @@ module Trustie
merge_requests_enabled: true, merge_requests_enabled: true,
public: false, public: false,
user_id: gid, user_id: gid,
import_url: import_url import_url: import_url,
visibility_level: project.is_public? ? UserLevel::PUBLIC : UserLevel::PRIVATE
) )
puts "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" puts "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
project.gpid = gproject.id project.gpid = gproject.id

View File

@ -22,7 +22,7 @@ function reload(fileSpan) {
} }
function addFile_board(inputEl, file, eagerUpload, id) { function addFile_board(inputEl, file, eagerUpload, id,btnId) {
var attachments_frame = '#attachments_fields' + id; var attachments_frame = '#attachments_fields' + id;
if ($(attachments_frame).children().length < 30) { if ($(attachments_frame).children().length < 30) {
@ -80,7 +80,7 @@ function addFile_board(inputEl, file, eagerUpload, id) {
).appendTo(attachments_frame); ).appendTo(attachments_frame);
if (eagerUpload) { if (eagerUpload) {
ajaxUpload(file, attachmentId, fileSpan, inputEl); ajaxUpload(file, attachmentId, fileSpan, inputEl,btnId);
} }
return attachmentId; return attachmentId;
@ -88,7 +88,7 @@ function addFile_board(inputEl, file, eagerUpload, id) {
return null; return null;
} }
function addFile(inputEl, file, eagerUpload) { function addFile(inputEl, file, eagerUpload,btnId) {
var attachments_frame = '#attachments_fields'; var attachments_frame = '#attachments_fields';
if ($(attachments_frame).children().length < 30) { if ($(attachments_frame).children().length < 30) {
@ -145,7 +145,7 @@ function addFile(inputEl, file, eagerUpload) {
).appendTo('#attachments_fields'); ).appendTo('#attachments_fields');
if (eagerUpload) { if (eagerUpload) {
ajaxUpload(file, attachmentId, fileSpan, inputEl); ajaxUpload(file, attachmentId, fileSpan, inputEl,btnId);
} }
return attachmentId; return attachmentId;
@ -154,7 +154,7 @@ function addFile(inputEl, file, eagerUpload) {
} }
addFile.nextAttachmentId = 1; addFile.nextAttachmentId = 1;
function ajaxUpload(file, attachmentId, fileSpan, inputEl) { function ajaxUpload(file, attachmentId, fileSpan, inputEl,btnId) {
function onLoadstart(e) { function onLoadstart(e) {
fileSpan.removeClass('ajax-waiting'); fileSpan.removeClass('ajax-waiting');
@ -168,7 +168,7 @@ function ajaxUpload(file, attachmentId, fileSpan, inputEl) {
} }
} }
function actualUpload(file, attachmentId, fileSpan, inputEl) { function actualUpload(file, attachmentId, fileSpan, inputEl,btnId) {
ajaxUpload.uploading++; ajaxUpload.uploading++;
@ -182,9 +182,15 @@ function ajaxUpload(file, attachmentId, fileSpan, inputEl) {
console.log($(inputEl)) console.log($(inputEl))
if(containerid == undefined ){ if(containerid == undefined ){
var count = $('#attachments_fields>span').length; var count = $('#attachments_fields>span').length;
$('#'+btnId).removeAttr("disabled");
$('#'+btnId).val('确定')
$('#'+btnId).css('background-color','#269ac9')
$('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount')); $('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount'));
} }
else{ else{
$('#'+btnId).removeAttr("disabled");
$('#'+btnId).val('确定')
$('#'+btnId).css('background-color','#269ac9')
var count = $('#attachments_fields' + containerid + '>span').length; var count = $('#attachments_fields' + containerid + '>span').length;
$('#upload_file_count' + containerid).html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount')); $('#upload_file_count' + containerid).html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount'));
} }
@ -213,6 +219,9 @@ function ajaxUpload(file, attachmentId, fileSpan, inputEl) {
var containerid = $(inputEl).data('containerid'); var containerid = $(inputEl).data('containerid');
if (containerid == undefined) { if (containerid == undefined) {
var count = $('#attachments_fields>span').length; var count = $('#attachments_fields>span').length;
$('#'+btnId).attr("disabled",true);
$('#'+btnId).val('提交中');
$('#'+btnId).css('background-color','#c1c1c1')
$('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('lebelFileUploding')); $('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('lebelFileUploding'));
if (count >= 1) { if (count >= 1) {
var add_attachs = $('.add_attachment'); var add_attachs = $('.add_attachment');
@ -227,6 +236,9 @@ function ajaxUpload(file, attachmentId, fileSpan, inputEl) {
} }
} else { } else {
var count = $('#attachments_fields' + containerid + '>span').length; var count = $('#attachments_fields' + containerid + '>span').length;
$('#'+btnId).attr("disabled",true);
$('#'+btnId).val('提交中');
$('#'+btnId).css('background-color','#c1c1c1')
$('#upload_file_count' + containerid).html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('lebelFileUploding')); $('#upload_file_count' + containerid).html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('lebelFileUploding'));
if (count >= 1) { if (count >= 1) {
var add_attachs = $('.add_attachment').filter(function(index) { var add_attachs = $('.add_attachment').filter(function(index) {
@ -258,7 +270,7 @@ function ajaxUpload(file, attachmentId, fileSpan, inputEl) {
var maxSyncUpload = $(inputEl).data('max-concurrent-uploads'); var maxSyncUpload = $(inputEl).data('max-concurrent-uploads');
if (maxSyncUpload == null || maxSyncUpload <= 0 || ajaxUpload.uploading < maxSyncUpload) if (maxSyncUpload == null || maxSyncUpload <= 0 || ajaxUpload.uploading < maxSyncUpload)
actualUpload(file, attachmentId, fileSpan, inputEl); actualUpload(file, attachmentId, fileSpan, inputEl,btnId);
else else
$(inputEl).parents('form').queue('upload', actualUpload.bind(this, file, attachmentId, fileSpan, inputEl)); $(inputEl).parents('form').queue('upload', actualUpload.bind(this, file, attachmentId, fileSpan, inputEl));
} }
@ -323,11 +335,11 @@ function uploadBlob(blob, uploadUrl, attachmentId, options) {
}); });
} }
function addInputFiles(inputEl) { function addInputFiles(inputEl,btnId) {
// var clearedFileInput = $(inputEl).clone().val(''); // var clearedFileInput = $(inputEl).clone().val('');
if (inputEl.files) { if (inputEl.files) {
// upload files using ajax // upload files using ajax
uploadAndAttachFiles(inputEl.files, inputEl); uploadAndAttachFiles(inputEl.files, inputEl,btnId);
// $(inputEl).remove(); // $(inputEl).remove();
} else { } else {
// browser not supporting the file API, upload on form submission // browser not supporting the file API, upload on form submission
@ -349,12 +361,12 @@ function addInputFiles(inputEl) {
//clearedFileInput.insertAfter('#attachments_fields'); //clearedFileInput.insertAfter('#attachments_fields');
} }
function addInputFiles_board(inputEl, id) { function addInputFiles_board(inputEl, id,btnId) {
// var clearedFileInput = $(inputEl).clone().val(''); // var clearedFileInput = $(inputEl).clone().val('');
if (inputEl.files) { if (inputEl.files) {
// upload files using ajax // upload files using ajax
uploadAndAttachFiles_board(inputEl.files, inputEl, id); uploadAndAttachFiles_board(inputEl.files, inputEl, id,btnId);
// $(inputEl).remove(); // $(inputEl).remove();
} else { } else {
// browser not supporting the file API, upload on form submission // browser not supporting the file API, upload on form submission
@ -374,7 +386,7 @@ function addInputFiles_board(inputEl, id) {
//clearedFileInput.insertAfter('#attachments_fields'); //clearedFileInput.insertAfter('#attachments_fields');
} }
function uploadAndAttachFiles(files, inputEl) { function uploadAndAttachFiles(files, inputEl,btnId) {
var maxFileSize = $(inputEl).data('max-file-size'); var maxFileSize = $(inputEl).data('max-file-size');
var maxFileSizeExceeded = $(inputEl).data('max-file-size-message'); var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');
@ -389,12 +401,12 @@ function uploadAndAttachFiles(files, inputEl) {
window.alert(maxFileSizeExceeded); window.alert(maxFileSizeExceeded);
} else { } else {
$.each(files, function() { $.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 maxFileSize = $(inputEl).data('max-file-size');
var maxFileSizeExceeded = $(inputEl).data('max-file-size-message'); var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');
@ -409,7 +421,7 @@ function uploadAndAttachFiles_board(files, inputEl, id) {
window.alert(maxFileSizeExceeded); window.alert(maxFileSizeExceeded);
} else { } else {
$.each(files, function() { $.each(files, function() {
addFile_board(inputEl, this, true, id); addFile_board(inputEl, this, true, id,btnId);
}); });
} }
} }
@ -482,10 +494,11 @@ $(function() {
//课程课件 //课程课件
function addInputFilesCourseSource(inputEl) { function addInputFilesCourseSource(inputEl) {
checkBox = arguments[1] == 'public' ? false : true; checkBox = arguments[1] == 'public' ? false : true;
btnId = arguments[2];
// var clearedFileInput = $(inputEl).clone().val(''); // var clearedFileInput = $(inputEl).clone().val('');
if (inputEl.files) { if (inputEl.files) {
// upload files using ajax // upload files using ajax
uploadAndAttachFilesCourseSource(inputEl.files, inputEl,checkBox); uploadAndAttachFilesCourseSource(inputEl.files, inputEl,checkBox,btnId);
// $(inputEl).remove(); // $(inputEl).remove();
} else { } else {
// browser not supporting the file API, upload on form submission // browser not supporting the file API, upload on form submission
@ -507,7 +520,7 @@ function addInputFilesCourseSource(inputEl) {
//clearedFileInput.insertAfter('#attachments_fields'); //clearedFileInput.insertAfter('#attachments_fields');
} }
function uploadAndAttachFilesCourseSource(files, inputEl,checkBox) { function uploadAndAttachFilesCourseSource(files, inputEl,checkBox,btnId) {
var maxFileSize = $(inputEl).data('max-file-size'); var maxFileSize = $(inputEl).data('max-file-size');
var maxFileSizeExceeded = $(inputEl).data('max-file-size-message'); var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');
@ -522,12 +535,12 @@ function uploadAndAttachFilesCourseSource(files, inputEl,checkBox) {
window.alert(maxFileSizeExceeded); window.alert(maxFileSizeExceeded);
} else { } else {
$.each(files, function() { $.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'; var attachments_frame = '#attachments_fields';
if ($(attachments_frame).children().length < 30) { if ($(attachments_frame).children().length < 30) {
@ -606,7 +619,7 @@ function addFileCourseSource(inputEl, file, eagerUpload,checkBox) {
} }
if (eagerUpload) { if (eagerUpload) {
ajaxUpload(file, attachmentId, fileSpan, inputEl); ajaxUpload(file, attachmentId, fileSpan, inputEl,btnId);
} }
return attachmentId; return attachmentId;

View File

@ -1128,3 +1128,15 @@ a.postRouteLink:hover {text-decoration:underline;}
.syllabusSettingIcon:hover {cursor: pointer} .syllabusSettingIcon:hover {cursor: pointer}
.pic_files{display:block; background:url(../images/public_icon.png) 0px -578px no-repeat; width:20px; height:15px;} .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;
}