0

Maybe a very simple question.

How can I put in this code

<Query>
   <Where>
      <Eq>
         <FieldRef Name="Judge_x0020_1" />
         <Value Type="Text">mr. R. Sanches</Value>
      </Eq>
   </Where>
</Query>

A variable from jscript in the area of the code where mr. R. Sanches is written. So my jScript contains a dynamic text variable I want to replace mr. R. Sanches with. See where it says THE JAVESCRIPT VAR underneath here:

jScript code I have

<script src="/JavascriptMODS/jPointLoader.js"></script>
<script src="/JavascriptMODS/jPoint.userprofile.js"></script>
<SCRIPT type=text/javascript>
            // Picks the userfield it is going to search with
            var user = jP.getUserProfile();
            var userinfspvalue = user.Department;

            // removes the non breaking space at the end of the departmentfieldcontent
            var removenonbreakingspace = String.fromCharCode(160);
            userinfspvalue = userinfspvalue.replace(removenonbreakingspace,'');
</script>

Userinfspvalue is the var I would like to use.

In the CAML query

<Query>
   <Where>
      <Eq>
         <FieldRef Name="Judge_x0020_1" />
         <Value Type="Text">Userinfspvalue</Value>
      </Eq>
   </Where>
</Query>

What is jP.getUserProfile()?

Code (i didnt create it).

/*
* name: jPoint.userprofile.js
* purpose: get user profile info from /_layouts/userdisp.aspx
* input: none
* visibility: public
* return: jP.UserProfile (object)
*   jP.UserProfile.Name
*   jP.UserProfile.Account
*   jP.UserProfile.Title
*   jP.UserProfile.EMail
*   jP.UserProfile.Notes
*   jP.UserProfile.AboutMe
*   jP.UserProfile.Picture
*   jP.UserProfile.Department
*   jP.UserProfile.JobTitle
*   jP.UserProfile.SipAddress
*   jP.UserProfile.SIPAddress
*
*   jP.UserProfile.FieldCount   //count of fields
*   jP.UserProfile.Fields       //array of field names
*   jP.UserProfile.Items[0].Name ... SipAddress
*
* use example: 
*   var usrprof = jP.getUserProfile(userID); //userID is optional 
*   var name = usrprof.Name; 
*   var email = usrprof.EMail;
*   var dept = usrprof.Department;
*/
(function(jP) {
    jP.getUserProfile = function (UserID) {
        var ProfileURL = jP.SiteURL+"/_layouts/userdisp.aspx";
        if(typeof UserID !== "undefined")
            ProfileURL = ProfileURL + "?ID=" + UserID;
        $.ajax( {
            type: "GET",    //jQuery ajax GET
            async: false,
            cache: false,
            url: ProfileURL, //userprofile url
            success: function(data){
                var tags = $(data).find("h3 > a");  //look for anchor in h3 tag
                if (tags.length > 0) {
                    var profile = {};
                    var fields = [];
                    var item = {};
                    $.each(tags, function(){
                        var name = this.name;   //name attritbute
                        var td = $(data).find("tr a[name='"+name+"']").parent().parent();  //get label td
                        var labelname = jP.strip(td.text());  //get label text as field name
                        if (labelname == "Picture") {
                            //special handling for Picture field
                            //concat attribute alt and src together
                            var img = td.siblings().find("img");
                            var val = img.attr("alt") + ";#" + img.attr("src");
                        }
                        else {
                            //get text of next td cell
                            var val = $.trim(td.siblings().text());
                        }
                        var intname = name.substr(name.indexOf("_")+1); //internal field name
                        if ($.inArray(intname, fields)==-1) {  //save as internal fieldname
                            fields.push(intname);
                            item[intname] = profile[intname] = val;
                        }
                        if ($.inArray(labelname, fields)==-1) { //save as label fieldname
                            fields.push(labelname);
                            item[labelname] = profile[labelname] = val;
                        }
                    });
                    //Set profile obj
                    profile["Fields"] = fields;
                    profile["FieldCount"] = fields.length;
                    profile["Items"] = [item];
                    //set UserProfile obj
                    jP["UserProfile"] = profile;
                }   
            }
        });
        return (jP["UserProfile"])
    }
})(jPoint);
user300304
  • 39
  • 1
  • 1
  • 6
  • I think this needs a little more information... this looks like a CAML query. So this is server side? Are you working with SharePoint? – Richard JP Le Guen Mar 24 '10 at 17:30
  • 1
    That random `` closing tag is intriguing. I wonder what it's for. – Daniel Earwicker Mar 24 '10 at 18:13
  • You are very much correct. My excuse I was not clear enough. It is a CAML query indeed. So it is server side and I am working with SharePoint. Impressive you know all this. I accidently left in my code. My mistake. – user300304 Mar 24 '10 at 20:39
  • ... you should tag your question accordingly. You might attract people who know more about this, otherwise you'll end up with more answers like streetparade's, which assume you're using client-side JavaScript. What's `jP` in your JScript? I assume `jP.getUserProfile()` makes use of this CAML query... so can you show us the implemenation of `jP.getUserProfile()`? – Richard JP Le Guen Mar 24 '10 at 23:52
  • Thanks for the tip about updating the tags. See updated question about jp.getuserprofile(). – user300304 Mar 25 '10 at 12:51

