Merge branch 'develop' into yuanke
This commit is contained in:
commit
3a46a409a9
|
@ -33,3 +33,4 @@ vendor/cache
|
|||
/tags
|
||||
/config/initializers/gitlab_config.rb
|
||||
1234567
|
||||
public/javascripts/wechat/node_modules/
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#coding=utf-8
|
||||
|
||||
module Mobile
|
||||
require_relative 'middleware/error_handler'
|
||||
require_relative 'apis/auth'
|
||||
|
@ -29,16 +31,22 @@ module Mobile
|
|||
end
|
||||
|
||||
def authenticate!
|
||||
raise('Unauthorized. Invalid or expired token.') unless current_user
|
||||
raise('Unauthorized. 用户认证失败.') unless current_user
|
||||
end
|
||||
|
||||
def current_user
|
||||
openid = params[:openid]
|
||||
if openid
|
||||
uw = UserWechat.find_by_openid(params[:openid])
|
||||
return uw.user if uw
|
||||
end
|
||||
|
||||
token = ApiKey.where(access_token: params[:token]).first
|
||||
if token && !token.expired?
|
||||
@current_user = User.find(token.user_id)
|
||||
else
|
||||
nil
|
||||
return User.find(token.user_id)
|
||||
end
|
||||
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -12,7 +12,9 @@ module Mobile
|
|||
requires :openid, type: String
|
||||
end
|
||||
post do
|
||||
user = UserWechat.find_by_openid(params[:openid]).user
|
||||
authenticate!
|
||||
|
||||
user = current_user
|
||||
|
||||
shield_project_ids = ShieldActivity.select("shield_id").where("container_type='User' and container_id=#{user.id} and shield_type='Project'").map(&:shield_id)
|
||||
shield_course_ids = ShieldActivity.select("shield_id").where("container_type='User' and container_id=#{user.id} and shield_type='Course'").map(&:shield_id)
|
||||
|
|
|
@ -97,7 +97,6 @@ module Mobile
|
|||
|
||||
desc "加入课程"
|
||||
params do
|
||||
requires :token, type: String
|
||||
requires :course_password, type: String
|
||||
end
|
||||
post ":id" do
|
||||
|
|
|
@ -106,7 +106,7 @@ class WordsController < ApplicationController
|
|||
elsif @journal_destroyed.jour_type == 'HomeworkCommon'
|
||||
@homework = HomeworkCommon.find @journal_destroyed.jour_id
|
||||
if params[:user_activity_id]
|
||||
@user_activity_id = params[:user_activity_id]
|
||||
@user_activity_id = params[:user_activity_id].to_i
|
||||
else
|
||||
@user_activity_id = -1
|
||||
end
|
||||
|
|
|
@ -24,8 +24,10 @@
|
|||
<ul class="st_box_top">
|
||||
<li class="ml50" style="padding-right: 5px;"><span class="fontGrey6 fb">姓名</span></li>
|
||||
<li class="ml10" style="padding-right: 15px;"><span class="fontGrey6 fb">学号</span></li>
|
||||
<li style="padding-right: 55px; margin-left: 160px;"><span class="fontGrey6 fb">分班</span></li>
|
||||
<li class="st_list_score ml10">
|
||||
<% unless @course.course_groups.empty? %>
|
||||
<li style="padding-right: 55px; margin-left: 160px;"><span class="fontGrey6 fb">分班</span></li>
|
||||
<% end %>
|
||||
<li class="st_list_score <%= @course.course_groups.empty? ? 'ml250' : 'ml10' %>">
|
||||
<%= link_to '英雄榜', member_score_sort_course_path(:sort_type => 'score', :sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? @group.id : 0),:search_name => (@search_name ? @search_name : nil)) ,:result => members,method: 'get', remote: true, :class => 'ml35'%>
|
||||
<% if @sort_type == "score" && @score_sort_by == 'desc' %>
|
||||
<a id="pic" href="javascript:" class= "st_down"></a>
|
||||
|
@ -59,31 +61,33 @@
|
|||
<li><%= link_to("#{l(:label_bidding_user_studentcode)}:<span >#{member.user.user_extensions.student_id}</span>".html_safe,user_path(member.user)) %></li>
|
||||
<% end%>
|
||||
</ul>
|
||||
<% if User.current.allowed_to?(:as_teacher, @course) || User.current.admin? %>
|
||||
<% if @course.course_groups.nil? || @group %>
|
||||
<% unless @course.course_groups.empty? %>
|
||||
<% if User.current.allowed_to?(:as_teacher, @course) || User.current.admin? %>
|
||||
<% if @course.course_groups.nil? || @group %>
|
||||
<div class="select-class-option fl" style="margin-left: 5px;">
|
||||
<span style="width: 100px; text-align: center; float: left;" class="hidden"><%=member.course_group_id == 0 ? "暂无" : member.course_group.name %></span>
|
||||
</div>
|
||||
<% else %>
|
||||
<%= form_tag({:controller => 'courses', :action => 'teacher_assign_group', :id => @course.id,:user_id => member.user_id},:remote=>'true', :method => 'post', :id=>"join_group_form_#{member.id}", :class => 'query_form') do %>
|
||||
<div class="select-class-option fl" style="margin-left: 5px;"><span style="width: 100px; text-align: center; float: left;" class="hidden"><%=member.course_group_id == 0 ? "暂无" : member.course_group.name %></span>
|
||||
<a style="display: inline-block;" href="javascript:void(0)" class="pic_edit2 ml5"></a>
|
||||
</div>
|
||||
<%= select( :name,:group_id, course_group_option(@course),
|
||||
{ :include_blank => false,:selected => member.course_group_id},
|
||||
{:onchange=>"join_group_function('#join_group_form_#{member.id}');", :id =>"course_group_id", :name => "course_group_id",:class=>"w125 undis class-edit fl", :style => "margin-left: 5px;"}) %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<div class="select-class-option fl" style="margin-left: 5px;">
|
||||
<span style="width: 100px; text-align: center; float: left;" class="hidden"><%=member.course_group_id == 0 ? "暂无" : member.course_group.name %></span>
|
||||
</div>
|
||||
<% else %>
|
||||
<%= form_tag({:controller => 'courses', :action => 'teacher_assign_group', :id => @course.id,:user_id => member.user_id},:remote=>'true', :method => 'post', :id=>"join_group_form_#{member.id}", :class => 'query_form') do %>
|
||||
<div class="select-class-option fl" style="margin-left: 5px;"><span style="width: 100px; text-align: center; float: left;" class="hidden"><%=member.course_group_id == 0 ? "暂无" : member.course_group.name %></span>
|
||||
<a style="display: inline-block;" href="javascript:void(0)" class="pic_edit2 ml5"></a>
|
||||
</div>
|
||||
<%= select( :name,:group_id, course_group_option(@course),
|
||||
{ :include_blank => false,:selected => member.course_group_id},
|
||||
{:onchange=>"join_group_function('#join_group_form_#{member.id}');", :id =>"course_group_id", :name => "course_group_id",:class=>"w125 undis class-edit fl", :style => "margin-left: 5px;"}) %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<div class="select-class-option fl" style="margin-left: 5px;">
|
||||
<span style="width: 100px; text-align: center; float: left;" class="hidden"><%=member.course_group_id == 0 ? "暂无" : member.course_group.name %></span>
|
||||
</div>
|
||||
<% end %>
|
||||
<%= link_to format("%0.2f",member.score.nil? ? 0 : member.score.to_s), {
|
||||
:action => 'show_member_score',
|
||||
:member_id => member.id,
|
||||
:remote => true},
|
||||
:class => 'st_list_score c_red' %>
|
||||
:class => "st_list_score c_red #{@course.course_groups.empty? ? 'ml130' : ''}" %>
|
||||
<%= link_to member.act_score.nil? ? 0 : member.act_score.to_s, {
|
||||
:action => 'show_member_act_score',
|
||||
:member_id => member.id,
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
<% when 'Message' %>
|
||||
<%= render :partial => 'users/project_message', :locals => {:activity => Message.find(act.org_act_id),:user_activity_id =>act.id, :is_course=>0, :is_board=>0} %>
|
||||
<% when 'Project'%>
|
||||
<%= render :partial => 'users/project_create', :locals => {:activity => act,:user_activity_id =>act.id} %>
|
||||
<%= render :partial => 'organizations/project_create', :locals => {:activity => act,:user_activity_id =>act.id} %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% if act.container_type == 'Course' %>
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
<% if @subfield_acts.blank? %>
|
||||
<p class="fontGrey2 f14 mt10 mb5">该模块暂时没有相关内容</p>
|
||||
<% else %>
|
||||
<div class="sn-inner-body">
|
||||
<div class="sn-innner-content">
|
||||
<div class="sn-row sn-bg-white">
|
||||
<div class="sn-font-grey3 f14">
|
||||
您的位置:<%= link_to "首页", organization_path(@organization), :class => "sn-link-grey2" %> >
|
||||
<a class = "sn-link-grey2"><%= @org_subfield.name %></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sn-inner-body">
|
||||
<div class="sn-innner-content">
|
||||
<div class="sn-row sn-bg-white">
|
||||
<div class="sn-font-grey3 f14">
|
||||
您的位置:<%= link_to "首页", organization_path(@organization), :class => "sn-link-grey2" %> >
|
||||
<a class = "sn-link-grey2"><%= @org_subfield.name %></a>
|
||||
</div>
|
||||
</div>
|
||||
<% if @subfield_acts.blank? %>
|
||||
<p class="fontGrey2 f14 mt10 mb5">该模块暂时没有相关内容</p>
|
||||
<% else %>
|
||||
|
||||
<div class="sn-inner-newslist mt15">
|
||||
<h2 class="sn-inner-newsh2"><%= @org_subfield.name %></h2>
|
||||
<ul>
|
||||
|
@ -34,12 +35,13 @@
|
|||
</ul>
|
||||
|
||||
<!--<div>-->
|
||||
<!--<ul class="sn-inner-pages" id="pages" style="margin-top: 5px;">-->
|
||||
<!--<%#= pagination_links_full @atta_pages, @atta_count, :per_page_links => true, :remote => @is_remote, :flag => true %>-->
|
||||
<!--<div class="cl"></div>-->
|
||||
<!--</ul>-->
|
||||
<!--<ul class="sn-inner-pages" id="pages" style="margin-top: 5px;">-->
|
||||
<!--<%#= pagination_links_full @atta_pages, @atta_count, :per_page_links => true, :remote => @is_remote, :flag => true %>-->
|
||||
<!--<div class="cl"></div>-->
|
||||
<!--</ul>-->
|
||||
<!--</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
<li class="orgListType"><%= org_subfield_type field %></li>
|
||||
<li class="orgListCatalog hidden">
|
||||
<% if Secdomain.where("sub_type=2 and pid=?", @organization.id).count > 0 %>
|
||||
<div id="sub_dir_show_<%= field.id %>" ondblclick="edit_dir('#sub_dir_show_<%= field.id %>','#sub_dir_edit_<%= field.id %>');" style="cursor:pointer;background-color:#fffce6;color: #0d90c3; width:30px; margin-left:20px;" title="双击可编辑">
|
||||
<div id="sub_dir_show_<%= field.id %>" ondblclick="edit_dir('#sub_dir_show_<%= field.id %>','#sub_dir_edit_<%= field.id %>');" style="cursor:pointer;background-color:#fffce6;color: #0d90c3; width:75px;overflow: hidden; white-space: nowrap;text-overflow: ellipsis;" title="双击可编辑">
|
||||
<%= field.subfield_subdomain_dir.nil? ? '未设置': field.subfield_subdomain_dir.name %>
|
||||
</div>
|
||||
<% else %>
|
||||
|
|
|
@ -75,9 +75,9 @@
|
|||
<div class="orgRow mb10 mt5">
|
||||
<span style="margin-left:10px;" >显示模式 : </span>
|
||||
<input type="radio" id="show_mode_ordinary" value="0" name="show_mode" style="margin-left:5px;" <%= @organization.show_mode == 0 ? "checked" : "" %> />
|
||||
<label for="show_mode_ordinary">社区模式一</label>
|
||||
<label for="show_mode_ordinary">简洁模式</label>
|
||||
<input type="radio" id="show_mode_special" value="1" name="show_mode" style="margin-left:10px;" <%= @organization.show_mode == 1 ? "checked" : "" %> />
|
||||
<label for="show_mode_special">社区模式二</label>
|
||||
<label for="show_mode_special">门户模式</label>
|
||||
</div>
|
||||
<div class="orgRow mb10 mt5"><span style="margin-left:38px;" >公开 : </span>
|
||||
<input type="checkbox" id="is_public" onclick="disable_down($(this), $('#allow_download'),$('#allow_down_hint'));" name="organization[is_public]" <%= @organization.is_public ? 'checked': ''%> class="ml3" />
|
||||
|
|
|
@ -63,7 +63,7 @@
|
|||
</span>
|
||||
<!--<a action-type="reply" href="javascript:;" poped="false" class="fr mr20 linkGrey3" title="回复">回复</a>-->
|
||||
<% if User.current.admin? ||is_teacher || comment.user == User.current%>
|
||||
<%= link_to('删除', {:controller => 'words', :action => 'destroy', :object_id => comment, :user_id => comment.user,:is_in_course => is_in_course, :course_activity => course_activity},
|
||||
<%= link_to('删除', {:controller => 'words', :action => 'destroy', :object_id => comment, :user_id => comment.user,:is_in_course => is_in_course, :user_activity_id => user_activity_id, :course_activity => course_activity},
|
||||
:remote => true, :confirm => l(:text_are_you_sure), :method => 'delete', :class => "fr mr20", :title => l(:button_delete)) %>
|
||||
<% end %>
|
||||
</span>
|
||||
|
|
|
@ -6,25 +6,21 @@
|
|||
<meta charset='utf-8' />
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="description" content="" />
|
||||
<meta name="apple-mobile-web-app-capable" content="no">
|
||||
<meta name="apple-mobile-web-app-capable" content="no" />
|
||||
<meta content='True' name='HandheldFriendly' />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
|
||||
|
||||
<link type="text/css" rel="stylesheet" href="/stylesheets/weui/weixin.css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
window.g_openid = '<%= @wechat_user.openid %>';
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div ng-view>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="/javascripts/wechat/angular.js"></script>
|
||||
<script src="/javascripts/wechat/angular-route.js"></script>
|
||||
<script src="/javascripts/wechat/angular-sanitize.min.js"></script>
|
||||
<script src="/javascripts/wechat/angular-cookies.js"></script>
|
||||
<script src="/javascripts/jquery-1.3.2.js"></script>
|
||||
<script src="/javascripts/wechat/build/angular.all.min.js"></script>
|
||||
<script src="/javascripts/wechat/app.js"></script>
|
||||
</body>
|
||||
|
||||
|
|
|
@ -2,19 +2,35 @@ button:
|
|||
-
|
||||
type: "view"
|
||||
name: "我的动态"
|
||||
url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8e1ab05163a28e37&redirect_uri=https://www.trustie.net/wechat/user_activities&response_type=code&scope=snsapi_base&state=123#wechat_redirect"
|
||||
url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf694495398c7d470&redirect_uri=http://wechat.trustie.net/wechat/user_activities&response_type=code&scope=snsapi_base&state=123#wechat_redirect"
|
||||
-
|
||||
type: "click"
|
||||
name: "意见反馈"
|
||||
key: "FEEDBACK"
|
||||
name: "我的课程"
|
||||
sub_button:
|
||||
-
|
||||
type: "view"
|
||||
name: "课程"
|
||||
url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf694495398c7d470&redirect_uri=http://wechat.trustie.net/wechat/user_activities&response_type=code&scope=snsapi_base&state=123#wechat_redirect"
|
||||
-
|
||||
type: "view"
|
||||
name: "资源"
|
||||
url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf694495398c7d470&redirect_uri=http://wechat.trustie.net/wechat/user_activities&response_type=code&scope=snsapi_base&state=123#wechat_redirect"
|
||||
|
||||
-
|
||||
name: "更多"
|
||||
sub_button:
|
||||
-
|
||||
type: "view"
|
||||
name: "进入网站"
|
||||
name: "加入班级"
|
||||
url: "https://www.trustie.net/"
|
||||
-
|
||||
type: "view"
|
||||
name: "使用手册"
|
||||
url: "https://www.trustie.net/organizations/1/downloads"
|
||||
name: "点名"
|
||||
url: "https://www.trustie.net/organizations/1/downloads"
|
||||
-
|
||||
type: "click"
|
||||
name: "反馈"
|
||||
key: "FEEDBACK"
|
||||
-
|
||||
type: "view"
|
||||
name: "历史推文"
|
||||
url: "http://mp.weixin.qq.com/mp/getmasssendmsg?__biz=MzIwOTM2NDkxMA==#wechat_webview_type=1&wechat_redirect"
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
class UpdateOrgSubfiledDefault < ActiveRecord::Migration
|
||||
def up
|
||||
OrgSubfield.where(:name => "activity").update_all(:status => false)
|
||||
OrgSubfield.where(:name => "course").update_all(:status => 2)
|
||||
OrgSubfield.where(:name => "project").update_all(:status => 2)
|
||||
end
|
||||
|
||||
def down
|
||||
end
|
||||
end
|
|
@ -0,0 +1,8 @@
|
|||
class UpdateOrgSubfiledResource < ActiveRecord::Migration
|
||||
def up
|
||||
OrgSubfield.where(:field_type => "Resource").update_all(:status => 6)
|
||||
end
|
||||
|
||||
def down
|
||||
end
|
||||
end
|
410
db/schema.rb
410
db/schema.rb
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended to check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(:version => 20160606064856) do
|
||||
ActiveRecord::Schema.define(:version => 20160612043259) do
|
||||
|
||||
create_table "activities", :force => true do |t|
|
||||
t.integer "act_id", :null => false
|
||||
|
@ -52,28 +52,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
add_index "api_keys", ["access_token"], :name => "index_api_keys_on_access_token"
|
||||
add_index "api_keys", ["user_id"], :name => "index_api_keys_on_user_id"
|
||||
|
||||
create_table "application_settings", :force => true do |t|
|
||||
t.integer "default_projects_limit"
|
||||
t.boolean "signup_enabled"
|
||||
t.boolean "signin_enabled"
|
||||
t.boolean "gravatar_enabled"
|
||||
t.text "sign_in_text"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.string "home_page_url"
|
||||
t.integer "default_branch_protection", :default => 2
|
||||
t.boolean "twitter_sharing_enabled", :default => true
|
||||
t.text "restricted_visibility_levels"
|
||||
t.boolean "version_check_enabled", :default => true
|
||||
t.integer "max_attachment_size", :default => 10, :null => false
|
||||
t.integer "default_project_visibility"
|
||||
t.integer "default_snippet_visibility"
|
||||
t.text "restricted_signup_domains"
|
||||
t.boolean "user_oauth_applications", :default => true
|
||||
t.string "after_sign_out_path"
|
||||
t.integer "session_expire_delay", :default => 10080, :null => false
|
||||
end
|
||||
|
||||
create_table "applied_projects", :force => true do |t|
|
||||
t.integer "project_id", :null => false
|
||||
t.integer "user_id", :null => false
|
||||
|
@ -178,20 +156,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
t.string "typeName", :limit => 50
|
||||
end
|
||||
|
||||
create_table "audit_events", :force => true do |t|
|
||||
t.integer "author_id", :null => false
|
||||
t.string "type", :null => false
|
||||
t.integer "entity_id", :null => false
|
||||
t.string "entity_type", :null => false
|
||||
t.text "details"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
add_index "audit_events", ["author_id"], :name => "index_audit_events_on_author_id"
|
||||
add_index "audit_events", ["entity_id", "entity_type"], :name => "index_audit_events_on_entity_id_and_entity_type"
|
||||
add_index "audit_events", ["type"], :name => "index_audit_events_on_type"
|
||||
|
||||
create_table "auth_sources", :force => true do |t|
|
||||
t.string "type", :limit => 30, :default => "", :null => false
|
||||
t.string "name", :limit => 60, :default => "", :null => false
|
||||
|
@ -289,17 +253,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id"
|
||||
add_index "boards", ["project_id"], :name => "boards_project_id"
|
||||
|
||||
create_table "broadcast_messages", :force => true do |t|
|
||||
t.text "message", :null => false
|
||||
t.datetime "starts_at"
|
||||
t.datetime "ends_at"
|
||||
t.integer "alert_type"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.string "color"
|
||||
t.string "font"
|
||||
end
|
||||
|
||||
create_table "bug_to_osps", :force => true do |t|
|
||||
t.integer "osp_id"
|
||||
t.integer "relative_memo_id"
|
||||
|
@ -599,10 +552,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
t.integer "visits", :default => 0
|
||||
end
|
||||
|
||||
add_index "courses", ["id"], :name => "id", :unique => true
|
||||
add_index "courses", ["tea_id"], :name => "tea_id"
|
||||
add_index "courses", ["visits"], :name => "visits"
|
||||
|
||||
create_table "custom_fields", :force => true do |t|
|
||||
t.string "type", :limit => 30, :default => "", :null => false
|
||||
t.string "name", :limit => 30, :default => "", :null => false
|
||||
|
@ -664,15 +613,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
|
||||
add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority"
|
||||
|
||||
create_table "deploy_keys_projects", :force => true do |t|
|
||||
t.integer "deploy_key_id", :null => false
|
||||
t.integer "project_id", :null => false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
add_index "deploy_keys_projects", ["project_id"], :name => "index_deploy_keys_projects_on_project_id"
|
||||
|
||||
create_table "discuss_demos", :force => true do |t|
|
||||
t.string "title"
|
||||
t.text "body"
|
||||
|
@ -722,16 +662,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
t.datetime "created_at"
|
||||
end
|
||||
|
||||
create_table "emails", :force => true do |t|
|
||||
t.integer "user_id", :null => false
|
||||
t.string "email", :null => false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
add_index "emails", ["email"], :name => "index_emails_on_email", :unique => true
|
||||
add_index "emails", ["user_id"], :name => "index_emails_on_user_id"
|
||||
|
||||
create_table "enabled_modules", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.string "name", :null => false
|
||||
|
@ -754,25 +684,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type"
|
||||
add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id"
|
||||
|
||||
create_table "events", :force => true do |t|
|
||||
t.string "target_type"
|
||||
t.integer "target_id"
|
||||
t.string "title"
|
||||
t.text "data"
|
||||
t.integer "project_id"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.integer "action"
|
||||
t.integer "author_id"
|
||||
end
|
||||
|
||||
add_index "events", ["action"], :name => "index_events_on_action"
|
||||
add_index "events", ["author_id"], :name => "index_events_on_author_id"
|
||||
add_index "events", ["created_at"], :name => "index_events_on_created_at"
|
||||
add_index "events", ["project_id"], :name => "index_events_on_project_id"
|
||||
add_index "events", ["target_id"], :name => "index_events_on_target_id"
|
||||
add_index "events", ["target_type"], :name => "index_events_on_target_type"
|
||||
|
||||
create_table "exercise_answers", :force => true do |t|
|
||||
t.integer "user_id"
|
||||
t.integer "exercise_question_id"
|
||||
|
@ -875,15 +786,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
add_index "forge_messages", ["forge_message_id", "forge_message_type"], :name => "index_forge_messages_on_forge_message_id_and_forge_message_type"
|
||||
add_index "forge_messages", ["user_id", "project_id", "created_at"], :name => "index_forge_messages_on_user_id_and_project_id_and_created_at"
|
||||
|
||||
create_table "forked_project_links", :force => true do |t|
|
||||
t.integer "forked_to_project_id", :null => false
|
||||
t.integer "forked_from_project_id", :null => false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
add_index "forked_project_links", ["forked_to_project_id"], :name => "index_forked_project_links_on_forked_to_project_id", :unique => true
|
||||
|
||||
create_table "forums", :force => true do |t|
|
||||
t.string "name", :null => false
|
||||
t.text "description"
|
||||
|
@ -1013,17 +915,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "identities", :force => true do |t|
|
||||
t.string "extern_uid"
|
||||
t.string "provider"
|
||||
t.integer "user_id"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
add_index "identities", ["created_at", "id"], :name => "index_identities_on_created_at_and_id"
|
||||
add_index "identities", ["user_id"], :name => "index_identities_on_user_id"
|
||||
|
||||
create_table "invite_lists", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.integer "user_id"
|
||||
|
@ -1167,20 +1058,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
t.integer "private", :default => 0
|
||||
end
|
||||
|
||||
create_table "keys", :force => true do |t|
|
||||
t.integer "user_id"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.text "key"
|
||||
t.string "title"
|
||||
t.string "type"
|
||||
t.string "fingerprint"
|
||||
t.boolean "public", :default => false, :null => false
|
||||
end
|
||||
|
||||
add_index "keys", ["created_at", "id"], :name => "index_keys_on_created_at_and_id"
|
||||
add_index "keys", ["user_id"], :name => "index_keys_on_user_id"
|
||||
|
||||
create_table "kindeditor_assets", :force => true do |t|
|
||||
t.string "asset"
|
||||
t.integer "file_size"
|
||||
|
@ -1192,27 +1069,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
t.integer "owner_type", :default => 0
|
||||
end
|
||||
|
||||
create_table "label_links", :force => true do |t|
|
||||
t.integer "label_id"
|
||||
t.integer "target_id"
|
||||
t.string "target_type"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
add_index "label_links", ["label_id"], :name => "index_label_links_on_label_id"
|
||||
add_index "label_links", ["target_id", "target_type"], :name => "index_label_links_on_target_id_and_target_type"
|
||||
|
||||
create_table "labels", :force => true do |t|
|
||||
t.string "title"
|
||||
t.string "color"
|
||||
t.integer "project_id"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
add_index "labels", ["project_id"], :name => "index_labels_on_project_id"
|
||||
|
||||
create_table "member_roles", :force => true do |t|
|
||||
t.integer "member_id", :null => false
|
||||
t.integer "role_id", :null => false
|
||||
|
@ -1263,47 +1119,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
t.integer "viewed_count", :default => 0
|
||||
end
|
||||
|
||||
create_table "merge_request_diffs", :force => true do |t|
|
||||
t.string "state"
|
||||
t.text "st_commits", :limit => 2147483647
|
||||
t.text "st_diffs", :limit => 2147483647
|
||||
t.integer "merge_request_id", :null => false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
add_index "merge_request_diffs", ["merge_request_id"], :name => "index_merge_request_diffs_on_merge_request_id", :unique => true
|
||||
|
||||
create_table "merge_requests", :force => true do |t|
|
||||
t.string "target_branch", :null => false
|
||||
t.string "source_branch", :null => false
|
||||
t.integer "source_project_id", :null => false
|
||||
t.integer "author_id"
|
||||
t.integer "assignee_id"
|
||||
t.string "title"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.integer "milestone_id"
|
||||
t.string "state"
|
||||
t.string "merge_status"
|
||||
t.integer "target_project_id", :null => false
|
||||
t.integer "iid"
|
||||
t.text "description"
|
||||
t.integer "position", :default => 0
|
||||
t.datetime "locked_at"
|
||||
end
|
||||
|
||||
add_index "merge_requests", ["assignee_id"], :name => "index_merge_requests_on_assignee_id"
|
||||
add_index "merge_requests", ["author_id"], :name => "index_merge_requests_on_author_id"
|
||||
add_index "merge_requests", ["created_at", "id"], :name => "index_merge_requests_on_created_at_and_id"
|
||||
add_index "merge_requests", ["created_at"], :name => "index_merge_requests_on_created_at"
|
||||
add_index "merge_requests", ["milestone_id"], :name => "index_merge_requests_on_milestone_id"
|
||||
add_index "merge_requests", ["source_branch"], :name => "index_merge_requests_on_source_branch"
|
||||
add_index "merge_requests", ["source_project_id"], :name => "index_merge_requests_on_source_project_id"
|
||||
add_index "merge_requests", ["target_branch"], :name => "index_merge_requests_on_target_branch"
|
||||
add_index "merge_requests", ["target_project_id", "iid"], :name => "index_merge_requests_on_target_project_id_and_iid", :unique => true
|
||||
add_index "merge_requests", ["title"], :name => "index_merge_requests_on_title"
|
||||
|
||||
create_table "message_alls", :force => true do |t|
|
||||
t.integer "user_id"
|
||||
t.integer "message_id"
|
||||
|
@ -1338,39 +1153,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id"
|
||||
add_index "messages", ["parent_id"], :name => "messages_parent_id"
|
||||
|
||||
create_table "milestones", :force => true do |t|
|
||||
t.string "title", :null => false
|
||||
t.integer "project_id", :null => false
|
||||
t.text "description"
|
||||
t.date "due_date"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.string "state"
|
||||
t.integer "iid"
|
||||
end
|
||||
|
||||
add_index "milestones", ["created_at", "id"], :name => "index_milestones_on_created_at_and_id"
|
||||
add_index "milestones", ["due_date"], :name => "index_milestones_on_due_date"
|
||||
add_index "milestones", ["project_id", "iid"], :name => "index_milestones_on_project_id_and_iid", :unique => true
|
||||
add_index "milestones", ["project_id"], :name => "index_milestones_on_project_id"
|
||||
|
||||
create_table "namespaces", :force => true do |t|
|
||||
t.string "name", :null => false
|
||||
t.string "path", :null => false
|
||||
t.integer "owner_id"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.string "type"
|
||||
t.string "description", :default => "", :null => false
|
||||
t.string "avatar"
|
||||
end
|
||||
|
||||
add_index "namespaces", ["created_at", "id"], :name => "index_namespaces_on_created_at_and_id"
|
||||
add_index "namespaces", ["name"], :name => "index_namespaces_on_name", :unique => true
|
||||
add_index "namespaces", ["owner_id"], :name => "index_namespaces_on_owner_id"
|
||||
add_index "namespaces", ["path"], :name => "index_namespaces_on_path", :unique => true
|
||||
add_index "namespaces", ["type"], :name => "index_namespaces_on_type"
|
||||
|
||||
create_table "news", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.string "title", :limit => 60, :default => "", :null => false
|
||||
|
@ -1396,31 +1178,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "notes", :force => true do |t|
|
||||
t.text "note"
|
||||
t.string "noteable_type"
|
||||
t.integer "author_id"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.integer "project_id"
|
||||
t.string "attachment"
|
||||
t.string "line_code"
|
||||
t.string "commit_id"
|
||||
t.integer "noteable_id"
|
||||
t.boolean "system", :default => false, :null => false
|
||||
t.text "st_diff", :limit => 2147483647
|
||||
end
|
||||
|
||||
add_index "notes", ["author_id"], :name => "index_notes_on_author_id"
|
||||
add_index "notes", ["commit_id"], :name => "index_notes_on_commit_id"
|
||||
add_index "notes", ["created_at", "id"], :name => "index_notes_on_created_at_and_id"
|
||||
add_index "notes", ["created_at"], :name => "index_notes_on_created_at"
|
||||
add_index "notes", ["noteable_id", "noteable_type"], :name => "index_notes_on_noteable_id_and_noteable_type"
|
||||
add_index "notes", ["noteable_type"], :name => "index_notes_on_noteable_type"
|
||||
add_index "notes", ["project_id", "noteable_type"], :name => "index_notes_on_project_id_and_noteable_type"
|
||||
add_index "notes", ["project_id"], :name => "index_notes_on_project_id"
|
||||
add_index "notes", ["updated_at"], :name => "index_notes_on_updated_at"
|
||||
|
||||
create_table "notificationcomments", :force => true do |t|
|
||||
t.string "notificationcommented_type"
|
||||
t.integer "notificationcommented_id"
|
||||
|
@ -1430,49 +1187,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "oauth_access_grants", :force => true do |t|
|
||||
t.integer "resource_owner_id", :null => false
|
||||
t.integer "application_id", :null => false
|
||||
t.string "token", :null => false
|
||||
t.integer "expires_in", :null => false
|
||||
t.text "redirect_uri", :null => false
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "revoked_at"
|
||||
t.string "scopes"
|
||||
end
|
||||
|
||||
add_index "oauth_access_grants", ["token"], :name => "index_oauth_access_grants_on_token", :unique => true
|
||||
|
||||
create_table "oauth_access_tokens", :force => true do |t|
|
||||
t.integer "resource_owner_id"
|
||||
t.integer "application_id"
|
||||
t.string "token", :null => false
|
||||
t.string "refresh_token"
|
||||
t.integer "expires_in"
|
||||
t.datetime "revoked_at"
|
||||
t.datetime "created_at", :null => false
|
||||
t.string "scopes"
|
||||
end
|
||||
|
||||
add_index "oauth_access_tokens", ["refresh_token"], :name => "index_oauth_access_tokens_on_refresh_token", :unique => true
|
||||
add_index "oauth_access_tokens", ["resource_owner_id"], :name => "index_oauth_access_tokens_on_resource_owner_id"
|
||||
add_index "oauth_access_tokens", ["token"], :name => "index_oauth_access_tokens_on_token", :unique => true
|
||||
|
||||
create_table "oauth_applications", :force => true do |t|
|
||||
t.string "name", :null => false
|
||||
t.string "uid", :null => false
|
||||
t.string "secret", :null => false
|
||||
t.text "redirect_uri", :null => false
|
||||
t.string "scopes", :default => "", :null => false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.integer "owner_id"
|
||||
t.string "owner_type"
|
||||
end
|
||||
|
||||
add_index "oauth_applications", ["owner_id", "owner_type"], :name => "index_oauth_applications_on_owner_id_and_owner_type"
|
||||
add_index "oauth_applications", ["uid"], :name => "index_oauth_applications_on_uid", :unique => true
|
||||
|
||||
create_table "onclick_times", :force => true do |t|
|
||||
t.integer "user_id"
|
||||
t.datetime "onclick_time"
|
||||
|
@ -1630,23 +1344,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
t.integer "allow_teacher", :default => 0
|
||||
end
|
||||
|
||||
create_table "permissions", :force => true do |t|
|
||||
t.string "controller", :limit => 30, :default => "", :null => false
|
||||
t.string "action", :limit => 30, :default => "", :null => false
|
||||
t.string "description", :limit => 60, :default => "", :null => false
|
||||
t.boolean "is_public", :default => false, :null => false
|
||||
t.integer "sort", :default => 0, :null => false
|
||||
t.boolean "mail_option", :default => false, :null => false
|
||||
t.boolean "mail_enabled", :default => false, :null => false
|
||||
end
|
||||
|
||||
create_table "permissions_roles", :id => false, :force => true do |t|
|
||||
t.integer "permission_id", :default => 0, :null => false
|
||||
t.integer "role_id", :default => 0, :null => false
|
||||
end
|
||||
|
||||
add_index "permissions_roles", ["role_id"], :name => "permissions_roles_role_id"
|
||||
|
||||
create_table "phone_app_versions", :force => true do |t|
|
||||
t.string "version"
|
||||
t.text "description"
|
||||
|
@ -1729,11 +1426,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "project_import_data", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.text "data"
|
||||
end
|
||||
|
||||
create_table "project_infos", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.integer "user_id"
|
||||
|
@ -1824,16 +1516,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true
|
||||
add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id"
|
||||
|
||||
create_table "protected_branches", :force => true do |t|
|
||||
t.integer "project_id", :null => false
|
||||
t.string "name", :null => false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.boolean "developers_can_push", :default => false, :null => false
|
||||
end
|
||||
|
||||
add_index "protected_branches", ["project_id"], :name => "index_protected_branches_on_project_id"
|
||||
|
||||
create_table "queries", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.string "name", :default => "", :null => false
|
||||
|
@ -1968,25 +1650,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
t.integer "is_teacher_score", :default => 0
|
||||
end
|
||||
|
||||
create_table "services", :force => true do |t|
|
||||
t.string "type"
|
||||
t.string "title"
|
||||
t.integer "project_id"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.boolean "active", :default => false, :null => false
|
||||
t.text "properties"
|
||||
t.boolean "template", :default => false
|
||||
t.boolean "push_events", :default => true
|
||||
t.boolean "issues_events", :default => true
|
||||
t.boolean "merge_requests_events", :default => true
|
||||
t.boolean "tag_push_events", :default => true
|
||||
t.boolean "note_events", :default => true, :null => false
|
||||
end
|
||||
|
||||
add_index "services", ["created_at", "id"], :name => "index_services_on_created_at_and_id"
|
||||
add_index "services", ["project_id"], :name => "index_services_on_project_id"
|
||||
|
||||
create_table "settings", :force => true do |t|
|
||||
t.string "name", :default => "", :null => false
|
||||
t.text "value"
|
||||
|
@ -2025,26 +1688,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "snippets", :force => true do |t|
|
||||
t.string "title"
|
||||
t.text "content", :limit => 2147483647
|
||||
t.integer "author_id", :null => false
|
||||
t.integer "project_id"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.string "file_name"
|
||||
t.datetime "expires_at"
|
||||
t.string "type"
|
||||
t.integer "visibility_level", :default => 0, :null => false
|
||||
end
|
||||
|
||||
add_index "snippets", ["author_id"], :name => "index_snippets_on_author_id"
|
||||
add_index "snippets", ["created_at", "id"], :name => "index_snippets_on_created_at_and_id"
|
||||
add_index "snippets", ["created_at"], :name => "index_snippets_on_created_at"
|
||||
add_index "snippets", ["expires_at"], :name => "index_snippets_on_expires_at"
|
||||
add_index "snippets", ["project_id"], :name => "index_snippets_on_project_id"
|
||||
add_index "snippets", ["visibility_level"], :name => "index_snippets_on_visibility_level"
|
||||
|
||||
create_table "softapplications", :force => true do |t|
|
||||
t.string "name"
|
||||
t.text "description"
|
||||
|
@ -2117,9 +1760,9 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
t.integer "absence_penalty", :default => 0
|
||||
t.float "system_score", :default => 0.0
|
||||
t.boolean "is_test", :default => false
|
||||
t.float "work_score"
|
||||
t.integer "simi_id"
|
||||
t.integer "simi_value"
|
||||
t.float "work_score"
|
||||
end
|
||||
|
||||
add_index "student_works", ["homework_common_id", "user_id"], :name => "index_student_works_on_homework_common_id_and_user_id"
|
||||
|
@ -2167,13 +1810,13 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
|
||||
create_table "sub_domains", :force => true do |t|
|
||||
t.integer "org_subfield_id"
|
||||
t.integer "priority"
|
||||
t.integer "priority", :default => 0
|
||||
t.string "name"
|
||||
t.string "field_type"
|
||||
t.integer "hide"
|
||||
t.integer "status"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.integer "hide", :default => 0
|
||||
t.integer "status", :default => 0
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "subfield_subdomain_dirs", :force => true do |t|
|
||||
|
@ -2183,17 +1826,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "subscriptions", :force => true do |t|
|
||||
t.integer "user_id"
|
||||
t.integer "subscribable_id"
|
||||
t.string "subscribable_type"
|
||||
t.boolean "subscribed"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
add_index "subscriptions", ["subscribable_id", "subscribable_type", "user_id"], :name => "subscriptions_user_id_and_ref_fields", :unique => true
|
||||
|
||||
create_table "system_messages", :force => true do |t|
|
||||
t.integer "user_id"
|
||||
t.string "content"
|
||||
|
@ -2434,17 +2066,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
add_index "users", ["id", "type"], :name => "index_users_on_id_and_type"
|
||||
add_index "users", ["type"], :name => "index_users_on_type"
|
||||
|
||||
create_table "users_star_projects", :force => true do |t|
|
||||
t.integer "project_id", :null => false
|
||||
t.integer "user_id", :null => false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
add_index "users_star_projects", ["project_id"], :name => "index_users_star_projects_on_project_id"
|
||||
add_index "users_star_projects", ["user_id", "project_id"], :name => "index_users_star_projects_on_user_id_and_project_id", :unique => true
|
||||
add_index "users_star_projects", ["user_id"], :name => "index_users_star_projects_on_user_id"
|
||||
|
||||
create_table "versions", :force => true do |t|
|
||||
t.integer "project_id", :default => 0, :null => false
|
||||
t.string "name", :default => "", :null => false
|
||||
|
@ -2496,23 +2117,6 @@ ActiveRecord::Schema.define(:version => 20160606064856) do
|
|||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "web_hooks", :force => true do |t|
|
||||
t.string "url"
|
||||
t.integer "project_id"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.string "type", :default => "ProjectHook"
|
||||
t.integer "service_id"
|
||||
t.boolean "push_events", :default => true, :null => false
|
||||
t.boolean "issues_events", :default => false, :null => false
|
||||
t.boolean "merge_requests_events", :default => false, :null => false
|
||||
t.boolean "tag_push_events", :default => false
|
||||
t.boolean "note_events", :default => false, :null => false
|
||||
end
|
||||
|
||||
add_index "web_hooks", ["created_at", "id"], :name => "index_web_hooks_on_created_at_and_id"
|
||||
add_index "web_hooks", ["project_id"], :name => "index_web_hooks_on_project_id"
|
||||
|
||||
create_table "wechat_logs", :force => true do |t|
|
||||
t.string "openid", :null => false
|
||||
t.text "request_raw"
|
||||
|
|
|
@ -27,13 +27,15 @@
|
|||
<!--<a herf="javascript:void(0);" class="c-grey2 f13 fr mt5 mb10 post-more mr20 undis" text-auto-height>点击展开</a>-->
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<span class="c-grey f12 fl mr15 mt2">{{act.activity_type_name}}</span>
|
||||
<span class="c-grey f12 fl mt2">{{act.latest_update}}</span>
|
||||
<a ng-if="!act.reply_count" ng-click="goDetail('homework',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" /><span style="vertical-align:top;">回复</span></a>
|
||||
<a ng-if="act.reply_count" ng-click="goDetail('homework',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" /><span style="vertical-align:top;">{{act.reply_count}}</span></a>
|
||||
<div class="c-grey fr f12 mr25" ng-if="!act.praise_count" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" /><span style="vertical-align:top;">赞</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.praise_count && !act.has_praise" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.has_praise" ng-click="decreasePraise(act);"><img src="/images/wechat/w_praised.png" height="15" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<span ng-if="act.homework_common_detail.homework_type == 1" class="c-grey f12 fl mr15 mt2">普通作业</span>
|
||||
<span ng-if="act.homework_common_detail.homework_type == 2" class="c-grey f12 fl mr15 mt2">编程作业</span>
|
||||
<span ng-if="act.homework_common_detail.homework_type == 3" class="c-grey f12 fl mr15 mt2">分组作业</span>
|
||||
<span class="c-grey f12 fl mt2">{{act.latest_update}}</span>
|
||||
<a ng-if="!act.reply_count" ng-click="goDetail('homework',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" class="mr5" /><span style="vertical-align:top;">回复</span></a>
|
||||
<a ng-if="act.reply_count" ng-click="goDetail('homework',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.reply_count}}</span></a>
|
||||
<div class="c-grey fr f12 mr25" ng-if="!act.praise_count" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" class="mr5" /><span style="vertical-align:top;">赞</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.praise_count && !act.has_praise" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.has_praise" ng-click="decreasePraise(act);"><img src="/images/wechat/w_praised.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -58,11 +60,11 @@
|
|||
</div>
|
||||
<span class="c-grey f12 fl mr15 mt2">{{act.activity_type_name}}</span>
|
||||
<span class="c-grey f13 fl mt2">{{act.latest_update}}</span>
|
||||
<a ng-if="!act.reply_count" ng-click="goDetail('course_notice',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" /><span style="vertical-align:top;">回复</span></a>
|
||||
<a ng-if="act.reply_count" ng-click="goDetail('course_notice',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" /><span style="vertical-align:top;">{{act.reply_count}}</span></a>
|
||||
<div class="c-grey fr f12 mr25" ng-if="!act.praise_count" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" /><span style="vertical-align:top;">赞</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.praise_count && !act.has_praise" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.has_praise" ng-click="decreasePraise(act);"><img src="/images/wechat/w_praised.png" height="15" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<a ng-if="!act.reply_count" ng-click="goDetail('course_notice',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" class="mr5" /><span style="vertical-align:top;">回复</span></a>
|
||||
<a ng-if="act.reply_count" ng-click="goDetail('course_notice',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.reply_count}}</span></a>
|
||||
<div class="c-grey fr f12 mr25" ng-if="!act.praise_count" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" class="mr5" /><span style="vertical-align:top;">赞</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.praise_count && !act.has_praise" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.has_praise" ng-click="decreasePraise(act);"><img src="/images/wechat/w_praised.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -87,11 +89,11 @@
|
|||
</div>
|
||||
<span class="c-grey f12 fl mr15 mt2">{{act.activity_type_name}}</span>
|
||||
<span class="c-grey f13 fl mt2">{{act.latest_update}}</span>
|
||||
<a ng-if="!act.reply_count" ng-click="goDetail('course_discussion',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" /><span style="vertical-align:top;">回复</span></a>
|
||||
<a ng-if="act.reply_count" ng-click="goDetail('course_discussion',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" /><span style="vertical-align:top;">{{act.reply_count}}</span></a>
|
||||
<div class="c-grey fr f12 mr25" ng-if="!act.praise_count" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" /><span style="vertical-align:top;">赞</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.praise_count && !act.has_praise" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.has_praise" ng-click="decreasePraise(act);"><img src="/images/wechat/w_praised.png" height="15" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<a ng-if="!act.reply_count" ng-click="goDetail('course_discussion',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" class="mr5" /><span style="vertical-align:top;">回复</span></a>
|
||||
<a ng-if="act.reply_count" ng-click="goDetail('course_discussion',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.reply_count}}</span></a>
|
||||
<div class="c-grey fr f12 mr25" ng-if="!act.praise_count" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" class="mr5" /><span style="vertical-align:top;">赞</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.praise_count && !act.has_praise" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.has_praise" ng-click="decreasePraise(act);"><img src="/images/wechat/w_praised.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -134,11 +136,11 @@
|
|||
</div>
|
||||
<span class="c-grey f12 fl mr15 mt2">{{act.activity_type_name}}</span>
|
||||
<span class="c-grey f13 fl mt2">{{act.latest_update}}</span>
|
||||
<a ng-if="!act.reply_count" ng-click="goDetail('issues',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" /><span style="vertical-align:top;">回复</span></a>
|
||||
<a ng-if="act.reply_count" ng-click="goDetail('issues',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" /><span style="vertical-align:top;">{{act.reply_count}}</span></a>
|
||||
<div class="c-grey fr f12 mr25" ng-if="!act.praise_count" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" /><span style="vertical-align:top;">赞</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.praise_count && !act.has_praise" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.has_praise" ng-click="decreasePraise(act);"><img src="/images/wechat/w_praised.png" height="15" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<a ng-if="!act.reply_count" ng-click="goDetail('issues',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" class="mr5" /><span style="vertical-align:top;">回复</span></a>
|
||||
<a ng-if="act.reply_count" ng-click="goDetail('issues',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.reply_count}}</span></a>
|
||||
<div class="c-grey fr f12 mr25" ng-if="!act.praise_count" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" class="mr5" /><span style="vertical-align:top;">赞</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.praise_count && !act.has_praise" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.has_praise" ng-click="decreasePraise(act);"><img src="/images/wechat/w_praised.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -164,11 +166,11 @@
|
|||
</div>
|
||||
<span class="c-grey f12 fl mr15 mt2">{{act.activity_type_name}}</span>
|
||||
<span class="c-grey f13 fl mt2">{{act.latest_update}}</span>
|
||||
<a ng-if="!act.reply_count" ng-click="goDetail('project_discussion',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" /><span style="vertical-align:top;">回复</span></a>
|
||||
<a ng-if="act.reply_count" ng-click="goDetail('project_discussion',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" /><span style="vertical-align:top;">{{act.reply_count}}</span></a>
|
||||
<div class="c-grey fr f12 mr25" ng-if="!act.praise_count" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" /><span style="vertical-align:top;">赞</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.praise_count && !act.has_praise" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.has_praise" ng-click="decreasePraise(act);"><img src="/images/wechat/w_praised.png" height="15" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<a ng-if="!act.reply_count" ng-click="goDetail('project_discussion',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" class="mr5" /><span style="vertical-align:top;">回复</span></a>
|
||||
<a ng-if="act.reply_count" ng-click="goDetail('project_discussion',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.reply_count}}</span></a>
|
||||
<div class="c-grey fr f12 mr25" ng-if="!act.praise_count" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" class="mr5" /><span style="vertical-align:top;">赞</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.praise_count && !act.has_praise" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.has_praise" ng-click="decreasePraise(act);"><img src="/images/wechat/w_praised.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -207,11 +209,11 @@
|
|||
<div class="cl"></div>
|
||||
</div>
|
||||
<span class="c-grey f13 fl mt2">{{act.latest_update}}</span>
|
||||
<a ng-if="!act.reply_count" ng-click="goDetail('journal_for_message',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" /><span style="vertical-align:top;">回复</span></a>
|
||||
<a ng-if="act.reply_count" ng-click="goDetail('journal_for_message',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" /><span style="vertical-align:top;">{{act.reply_count}}</span></a>
|
||||
<div class="c-grey fr f12 mr25" ng-if="!act.praise_count" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" /><span style="vertical-align:top;">赞</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.praise_count && !act.has_praise" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.has_praise" ng-click="decreasePraise(act);"><img src="/images/wechat/w_praised.png" height="15" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<a ng-if="!act.reply_count" ng-click="goDetail('journal_for_message',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" class="mr5" /><span style="vertical-align:top;">回复</span></a>
|
||||
<a ng-if="act.reply_count" ng-click="goDetail('journal_for_message',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.reply_count}}</span></a>
|
||||
<div class="c-grey fr f12 mr25" ng-if="!act.praise_count" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" class="mr5" /><span style="vertical-align:top;">赞</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.praise_count && !act.has_praise" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.has_praise" ng-click="decreasePraise(act);"><img src="/images/wechat/w_praised.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -236,11 +238,11 @@
|
|||
<div class="cl"></div>
|
||||
</div>
|
||||
<span class="c-grey f13 fl mt2">{{act.latest_update}}</span>
|
||||
<a ng-if="!act.reply_count" ng-click="goDetail('blog_comment',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" /><span style="vertical-align:top;">回复</span></a>
|
||||
<a ng-if="act.reply_count" ng-click="goDetail('blog_comment',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" /><span style="vertical-align:top;">{{act.reply_count}}</span></a>
|
||||
<div class="c-grey fr f12 mr25" ng-if="!act.praise_count" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" /><span style="vertical-align:top;">赞</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.praise_count && !act.has_praise" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.has_praise" ng-click="decreasePraise(act);"><img src="/images/wechat/w_praised.png" height="15" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<a ng-if="!act.reply_count" ng-click="goDetail('blog_comment',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" class="mr5" /><span style="vertical-align:top;">回复</span></a>
|
||||
<a ng-if="act.reply_count" ng-click="goDetail('blog_comment',act.act_id, act.id)" class="c-grey2 fr f12"><img src="/images/wechat/w_reply.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.reply_count}}</span></a>
|
||||
<div class="c-grey fr f12 mr25" ng-if="!act.praise_count" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" class="mr5" /><span style="vertical-align:top;">赞</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.praise_count && !act.has_praise" ng-click="addPraise(act);"><img src="/images/wechat/w_praise.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="c-grey fr f12 mr25" ng-if="act.has_praise" ng-click="decreasePraise(act);"><img src="/images/wechat/w_praised.png" height="15" class="mr5" /><span style="vertical-align:top;">{{act.praise_count}}</span></div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -17,12 +17,7 @@
|
|||
<div ng-view>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="/javascripts/wechat/angular.js"></script>
|
||||
<script src="/javascripts/wechat/angular-route.js"></script>
|
||||
<script src="/javascripts/wechat/angular-sanitize.min.js"></script>
|
||||
<script src="/javascripts/wechat/angular-cookies.js"></script>
|
||||
<script src="/javascripts/jquery-1.3.2.js"></script>
|
||||
<script src="/javascripts/wechat/build/angular.all.min.js"></script>
|
||||
<script src="/javascripts/wechat/app.js"></script>
|
||||
</body>
|
||||
|
||||
|
|
|
@ -5,10 +5,10 @@
|
|||
<div class="post-container">
|
||||
<div class="post-wrapper">
|
||||
<div class="post-main">
|
||||
<div class="post-title mb5"><span class="c-grey3 f15 fb">{{blog.title}}</span></div>
|
||||
<div class="post-title mb5"><span class="c-grey3 f15 fb">{{blog.title}}</span><img ng-if="blog.locked" src="/images/locked.png" style="display:inline-block;" /></div>
|
||||
<div class="post-title"><a herf="javascript:void(0);" class="mr10">{{blog.user.realname}}</a>发表博客</div>
|
||||
<div class="cl"></div>
|
||||
<div class="f13 c-grey3 mt10" ng-bind-html="blog.content|safeHtml"></div>
|
||||
<div class="f13 c-grey3 mt10 text-control" ng-bind-html="blog.content|safeHtml"></div>
|
||||
<div class="cl"></div>
|
||||
<span class="c-grey f13 mt10 fl">{{blog.created_at}}</span>
|
||||
<div class="cl"></div>
|
||||
|
@ -24,7 +24,7 @@
|
|||
<div class="post-reply-avatar fl"><img ng-src="{{journal.user.img_url}}" width="45" height="45" class="border-radius" /></div>
|
||||
<div class="ml55">
|
||||
<div class="post-reply-user hidden">{{journal.user.realname}}</div>
|
||||
<pre class="post-reply-content c-grey2 mb10" ng-bind-html="journal.content|safeHtml"></pre>
|
||||
<div class="post-reply-content c-grey2 mb10" ng-bind-html="journal.content|safeHtml"></div>
|
||||
<div class="post-reply-date fl">{{journal.lasted_comment}}</div>
|
||||
<div class="post-reply-trigger fr undis">回复</div>
|
||||
</div>
|
||||
|
@ -32,7 +32,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="post-input-wrap">
|
||||
<div ng-if="!blog.locked" class="post-input-wrap">
|
||||
<div class="post-reply-row">
|
||||
<!--<div class="post-reply-avatar fl"><img src="images/post-avatar.jpg" width="30" height="30" /></div>-->
|
||||
<div class="post-input-container">
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<div loading-spinner></div>
|
||||
<div class="post-wrapper">
|
||||
<div class="post-main">
|
||||
<div class="post-title mb5"><span class="c-grey3 f15 fb">{{discussion.subject}}</span></div>
|
||||
<div class="post-title mb5"><span class="c-grey3 f15 fb">{{discussion.subject}}</span><img ng-if="discussion.locked" src="/images/locked.png" style="display:inline-block;" /></div>
|
||||
<table class="post-detail-info"><tr>
|
||||
<td class="text-nowrap v-top">发布者:</td>
|
||||
<td>{{discussion.user.realname}}</td>
|
||||
|
@ -15,7 +15,7 @@
|
|||
<td class="text-nowrap v-top">来 源:</td>
|
||||
<td>{{discussion.course_project_name}} | 课程问答区</td>
|
||||
</tr></table>
|
||||
<div class="f13 c-grey3 mt10" ng-bind-html="discussion.content|safeHtml"></div>
|
||||
<div class="f13 c-grey3 mt10 text-control" ng-bind-html="discussion.content|safeHtml"></div>
|
||||
<div class="cl"></div>
|
||||
<span class="c-grey f13 mt10 fl">{{discussion.created_on}}</span>
|
||||
<div class="cl"></div>
|
||||
|
@ -31,7 +31,7 @@
|
|||
<div class="post-reply-avatar fl"><img ng-src="{{journal.user.img_url}}" width="45" height="45" class="border-radius" /></div>
|
||||
<div class="ml55">
|
||||
<div class="post-reply-user hidden">{{journal.user.realname}}</div>
|
||||
<pre class="post-reply-content c-grey2 mb10" ng-bind-html="journal.content|safeHtml"></pre>
|
||||
<div class="post-reply-content c-grey2 mb10" ng-bind-html="journal.content|safeHtml"></div>
|
||||
<div class="post-reply-date fl">{{journal.lasted_comment}}</div>
|
||||
<div class="post-reply-trigger fr undis">回复</div>
|
||||
</div>
|
||||
|
@ -39,7 +39,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="post-input-wrap">
|
||||
<div ng-if="!discussion.locked" class="post-input-wrap">
|
||||
<div class="post-reply-row">
|
||||
<!--<div class="post-reply-avatar fl"><img src="images/post-avatar.jpg" width="30" height="30" /></div>-->
|
||||
<div class="post-input-container">
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<td class="text-nowrap v-top">来 源:</td>
|
||||
<td>{{news.course_name}} | 课程通知</td>
|
||||
</tr></table>
|
||||
<div class="f13 c-grey3 mt10" ng-bind-html="news.description|safeHtml"></div>
|
||||
<div class="f13 c-grey3 mt10 text-control" ng-bind-html="news.description|safeHtml"></div>
|
||||
<div class="cl"></div>
|
||||
<span class="c-grey f13 mt10 fl">{{news.created_on}}</span>
|
||||
<div class="cl"></div>
|
||||
|
@ -30,7 +30,7 @@
|
|||
<div class="post-reply-avatar fl"><img ng-src="{{comments.author.img_url}}" width="45" height="45" class="border-radius" /></div>
|
||||
<div class="ml55">
|
||||
<div class="post-reply-user hidden">{{comments.author.realname}}</div>
|
||||
<pre class="post-reply-content c-grey2 mb10" ng-bind-html="comments.comments|safeHtml"></pre>
|
||||
<div class="post-reply-content c-grey2 mb10" ng-bind-html="comments.comments|safeHtml"></div>
|
||||
<div class="post-reply-date fl">{{comments.created_on}}</div>
|
||||
<div class="post-reply-trigger fr undis">回复</div>
|
||||
</div>
|
||||
|
|
|
@ -15,8 +15,16 @@
|
|||
<tr>
|
||||
<td class="text-nowrap v-top">来 源:</td>
|
||||
<td>{{homework.course_name}} | 课程作业</td>
|
||||
</tr></table>
|
||||
<div class="f13 c-grey3 mt10 mb10" ng-bind-html="homework.description|safeHtml"></div>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-nowrap v-top">类 别:</td>
|
||||
<td><span ng-if="homework.homework_type == 1" class="c-grey f12 fl mr15 mt2">普通作业</span>
|
||||
<span ng-if="homework.homework_type == 2" class="c-grey f12 fl mr15 mt2">编程作业</span>
|
||||
<span ng-if="homework.homework_type == 3" class="c-grey f12 fl mr15 mt2">分组作业</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="f13 c-grey3 mt10 mb10 text-control" ng-bind-html="homework.description|safeHtml"></div>
|
||||
<span class="c-grey f13">迟交扣分:{{homework.late_penalty}}分</span><br/>
|
||||
<span ng-if="!homework.anonymous_comment" class="c-grey f13">缺评扣分:{{homework.absence_penalty}}分/作品<br /></span>
|
||||
<span ng-if="!homework.anonymous_comment" class="c-grey f13">匿评开启时间:{{homework.evaluation_start}}<br /></span>
|
||||
|
@ -36,7 +44,7 @@
|
|||
<div class="post-reply-avatar fl"><img ng-src="{{journal.user.img_url}}" width="45" height="45" class="border-radius" /></div>
|
||||
<div class="ml55">
|
||||
<div class="post-reply-user hidden">{{journal.user.realname}}</div>
|
||||
<pre class="post-reply-content c-grey2 mb10" ng-bind-html="journal.notes|safeHtml"></pre>
|
||||
<div class="post-reply-content c-grey2 mb10" ng-bind-html="journal.notes|safeHtml"></div>
|
||||
<div class="post-reply-date fl">{{journal.lasted_comment}}</div>
|
||||
<div class="post-reply-trigger fr undis">回复</div>
|
||||
</div>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<td class="text-nowrap v-top">来 源:</td>
|
||||
<td>{{issue.project_name}} | 项目问题</td>
|
||||
</tr></table>
|
||||
<div class="f13 c-grey3 mt10 mb10" ng-bind-html="issue.description|safeHtml"></div>
|
||||
<div class="f13 c-grey3 mt10 mb10 text-control" ng-bind-html="issue.description|safeHtml"></div>
|
||||
<span class="c-grey f13">状 态:{{issue.issue_status}}<br>
|
||||
优先级:{{issue.issue_priority}}<br />
|
||||
指派给:{{issue.issue_assigned_to}}<br />
|
||||
|
@ -34,7 +34,7 @@
|
|||
<div class="post-reply-avatar fl"><img ng-src="{{journal.user.img_url}}" width="45" height="45" class="border-radius" /></div>
|
||||
<div class="ml55">
|
||||
<div class="post-reply-user hidden">{{journal.user.realname}}</div>
|
||||
<pre class="post-reply-content c-grey2 mb10" ng-bind-html="journal.notes|safeHtml"></pre>
|
||||
<div class="post-reply-content c-grey2 mb10" ng-bind-html="journal.notes|safeHtml"></div>
|
||||
<div class="post-reply-date fl">{{journal.created_on}}</div>
|
||||
<div class="post-reply-trigger fr undis">回复</div>
|
||||
</div>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div class="post-title mb5"><a herf="javascript:void(0);" class="mr10">{{message.user.realname}}</a><span style="vertical-align:top;">给您留言了</span><br /></div>
|
||||
<div class="post-title">{{message.created_on}}</div>
|
||||
<div class="cl"></div>
|
||||
<div class="f13 c-grey3 mt10" ng-bind-html="message.notes|safeHtml"></div>
|
||||
<div class="f13 c-grey3 mt10 text-control" ng-bind-html="message.notes|safeHtml"></div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<div class="post-interactive border-bottom">
|
||||
|
@ -22,7 +22,7 @@
|
|||
<div class="post-reply-avatar fl"><img ng-src="{{journal.user.img_url}}" width="45" height="45" class="border-radius" /></div>
|
||||
<div class="ml55">
|
||||
<div class="post-reply-user hidden">{{journal.user.realname}}</div>
|
||||
<pre class="post-reply-content c-grey2 mb10" ng-bind-html="journal.notes|safeHtml"></pre>
|
||||
<div class="post-reply-content c-grey2 mb10" ng-bind-html="journal.notes|safeHtml"></div>
|
||||
<div class="post-reply-date fl">{{journal.lasted_comment}}</div>
|
||||
<div class="post-reply-trigger fr undis">回复</div>
|
||||
</div>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<div class="post-container">
|
||||
<div class="post-wrapper">
|
||||
<div class="post-main">
|
||||
<div class="post-title mb5"><span class="c-grey3 f15 fb">{{discussion.subject}}</span></div>
|
||||
<div class="post-title mb5"><span class="c-grey3 f15 fb">{{discussion.subject}}</span><img ng-if="discussion.locked" src="/images/locked.png" style="display:inline-block;" /></div>
|
||||
<table class="post-detail-info"><tr>
|
||||
<td class="text-nowrap v-top">发布者:</td>
|
||||
<td>{{discussion.user.realname}}</td>
|
||||
|
@ -14,7 +14,7 @@
|
|||
<td class="text-nowrap v-top">来 源:</td>
|
||||
<td>{{discussion.course_project_name}} | 项目讨论区</td>
|
||||
</tr></table>
|
||||
<div class="f13 c-grey3 mt10" ng-bind-html="discussion.content|safeHtml"></div>
|
||||
<div class="f13 c-grey3 mt10 text-control" ng-bind-html="discussion.content|safeHtml"></div>
|
||||
<div class="cl"></div>
|
||||
<span class="c-grey f13 mt10 fl">{{discussion.created_on}}</span>
|
||||
<div class="cl"></div>
|
||||
|
@ -30,7 +30,7 @@
|
|||
<div class="post-reply-avatar fl"><img ng-src="{{journal.user.img_url}}" width="45" height="45" class="border-radius" /></div>
|
||||
<div class="ml55">
|
||||
<div class="post-reply-user hidden">{{journal.user.realname}}</div>
|
||||
<pre class="post-reply-content c-grey2 mb10" ng-bind-html="journal.content|safeHtml"></pre>
|
||||
<div class="post-reply-content c-grey2 mb10" ng-bind-html="journal.content|safeHtml"></div>
|
||||
<div class="post-reply-date fl">{{journal.lasted_comment}}</div>
|
||||
<div class="post-reply-trigger fr undis">回复</div>
|
||||
</div>
|
||||
|
@ -38,7 +38,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="post-input-wrap">
|
||||
<div ng-if="!discussion.locked" class="post-input-wrap">
|
||||
<div class="post-reply-row">
|
||||
<!--<div class="post-reply-avatar fl"><img src="images/post-avatar.jpg" width="30" height="30" /></div>-->
|
||||
<div class="post-input-container">
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
var app = angular.module('wechat', ['ngRoute','ngCookies']);
|
||||
var app = angular.module('wechat', ['ngRoute']);
|
||||
var apiUrl = '/api/v1/';
|
||||
var debug = false; //调试标志,如果在本地请置为true
|
||||
|
||||
if(debug===true){
|
||||
//apiUrl = 'http://localhost:3000/api/v1/';
|
||||
apiUrl = 'https://www.trustie.net/api/v1/';
|
||||
apiUrl = 'http://www.trustie.net/api/v1/';
|
||||
}
|
||||
|
||||
|
||||
app.factory('auth', function($http,$routeParams, $cookies, $q){
|
||||
app.factory('auth', function($http,$routeParams, $q){
|
||||
var _openid = '';
|
||||
|
||||
if(typeof g_openid !== 'undefined'){
|
||||
|
@ -16,7 +16,7 @@ app.factory('auth', function($http,$routeParams, $cookies, $q){
|
|||
}
|
||||
|
||||
if(debug===true){
|
||||
_openid = "1";
|
||||
_openid = "orgVLv8TlS6e7FDiI6xdTGHRaaRo"; //guange的帐号
|
||||
}
|
||||
|
||||
var getOpenId = function() {
|
||||
|
@ -31,15 +31,6 @@ app.factory('auth', function($http,$routeParams, $cookies, $q){
|
|||
method: 'POST'
|
||||
}).then(function successCallback(response) {
|
||||
_openid = response.data.openid;
|
||||
if(typeof _openid !== 'undefined' && _openid.length>0){
|
||||
if(debug !== true){ //如果是生产环境,就存到cookies中
|
||||
$cookies.put("openid", _openid);
|
||||
}
|
||||
} else {
|
||||
if(debug!==true){//考虑从cookies中取出
|
||||
_openid = $cookies.get('openid');
|
||||
}
|
||||
}
|
||||
deferred.resolve(_openid);
|
||||
}, function errorCallback(response) {
|
||||
deferred.reject(response);
|
||||
|
@ -140,12 +131,13 @@ app.factory('common', function($http, auth, $routeParams){
|
|||
return;
|
||||
}
|
||||
|
||||
var temp = data.comment.replace(/\n/g,'<br/>');
|
||||
|
||||
var userInfo = {
|
||||
type: type,
|
||||
content: data.comment,
|
||||
content: temp,
|
||||
openid: auth.openid()
|
||||
};
|
||||
|
||||
//回复按钮禁用
|
||||
data.disabled = true;
|
||||
|
||||
|
@ -478,24 +470,13 @@ app.directive('inputAuto',function(){
|
|||
}
|
||||
});
|
||||
|
||||
app.directive('loadingSpinner', function ($http) {
|
||||
app.directive('loadingSpinner', ['$http', function ($http) {
|
||||
return {
|
||||
restrict: 'A',
|
||||
replace: true,
|
||||
template: '<div class="loading-bg"><div class="loading-box"><img src="/images/loading.gif" alt=""/><span>加载中...</span></div></div>',
|
||||
link: function (scope, element, attrs) {
|
||||
|
||||
scope.$watch('activeCalls', function (newVal, oldVal) {
|
||||
if (newVal == 0) {
|
||||
$(element).hide();
|
||||
}
|
||||
else {
|
||||
$(element).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
template: '<div ng-show="activeCalls>0" class="loading-bg"><div class="loading-box"><img src="/images/loading.gif" alt=""/><span>加载中...</span></div></div>',
|
||||
};
|
||||
});
|
||||
}]);
|
||||
|
||||
app.config(['$routeProvider',"$httpProvider", "$locationProvider",function ($routeProvider, $httpProvider, $locationProvider) {
|
||||
var rootPath = '/assets/wechat/'
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,10 @@
|
|||
var gulp = require('gulp'),
|
||||
uglify = require('gulp-uglify');
|
||||
var concat = require('gulp-concat');
|
||||
|
||||
gulp.task('minify', function () {
|
||||
gulp.src(['../jquery-1.3.2.js','angular.js', 'angular-route.js', 'angular-sanitize.min.js'])
|
||||
.pipe(uglify())
|
||||
.pipe(concat('angular.all.min.js'))
|
||||
.pipe(gulp.dest('build'))
|
||||
});
|
File diff suppressed because one or more lines are too long
|
@ -1,354 +1,354 @@
|
|||
/*
|
||||
# Code Review plugin for Redmine
|
||||
# Copyright (C) 2009-2013 Haruyuki Iida
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
var topZindex = 1000;
|
||||
var action_type = '';
|
||||
var rev = '';
|
||||
var rev_to = '';
|
||||
var path = '';
|
||||
var urlprefix = '';
|
||||
var review_form_dialog = null;
|
||||
var add_form_title = null;
|
||||
var review_dialog_title = null;
|
||||
var repository_id = null;
|
||||
var filenames = [];
|
||||
|
||||
var ReviewCount = function(total, open, progress){
|
||||
this.total = total;
|
||||
this.open = open;
|
||||
this.closed = total - open;
|
||||
this.progress = progress
|
||||
};
|
||||
|
||||
var CodeReview = function(id) {
|
||||
this.id = id;
|
||||
this.path = '';
|
||||
this.line = 0;
|
||||
this.url = '';
|
||||
this.is_closed = false;
|
||||
};
|
||||
|
||||
var review_counts = new Array();
|
||||
var code_reviews_map = new Array();
|
||||
var code_reviews_dialog_map = new Array();
|
||||
|
||||
function UpdateRepositoryView(title) {
|
||||
var header = $("table.changesets thead tr:first");
|
||||
var th = $('<th></th>');
|
||||
th.html(title);
|
||||
header.append(th);
|
||||
$('tr.changeset td.id a').each(function(i){
|
||||
var revision = this.getAttribute("href");
|
||||
revision = revision.substr(revision.lastIndexOf("/") + 1);
|
||||
var review = review_counts['revision_' + revision];
|
||||
var td = $('<td/>',{
|
||||
'class':'progress'
|
||||
});
|
||||
td.html(review.progress);
|
||||
$(this.parentNode.parentNode).append(td);
|
||||
});
|
||||
}
|
||||
//add function $.down
|
||||
if(! $.fn.down)
|
||||
(function($) {
|
||||
$.fn.down = function() {
|
||||
var el = this[0] && this[0].firstChild;
|
||||
while (el && el.nodeType != 1)
|
||||
el = el.nextSibling;
|
||||
return $(el);
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
function UpdateRevisionView() {
|
||||
$('li.change').each(function(){
|
||||
var li = $(this);
|
||||
if (li.hasClass('folder')) return;
|
||||
|
||||
var a = li.down('a');
|
||||
if (a.size() == 0) return;
|
||||
var path = a.attr('href').replace(urlprefix, '').replace(/\?.*$/, '');
|
||||
|
||||
var reviewlist = code_reviews_map[path];
|
||||
if (reviewlist == null) return;
|
||||
|
||||
var ul = $('<ul></ul>');
|
||||
for (var j = 0; j < reviewlist.length; j++) {
|
||||
var review = reviewlist[j];
|
||||
var icon = review.is_closed? 'icon-closed-review': 'icon-review';
|
||||
var item = $('<li></li>', {
|
||||
'class': 'icon ' + icon + ' code_review_summary'
|
||||
});
|
||||
item.html(review.url);
|
||||
ul.append(item);
|
||||
}
|
||||
li.append(ul);
|
||||
});
|
||||
}
|
||||
|
||||
function setAddReviewButton(url, change_id, image_tag, is_readonly, is_diff, attachment_id){
|
||||
var filetables = [];
|
||||
var j = 0;
|
||||
$('table').each(function(){
|
||||
if($(this).hasClass('filecontent')){
|
||||
filetables[j++] = this;
|
||||
}
|
||||
});
|
||||
j = 0;
|
||||
$('table.filecontent th.filename').each(function(){
|
||||
filenames[j] = $.trim($(this).text());
|
||||
j++;
|
||||
});
|
||||
addReviewUrl = url + '?change_id=' + change_id + '&action_type=' + action_type +
|
||||
'&rev=' + rev + '&rev_to=' + rev_to +
|
||||
'&attachment_id=' + attachment_id + '&repository_id=' + encodeURIComponent(repository_id);
|
||||
if (path != null && path.length > 0) {
|
||||
addReviewUrl = addReviewUrl + '&path=' + encodeURIComponent(path);
|
||||
}
|
||||
var num = 0;
|
||||
if (is_diff) {
|
||||
num = 1;
|
||||
}
|
||||
var i, l, tl;
|
||||
for (i = 0, tl = filetables.length; i < tl; i++) {
|
||||
var table = filetables[i];
|
||||
var trs = table.getElementsByTagName('tr');
|
||||
|
||||
for (j = 0,l = trs.length; j < l; j++) {
|
||||
var tr = trs[j];
|
||||
var ths = tr.getElementsByTagName('th');
|
||||
|
||||
var th = ths[num];
|
||||
if (th == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var th_html = th.innerHTML;
|
||||
|
||||
var line = th_html.match(/[0-9]+/);
|
||||
if (line == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var span_html = '<span white-space="nowrap" id="review_span_' + line + '_' + i + '">';
|
||||
|
||||
if (!is_readonly) {
|
||||
span_html += image_tag;
|
||||
}
|
||||
span_html += '</span>';
|
||||
th.innerHTML = th_html + span_html;
|
||||
|
||||
var img = th.getElementsByTagName('img')[0];
|
||||
if (img != null ) {
|
||||
img.id = 'add_revew_img_' + line + '_' + i;
|
||||
$(img).click(clickPencil);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
function clickPencil(e)
|
||||
{
|
||||
// alert('$(e.target).attr("id") = ' + $(e.target).attr("id"));
|
||||
var result = $(e.target).attr("id").match(/([0-9]+)_([0-9]+)/);
|
||||
var line = result[1];
|
||||
var file_count = eval(result[2]);
|
||||
var url = addReviewUrl + '&line=' + line + '&file_count=' + file_count;
|
||||
|
||||
if (path == null || path.length == 0) {
|
||||
url = url + '&path=' + encodeURIComponent(filenames[file_count]) + '&diff_all=true';
|
||||
}
|
||||
addReview(url);
|
||||
formPopup(e.pageX, e.pageY);
|
||||
e.preventDefault();
|
||||
}
|
||||
var addReviewUrl = null;
|
||||
var showReviewUrl = null;
|
||||
var showReviewImageTag = null;
|
||||
var showClosedReviewImageTag = null;
|
||||
|
||||
function setShowReviewButton(line, review_id, is_closed, file_count) {
|
||||
//alert('file_count = ' + file_count);
|
||||
var span = $('#review_span_' + line + '_' + file_count);
|
||||
if (span.size() == 0) {
|
||||
return;
|
||||
}
|
||||
var innerSpan = $('<span></span>',{id: 'review_' + review_id});
|
||||
span.append(innerSpan);
|
||||
innerSpan.html(is_closed? showClosedReviewImageTag : showReviewImageTag);
|
||||
var div = $('<div></div>', {
|
||||
'class':'draggable',
|
||||
id: 'show_review_' + review_id
|
||||
});
|
||||
$('#code_review').append(div);
|
||||
innerSpan.down('img').click(function(e) {
|
||||
var review_id = $(e.target).parent().attr('id').match(/[0-9]+/)[0];
|
||||
var span = $('#review_' + review_id); // span element of view review button
|
||||
var pos = span.offset();
|
||||
showReview(showReviewUrl, review_id, pos.left + 10 + 5, pos.top + 25);
|
||||
});
|
||||
}
|
||||
|
||||
function popupReview(review_id) {
|
||||
var span = $('#review_' + review_id); // span element of view review button
|
||||
var pos = span.offset();
|
||||
$('html,body').animate({ scrollTop: pos.top },
|
||||
{duration: 'fast',
|
||||
complete: function(){showReview(showReviewUrl, review_id, pos.left + 10 + 5, pos.top)}});
|
||||
// position and show popup dialog
|
||||
// create popup dialog
|
||||
//var win = showReview(showReviewUrl, review_id, pos.left + 10 + 5, pos.top);
|
||||
// win.toFront();
|
||||
}
|
||||
|
||||
function showReview(url, review_id, x, y) {
|
||||
if (code_reviews_dialog_map[review_id] != null) {
|
||||
var cur_win = code_reviews_dialog_map[review_id];
|
||||
cur_win.hide();
|
||||
code_reviews_dialog_map[review_id] = null;
|
||||
}
|
||||
$('#show_review_' + review_id).load(url, {review_id: review_id});
|
||||
var review = getReviewObjById(review_id);
|
||||
|
||||
var win = $('#show_review_' + review_id).dialog({
|
||||
show: {effect:'scale'},// ? 'top-left'
|
||||
//position: [x, y + 5],
|
||||
width:640,
|
||||
zIndex: topZindex,
|
||||
title: review_dialog_title
|
||||
});
|
||||
// win.getContent().style.color = "#484848";
|
||||
// win.getContent().style.background = "#ffffff";
|
||||
topZindex++;
|
||||
code_reviews_dialog_map[review_id] = win;
|
||||
return win
|
||||
}
|
||||
|
||||
function getReviewObjById(review_id) {
|
||||
for (var reviewlist in code_reviews_map) {
|
||||
for (var i = 0; i < reviewlist.length; i++) {
|
||||
var review = reviewlist[i];
|
||||
if (review.id == review_id) {
|
||||
return review;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function formPopup(x, y){
|
||||
//@see http://docs.jquery.com/UI/Effects/Scale
|
||||
var win = $('#review-form-frame').dialog({
|
||||
show: {effect:'scale', direction: 'both'},// ? 'top-left'
|
||||
// position: [x, y + 5],
|
||||
width:640,
|
||||
zIndex: topZindex,
|
||||
title: add_form_title
|
||||
});
|
||||
// win.getContent().style.background = "#ffffff";
|
||||
if (review_form_dialog != null) {
|
||||
review_form_dialog.destroy();
|
||||
review_form_dialog = null;
|
||||
}
|
||||
review_form_dialog = win;
|
||||
topZindex += 10;
|
||||
return false;
|
||||
}
|
||||
|
||||
function hideForm() {
|
||||
if (review_form_dialog == null) {
|
||||
return;
|
||||
}
|
||||
review_form_dialog.dialog('close');
|
||||
review_form_dialog = null;
|
||||
$('#review-form').html('');
|
||||
}
|
||||
function addReview(url) {
|
||||
$('#review-form').load(url);
|
||||
}
|
||||
|
||||
function deleteReview(review_id) {
|
||||
$('show_review_' + review_id).remove();
|
||||
$('review_' + review_id).remove();
|
||||
|
||||
}
|
||||
|
||||
function changeImage(review_id, is_closed) {
|
||||
var span = $('review_' + review_id);
|
||||
var new_image = null;
|
||||
var dummy = new Element('span');
|
||||
if (is_closed) {
|
||||
dummy.insert(showClosedReviewImageTag);
|
||||
}
|
||||
else {
|
||||
dummy.insert(showReviewImageTag);
|
||||
}
|
||||
new_image = dummy.down().getAttribute('src');
|
||||
//alert(new_image);
|
||||
span.down('img').setAttribute('src', new_image);
|
||||
|
||||
}
|
||||
|
||||
function make_addreview_link(project, link) {
|
||||
var alist = $('#content p a');
|
||||
if (alist == null) {
|
||||
return;
|
||||
}
|
||||
var a = alist[0];
|
||||
var p = a.parentNode;
|
||||
p.innerHTML = p.innerHTML + " | " + link;
|
||||
}
|
||||
|
||||
function call_update_revisions(url) {
|
||||
var changeset_ids = '';
|
||||
var links = $$('table.changesets tbody tr.changeset td.id a');
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var link = links[i];
|
||||
var href = link.getAttribute('href');
|
||||
var id = href.replace(/^.*\/revisions\//, '');
|
||||
if (i > 0) {
|
||||
changeset_ids += ',';
|
||||
}
|
||||
changeset_ids += id;
|
||||
}
|
||||
new Ajax.Updater('code_review_revisions', url,
|
||||
{
|
||||
evalScripts:true,
|
||||
method:'get',
|
||||
parameters: 'changeset_ids=' + encodeURI(changeset_ids)
|
||||
});
|
||||
}
|
||||
|
||||
$.fn.serialize2json = function()
|
||||
{
|
||||
var o = {};
|
||||
var a = this.serializeArray();
|
||||
$.each(a, function() {
|
||||
if (o[this.name]) {
|
||||
if (!o[this.name].push) {
|
||||
o[this.name] = [o[this.name]];
|
||||
}
|
||||
o[this.name].push(this.value || '');
|
||||
} else {
|
||||
o[this.name] = this.value || '';
|
||||
}
|
||||
});
|
||||
return o;
|
||||
/*
|
||||
# Code Review plugin for Redmine
|
||||
# Copyright (C) 2009-2013 Haruyuki Iida
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
var topZindex = 1000;
|
||||
var action_type = '';
|
||||
var rev = '';
|
||||
var rev_to = '';
|
||||
var path = '';
|
||||
var urlprefix = '';
|
||||
var review_form_dialog = null;
|
||||
var add_form_title = null;
|
||||
var review_dialog_title = null;
|
||||
var repository_id = null;
|
||||
var filenames = [];
|
||||
|
||||
var ReviewCount = function(total, open, progress){
|
||||
this.total = total;
|
||||
this.open = open;
|
||||
this.closed = total - open;
|
||||
this.progress = progress
|
||||
};
|
||||
|
||||
var CodeReview = function(id) {
|
||||
this.id = id;
|
||||
this.path = '';
|
||||
this.line = 0;
|
||||
this.url = '';
|
||||
this.is_closed = false;
|
||||
};
|
||||
|
||||
var review_counts = new Array();
|
||||
var code_reviews_map = new Array();
|
||||
var code_reviews_dialog_map = new Array();
|
||||
|
||||
function UpdateRepositoryView(title) {
|
||||
var header = $("table.changesets thead tr:first");
|
||||
var th = $('<th></th>');
|
||||
th.html(title);
|
||||
header.append(th);
|
||||
$('tr.changeset td.id a').each(function(i){
|
||||
var revision = this.getAttribute("href");
|
||||
revision = revision.substr(revision.lastIndexOf("/") + 1);
|
||||
var review = review_counts['revision_' + revision];
|
||||
var td = $('<td/>',{
|
||||
'class':'progress'
|
||||
});
|
||||
td.html(review.progress);
|
||||
$(this.parentNode.parentNode).append(td);
|
||||
});
|
||||
}
|
||||
//add function $.down
|
||||
if(! $.fn.down)
|
||||
(function($) {
|
||||
$.fn.down = function() {
|
||||
var el = this[0] && this[0].firstChild;
|
||||
while (el && el.nodeType != 1)
|
||||
el = el.nextSibling;
|
||||
return $(el);
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
function UpdateRevisionView() {
|
||||
$('li.change').each(function(){
|
||||
var li = $(this);
|
||||
if (li.hasClass('folder')) return;
|
||||
|
||||
var a = li.down('a');
|
||||
if (a.size() == 0) return;
|
||||
var path = a.attr('href').replace(urlprefix, '').replace(/\?.*$/, '');
|
||||
|
||||
var reviewlist = code_reviews_map[path];
|
||||
if (reviewlist == null) return;
|
||||
|
||||
var ul = $('<ul></ul>');
|
||||
for (var j = 0; j < reviewlist.length; j++) {
|
||||
var review = reviewlist[j];
|
||||
var icon = review.is_closed? 'icon-closed-review': 'icon-review';
|
||||
var item = $('<li></li>', {
|
||||
'class': 'icon ' + icon + ' code_review_summary'
|
||||
});
|
||||
item.html(review.url);
|
||||
ul.append(item);
|
||||
}
|
||||
li.append(ul);
|
||||
});
|
||||
}
|
||||
|
||||
function setAddReviewButton(url, change_id, image_tag, is_readonly, is_diff, attachment_id){
|
||||
var filetables = [];
|
||||
var j = 0;
|
||||
$('table').each(function(){
|
||||
if($(this).hasClass('filecontent')){
|
||||
filetables[j++] = this;
|
||||
}
|
||||
});
|
||||
j = 0;
|
||||
$('table.filecontent th.filename').each(function(){
|
||||
filenames[j] = $.trim($(this).text());
|
||||
j++;
|
||||
});
|
||||
addReviewUrl = url + '?change_id=' + change_id + '&action_type=' + action_type +
|
||||
'&rev=' + rev + '&rev_to=' + rev_to +
|
||||
'&attachment_id=' + attachment_id + '&repository_id=' + encodeURIComponent(repository_id);
|
||||
if (path != null && path.length > 0) {
|
||||
addReviewUrl = addReviewUrl + '&path=' + encodeURIComponent(path);
|
||||
}
|
||||
var num = 0;
|
||||
if (is_diff) {
|
||||
num = 1;
|
||||
}
|
||||
var i, l, tl;
|
||||
for (i = 0, tl = filetables.length; i < tl; i++) {
|
||||
var table = filetables[i];
|
||||
var trs = table.getElementsByTagName('tr');
|
||||
|
||||
for (j = 0,l = trs.length; j < l; j++) {
|
||||
var tr = trs[j];
|
||||
var ths = tr.getElementsByTagName('th');
|
||||
|
||||
var th = ths[num];
|
||||
if (th == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var th_html = th.innerHTML;
|
||||
|
||||
var line = th_html.match(/[0-9]+/);
|
||||
if (line == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var span_html = '<span white-space="nowrap" id="review_span_' + line + '_' + i + '">';
|
||||
|
||||
if (!is_readonly) {
|
||||
span_html += image_tag;
|
||||
}
|
||||
span_html += '</span>';
|
||||
th.innerHTML = th_html + span_html;
|
||||
|
||||
var img = th.getElementsByTagName('img')[0];
|
||||
if (img != null ) {
|
||||
img.id = 'add_revew_img_' + line + '_' + i;
|
||||
$(img).click(clickPencil);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
function clickPencil(e)
|
||||
{
|
||||
// alert('$(e.target).attr("id") = ' + $(e.target).attr("id"));
|
||||
var result = $(e.target).attr("id").match(/([0-9]+)_([0-9]+)/);
|
||||
var line = result[1];
|
||||
var file_count = eval(result[2]);
|
||||
var url = addReviewUrl + '&line=' + line + '&file_count=' + file_count;
|
||||
|
||||
if (path == null || path.length == 0) {
|
||||
url = url + '&path=' + encodeURIComponent(filenames[file_count]) + '&diff_all=true';
|
||||
}
|
||||
addReview(url);
|
||||
formPopup(e.pageX, e.pageY);
|
||||
e.preventDefault();
|
||||
}
|
||||
var addReviewUrl = null;
|
||||
var showReviewUrl = null;
|
||||
var showReviewImageTag = null;
|
||||
var showClosedReviewImageTag = null;
|
||||
|
||||
function setShowReviewButton(line, review_id, is_closed, file_count) {
|
||||
//alert('file_count = ' + file_count);
|
||||
var span = $('#review_span_' + line + '_' + file_count);
|
||||
if (span.size() == 0) {
|
||||
return;
|
||||
}
|
||||
var innerSpan = $('<span></span>',{id: 'review_' + review_id});
|
||||
span.append(innerSpan);
|
||||
innerSpan.html(is_closed? showClosedReviewImageTag : showReviewImageTag);
|
||||
var div = $('<div></div>', {
|
||||
'class':'draggable',
|
||||
id: 'show_review_' + review_id
|
||||
});
|
||||
$('#code_review').append(div);
|
||||
innerSpan.down('img').click(function(e) {
|
||||
var review_id = $(e.target).parent().attr('id').match(/[0-9]+/)[0];
|
||||
var span = $('#review_' + review_id); // span element of view review button
|
||||
var pos = span.offset();
|
||||
showReview(showReviewUrl, review_id, pos.left + 10 + 5, pos.top + 25);
|
||||
});
|
||||
}
|
||||
|
||||
function popupReview(review_id) {
|
||||
var span = $('#review_' + review_id); // span element of view review button
|
||||
var pos = span.offset();
|
||||
$('html,body').animate({ scrollTop: pos.top },
|
||||
{duration: 'fast',
|
||||
complete: function(){showReview(showReviewUrl, review_id, pos.left + 10 + 5, pos.top)}});
|
||||
// position and show popup dialog
|
||||
// create popup dialog
|
||||
//var win = showReview(showReviewUrl, review_id, pos.left + 10 + 5, pos.top);
|
||||
// win.toFront();
|
||||
}
|
||||
|
||||
function showReview(url, review_id, x, y) {
|
||||
if (code_reviews_dialog_map[review_id] != null) {
|
||||
var cur_win = code_reviews_dialog_map[review_id];
|
||||
cur_win.hide();
|
||||
code_reviews_dialog_map[review_id] = null;
|
||||
}
|
||||
$('#show_review_' + review_id).load(url, {review_id: review_id});
|
||||
var review = getReviewObjById(review_id);
|
||||
|
||||
var win = $('#show_review_' + review_id).dialog({
|
||||
show: {effect:'scale'},// ? 'top-left'
|
||||
//position: [x, y + 5],
|
||||
width:640,
|
||||
zIndex: topZindex,
|
||||
title: review_dialog_title
|
||||
});
|
||||
// win.getContent().style.color = "#484848";
|
||||
// win.getContent().style.background = "#ffffff";
|
||||
topZindex++;
|
||||
code_reviews_dialog_map[review_id] = win;
|
||||
return win
|
||||
}
|
||||
|
||||
function getReviewObjById(review_id) {
|
||||
for (var reviewlist in code_reviews_map) {
|
||||
for (var i = 0; i < reviewlist.length; i++) {
|
||||
var review = reviewlist[i];
|
||||
if (review.id == review_id) {
|
||||
return review;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function formPopup(x, y){
|
||||
//@see http://docs.jquery.com/UI/Effects/Scale
|
||||
var win = $('#review-form-frame').dialog({
|
||||
show: {effect:'scale', direction: 'both'},// ? 'top-left'
|
||||
// position: [x, y + 5],
|
||||
width:640,
|
||||
zIndex: topZindex,
|
||||
title: add_form_title
|
||||
});
|
||||
// win.getContent().style.background = "#ffffff";
|
||||
if (review_form_dialog != null) {
|
||||
review_form_dialog.destroy();
|
||||
review_form_dialog = null;
|
||||
}
|
||||
review_form_dialog = win;
|
||||
topZindex += 10;
|
||||
return false;
|
||||
}
|
||||
|
||||
function hideForm() {
|
||||
if (review_form_dialog == null) {
|
||||
return;
|
||||
}
|
||||
review_form_dialog.dialog('close');
|
||||
review_form_dialog = null;
|
||||
$('#review-form').html('');
|
||||
}
|
||||
function addReview(url) {
|
||||
$('#review-form').load(url);
|
||||
}
|
||||
|
||||
function deleteReview(review_id) {
|
||||
$('show_review_' + review_id).remove();
|
||||
$('review_' + review_id).remove();
|
||||
|
||||
}
|
||||
|
||||
function changeImage(review_id, is_closed) {
|
||||
var span = $('review_' + review_id);
|
||||
var new_image = null;
|
||||
var dummy = new Element('span');
|
||||
if (is_closed) {
|
||||
dummy.insert(showClosedReviewImageTag);
|
||||
}
|
||||
else {
|
||||
dummy.insert(showReviewImageTag);
|
||||
}
|
||||
new_image = dummy.down().getAttribute('src');
|
||||
//alert(new_image);
|
||||
span.down('img').setAttribute('src', new_image);
|
||||
|
||||
}
|
||||
|
||||
function make_addreview_link(project, link) {
|
||||
var alist = $('#content p a');
|
||||
if (alist == null) {
|
||||
return;
|
||||
}
|
||||
var a = alist[0];
|
||||
var p = a.parentNode;
|
||||
p.innerHTML = p.innerHTML + " | " + link;
|
||||
}
|
||||
|
||||
function call_update_revisions(url) {
|
||||
var changeset_ids = '';
|
||||
var links = $$('table.changesets tbody tr.changeset td.id a');
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var link = links[i];
|
||||
var href = link.getAttribute('href');
|
||||
var id = href.replace(/^.*\/revisions\//, '');
|
||||
if (i > 0) {
|
||||
changeset_ids += ',';
|
||||
}
|
||||
changeset_ids += id;
|
||||
}
|
||||
new Ajax.Updater('code_review_revisions', url,
|
||||
{
|
||||
evalScripts:true,
|
||||
method:'get',
|
||||
parameters: 'changeset_ids=' + encodeURI(changeset_ids)
|
||||
});
|
||||
}
|
||||
|
||||
$.fn.serialize2json = function()
|
||||
{
|
||||
var o = {};
|
||||
var a = this.serializeArray();
|
||||
$.each(a, function() {
|
||||
if (o[this.name]) {
|
||||
if (!o[this.name].push) {
|
||||
o[this.name] = [o[this.name]];
|
||||
}
|
||||
o[this.name].push(this.value || '');
|
||||
} else {
|
||||
o[this.name] = this.value || '';
|
||||
}
|
||||
});
|
||||
return o;
|
||||
};
|
|
@ -1,4 +1,4 @@
|
|||
|
||||
dt.code_review {
|
||||
background-image: url(../images/review.png);
|
||||
|
||||
dt.code_review {
|
||||
background-image: url(../images/review.png);
|
||||
}
|
|
@ -1,97 +1,97 @@
|
|||
/*
|
||||
# Code Review plugin for Redmine
|
||||
# Copyright (C) 2009 Haruyuki Iida
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
#review-form-frame {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.autoscroll table.filecontent th.line-num {
|
||||
white-space: nowrap;
|
||||
vertical-align: bottom;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
table.filecontent th.line-num img{
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
.code-review-form-title {
|
||||
background-color: #002059;
|
||||
color: white;
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
|
||||
.code_review_viewer {
|
||||
|
||||
min-width: 300px;
|
||||
/*
|
||||
max-width: 60%;
|
||||
*/
|
||||
/* max-height: 400px; */
|
||||
}
|
||||
|
||||
.code_review_viewer .issue{
|
||||
|
||||
}
|
||||
|
||||
.code_review_body {
|
||||
background-color: white;
|
||||
|
||||
padding:2px;
|
||||
|
||||
}
|
||||
|
||||
#code_review_list table.list td {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#code_review_list table.list td.path {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#code_review_list table.list td.subject {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.icon-review {
|
||||
background-image: url(../images/review.png);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.icon-closed-review {
|
||||
background-image: url(../images/closed_review.png);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.icon-settings {
|
||||
background-image: url(../../../images/changeset.png);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
|
||||
li.code_review_summary {
|
||||
list-style-type: none;
|
||||
/*
|
||||
# Code Review plugin for Redmine
|
||||
# Copyright (C) 2009 Haruyuki Iida
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
#review-form-frame {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.autoscroll table.filecontent th.line-num {
|
||||
white-space: nowrap;
|
||||
vertical-align: bottom;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
table.filecontent th.line-num img{
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
.code-review-form-title {
|
||||
background-color: #002059;
|
||||
color: white;
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
|
||||
.code_review_viewer {
|
||||
|
||||
min-width: 300px;
|
||||
/*
|
||||
max-width: 60%;
|
||||
*/
|
||||
/* max-height: 400px; */
|
||||
}
|
||||
|
||||
.code_review_viewer .issue{
|
||||
|
||||
}
|
||||
|
||||
.code_review_body {
|
||||
background-color: white;
|
||||
|
||||
padding:2px;
|
||||
|
||||
}
|
||||
|
||||
#code_review_list table.list td {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#code_review_list table.list td.path {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#code_review_list table.list td.subject {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.icon-review {
|
||||
background-image: url(../images/review.png);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.icon-closed-review {
|
||||
background-image: url(../images/closed_review.png);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.icon-settings {
|
||||
background-image: url(../../../images/changeset.png);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
|
||||
li.code_review_summary {
|
||||
list-style-type: none;
|
||||
}
|
|
@ -1,19 +1,19 @@
|
|||
Copyright (c) 2006 Sébastien Gruhier (http://xilinus.com, http://itseb.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
Copyright (c) 2006 Sébastien Gruhier (http://xilinus.com, http://itseb.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
|
|
@ -1,119 +1,119 @@
|
|||
.overlay_alert {
|
||||
background-color: #85BBEF;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.alert_nw {
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
background: transparent url(alert/top_left.gif) no-repeat bottom left;
|
||||
}
|
||||
|
||||
.alert_n {
|
||||
height: 5px;
|
||||
background: transparent url(alert/top.gif) repeat-x bottom left;
|
||||
}
|
||||
|
||||
.alert_ne {
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
background: transparent url(alert/top_right.gif) no-repeat bottom left
|
||||
}
|
||||
|
||||
.alert_e {
|
||||
width: 5px;
|
||||
background: transparent url(alert/right.gif) repeat-y 0 0;
|
||||
}
|
||||
|
||||
.alert_w {
|
||||
width: 5px;
|
||||
background: transparent url(alert/left.gif) repeat-y 0 0;
|
||||
}
|
||||
|
||||
.alert_sw {
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
background: transparent url(alert/bottom_left.gif) no-repeat 0 0;
|
||||
}
|
||||
|
||||
.alert_s {
|
||||
height: 5px;
|
||||
background: transparent url(alert/bottom.gif) repeat-x 0 0;
|
||||
}
|
||||
|
||||
.alert_se, .alert_sizer {
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
background: transparent url(alert/bottom_right.gif) no-repeat 0 0;
|
||||
}
|
||||
|
||||
.alert_close {
|
||||
width:0px;
|
||||
height:0px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.alert_minimize {
|
||||
width:0px;
|
||||
height:0px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.alert_maximize {
|
||||
width:0px;
|
||||
height:0px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.alert_title {
|
||||
float:left;
|
||||
height:1px;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.alert_content {
|
||||
overflow:visible;
|
||||
color: #000;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font: 12px arial;
|
||||
background: #FFF;
|
||||
}
|
||||
|
||||
/* For alert/confirm dialog */
|
||||
.alert_window {
|
||||
background: #FFF;
|
||||
padding:20px;
|
||||
margin-left:auto;
|
||||
margin-right:auto;
|
||||
width:400px;
|
||||
}
|
||||
|
||||
.alert_message {
|
||||
font: 12px arial;
|
||||
width:100%;
|
||||
color:#F00;
|
||||
padding-bottom:10px;
|
||||
}
|
||||
|
||||
.alert_buttons {
|
||||
text-align:center;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.alert_buttons input {
|
||||
width:20%;
|
||||
margin:10px;
|
||||
}
|
||||
|
||||
.alert_progress {
|
||||
float:left;
|
||||
margin:auto;
|
||||
text-align:center;
|
||||
width:100%;
|
||||
height:16px;
|
||||
background: #FFF url('alert/progress.gif') no-repeat center center
|
||||
}
|
||||
|
||||
|
||||
.overlay_alert {
|
||||
background-color: #85BBEF;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.alert_nw {
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
background: transparent url(alert/top_left.gif) no-repeat bottom left;
|
||||
}
|
||||
|
||||
.alert_n {
|
||||
height: 5px;
|
||||
background: transparent url(alert/top.gif) repeat-x bottom left;
|
||||
}
|
||||
|
||||
.alert_ne {
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
background: transparent url(alert/top_right.gif) no-repeat bottom left
|
||||
}
|
||||
|
||||
.alert_e {
|
||||
width: 5px;
|
||||
background: transparent url(alert/right.gif) repeat-y 0 0;
|
||||
}
|
||||
|
||||
.alert_w {
|
||||
width: 5px;
|
||||
background: transparent url(alert/left.gif) repeat-y 0 0;
|
||||
}
|
||||
|
||||
.alert_sw {
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
background: transparent url(alert/bottom_left.gif) no-repeat 0 0;
|
||||
}
|
||||
|
||||
.alert_s {
|
||||
height: 5px;
|
||||
background: transparent url(alert/bottom.gif) repeat-x 0 0;
|
||||
}
|
||||
|
||||
.alert_se, .alert_sizer {
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
background: transparent url(alert/bottom_right.gif) no-repeat 0 0;
|
||||
}
|
||||
|
||||
.alert_close {
|
||||
width:0px;
|
||||
height:0px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.alert_minimize {
|
||||
width:0px;
|
||||
height:0px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.alert_maximize {
|
||||
width:0px;
|
||||
height:0px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.alert_title {
|
||||
float:left;
|
||||
height:1px;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.alert_content {
|
||||
overflow:visible;
|
||||
color: #000;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font: 12px arial;
|
||||
background: #FFF;
|
||||
}
|
||||
|
||||
/* For alert/confirm dialog */
|
||||
.alert_window {
|
||||
background: #FFF;
|
||||
padding:20px;
|
||||
margin-left:auto;
|
||||
margin-right:auto;
|
||||
width:400px;
|
||||
}
|
||||
|
||||
.alert_message {
|
||||
font: 12px arial;
|
||||
width:100%;
|
||||
color:#F00;
|
||||
padding-bottom:10px;
|
||||
}
|
||||
|
||||
.alert_buttons {
|
||||
text-align:center;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.alert_buttons input {
|
||||
width:20%;
|
||||
margin:10px;
|
||||
}
|
||||
|
||||
.alert_progress {
|
||||
float:left;
|
||||
margin:auto;
|
||||
text-align:center;
|
||||
width:100%;
|
||||
height:16px;
|
||||
background: #FFF url('alert/progress.gif') no-repeat center center
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,88 +1,88 @@
|
|||
.overlay_alert_lite {
|
||||
background-color: #85BBEF;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.alert_lite_sizer {
|
||||
width:0px;
|
||||
height:0px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.alert_lite_close {
|
||||
width:0px;
|
||||
height:0px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.alert_lite_minimize {
|
||||
width:0px;
|
||||
height:0px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.alert_lite_maximize {
|
||||
width:0px;
|
||||
height:0px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.alert_lite_title {
|
||||
width:0px;
|
||||
height:0px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.alert_lite_content {
|
||||
overflow:auto;
|
||||
color: #000;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size: 10px;
|
||||
background: #FFF;
|
||||
}
|
||||
|
||||
|
||||
/* For alert/confirm dialog */
|
||||
.alert_lite_window {
|
||||
border:1px solid #F00;
|
||||
background: #FFF;
|
||||
padding:20px;
|
||||
margin-left:auto;
|
||||
margin-right:auto;
|
||||
width:400px;
|
||||
}
|
||||
|
||||
.alert_lite_message {
|
||||
font-size:16px;
|
||||
text-align:center;
|
||||
width:100%;
|
||||
color:#F00;
|
||||
padding-bottom:10px;
|
||||
}
|
||||
|
||||
.alert_lite_buttons {
|
||||
text-align:center;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.alert_lite_buttons input {
|
||||
width:20%;
|
||||
margin:10px;
|
||||
}
|
||||
|
||||
.alert_lite_progress {
|
||||
float:left;
|
||||
margin:auto;
|
||||
text-align:center;
|
||||
width:100%;
|
||||
height:16px;
|
||||
background: #FFF url('alert/progress.gif') no-repeat center center
|
||||
}
|
||||
|
||||
table.alert_lite_header {
|
||||
border:1px solid #F00;
|
||||
background:#FFF
|
||||
}
|
||||
|
||||
.overlay_alert_lite {
|
||||
background-color: #85BBEF;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.alert_lite_sizer {
|
||||
width:0px;
|
||||
height:0px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.alert_lite_close {
|
||||
width:0px;
|
||||
height:0px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.alert_lite_minimize {
|
||||
width:0px;
|
||||
height:0px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.alert_lite_maximize {
|
||||
width:0px;
|
||||
height:0px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.alert_lite_title {
|
||||
width:0px;
|
||||
height:0px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.alert_lite_content {
|
||||
overflow:auto;
|
||||
color: #000;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size: 10px;
|
||||
background: #FFF;
|
||||
}
|
||||
|
||||
|
||||
/* For alert/confirm dialog */
|
||||
.alert_lite_window {
|
||||
border:1px solid #F00;
|
||||
background: #FFF;
|
||||
padding:20px;
|
||||
margin-left:auto;
|
||||
margin-right:auto;
|
||||
width:400px;
|
||||
}
|
||||
|
||||
.alert_lite_message {
|
||||
font-size:16px;
|
||||
text-align:center;
|
||||
width:100%;
|
||||
color:#F00;
|
||||
padding-bottom:10px;
|
||||
}
|
||||
|
||||
.alert_lite_buttons {
|
||||
text-align:center;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.alert_lite_buttons input {
|
||||
width:20%;
|
||||
margin:10px;
|
||||
}
|
||||
|
||||
.alert_lite_progress {
|
||||
float:left;
|
||||
margin:auto;
|
||||
text-align:center;
|
||||
width:100%;
|
||||
height:16px;
|
||||
background: #FFF url('alert/progress.gif') no-repeat center center
|
||||
}
|
||||
|
||||
table.alert_lite_header {
|
||||
border:1px solid #F00;
|
||||
background:#FFF
|
||||
}
|
||||
|
||||
|
|
|
@ -1,150 +1,150 @@
|
|||
.overlay_alphacube {
|
||||
background-color: #85BBEF;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.alphacube_nw {
|
||||
background: transparent url(alphacube/left-top.gif) no-repeat 0 0;
|
||||
width:10px;
|
||||
height:25px;
|
||||
}
|
||||
|
||||
.alphacube_n {
|
||||
background: transparent url(alphacube/top-middle.gif) repeat-x 0 0;
|
||||
height:25px;
|
||||
}
|
||||
|
||||
.alphacube_ne {
|
||||
background: transparent url(alphacube/right-top.gif) no-repeat 0 0;
|
||||
width:10px;
|
||||
height:25px;
|
||||
}
|
||||
|
||||
.alphacube_w {
|
||||
background: transparent url(alphacube/frame-left.gif) repeat-y top left;
|
||||
width:7px;
|
||||
}
|
||||
|
||||
.alphacube_e {
|
||||
background: transparent url(alphacube/frame-right.gif) repeat-y top right;
|
||||
width:7px;
|
||||
}
|
||||
|
||||
.alphacube_sw {
|
||||
background: transparent url(alphacube/bottom-left-c.gif) no-repeat 0 0;
|
||||
width:7px;
|
||||
height:7px;
|
||||
}
|
||||
|
||||
.alphacube_s {
|
||||
background: transparent url(alphacube/bottom-middle.gif) repeat-x 0 0;
|
||||
height:7px;
|
||||
}
|
||||
|
||||
.alphacube_se, .alphacube_sizer {
|
||||
background: transparent url(alphacube/bottom-right-c.gif) no-repeat 0 0;
|
||||
width:7px;
|
||||
height:7px;
|
||||
}
|
||||
|
||||
.alphacube_sizer {
|
||||
cursor:se-resize;
|
||||
}
|
||||
|
||||
.alphacube_close {
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
background: transparent url(alphacube/button-close-focus.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:11px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.alphacube_minimize {
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
background: transparent url(alphacube/button-min-focus.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:55px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.alphacube_maximize {
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
background: transparent url(alphacube/button-max-focus.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:33px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.alphacube_title {
|
||||
float:left;
|
||||
height:14px;
|
||||
font-size:14px;
|
||||
text-align:center;
|
||||
margin-top:2px;
|
||||
width:100%;
|
||||
color:#123456;
|
||||
}
|
||||
|
||||
.alphacube_content {
|
||||
overflow:auto;
|
||||
color: #000;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font: 12px arial;
|
||||
background:#FDFDFD;
|
||||
}
|
||||
|
||||
/* For alert/confirm dialog */
|
||||
.alphacube_window {
|
||||
border:1px solid #F00;
|
||||
background: #FFF;
|
||||
padding:20px;
|
||||
margin-left:auto;
|
||||
margin-right:auto;
|
||||
width:400px;
|
||||
}
|
||||
|
||||
.alphacube_message {
|
||||
font: 12px arial;
|
||||
text-align:center;
|
||||
width:100%;
|
||||
padding-bottom:10px;
|
||||
}
|
||||
|
||||
.alphacube_buttons {
|
||||
text-align:center;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.alphacube_buttons input {
|
||||
width:20%;
|
||||
margin:10px;
|
||||
}
|
||||
|
||||
.alphacube_progress {
|
||||
float:left;
|
||||
margin:auto;
|
||||
text-align:center;
|
||||
width:100%;
|
||||
height:16px;
|
||||
background: #FFF url('alert/progress.gif') no-repeat center center
|
||||
}
|
||||
|
||||
.alphacube_wired_frame {
|
||||
background: #FFF;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.overlay_alphacube {
|
||||
background-color: #85BBEF;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.alphacube_nw {
|
||||
background: transparent url(alphacube/left-top.gif) no-repeat 0 0;
|
||||
width:10px;
|
||||
height:25px;
|
||||
}
|
||||
|
||||
.alphacube_n {
|
||||
background: transparent url(alphacube/top-middle.gif) repeat-x 0 0;
|
||||
height:25px;
|
||||
}
|
||||
|
||||
.alphacube_ne {
|
||||
background: transparent url(alphacube/right-top.gif) no-repeat 0 0;
|
||||
width:10px;
|
||||
height:25px;
|
||||
}
|
||||
|
||||
.alphacube_w {
|
||||
background: transparent url(alphacube/frame-left.gif) repeat-y top left;
|
||||
width:7px;
|
||||
}
|
||||
|
||||
.alphacube_e {
|
||||
background: transparent url(alphacube/frame-right.gif) repeat-y top right;
|
||||
width:7px;
|
||||
}
|
||||
|
||||
.alphacube_sw {
|
||||
background: transparent url(alphacube/bottom-left-c.gif) no-repeat 0 0;
|
||||
width:7px;
|
||||
height:7px;
|
||||
}
|
||||
|
||||
.alphacube_s {
|
||||
background: transparent url(alphacube/bottom-middle.gif) repeat-x 0 0;
|
||||
height:7px;
|
||||
}
|
||||
|
||||
.alphacube_se, .alphacube_sizer {
|
||||
background: transparent url(alphacube/bottom-right-c.gif) no-repeat 0 0;
|
||||
width:7px;
|
||||
height:7px;
|
||||
}
|
||||
|
||||
.alphacube_sizer {
|
||||
cursor:se-resize;
|
||||
}
|
||||
|
||||
.alphacube_close {
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
background: transparent url(alphacube/button-close-focus.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:11px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.alphacube_minimize {
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
background: transparent url(alphacube/button-min-focus.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:55px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.alphacube_maximize {
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
background: transparent url(alphacube/button-max-focus.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:33px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.alphacube_title {
|
||||
float:left;
|
||||
height:14px;
|
||||
font-size:14px;
|
||||
text-align:center;
|
||||
margin-top:2px;
|
||||
width:100%;
|
||||
color:#123456;
|
||||
}
|
||||
|
||||
.alphacube_content {
|
||||
overflow:auto;
|
||||
color: #000;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font: 12px arial;
|
||||
background:#FDFDFD;
|
||||
}
|
||||
|
||||
/* For alert/confirm dialog */
|
||||
.alphacube_window {
|
||||
border:1px solid #F00;
|
||||
background: #FFF;
|
||||
padding:20px;
|
||||
margin-left:auto;
|
||||
margin-right:auto;
|
||||
width:400px;
|
||||
}
|
||||
|
||||
.alphacube_message {
|
||||
font: 12px arial;
|
||||
text-align:center;
|
||||
width:100%;
|
||||
padding-bottom:10px;
|
||||
}
|
||||
|
||||
.alphacube_buttons {
|
||||
text-align:center;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.alphacube_buttons input {
|
||||
width:20%;
|
||||
margin:10px;
|
||||
}
|
||||
|
||||
.alphacube_progress {
|
||||
float:left;
|
||||
margin:auto;
|
||||
text-align:center;
|
||||
width:100%;
|
||||
height:16px;
|
||||
background: #FFF url('alert/progress.gif') no-repeat center center
|
||||
}
|
||||
|
||||
.alphacube_wired_frame {
|
||||
background: #FFF;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,51 +1,51 @@
|
|||
<public:component>
|
||||
<public:attach event="onpropertychange" onevent="propertyChanged()" />
|
||||
<script>
|
||||
|
||||
var supported = /MSIE (5\.5)|[6789]/.test(navigator.userAgent) && navigator.platform == "Win32";
|
||||
var realSrc;
|
||||
var blankSrc = "blank.gif";
|
||||
|
||||
if (supported) fixImage();
|
||||
|
||||
function propertyChanged() {
|
||||
if (!supported) return;
|
||||
|
||||
var pName = event.propertyName;
|
||||
if (pName != "src") return;
|
||||
// if not set to blank
|
||||
if ( ! new RegExp(blankSrc).test(src))
|
||||
fixImage();
|
||||
};
|
||||
|
||||
function fixImage() {
|
||||
// get src
|
||||
var src = element.src;
|
||||
|
||||
// check for real change
|
||||
if (src == realSrc) {
|
||||
element.src = blankSrc;
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! new RegExp(blankSrc).test(src)) {
|
||||
// backup old src
|
||||
realSrc = src;
|
||||
}
|
||||
|
||||
// test for png
|
||||
if ( /\.png$/.test( realSrc.toLowerCase() ) ) {
|
||||
// set blank image
|
||||
element.src = blankSrc;
|
||||
// set filter
|
||||
element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" +
|
||||
src + "',sizingMethod='scale')";
|
||||
}
|
||||
else {
|
||||
// remove filter
|
||||
element.runtimeStyle.filter = "";
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<public:component>
|
||||
<public:attach event="onpropertychange" onevent="propertyChanged()" />
|
||||
<script>
|
||||
|
||||
var supported = /MSIE (5\.5)|[6789]/.test(navigator.userAgent) && navigator.platform == "Win32";
|
||||
var realSrc;
|
||||
var blankSrc = "blank.gif";
|
||||
|
||||
if (supported) fixImage();
|
||||
|
||||
function propertyChanged() {
|
||||
if (!supported) return;
|
||||
|
||||
var pName = event.propertyName;
|
||||
if (pName != "src") return;
|
||||
// if not set to blank
|
||||
if ( ! new RegExp(blankSrc).test(src))
|
||||
fixImage();
|
||||
};
|
||||
|
||||
function fixImage() {
|
||||
// get src
|
||||
var src = element.src;
|
||||
|
||||
// check for real change
|
||||
if (src == realSrc) {
|
||||
element.src = blankSrc;
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! new RegExp(blankSrc).test(src)) {
|
||||
// backup old src
|
||||
realSrc = src;
|
||||
}
|
||||
|
||||
// test for png
|
||||
if ( /\.png$/.test( realSrc.toLowerCase() ) ) {
|
||||
// set blank image
|
||||
element.src = blankSrc;
|
||||
// set filter
|
||||
element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" +
|
||||
src + "',sizingMethod='scale')";
|
||||
}
|
||||
else {
|
||||
// remove filter
|
||||
element.runtimeStyle.filter = "";
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
</public:component>
|
|
@ -1,121 +1,121 @@
|
|||
.overlay_darkX {
|
||||
background-color: #85BBEF;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.darkX_nw {
|
||||
background: transparent url(darkX/titlebar-left-focused.png) no-repeat 0 0;
|
||||
width:6px;
|
||||
height:21px;
|
||||
}
|
||||
.darkX_n {
|
||||
background: transparent url(darkX/titlebar-mid-focused.png) repeat-x 0 0;
|
||||
height:21px;
|
||||
}
|
||||
.darkX_ne {
|
||||
background: transparent url(darkX/titlebar-right-focused.png) no-repeat 0 0;
|
||||
width:6px;
|
||||
height:21px;
|
||||
}
|
||||
.darkX_w {
|
||||
background: transparent url(darkX/frame-left-focused.png) repeat-y top left;
|
||||
width:3px;
|
||||
}
|
||||
|
||||
.darkX_e {
|
||||
background: transparent url(darkX/frame-right-focused.png) repeat-y top right;
|
||||
width:3px;
|
||||
}
|
||||
|
||||
.darkX_sw {
|
||||
background: transparent url(darkX/frame-bottom-left-focused.png) no-repeat 0 0;
|
||||
width:5px;
|
||||
height:3px;
|
||||
}
|
||||
.darkX_s {
|
||||
background: transparent url(darkX/frame-bottom-mid-focused.png) repeat-x 0 0;
|
||||
height:3px;
|
||||
}
|
||||
.darkX_se, .darkX_sizer {
|
||||
background: transparent url(darkX/frame-bottom-right-focused.png) no-repeat 0 0;
|
||||
width:5px;
|
||||
height:3px;
|
||||
}
|
||||
|
||||
.darkX_sizer {
|
||||
cursor:se-resize;
|
||||
}
|
||||
|
||||
.darkX_close {
|
||||
width: 21px;
|
||||
height: 21px;
|
||||
background: transparent url(darkX/button-close-focused.png) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:5px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.darkX_minimize {
|
||||
width: 21px;
|
||||
height: 21px;
|
||||
background: transparent url(darkX/button-minimize-focused.png) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:26px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.darkX_maximize {
|
||||
width: 21px;
|
||||
height: 21px;
|
||||
background: transparent url(darkX/button-maximize-focused.png) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:47px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
|
||||
.darkX_title {
|
||||
float:left;
|
||||
height:14px;
|
||||
font-size:12px;
|
||||
text-align:center;
|
||||
margin-top:2px;
|
||||
width:100%;
|
||||
color:#FFF;
|
||||
}
|
||||
|
||||
.darkX_content {
|
||||
overflow:auto;
|
||||
color: #E6DF2A;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size: 14px;
|
||||
background:#5E5148;
|
||||
}
|
||||
|
||||
|
||||
/* FOR IE */
|
||||
* html .darkX_minimize {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/darkX/button-minimize-focused.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .darkX_maximize {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/darkX/button-maximize-focused.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .darkX_close {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/darkX/button-close-focused.png", sizingMethod="crop");
|
||||
}
|
||||
.overlay_darkX {
|
||||
background-color: #85BBEF;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.darkX_nw {
|
||||
background: transparent url(darkX/titlebar-left-focused.png) no-repeat 0 0;
|
||||
width:6px;
|
||||
height:21px;
|
||||
}
|
||||
.darkX_n {
|
||||
background: transparent url(darkX/titlebar-mid-focused.png) repeat-x 0 0;
|
||||
height:21px;
|
||||
}
|
||||
.darkX_ne {
|
||||
background: transparent url(darkX/titlebar-right-focused.png) no-repeat 0 0;
|
||||
width:6px;
|
||||
height:21px;
|
||||
}
|
||||
.darkX_w {
|
||||
background: transparent url(darkX/frame-left-focused.png) repeat-y top left;
|
||||
width:3px;
|
||||
}
|
||||
|
||||
.darkX_e {
|
||||
background: transparent url(darkX/frame-right-focused.png) repeat-y top right;
|
||||
width:3px;
|
||||
}
|
||||
|
||||
.darkX_sw {
|
||||
background: transparent url(darkX/frame-bottom-left-focused.png) no-repeat 0 0;
|
||||
width:5px;
|
||||
height:3px;
|
||||
}
|
||||
.darkX_s {
|
||||
background: transparent url(darkX/frame-bottom-mid-focused.png) repeat-x 0 0;
|
||||
height:3px;
|
||||
}
|
||||
.darkX_se, .darkX_sizer {
|
||||
background: transparent url(darkX/frame-bottom-right-focused.png) no-repeat 0 0;
|
||||
width:5px;
|
||||
height:3px;
|
||||
}
|
||||
|
||||
.darkX_sizer {
|
||||
cursor:se-resize;
|
||||
}
|
||||
|
||||
.darkX_close {
|
||||
width: 21px;
|
||||
height: 21px;
|
||||
background: transparent url(darkX/button-close-focused.png) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:5px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.darkX_minimize {
|
||||
width: 21px;
|
||||
height: 21px;
|
||||
background: transparent url(darkX/button-minimize-focused.png) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:26px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.darkX_maximize {
|
||||
width: 21px;
|
||||
height: 21px;
|
||||
background: transparent url(darkX/button-maximize-focused.png) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:47px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
|
||||
.darkX_title {
|
||||
float:left;
|
||||
height:14px;
|
||||
font-size:12px;
|
||||
text-align:center;
|
||||
margin-top:2px;
|
||||
width:100%;
|
||||
color:#FFF;
|
||||
}
|
||||
|
||||
.darkX_content {
|
||||
overflow:auto;
|
||||
color: #E6DF2A;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size: 14px;
|
||||
background:#5E5148;
|
||||
}
|
||||
|
||||
|
||||
/* FOR IE */
|
||||
* html .darkX_minimize {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/darkX/button-minimize-focused.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .darkX_maximize {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/darkX/button-maximize-focused.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .darkX_close {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/darkX/button-close-focused.png", sizingMethod="crop");
|
||||
}
|
||||
|
|
|
@ -1,25 +1,25 @@
|
|||
div.inspector div.inspectable {
|
||||
padding: 0.25em 0 0.25em 1em;
|
||||
background-color: Gray;
|
||||
color: white;
|
||||
border: outset 2px white;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
div.inspector div.child {
|
||||
margin: 0 0 0 1em;
|
||||
}
|
||||
|
||||
#debug_window_content { /* DIV container for debug sizing*/
|
||||
width:250px;
|
||||
height:100px;
|
||||
background-color:#000;
|
||||
}
|
||||
|
||||
#debug { /* DIV container for debug contents*/
|
||||
padding:3px;
|
||||
color:#0f0;
|
||||
font-family:monaco, Tahoma, Verdana, Arial, Helvetica, sans-serif;
|
||||
font-size:10px;
|
||||
}
|
||||
|
||||
div.inspector div.inspectable {
|
||||
padding: 0.25em 0 0.25em 1em;
|
||||
background-color: Gray;
|
||||
color: white;
|
||||
border: outset 2px white;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
div.inspector div.child {
|
||||
margin: 0 0 0 1em;
|
||||
}
|
||||
|
||||
#debug_window_content { /* DIV container for debug sizing*/
|
||||
width:250px;
|
||||
height:100px;
|
||||
background-color:#000;
|
||||
}
|
||||
|
||||
#debug { /* DIV container for debug contents*/
|
||||
padding:3px;
|
||||
color:#0f0;
|
||||
font-family:monaco, Tahoma, Verdana, Arial, Helvetica, sans-serif;
|
||||
font-size:10px;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,155 +1,155 @@
|
|||
.overlay_dialog {
|
||||
background-color: #666666;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.overlay___invisible__ {
|
||||
background-color: #666666;
|
||||
filter:alpha(opacity=0);
|
||||
-moz-opacity: 0;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.dialog_nw {
|
||||
width: 9px;
|
||||
height: 23px;
|
||||
background: transparent url(default/top_left.gif) no-repeat 0 0;
|
||||
}
|
||||
|
||||
.dialog_n {
|
||||
background: transparent url(default/top_mid.gif) repeat-x 0 0;
|
||||
height: 23px;
|
||||
}
|
||||
|
||||
.dialog_ne {
|
||||
width: 9px;
|
||||
height: 23px;
|
||||
background: transparent url(default/top_right.gif) no-repeat 0 0;
|
||||
}
|
||||
|
||||
.dialog_e {
|
||||
width: 2px;
|
||||
background: transparent url(default/center_right.gif) repeat-y 0 0;
|
||||
}
|
||||
|
||||
.dialog_w {
|
||||
width: 2px;
|
||||
background: transparent url(default/center_left.gif) repeat-y 0 0;
|
||||
}
|
||||
|
||||
.dialog_sw {
|
||||
width: 9px;
|
||||
height: 19px;
|
||||
background: transparent url(default/bottom_left.gif) no-repeat 0 0;
|
||||
}
|
||||
|
||||
.dialog_s {
|
||||
background: transparent url(default/bottom_mid.gif) repeat-x 0 0;
|
||||
height: 19px;
|
||||
}
|
||||
|
||||
.dialog_se {
|
||||
width: 9px;
|
||||
height: 19px;
|
||||
background: transparent url(default/bottom_right.gif) no-repeat 0 0;
|
||||
}
|
||||
|
||||
.dialog_sizer {
|
||||
width: 9px;
|
||||
height: 19px;
|
||||
background: transparent url(default/sizer.gif) no-repeat 0 0;
|
||||
cursor:se-resize;
|
||||
}
|
||||
|
||||
.dialog_close {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
background: transparent url(default/close.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:5px;
|
||||
left:8px;
|
||||
cursor:pointer;
|
||||
z-index:2000;
|
||||
}
|
||||
|
||||
.dialog_minimize {
|
||||
width: 14px;
|
||||
height: 15px;
|
||||
background: transparent url(default/minimize.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:5px;
|
||||
left:28px;
|
||||
cursor:pointer;
|
||||
z-index:2000;
|
||||
}
|
||||
|
||||
.dialog_maximize {
|
||||
width: 14px;
|
||||
height: 15px;
|
||||
background: transparent url(default/maximize.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:5px;
|
||||
left:49px;
|
||||
cursor:pointer;
|
||||
z-index:2000;
|
||||
}
|
||||
|
||||
.dialog_title {
|
||||
float:left;
|
||||
height:14px;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size:12px;
|
||||
text-align:center;
|
||||
width:100%;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
.dialog_content {
|
||||
overflow:auto;
|
||||
color: #DDD;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size: 10px;
|
||||
background-color:#123;
|
||||
}
|
||||
|
||||
.top_draggable, .bottom_draggable {
|
||||
cursor:move;
|
||||
}
|
||||
|
||||
.status_bar {
|
||||
font-size:12px;
|
||||
}
|
||||
.status_bar input{
|
||||
font-size:12px;
|
||||
}
|
||||
|
||||
.wired_frame {
|
||||
display: block;
|
||||
position: absolute;
|
||||
border: 1px #000 dashed;
|
||||
}
|
||||
|
||||
/* DO NOT CHANGE THESE VALUES*/
|
||||
.dialog {
|
||||
display: block;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.dialog table.table_window {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
width: 100%;
|
||||
margin: 0px;
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
.dialog table.table_window td , .dialog table.table_window th {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.dialog .title_window {
|
||||
-moz-user-select:none;
|
||||
}
|
||||
|
||||
.overlay_dialog {
|
||||
background-color: #666666;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.overlay___invisible__ {
|
||||
background-color: #666666;
|
||||
filter:alpha(opacity=0);
|
||||
-moz-opacity: 0;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.dialog_nw {
|
||||
width: 9px;
|
||||
height: 23px;
|
||||
background: transparent url(default/top_left.gif) no-repeat 0 0;
|
||||
}
|
||||
|
||||
.dialog_n {
|
||||
background: transparent url(default/top_mid.gif) repeat-x 0 0;
|
||||
height: 23px;
|
||||
}
|
||||
|
||||
.dialog_ne {
|
||||
width: 9px;
|
||||
height: 23px;
|
||||
background: transparent url(default/top_right.gif) no-repeat 0 0;
|
||||
}
|
||||
|
||||
.dialog_e {
|
||||
width: 2px;
|
||||
background: transparent url(default/center_right.gif) repeat-y 0 0;
|
||||
}
|
||||
|
||||
.dialog_w {
|
||||
width: 2px;
|
||||
background: transparent url(default/center_left.gif) repeat-y 0 0;
|
||||
}
|
||||
|
||||
.dialog_sw {
|
||||
width: 9px;
|
||||
height: 19px;
|
||||
background: transparent url(default/bottom_left.gif) no-repeat 0 0;
|
||||
}
|
||||
|
||||
.dialog_s {
|
||||
background: transparent url(default/bottom_mid.gif) repeat-x 0 0;
|
||||
height: 19px;
|
||||
}
|
||||
|
||||
.dialog_se {
|
||||
width: 9px;
|
||||
height: 19px;
|
||||
background: transparent url(default/bottom_right.gif) no-repeat 0 0;
|
||||
}
|
||||
|
||||
.dialog_sizer {
|
||||
width: 9px;
|
||||
height: 19px;
|
||||
background: transparent url(default/sizer.gif) no-repeat 0 0;
|
||||
cursor:se-resize;
|
||||
}
|
||||
|
||||
.dialog_close {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
background: transparent url(default/close.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:5px;
|
||||
left:8px;
|
||||
cursor:pointer;
|
||||
z-index:2000;
|
||||
}
|
||||
|
||||
.dialog_minimize {
|
||||
width: 14px;
|
||||
height: 15px;
|
||||
background: transparent url(default/minimize.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:5px;
|
||||
left:28px;
|
||||
cursor:pointer;
|
||||
z-index:2000;
|
||||
}
|
||||
|
||||
.dialog_maximize {
|
||||
width: 14px;
|
||||
height: 15px;
|
||||
background: transparent url(default/maximize.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:5px;
|
||||
left:49px;
|
||||
cursor:pointer;
|
||||
z-index:2000;
|
||||
}
|
||||
|
||||
.dialog_title {
|
||||
float:left;
|
||||
height:14px;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size:12px;
|
||||
text-align:center;
|
||||
width:100%;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
.dialog_content {
|
||||
overflow:auto;
|
||||
color: #DDD;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size: 10px;
|
||||
background-color:#123;
|
||||
}
|
||||
|
||||
.top_draggable, .bottom_draggable {
|
||||
cursor:move;
|
||||
}
|
||||
|
||||
.status_bar {
|
||||
font-size:12px;
|
||||
}
|
||||
.status_bar input{
|
||||
font-size:12px;
|
||||
}
|
||||
|
||||
.wired_frame {
|
||||
display: block;
|
||||
position: absolute;
|
||||
border: 1px #000 dashed;
|
||||
}
|
||||
|
||||
/* DO NOT CHANGE THESE VALUES*/
|
||||
.dialog {
|
||||
display: block;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.dialog table.table_window {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
width: 100%;
|
||||
margin: 0px;
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
.dialog table.table_window td , .dialog table.table_window th {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.dialog .title_window {
|
||||
-moz-user-select:none;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
/* PNG fix for all themes that uses PNG images on IE */
|
||||
td, div { behavior: url(../themes/iefix/iepngfix.htc) }
|
||||
|
||||
/* PNG fix for all themes that uses PNG images on IE */
|
||||
td, div { behavior: url(../themes/iefix/iepngfix.htc) }
|
||||
|
||||
|
|
|
@ -1,54 +1,54 @@
|
|||
<public:component>
|
||||
<public:attach event="onpropertychange" onevent="doFix()" />
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
// IE5.5+ PNG Alpha Fix v1.0RC4
|
||||
// (c) 2004-2005 Angus Turnbull http://www.twinhelix.com
|
||||
|
||||
// This is licensed under the CC-GNU LGPL, version 2.1 or later.
|
||||
// For details, see: http://creativecommons.org/licenses/LGPL/2.1/
|
||||
|
||||
// Modified/Simplified on 04/23/2007 by Sebastien Gruhier (http://www.xilinus.com)
|
||||
// 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.
|
||||
if (typeof blankImg == 'undefined') var blankImg = 'blank.gif';
|
||||
|
||||
var f = 'DXImageTransform.Microsoft.AlphaImageLoader';
|
||||
|
||||
function filt(s, m)
|
||||
{
|
||||
if (filters[f])
|
||||
{
|
||||
filters[f].enabled = s ? true : false;
|
||||
if (s) with (filters[f]) { src = s; sizingMethod = m }
|
||||
}
|
||||
else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")';
|
||||
}
|
||||
|
||||
function doFix()
|
||||
{
|
||||
// Assume IE7 is OK.
|
||||
if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent) ||
|
||||
(event && !/(background|src)/.test(event.propertyName))) return;
|
||||
|
||||
var bgImg = currentStyle.backgroundImage || style.backgroundImage;
|
||||
var bgRepeat = currentStyle.backgroundRepeat || style.backgroundRepeat;
|
||||
if (bgImg && bgImg != 'none')
|
||||
{
|
||||
if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i))
|
||||
{
|
||||
var s = RegExp.$1;
|
||||
if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
|
||||
style.width = offsetWidth + 'px';
|
||||
style.backgroundImage = 'none';
|
||||
filt(s, bgRepeat == "no-repeat" ? 'crop' : 'scale');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
doFix();
|
||||
|
||||
</script>
|
||||
<public:component>
|
||||
<public:attach event="onpropertychange" onevent="doFix()" />
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
// IE5.5+ PNG Alpha Fix v1.0RC4
|
||||
// (c) 2004-2005 Angus Turnbull http://www.twinhelix.com
|
||||
|
||||
// This is licensed under the CC-GNU LGPL, version 2.1 or later.
|
||||
// For details, see: http://creativecommons.org/licenses/LGPL/2.1/
|
||||
|
||||
// Modified/Simplified on 04/23/2007 by Sebastien Gruhier (http://www.xilinus.com)
|
||||
// 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.
|
||||
if (typeof blankImg == 'undefined') var blankImg = 'blank.gif';
|
||||
|
||||
var f = 'DXImageTransform.Microsoft.AlphaImageLoader';
|
||||
|
||||
function filt(s, m)
|
||||
{
|
||||
if (filters[f])
|
||||
{
|
||||
filters[f].enabled = s ? true : false;
|
||||
if (s) with (filters[f]) { src = s; sizingMethod = m }
|
||||
}
|
||||
else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")';
|
||||
}
|
||||
|
||||
function doFix()
|
||||
{
|
||||
// Assume IE7 is OK.
|
||||
if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent) ||
|
||||
(event && !/(background|src)/.test(event.propertyName))) return;
|
||||
|
||||
var bgImg = currentStyle.backgroundImage || style.backgroundImage;
|
||||
var bgRepeat = currentStyle.backgroundRepeat || style.backgroundRepeat;
|
||||
if (bgImg && bgImg != 'none')
|
||||
{
|
||||
if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i))
|
||||
{
|
||||
var s = RegExp.$1;
|
||||
if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
|
||||
style.width = offsetWidth + 'px';
|
||||
style.backgroundImage = 'none';
|
||||
filt(s, bgRepeat == "no-repeat" ? 'crop' : 'scale');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
doFix();
|
||||
|
||||
</script>
|
||||
</public:component>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,67 +1,67 @@
|
|||
<public:component>
|
||||
<public:attach event="onpropertychange" onevent="doFix()" />
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
// IE5.5+ PNG Alpha Fix v1.0RC4
|
||||
// (c) 2004-2005 Angus Turnbull http://www.twinhelix.com
|
||||
|
||||
// This is licensed under the CC-GNU LGPL, version 2.1 or later.
|
||||
// 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.
|
||||
if (typeof blankImg == 'undefined') var blankImg = 'blank.gif';
|
||||
|
||||
|
||||
var f = 'DXImageTransform.Microsoft.AlphaImageLoader';
|
||||
|
||||
function filt(s, m)
|
||||
{
|
||||
if (filters[f])
|
||||
{
|
||||
filters[f].enabled = s ? true : false;
|
||||
if (s) with (filters[f]) { src = s; sizingMethod = m }
|
||||
}
|
||||
else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")';
|
||||
}
|
||||
|
||||
function doFix()
|
||||
{
|
||||
alert('ok')
|
||||
|
||||
// Assume IE7 is OK.
|
||||
if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent) ||
|
||||
(event && !/(background|src)/.test(event.propertyName))) return;
|
||||
|
||||
var bgImg = currentStyle.backgroundImage || style.backgroundImage;
|
||||
|
||||
if (tagName == 'IMG')
|
||||
{
|
||||
if ((/\.png$/i).test(src))
|
||||
{
|
||||
if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
|
||||
style.width = offsetWidth + 'px';
|
||||
filt(src, 'scale');
|
||||
src = blankImg;
|
||||
}
|
||||
else if (src.indexOf(blankImg) < 0) filt();
|
||||
}
|
||||
else if (bgImg && bgImg != 'none')
|
||||
{
|
||||
if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i))
|
||||
{
|
||||
var s = RegExp.$1;
|
||||
if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
|
||||
style.width = offsetWidth + 'px';
|
||||
style.backgroundImage = 'none';
|
||||
filt(s, 'crop');
|
||||
// IE link fix.
|
||||
for (var n = 0; n < childNodes.length; n++)
|
||||
if (childNodes[n].style) childNodes[n].style.position = 'relative';
|
||||
}
|
||||
else filt();
|
||||
}
|
||||
}
|
||||
|
||||
doFix();
|
||||
<public:component>
|
||||
<public:attach event="onpropertychange" onevent="doFix()" />
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
// IE5.5+ PNG Alpha Fix v1.0RC4
|
||||
// (c) 2004-2005 Angus Turnbull http://www.twinhelix.com
|
||||
|
||||
// This is licensed under the CC-GNU LGPL, version 2.1 or later.
|
||||
// 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.
|
||||
if (typeof blankImg == 'undefined') var blankImg = 'blank.gif';
|
||||
|
||||
|
||||
var f = 'DXImageTransform.Microsoft.AlphaImageLoader';
|
||||
|
||||
function filt(s, m)
|
||||
{
|
||||
if (filters[f])
|
||||
{
|
||||
filters[f].enabled = s ? true : false;
|
||||
if (s) with (filters[f]) { src = s; sizingMethod = m }
|
||||
}
|
||||
else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")';
|
||||
}
|
||||
|
||||
function doFix()
|
||||
{
|
||||
alert('ok')
|
||||
|
||||
// Assume IE7 is OK.
|
||||
if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent) ||
|
||||
(event && !/(background|src)/.test(event.propertyName))) return;
|
||||
|
||||
var bgImg = currentStyle.backgroundImage || style.backgroundImage;
|
||||
|
||||
if (tagName == 'IMG')
|
||||
{
|
||||
if ((/\.png$/i).test(src))
|
||||
{
|
||||
if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
|
||||
style.width = offsetWidth + 'px';
|
||||
filt(src, 'scale');
|
||||
src = blankImg;
|
||||
}
|
||||
else if (src.indexOf(blankImg) < 0) filt();
|
||||
}
|
||||
else if (bgImg && bgImg != 'none')
|
||||
{
|
||||
if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i))
|
||||
{
|
||||
var s = RegExp.$1;
|
||||
if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
|
||||
style.width = offsetWidth + 'px';
|
||||
style.backgroundImage = 'none';
|
||||
filt(s, 'crop');
|
||||
// IE link fix.
|
||||
for (var n = 0; n < childNodes.length; n++)
|
||||
if (childNodes[n].style) childNodes[n].style.position = 'relative';
|
||||
}
|
||||
else filt();
|
||||
}
|
||||
}
|
||||
|
||||
doFix();
|
||||
|
|
|
@ -1,333 +1,333 @@
|
|||
/* Focused windows */
|
||||
.overlay_mac_os_x {
|
||||
background-color: #85BBEF;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.mac_os_x_nw {
|
||||
background: transparent url(mac_os_x/TL_Main.png) no-repeat 0 0;
|
||||
width:24px;
|
||||
height:30px;
|
||||
}
|
||||
|
||||
.mac_os_x_n {
|
||||
background: transparent url(mac_os_x/T_Main.png) repeat-x 0 0;
|
||||
height:30px;
|
||||
}
|
||||
|
||||
.mac_os_x_ne {
|
||||
background: transparent url(mac_os_x/TR_Main.png) no-repeat 0 0;
|
||||
width:31px;
|
||||
height:30px;
|
||||
}
|
||||
|
||||
.mac_os_x_w {
|
||||
background: transparent url(mac_os_x/L_Main.png) repeat-y top left;
|
||||
width:16px;
|
||||
}
|
||||
|
||||
.mac_os_x_e {
|
||||
background: transparent url(mac_os_x/R_Main.png) repeat-y top right;
|
||||
width:16px;
|
||||
}
|
||||
|
||||
.mac_os_x_sw {
|
||||
background: transparent url(mac_os_x/BL_Main.png) no-repeat 0 0;
|
||||
width:31px;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.mac_os_x_s {
|
||||
background: transparent url(mac_os_x/B_Main.png) repeat-x 0 0;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.mac_os_x_se, .mac_os_x_sizer {
|
||||
background: transparent url(mac_os_x/BR_Main.png) no-repeat 0 0;
|
||||
width:31px;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.mac_os_x_sizer {
|
||||
cursor:se-resize;
|
||||
}
|
||||
|
||||
.mac_os_x_close {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x/close.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:25px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.mac_os_x_minimize {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x/minimize.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:45px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.mac_os_x_maximize {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x/maximize.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:65px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.mac_os_x_title {
|
||||
float:left;
|
||||
height:14px;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size:12px;
|
||||
text-align:center;
|
||||
margin-top:8px;
|
||||
width:100%;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
.mac_os_x_content {
|
||||
overflow:auto;
|
||||
color: #222;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size: 10px;
|
||||
background:#FFF;
|
||||
}
|
||||
.mac_os_x_s .status_bar {
|
||||
padding-bottom:24px;
|
||||
}
|
||||
|
||||
/* FOR IE */
|
||||
* html .mac_os_x_nw {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TL_Main.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .mac_os_x_n {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/T_Main.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .mac_os_x_ne {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TR_Main.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .mac_os_x_w {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/L_Main.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .mac_os_x_e {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/R_Main.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .mac_os_x_sw {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BL_Main.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .mac_os_x_s {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/B_Main.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .mac_os_x_se {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR_Main.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .mac_os_x_sizer {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR_Main.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
|
||||
/* Focused windows */
|
||||
.overlay_blur_os_x {
|
||||
background-color: #85BBEF;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.blur_os_x_nw {
|
||||
background: transparent url(mac_os_x/TL.png) no-repeat 0 0;
|
||||
width:24px;
|
||||
height:30px;
|
||||
}
|
||||
|
||||
.blur_os_x_n {
|
||||
background: transparent url(mac_os_x/T.png) repeat-x 0 0;
|
||||
height:30px;
|
||||
}
|
||||
|
||||
.blur_os_x_ne {
|
||||
background: transparent url(mac_os_x/TR.png) no-repeat 0 0;
|
||||
width:31px;
|
||||
height:30px;
|
||||
}
|
||||
|
||||
.blur_os_x_w {
|
||||
background: transparent url(mac_os_x/L.png) repeat-y top left;
|
||||
width:16px;
|
||||
}
|
||||
|
||||
.blur_os_x_e {
|
||||
background: transparent url(mac_os_x/R.png) repeat-y top right;
|
||||
width:16px;
|
||||
}
|
||||
|
||||
.blur_os_x_sw {
|
||||
background: transparent url(mac_os_x/BL.png) no-repeat 0 0;
|
||||
width:31px;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.blur_os_x_s {
|
||||
background: transparent url(mac_os_x/B.png) repeat-x 0 0;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.blur_os_x_se, .blur_os_x_sizer {
|
||||
background: transparent url(mac_os_x/BR.png) no-repeat 0 0;
|
||||
width:31px;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.blur_os_x_sizer {
|
||||
cursor:se-resize;
|
||||
}
|
||||
|
||||
.blur_os_x_close {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x/close.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:25px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.blur_os_x_minimize {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x/minimize.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:45px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.blur_os_x_maximize {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x/maximize.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:65px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.blur_os_x_title {
|
||||
float:left;
|
||||
height:14px;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size:12px;
|
||||
text-align:center;
|
||||
margin-top:8px;
|
||||
width:100%;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
.blur_os_x_content {
|
||||
overflow:auto;
|
||||
color: #222;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size: 10px;
|
||||
background:#FFF;
|
||||
}
|
||||
.blur_os_x_s .status_bar {
|
||||
padding-bottom:24px;
|
||||
}
|
||||
|
||||
/* FOR IE */
|
||||
* html .blur_os_x_nw {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TL.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .blur_os_x_n {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/T.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .blur_os_x_ne {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TR.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .blur_os_x_w {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/L.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .blur_os_x_e {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/R.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .blur_os_x_sw {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BL.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .blur_os_x_s {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/B.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .blur_os_x_se {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .blur_os_x_sizer {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
/* Focused windows */
|
||||
.overlay_mac_os_x {
|
||||
background-color: #85BBEF;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.mac_os_x_nw {
|
||||
background: transparent url(mac_os_x/TL_Main.png) no-repeat 0 0;
|
||||
width:24px;
|
||||
height:30px;
|
||||
}
|
||||
|
||||
.mac_os_x_n {
|
||||
background: transparent url(mac_os_x/T_Main.png) repeat-x 0 0;
|
||||
height:30px;
|
||||
}
|
||||
|
||||
.mac_os_x_ne {
|
||||
background: transparent url(mac_os_x/TR_Main.png) no-repeat 0 0;
|
||||
width:31px;
|
||||
height:30px;
|
||||
}
|
||||
|
||||
.mac_os_x_w {
|
||||
background: transparent url(mac_os_x/L_Main.png) repeat-y top left;
|
||||
width:16px;
|
||||
}
|
||||
|
||||
.mac_os_x_e {
|
||||
background: transparent url(mac_os_x/R_Main.png) repeat-y top right;
|
||||
width:16px;
|
||||
}
|
||||
|
||||
.mac_os_x_sw {
|
||||
background: transparent url(mac_os_x/BL_Main.png) no-repeat 0 0;
|
||||
width:31px;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.mac_os_x_s {
|
||||
background: transparent url(mac_os_x/B_Main.png) repeat-x 0 0;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.mac_os_x_se, .mac_os_x_sizer {
|
||||
background: transparent url(mac_os_x/BR_Main.png) no-repeat 0 0;
|
||||
width:31px;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.mac_os_x_sizer {
|
||||
cursor:se-resize;
|
||||
}
|
||||
|
||||
.mac_os_x_close {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x/close.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:25px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.mac_os_x_minimize {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x/minimize.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:45px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.mac_os_x_maximize {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x/maximize.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:65px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.mac_os_x_title {
|
||||
float:left;
|
||||
height:14px;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size:12px;
|
||||
text-align:center;
|
||||
margin-top:8px;
|
||||
width:100%;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
.mac_os_x_content {
|
||||
overflow:auto;
|
||||
color: #222;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size: 10px;
|
||||
background:#FFF;
|
||||
}
|
||||
.mac_os_x_s .status_bar {
|
||||
padding-bottom:24px;
|
||||
}
|
||||
|
||||
/* FOR IE */
|
||||
* html .mac_os_x_nw {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TL_Main.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .mac_os_x_n {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/T_Main.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .mac_os_x_ne {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TR_Main.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .mac_os_x_w {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/L_Main.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .mac_os_x_e {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/R_Main.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .mac_os_x_sw {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BL_Main.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .mac_os_x_s {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/B_Main.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .mac_os_x_se {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR_Main.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .mac_os_x_sizer {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR_Main.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
|
||||
/* Focused windows */
|
||||
.overlay_blur_os_x {
|
||||
background-color: #85BBEF;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.blur_os_x_nw {
|
||||
background: transparent url(mac_os_x/TL.png) no-repeat 0 0;
|
||||
width:24px;
|
||||
height:30px;
|
||||
}
|
||||
|
||||
.blur_os_x_n {
|
||||
background: transparent url(mac_os_x/T.png) repeat-x 0 0;
|
||||
height:30px;
|
||||
}
|
||||
|
||||
.blur_os_x_ne {
|
||||
background: transparent url(mac_os_x/TR.png) no-repeat 0 0;
|
||||
width:31px;
|
||||
height:30px;
|
||||
}
|
||||
|
||||
.blur_os_x_w {
|
||||
background: transparent url(mac_os_x/L.png) repeat-y top left;
|
||||
width:16px;
|
||||
}
|
||||
|
||||
.blur_os_x_e {
|
||||
background: transparent url(mac_os_x/R.png) repeat-y top right;
|
||||
width:16px;
|
||||
}
|
||||
|
||||
.blur_os_x_sw {
|
||||
background: transparent url(mac_os_x/BL.png) no-repeat 0 0;
|
||||
width:31px;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.blur_os_x_s {
|
||||
background: transparent url(mac_os_x/B.png) repeat-x 0 0;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.blur_os_x_se, .blur_os_x_sizer {
|
||||
background: transparent url(mac_os_x/BR.png) no-repeat 0 0;
|
||||
width:31px;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.blur_os_x_sizer {
|
||||
cursor:se-resize;
|
||||
}
|
||||
|
||||
.blur_os_x_close {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x/close.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:25px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.blur_os_x_minimize {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x/minimize.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:45px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.blur_os_x_maximize {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x/maximize.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:65px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.blur_os_x_title {
|
||||
float:left;
|
||||
height:14px;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size:12px;
|
||||
text-align:center;
|
||||
margin-top:8px;
|
||||
width:100%;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
.blur_os_x_content {
|
||||
overflow:auto;
|
||||
color: #222;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size: 10px;
|
||||
background:#FFF;
|
||||
}
|
||||
.blur_os_x_s .status_bar {
|
||||
padding-bottom:24px;
|
||||
}
|
||||
|
||||
/* FOR IE */
|
||||
* html .blur_os_x_nw {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TL.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .blur_os_x_n {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/T.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .blur_os_x_ne {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TR.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .blur_os_x_w {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/L.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .blur_os_x_e {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/R.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .blur_os_x_sw {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BL.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .blur_os_x_s {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/B.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .blur_os_x_se {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .blur_os_x_sizer {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
|
|
|
@ -1,160 +1,160 @@
|
|||
.overlay_mac_os_x_dialog {
|
||||
background-color: #FF7224;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_nw {
|
||||
background: transparent url(mac_os_x_dialog/L.png) repeat-y top left;
|
||||
width:16px;
|
||||
height:16px;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_n {
|
||||
background: transparent url(mac_os_x_dialog/bg.gif) repeat 0 0;
|
||||
height:18px;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_ne {
|
||||
background: transparent url(mac_os_x_dialog/R.png) repeat-y top left;
|
||||
width:16px;
|
||||
height:16px;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_w {
|
||||
background: transparent url(mac_os_x_dialog/L.png) repeat-y top left;
|
||||
width:16px;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_e {
|
||||
background: transparent url(mac_os_x_dialog/R.png) repeat-y top right;
|
||||
width:16px;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_sw {
|
||||
background: transparent url(mac_os_x_dialog/BL.png) no-repeat 0 0;
|
||||
width:31px;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_s {
|
||||
background: transparent url(mac_os_x_dialog/B.png) repeat-x 0 0;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_se, .mac_os_x_dialog_sizer {
|
||||
background: transparent url(mac_os_x_dialog/BR.png) no-repeat 0 0;
|
||||
width:31px;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_sizer {
|
||||
cursor:se-resize;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_close {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x_dialog/close.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:25px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_minimize {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x_dialog/minimize.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:45px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_maximize {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x_dialog/maximize.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:65px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_title {
|
||||
float:left;
|
||||
height:14px;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size:12px;
|
||||
text-align:center;
|
||||
margin-top:6px;
|
||||
width:100%;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_content {
|
||||
overflow:auto;
|
||||
color: #222;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size: 10px;
|
||||
background: transparent url(mac_os_x_dialog/bg.gif) repeat 0 0;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_buttons {
|
||||
text-align: center;
|
||||
}
|
||||
/* FOR IE */
|
||||
* html .mac_os_x_dialog_nw {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/L.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
|
||||
* html .mac_os_x_dialog_ne {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/R.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .mac_os_x_dialog_w {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/L.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .mac_os_x_dialog_e {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/R.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .mac_os_x_dialog_sw {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BL.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .mac_os_x_dialog_s {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/B.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .mac_os_x_dialog_se {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BR.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .mac_os_x_dialog_sizer {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BR.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
.overlay_mac_os_x_dialog {
|
||||
background-color: #FF7224;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_nw {
|
||||
background: transparent url(mac_os_x_dialog/L.png) repeat-y top left;
|
||||
width:16px;
|
||||
height:16px;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_n {
|
||||
background: transparent url(mac_os_x_dialog/bg.gif) repeat 0 0;
|
||||
height:18px;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_ne {
|
||||
background: transparent url(mac_os_x_dialog/R.png) repeat-y top left;
|
||||
width:16px;
|
||||
height:16px;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_w {
|
||||
background: transparent url(mac_os_x_dialog/L.png) repeat-y top left;
|
||||
width:16px;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_e {
|
||||
background: transparent url(mac_os_x_dialog/R.png) repeat-y top right;
|
||||
width:16px;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_sw {
|
||||
background: transparent url(mac_os_x_dialog/BL.png) no-repeat 0 0;
|
||||
width:31px;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_s {
|
||||
background: transparent url(mac_os_x_dialog/B.png) repeat-x 0 0;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_se, .mac_os_x_dialog_sizer {
|
||||
background: transparent url(mac_os_x_dialog/BR.png) no-repeat 0 0;
|
||||
width:31px;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_sizer {
|
||||
cursor:se-resize;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_close {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x_dialog/close.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:25px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_minimize {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x_dialog/minimize.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:45px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_maximize {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background: transparent url(mac_os_x_dialog/maximize.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:12px;
|
||||
left:65px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_title {
|
||||
float:left;
|
||||
height:14px;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size:12px;
|
||||
text-align:center;
|
||||
margin-top:6px;
|
||||
width:100%;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_content {
|
||||
overflow:auto;
|
||||
color: #222;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size: 10px;
|
||||
background: transparent url(mac_os_x_dialog/bg.gif) repeat 0 0;
|
||||
}
|
||||
|
||||
.mac_os_x_dialog_buttons {
|
||||
text-align: center;
|
||||
}
|
||||
/* FOR IE */
|
||||
* html .mac_os_x_dialog_nw {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/L.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
|
||||
* html .mac_os_x_dialog_ne {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/R.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .mac_os_x_dialog_w {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/L.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .mac_os_x_dialog_e {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/R.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .mac_os_x_dialog_sw {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BL.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .mac_os_x_dialog_s {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/B.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .mac_os_x_dialog_se {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BR.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .mac_os_x_dialog_sizer {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
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 {
|
||||
background-color: #666666;
|
||||
}
|
||||
|
||||
.nuncio_nw {
|
||||
width: 12px;
|
||||
height: 28px;
|
||||
background: url(nuncio/top_left.png) no-repeat;
|
||||
}
|
||||
|
||||
.nuncio_n {
|
||||
background: url(nuncio/top_mid.png) repeat-x;
|
||||
height: 28px;
|
||||
}
|
||||
|
||||
.nuncio_ne {
|
||||
width: 21px;
|
||||
height: 28px;
|
||||
background: url(nuncio/top_right.png) no-repeat;
|
||||
}
|
||||
|
||||
.nuncio_e {
|
||||
width: 21px;
|
||||
background: url(nuncio/center_right.png) repeat-y top right;
|
||||
}
|
||||
|
||||
.nuncio_w {
|
||||
width: 12px;
|
||||
background: url(nuncio/center_left.png) repeat-y top left;
|
||||
}
|
||||
|
||||
.nuncio_sw {
|
||||
width: 12px;
|
||||
height: 18px;
|
||||
background: url(nuncio/bottom_left.png) no-repeat;
|
||||
}
|
||||
|
||||
.nuncio_s {
|
||||
background: url(nuncio/bottom_mid.png) repeat-x 0 0;
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
.nuncio_se, .nuncio_sizer {
|
||||
width: 21px;
|
||||
height: 18px;
|
||||
background: url(nuncio/bottom_right.png) no-repeat;
|
||||
}
|
||||
|
||||
.nuncio_close {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
background: url(nuncio/close.png) no-repeat;
|
||||
position:absolute;
|
||||
top:10px;
|
||||
right:22px;
|
||||
cursor:pointer;
|
||||
z-index:2000;
|
||||
}
|
||||
|
||||
.nuncio_minimize {
|
||||
width: 14px;
|
||||
height: 15px;
|
||||
background: url(nuncio/minimize.png) no-repeat;
|
||||
position:absolute;
|
||||
top:10px;
|
||||
right:40px;
|
||||
cursor:pointer;
|
||||
z-index:2000;
|
||||
}
|
||||
|
||||
.nuncio_title {
|
||||
float:left;
|
||||
font-size:11px;
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
color: #fff;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.nuncio_content {
|
||||
background: url(nuncio/overlay.png) repeat;
|
||||
overflow:auto;
|
||||
color: #ddd;
|
||||
font-family: Tahoma, Arial, "sans-serif";
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.nuncio_sizer {
|
||||
cursor:se-resize;
|
||||
}
|
||||
|
||||
|
||||
.top_draggable, .bottom_draggable {
|
||||
cursor:move
|
||||
}
|
||||
/* FOR IE */
|
||||
* html .nuncio_nw {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_left.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .nuncio_n {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_mid.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .nuncio_ne {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_right.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .nuncio_w {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/center_left.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .nuncio_e {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/center_right.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .nuncio_sw {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_left.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .nuncio_s {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_mid.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .nuncio_se {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_right.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .nuncio_sizer {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_right.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .nuncio_close {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/close.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .nuncio_minimize {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/minimize.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
.overlay_nuncio img { border: none; }
|
||||
|
||||
.overlay_nuncio {
|
||||
background-color: #666666;
|
||||
}
|
||||
|
||||
.nuncio_nw {
|
||||
width: 12px;
|
||||
height: 28px;
|
||||
background: url(nuncio/top_left.png) no-repeat;
|
||||
}
|
||||
|
||||
.nuncio_n {
|
||||
background: url(nuncio/top_mid.png) repeat-x;
|
||||
height: 28px;
|
||||
}
|
||||
|
||||
.nuncio_ne {
|
||||
width: 21px;
|
||||
height: 28px;
|
||||
background: url(nuncio/top_right.png) no-repeat;
|
||||
}
|
||||
|
||||
.nuncio_e {
|
||||
width: 21px;
|
||||
background: url(nuncio/center_right.png) repeat-y top right;
|
||||
}
|
||||
|
||||
.nuncio_w {
|
||||
width: 12px;
|
||||
background: url(nuncio/center_left.png) repeat-y top left;
|
||||
}
|
||||
|
||||
.nuncio_sw {
|
||||
width: 12px;
|
||||
height: 18px;
|
||||
background: url(nuncio/bottom_left.png) no-repeat;
|
||||
}
|
||||
|
||||
.nuncio_s {
|
||||
background: url(nuncio/bottom_mid.png) repeat-x 0 0;
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
.nuncio_se, .nuncio_sizer {
|
||||
width: 21px;
|
||||
height: 18px;
|
||||
background: url(nuncio/bottom_right.png) no-repeat;
|
||||
}
|
||||
|
||||
.nuncio_close {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
background: url(nuncio/close.png) no-repeat;
|
||||
position:absolute;
|
||||
top:10px;
|
||||
right:22px;
|
||||
cursor:pointer;
|
||||
z-index:2000;
|
||||
}
|
||||
|
||||
.nuncio_minimize {
|
||||
width: 14px;
|
||||
height: 15px;
|
||||
background: url(nuncio/minimize.png) no-repeat;
|
||||
position:absolute;
|
||||
top:10px;
|
||||
right:40px;
|
||||
cursor:pointer;
|
||||
z-index:2000;
|
||||
}
|
||||
|
||||
.nuncio_title {
|
||||
float:left;
|
||||
font-size:11px;
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
color: #fff;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.nuncio_content {
|
||||
background: url(nuncio/overlay.png) repeat;
|
||||
overflow:auto;
|
||||
color: #ddd;
|
||||
font-family: Tahoma, Arial, "sans-serif";
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.nuncio_sizer {
|
||||
cursor:se-resize;
|
||||
}
|
||||
|
||||
|
||||
.top_draggable, .bottom_draggable {
|
||||
cursor:move
|
||||
}
|
||||
/* FOR IE */
|
||||
* html .nuncio_nw {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_left.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .nuncio_n {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_mid.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .nuncio_ne {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_right.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .nuncio_w {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/center_left.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .nuncio_e {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/center_right.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .nuncio_sw {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_left.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .nuncio_s {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_mid.png", sizingMethod="scale");
|
||||
}
|
||||
|
||||
* html .nuncio_se {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_right.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .nuncio_sizer {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_right.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .nuncio_close {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/close.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
* html .nuncio_minimize {
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/minimize.png", sizingMethod="crop");
|
||||
}
|
||||
|
||||
|
|
|
@ -1,108 +1,108 @@
|
|||
.overlay_spread {
|
||||
background-color: #85BBEF;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.spread_nw {
|
||||
background: transparent url(spread/left-top.gif) no-repeat 0 0;
|
||||
width:10px;
|
||||
height:25px;
|
||||
}
|
||||
|
||||
.spread_n {
|
||||
background: transparent url(spread/top-middle.gif) repeat-x 0 0;
|
||||
height:25px;
|
||||
}
|
||||
|
||||
.spread_ne {
|
||||
background: transparent url(spread/right-top.gif) no-repeat 0 0;
|
||||
width:10px;
|
||||
height:25px;
|
||||
}
|
||||
|
||||
.spread_w {
|
||||
background: transparent url(spread/frame-left.gif) repeat-y top left;
|
||||
width:7px;
|
||||
}
|
||||
|
||||
.spread_e {
|
||||
background: transparent url(spread/frame-right.gif) repeat-y top right;
|
||||
width:7px;
|
||||
}
|
||||
|
||||
.spread_sw {
|
||||
background: transparent url(spread/bottom-left-c.gif) no-repeat 0 0;
|
||||
width:7px;
|
||||
height:7px;
|
||||
}
|
||||
|
||||
.spread_s {
|
||||
background: transparent url(spread/bottom-middle.gif) repeat-x 0 0;
|
||||
height:7px;
|
||||
}
|
||||
|
||||
.spread_se, .spread_sizer {
|
||||
background: transparent url(spread/bottom-right-c.gif) no-repeat 0 0;
|
||||
width:7px;
|
||||
height:7px;
|
||||
}
|
||||
|
||||
.spread_sizer {
|
||||
cursor:se-resize;
|
||||
}
|
||||
|
||||
.spread_close {
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
background: transparent url(spread/button-close-focus.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:11px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.spread_minimize {
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
background: transparent url(spread/button-min-focus.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:55px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.spread_maximize {
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
background: transparent url(spread/button-max-focus.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:33px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.spread_title {
|
||||
float:left;
|
||||
height:14px;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size:14px;
|
||||
font-weight:bold;
|
||||
text-align:left;
|
||||
margin-top:2px;
|
||||
width:100%;
|
||||
color:#E47211;
|
||||
}
|
||||
|
||||
.spread_content {
|
||||
overflow:auto;
|
||||
color: #222;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size: 10px;
|
||||
background:#A9EA00;
|
||||
}
|
||||
|
||||
.overlay_spread {
|
||||
background-color: #85BBEF;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.spread_nw {
|
||||
background: transparent url(spread/left-top.gif) no-repeat 0 0;
|
||||
width:10px;
|
||||
height:25px;
|
||||
}
|
||||
|
||||
.spread_n {
|
||||
background: transparent url(spread/top-middle.gif) repeat-x 0 0;
|
||||
height:25px;
|
||||
}
|
||||
|
||||
.spread_ne {
|
||||
background: transparent url(spread/right-top.gif) no-repeat 0 0;
|
||||
width:10px;
|
||||
height:25px;
|
||||
}
|
||||
|
||||
.spread_w {
|
||||
background: transparent url(spread/frame-left.gif) repeat-y top left;
|
||||
width:7px;
|
||||
}
|
||||
|
||||
.spread_e {
|
||||
background: transparent url(spread/frame-right.gif) repeat-y top right;
|
||||
width:7px;
|
||||
}
|
||||
|
||||
.spread_sw {
|
||||
background: transparent url(spread/bottom-left-c.gif) no-repeat 0 0;
|
||||
width:7px;
|
||||
height:7px;
|
||||
}
|
||||
|
||||
.spread_s {
|
||||
background: transparent url(spread/bottom-middle.gif) repeat-x 0 0;
|
||||
height:7px;
|
||||
}
|
||||
|
||||
.spread_se, .spread_sizer {
|
||||
background: transparent url(spread/bottom-right-c.gif) no-repeat 0 0;
|
||||
width:7px;
|
||||
height:7px;
|
||||
}
|
||||
|
||||
.spread_sizer {
|
||||
cursor:se-resize;
|
||||
}
|
||||
|
||||
.spread_close {
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
background: transparent url(spread/button-close-focus.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:11px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.spread_minimize {
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
background: transparent url(spread/button-min-focus.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:55px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.spread_maximize {
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
background: transparent url(spread/button-max-focus.gif) no-repeat 0 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:33px;
|
||||
cursor:pointer;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
.spread_title {
|
||||
float:left;
|
||||
height:14px;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size:14px;
|
||||
font-weight:bold;
|
||||
text-align:left;
|
||||
margin-top:2px;
|
||||
width:100%;
|
||||
color:#E47211;
|
||||
}
|
||||
|
||||
.spread_content {
|
||||
overflow:auto;
|
||||
color: #222;
|
||||
font-family: Tahoma, Arial, sans-serif;
|
||||
font-size: 10px;
|
||||
background:#A9EA00;
|
||||
}
|
||||
|
||||
|
|
|
@ -89,7 +89,9 @@ h4{ font-size:14px; }
|
|||
.ml100{ margin-left:100px;}
|
||||
.ml110{ margin-left:110px;}
|
||||
.ml125 { margin-left:125px;}
|
||||
.ml130 { margin-left:130px;}
|
||||
.ml200 {margin-left:200px;}
|
||||
.ml250 {margin-left:250px;}
|
||||
.ml320{ margin-left:320px;}
|
||||
.ml150 { margin-left:150px;}
|
||||
.mr-5 {margin-right:-5px;}
|
||||
|
|
|
@ -4,16 +4,9 @@
|
|||
/*基本样式*/
|
||||
body,table,input,textarea,select,button { font-family: "微软雅黑","宋体";}
|
||||
h1,h2,h3,h4,h5,p,pre {padding:0px; margin:0px;}
|
||||
blockquote {
|
||||
border:1px solid #d4d4d4;
|
||||
padding: 0.6em;
|
||||
margin-left: 1.4em;
|
||||
margin-right: 0.4em;
|
||||
border-radius: 4px;
|
||||
font-family: "Microsoft YaHei";
|
||||
background-size: 100% 100%;
|
||||
margin-top:5px;
|
||||
}
|
||||
img {max-width:100%;}
|
||||
blockquote {border:1px solid #d4d4d4; padding: 0.6em; margin-left: 1.4em; margin-right: 0.4em; border-radius: 4px; font-family: "Microsoft YaHei"; background-size: 100% 100%; margin-top:5px;}
|
||||
.text-control {word-break:normal; word-wrap:break-word;}
|
||||
.f12 {font-size:12px;}
|
||||
.f13 {font-size:13px;}
|
||||
.f15 {font-size:15px;}
|
||||
|
@ -24,6 +17,7 @@ blockquote {
|
|||
.mb5 {margin-bottom:5px;}
|
||||
.mb10 {margin-bottom:10px;}
|
||||
.ml10 {margin-left:10px;}
|
||||
.mr5 {margin-right:5px;}
|
||||
.mr10 {margin-right:10px;}
|
||||
.ml15 {margin-left:15px;}
|
||||
.mr15 {margin-right:15px;}
|
||||
|
@ -62,8 +56,7 @@ a.underline {text-decoration:underline;}
|
|||
.fl {float:left;}
|
||||
.fr {float:right;}
|
||||
.cl {clear:both; overflow:hidden;}
|
||||
.post-content {width:100%; font-size:13px; line-height:18px; height:90px; overflow:hidden; word-break:break-all; word-wrap:break-word;}
|
||||
.post-content img {max-width:100%;}
|
||||
.post-content {width:100%; font-size:13px; line-height:18px; height:95px; overflow:hidden; word-break:break-all; word-wrap:break-word;}
|
||||
.post-interactive {width:100%; height:35px; line-height:35px; vertical-align:middle; border-top:1px solid #e6e6e6; background-color:#f8f9fb;}
|
||||
.post-interactive-column,
|
||||
.post-interactive-reply,
|
||||
|
@ -71,16 +64,16 @@ a.underline {text-decoration:underline;}
|
|||
.more-wrap {width:100%;}
|
||||
.more-events {width:98%; font-size:13px; text-align:center; margin:0 auto; padding: 5px 0; border:1px solid #e6e6e6; border-radius:3px; background-color:#f8f9fb; }
|
||||
.border-bottom {border-bottom:1px solid #e6e6e6;}
|
||||
.post-reply-wrap, .post-input-wrap {width:100%; line-height:18px; background-color:#f8f9fb;}
|
||||
.post-reply-wrap, .post-input-wrap {width:100%; background-color:#f8f9fb;}
|
||||
.post-reply-row {padding:10px; color:#9a9a9a;}
|
||||
.post-reply-avatar {width:45px; height:30px; text-align:center; margin-right:10px;}
|
||||
.post-reply-user {font-size:13px; text-align:left; margin-bottom:10px;}
|
||||
.post-reply-content {font-size:13px; text-align:left; word-break:break-all; word-wrap:break-word; overflow:hidden;}
|
||||
.post-reply-content img {max-width:100%;}
|
||||
.post-reply-date, .post-reply-trigger {font-size:13px;}
|
||||
.post-input-container {padding-right:2px;}
|
||||
.copy-input {width:100%; height:28px; line-height:28px; border-radius:3px; position:absolute; left:-9999em;}
|
||||
.post-reply-input {width:100%; height:28px; max-height:84px; line-height:28px; border:1px solid #e6e6e6; outline:none; padding:0; margin:0; border-radius:3px; overflow-y:auto; resize:none;}
|
||||
.post-input-container {padding-right:12px;}
|
||||
.copy-input {width:100%; height:28px; line-height:28px; padding:0 5px; vertical-align: middle; font-size:12px; border-radius:3px; position:absolute; left:-9999em;}
|
||||
.post-reply-input {width:100%; height:28px; max-height:84px; line-height:28px; vertical-align: middle; font-size:12px; border:1px solid #e6e6e6; outline:none; padding:0 5px; margin:0; border-radius:3px; overflow-y:auto; resize:none;}
|
||||
.post-reply-submit {font-size:13px; padding:3px 8px; color:#fff; background-color:#269ac9; outline:none; border:none; display:inline-block;}
|
||||
.reply-icon {background:url(/images/wechat/icon_list.gif) -150px -155px no-repeat; width:20px; height:20px; display:inline-block; vertical-align:middle;}
|
||||
.praise-icon {background:url(/images/wechat/icon_list.gif) -36px -88px no-repeat; width:20px; height:20px; display:inline-block; vertical-align:middle;}
|
||||
|
|
Loading…
Reference in New Issue