Monthly Archives: Ekainaren 2009

InfoPath formularioa zerbitzuak, Oinarritutako autentifikazio Inprimakiak (FBA) Bakarra eta fitxategi izenak

Izan dut InfoPath batzuk osatzen lan aste honetan MOSS en FBA inguru batean, eta ikasi, denean, forma zabaldu ekoizpen ingurune FBA zona batekin joan naiz erabiltzaile izena duen() function function does not work. I was using it to generate unique file names.

Beno, that function doesn’t work in an FBA environment (gutxienez, not out of the box). Eta, upon reflection, using username in the way I had planned wouldn’t have guaranteed a unique file name in any event.

My solution was to use the now() function and a rule that fires on loading of the form. I assign the file name to data element when it’s blank:

image

image

The advantage of this approach is that the file name is set only once. (I don’t show it in the screen shot, but put a condition on the rule to only fire when “myFilename” is blank). I used to set the file name at the data source level. Typically, I would do something (bad) hau bezalako:

image

Duten arazoa da, erabiltzaileak gero A inprimakia irekiko da astelehenean, eta erabiltzaileak B aldatzen asteartean, azkenean, ikusiko duzu bi forma desberdinak dituzten bi erabiltzaile gorde noiztik desberdineko izenak dituzten.

Beraz,, FBA gisa gogaikarriak daiteke, oro har, eta InfoPath bezala izango da, bereziki,, me berriro uste txiki bat da, baina oso garrantzitsua da xehetasun tekniko eta hurbilketa dut ez zuela egin, bestela egin!

</amaiera>

Nire blog Harpidetu.

Follow me on Twitter http://www.twitter.com/pagalvin

Technorati Tags:

SharePoint zerrenda / Dokumentu liburutegia Views bermatu Badirudi (Ordena) JQuery posible

Hau nire post bat da serie-on going nola erabili jQuery SharePoint batera.
Nahi duzun jQuery buruz gehiago jakin nahi baduzu, Gomendatzen dut oso: Ekintza jQuery Bear Bibeault eta Yehuda Katz arabera.

Gauzak lehen pentsatu nuen bat, behin inguruan play jQuery batekin hasi nintzen, was whether we could use it to secure a SharePoint view. The answer is “no” (edo, gutxienez,, Ez dut posible dela aldarrikatzeko). Hala eta guztiz ere, it is certainly possible to make it difficult for people to see a particular view.

I started with my sandbox environment when working on this. I wrote about that environment here: Azkarra eta erraza: Sortu zure SharePoint jQuery Norberak Sandbox.

Eta "seguru" ikuspegi bat, urrats hauek:

  1. Create a view you want to secure. I did that and called it “Secured View”.

    Hau da, zer egiten ari atsegin ez "segurtatu" badirudi:

    image

  2. Gehitu edukia editorearen web parte ikuspegi orrian sandbox artikuluan deskribatzen trikimailu erabiliz (I.E. gehitzeko "orri = Partekatua&ToolPaneView = 2 "URL).
  3. Figure out your SharePoint _spUserId by following these crazy steps, sinetsi edo ez:
    1. Zure SharePoint ingurumena sartu.
    2. Web nabigatzailearen helbide-eremuan, mota: "Javascript:ohartaraztea(_spUserId ").
    3. Grabatu emaitza (da, "13" nire kasuan).

      image

  4. Gehitu ondorengo JavaScript zure CEWP kodea ikuspegian:

    <script
        "text/javascript"
        src ="../../jQuery Library/jquery-1.3.2.min.js">
    </script>
    
    <script mota ="text/javascript">
      $(funtzioa() {
    
        ohartaraztea(_spUserId);
    
        izan zen theSecuredView = $('Iframe[FilterLink * = Berme% 20View]');
    
        bada ((theSecuredView.length > 0) && (_spUserId == 13))
          $('Iframe[FilterLink * = Berme% 20View]').gurasoa().gurasoa().gurasoa().html("<tr bgcolor = gorria><td>Zuretzat ikuspegi No!</td></tr>");
      });
    
    </script>
    

