Mjesečni arhiv: Lipanj 2009

InfoPath obrasca Sevices, Radi baziranu provjeru autentičnosti (FBA) i jedinstvena imena datoteka

Radio sam na nekim InfoPath stvara ovaj tjedan u MOSS u FBA okoliš i naučio, kad sam otišao za implementaciju obrasce za proizvodnu okolinu s FBA zoni koja korisničko ime() function function does not work. I was using it to generate unique file names.

Dobro, da funkcija ne radi u FBA okoliš (barem, ne iz kutije). I, na razmišljanje, koristeći korisničko ime na način da sam planirao ne bi zasigurno jedinstven naziv u svakom slučaju.

Moje rješenje je koristiti sada() 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. (Ja to ne pokazuju u screen shot, ali staviti stanje na pravilo samo vatru kad je "myFilename" je prazan). I used to set the file name at the data source level. Typically, Ja bih nešto učiniti (loše) ovako:

image

Problem je u tome da ako korisnik otvori obrazac na ponedjeljak i korisnik B ga mijenja u utorak, ćete završiti s dvije različite oblike od dvije različite korisnici ga spasio s različitih korisničkih imena.

Tako, kao neugodno kao FBA može biti u cjelini i InfoPath posebno, to me ponovno mislim mala, ali jako je važno tehnički detalji i pristup koji ja ne bih učinio drugačije!

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin

Technorati Tags:

Osiguranje SharePoint popisu / biblioteci dokumenata Views Činiti (vrsta) Moguće uz jQuery

Ovo je još jedan post na mom blogu u tijeku seriju o tome kako koristiti jQuery sa SharePoint.
Ako želite saznati više o jQuery, JA visoko preporučiti: jQuery u akciji od strane medvjeda i Bibeault Yehuda Katz.

Jedna od prvih stvari koje sam mislio, jednom kada sam počeo igrati oko s jQuery, was whether we could use it to secure a SharePoint view. The answer is “no” (ili barem, Nisam tvrdeći da je moguće). Međutim, 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: Brzo i jednostavno: Stvoriti Tvoj Posjedovati jQuery Pješčanik za SharePoint.

Za "osigurati" pogled, slijedite ove korake:

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

    To je ono što izgleda kao kada to nije "osiguran":

    image

  2. Dodaj web dio urednik sadržaja na prikaz na stranici pomoću trik je opisano u članku sandbox (i.e. dodati "prikaza stranice = podijelio&ToolPaneView = 2 "na URL).
  3. Figure out your SharePoint _spUserId by following these crazy steps, vjerovali ili ne:
    1. Prijavite se na svoj SharePoint okoliš.
    2. U web pregledniku adresnom polju, tip: "Javascript:oprezan(_spUserId ").
    3. Snimite rezultat (to je "13", u mom slučaju).

      image

  4. Dodajte sljedeće javascript na CEWP u prikazu koda:

    <skripta
        "Text / javascript"
        src =".. / .. / Jquery% 20Library/jquery-1.3.2.min.js">
    </skripta>
    
    <skripta type ="Text / javascript">
      $(funkcija() {
    
        oprezan(_spUserId);
    
        bio theSecuredView = $('Iframe[FilterLink * = Osiguran% 20View]');
    
        ako ((theSecuredView.length > 0) && (_spUserId == 13))
          $('Iframe[FilterLink * = Osiguran% 20View]').roditelj().roditelj().roditelj().html("<tr bgcolor = crvena><td>Nema pogled za vas!</td></tr>");
      });
    
    </skripta>
    

Uključio sam da upozorenja(_spUserId) linija tamo pokazati kako to zapravo i nije "osiguranje" pogled, but simply making it more difficult to see. More on that in a moment.

U osnovi, jQuery is looking for an iFrame on the page who has an attribute that contains “Secured%20View” in its value. Once it finds it, we check to see if the current user is “13”. If it is, hodamo do DOM do <TR> dan (što sam shvatio pregledom izvora i praćenje) a zatim zamjene taj TR oznaku s moje poruke. Ja stvarno ne znam koliko je snažna je to (Vrlo sam sumnjičav, zapravo), but it worked in my sandbox. If I find a better way, Ja ću blog o tome. To je rezultat:

image

Ja kliknite gumb OK i podaci zamijenjen s velikom crvenom poruke:

image

