Contributing

Apr 3, 2014 at 9:31 AM
Hey,

First of all...kudos for this project!

I have some things that I have "changed"/improved that I would like to contribute back to the project.

How would be the best approach to issue a pull request? I am familiar with git but the source code seems to not be up-to-date with the releases or am I missing something?
Pull request into dev or master branch? etc?

BR / Johan
Coordinator
Apr 3, 2014 at 2:20 PM
Edited Apr 3, 2014 at 2:20 PM
BR:

I have to admit that as basically the lone developer on this, I use my own brain for code management. Probably not the best idea, but I haven't invested the time to move to anything else.

If you have code you'd like to contribute, that's awesome! Community contributions are infrequent, but always welcomed. Of course, I need to consider how they can fit into the grand scheme of things and whether they are of general usefulness.

Depending on what you have, you can either post in this thread or email me directly at Marc [dot] Anderson @ sympraxisconsulting [dot] com.

Thanks,
M.
Apr 21, 2014 at 8:15 PM
Sorry for not replying straight away but here goes.
 $(".lock-peoplepicker").each(function() {
            var context = $(this);

            $().SPServices.SPFindPeoplePicker({
                thisRowFinder: function() {
                    return context;
                }
            }).contents.attr('contenteditable', 'false');
        });
In the situation above I'm using a peoplepicker in a custom page layout and I actually want to tell the SPFindPeoplePicker the "context/parent" where it can find the peoplepicker...which is normally a TR in NOBR in a standard form.

So what I did was to extend the SPFindPeoplePicker function with an option to use "my" context. It looks like this (btw I have done the same extension for the SPFindTaxonomyPicker).
    $.fn.SPServices.SPFindPeoplePicker = function(options) {

        var opt = $.extend({}, {
            peoplePickerDisplayName: "", // The displayName of the People Picker on the form
            valueToSet: "", // The value to set the People Picker to. Should be a string containing each username or groupname separated by semi-colons.
            checkNames: true, // If set to true, the Check Names image will be clicked to resolve the names
            thisRowFinder: undefined // Allows you to override how the 'thisRow' (i.e. context) variable will be located by supplying a function
        }, options);

        var thisRow;
        if (opt.thisRowFinder === undefined) {
            thisRow = $("nobr").filter(function() {
                // Ensures we get a match whether or not the People Picker is required (if required, the nobr contains a span also)
                return $(this).contents().eq(0).text() === opt.peoplePickerDisplayName;
            }).closest("tr");
        } else {
            thisRow = opt.thisRowFinder();
        }