Nik sartutako alerta duten(_spUserId) ez lerro nola, hori ez da benetan "bermatu" ikuspegi bat erakusteko, but simply making it more difficult to see. More on that in a moment.

Funtsean,, jQuery is looking for an iFrame on the page who has an attribute that contains “Secured View” in its value. Once it finds it, we check to see if the current user is “13”. If it is, sortu dugu oinez DOM bati <TR> Etiketa (bertan figured I iturburua ikusteko, eta Bektorizatu arabera) eta, ondoren, TR etiketa duten ordezkatuz nire mezua. Ez dut jakin nola sendo hau (Oso susmagarria naiz, Izan ere,), but it worked in my sandbox. If I find a better way, Horri buruz egingo dut blog. Hauxe da emaitza:

image

Ados botoian klik egiten dut, eta datuak gorri handi mezu batekin ordezkatu:

image

Dezakezu, esan bezala,, the way I’ve implement this “security” solution is to allow the web part to render itself. After it finishes, Bere edukia gainidatziko da nire "duzun ikuspegia No!"Mezu.

Izan ere, hori ez da benetan "seguru" ikuspegi arren, potentzialki erabilgarria eta zenbait clever lana da, it may eventually be securable in a more formal sense. The fundamental issue is that the client is getting all the data and then, soilik ondoren, datuak lortzen, it wipes it out. If the client is getting the data, clever erabiltzaile bat jQuery saihesteko dezakezu guztiak at exekutatzen ikusi eta zer egin zuen / zituen nahi ikusi.

There are other drawbacks. This “security” approach is based off a _spUserId. We’d want to really secure based on the full SharePoint security model, or at least by user name. That becomes progressively harder, baina, gai honen inguruan idatzitako ona gauza batzuk ikusten ditut, beraz, itxaropentsu dago arazo hori erantzun ona izan dut.

The aldiz zerrenda bera moztutako behar dira, posible bada. I haven’t tried to figure that out. I assume it’s possible, baina ez du benetan konpontzeko oinarrizko segurtasun zulo norbait oraindik ere ezin izan delako, besterik gabe idatzi ikuspegian URL dute nahi (bazekien badute). Hala eta guztiz ere, trimming makes sense. It’s a good usability feature and it helps to obfuscate things. If an end user doesn’t know that the view event exists, they probably won’t try to use it. Batzuetan,, Hori nahikoa.

Zorte batera, Gehiago izan dut gai honen inguruan idatzi denboran zehar.

</amaiera>

Nire blog Harpidetu.

Follow me on Twitter http://www.twitter.com/pagalvin

Azkarra eta erraza: A Better Way jQuery Erabili Testu Eremuaren bat ezkutatzeko SharePoint formularioa batean

Hau nire post bat da serie-on going nola erabili jQuery SharePoint batera.
Nahi duzun jQuery buruz gehiago jakin nahi baduzu, Gomendatzen dut oso: Ekintza jQuery Bear Bibeault eta Yehuda Katz arabera.

Aurretik, I wrote about how to use jQuery to locate and hide a text field on a form. I didn’t care for the specific approach (Kateatzea gurasoak izan nintzen - Hori besterik ez da egin ez egun hauetan, gutxienez, kalitate familietan).

Hasi nintzenean, pentsatu, Bat aurkitu behar nuen banekien <TR> eta bertan ezkutatzeko deitu izan dut() metodoa. My early effort to find the correct <TR> izan zen, honen antzeko zerbait:

$('Tr:ditu(sarrera[title = Ezkutatu Me!])');

