原文参见我另一个博客:http://caok.github.com/blog/2012/08/07/jquery-columnmanager-plugin-and-rails-settings-cached/
在平时页面显示表格时,容易出现要显示的字段过多,而在一页的范围内无法完全显示的困境。通过juery columnanager可以实现显示和隐藏的效果,再通过rails-settings-cached将其与个人偏好设置相关联,使得更加人性化。
安装rails-settings-cached
Edit your Gemfile:
gem "rails-settings-cached"
Generate your settings:
$ rails g settings <settings_name>
Now just put that migration in the database with:
rake db:migrate
Settings may be bound to any existing ActiveRecord object. Define this association like this: Notice! is not do caching in this version.
class User < ActiveRecord::Base
include RailsSettings::Extend
end
安装jQuery columnManager plugin
下载地址:jquery.columnmanager.zip 我这使用的是里面的jquery.columnmanager.pack,添加至项目的application.js中
//= require jquery.columnmanager.pack
两者的配合使用
页面上调用
div id="targetcol">
</div>
<table id="tableall">
.....
</table>
<script type="text/javascript">
$('#tableall').columnManager({
listTargetID:'targetcol',
onClass: 'simpleon',
offClass: 'simpleoff',
colsHidden: <%= current_user.hide_columns(request.url) %>,
onToggle: function(index, state){
$.ajax({
url: 'users/hide',
type: 'post',
data: "index=" + index + ";state=" + state + ";url=" + "<%= request.url %>"
})
}
});
</script>
这里将点击后的效果通过ajax保存到用户的settings中,其中保存了url、index、state这几个属性值, 并在下次打开页面时通过hide_cloumns取出原先保存的值,起到一个人性化的效果。
编辑routes
resources :users do
post :hide, :on => :collection
end
在users_controller中增加hide处理,提供给ajax调用
def hide
p = current_user.settings.pagesetups
p = {} unless p
if p[params[:url]]
p[params[:url]][params[:index].to_i] = params[:state]
else
p[params[:url]] = {params[:index].to_i => params[:state]}
end
current_user.settings.pagesetups = p
render :nothing => true
end
取出用户对于table中字段隐藏显示的偏好设置
def hide_columns(url)
if settings.pagesetups and settings.pagesetups[url]
p = self.settings.pagesetups[url]
else
return "[]"
end
lists = p.delete_if {|k,v| v != "false" }.keys
"[" + lists * "," + "]"
end
参考
jQuery columnManager plugin http://p.sohei.org/stuff/jquery/columnmanager/demo/demo.html
rails-settings-cached: https://github.com/huacnlee/rails-settings-cached
分享到:
相关推荐
jquery.print-preview.js 浏览器打印插件
jQuery-Plugin-for-Client-Side-Image-Resizing-canvasResize
struts2-jquery-plugin-3.1.0.jar
赠送jar包:spring-plugin-core-2.0.0.RELEASE.jar; 赠送原API文档:spring-plugin-core-2.0.0.RELEASE-javadoc.jar; 赠送源代码:spring-plugin-core-2.0.0.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring...
jQuery plugin for autocomplete - jQuery自动完成插件
赠送jar包:spring-plugin-metadata-2.0.0.RELEASE.jar; 赠送原API文档:spring-plugin-metadata-2.0.0.RELEASE-javadoc.jar; 赠送源代码:spring-plugin-metadata-2.0.0.RELEASE-sources.jar; 赠送Maven依赖信息...
jquery editable plugin--点击编辑文字插件
struts2-jquery-plugin-2.0.0 struts2-jquery-plugin-2.0.0 struts2-jquery-plugin-2.0.0
cordova-plugin-app-update App updater for Cordova/PhoneGap Demo Try it yourself: Just clone and install this demo. cordova-plugin-app-update-DEMO :tada: 如果喜欢它,请别忘了给我一颗鼓励的星 Support ...
mysql 5.7安全审计插件 Linux X86-X64通用...audit-plugin-mysql-5.7-1.1.7 for Linux 等保开启审计插件,貌似官网找不到,发出来共享. 缺点:日志信息比较大,对性能影响大。 优点:对每一时刻每一用户的操作都有记录。
jquery-clipchamp-mjpeg-player-plugin 这个 jQuery 插件为 MJPEG(“运动 JPEG”)视频提供了一个简单的播放器,由。 安装 有两种简单的替代方法可以将 jquery-clipchamp-mjpeg-player-plugin 添加到您的项目中: ...
用于统计展示,不同的环形统计动画图,有具体的实例,用于系统portal页面
jquery-fileupload-rails, 用于 Rails的jQuery文件上传集成 Rails 文件上传jQuery-File-Plugin 是一个文件上传插件,由的Tschan 。 jQuery文件上传功能多文件选择。drag&拖放支持。进度栏和jQuery预览图像。 支持...
修改datax源码plugin-unstructured-storage-util下的UnstructuredStorageReaderUtil.class 加上一个判断,因为在hdfs中,null值存储的是 \N ,所以需要把它转换成 null存储到Mysql中
yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
已弃用 该宝石不再维护。 但是,这里维护了这个gem的完整重写: _下面的旧自述文件_ 设置插件 设置是一个插件,使管理全局键,值对的..../script/plugin install git://github.com/Squeegy/rails-settings.git 设置
赠送jar包:spring-plugin-metadata-1.2.0.RELEASE.jar; 赠送原API文档:spring-plugin-metadata-1.2.0.RELEASE-javadoc.jar; 赠送源代码:spring-plugin-metadata-1.2.0.RELEASE-sources.jar; 包含翻译后的...
将atlassian-universal-plugin-manager-plugin-2.17.13.jar 替换到 jira/atlassian-jira-6.3.6-standalone/atlassian-jira/WEB-INF/atlassian-bundled-plugins/ 重新启动jira 用管理员账户登录jira
前端开源库-babel-plugin-search-and-replaceBabel插件搜索和替换,它做什么?
maven-plugin-parameter-documenter-2.0.jar