Monataj Arkivoj: Junio 2009

InfoPath Formo Sevices, Formas Bazita Authentication (FBA) Kaj Unikaj Dosieraj Nomoj

Mi estis laboranta sur kelkaj InfoPath formas ĉi tiun semajnon en MUSKO en FBAa medio kaj lernis, Kiam mi iris deplojiĝi la formojn al produktada medio kun FBAa zono ke la salutnomo() Funkcia funkcio ne laboras. Mi estis uzanta ĝin produkti unikajn dosierajn nomojn.

Puto, KE funkcio doesn?? Laboro en FBAa medio (Almenaŭ, Ne ekstere de la skatolo). Kaj, Al konsidero, Uzanta salutnomon en la vojo mi planis wouldn?? Havas guaranteed unika dosiera nomo en ajna evento.

Mia solvo estis uzi la nun() funkcio kaj regulo ke fajregoj sur ŝarĝanta de la formo. Mi asignas la dosieran nomon al datuma elemento kiam ĝi estas malplena:

image

image

La avantaĝo de ĉi tiu alproksimiĝo estas ke la dosiera nomo estas fiksita nur unufoje. (Mi surmetas?? Montras ?in en la ekrano pafis, Sed metis #kondi?o sur la regulo al nura fajrego kiam ??YFilename?? Estas malplena). Mi uzis fiksi la dosieran nomon ĉe la datuma fonta nivelo. Tipe, Mi farus ion (Malbone) Tiel:

image

La problemo kun kiu estas ke se uzanto turniroj la formo lunde kaj la uzanto B #?an?o ?i marde, Vi??L fino supre kun du malsamaj formoj ekde du malsamaj uzantoj savis ?in kun malsamaj uzantaj nomoj.

Tiel, Kiel #?eni kiel FBA povas esti en #?enerala kaj kun InfoPath en aparta, ?i faris min re-pensi malgrandan sed vere grava teknika detalo kaj #alproksimi?o ke mi wouldn?? Faris alie!

</Fino>

Aboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin

Technorati Etikedoj:

Sekuriganta SharePoint Lista/Dokumento Bibliotekaj Vidoj Ŝajnas (Speco de) Ebla kun jQuery

Tio ĉi estas alia poŝto en mia Sur-iranta serion Sur kiel uzi JQuery Kun SharePoint.
Se vi deziras lerni pli da pri jQuery, Mi tre rekomendas: JQuery en Ago De Urso Bibeault kaj Yehuda Katz.

Unu el la unuaj aferoj mi pensis, Unufoje mi komencis ludi proksimume kun jQuery, Estis ĉu ni povus uzi ĝin sekurigi SharePoint vido. La respondo estas “ne” (Aŭ almenaŭ, Mi ne estas asertanta ĝin estas ebla). Tamen, Ĝi estas certe ebla fari ĝin malfacila por homoj vidi apartan vidon.

Mi komencis kun mia sandbox medio kiam laboranta sur tio ĉi. Mi skribis pri tiu medio ĉi tie: Rapide kaj Facile: Krei Vian Propran jQuery Sandbox por SharePoint.

“Sekurigi” vidon, Sekvi ĉi tiujn paŝojn:

  1. Krei vidon vi deziras sekurigi. Mi faris tion kaj vokis ĝin “Sekurigis Vidon”.

    Tio ĉi estas kio ĝi similas kiam ĝin ne estas “sekurigita”:

    image

  2. Aldoni kontentan redaktoran araneaĵan parton al la paĝo de la vido uzanta la ruzon priskribita en la sandbox artikolo (T.e. Aldoni “PageView=Dividita&ToolPaneView=2” al la URL).
  3. Elkalkuli via SharePoint _spUserId de sekvanta ĉi tiujn frenezajn paŝojn, Kredi aŭ ne:
    1. Ŝtipo en via SharePoint medio.
    2. En la adreso de la araneaĵo retumilo kampo, Tipo: “Javascript:Atentigo(_SpUserId”).
    3. Registri la rezulton (Ĝi estas “13” en mia kazo).

      image

  4. Aldoni la sekvantan javascript al via CEWP en koda vido:

    <Skriba
        tipo="Teksto/javascript"
        Src="../../JQuery Biblioteko/jquery-1.3.2.Min.Js">
    </Skribo>
    
    <Skriba tipo="Teksto/javascript">
      $(Funkcio() {
    
        Atentigo(_SpUserId);
    
        Var TheSecuredView = $('Iframe[FilterLink=Sekurigis Vidon]');
    
        Se ((TheSecuredView.Longeco > 0) && (_SpUserId == 13))
          $('Iframe[FilterLink=Sekurigis Vidon]').Gepatro().Gepatro().Gepatro().Html("<Tr bgcolor=ruĝeco><Td>Neniu vido por vi!</Td></Tr>");
      });
    
    </Skribo>
    

I??E inkluzivis ke atentigo(_SpUserId) Linio en tie montri kiel #tio ?i ne estas vere ??Ecuring?? Vido, Sed simple faranta ĝin pli malfacila vidi. Pli da sur tio en momento.

Resume, JQuery estas serĉanta iFrame sur la paĝo kiu havas econ kiu enhavas “Sekurigita Vidon” en ĝia valoro. Unufoje ĝi trovas ĝin, Ni kontrolas vidi se la nuna uzanto estas “13”. Se ĝi estas, Ni piediras supre la DOM al <TR> Etikedo (Kiu mi elkalkulis de vidanta fonton kaj spuranta ĝin) Kaj tiam anstataŭiganta ke TRa etikedo kun mia mesaĝo. Mi vere ne scias kiom fortikan tio ĉi estas (Mi estas tre suspekta, Fakte), Sed ĝi laboris en mia sandbox. Se mi trovas pli bonan vojon, Mi voli blogon pri ĝi. Tio ĉi estas la rezulto:

image

Mi klakas la OKan butonon kaj la datumon estas anstataŭigita kun granda ruĝa mesaĝo:

image

Kiel vi povas diri, La vojo mi efektivigis ĉi tiun “sekurecan” solvon estas permesi la araneaĵan parton fari ĝin mem. Post kiam ĝi finas, Mi anstataŭigas ĝian enhavon kun mia “Neniu vido por vi!” Mesaĝo.

Malgraŭ la fakto ke ĝi ne estas vere “gardata'” vido, Ĝi estas potenciale utila kaj kun iu lerta laboro, Ĝi poste povas esti securable en pli formala sento. La fundamenta afero estas ke la kliento estas akiranta ĉiuj la datumo kaj tiam, Nur post kiam ĝi akiras la datumon, Ĝi viŝas ĝin ekstere. Se la kliento estas akiranta la datumon, Lerta uzanto povas malhelpi la jQuery de kuranta ĉe ĉiuj kaj vidi kion li/ŝi deziras vidi.

Estas aliaj malavantaĝoj. Ĉi tiu “sekureca” alproksimiĝo estas bazita de _spUserId. Ni dezirus al vere sekura bazita sur la plena SharePoint sekureca modelo, Aŭ almenaŭ de uzanta nomo. Kiu fariĝas laŭstadie pli malfacila, Sed mi vidas iun bonan aĵon skribita sur ĉi tiu temo, Do mi estas esperema tie estas bona respondo al tiu problemo.

La listo de vidoj si mem devus esti bonordigita, Se ebla. Mi ne provis kalkuli ke ekstere. Mi supozas ĝin estas ebla, Sed ne vere solvas la fundamentan sekurecan aferon ĉar iu ankoraŭ nur povus tajpi la URL de la vido ili deziras (Se ili sciis ĝin). Tamen, Bonordiganta faran senton. Ĝi estas bona afabliga ĉefaĵo kaj ĝi helpas malklarigi aferojn. Se fina uzanto ne scias ke la vida evento ekzistas, Ili verŝajne ne provos uzi ĝin. Foje, Tio estas bona sufiĉa.

Kun fortuno, Mi havos pli skribi sur ĉi tiu temo super tempo.

</Fino>

Aboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin

Rapide kaj Facile: Pli Bona Vojo Uzi jQuery Kaŝi Tekstan Kampon sur SharePoint Formo

Tio ĉi estas alia poŝto en mia Sur-iranta serion Sur kiel uzi JQuery Kun SharePoint.
Se vi deziras lerni pli da pri jQuery, Mi tre rekomendas: JQuery en Ago De Urso Bibeault kaj Yehuda Katz.

Antaŭe, Mi skribis pri kiel uzi jQuery troviĝi kaj kaŝi tekstan kampon sur formo. Mi ne zorgis por la specifa alproksimiĝo (Mi estis ĉenanta gepatrojn – tio estas simple ne estas farita ĉi tiujn tagojn, Almenaŭ en familioj de kvalito).

Kiam mi unue komencis pensi pri ĝi, Mi sciis min devis trovi <TR> Al kiu mi povus alvoki la felon() Metodo. Mia frua peno trovi la ĝustan <TR> Estis io tiel:

$('Tr:Havas(Enigo[Titoli=Kaŝi Min!])');

La problemo kun kiu estas ke ĝi trovus ĉiu <TR> Etikedo kiu havis ajnan gepatran interrilaton al la Kaŝi Min! Kampo, Eĉ se Kaŝas Min! Estas nestita multajn nivelojn profunde je <TR>-a. Ĝi rezultas ke sur mia sandbox formo, KE esprimo trovas 9 Kiu de malsama TR Kaŝis Min! Kiel infano ie en ĝia DOMa arbo. Mi konsciis ke mi povus piediri reen supre la arbon de la enigo kaptas ĝin mem, Por ke-a kiel mi finis supre fitraktanta gepatrojn, Sed ĝi ne sidis puton kun mi.

Mi donis iom pensita al tio ĉi kaj unu el la aferoj mi legis fine farita senton: Mi povus uzi la ne() Metodo bonordigi ekstere <TR>-a I ne deziras en mia volvita aron. Kiu gvidis min al tio ĉi:

$('Tr:Havas(Enigo[Titoli=Kaŝi Min!])').Ne('Tr:Havas(Tr)').Felo();

La unua peco trovas ĉiuj la <TR> Etikedoj kiu havas la Kaŝi Min! Kapti anywhere en ilia propra hierarkio. Ĝi tiam elmalkovras iun ajn <TR> KE ankaŭ havi infanon <TR>. Tio ĉi lasas nin kun ununura <TR> Tio:

1) Havas ne <TR> Infanaj rekordoj

