views:

294

answers:

2

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);
A: 

Try

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

type.getAttribute('Type').value = "THE JAVASCRIPT VAR";
streetparade
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
Sorry, but I have to vote this down; I feel like this answer is completly in the wrong ballpark, as1 - The question isn't about DOM.2 - Why would he put it in a `<div>` 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(...)`.
LeguRi
+1  A: 

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?

LeguRi
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
You would say I am looking for a dynamic calendar view based upon current user department field.