Kao što možete reći, the way I’ve implement this “security” solution is to allow the web part to render itself. After it finishes, Ja prepisati svoj sadržaj s mojim "No more za vas!"Poruka.

Unatoč činjenici da to nije stvarno "osiguran" "Pogled, to je potencijalno korisna i sa nekim pametnim radom, it may eventually be securable in a more formal sense. The fundamental issue is that the client is getting all the data and then, tek nakon što dobije podatke, it wipes it out. If the client is getting the data, pametan korisnik može spriječiti jQuery iz trčanje na sve i vidjeti što on / ona želi vidjeti.

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, ali vidim neke dobre stvari pisano o ovoj temi, pa sam se nada da postoji dobar odgovor na taj problem.

Popis pregleda i sami trebali biti obrubljen, ako je moguće. I haven’t tried to figure that out. I assume it’s possible, ali zapravo ne riješi temeljno pitanje sigurnosti, jer netko ipak mogao samo upišite URL pogledom žele (ako su ga znali). Međutim, 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. Ponekad, da je dovoljno dobar.

Uz malo sreće, Ja ću imati više pisati o ovoj temi tijekom vremena.

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin

Brzo i jednostavno: Bolji način za korištenje jQuery Sakrij tekstualno polje na SharePoint web-obrasca

Ovo je još jedan post na mom blogu u tijeku seriju o tome kako koristiti jQuery sa SharePoint.
Ako želite saznati više o jQuery, JA visoko preporučiti: jQuery u akciji od strane medvjeda i Bibeault Yehuda Katz.

Prethodno, 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 (Bio sam ulančavanje roditelji - da jednostavno se ne radi ovih dana, barem u obitelji kvalitete).

Kad sam prvi put počeo razmišljati o tome, Znao sam da je potrebno pronaći <TR> na koji sam mogao pozvati na skrivanje() način. My early effort to find the correct <TR> nešto kao što je ovaj:

$('Tr:ima(ulazni[title = Sakrij me!])');

Problem s tim je da će pronaći svaki <TR> tag koji je imao svaki roditelj odnos me Sakrij! polje, čak i ako me Sakrij! je smješteno mnogo razina duboko u <TR>’s. It turns out that on my sandbox form, taj izraz nalazi 9 različite TR-a koji su me sakrij! as a child somewhere in its DOM tree. I realized that I could walk back up the tree from the input field itself, tako da je kako sam završio zloupotrebljavaju roditelje, ali to nije dobro sjediti sa mnom.

Dao sam neki mislili da ove i jedna od stvari koje sam pročitao napokon ima smisla: Bih mogao koristiti ne() metoda za skraćivanje iz <TR>’s I don’t want in my wrapped set. To me dovelo do toga:

$('Tr:ima(ulazni[title = Sakrij me!])').ne('Tr:ima(tr)').sakriti();

Prvi malo pronalazi sve <TR> oznake koje su me sakrij! field anywhere in their own hierarchy. It then strips out any <TR> koji također imaju dijete <TR>. This leaves us with a single <TR> da:

1) Nema <TR> dijete evidencija

2) Does have the input field as child.

Tada ćemo moći primijeniti skrivača() Način na rezultat skupa, a mi smo učinili.

Ja sam još uvijek malo nervozan o tome, ali ne tako nervozan ulančavanje roditelja.

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, molimo upisali komentar.

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin

Brzo i jednostavno: Korištenje jQuery Sakrij tekstualno polje na SharePoint web-obrasca

Ovo je još jedan post na mom blogu u tijeku seriju o tome kako koristiti jQuery sa SharePoint.
Ako želite saznati više o jQuery, JA visoko preporučiti: jQuery u akciji od strane medvjeda i Bibeault Yehuda Katz.

UPDATE (već!): Ja sam misliti na bolji način za pronalaženje <TR> označiti želim sakriti i pisao o tome ovdje. You may still find this article interesting anyway so I’m leavnig it up.

Želim sakriti tekstualno polje, "Sakrij me!"Kao što je prikazano:

image'

Sljedeći jQuery radi trik za mene:

<skripta type ="Text / javascript">

  $(funkcija() {


    $('Ulaz[title = Sakrij me!]').roditelj().roditelj().roditelj().sakriti();

  });

</skripta>