2) Faras havi la enigan kampon kiel infano.

Ni tiam povas apliki la felon() Metodo al la rezultinta aro kaj ni estas farita.

Mi estas ankoraŭ iom nervoza pri tio ĉi, Sed ne kiel nervoza kiel ĉenanta gepatrojn.

Mi ne scias se tio ĉi estas plej bona praktiko aŭ ne. Tie povas esti pli konvena vojo identigi nur la <TR> KE ni zorgas proksimume en SharePoint formo. Se vi scias, Bonvolu poŝti rimarkon.

</Fino>

Aboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin

Technorati Etikedoj: ,

Rapide kaj Facile: Uzi jQuery Kaŝi Tekstan Kampon sur SharePoint Formo

Tio ĉi estas alia poŝto en mia Sur-iranta serion Sur kiel uzi JQuery Kun SharePoint.
Se vi deziras lerni pli da pri jQuery, Mi tre rekomendas: JQuery en Ago De Urso Bibeault kaj Yehuda Katz.

ĜISDATIGO (Jam!): Mi ja pensis de pli bona vojo troviĝi la <TR> Etikedo mi deziras #ka?i kaj Skribis pri ?i #?i tie. Vi ankoraŭ povas trovi ĉi tiun artikolon interesanta ĉiuokaze do mi estas leavnig ĝi supre.

