Customize DataList: add Custom Filter
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-14-2013 05:50 AM
Hi guys,
as the title says, i want to know if is it possible to add a custom filter (on a singol column) to the dataList section:
SCREEN: http://img534.imageshack.us/img534/457/ae87.png
Ok, what i want to do is to add a custom filter that allows me to display the rows with a person that i define. (for example, select me all the row where the column "name" is "darth vader").
Searching in the config file and over old discussion, the only file that i think that i've to modify is "filter.lib.js" in /WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/slingshot/datalists/ .
I think that i've to add a case, with the code simil at the "createdByMe" case; than modify the query in the "person.properties.userName" section adding the custom "name" picked by a text box or something like that.
Any suggestion on how to do this? Am i thinking right?
I'm on Alfresco 4.2.d community edtion.
(Sorry for my bad english, cheers from Italy!!!)
as the title says, i want to know if is it possible to add a custom filter (on a singol column) to the dataList section:
SCREEN: http://img534.imageshack.us/img534/457/ae87.png
Ok, what i want to do is to add a custom filter that allows me to display the rows with a person that i define. (for example, select me all the row where the column "name" is "darth vader").
Searching in the config file and over old discussion, the only file that i think that i've to modify is "filter.lib.js" in /WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/slingshot/datalists/ .
/** * Copyright (C) 2005-2010 Alfresco Software Limited. * * This file is part of Alfresco * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see <http://www.gnu.org/licenses/>. */var Filters ={ /** * Types that we want to suppress from the resultset */ IGNORED_TYPES: [ "cm:systemfolder", "fm:forums", "fm:forum", "fm:topic", "fm:post" ], /** * Create filter parameters based on input parameters * * @method getFilterParams * @param filter {string} Required filter * @param parsedArgs {object} Parsed arguments object literal * @return {object} Object literal containing parameters to be used in Lucene search */ getFilterParams: function Filter_getFilterParams(filter, parsedArgs) { var filterParams = { query: "+PARENT:\"" + parsedArgs.nodeRef + "\" ", limitResults: null, sort: [ { column: "@cm:name", ascending: true }], language: "lucene", templates: null }; // Max returned results specified? var argMax = args.max; if ((argMax !== null) && !isNaN(argMax)) { filterParams.limitResults = argMax; } // Create query based on passed-in arguments var filterData = String(filter.filterData || ""), filterQuery = filterParams.query; // Common types and aspects to filter from the UI var filterQueryDefaults = ' -TYPE:"' + Filters.IGNORED_TYPES.join('" -TYPE:"') + '"'; switch (String(filter.filterId)) { case "recentlyAdded": case "recentlyModified": case "recentlyCreatedByMe": case "recentlyModifiedByMe": var onlySelf = (filter.filterId.indexOf("ByMe")) > 0 ? true : false, dateField = (filter.filterId.indexOf("Modified") > 0) ? "modified" : "created", ownerField = (dateField == "created") ? "creator" : "modifier"; // Default to 7 days - can be overridden using "days" argument var dayCount = 7, argDays = args.days; if ((argDays !== null) && !isNaN(argDays)) { dayCount = argDays; } // Default limit to 50 documents - can be overridden using "max" argument if (filterParams.limitResults === null) { filterParams.limitResults = 50; } var date = new Date(); var toQuery = date.getFullYear() + "\\-" + (date.getMonth() + 1) + "\\-" + date.getDate(); date.setDate(date.getDate() - dayCount); var fromQuery = date.getFullYear() + "\\-" + (date.getMonth() + 1) + "\\-" + date.getDate(); filterQuery = "+PARENT:\"" + parsedArgs.nodeRef; if (parsedArgs.nodeRef == "alfresco://sites/home") { // Special case for "Sites home" pseudo-nodeRef filterQuery += "/*/cm:dataLists"; } filterQuery += "\""; filterQuery += " +@cm\\:" + dateField + ":[" + fromQuery + "T00\\:00\\:00.000 TO " + toQuery + "T23\\:59\\:59.999]"; if (onlySelf) { filterQuery += " +@cm\\:" + ownerField + ":\"" + person.properties.userName + '"'; } filterQuery += " -TYPE:\"folder\""; filterParams.sort = [ { column: "@cm:" + dateField, ascending: false }]; filterParams.query = filterQuery + filterQueryDefaults; break; case "createdByMe": // Default limit to 50 documents - can be overridden using "max" argument if (filterParams.limitResults === null) { filterParams.limitResults = 50; } filterQuery = "+PARENT:\"" + parsedArgs.nodeRef; if (parsedArgs.nodeRef == "alfresco://sites/home") { // Special case for "Sites home" pseudo-nodeRef filterQuery += "/*/cm:dataLists"; } filterQuery += "\""; filterQuery += " +@cm\\:creator:\"" + person.properties.userName + '"'; filterQuery += " -TYPE:\"folder\""; filterParams.query = filterQuery + filterQueryDefaults; break; case "node": filterParams.query = "+ID:\"" + parsedArgs.nodeRef + "\""; break; case "tag": // Remove any trailing "/" character if (filterData.charAt(filterData.length - 1) == "/") { filterData = filterData.slice(0, -1); } filterParams.query += "+PATH:\"/cm:taggable/cm:" + search.ISO9075Encode(filterData) + "/member\""; break; default: filterParams.query = filterQuery + filterQueryDefaults; break; } return filterParams; }};
I think that i've to add a case, with the code simil at the "createdByMe" case; than modify the query in the "person.properties.userName" section adding the custom "name" picked by a text box or something like that.
Any suggestion on how to do this? Am i thinking right?
I'm on Alfresco 4.2.d community edtion.
(Sorry for my bad english, cheers from Italy!!!)
Labels:
- Labels:
-
Archive
5 REPLIES 5
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-22-2013 04:08 AM
nothing???
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-30-2013 09:17 PM
Take a look at the fme datalist extensions. It's in a weird state at the moment, it was originally written for 4.0 and underwent some changes to make it compatible with 4.2 but not much else happened past that.
I've forked it and made my own changes so it works on 4.1, my focus is on filtering/attachments. Test it out on 4.2 and open an issue if you have any problems, I'll be upgrading my environment to 4.2 so any issues with that release will be fixed eventually.
Main Project: https://github.com/deas/fme-alfresco-extdl
My Fork: https://github.com/Ashex1/fme-alfresco-extdl
I've forked it and made my own changes so it works on 4.1, my focus is on filtering/attachments. Test it out on 4.2 and open an issue if you have any problems, I'll be upgrading my environment to 4.2 so any issues with that release will be fixed eventually.
Main Project: https://github.com/deas/fme-alfresco-extdl
My Fork: https://github.com/Ashex1/fme-alfresco-extdl
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-10-2015 04:39 PM
What is required to add a custom data list to the product ?
I have requirements that are almost filled by this if I can add a custom datalist to it.
what do I need to do to this product to make a custom datalist ?
I have requirements that are almost filled by this if I can add a custom datalist to it.
what do I need to do to this product to make a custom datalist ?
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-30-2015 09:03 AM
Hi Michael,
Here is a post you can refer to.
https://forums.alfresco.com/forum/end-user-discussions/alfresco-share/custom-data-list-09232011-1454
Hope this helps.
Here is a post you can refer to.
https://forums.alfresco.com/forum/end-user-discussions/alfresco-share/custom-data-list-09232011-1454
Hope this helps.

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-25-2015 04:19 AM
Can some one help me with setting user permissions on data list items. For example we have 10 items. One user must see 4 of them and another 6 items. Filtering by name for example.
I tried to set this in floder rules but - no success.
I tried to set this in floder rules but - no success.