Duten arazoa da oro aurkituko litzateke <TR> Etiketa zuela inolako guraso harremana ezkutatu Me! Eremu, bada ere ezkutatu Me! habiaratuta dago, maila sakona <TR>’s. It turns out that on my sandbox form, Adierazpen hori aurkitzen du 9 desberdinak TR en nork Me ezkutatu dute! as a child somewhere in its DOM tree. I realized that I could walk back up the tree from the input field itself, beraz, nola bukatu nuen abusing gurasoak, baina ez zen ondo eseri nirekin.

Pentsamendu batzuk eman diot hori, eta gauza bat, azkenean, ez zuen zentzurik irakurtzen dut: Erabili ez nuen() Metodo izarrekin mozteko <TR>’s I don’t want in my wrapped set. Ekarri dit hau:

$('Tr:ditu(sarrera[title = Ezkutatu Me!])').ez('Tr:ditu(tr)').ezkutatu();

Lehenengo bit aurkitzen guztiak <TR> etiketa duten Ezkutatu Me! field anywhere in their own hierarchy. It then strips out any <TR> izan ere, ume bat <TR>. This leaves us with a single <TR> duten:

1) Ez du <TR> umea erregistro

2) Does have the input field as child.

Ondoren, ezin dugu aplikatzen ezkutatzeko() to ondorioz multzoa dugu, eta Bukatutakoan metodoa.

Jarraitzen dut pixka bat urduri honi buruz, baina ez kateatzea guraso gisa nerbio.

I don’t know if this is a best practice or not. There may be a more appropriate way of identifying just the <TR> that we care about in a SharePoint form. If you know, mesedez, post a comment.

</amaiera>

Nire blog Harpidetu.

Follow me on Twitter http://www.twitter.com/pagalvin

Azkarra eta erraza: Erabili jQuery Testu Eremuaren bat ezkutatzeko SharePoint formularioa batean

Hau nire post bat da serie-on going nola erabili jQuery SharePoint batera.
Nahi duzun jQuery buruz gehiago jakin nahi baduzu, Gomendatzen dut oso: Ekintza jQuery Bear Bibeault eta Yehuda Katz arabera.

UPDATE (dagoeneko!): Modu bat hobeto kokatu nahi nuen uste <TR> tag I want to hide and wrote about it here. You may still find this article interesting anyway so I’m leavnig it up.

I want to hide a text field, “Hide Me!” as shown:

image

The following jQuery does the trick for me:

<script mota ="text/javascript">

  $(funtzioa() {


    $('Sarrera[title = Ezkutatu Me!]').gurasoa().gurasoa().gurasoa().ezkutatu();

  });

</script>

The code is saying, “find me all input fields whose title = Hide Me!. Gero, get its parent and then next parent and the *next* parent (phew!) and invoke the hide() method on that thing, whatever it happens to be.

I figured out that parent structure by viewing the HTML for the form that SharePoint created as shown:

<TR>
    <TD nowrap="true" valign="top" zabalera="190px" klasean="ms-formlabel">
        <H3 klasean="ms-standardheader">
            <nobr>Hide Me!</nobr>
        </H3>
    </TD>

    <TD valign="top" klasean="ms-formbody" zabalera="400px">
        <!-- FieldName="Hide Me!"
                 FieldInternalName="Hide_x0020_Me_x0021_"
                 FieldType="SPFieldText"
        -->
        <span dir="none">
            <sarrera
                izena="ctl00$m$g_bdb23c2c_fde7_495f_8676_69714a308d8e$ctl00$ctl04$ctl02$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"
                mota="text"
                maxlength="255"
                id="ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
                izenburua="Hide Me!"
                klasean="ms-long" />
                <br>
        </span>


    </TD>
</TR>

Argazki hau bera erakusten, baina markatutako gurasoekin batera:

image

Lehen gurasoak (1) is a span tag. Span’s parent (2) TD etiketa bat da, eta, ondoren, azkenean, iritsi da benetako guraso ezkutatu nahi dut dugu (3) horrek TR Etiketa berez ez da.