Mi deziras #ka?i tekstan kampon, ??Ide Mi!?? Kiel montrita:

image?

La sekvanta jQuery faras la ruzon por mi:

<Skriba tipo="Teksto/javascript">

  $(Funkcio() {


    $('Enigo[Titoli=Kaŝi Min!]').Gepatro().Gepatro().Gepatro().Felo();

  });

</Skribo>

La kodo estas diranta, ??Ind mi #?iuj enigo kaptas kies titolo = #Ka?i Min!. Tiam, Akiri #?ia gepatron kaj tiam sekvanta gepatro kaj la sekvanta* gepatro (Phew!) Kaj alvoki la felon() Metodo sur tiu afero, Kio ajn ?i okazas esti.

Mi elkalkulis ke gepatra strukturo de vidanta la HTML por la formo ke SharePoint kreita kiel montrita:

<TR>
    <TD Nowrap="Vera" Valign="Supro" Larĝo="190px" Klaso="Ms-formlabel">
        <H3 Klaso="Ms-standardheader">
            <Nobr>#Ka?i Min!</Nobr>
        </H3>
    </TD>

    <TD Valign="Supro" Klaso="Ms-formbody" Larĝo="400px">
        <!-- FieldName="#Ka?i Min!"
                 FieldInternalName="#Ka?i_x0020_Mi_x0021_"
                 FieldType="SPFieldText"
        -->
        <Daŭri dum Dir="Neniu">
            <Enigo
                Nomo="Ctl00$m$g_bdb23c2c_fde7_495f_8676_69714a308d8e$ctl00$ctl04$ctl02$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"
                Tipo="Teksto"
                Maxlength="255"
                Identigaĵo="Ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
                Titolo="#Ka?i Min!"
                Klaso="Ms-longa" />
                <Br>
        </Daŭri dum>


    </TD>