2 Answers2

1

So a few things. This is client side; the browser executes this JScript (and as such I'm choosing to refer to it as JavaScript... good call re-tagging it)

You're using a JavaScript library called jPoint... but you're trying to manipulate a CAML query.

JPoint practices what is called Information Hiding by providing you with functions like getUserProfile() but the tradoff is that I don't get the impression you can manipulate the CAML. As a matter of fact, judging by what I see in the implementation and by what I read on their web site, I think it doesn't even CAML query but it just screen scrapes the HTML from profile pages.

So in summary, I don't think you're trying to manipulate the CAML at all but rather need to find the appropriate jPoint function to use. If jPoint doesn't have one, you'll have to ditch it and use a more traditional solution.

Why are you using jPoint instead of something a little more traditional, or server-side?

Richard JP Le Guen
  • 28,364
  • 7
  • 89
  • 119
  • Thank you for your reply. The reason why I'm using jPoint is because that is the only code that I could find at the moment to get userprofile information from SharePoint wss 3.0. I'm not a real programming expert. Just trying to figure out a way to filter a calendar view dynamically which seems never been asked on the internet strange enough. Up untill now I have not managed at all to filter a calendar view dynamically. Everything is out of the box, and I am just trying some stuff out. Looks like I have to give this up and just use the normall list view to filter items. Thanks all – user300304 Mar 29 '10 at 12:32
  • You would say I am looking for a dynamic calendar view based upon current user department field. – user300304 Mar 29 '10 at 14:30
-1

Try

var type = document.getElementById("testd"); // remember put your things in a div or equal

type.getAttribute('Type').value = "THE JAVASCRIPT VAR";
streetparade
  • 32,000
  • 37
  • 101
  • 123
  • Hey thanks for speedy reply Yet I don't get entirly what you suggest. there where it says THE JAVSCRIPT VAR the variable should be used instead of the text. Thx again. I edited my question about the jscript i'm using – user300304 Mar 24 '10 at 21:04
  • Sorry, but I have to vote this down; I feel like this answer is completly in the wrong ballpark, as 1 - The question isn't about DOM. 2 - Why would he put it in a `
    ` when nothing else in his XML looks remotely like (X)HTML? 3 - He needs to change the contents of `Value` _node_, not affect the `Type` _attribute_. On a side note, does `getAttribute(...).value = x` really work in JavaScript? I'd have assumed one would have to use `setAttribute(...)`.
    – Richard JP Le Guen Mar 24 '10 at 23:51