This is a pretty terrible approach I think because it’s extremely dependent on the very specific structure of this form. When SharePoint 2010 ateratzen, this whole structure could change and break this approach. What I really want to do is craft a jQuery selector that is along the lines of “find me all the TR’s (and only TR tags) that have somewhere in their child elements an input field whose title = Hide Me!". I starting from the bottom and moving up. Assuming I figure this out, I’ll post an updated “quick and easy’ post.

</amaiera>

Nire blog Harpidetu.

Follow me on Twitter http://www.twitter.com/pagalvin

Azkarra eta erraza: Sortu zure SharePoint jQuery Norberak Sandbox

Hau nire post bat da serie-on going nola erabili jQuery SharePoint batera.
Nahi duzun jQuery buruz gehiago jakin nahi baduzu, Gomendatzen dut oso: Ekintza jQuery Bear Bibeault eta Yehuda Katz arabera.

SharePoint en jQuery hasi Getting harrigarriro erraza (me). (Izan dut "jardunbide egokiak" gauza horiek zabaltzeko, ekoizpen hurbilketa buruzko galdera larriak, baina hori beste egun baterako da). I’ve just started playing with this technology and to that end, I created a sandbox environment to use. If you’re looking to get started with jQuery, aurkituko planteamendu hau erabilgarria izango duzu.

1. Sortu Blank Site bat

Sortu hutsik gune nonbait zure gune eta deitu zerbait "Sandbox jQuery" clever.

2. Deskarga jQuery

The jQuery javascript liburutegia deskargatu ahal izango duzu hemendik: http://docs.jquery.com/Downloading_jQuery

Gorde zure mahaigainera.

Izan dut "minified" bertsioa erabiltzen.

3. Sortu SharePoint Dokumentu liburutegia

Zure sandbox gunean, create a document library.

4. Igo jQuery Liburutegia to SharePoint

Access the doc library you just created and upload the jQuery library.

5. Create a Custom SharePoint List

I’ve started with a custom list because I want to muck about with standard SharePoint forms. You could also create a page in a pages library or web part pages and probably a lot of other places.

Add some columns to the custom list so that you have something to run jQuery against. My initial objectives were to:

  1. Hide a field.
  2. Assign a value to a field.

With that objective in mind, I added two text fields. Denborarekin, I’ll be playing with links, images, lookups, etc.

6. Modify the NewForm.aspx Web Part Page and Add a Content Editor Web Part

This is a little black magic-ish , in that it’s a new concept to me. I first learned about this from Paul Grenier, SharePoint jQuery Superstar, at his CodePlex project site: http://spff.codeplex.com/.

Follow these steps to add a CEWP to the same page that shows NewForm.aspx for any custom list:

  1. Access the custom list and click New.
  2. Append the following to the URL: PageView=Shared&ToolPaneView=2

Hau zure aspergarria bainila datuak emateko eraldatuko honen antzeko zerbait tik:

image

Honetan:

image

Gehitu edukia editore parte web orrian.

7. Idatzi zure lehen jQuery Código

Ireki CEWP kodea duten ikuspegia, eta honako hauek gehitu:

image

Hemen benetako kodea da nahi duzun / kopiatu itsatsi bada:

<script
    "text/javascript"
    src ="../../jQuery Library/jquery-1.3.2.min.js">
</script>

<script mota ="text/javascript">
  $(funtzioa() {

    $('# ResultsID').html('Daude' + $('A').tamaina() + 'Orrialde honen tags tags bat izan da.');

  });
</script>

Emaitza:
<div id ='ResultsID'></div>
/ondorioz,

Kontuan izan lehenengo <script> tag is referencing the actual jQuery library. Presumably, gauza horiek denboran zehar aldatu, beraz nahi duzula bat egin beharko duzu) erabiltzeko eskubidea izena eta b) seinalatuko da zuzena SharePoint Dokumentu liburutegia.

Glory en Euskal

Egin baduzu behar bezala, Ondorioz, honako antzekoa ikusiko duzu:

image

Up biltzeko

Hau ez da modu bakarra Hasteko, baina azkar da, easy and isolated from your existing SharePoint environment.