</TR>

#?I tiu bildo montras la saman, Sed markita supre kun la gepatroj:

image

La unua gepatro (1) Estas daŭra etikedo. la gepatro de daŭro (2) Estas TDa etikedo kaj tiam fine ni akiras al la vera gepatro mi deziras #ka?i (3) Kiu estas la TR etikedas ?in mem.

Tio ĉi estas sufiĉe terura alproksimiĝo mi pensas ĉar ĝi estas ekstreme dependa sur la tre specifa strukturo de ĉi tiu formo. Kiam SharePoint 2010 Eliras, Ĉi tiu tuta strukturo povus ŝanĝi kaj rompi ĉi tiun alproksimiĝon. Kio mi vere deziras fari estas metio jQuery elektilo kiu estas laŭ la ekzemploj de “trovi min ĉiuj la TR-a (Kaj nuraj TRaj etikedoj) Kiu havas #ie en iliaj infanaj elementoj enigo kaptas kies titolo = #Ka?i Min!”. I komencanta de la malsupra kaj movanta supre. Supozanta min kalkulas tion ĉi ekstere, I??L #po?to #?isdatigita ??Uick kaj facile?? #Po?to.

</Fino>

Aboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin

Del.Icio.Ni Etikedoj: ,

Technorati Etikedoj: ,

Rapide kaj Facile: Krei Vian Propran jQuery Sandbox por SharePoint

Tio ĉi estas alia poŝto en mia Sur-iranta serion Sur kiel uzi JQuery Kun SharePoint.
Se vi deziras lerni pli da pri jQuery, Mi tre rekomendas: JQuery en Ago De Urso Bibeault kaj Yehuda Katz.

Akiranta komencita kun jQuery en SharePoint estas surprize facile (Al mi). (Mi ja havas gravajn demandojn pri “plej bonaj praktikoj” alproksimiĝas al deplojiĝanta ĉi tiujn aferojn al produktado, Sed tio estas por alia tago). Mi nur komencis ludadon kun ĉi tiu teknologio kaj al tiu fino, Mi kreis sandbox medio uzi. Se vi estas rigardanta akiri komencita kun jQuery, Vi povas trovi ĉi tiun alproksimiĝon utila.

1. Krei Malplenan Ejon

Krei malplenan ejon ie en via ejo kaj voki ĝin io lerta kiel “jQuery Sandbox”.