Kod govori, "Nađite mi sve ulaznih polja čiji naslov = Sakrij me!. Tada, dobiti svoje roditelje, a zatim sljedeći roditelj i roditelj * uz * (fuj!) i pozivati ​​na skrivanje() Način na toj stvari, god se dogodi da se.

Pomislio sam na to da roditelj strukturu pregledom HTML za oblik koji SharePoint stvorio kao što je prikazano:

<TR>
    <TD nowrap= "True" valign= "Top" širina= "190px" klasa= "Gospođa u obliku naljepnica">
        <H3 klasa= "MS-standardheader">
            <nobr>Sakrij me!</nobr>
        </H3>
    </TD>

    <TD valign= "Top" klasa= "MS-formbody" širina= "400px">
        <!-- Polje Name = "Sakrij me!"
                 FieldInternalName = "Hide_x0020_Me_x0021_"
                 FieldType = "SPFieldText"
        -->
        <raspon vi= "None">
            <ulazni
                ime="ctl00$m$g_bdb23c2c_fde7_495f_8676_69714a308d8e$ctl00$ctl04$ctl02$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"
                tip= "Text"
                maxlength= "255"
                id="ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
                naslov= "Sakrij me!"
                klasa= "MS-duga" />
                <br>
        </raspon>


    </TD>
</TR>

Ova slika prikazuje isti, ali je označen s roditeljima:

image

Prvi roditelj (1) is a span tag. Span’s parent (2) je TD oznaka, a zatim konačno dođemo do stvarnog roditelja želim sakriti (3) što je TR tag sama.

This is a pretty terrible approach I think because it’s extremely dependent on the very specific structure of this form. When SharePoint 2010 izlazi, 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 (i samo TR Tags) koje imaju negdje u svojim dječjim elemenata ulaznog polja čiji naslov = Sakrij me!". I starting from the bottom and moving up. Assuming I figure this out, Ja ću objaviti ažuriranu "brzo i lako 'mjesto.

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin

Brzo i jednostavno: Stvoriti Tvoj Posjedovati jQuery Pješčanik za SharePoint

Ovo je još jedan post na mom blogu u tijeku seriju o tome kako koristiti jQuery sa SharePoint.
Ako želite saznati više o jQuery, JA visoko preporučiti: jQuery u akciji od strane medvjeda i Bibeault Yehuda Katz.

Uvod u jQuery u SharePoint je iznenađujuće lako (meni). (Imam ozbiljnih pitanja u vezi s "najbolje prakse" pristup uvođenju ove stvari proizvodnje, ali to je za još jedan dan). 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, vam svibanj pronaći korisne ovaj pristup.

1. Stvorite praznu stranice

Stvorite praznu stranicu negdje na ovim stranicama i nazovite to nešto pametno kao "jQuery Pješčanik".

2. Preuzmite jQuery

Možete preuzeti jQuery javascript knjižnice iz ovdje: http://docs.jquery.com/Downloading_jQuery

Spremi da se na radnu površinu.

Ja sam bio koristeći "minified" verziju.

3. Stvaranje biblioteke SharePoint dokumenata

U svom sandbox stranice, create a document library.

4. Upload jQuery biblioteku na SharePoint

Pristupite doc knjižnicu ste upravo stvorili i upload jQuery biblioteku.

5. Stvoriti prilagođeni popis SharePoint

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. Sakrij polja.
  2. Dodjeljivanje vrijednosti na području.

S tim ciljem na umu, I added two text fields. Tijekom vremena, Ja ću se igrati s linkovima, slike, lookups, itd..

6. Izmjena NewForm.aspx stranicu web-dijela i dodati web-dio uređivača sadržaja

To je malo crna magija-ish , in that it’s a new concept to me. I first learned about this from Paul Grenier, SharePoint jQuery Superstar, na njegovom mjestu CodePlex projekta: http://spff.codeplex.com/.

Slijedite ove korake da biste dodali CEWP na istoj stranici koji pokazuje NewForm.aspx za bilo koji prilagođeni popis:

  1. Pristupite prilagođeni popis i kliknite Novo.
  2. Dodavanje sljedeće na URL: Pregled stranica = Dijeljeno&ToolPaneView = 2

To će transformirati vaš dosadno vanilije podataka prijavnicu od nečega kao što je ovaj:

image

Za ovu:

image

Dodajte web-dio urednika sadržaja na stranici.

7. Napisati svoj prvi kod jQuery

