Tagged: tabs; css; tables
- This topic has 99 replies, 21 voices, and was last updated 2 years, 4 months ago by Alexander Bautz.
-
AuthorPosts
-
-
March 22, 2017 at 20:34 #16181
Alex;
I’m starting this topic as a place to put general enhancement suggestions (not feature requests). If you find it valuable, perhaps it could become a “sticky” topic that always shows near the top of the Forum topics for DFFS so it is easy for users to find.
I currently have 3 non-feature suggestions:
1. Change the naming of new versions of DFFS to the format YYYY-MM-DD so that when we download the zip files, they will automatically sort in chronological order. (Right now, I sometimes remember to create a new folder for each new download and use that date format as the folder name, but making it a standard would simplify the process of knowing which release is the latest.2. Instead of using html files for CEWP links, use text files. For example, instead of Installer_CEWP_code.html make it Installer_CEWP_code.txt. The advantage of using a txt file instead of an html file is that a user can see and modify the contents of a txt file much easier that an html file. For instance, in the current environment I work in, html files will not open in the browser, but instead I must download the html file and open it from my hard drive.
I recognize that for backward compatibility when upgrading from one version to another of DFFS you might have to maintain both an html version of the file and a txt version of the file, so it might not be worth the extra work to do so.
3. Create a ‘sticky’ topic in this forum for bug reports and/or beta testing reports.
- This topic was modified 7 years, 6 months ago by Alexander Bautz.
-
March 27, 2017 at 21:05 #16217
Hi Keith,
Sorry for the late reply – I’ve been busy trying to sort out a few issues with the latest BETA.This is good ideas and I’ll stick it to the top – and will look at changing the “naming” of the future DFFS versions.
Thanks!
Alexander
-
March 27, 2017 at 21:40 #16230
Thanks for making this a sticky post!
If possible, I’d like the ability to restore a previous version of the DFFS configuration from the DFFS new/edit/display config page. I know we can use versioning in the SPJS-DynamicFormsForSharePoint list to restore a previous version, but I’ve had a few occasions where I’ve been in the config page and wished I could revert from there after testing a change.
-
May 23, 2017 at 20:34 #16659
How to know which version of DFFS is installed, and how to update easily to another version
1. Provide an easy way to know which version of DFFS is installed in the DFFS folder within the SPJS Library. I do this for myself right now but simply adding a text file with a name that reflects the version. For instance, my most recent installations have a text file in the DFFS folder named “DFFS version 2017-02-25.txt”. This lets me know at a glance which version of DFFS I am using. When I download a new version of the DFFS files and unzip the zip file, I rename the DFFS folder to include the version date. This way, I can have several versions of DFFS installed in a single site and switch between them almost instantly simply by changing the folder names. Whichever folder is named “DFFS” (without any date component) is the active version.Request to Alex: please include a text file (like I have explained above) in future versions of DFFS to give users an easy way to know which version of DFFS is installed.
-
May 24, 2017 at 19:50 #16669
Thanks for the input – I’ll add this file. Also, from the next version you can add a folder named “DFFS_NEXT” and use a URL key like this to test-load the new version from this folder without the need to rename the existing folder – the test load will only apply to the user who set the URL key:
.../Lists/YourList/NewForm.aspx?DFFS_NEXT=1
As this feature requires some changes to the code it will unfortunately only work when updating past the upcoming revision. This new revision has been delayed many times, but will hopefully be ready for BETA this weekend.
Best regards,
Alexander
-
-
May 23, 2017 at 20:40 #16661
Desired enhancement: Easy copying of New form config to Edit form, or vice versa.
When I am building a complex form, I usually work on just one version of the form (for instance, the EditForm), and when I reach a point where the form is fairly useable, I will clone the EditForm to create the NewForm.When I need to make changes later (especially if I have written custom Javascript that will provide extra functionality on both the New form and Edit form) I will make the changes in the Edit form, then delete the New form and recreate it so it has the same configuration. (OR, I will export the Edit form configuration and Import it into the New form.)
It would be great if we could have a button like “Copy Edit Form Config to New Form” to save a few steps when trying to keep the New and Edit forms synchronized.
Importance of this enhancement: very low
-
May 24, 2017 at 19:56 #16671
In the upcoming version I have added a new functionality to create restore points and to browse existing restore points. This feature is intended used to do exactly what you require. See attached image.
Best regards,
AlexanderAttachments:
-
-
June 29, 2017 at 14:01 #17062
It would be great to have the option to specify the scope of search within the lookup list/library for vLookup functionality.
Currently the query created has RecursiveAll scope. Since there is an option ‘Add new items to this folder (Document libraries only)’, it would be really good to have an option to either search for items in all folders or specify particular folder.
This would help resolve issues with libraries having over 5000 items on SharePoint Online.
Let me know if you need any help with that. I am a SharePoint developer myself and be glad to contribute.- This reply was modified 7 years, 3 months ago by Konrad Kołodziejak.
-
July 3, 2017 at 23:19 #17164
Thanks for the feedback. I’ll see what I can do about adding an option to specify the folder to search in for vLookup.
The current code base for vLookup is not fully optimized for SP 2013+, and I have plans to completely rewrite vLookup and make it an integrated part of DFFS. I’ll keep this in mind for the next version.
PS: I appreciate any feedback you have, so please post your suggestions here, or email them to me.
Best regards,
Alexander
-
June 29, 2017 at 14:31 #17066
It would be great, if the minified version of scripts from plugins folder were loaded.
It would speed up the load time of assets and therefore shorten the time of overlay being displayed.
There could be a setting (debug mode) that would make the unminified plugins load instead of minified ones.-
July 3, 2017 at 23:20 #17166
I have minified vLookup as this is the biggest files, but I’ll try to get all files minified for the next version.
Alexander
-
-
July 20, 2017 at 11:02 #17351
I know responsiveness is something you already looked into and thought about. What are your thoughts on CSS Grids? I only recently started using them, but I really like them and from my imagination they could be an option for DFFS too.
-
November 27, 2017 at 00:44 #18885
Hi Andreas,
Sorry for not replying earlier. I cannot use this approach in the current DFFS version because of how the original form is manipulated, but have plans for responsiveness in the next major release. Unfortunately I’m so busy supporting and maintaining my solutions and haven’t been able to get the momentum I hoped on the new version.Alexander
-
-
November 26, 2017 at 05:52 #18880
Would it be possible to add functionality to support branching of DFFS? There are deployments where it is not practical to have dev/test/prod environments. We have to develop new functionality in production.
It would be great if we could “branch” the dffs configuration, make changes, test it, then publish it as the production version. We could use a query string or cookie to indicate whether to use the prod or dev branch when accessing forms or configuring.
The “enhanced with DFFS” tag could be updated to show which branch you are using and allow you to select a different branch.
To get extra fancy, this branching may be done at a view, list, web or site collection level. You could also include special branch tags with include files if you want to make them branch specific.
Obviously, any list configuration changes would affect all branches.
- This reply was modified 6 years, 10 months ago by Ivan Wilson.
-
November 27, 2017 at 00:48 #18887
Hi Ivan,
This is a good idea, and I have actually already planned to include more or less what you ask for. I haven’t finished it yet, but will try to get it out soon.Alexander
-
January 11, 2018 at 11:31 #19285
Hi Alexander,
If possible, I have been asked if once the form is Saved either in the ribbon or via button at the bottom, that the user be returned to a specific URL, like a homepage or thank-you page for example.
Is there there a script that I can add to to the EditForm.aspx page?
Perhaps this can be added in a future release in the Misc Tab?Thanks.
-
January 13, 2018 at 12:43 #19312
Hi Brett,
You can use this code in your custom js:spjs.dffs.redirect("http://Your_redirect_url",false);
The redirect will be performed when saving the form.
Alexander
-
January 14, 2018 at 02:34 #19318
Hi Alexander,
Thanks for replying but I get an error in Custom JS textarea.
Error: 80020101
I’ve tried in both Edit and Display Custom JS areas.
I have version 4.373, should I upgrade to the latest DFFS?
Thanks. -
January 15, 2018 at 19:42 #19336
I’m not 100% sure which version I added this function in. When in a form with DFFS, try bringing up the dev console by hitting F12 > Console and type in this:
spjs.dffs.redirect
If the output reads “undefined” you must update DFFS to the latest version.
Alexander
-
January 16, 2018 at 00:14 #19339
Thanks Alexander,
I have upgraded to the latest DFFs and the redirect is now working.
Many thanks.
-
-
January 11, 2018 at 11:50 #19287
Hi Alexander,
Would it be possible to have the prev/next tab buttons at the top of the form, or both top and bottom maybe?Regards,
Phil-
January 13, 2018 at 12:56 #19314
The easiest way to achieve this is to add this snippet to your custom js. You don’t need to use the Misc settings if you only want the buttons in the top.
var b = []; b.push("<div style='padding:2px;text-align:right;border-bottom: 1px #808080 solid;'>"); b.push("<input class='ms-ButtonHeightWidth' type='button' value='Previous tab' onclick='spjs.dffs.navTab(0);'>"); b.push("<input class='ms-ButtonHeightWidth' type='button' value='Next tab' onclick='spjs.dffs.navTab(1);'>"); b.push("</div>"); jQuery(".dffsTabRow").after(b.join(""));
Alexander
-
-
January 15, 2018 at 13:56 #19331
Thanks, it worked a treat 🙂
-
January 24, 2018 at 17:04 #19472
It would be nice to be able apply the configuration to the other two forms with one click of a button if possible.
Cheers,
Phil-
February 1, 2018 at 21:51 #19553
I’ll see what I can do about a button to push it to the other forms, but you can use this method to share the same config for all forms in a list – just create an unique ID in the “dffs_formIdOverride” variable and insert this snippet in a script editor in all three forms.
Alexander
-
-
February 1, 2018 at 00:25 #19550
It would be nice if the txt file at the root of the DFFS folder that shows the release date could also contain the version numbers of each of the component files. Right now, they only way I know to check the version numbers of a release is to install it and open it, or perhaps hunt through the Change Log on the spjsblog.com site.
For example, the contents of the file v2017-07-31.txt could read:
This file is used to quickly see the version date and changed files.
Changed files in this release:
——————————-
/DFFS/js/DFFS_backend.min.js (v4.4.3.7)
/DFFS/js/DFFS_fontend.min.js (v4.4.3.7)
/DFFS/js/DFFS_backend.css (v4.36)
/DFFS/css/DFFS_frontend.css (v4.36)
/DFFS/plugins/SPJS-ac.js (v1.6.11)
/DFFS/plugins/SPJS-casc.js (v3.7.9)
/DFFS/loader/DFFS_loader.html (v?????)Files not changed in this release:
———————————
/DFFS/plugins/jquery.min.js (v1.12.4)
/DFFS/plugins/SPJS-vlookup_backend.js (v2.2.98)
/DFFS/plugins/SPJS-utility (v1.307)
etc.-
February 1, 2018 at 21:51 #19555
Good idea – I’ll do that in the next release.
Alexander
-
-
March 8, 2018 at 12:06 #20078
Hello Alexander,
I’m wondering if it’s possible to have a single column being displayed more than one time in the same tab? Currently we’re doing this via custom code, but it’s not that easy.
- This reply was modified 6 years, 7 months ago by Andreas Blüher.
-
March 8, 2018 at 23:57 #20098
Sorry, but you cannot have the same field multiple times in the same tab – different tabs is not problem though.
Alexander
-
March 22, 2018 at 14:15 #20349
Thanks for your reply. Would it change anything if the 2. appearance would be read only by default?
-
-
March 22, 2018 at 19:59 #20364
You can use this snippet in a HTML section to show the value from another field in the form (please note that it will not work in older versions):
Field value is: {{FieldInternalName_Of_Your_Field}}
Alexander
-
March 23, 2018 at 10:05 #20373
Thanks, that worked like a charm.
-
-
April 19, 2018 at 12:53 #20632
Have you thought about some kind of “light configuration” option? DFFS backend can be pretty overwhelming. I would like to have some special users which are allowed to add/remove fields, but to do nothing more. Is something like this possible?
-
April 24, 2018 at 18:06 #20649
This is currently not possible, but I’ll make a not of your request and see if I can add support for something like this in a future version.
Best regards,
Alexander -
May 23, 2018 at 13:48 #20974
Hi Alexander,
Would it be possible to have a tab option to set all fields read-only on the tab?
I know you can set separate rules by tab index but it does require the additional maintenance when columns are added to the tab or deleted from the list.
Clients have requested this (not too sure on the use cases for it).
-
May 24, 2018 at 20:08 #20987
Hi,
You can do this now by using a little Custom JS. Add this snippet to your Custom JS and call it from the “Click function name” in your tab:function readOnlyAllFieldsInTab(){ var arrToSetReadonly = []; jQuery.each(spjs.dffs.data.tabConfigObj[spjs.dffs.data.selectedTab].fields,function(i,fin){ if(spjs.dffs.fieldData[fin] !== undefined){ arrToSetReadonly.push(fin); } }); spjs.dffs.doReadOnly(arrToSetReadonly); }
Please note that the fields will stay read-only when you change tabs – you would have to set the fields as editable again in the other tabs.
Alexander
-
May 28, 2018 at 04:54 #21008
Perfect.
Thanks for the quick response.
-
-
June 7, 2018 at 16:06 #21110
it would be really nice to be able to copy entire sections. Example would be a check box that you can copy the heading, fields under it because you want to move the entire section up or down the form or maybe even move it to the edit form from new.
Cheers
-
June 7, 2018 at 19:56 #21122
This is a good idea, and it is already on my list of things to add to a future version.
Alexander
-
-
June 14, 2018 at 03:16 #21182
Hi Alex,
There is probably already an easy way to do this but it would be nice to have an easy way to target the DFFS Print page for CSS changes.
Would you be able to include a class or id in the following?
spjs.dffs.printCurrentTab = function() { // ... Your print code // Include class or id to allow custom CSS to target printing and not display form b.push("<table style='width:100%' class='dffs-print'>"); // Continue print code }
As always, thanks for your time!
- This reply was modified 6 years, 3 months ago by Ross.
-
August 2, 2018 at 15:49 #21617
Sorry for the late reply. I’ll add this to the next release, but in the meantime you can (if you haven’t already done so) override the function by adding this to your custom js:
spjs.dffs.printCurrentTab = function () { if (spjs.dffs.data.selectedTab === "") { return; } var b = [], tFields = spjs.dffs.data.tabConfigObj[spjs.dffs.data.selectedTab].fields, sbsTracker = {}, sbsID, pHead, pFoot, dffs_print; b.push("<style type='text/css'>"); b.push(".ms-hide{display:none!important;}"); b.push(".dffs_noPrint{display:none!important;}"); b.push(".ms-spimn-img{display:none!important;}"); b.push("table.ms-formtable tr > td.ms-formlabel{width:50%;}"); b.push("td.ms-formlabel h3{font-size:13px;margin:0px;padding:0px 3px 0px 3px;}"); b.push("td.ms-formbody{width:60%;font-size:12px;padding:0px 3px 0px 3px;}"); b.push(".vLookupGroupHeader{width:100%;font-size:12px;cursor:pointer;background-color:#ACCBE0;border-top:1px #818181 solid;border-bottom:1px #818181 solid;margin:1px;padding:1px 3px 1px 3px;white-space:nowrap;}"); b.push(".childTableHeader{font-weight:bold;color:#3f4746;padding:1px 6px 1px 1px;cursor:default;border-bottom:1px #adb3c3 solid;}"); b.push(".childTableCell{font-weight:normal;padding:1px 5px 1px 2px;}"); b.push(".vLookupProgressBarOuter{background-color:#ffffff;border:1px #818181 solid;text-align:left;white-space:nowrap;overflow:hidden;}"); b.push(".vLookupProgressBarInner{background-color:#8ABC8B;border-right:1px #818181 solid;}"); b.push(".vLookupTotals{border-top:1px silver solid;border-bottom:3px silver double;padding:3px;cursor:default;text-align:right;}"); b.push(".spjshidden{display:none !important;}"); b.push(".tabH1{font-size:25px;color:#3f4746;padding:3px 0px 3px 0px;}"); b.push(".tabH2{font-size:20px;color:#3f4746;padding:3px 0px 3px 0px;}"); b.push(".childTableHeader{font-weight:bold;color:#3f4746;padding:1px 6px 1px 1px;cursor:default;border-bottom:1px #adb3c3 solid;}"); b.push(".customTooltip{display:none!important;}"); b.push("a{text-decoration:none;}"); b.push("#idAttachmentsTable .ms-vb{width:100%!important;}"); b.push(unescape(spjs.dffs.data.dffsDataObj.customCSS)); b.push(spjs.dffs.data.fieldCSS); b.push("</style>"); if (spjs.dffs.data.dffsDataObj.tabs.printHeader !== "") { pHead = spjs.dffs.buildValStr(unescape(spjs.dffs.data.dffsDataObj.tabs.printHeader)); pHead = spjs.dffs.translateStringWithJSON(pHead); b.push(pHead); } b.push("<table style='width:100%' class='dffs-print'>"); if (tFields.length === 0) { tFields = []; jQspjs.each(spjs.dffs.fieldData, function (fin, o) { tFields.push(fin); }); } jQspjs.each(tFields, function (i, fin) { var f = null; if (jQspjs("#" + fin).length > 0 && (spjs.dffs.fieldtype[fin] === "dffs_heading" || spjs.dffs.fieldtype[fin] === "dffs_html" || spjs.dffs.fieldtype[fin] === "dffs_row")) { f = jQspjs("#" + fin); if (f.length > 0) { b.push(f[0].outerHTML); } } else { f = jQspjs("#dffs_" + fin); if (f.length === 0) { if (fin === "Attachments") { f = jQspjs("#idAttachmentsTable"); } else { return; } } if (jQspjs(f).parents("tr.sbs_OuterTR").length > 0) { sbsID = jQspjs(f).parents("tr.sbs_OuterTR:first").attr("id"); if (sbsTracker[sbsID] === undefined) { sbsTracker[sbsID] = true; b.push(jQspjs(f).parents("tr.sbs_OuterTR")[0].outerHTML); } } else { if (f[0].tagName.toLowerCase() === "table") { b.push("<tr><td colspan='99'>" + f[0].outerHTML + "</td></tr>"); } else { b.push(f[0].outerHTML); } } } }); b.push("</table>"); if (spjs.dffs.data.dffsDataObj.tabs.printFooter !== "") { pFoot = spjs.dffs.buildValStr(unescape(spjs.dffs.data.dffsDataObj.tabs.printFooter)); pFoot = spjs.dffs.translateStringWithJSON(pFoot); b.push(pFoot); } dffs_print = window.open("", "DFFS_print", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=750, height=800, top=100, left=100"); dffs_print.document.title = "DFFS"; jQspjs(dffs_print.document.body).append("<div>" + b.join("") + "</div>"); setTimeout(function () { dffs_print.print(); setTimeout(function () { dffs_print.close(); }, 500); }, 500); }
Alexander
-
August 3, 2018 at 15:04 #21636
Easy way to copy a single rule (or selected rules) or a single tab (or selected tabs) from one config to another.
Alex, I’ve had some developers who have been working on some very complex forms ask me if there is a way to copy a single rule or a set of rules from one config to another (for instance, to copy a rule developed in the New form config and copy it into the Edit form config).
I have sometimes also wished there was an easy way to copy just one tab from the New config to the Edit config.
-
August 6, 2018 at 13:45 #21666
Hi,
I will include this in the next release.Best regards,
Alexander
-
-
September 4, 2018 at 18:26 #22025
Easy way to “pause” a splash (overlay) screen.
We have encountered a situation where we would like to be able to include simple instructions to our users on the overlay as the form is opening, and control how long the overlay shows. Could you add a setting for that? -
September 11, 2018 at 15:37 #22059
Hi,
You can put this in the custom js:var mustReadOverlayId = spjs.dffs.alert({ "title":"Please read instructions (Closes after 10 seconds)", "msg":"Put the instructions here - you can use HTML code or plain text.", "noBtn":true }); // Remove overlay after 10 seconds setTimeout(function(){ spjs.dffs.closeDlg(mustReadOverlayId ); },10000);
Alexander
-
October 5, 2018 at 19:21 #22364
Good day Alex, I don’t see this anywhere but it would be nice if we had an option for setting an entire tab index to read only based on a rule.
Cheers-
October 5, 2018 at 20:15 #22366
Now that I think about it if I had the code or function to hide a tab that would be awesome as well!
-
-
October 6, 2018 at 01:31 #22368
William, I just saw this about code to hide a tab. The id of the tab is “dffs_tab_5” where 5 is the tab index. So, you can just use $(‘#dffs_tab_5’).hide() to hide tab with index 5.
-
January 21, 2019 at 16:37 #23575
I currently exploring DFFS by using the Training application example from this site. An enhancement could be the procedure to install the DFFS_Email list.
In order to get the full functionality I have to use SharePoint Designer to create the workflows in this list. But the policy of our organisation is: “Use of SharePoint Designer is not allowed and therefor disabled”. I make use of SharePoint 2013 server.
I know that workflows can be created by using SharePoint 2013 Workflow Services JS API. See: https://www.codeproject.com/Articles/607127/Using-SharePoint-2013-Workflow-Services-JS-API
Is this possible to implement? -
January 22, 2019 at 20:27 #23600
Hi,
I looked at the article you lined to – I have not tried this before, but from what I could find I will be a bit difficult to build the entire workflow with code. Are you not able to use the REST email option? (the default method if you do not check the Use custom list with workflow to send E-Mails checkbox)?Alexander
-
January 22, 2019 at 20:40 #23602
Sure, the REST email option works, but it is not possible to send the mail later.
-
February 4, 2019 at 10:07 #23717
Javascript based CAML query builder
I’m working behind a firewall without the possibility to install tools as smartCAML for building and testing CAML queries.
Use of SharePoint Developer and Visual Studio are not allowed for client side developments.
The approach used by spjs opens the possibility to build client side applications as a CAML query builder. -
February 4, 2019 at 17:46 #23727
Hi,
I’m sure it can be done, but unfortunately I don’t have time to build something like this. You find resources online regarding CAML queries, and you can always post a question in the forum where you describe what your want the query to do, and I’ll try my best to help you.Alexander
-
February 15, 2019 at 08:57 #23826
In our SharePoint groeps we are using Active Directory groups for granting access to SharePoint sites, directories and mailboxes to persons working on certain functions in the organisation. When a person is added to such an AD (role) group he get in one step all neccesary access autorities without bothering to enter it in all the systems.
In the rule section one can make a tab visible for a certain SharePoint group. But I found out that DFFS does not resolve the AD groups in these SharePoint groups.
Adding a userprofile to the SharePoint group will do the job, but that involves a lot of maintenance and that is not what we realy want.
Is it possible to resolve the membership through the AD group until a userlevel is reached?-
February 16, 2019 at 14:34 #23835
Hi,
Thanks for the “beer”!Unfortunately JavaScript cannot access AD to view members directly, but I have described a workaround that you might be able to use here: https://spjsblog.com/2016/01/10/ad-group-in-sp-group-workaround-for-verifying-membership/
Alexander
-
February 23, 2019 at 17:32 #23931
Hi Alexander,
Thanks for the workaround.
Is it correct that this workaroud algorithm is not implemented behind the Tab instruction: “Which groups can see this tab?”. Because that was the mean reason I’ve made this suggestion..
And if not: is it possible to add? -
February 23, 2019 at 18:11 #23933
Yes, you are right – this is not built into DFFS.
Alexander
-
-
February 28, 2019 at 23:50 #24010
Using vLookup from the New from when no ID is needed.
Currently (release date 2019-01-12) in order to have the vLookup functionality operate on the New form, I must include the _vLookupID column on my parent list even if I am using a different field to identify the child records I want displayed. (I’ll give the use case below.)
My user asked how to create the equivalent of an Infopath Repeating section in DFFS. The example she gave me was based on the child records sharing the same AU (stands for ‘Accounting Unit’, similar to a GL code in an accounting system) as the parent records, which doesn’t rely on the ID of the parent record OR the ID of the child record, but I still had to add the _vLookupID column on my parent list for the vlookup config to work.
If it is easy to turn off that validation when someone is not using the ID column on the parent list to relate to records on the child list, it would make setting up the lists easier for my user’s use case.
USE CASE: One team supports many applications. All the applications supported by the team fall under the same AU (think GL code) as the team falls under. The purpose of the new system is to show which applications are supported by different teams (select Manager name and see all the applications the team supports.)
A table of some applications and the AU’s they fall under is already available so the child list could be pre-populated through a bulk load. When adding a new manager to the parent list on the new form, immediately all the applications supported by that manager would show up on the form. Apps supported by the manager’s team NOT already pre-poplulated would be added individually on the parent list new form. At no time would the ID of the parent record be needed to find the related records on the child list.
-
March 2, 2019 at 12:28 #24027
Hi,
I’ll remove the limitation that makes you have to add the _vLookupID column when using vLookup in NewForm in the next release because even though you must add the column, you don’t have to use it in the query – so this check is not necessary.Here is a code snippet you can use to pull a user info (user list in SP) or user profile (user profile service) value from a people picker and use it to search a child list for matching records where the user info / profile property is found in a text field called AU.
Add this to your Custom JS:
Change Manager to match your people picker internal name, Department to match your user info / profile property and vLookupAU to match your vLookup column internal name. This snippet uses the user info list, but if you like to use the user profile just change the line starting with var ui = to the commented out line.var vLookupSearchValue = ""; function refresh_vLookup(){ vLookupSearchValue = ""; var managerLoginName = spjs.utility.getFieldValue({"fin":"Manager","key":"loginname"}); if(managerLoginName.length > 0){ jQuery("#dffs_vLookupAU").show(); // Get from User info list var ui = spjs.utility.userInfo(managerLoginName[0]); // Get from user profile service // var ui = spjs.utility.userProfile(managerLoginName[0]); var key = ui.Department; if(key !== null && key !== undefined){ vLookupSearchValue = key; } spjs.vLookup._init("vLookupAU",false,true); }else{ jQuery("#dffs_vLookupAU").hide(); } } // Call when form loads function dffs_ready(){ // Timeout to ensure people picker is ready setTimeout(function(){ refresh_vLookup(); },1000); }
Create a rule:
Create a rule that triggers on change on the Manager people picker and add refresh_vLookup to the Run these functions / trigger these rules field.Change vLookup configuration:
Then you change your vLookup settings like the attached images.Alexander
Attachments:
-
-
March 6, 2019 at 21:55 #24178
I have an idea that I don’t think currently exists. Could it be possible to set a default Custom CSS for every form? Right now, I copy my CSS from every single form onto any new forms I create. I’d like to see a way that I can have a default CSS automatically applied to every instance of DFFS I have, and then I can do further Custom CSS for the specific list from within the backend.
-
March 7, 2019 at 18:38 #24192
Travis, I think you could accomplish that with existing functionality quite easily by using the “Load these CSS files ” section in the Custom CSS settings page in the DFFS configuration for your forms. Save your custom css as a css file, store it in your SPJS library, and then just add the reference when you create a new form.
I *THINK* there is even a way to add it to the “Plugins” folder in the SPJS library so it is automatically included in every form. Check the DFFS manuals (Installation and User Guide) online.
-
-
March 7, 2019 at 19:31 #24196
Hi,
I guess the easiest would be to just add it to the DFFS_loader.html file as a normal link-tag. Just edit the file and add it to the top – here is an example:<link rel="stylesheet" href="/sites/yoursite/SPJS/dffs/your_custom_file.css">
@Keith: Your are right that you could to this earlier by adding it to the “custom” folder in /SPJS/DFFS, but this was deprecated when I added the “Load these files” above Custom JS and Custom CSS.
Alexander
-
April 5, 2019 at 17:12 #24712
good day. working with cascading using multi select I find something to be cumbersome. When you select an entry and use the autofill if only one option present, it doesn’t work. It simply adds the one value to the Available options and not into the selected options forcing you to select them and add them to the Selected options.
It would be cool if I were able to select 2 or more options in the “Available Options” box and all entries in the second box just transferred to the “Selected options” box. This would allow me to hide the second field “Business Sponsor” in this case so the EU did not have to deal with it and I could still use the values in a workflow.
attached in this example you can see I selected BI/Analytics & reporting as well as EF DATA CAPTURE
in the Business sponsor box the corresponding entries, “bill and Lisa” are placed in the “Available Options” and not automatically into the “Selected options”. Hope I am making sense.
Attachments:
-
April 7, 2019 at 11:33 #24724
Hi,
Which version of SPJS-Casc are you using? – I tested, and it does autofill in my test site. I did fix a bug related to this issue in v3.7.13 back in April 2018.Alexander
-
April 8, 2019 at 15:27 #24734
currently I am using Dynamic Forms for SharePoint DFFS Backend v4.4.3.10|CSS version: 4.37 / 4.37|spjs-utility version: 1.309
Thanks!
-
June 7, 2019 at 21:15 #25626
Alexander,
This is a follow-up to the “pause” splash screen query. I’d like to detect a NON-Firefox browser (Internet Explorer, Edge, Chrome) and show a message that states “Use Firefox for faster loadtimes”.
How could I do a browser detection in your custom JS:
var mustReadOverlayId = spjs.dffs.alert({ "title":"Please read instructions (Closes after 10 seconds)", "msg":"Put the instructions here - you can use HTML code or plain text.", "noBtn":true }); // Remove overlay after 10 seconds setTimeout(function(){ spjs.dffs.closeDlg(mustReadOverlayId ); },10000);
Thanks
Mike- This reply was modified 5 years, 4 months ago by MikeS.
-
June 7, 2019 at 22:46 #25629
You can try something like this:
if(navigator.userAgent.toLowerCase().indexOf("firefox") < 0){ var mustReadOverlayId = spjs.dffs.alert({ "title":"Non Firefox browser detected!", "msg":"Use Firefox for faster loadtimes", "ok":function(){ // Close dlg } }); // Remove overlay after 10 seconds setTimeout(function(){ spjs.dffs.closeDlg(mustReadOverlayId ); },10000); }
Alexander
-
June 8, 2019 at 00:18 #25633
Thank you Alexander. It works exactly as needed.
Mike
-
July 9, 2019 at 21:16 #25985
Suggestion: Add one more instruction in the tooltip for the “Set Field Value” setting in a rule.
I keep forgetting how to enter the current user’s email address (NOT a mail-to link) in a people field using the Set Field Value setting in a rule.
It’s a bit confusing:1. {currentUserEmail} will insert a mail-to link. 2. {currentUser:EMail} will insert the actual email address, which is VERY helpful when trying to populate a people field.
In the next release, could you add a note in the tooltip about using {currentUser:Email} to insert the user’s email address?
-
July 10, 2019 at 08:54 #26001
Thanks, I’ll give this as an example in the tooltip in the next version.
Alexander
-
July 23, 2019 at 18:36 #26230
2 New Requests:
1. I often get requests to change the wording of the Save button to “Submit”. Can that be added as an option on the Tab configuration page?
2. I also get requests to hide the Cancel button. Can that be added as an option on the Tab configuration page?-
July 23, 2019 at 18:47 #26232
this will do it for now
_spBodyOnLoadFunctionNames.push(“ChangeSPSavetoSubmit()”);
function ChangeSPSavetoSubmit()
{
var inputs = document.getElementsByTagName(“input”);for(i = 0; i
-
July 30, 2019 at 15:06 #26402
I’ll add an option to hide the Cancel button in the tab configuration in the next release. Renaming the Save button at the bottom of the form can easily be done like this:
jQspjs("input[id$='SaveItem']").val("Submit");
If you want to rename the one in the ribbon you can use this:
jQspjs("#Ribbon\\.ListForm\\.Edit\\.Commit a:first span:last").text("Submit");
Alexander
-
-
July 26, 2019 at 15:35 #26280
Please have readonly fields adopt the same background color as formfields, eg:
.dffs-readonly-inner{
background-color:#e3e0e0;
} -
July 28, 2019 at 19:02 #26299
Hi,
Did you use the Form background color setting in the Misc tab and then set a field readonly? – I have fixed this and will release a new version soon.Alexander
-
July 29, 2019 at 03:39 #26314
If I recall correctly, in version 4.4.4.0, there are colors entered in the Form background color setting in the Misc tab by default when a new config is created. I actually like having the default colors there, but having readonly fields adopt the same background color as is set in the Form background color setting makes the form look much nicer than having the readonly fields end up with white backgrounds while the editable fields have shaded or colored backgrounds.
-
July 29, 2019 at 21:04 #26346
I don’t think there is a default background color set, but I have fixed it so any custom background color set in the Misc tab will be applied also to the readonly value.
Please note that you must remove any custom css or js used to modify the style for this to apply.
Alexander
-
August 15, 2019 at 17:49 #26671
Hi Alexander, I’d like to see if an enhancement can be made for the “If user is in group with ID or name” and the alternative “If user is NOT”.
The enhancement would be for it to be able to recognize users who are in the group, but by way of being in an AD-Group that is in that SharePoint group. So the users profile isn’t directly added, they are just in the AD-Group.
I know you have a workaround for this that requires a custom JS function and a triggered rule from that function, but am wondering if since that was created in 2016 perhaps there has been some new way to get that to work from the already configured rule without having to go through all that setup.
Reason for the ask is that I use that rule quite often, and recently was able to automate my active directory groups for effortless permissions management. I only started using AD groups recently, and found out the hard way that it doesn’t work with the rule as it is now.
-
August 17, 2019 at 08:43 #26708
Hi,
Unfortunately there is still no way of accessing or expanding the AD-group from JavaScript to check for membership.I’ll see if I can build in the workaround method in these triggers so that it will do an additional check to see if the user can view membership in case he or she is not added directly to the group.
Please note that this check will only work for non-admin users because admins can always view membership.
Alexander
-
October 9, 2019 at 13:58 #27288
Hi I would like to request that there be a way to add a Text field to be part of the SBS table and show up next to the form bodies.
In my example I want the the true/false to appear next to the check box in my SBS.Attachments:
-
October 10, 2019 at 16:20 #27305
Hi,
I’m not 100% sure I understand, but you can use this line of code to add a label to a Boolean checkbox field:jQuery("#dffs_YOUR_FIELD_NAME input").after("<label>Add label text here</label>");
Replace YOUR_FIELD_NAME with your actual field name.
Alexander
-
October 28, 2019 at 15:30 #27486
Alex,
If we leverage the “.after” approach, how can we remove this later in custom JS after a condition is satisfied?I insert like this
jQuery("#sbs_Field_MyField").after("<td>"+html+"</td>");
Thanks,
Wilson -
October 28, 2019 at 17:01 #27497
By adding an ID to the element you insert:
jQuery("#sbs_Field_MyField").after("<td id='your_custom_id'>"+html+"</td>");
Then use this to remove it:
jQuery("#your_custom_id").remove();
Alexander
-
February 6, 2020 at 16:49 #28557
If this has been suggested please ignore it.
It would be nice to have the ability to change the field labels. Currently, I use css to hide the .ms-formlabel and then add a row above the field to rename it. I realize I could rename the field after creating an internal field name but sometimes end users want a full blow sentence as a field label. I do not like these customers.
Second, it would be pretty cool to somehow add an “Else” statement in the rules. I understand I can create rules to have that affect but when I get upwards of 40-50 rules, having to write another rule to deal with an “else” statement can be tedious. An example might be something like below.
If field 1 is equal to “banana” then set field 2 to “fruit” Else set field 2 to “vegetable”
Currently to get that done I would need 2 rules but thinking that if the condition were false then at the bottom of the rule would be an else statement.
Cheers!
-
February 6, 2020 at 18:23 #28559
I have added a function you can to rename the fields back in October 2019 (v4.4.4.13) – you can use it like this:
spjs.dffs.setFieldLabel({ "fin": "Title", "label": "Title new label", "css": {"color":"green", "font-size": "1.5em"} });
You can add functions to your Custom JS and call them from rules to set the field labels.
Adding an else-section to the rules sounds like a good idea. At the moment it’s the “reversing” of the rule that handles the else, but having full control of the else-behavior is of course better. I’ll look into adding it in a future release.
Alexander
-
August 27, 2020 at 16:38 #31375
Hello,
I am trying to use the function setFieldLable to rename some fields. The names created on the list are more system formatted with underscores and vowels missing. I’ve loaded the latest version 4.4.5.5 and I added the custom js you have above:
spjs.dffs.setFieldLabel({
“fin”: “Title”,
“label”: “Title new label”,
“css”: {“color”:”green”, “font-size”: “1.5em”}
});When I try to load the page I get an error message stating I need to add the site name to DFFS_frontend_CEWP.html file which I have done.
var spjs_path = “/sites/spfyxkqr/SPJS/DFFS”;I still get the error message and the form fails to load.
Is there something I am missing to get the custom js to load and run?Thank you for all your work on this tool.
Dan -
August 27, 2020 at 20:24 #31392
Hi,
I cannot see why adding the spjs.dffs.setFieldLabel function to the form should give any kind of errors.What version of SharePoint are you running, and which browser are you using?
Alexander
-
-
February 28, 2020 at 01:11 #28930
This thread is great… it would be nice if the enhancements that have been made were deleted from this thread so one could look through the suggestions and not submit something twice… OR one could “second” a request that they agreed with.
I have a recurring issue that may be an enhancement… “Field X” is set by a rule to be read-only… “Field X” is then changed / populated by a rule… Other rules using “Field X is Changed…” or “Field X is change from initial value” do not trigger since the field itself was not touched on the form. It would be nice if the property “On field Change” looked at the content of that field changing, rather than that field being edited by the user interface.
( I may have this all wrong… or maybe there is some other work around)
-
February 29, 2020 at 16:30 #28941
I agree, but I’m not sure I’ll be able to update this thread when I add new features – there is not always exact match with the request and what is eventually added. I do try to reply to the questions and indicate whether or not this will be added.
As for your request: I need to know what kind of field(s) you are experiencing this issue with so I can test it.
Alexander
-
May 1, 2020 at 22:39 #29796
Hi Alex,
I have a form , on click of a button it calls an API.
The response value from API needs to be set into a hidden field on the form which needs to be saved to my custom list data. I am calling the save after calling the API.Attached is the customJS file. I need help in reading the return value from API call and saving it to the list.
Can you help?
Thanks,
VidyaAttachments:
-
May 2, 2020 at 08:34 #29807
You have set it up wrong – your CallWFAPI is asynchronous and your “Save the form” line in the code runs before CallWFAPI has finished. Also, you cannot use “return” in an asynchronous function – to do that you would have to use a deferred promise.
I have changed the order of things a bit here for it to work:
function SaveAsDraft() { alert("Inside SaveAsDraft"); //Update Approval Status setFieldValue("Approval_x0020_Status", "Pending Submission"); //Call the workflow and save the item CallWFAPI_ONDraft(); } function CallWFAPI_ONDraft() { var auth = btoa('uid:pwd'); $.ajax({ type: 'GET', url: 'my service url goes here', headers: { "Authorization": "Basic " + auth }, success: function (data) { console.log(data); setFieldValue("WF_ID", data.id); alert("Get Field Value WF_ID" + getFieldValue("WF_ID")); //Save the form $("input[id$='diidIOSaveItem']").trigger("click"); } }); }
I still don’t understand what you are doing here exactly – is the WF you call actually changing the current list item? – if so, you will get a save conflict with this code and must insert a delay in your WF so it doesn’t trigger while you are saving.
PS: Next time you can create a new topic for your questions – this is not really an enhancement suggestion for DFFS.
Alexander
-
September 9, 2020 at 15:21 #31529
Hello
i usualy install dffs by uploading the installer in the app catalogue and then the app will appear in the “add an app” in sharepoint and i install it,
well i want to install in on a new site collection and the app dont show in “add an app” and i dont have the ContentEditorWebPart in my site so i cant use the way described in the installation manual any other way to install DFFS or do you know why the app dont show in the “add an app”Thank you
Halim Lahoud-
September 10, 2020 at 15:38 #31544
DFFS can only be used in script enabled sites and not in the new modern team site that is connected to an office 365 group. Look here to learn how to create a modern site with script support: https://spjsblog.com/2019/09/20/how-to-create-a-modern-site-with-support-for-dffs-in-spo/
Alexander
-
-
January 11, 2021 at 18:08 #32434
William Summers recently had a project where he needed to put several dozen fields on a DFFS tab, and his users wanted a horizontal rule after every field. The following two suggestions came out of that experience.
SUGGESTION 1: Add space at bottom of the tab configuration pane so multiple fields can be added at once without having to scroll after each field is added. (William was able to accomplish this by adding the following at the end of the DFFS_backend.css file:
div.sectionWrapInner
{
padding-bottom:150px !important;
}SUGGESTION 2: Make it possible to copy and paste a single Header, HTML section, or table row, either to paste it into the same tab, or into another tab.
-
January 12, 2021 at 16:51 #32445
Hi,
I’m not sure I understand what you mean by “without heaving to scroll” – maybe you are note aware that you can click the + to the left of the line you see when you hover over a field in a tab config?To add a border at the bottom of each field you can add this to your Custom CSS:
.ms-formtable > tbody > tr > .ms-formlabel, .ms-formtable > tbody > tr > .ms-formbody{ border-bottom:2px silver solid; }
PS: The reason for prefixing with .ms-formtable > tbody > tr > is to ensure it does not affect side-by-side configs.
Alexander
-
-
February 24, 2021 at 15:45 #32848
Hi Alex,
I have a suggestion/enhancement request. I noticed that it would be very helpful to have all the field names available as intellisense in Ace editor. So I added this to your “aceAutocomplete” function inside DFFS_backend js file.
var fieldNamesCompleter = { getCompletions: function(editor, session, pos, prefix, callback) { var wordList = spjs.dffs.data.listFieldsArr.map((f) => f.fin + "|" + f.disp + "|" + f.type); callback(null, wordList.map((word) => { var wordArr = word.split("|"); return { caption: wordArr[1] + " - " + wordArr[2], value: wordArr[0], meta: "listField" }; })); } } a.completers.push(fieldNamesCompleter);
This code was added inside the else block where you are setting enableBasicAutocompletion: true. You can use this as is or modify to your willing to adapt to your coding styles. I hope this gets added to the future versions of DFFS.
Thank you,
Amal Vellappillil -
May 23, 2022 at 17:04 #35837
I noticed that outer tables and the like are not uniquely named across tabs. So if you use say the following css :
#sbs_OuterTable_1 {
width:500px;
}To format a row of fields on tab A, it also affects the same row on tab B.
Maybe appending a _{tab #} to the end of ID’s that are replicated across tabs is necessary. That way I can target each tabs layout individually without causing cross contamination of styles.
-
May 26, 2022 at 07:50 #35839
Hi,
The “1” in sbs_OuterTable_1 is the side-by-side index you have specified in the tab. If you use a different / unique index for the same fields in each tab you can style them individually.Alexander
-
-
-
AuthorPosts
- You must be logged in to reply to this topic.