Merge branch 'design_team' into ldap
Conflicts: config/environments/development.rb
This commit is contained in:
commit
d88d4e58dc
48 files changed
+916
-246
No files matched your search
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
@@ -66,7 +66,7 @@ $(document).ready(function(){
|
||||
function getEvent(selet){
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/static/Other.xml",
|
||||
url: "/static/nccu_calendar.xml",
|
||||
dataType: "xml",
|
||||
timeout: 1000,
|
||||
error: function(xml){
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
#banner_nav {
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
bottom: 0;
|
||||
margin-right: 5px;
|
||||
right: 0;
|
||||
}
|
||||
#banner_nav>li {
|
||||
float: left;
|
||||
display: inline-block;
|
||||
*display: inline;
|
||||
|
||||
}
|
||||
#banner_nav>li>a {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 5px;
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
background-color: #FFFFFF;
|
||||
opacity: .5;
|
||||
filter: alpha(opacity = 50);
|
||||
margin: 0 4px 10px;
|
||||
text-indent: -9999px;
|
||||
box-shadow: 0 0 5px rgba(0,0,0,.7);
|
||||
}
|
||||
#banner_nav>li>a:hover {
|
||||
opacity: 1;
|
||||
filter: alpha(opacity = 100);
|
||||
}
|
||||
#banner_nav>li.activeSlide>a {
|
||||
opacity: 1;
|
||||
filter: alpha(opacity = 100);
|
||||
}
|
||||
@@ -10,7 +10,7 @@
|
||||
}
|
||||
.checkbox{
|
||||
padding: 5px;
|
||||
margin: 0;
|
||||
margin: 10px;
|
||||
display: inline-block;
|
||||
color:#777777;
|
||||
text-shadow: 0 1px 0px rgba(255,255,255,.4);
|
||||
@@ -20,7 +20,7 @@
|
||||
border-style: solid;
|
||||
border-width: 0px 1px 1px 0;
|
||||
border-color: #dfdfdf;
|
||||
/*background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ededed), color-stop(1, #dfdfdf) );
|
||||
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ededed), color-stop(1, #dfdfdf) );
|
||||
background:-moz-linear-gradient( center top, #ededed 5%, #dfdfdf 100% );
|
||||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#dfdfdf');
|
||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
@@ -28,7 +28,7 @@
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;*/
|
||||
-webkit-border-radius: 3px;
|
||||
}
|
||||
.checkbox .check-icon {
|
||||
display: none;
|
||||
@@ -79,4 +79,7 @@ img.member-img {
|
||||
}
|
||||
.popover-content p {
|
||||
font-size: 12px;
|
||||
}
|
||||
.preview_trigger {
|
||||
margin: 5px 10px 0 0;
|
||||
}
|
||||
@@ -113,6 +113,7 @@
|
||||
background-image: none;
|
||||
overflow: hidden;
|
||||
width: 28px;
|
||||
margin-bottom: 0;
|
||||
position: relative;
|
||||
}
|
||||
#orbit-bar .nav > li > a.orbit-bar-home {
|
||||
@@ -579,6 +580,35 @@
|
||||
.popover-title {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*show link and file*/
|
||||
.linkAndFile {
|
||||
clear: both;
|
||||
}
|
||||
.linkAndFile>div {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.linkAndFile [class^="icons-"] {
|
||||
float: left;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.linkAndFile .showLink, .linkAndFile .showFile {
|
||||
background-color: #ededed;
|
||||
padding: 5px;
|
||||
border-radius: 5px;
|
||||
margin-left: 25px;
|
||||
}
|
||||
.linkAndFile .showLink a, .linkAndFile .showFile a {
|
||||
display: inline-block;
|
||||
margin: 5px 10px;
|
||||
}
|
||||
.linkAndFile>div>a:last-child {
|
||||
margin-right: 5px
|
||||
}
|
||||
.news_paragraph p {
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
/*icons*/
|
||||
.the-icons i:after {
|
||||
content: attr(class);
|
||||
@@ -734,15 +764,99 @@
|
||||
.icons-unlock {
|
||||
background-position: -192px -32px;
|
||||
}
|
||||
.icons-thumbtack {
|
||||
background-position: -224px -32px;
|
||||
}
|
||||
.icons-pin {
|
||||
background-position: -257px -32px;
|
||||
}
|
||||
.icons-shield {
|
||||
background-position: -288px -32px;
|
||||
}
|
||||
.icons-key {
|
||||
background-position: -320px -32px;
|
||||
}
|
||||
.icons-fire {
|
||||
background-position: -352px -32px;
|
||||
}
|
||||
.icons-bulls-eye {
|
||||
background-position: -384px -32px;
|
||||
}
|
||||
.icons-flash {
|
||||
background-position: -416px -32px;
|
||||
}
|
||||
.icons-time {
|
||||
background-position: -448px -32px;
|
||||
}
|
||||
.icons-halo {
|
||||
background-position: -480px -32px;
|
||||
}
|
||||
.icons-hourglass {
|
||||
background-position: -513px -32px;
|
||||
}
|
||||
.icons-alarm-clock {
|
||||
background-position: -545px -32px;
|
||||
}
|
||||
.icons-paper {
|
||||
background-position: -577px -32px;
|
||||
}
|
||||
.icons-banner {
|
||||
background-position: -608px -32px;
|
||||
}
|
||||
/*3*/
|
||||
.icons-phone {
|
||||
background-position: 0px -64px;
|
||||
}
|
||||
.icons-mobile {
|
||||
background-position: -32px -64px;
|
||||
}
|
||||
.icons-mail {
|
||||
background-position: -64px -64px;
|
||||
}
|
||||
.icons-mail-open {
|
||||
background-position: -96px -64px;
|
||||
}
|
||||
.icons-mail-read {
|
||||
background-position: -128px -64px;
|
||||
}
|
||||
.icons-content {
|
||||
background-position: -160px -66px;
|
||||
background-position: -160px -64px;
|
||||
}
|
||||
.icons-content-out {
|
||||
background-position: -192px -64px;
|
||||
}
|
||||
.icons-content-in {
|
||||
background-position: -224px -64px;
|
||||
}
|
||||
.icons-projector {
|
||||
background-position: -256px -64px;
|
||||
}
|
||||
.icons-tape {
|
||||
background-position: -288px -64px;
|
||||
}
|
||||
.icons-chat-a {
|
||||
background-position: -320px -64px;
|
||||
}
|
||||
.icons-chat-b {
|
||||
background-position: -352px -64px;
|
||||
}
|
||||
.icons-chat-c {
|
||||
background-position: -384px -64px;
|
||||
}
|
||||
.icons-comment {
|
||||
background-position: -416px -64px;
|
||||
}
|
||||
.icons-rss {
|
||||
background-position: -448px -64px;
|
||||
}
|
||||
.icons-ship {
|
||||
background-position: -480px -64px;
|
||||
}
|
||||
.icons-send {
|
||||
background-position: -512px -64px;
|
||||
}
|
||||
.icons-bell {
|
||||
background-position: -544px -64px;
|
||||
}
|
||||
.icons-announcement {
|
||||
background-position: -576px -64px;
|
||||
@@ -803,20 +917,110 @@
|
||||
.icons-page-copy {
|
||||
background-position: -64px -128px;
|
||||
}
|
||||
.icons- {
|
||||
background-position: -0px -128px;
|
||||
.icons-folder {
|
||||
background-position: -96px -128px;
|
||||
}
|
||||
.icons-folder-open {
|
||||
background-position: -128px -128px;
|
||||
}
|
||||
.icons-folder-lock {
|
||||
background-position: -160px -128px;
|
||||
}
|
||||
.icons-folder-plus {
|
||||
background-position: -192px -128px;
|
||||
}
|
||||
.icons-folder-minus {
|
||||
background-position: -224px -128px;
|
||||
}
|
||||
.icons-page-plus {
|
||||
background-position: -256px -128px;
|
||||
}
|
||||
.icons-page-minus {
|
||||
background-position: -288px -128px;
|
||||
}
|
||||
.icons-page-edit {
|
||||
background-position: -320px -128px;
|
||||
}
|
||||
.icons-page-download {
|
||||
background-position: -352px -128px;
|
||||
}
|
||||
/*6*/
|
||||
.icons-house-w {
|
||||
background-position: 0px -160px;
|
||||
}
|
||||
.icons-house-b {
|
||||
background-position: -32px -160px;
|
||||
}
|
||||
.icons-signs {
|
||||
background-position: -64px -160px;
|
||||
}
|
||||
.icons-globe {
|
||||
background-position: -96px -160px;
|
||||
}
|
||||
.icons-map {
|
||||
background-position: -128px -160px;
|
||||
}
|
||||
.icons-markers {
|
||||
background-position: -160px -160px;
|
||||
}
|
||||
.icons-barrier {
|
||||
background-position: -192px -160px;
|
||||
}
|
||||
.icons-assist {
|
||||
background-position: -224px -160px;
|
||||
}
|
||||
.icons-cones {
|
||||
background-position: -256px -160px;
|
||||
}
|
||||
.icons-group {
|
||||
background-position: -288px -160px;
|
||||
}
|
||||
.icons-cuble {
|
||||
background-position: -320px -160px;
|
||||
}
|
||||
.icons-structure {
|
||||
background-position: -352px -160px;
|
||||
}
|
||||
.icons-layer {
|
||||
background-position: -384px -160px;
|
||||
}
|
||||
/*7*/
|
||||
.icons-shopcar-a {
|
||||
background-position: 0px -192px;
|
||||
}
|
||||
.icons-shopcar-b {
|
||||
background-position: -34px -192px;
|
||||
}
|
||||
.icons-purchase {
|
||||
background-position: -64px -192px;
|
||||
}
|
||||
.icons-shopcart {
|
||||
background-position: -96px -192px;
|
||||
}
|
||||
.icons-van {
|
||||
background-position: -128px -192px;
|
||||
}
|
||||
.icons-form {
|
||||
background-position: -160px -192px;
|
||||
}
|
||||
.icons-gift {
|
||||
background-position: -192px -192px;
|
||||
}
|
||||
.icons-credit-card {
|
||||
background-position: -224px -192px;
|
||||
}
|
||||
.icons-cash {
|
||||
background-position: -256px -192px;
|
||||
}
|
||||
.icons-assets {
|
||||
background-position: -288px -192px;
|
||||
}
|
||||
.icons-computer {
|
||||
background-position: -320px -192px;
|
||||
}
|
||||
.icons-library {
|
||||
background-position: -352px -192px;
|
||||
}
|
||||
/*8*/
|
||||
.icons-dashboard {
|
||||
background-position: 0 -224px;
|
||||
@@ -846,21 +1050,90 @@
|
||||
background-position: -256px -224px;
|
||||
}
|
||||
/*9*/
|
||||
.icons-book-cover {
|
||||
background-position: 0px -256px;
|
||||
}
|
||||
.icons-book-make {
|
||||
background-position: -32px -256px;
|
||||
}
|
||||
.icons-binder {
|
||||
background-position: -64px -256px;
|
||||
}
|
||||
.icons-album {
|
||||
background-position: -96px -256px;
|
||||
}
|
||||
.icons-camera {
|
||||
background-position: -128px -256px;
|
||||
}
|
||||
.icons-video-camera {
|
||||
background-position: -160px -256px;
|
||||
}
|
||||
.icons-pillar {
|
||||
background-position: -192px -256px;
|
||||
}
|
||||
.icons-chart {
|
||||
background-position: -224px -256px;
|
||||
}
|
||||
.icons-picture {
|
||||
background-position: -256px -256px;
|
||||
}
|
||||
.icons-pictures {
|
||||
background-position: -288px -256px;
|
||||
}
|
||||
.icons-brief {
|
||||
background-position: -320px -256px;
|
||||
}
|
||||
.icons-film {
|
||||
background-position: -352px -256px;
|
||||
}
|
||||
.icons-asset {
|
||||
background-position: -384px -256px;
|
||||
}
|
||||
.icons-asset-upload {
|
||||
background-position: -448px -256px;
|
||||
}
|
||||
.icons-asset-download {
|
||||
background-position: -416px -256px;
|
||||
}
|
||||
.icons-asset-upload {
|
||||
background-position: -448px -256px;
|
||||
}
|
||||
.icons-music {
|
||||
background-position: -480px -256px;
|
||||
}
|
||||
.icons-book-open-w {
|
||||
background-position: -512px -256px;
|
||||
}
|
||||
.icons-book-open-b {
|
||||
background-position: -544px -256px;
|
||||
}
|
||||
.icons-clapper-board {
|
||||
background-position: -576px -256px;
|
||||
}
|
||||
/*10*/
|
||||
.icons- {
|
||||
background-position: -0px -288px;
|
||||
.icons-date {
|
||||
background-position: 0px -288px;
|
||||
}
|
||||
.icons-screen {
|
||||
background-position: -32px -288px;
|
||||
}
|
||||
.icons-iphone {
|
||||
background-position: -64px -288px;
|
||||
}
|
||||
.icons-ipad {
|
||||
background-position: -96px -288px;
|
||||
}
|
||||
.icons-ipod {
|
||||
background-position: -128px -288px;
|
||||
}
|
||||
.icons-battery-low {
|
||||
background-position: -160px -288px;
|
||||
}
|
||||
.icons-battery-mid {
|
||||
background-position: -192px -288px;
|
||||
}
|
||||
.icons-battery-full {
|
||||
background-position: -224px -288px;
|
||||
}
|
||||
.icons-battery-charge {
|
||||
background-position: -256px -288px;
|
||||
}
|
||||
/*11*/
|
||||
.icons-pie {
|
||||
@@ -888,14 +1161,50 @@
|
||||
background-position: -224px -320px;
|
||||
}
|
||||
/*12*/
|
||||
.icons-heart-w {
|
||||
background-position: 0px -352px;
|
||||
}
|
||||
.icons-heart-b {
|
||||
background-position: -32px -352px;
|
||||
}
|
||||
.icons-like {
|
||||
background-position: -64px -352px;
|
||||
}
|
||||
.icons-hate {
|
||||
background-position: -96px -352px;
|
||||
}
|
||||
.icons-medal {
|
||||
background-position: -128px -352px;
|
||||
}
|
||||
.icons-warning {
|
||||
background-position: -160px -352px;
|
||||
}
|
||||
.icons-check {
|
||||
background-position: -192px -352px;
|
||||
}
|
||||
.icons-check-box-solid {
|
||||
background-position: -224px -352px;
|
||||
}
|
||||
.icons-check-box-dot {
|
||||
background-position: -256px -352px;
|
||||
}
|
||||
.icons-check-2 {
|
||||
background-position: -288px -352px;
|
||||
}
|
||||
.icons-check-circle-solid {
|
||||
background-position: -320px -352px;
|
||||
}
|
||||
.icons-check-circle-dot {
|
||||
background-position: -352px -352px;
|
||||
}
|
||||
.icons-check-circle-b {
|
||||
background-position: -384px -352px;
|
||||
}
|
||||
.icons-star-thin {
|
||||
background-position: -416px -352px;
|
||||
}
|
||||
.icons- {
|
||||
background-position: -0px -352px;
|
||||
.icons-star {
|
||||
background-position: -448px -352px;
|
||||
}
|
||||
/*13*/
|
||||
.icons- {
|
||||
@@ -940,5 +1249,5 @@
|
||||
}
|
||||
/*21*/
|
||||
.icons- {
|
||||
background-position: -0px -640px
|
||||
}
|
||||
background-position: -0px -640px;
|
||||
}
|
||||
@@ -5,6 +5,35 @@ class Admin::DashboardsController < ApplicationController
|
||||
# before_filter :is_admin?
|
||||
|
||||
def index
|
||||
@module_app_contents, @module_app_contents_total = get_module_app_count('bulletin', 'news_bulletin', 'page_context', 'web_link')
|
||||
@recent_updated = get_recently_updated('bulletin', 'news_bulletin', 'page_context', 'web_link')
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def get_module_app_count(*args)
|
||||
a = {}
|
||||
total = 0
|
||||
args.each do |module_app|
|
||||
module_app_class = module_app.classify.constantize
|
||||
count = module_app_class.count
|
||||
a.merge!(module_app => count)
|
||||
total += count
|
||||
end
|
||||
[a.sort {|a,b| b[1]<=>a[1]}, total]
|
||||
end
|
||||
|
||||
def get_recently_updated(*args)
|
||||
a = {}
|
||||
args.each do |module_app|
|
||||
module_app_class = module_app.classify.constantize
|
||||
objects = module_app_class.order_by(:updated_at, :desc).limit(10)
|
||||
objects.each do |object|
|
||||
a.merge!(object => object.updated_at)
|
||||
end
|
||||
end
|
||||
sorted_objects = a.sort {|a,b| b[1]<=>a[1]}
|
||||
sorted_objects[0..9]
|
||||
end
|
||||
|
||||
end
|
||||
@@ -43,8 +43,8 @@ class Admin::PagePartsController < ApplicationController
|
||||
def update
|
||||
@part = PagePart.find(params[:id])
|
||||
if @part.update_attributes(params[:page_part])
|
||||
set_children_sub_menu(@part) if @part.public_r_tag && @part.public_r_tag.eql?('sub_menu')
|
||||
flash.now[:notice] = t('admin.update_success_content')
|
||||
@part.save
|
||||
respond_to do |format|
|
||||
format.html {
|
||||
redirect_to admin_page_url( @part.page )
|
||||
@@ -89,5 +89,14 @@ class Admin::PagePartsController < ApplicationController
|
||||
format.js {}
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def set_children_sub_menu(part)
|
||||
part.page.children.each do |child|
|
||||
child_part = child.page_parts.detect{ |x| x.name.eql?(part.name) } rescue nil
|
||||
child_part.update_attributes(:kind => part.kind, :public_r_tag => part.public_r_tag, :public_r_tag_object_id => part.public_r_tag_object_id) rescue nil
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,29 @@
|
||||
module Admin::DashboardHelper
|
||||
|
||||
def get_link(title)
|
||||
case title
|
||||
when 'bulletin'
|
||||
panel_announcement_back_end_bulletins_path
|
||||
when 'news_bulletin'
|
||||
panel_news_back_end_news_bulletins_path
|
||||
when'page_context'
|
||||
panel_page_content_back_end_page_contexts_path
|
||||
when'web_link'
|
||||
panel_web_resource_back_end_web_links_path
|
||||
end
|
||||
end
|
||||
|
||||
def get_link_to_object(object)
|
||||
case object._type.underscore
|
||||
when 'bulletin'
|
||||
panel_announcement_back_end_bulletin_path(object)
|
||||
when 'news_bulletin'
|
||||
panel_news_back_end_news_bulletin_path(object)
|
||||
when'page_context'
|
||||
panel_page_content_back_end_page_context_path(object)
|
||||
when'web_link'
|
||||
panel_web_resource_back_end_web_link_path(object)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@@ -132,7 +132,7 @@ module ApplicationHelper
|
||||
stylesheets << "<link href='/assets/style.css' rel='stylesheet' type='text/css' />\n"
|
||||
end
|
||||
stylesheets << "<link href='#{page.design.reset_css.file.url}' rel='stylesheet' type='text/css' />\n" if page.design.reset_css
|
||||
# stylesheets << "<link href='/assets/menu.css' rel='stylesheet' type='text/css' />\n"
|
||||
stylesheets << "<link href='#{asset_path 'banner_nav.css'}' rel='stylesheet' type='text/css' />\n"
|
||||
stylesheets << "<link href='#{page.design.default_css.file.url}' rel='stylesheet' type='text/css' />\n" if page.design.default_css
|
||||
theme = page.design.themes.detect{ |d| d.id == page.theme_id }
|
||||
stylesheets << "<link href='#{theme.file.url}' rel='stylesheet' type='text/css' />\n" if theme
|
||||
|
||||
+26
-1
@@ -1,8 +1,33 @@
|
||||
class CronMail < ActionMailer::Base
|
||||
default :from => "orbit_test@rulingcom.com"
|
||||
|
||||
def get_settings
|
||||
# @@smtp_settings = {
|
||||
# :address => "smtp.gmail.com",
|
||||
# :port => '587',
|
||||
# :domain => "smtp.gmail.com",
|
||||
# :authentication => "plain",
|
||||
# :user_name => "redmine@rulingcom.com",
|
||||
# :password => "rulingredmine",
|
||||
# :tls => true,
|
||||
# :enable_starttls_auto => true
|
||||
# }
|
||||
@@smtp_settings = {
|
||||
:address => @site['mail_settings']['address'],
|
||||
:port => @site['mail_settings']['port'],
|
||||
:domain => @site['mail_settings']['domain'],
|
||||
:authentication => @site['mail_settings']['authentication'],
|
||||
:user_name => @site['mail_settings']['user_name'],
|
||||
:password => @site['mail_settings']['password'],
|
||||
:tls => @site['mail_settings']['tls'],
|
||||
:enable_starttls_auto => @site['mail_settings']['enable_starttls_auto']
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
def time_check(msg)
|
||||
get_settings
|
||||
#attachments["rails.png"] = File.read("#{Rails.root}/public/images/rails.png")
|
||||
mail(:to => "Matt <matt@rulingcom.com>", :subject => msg)
|
||||
mail(:to => "Chris <chris@rulingcom.com>", :subject => msg)
|
||||
end
|
||||
end
|
||||
@@ -31,6 +31,17 @@ class Item
|
||||
nodes << node = node.parent while !node.parent.blank? rescue nil
|
||||
nodes.reverse
|
||||
end
|
||||
|
||||
# Get an array of ancestor's id
|
||||
def ancestor_ids
|
||||
node, nodes = self, []
|
||||
while !node.parent.blank? do
|
||||
node = node.parent rescue nil
|
||||
nodes << node.id if node
|
||||
end
|
||||
# nodes << node = node.parent while !node.parent.blank? rescue nil
|
||||
nodes.reverse
|
||||
end
|
||||
|
||||
# Build the url from the array of ancestors
|
||||
def url
|
||||
|
||||
+13
-1
@@ -28,8 +28,20 @@ class Page < Item
|
||||
|
||||
def create_parts
|
||||
page_design = self.design
|
||||
parent = self.parent
|
||||
menu_part = parent.page_parts.detect{|page_part| page_part.kind.eql?('public_r_tag') && page_part.public_r_tag.eql?('sub_menu') && page_part.public_r_tag_object_id.eql?(parent.id.to_s)} if parent
|
||||
page_design.layout.layout_parts.each do |layout_part|
|
||||
self.page_parts.new(:name => layout_part.name) unless self.page_parts.detect{|page_part| page_part.name.eql?(layout_part.name)}
|
||||
current_part = self.page_parts.detect{|page_part| page_part.name.eql?(layout_part.name)}
|
||||
current_part = self.page_parts.build(:name => layout_part.name) unless current_part
|
||||
if menu_part && current_part.name.eql?(menu_part.name)
|
||||
if current_part.new_record?
|
||||
current_part.kind = menu_part.kind
|
||||
current_part.public_r_tag = menu_part.public_r_tag
|
||||
current_part.public_r_tag_object_id = menu_part.public_r_tag_object_id
|
||||
else
|
||||
current_part.update_attributes(:kind => menu_part.kind, :public_r_tag => menu_part.public_r_tag, :public_r_tag_object_id => menu_part.public_r_tag_object_id)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ class PagePart
|
||||
field :kind
|
||||
field :public_r_tag
|
||||
field :public_r_tag_object_id, :default => nil
|
||||
field :public_r_tag_option, :default => nil
|
||||
field :widget_path
|
||||
|
||||
has_one :i18n_variable, :as => :language_value, :autosave => true, :dependent => :destroy
|
||||
|
||||
+8
-1
@@ -12,12 +12,15 @@ class Site
|
||||
field :private_key, :type => Binary
|
||||
field :public_key, :type => Binary
|
||||
field :title_always_on, :type => Boolean, :default => false
|
||||
|
||||
field :mail_settings, :type => Hash
|
||||
|
||||
field :school
|
||||
field :department
|
||||
|
||||
has_one :title, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
|
||||
has_one :footer, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
|
||||
has_one :sub_menu, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
|
||||
has_many :site_metas, :autosave => true, :dependent => :destroy
|
||||
|
||||
before_save :set_key
|
||||
@@ -33,7 +36,6 @@ class Site
|
||||
end
|
||||
|
||||
def up_to_date?
|
||||
p res = %x(git remote show origin)
|
||||
res = res.split('rails_3_1').pop.gsub('(', '').gsub(')','').strip rescue nil
|
||||
res.eql?('local out of date') ? false : true
|
||||
end
|
||||
@@ -46,6 +48,10 @@ class Site
|
||||
@footer ||= I18nVariable.first(:conditions => {:key => 'footer', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
|
||||
end
|
||||
|
||||
def sub_menu
|
||||
@sub_menu ||= I18nVariable.first(:conditions => {:key => 'sub_menu', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
|
||||
end
|
||||
|
||||
METAS.each do |meta|
|
||||
define_method meta do
|
||||
fetch_meta = self.site_metas.where(key: meta).limit(1)
|
||||
@@ -66,6 +72,7 @@ class Site
|
||||
def set_key
|
||||
title.key = 'title' if title && (title.key.blank? rescue true)
|
||||
footer.key = 'footer' if footer && (footer.key.blank? rescue true)
|
||||
sub_menu.key = 'sub_menu' if sub_menu && (sub_menu.key.blank? rescue true)
|
||||
end
|
||||
|
||||
end
|
||||
@@ -3,6 +3,8 @@ class Tag
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
|
||||
field :key
|
||||
|
||||
belongs_to :module_app
|
||||
|
||||
end
|
||||
@@ -1,8 +1,8 @@
|
||||
<div id="isotope">
|
||||
<div class="item element">
|
||||
<h3><i class="icons-content"></i><a href=""><%= t(:content) %></a></h3>
|
||||
<div class="detail w-a h-b">
|
||||
<p class="totle"><span><%= t(:all_content) %></span>9,517</p>
|
||||
<h3><i class="icons-content"></i><%= t(:content) %></h3>
|
||||
<div class="detail w-a h-a">
|
||||
<p class="totle"><span><%= t(:all_content) %></span><%= @module_app_contents_total %></p>
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -23,46 +23,12 @@
|
||||
<div class="overview">
|
||||
<table class="table table-striped">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>公告</td>
|
||||
<td class="span2">2,304</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>新聞</td>
|
||||
<td class="span2">783</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>連結</td>
|
||||
<td class="span2">45</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>連結</td>
|
||||
<td class="span2">62</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>連結</td>
|
||||
<td class="span2">52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>新聞</td>
|
||||
<td class="span2">20</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>公告</td>
|
||||
<td class="span2">41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>公告</td>
|
||||
<td class="span2">37</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>公告</td>
|
||||
<td class="span2">41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>公告</td>
|
||||
<td class="span2">20</td>
|
||||
</tr>
|
||||
<% @module_app_contents.each do |module_app_content| %>
|
||||
<tr>
|
||||
<td><%= link_to t("dashboard.#{module_app_content[0]}"), get_link(module_app_content[0]) %></td>
|
||||
<td class="span2"><%= module_app_content[1] %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -70,7 +36,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item element">
|
||||
<!-- <div class="item element">
|
||||
<h3><i class="icons-member"></i><a href=""><%= t(:member) %></a></h3>
|
||||
<div class="detail w-a h-a">
|
||||
<p class="totle"><span><%= t(:all_member) %></span>2,217</p>
|
||||
@@ -211,8 +177,8 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item element">
|
||||
</div> -->
|
||||
<!-- <div class="item element">
|
||||
<h3><i class="icons-"></i><a href=""><%= t(:referral_in_links) %></a></h3>
|
||||
<div class="detail w-a h-a">
|
||||
<p class="totle"><span><%= t(:statistics) %></span>517</p>
|
||||
@@ -282,8 +248,8 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item element">
|
||||
</div> -->
|
||||
<!-- <div class="item element">
|
||||
<h3><i class="icons-"></i><a href=""><%= t(:most_visited_page) %></a></h3>
|
||||
<div class="detail noStatistics w-b h-a">
|
||||
<table class="table table-striped">
|
||||
@@ -460,7 +426,6 @@
|
||||
<div class="item element">
|
||||
<h3><i class="icons-"></i><a href=""><%= t(:site_info) %></a></h3>
|
||||
<div class="detail noStatistics w-b h-a">
|
||||
<!--<p class="totle"><span><%= t(:statistics) %></span>9,517</p>-->
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -515,11 +480,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="item element">
|
||||
<h3><i class="icons-"></i><a href=""><%= t(:recent_update) %></a></h3>
|
||||
<div class="detail noStatistics w-a h-a">
|
||||
<!--<p class="totle"><span><%= t(:statistics) %></span>9,517</p>-->
|
||||
<h3><i class="icons-"></i><%= t(:recent_update) %></h3>
|
||||
<div class="detail noStatistics w-b h-a">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -540,46 +504,12 @@
|
||||
<div class="overview">
|
||||
<table class="table table-striped">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Title1</td>
|
||||
<td class="span2">公告</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title2</td>
|
||||
<td class="span2">頁面</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title3</td>
|
||||
<td class="span2">頁面</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title4</td>
|
||||
<td class="span2">公告</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title5</td>
|
||||
<td class="span2">公告</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title6</td>
|
||||
<td class="span2">頁面</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title7</td>
|
||||
<td class="span2">頁面</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title8</td>
|
||||
<td class="span2">公告</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title9</td>
|
||||
<td class="span2">頁面</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title10</td>
|
||||
<td class="span2">公告</td>
|
||||
</tr>
|
||||
<% @recent_updated.each do |object| %>
|
||||
<tr>
|
||||
<td><%= link_to ((object[0].title[I18n.locale] rescue nil) || (object[0].page.i18n_variable[I18n.locale] rescue nil)), get_link_to_object(object[0]) %></td>
|
||||
<td class="span2"><%= link_to t("dashboard.#{object[0]._type.underscore}"), get_link(object[0]._type.underscore) %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
|
||||
<span id='name_list'>
|
||||
<% if @r_tag.eql?('sub_menu') %>
|
||||
<%= f.select :public_r_tag_object_id, options_for_select([t(:horizontal), t(:vertical)], t(:horizontal)) %>
|
||||
<%= f.hidden_field :public_r_tag_object_id, :value => @part.page.id %>
|
||||
<%#= f.select :public_r_tag_object_id, options_for_select([t(:horizontal), t(:vertical)], t(:horizontal)) %>
|
||||
<% else %>
|
||||
<%= f.select :public_r_tag_object_id, options_from_collection_for_select(@tag_objects, :id, :title, :selected => @part.public_r_tag_object_id) %>
|
||||
<% end %>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<% if @r_tag.eql?('sub_menu') %>
|
||||
$('#name_list select').html("<%= j options_for_select(t(:horizontal) => :horizontal, t(:vertical) => :vertical) %>")
|
||||
// $('#name_list select').html("<%= j options_for_select(t(:horizontal) => :horizontal, t(:vertical) => :vertical) %>")
|
||||
<% else %>
|
||||
$('#name_list select').html("<%= j options_from_collection_for_select(@tag_objects, :id, :title) %>")
|
||||
<% end %>
|
||||
@@ -0,0 +1,12 @@
|
||||
<%= content_tag :li, :class => active_for_controllers('sites') do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-cog') + t('admin.site_settings'), admin_site_site_info_path(@site) %>
|
||||
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('sites')) do -%>
|
||||
<%= content_tag :li, link_to(t('admin.site_info'), admin_site_site_info_path(@site)), :class => active_for_action('sites', 'site_info') %>
|
||||
<%#= content_tag :li, link_to(t('admin.system_info'), admin_site_system_info_path(@site)), :class => active_for_action('sites', 'system_info') %>
|
||||
<%#= content_tag :li, link_to(t('admin.site_language'), admin_site_language_path(@site)), :class => active_for_action('sites', 'language') %>
|
||||
<%= content_tag :li, link_to(t('admin.mail_setting'), admin_site_mail_setting_path(@site)), :class => active_for_action('sites', 'mail_setting') %>
|
||||
<%#= content_tag :li, link_to(t('admin.ui_theme'), admin_site_ui_theme_path(@site)), :class => active_for_action('sites', 'ui_theme') %>
|
||||
<% end -%>
|
||||
|
||||
<% end -%>
|
||||
@@ -1 +1,5 @@
|
||||
<% content_for :side_bar do %>
|
||||
<%= render 'side_bar' %>
|
||||
<% end %>
|
||||
|
||||
language.html.erb
|
||||
@@ -1 +1,76 @@
|
||||
mail_setting.html.erb
|
||||
<% content_for :side_bar do %>
|
||||
<%= render 'side_bar' %>
|
||||
<% end %>
|
||||
|
||||
<div id="poststuff">
|
||||
<%= form_for @site, :url => admin_site_path(@site), :html => {:class => "clear"} do |f| %>
|
||||
<div id="post-body">
|
||||
<div id="post-body-content" class="clear">
|
||||
<%= f.fields_for :site_settings, @site['site_settings'] do |f| %>
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<label class="control-label"><%= t 'admin.mail_address' %></label>
|
||||
<div class="controls">
|
||||
<%= f.text_field :address, :value => (@site['site_settings']['address'] rescue nil) %>
|
||||
<!-- <p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label"><%= t 'admin.mail_port' %></label>
|
||||
<div class="controls">
|
||||
<%= f.text_field :port, :value => (@site['site_settings']['port'] rescue nil) %>
|
||||
<!-- <p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label"><%= t 'admin.mail_domain' %></label>
|
||||
<div class="controls">
|
||||
<%= f.text_field :domain, :value => (@site['site_settings']['domain'] rescue nil) %>
|
||||
<!-- <p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label"><%= t 'admin.mail_authentication' %></label>
|
||||
<div class="controls">
|
||||
<%= f.text_field :authentication, :value => (@site['site_settings']['authentication'] rescue nil) %>
|
||||
<!-- <p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label"><%= t 'admin.mail_user_name' %></label>
|
||||
<div class="controls">
|
||||
<%= f.text_field :user_name, :value => (@site['site_settings']['user_name'] rescue nil) %>
|
||||
<!-- <p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label"><%= t 'admin.mail_password' %></label>
|
||||
<div class="controls">
|
||||
<%= f.text_field :password, :value => (@site['site_settings']['password'] rescue nil) %>
|
||||
<!-- <p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label"><%= t 'admin.mail_tls' %></label>
|
||||
<div class="controls">
|
||||
<%= f.check_box :tls, :checked => (@site['site_settings']['tls'].eql?('1') rescue false) %>
|
||||
<!-- <p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label"><%= t 'admin.mail_enable_starttls_auto' %></label>
|
||||
<div class="controls">
|
||||
<%= f.check_box 'enable_starttls_auto', :checked => (@site['site_settings']['enable_starttls_auto'].eql?('1') rescue false) %>
|
||||
<!-- <p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-actions">
|
||||
<%= f.submit t("submit"), :class => "btn btn-primary" %>
|
||||
<%= f.submit t("cancel"), :class => "btn ", :type => 'reset' %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
@@ -1,3 +1,7 @@
|
||||
<% content_for :side_bar do %>
|
||||
<%= render 'side_bar' %>
|
||||
<% end %>
|
||||
|
||||
<div id="poststuff">
|
||||
<%= form_for @site, :url => admin_site_path(@site), :html => {:class => "clear"} do |f| %>
|
||||
<div id="post-body">
|
||||
@@ -9,20 +13,22 @@
|
||||
<% end %>
|
||||
</ul>
|
||||
<div class="tab-content form-horizontal">
|
||||
<div class="control-group">
|
||||
<label class="control-label"><%= t 'admin.site_title' %></label>
|
||||
<div class="control-group" style="margin-bottom: 0;">
|
||||
<div class="controls">
|
||||
<%= f.check_box :title_always_on %> <%= t 'admin.always_display_title' %>
|
||||
<label class="checkbox">
|
||||
<%= f.check_box :title_always_on %> <%= t 'admin.always_display_title' %>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<% @site_valid_locales.each do |locale|%>
|
||||
<%= content_tag :div, :class => "tab-pane fade #{active_when_current_locale_eq locale} #{locale}" do %>
|
||||
<div class="control-group">
|
||||
<label class="control-label"><%= t 'admin.site_title' %></label>
|
||||
<div class="controls">
|
||||
<%= f.fields_for :title, @site.title do |f| %>
|
||||
<%= f.text_field locale, :class => "input-xxlarge" %>
|
||||
<% end %>
|
||||
<p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p>
|
||||
<p class="help-block"><%= (t 'admin.site_title_help').html_safe %></p>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
@@ -30,12 +36,12 @@
|
||||
<% @site_valid_locales.each do |locale|%>
|
||||
<%= content_tag :div, :class => "tab-pane fade #{active_when_current_locale_eq locale} #{locale}" do %>
|
||||
<div class="control-group">
|
||||
<label class="control-label"><%= t 'admin.keywords' %></label>
|
||||
<label class="control-label"><%= t 'admin.site_keywords' %></label>
|
||||
<div class="controls">
|
||||
<%= f.fields_for :keywords, @site.keywords do |f| %>
|
||||
<%= f.text_area locale, :class => "input-xxlarge textarea-height-s" %>
|
||||
<% end %>
|
||||
<p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p>
|
||||
<p class="help-block"><%= (t 'admin.site_keywords_help').html_safe %></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
@@ -44,7 +50,7 @@
|
||||
<%= f.fields_for :description, @site.description do |f| %>
|
||||
<%= f.text_area locale, :class => "input-xxlarge textarea-height-s" %>
|
||||
<% end %>
|
||||
<p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p>
|
||||
<p class="help-block"><%= (t 'admin.site_description_help').html_safe %></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
@@ -53,6 +59,15 @@
|
||||
<%= f.fields_for :footer, @site.footer do |f| %>
|
||||
<%= f.text_area locale, :class => "tinymce_textarea input-xxlarge" %>
|
||||
<% end %>
|
||||
<p class="help-block"><%= (t 'admin.site_footer_help').html_safe %></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label"><%= t 'admin.site_sub_menu' %></label>
|
||||
<div class="controls">
|
||||
<%= f.fields_for :sub_menu, @site.sub_menu do |f| %>
|
||||
<%= f.text_area locale, :class => "tinymce_textarea input-xxlarge" %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
@@ -1 +1,5 @@
|
||||
<% content_for :side_bar do %>
|
||||
<%= render 'side_bar' %>
|
||||
<% end %>
|
||||
|
||||
system_info.html.erb
|
||||
@@ -1 +1,5 @@
|
||||
<% content_for :side_bar do %>
|
||||
<%= render 'side_bar' %>
|
||||
<% end %>
|
||||
|
||||
ui_theme.html.erb
|
||||
@@ -10,6 +10,7 @@
|
||||
<li><%#= link_to content_tag(:i, nil, :class => 'icons-asset') + t('admin.asset'), admin_assets_path %></li>
|
||||
<li class="divider"></li>
|
||||
<li><%= link_to content_tag(:i, nil, :class => 'icons-structure') + t('admin.structure'), admin_items_path %></li>
|
||||
<li><%= link_to content_tag(:i, nil, :class => 'icons-cog') + t('admin.site_settings'), admin_site_site_info_path(@site) %></li>
|
||||
<li><%#= link_to content_tag(:i, nil, :class => 'icons-plus-cube') + t('admin.add_item') %></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -67,14 +67,3 @@
|
||||
<%= content_tag :li, link_to(t('announcement.tags'), panel_web_resource_back_end_tags_path), :class => active_for_action('/panel/web_resource/back_end/tags', 'index') %>
|
||||
<% end -%>
|
||||
<% end -%>
|
||||
|
||||
<%= content_tag :li, :class => active_for_controllers('sites') do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-cog') + t('admin.site_settings'), admin_site_site_info_path(@site) %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('sites')) do -%>
|
||||
<%= content_tag :li, link_to(t('admin.site_info'), admin_site_site_info_path(@site)), :class => active_for_action('sites', 'site_info') %>
|
||||
<%= content_tag :li, link_to(t('admin.system_info'), admin_site_system_info_path(@site)), :class => active_for_action('sites', 'system_info') %>
|
||||
<%= content_tag :li, link_to(t('admin.language'), admin_site_language_path(@site)), :class => active_for_action('sites', 'language') %>
|
||||
<%= content_tag :li, link_to(t('admin.mail_setting'), admin_site_mail_setting_path(@site)), :class => active_for_action('sites', 'mail_setting') %>
|
||||
<%= content_tag :li, link_to(t('admin.ui_theme'), admin_site_ui_theme_path(@site)), :class => active_for_action('sites', 'ui_theme') %>
|
||||
<% end -%>
|
||||
<% end -%>
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title><%= @title || APP_CONFIG['orbit'] %></title>
|
||||
<link rel="shortcut icon" href="<%= asset_path "ncculogo.ico" %>">
|
||||
<!--[if lt IE 9]>
|
||||
<%= javascript_include_tag "html5" %>
|
||||
<![endif]-->
|
||||
@@ -25,7 +26,11 @@
|
||||
<div class="viewport">
|
||||
<div class="overview">
|
||||
<ul class="nav nav-list">
|
||||
<%= render 'layouts/side_bar' %>
|
||||
<% if !(yield :side_bar).blank? %>
|
||||
<%= yield :side_bar %>
|
||||
<% else %>
|
||||
<%= render 'layouts/side_bar' %>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<%= page_title(@item).html_safe %>
|
||||
<link rel="shortcut icon" href="<%= asset_path "ncculogo.ico" %>">
|
||||
<%= page_metas(@item).html_safe %>
|
||||
<!--[if lt IE 9]>
|
||||
<%= javascript_include_tag "html5" %>
|
||||
|
||||
Reference in new issue
Block a user