Otvorite da CEWP u kodu pogledom i dodajte sljedeće:

image

Evo stvarni broj ako želite copy / paste:

<skripta
    "Text / javascript"
    src =".. / .. / Jquery% 20Library/jquery-1.3.2.min.js">
</skripta>

<skripta type ="Text / javascript">
  $(funkcija() {

    $('# ResultsID').html('Postoji' + $('A').veličina() + Uobičajeni oznake oznake na ovoj stranici. ');

  });
</skripta>

Rezultirati:
<div id ='ResultsID'></div>
/rezultirati

Imajte na umu da je prvi <skripta> tag is referencing the actual jQuery library. Presumably, ove stvari mijenjaju s vremenom, tako da ćete želite da provjerite da li) koristiti pravo ime i b) je ukazati na ispravan SharePoint biblioteci dokumenata.

Uživali u slavi

Ako ste to učinili ispravno, vidjet ćete rezultate slične sljedeće:

image

Završavajući

Ovo nije jedini način za početak, ali to je brzo, easy and isolated from your existing SharePoint environment.

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin

Brzo i jednostavno: Korištenje jQuery postaviti tekstualno polje je vrijednost na SharePoint web-obrasca

Sam počeo igrati oko s jQuery yesterday. I’ve been wanting to do this for a long time, od tada Paul Grenier počeo pisati njegova serija o jQuery za krajnje korisnike u časni 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.

U ovom scenariju, Ja sam stvorio prilagođeni popis čiji "novi" oblik izgleda kao što je prikazano:

image

Ovo je novi oblik za prilagođeni popis za stup zadani glave i dva popisa stupaca (ne stupaca web-mjesta; Ja ne mislim da bi trebao napraviti razliku).

Cilj je dodijeliti proizvoljne vrijednosti na području, "DefaultMeFieldNoSpaces" (možete reći Ja sam malo kukavica s "nema mjesta" stvar ide na, ali sam to učiniti začinio na kraju ovaj članak).

Ovo malo jQuery izrađen za mene:

<skripta type ="Text / javascript">

  $(funkcija() {

    $('Ulaz[title = DefaultMeFieldNoSpaces]').attr(
        {vrijednost: "Vi ste u svakakve uvrnutosti labirint prolaza, svi podjednako. "});

  });

</skripta>

Kako ja to razumijem ovo malo jQuery govori, “find me any input tag whose title = DefaultMeFieldNoSpaces. Tada, postaviti sve svoje vrijednosti na poznatom frazom iz stare računalne igre. "

Budući da će biti samo jedno polje na obrascu s naslovom jednak "DefaultMeFieldNoSpaces" mi smo sigurni dodjeljivanje vrijednosti na tom području i nitko drugi.

Što o području čije ime ima mjesta u njoj? It’s nearly the same:

<skripta type ="Text / javascript">

  $(funkcija() {
     $('Ulaz[title = Dodjeljivanje polje s prostorom]').attr(
        {vrijednost: "Vi ste u svakakve uvrnutosti labirint prolaza, svi podjednako. "});

  });

</skripta>

Mislim da je to prilično siguran pristup, 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, to je vrsta neredu:

<ulazni
ime="ctl00$m$g_bdb23c2c_fde7_495f_8676_69714a308d8e$ctl00$ctl04$ctl02$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"
tip= "Text"
maxlength= "255"
id="ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
naslov= "DefaultMeFieldNoSpaces"
klasa= "MS-duga"
/>

"Naslov", ističe se kao prepoznatljiv i nadamo se jedinstveni atribut kako bi nam pomogli identificirati specifične stupac koji želimo dodijeliti našoj proizvoljnog vrijednost.

This is a foundational concept. Setting a field in an arbitrary way like this isn’t going to win any awards. Međutim, ako želimo učiniti više zanimljive stvari obrasca razini (koji sve nas uvijek žele učiniti, naravno, odmah nakon što završite pranje posuđa), sviđa promijenite vrijednost "na terenu b" automatski na temelju vrijednosti polja "A", mi (Ja) moraju naučiti takve stvari.

Mislim da je naša najbolja prilika da se pravi korisne vrijednosti ovdje je putem naslova, at least for text fields. There may be a better, more reliable approach. If I find it, Ja ću ažurirati ovaj post. If you know a better way, molimo vas da ostavite komentar.</kraj>

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin