philippemarcmeyer/fieldslinker
Composer 安装命令:
composer require philippemarcmeyer/fieldslinker
包简介
Designed for matching files headers to database fields during the process importing. Allows drawing links between elements of 2 lists.
README 文档
README
Designed for matching files headers to database fields during the process importing. Allows drawing links between elements of 2 lists (headers of the file on the left, column names on the right) and getting back the result in a js object
Given 2 lists : for instance one from a text import, the second listing the fields a db table the jquery plugin allows you to draw and save links between the 2 lists
You can link on a one to one basis or on a one to many basis. Fields can be declared as mandatory the result reporting an error in case there are not filled.
Store previous links and headers to automaticaly recognize files reload links if you need it with the existingLinks property :
example : "existingLinks": [{ "from": "lastName", "to": "last_name" }, { "from": "firstName", "to": "first_name" }, { "from": "role", "to": "jobTitle" }]
Side note : If FieldsLinker interest you, but you need it for other use case than file importation, check LinksMaker plugin which works the same but can allow more than 2 lists (you then compare lists two by two, by selecting them). this plugin works much the same as Fieldslinker and this one could evolve in any direction that meets your needs.
Usage
- param 1 : action
- param 2 : input
Available actions :
- init :
fieldLinks=$("#bonds").fieldsLinker("init",input);
Example of input :
var input = {
"options": {
"lineStyle": "square-ends",
"buttonErase": "Erase Links"
},
"listA": {
"name": "columns in files",
"list": [
"firstName",
"lastName",
"phone",
"email",
"role",
"Birthday",
"Adress",
"Sales"
]
},
"listB": {
"name": "Fields available",
"list": [
"Id",
"Company",
"jobTitle",
"adress 1",
"adress 2",
"first_name",
"last_name",
"email_adress",
"Phone number"
]
},
"existingLinks": [{
"from": "lastName",
"to": "last_name"
}, {
"from": "firstName",
"to": "first_name"
}, {
"from": "role",
"to": "jobTitle"
}]
}
Available input.options for "init" action :
-
options.className : you may change the default className ('fieldsLinker') by another class you provide
-
options.whiteSpace : default is 'nowrap' => you can change it to 'normal' to allow lists element to go to the next line (usefull if you have long names separated by spaces or ][)
-
lineStyle : 'straight' or 'square-ends' : will change the way the links are drawn between the items of the 2 lists, default is 'straight'
-
associationMode : 'oneToOne' or 'manyToMany' : allow links to be set on a one to one relationship or many to many
-
handleColor : your own colors default is '#CF0000,#00AD00,#0000AD,#FF4500,#00ADAD,#AD00AD,#582900,#FFCC00,#000000,#33FFCC'
-
mobileClickIt : true or false : simpler mode on mobile device where you click on item A and then click on item B to set the link (mobileClickIt option is automatic on touch devices)
-
changeParameters : example :
fieldLinks.fieldsLinker("changeParameters",{"whiteSpace":"normal"});
where the second parameter holds an options object to modify the original input.options attribute
-
eraseLinks : drop all links
-
getLinks : returns all the links
-
disable : disables the whole stuff
-
enable : enables it again
https://philippemarcmeyer.github.io/FieldsLinker/index.html
Also available on https://packagist.org/packages/philippemarcmeyer/fieldslinker ++++
v1.04 : Just a wording fix for npm
v1.03 : bug fix : no drag and drop when FieldsLinker is disabled
v1.02 : Improvement : adding an id to the root dom element if not provided
v1.01 : Bug correction : the manual sorting by drap and drop now works
v1.00 : Jquery 3.5 Compatibility
v0.96 : Removing filter option and alternateview
Sorry for the contributors : Fieldlinkers was diverging too much from the original intent and use case : to be a filter between a file to import and a database
I made another plugin LinksMaker, which works the same but can allow more than 2 lists (you then compare lists two by two, by selecting them)
this plugin works much the same as Fieldslinker
this one could evolve in any direction !
v0.95 : rewritten for multiples instances in mind
v0.92
Introducing new option : whiteSpace normal,nowrap,pre,pre-wrap,pre-line,break-spaces default => nowrap
v0.91
Fix mobileClickIt option:
- if set to
true, will use mobile mode, regardless of touch screen mode. - fix crash modeB
nullvalue - if selected (clicked), use CSS to invert element as visual feedback.
- mobileClickIt option is automatic on touch devices
v0.90
Canvas calculations fixes and other various fixes. Filter mode (removed in v 0.96)
v0.89
v 0.89 : Corrected a bug that corrupted the links array of objects detected by flartet on github
v 0.88 : New display mode : idea by Naveen nsirangu => show links between two "tables" linked by ids like a join in sql. instead of headers names, objects are provided (removed in v 0.96)
v 0.87 : New option for touch devices {"mobileClickIt":true} : idea by Norman Tomlins => make links more easily on touch devices just by clicking
v 0.86 : Modifications if Bootstrap is not available : tooltip are basic html titles and the links are horizontally centered
v 0.85 : Mobile friendly (requested by a user)
v 0.80 : I've been cleaning code in order to get something much simpler (nearly the same code than LinksMaker) it allowed me to implement drag and drop to reorder the items in the lists, which is convenient expecially if you've got long lists. options dropped in this version : autoDetect and byName : no more autodetect and the links are given back by name only not by order. the link over effect has also been dropped. Important : oneToMany:"on|off" becomes associationMode: "oneToOne|manyToMany" So you don't have one to many relation + one to one, but instead many to many and one to one relations.
v 0.72 : [Cancelled] New lineStyle : square-ends-dotted : white dots at the beginings and ends of lines on hover
v 0.60 : Mandatory fields show a tooltip (mandatoryErrorMessage) disable/enable : disable/enable everything, the global opacity is set to 0.5
v 0.45 : Mandatory fields. the css is now in his own file.
v 0.41 : the colors don't change when links are deleted and the color of the link while drawing is consistent with the final result
v 0.4 : new option allowing to link one to many
v 0.3 : FieldsLinker becomes responsive !
v 0.2 : You can choose beetween an output with positions or names Colours can be re-defined and lines come in 2 flavours You may input somme links from a previous session Auto-detect feature helps you find part of the links (optional) Optional "Erase Links" button Works in Chrome, Chromium, Opera, Firefox and IE (9+)
v 0.1 : the lines are drawn while dragging over the canvas and the horizontal middle points of the cells are calculated no parameters anymore
Tested on : Chrome, Firefox, Chromium, IE, Opéra : OK for Chrome, Firefox and Opera todo : horizontal middle points of the cells are wrong on IE and on chromium the canvas zone (between the 2 lists) is selected during the dragging process which is not aesthetic.
v0.01 : first commit : todo => parameters should not be necessary cellHeight,List1Width,canvasWidth,List2Width and should be calculated
philippemarcmeyer/fieldslinker 适用场景与选型建议
philippemarcmeyer/fieldslinker 是一款 基于 JavaScript 开发的 Composer 扩展包,目前已累计 86.31k 次下载、GitHub Stars 达 23, 最近一次更新时间为 2020 年 03 月 24 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「jquery」 「plugins」 「list」 「canvas」 「lines」 「jquery-plugin」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 philippemarcmeyer/fieldslinker 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 philippemarcmeyer/fieldslinker 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 philippemarcmeyer/fieldslinker 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Easily provide front-end sorting controls for SilverStripe lists
A block to display a list of links to child pages, or pages in current level
Adjacency List’ed Closure Table database design pattern implementation for Laravel. Includes restore of tree
Yii2 LightBox image galary widget uses Lightbox v2.10.0 by Lokesh Dhakar
This is a laravel 4 package for the server and client side of datatables at http://datatables.net/
A jQuery augmented PHP library for creating and validating HTML forms
统计信息
- 总下载量: 86.31k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 23
- 点击次数: 20
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-03-24