</amaiera>

Nire blog Harpidetu.

Follow me on Twitter http://www.twitter.com/pagalvin

Azkarra eta erraza: Erabili jQuery A Testu Eremuaren en balioa ezartzean SharePoint formularioa batean

Inguruan jolasean hasi nintzen jQuery yesterday. I’ve been wanting to do this for a long time, geroztik Paul Grenier hasi idatziz bere serie Azken erabiltzaileentzako jQuery agurgarri buruzko www.endusersharepoint.com web site. As I use it, I hope to add a series of “Quick and Easy” posts like this one. This post describes how to set a known text field’s value to anything you want.

Egoera honetan, Sortu dut zerrenda pertsonalizatu honen "berri" forma itxura gisa agertzen:

image

Hau zerrenda pertsonalizatu formularioa lehenetsia Izenburua zutabe eta bi zerrenda zutabe berria da (Ez gune zutabeak; Ez dut uste diferentzia bat egin beharko du,).

Helburua da eremua balioa arbitrarioa bat esleitzeko, "DefaultMeFieldNoSpaces" (esango koldar bat pixka bat naiz "hutsunerik gabe" gauza on going dezakezu, baina espezie gora egin dut, artikulu honen amaieran).

JQuery apur hau niretzat lan egin:

<script mota ="text/javascript">

  $(funtzioa() {

    $('Sarrera[title = DefaultMeFieldNoSpaces]').Pantailazatiak(
        {balioa: 'Dira pasarte twisty labirinto bat duzu, guztiak berdin. '});

  });

</script>

Ulertzen dut gisa jQuery apur hori esaten, “find me any input tag whose title = DefaultMeFieldNoSpaces. Gero, beren balio guztiak bat ordenagailu zaharrak jokoa esaldi ospetsua da. "

Han soilik izango geroztik izango eremu bat formularioa izenburu bat "DefaultMeFieldNoSpaces" Parekatuak gara Eremu duten balioa esleitzeko ziurtaturik eta ez beste.

Eremu bat bere izena du espazio buruz zer? It’s nearly the same:

<script mota ="text/javascript">

  $(funtzioa() {
     $('Sarrera[title = Space eremua esleitu]').Pantailazatiak(
        {balioa: 'Dira pasarte twisty labirinto bat duzu, guztiak berdin. '});

  });

</script>

Hau nahiko seguru hurbilketa bat dela uste dut, meaning that we should be able to find the field that we want and only the field we want. If you look at the HTML SharePoint is giving us, narratsa moduko da:

<sarrera
izena="ctl00$m$g_bdb23c2c_fde7_495f_8676_69714a308d8e$ctl00$ctl04$ctl02$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"
mota="text"
maxlength="255"
id="ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
izenburua="DefaultMeFieldNoSpaces"
klasean="ms-long"
/>

"Izenburua" nabarmentzen bat ezagutzeko eta espero berezia atributu gisa, berariazko zutabea, gure arbitrarioak balioa esleitu nahi dugu identifikatzen laguntzeko.

This is a foundational concept. Setting a field in an arbitrary way like this isn’t going to win any awards. Hala eta guztiz ere, nahi dugu gehiago interesgarri inprimaki maila zerbait egin nahi izanez gero, (horrek guztiok beti nahi, jakina, ondoren platerak bukatzen dugu garbiketa), gustatzen aldatu automatikoki "Eremu bat" balioa oinarritutako "eremuan b" balioa, dugu (I) behar gauza horiek ikasteko.

Gure onena aukera bat benetako balioa erabilgarria lortzeko hemen izenburuaren bidez egiten da, uste dut, at least for text fields. There may be a better, more reliable approach. If I find it, Post hau eguneratuko dut. If you know a better way, Mesedez, utzi iruzkin bat.</amaiera>

</amaiera>

Nire blog Harpidetu.

Follow me on Twitter http://www.twitter.com/pagalvin