2. Elŝuti jQuery

Vi povas elŝuti la jQuery javascript bibliotekon de ĉi tie: http://docs.jquery.com/Downloading_jQuery

Savi tion al al via surtabla.

Mi estis uzanta la “minified” versio.

3. Krei SharePoint Dokumenta Biblioteko

En via sandbox ejo, Krei dokumentan bibliotekon.

4. Alŝuto la jQuery Biblioteko al SharePoint

Aliri la doc biblioteko vi nur kreis kaj alŝuto la jQuery biblioteko.

5. Krei Laŭmendan SharePoint Listo

Mi komencis kun laŭmenda listo ĉar mi deziras al feĉo pri kun norma SharePoint formoj. Vi ankaŭ povus krei paĝon en paĝa biblioteko aŭ araneaĵa parto paĝoj kaj verŝajne multa aliaj lokoj.

Aldoni kelkajn kolumnojn al la laŭmenda listo por ke vi havas ion kuri jQuery kontraŭ. Miaj komencaj objektivoj estis al:

  1. Kaŝi kampon.
  2. Asigni valoron al kampo.

Kun tiu objektivo en menso, Mi aldonis du tekstajn kampojn. Super tempo, Mi estos ludanta kun ligoj, Bildoj, Lookups, Ktp.

6. Modifi la NewForm.Aspx Araneaĵa Parto Paĝo kaj Aldoni Kontentan Redaktoran Araneaĵan Parton

Tio ĉi estas malgranda nigra magia-ish , En kiu ĝi estas nova koncepto al mi. Mi unue lernis pri tio ĉi de Paul Grenier, SharePoint jQuery Superstelo, Ĉe lia CodePlex projekta ejo: http://spff.codeplex.com/.

Sekvi ĉi tiujn paŝojn aldoni CEWP al la sama paĝo kiu montras NewForm.Aspx por ajna laŭmenda listo:

  1. Aliri la laŭmendan liston kaj klaki Novan.
  2. Almeti la sekvantan al la URL: PageView=Dividita&ToolPaneView=2

Kiu transformos vian enuigan vanilan datuman eniron formo de io tiel:

image

Al tio ĉi:

image

Aldoni la kontentan redaktoran araneaĵan parton al la paĝo.

7. Skribi Vian Unuan jQuery Kodo

Malfermi supre ke CEWP en la koda vido kaj aldoni la sekvantaron:

image

Ĉi tie-a la reala kodo se vi deziras kopii/almeti:

<Skriba
    tipo="Teksto/javascript"
    Src="../../JQuery Biblioteko/jquery-1.3.2.Min.Js">
</Skribo>

<Skriba tipo="Teksto/javascript">
  $(Funkcio() {

    $('#ResultsID').Html('Estas' + $('').Grandeco() + ' Etikedoj etikedas sur ĉi tiu paĝo.');

  });
</Skribo>

Rezulto:
<Div identigaĵo='ResultsID'></Div>
/Rezulto

Noti ke la unua <Skribo> Etikedo estas referencanta la realan jQuery biblioteko. Supozeble, Ĉi tiu afera ŝanĝo super tempo, Do vi deziros fari certe vin) Uzi la ĝustan nomon kaj b) Indiki ĝin al la ĝusta SharePoint dokumenta biblioteko.

Bask en la Gloro

Se vi faris ĝin ĝuste, Vi vidos rezulton simila al la sekvantaro:

image

Volvanta Supre

Tio ĉi ne estas la nura vojo akiri komencita, Sed ĝi estas rapide, Facile kaj izolita de via ekzistanta SharePoint medio.

</Fino>

Aboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin

Technorati Etikedoj: ,

Del.Icio.Ni Etikedoj: ,

Rapide kaj Facile: Uzi jQuery al Aro La Valoro de Teksto Kampo sur SharePoint Formo

Mi komencis ludanta proksimume kun JQuery Hieraŭ. Mi estis deziranta fari tion ĉi delonge, Iam ajn poste Paul Grenier Komencita skribon Lia serio Pri jQuery por Finaj Uzantoj ĉe la malnova Www.endusersharepoint.com Retejo. Kiel mi uzas ĝin, Mi esperas aldoni serion de “Rapidaj kaj Facilaj” poŝtoj tiel unu. Ĉi tiu poŝto priskribas kiel fiksi valoron de konata teksta kampo al io ajn vi deziras.

En ĉi tiu scenaro, Mi kreis kutimon enlistigas kies “novaj” formaj rigardoj kiel montrita:

image

Tio ĉi estas la nova formo por laŭmenda listo kun la defaŭlta Titola kolumno kaj du listaj kolumnoj (Ne ejaj kolumnoj; Mi ne pensas ĝin devus fari ajnan diferencon).

La objektivo estas asigni arbitran valoron al la kampo, “DefaultMeFieldNoSpaces” (Vi povas diri min estas iom de malkuraĝulo kun la “neniu spaca” afero daŭriganta, Sed mi fari spicon ĝi supre fine de ĉi tiu artikolo).

Tio ĉi mordis de jQuery laborita por mi:

<Skriba tipo="Teksto/javascript">

  $(Funkcio() {

    $('Enigo[Titoli=DefaultMeFieldNoSpaces]').Attr(
        {Valoro: 'Vi estas en  twisty labirinto de trairejoj, Ĉiuj simila.'});

  });

</Skribo>

Kiel mi komprenas ĝin tio ĉi mordis de jQuery estas diranta, “Trovi min ajna enigo etikedas kies titolas = DefaultMeFieldNoSpaces. Tiam, Fiksi ĉiujn de iliaj valoroj al fama frazo de malnova komputila ludo.”

Pro tio ke tie nur estos unu kampo sur la formo kun titola egalulo al “DefaultMeFieldNoSpaces” ni estas certigita asigni valoron al tiu kampo kaj ne alia.

Kio pri kapti kies nomo havas spacojn en ĝi? Ĝi estas preskaŭ la sama:

<Skriba tipo="Teksto/javascript">

  $(Funkcio() {
     $('Enigo[Titolo=Asignas Kampon Kun Spaco]').Attr(
        {Valoro: 'Vi estas en  twisty labirinto de trairejoj, Ĉiuj simila.'});

  });

</Skribo>

Mi pensas tion ĉi estas juste sekura alproksimiĝo, Signifanta ke ni devus esti kapablaj trovi la kampon ke ni deziras kaj nur la kampo ni deziras. Se vi rigardas la HTML SharePoint estas donanta nin, Ĝi estas speco de messy:

<Enigo
Nomo="Ctl00$m$g_bdb23c2c_fde7_495f_8676_69714a308d8e$ctl00$ctl04$ctl02$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"
Tipo="Teksto"
Maxlength="255"
Identigaĵo="Ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
Titolo="DefaultMeFieldNoSpaces"
Klaso="Ms-longa"
/>

“Titolo” elstaras kiel rekonebla kaj espereble unika eco helpi nin identigi la specifan kolumnon al kiu ni deziras asigni nian arbitran valoron.

Tio ĉi estas foundational koncepto. Fiksanta kampon en arbitra vojo tiel ne estas iranta gajni ajnajn premiojn. Tamen, Se ni deziras fari pli da interesan forman nivelan aĵon (Kiu ni ĉiuj ĉiam deziri fari, Nature, Ĝuste post kiam ni finas lavanta la pladojn), Kiel ŝanĝo la valoro de “kampo b” aŭtomate bazita sur la valoro de “kampo ”, Ni (I) Devi lerni ĉi tiujn aferojn.

Mi pensas nian plej bonan ŝancon akiri veran utilan valoron ĉi tie estas tra la titolo, Almenaŭ por tekstaj kampoj. Tie povas esti pli bona, Pli fidinda alproksimiĝo. Se mi trovas ĝin, Mi ĝisdatigos ĉi tiun poŝton. Se vi scias pli bonan vojon, Bonvolu lasi rimarkon.</Fino>

</Fino>

Aboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin

Technorati Etikedoj: ,