месечни архиви: Юни 2009

Услуги в областта на формуляр на InfoPath, Формуляри, базирани удостоверяване (FBA) и уникални имена на файлове

Аз бях работи върху някои формуляри на InfoPath тази седмица в Мос в FBA среда и учен, Когато отидох да разположи формуляри към производствена среда с FBA зона която потребителското име() функция функция не работи. Аз бях го използва за генериране на уникални файлови имена.

Ами, тази функция не работи в FBA среда (най-малко, не на кутията). И, след размисъл, използване на потребителското име по начина, по който е планирала няма да имат гарантирани уникално име на файл във всеки случай.

Моето решение е да използвате сега() функция и правило, което пожари при зареждане на формуляра. Присвояване името на файла за елемент от данните, когато е празно:

image

image

Предимството на този подход е, че името на файла е настроен само веднъж. (Аз не се показват в екрана изстрел, но постави условие на правилото да само огън, когато "myFilename" е празно). Аз използван за да зададете името на файла на ниво данни източник. Обикновено, Ще направя нещо (Лош) Ето така:

image

Проблемът с това е, че ако потребител А отвори формуляра в понеделник и потребител Б го промени във вторник, ще свърши с две различни форми тъй като две различни потребители го записали с различни потребителски имена.

Така, като досадно като FBA може да бъде по принцип и с InfoPath в частност, Тя ме прави мислите отново с малък, но много важни технически подробности и подход, който няма да са направили по друг начин!

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Technorati тагове:

Обезопасяване на изгледи на библиотеката на SharePoint списък/документ изглежда (сортиране на) Възможно с jQuery

Това е друга длъжност в моя текущи серии Как да използвате jQuery с SharePoint.
Ако искате да научите повече за jQuery, Аз силно препоръчвам: jQuery в действие да носят Bibeault и Йехуда Катц.

Едно от първите неща, мислех, че, след като започнах да играе около с jQuery, е дали можем да го използваме да осигури изглед на SharePoint. Отговорът е "не" (или най-малко, Аз съм не претендира, е възможно). Въпреки това, Това със сигурност е възможно да я направи трудно за хората да виждат определен изглед.

Започнах с моя пясък околната среда, когато се работи по този. Аз написах за тази среда тук: Бърз и лесен: Създадете ваше собствено jQuery пясъчницата за SharePoint.

За "защита" на изглед, Изпълнете следните стъпки:

  1. Създаване на изглед, който искате да защитите. Направих това и го нарича "Защитен изглед".

    Това е, как изглежда той когато той не е "защитен":

    image

  2. Добавяне на уеб компонент за редактор на съдържание към на изглед на страница с помощта на взятка, описана в статията на пясъчницата (т.е.. Добавяне на "по преглед на страници = споделени&ToolPaneView = 2 "към URL).
  3. Разбера вашия SharePoint _spUserId като следвате тези стъпки, луд, вярват или не:
    1. Влезте във вашия SharePoint среда.
    2. В адресното поле на уеб браузъра, тип: "javascript:предупреждение(_spUserId").
    3. Запис на резултата (Това е "13" в моя случай).

      image

  4. Прибавям определителен член последователи javascript към вашия CEWP в изглед на код:

    <скрипт тип ="текст/javascript"
        SRC =".. /.. /JQuery Library/JQuery-1.3.2.min.js">
    </скрипт>
    
    <скрипт тип ="текст/javascript">
      $(функция() {
    
        предупреждение(_spUserId);
    
        var theSecuredView = $("iframe[FilterLink * = обезпечени % 20View]');
    
        Ако ((theSecuredView.length > 0) && (_spUserId == 13))
          $("iframe[FilterLink * = обезпечени % 20View]').родител().родител().родител().HTML("<TR bgcolor = червен><TD>Няма изглед за вас!</TD></TR>");
      });
    
    </скрипт>
    

Аз бях включен това предупреждение(_spUserId) линия там да демонстрира как това не е наистина "осигуряване" изглед, но просто като го направи по-трудно да се види. Повече за това в един момент.

По принцип, jQuery е гледам за iFrame в страницата, който има атрибут, който съдържа "Гарантираните % 20View" в своята стойност. След като установи, че, Ние проверяваме дали текущият потребител е "13". Ако това е, Ние се изкачват на дом за <TR> етикет (което аз релефна повърхност показване на източник и го за проследяване) и след това замени този TR етикет със моето съобщение. Наистина не знам как силен, това е (Аз съм много подозрителни, Всъщност), но тя работи в моя пясък. Ако намеря по-добър начин, Аз ще блог за него. Това е резултат:

image

Аз щракнете върху бутона OK и данните се заменя с голяма червено съобщение:

image

Както можете да съобщите на, начина, по който аз съм реализиране разтворът "сигурност" е да позволи на уеб частта да се направи. След като завърши, I замените съдържанието му с моите "изглед за вас!"съобщение.

Независимо от факта, че тя не е наистина "защитена '" Изглед, това е потенциално полезен и с някои умен работи, в крайна сметка може да се защитим в по-формален смисъл. Основният въпрос е, че клиентът е получаването на всички данни и след това, само след като получава данните, то го бърша вън. Ако клиентът е получаване на данни, умен потребител може да предотврати стартирането на всички jQuery и вижте Какво, той иска да видите.

Има и други недостатъци. Този "сигурност" подход се основава на разстояние _spUserId. Ще искаме да наистина сигурна въз основа на модел на пълна сигурност на SharePoint, или поне по потребителско име. Това става постепенно по-трудно, но аз виждам някои добри неща, написани по този въпрос, така че аз съм надежда е добър отговор за този проблем.

Списъкът на изгледи, самите се почистват, Ако е възможно. Аз не съм опитал да разбера, че. Предполагам, че е възможно, но наистина не реши основните гаранцията проблем, защото някой може да просто въведете URL АДРЕСА на изгледа, те искат (ако те са знаели го). Въпреки това, Подстригване има смисъл. Това е добра използваемост функция и това помага да обърквам нещата. Ако краен потребител не знае, че съществува събитие преглед, те вероятно няма да се опитвам да го използвате. Понякога, това е достатъчно добър.

С късмет, Ще го взема повече да пише по този въпрос във времето.

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Technorati тагове: ,,

del.icio.US тагове: ,,

Бърз и лесен: По-добър начин да се използва jQuery да скриете текстово поле на формуляр на SharePoint

Това е друга длъжност в моя текущи серии Как да използвате jQuery с SharePoint.
Ако искате да научите повече за jQuery, Аз силно препоръчвам: jQuery в действие да носят Bibeault и Йехуда Катц.

По-рано, Аз написах за как да използвате jQuery да намерите и да се скрият текстово поле на формуляр. Аз не се грижи за специфичен подход (Е верижното родители – това е просто не е направил тези дни, най-малко в семействата на качеството).

Когато започнах да мисля за това, Знаех, че трябваше да се намери <TR> към която да извика Скрий() метод. Моите ранни усилия да намерим правилния <TR> е нещо подобно:

$("tr:има(вход[Заглавие = Скрий ме!])');

Проблемът с това е, че той ще намери всеки <TR> етикет, които са имали някакви майка връзка към Скрий ме! поле, дори ако Скрий ме! е вложен дълбоко в много нива <TR>снимки на. Оказва се, че в моя формуляр, пясък, този израз намира 9 различни TR, които имат Скрий ме! като дете някъде в дървото си дом. Разбрах, че мога да ходя обратно на дървото от полето за въвеждане, самата, така че това е как се стигна до злоупотреба с родителите, но това не седи добре с мен.

Аз дадох някои мисли за това и едно от нещата, които прочетох накрая имаше смисъл: Да използвам не() метод, за да отрежете <TR>е, аз не искам в моята стая и опаковани. Това ме доведе до това:

$("tr:има(вход[Заглавие = Скрий ме!])').не("tr:има(TR)').Скрий();

Първата малко намира всички <TR> Тагове, които са Скрий ме! поле навсякъде в своя йерархия. То тогава ленти някоя <TR> Това също има дете <TR>. Това ни оставя с едно <TR> Това:

1) Не е <TR> подчинени записи

2) Има поле за въвеждане като дете.

Ние след това да приложите кожа() метод, за да води и сме готови.

Аз все още съм малко нервен за това, но не толкова нервна, верижното родители.

Не знам дали това е добра практика, или не. Може да има по-подходящ начин за идентифициране само <TR> че ние се грижим за в SharePoint форма. Ако знаете, Моля публикувате коментар.

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Technorati тагове: ,

Бърз и лесен: Използвайте jQuery, за да скриете текстово поле на формуляр, SharePoint

Това е друга длъжност в моя текущи серии Как да използвате jQuery с SharePoint.
Ако искате да научите повече за jQuery, Аз силно препоръчвам: jQuery в действие да носят Bibeault и Йехуда Катц.

АКТУАЛИЗИРАНЕ (вече!): Аз мисля, че на по-добър начин да намерите <TR> етикет, аз искам да се скрие и пише за него тук. Можете все още да намерите тази статия интересно все пак така че аз съм leavnig го.

Искам да скрия текстово поле, "Скрий ме!"както е показано:

image

Следните jQuery прави трик за мен:

<скрипт тип ="текст/javascript">

  $(функция() {


    $("въвеждане[Заглавие = Скрий ме!]').родител().родител().родител().Скрий();

  });

</скрипт>

Кодът се казва, "Намери ме всички входни полета чието заглавие = Скрий ме!. След това, да си родител и след това next родител и * напред * родител (Пфу!) и се позове Скрий() метод на това нещо, Независимо от това се случва да бъде.

Реших, че родител структура като прегледате HTML за формуляра, който SharePoint създадени както е показано:

<TR>
    <TD без прехвърляне= "true" valign= "Топ" ширина= "190px" клас= "ms-formlabel">
        <H3 клас= "ms-standardheader">
            <NOBR>Скрий ме!</NOBR>
        </H3>
    </TD>

    <TD valign= "Топ" клас= "ms-formbody" ширина= "400px">
        <!-- FieldName = "Скрий ме!"
                 FieldInternalName = "Hide_x0020_Me_x0021_"
                 FieldType = "SPFieldText"
        -->
        <еталониране DIR= "няма">
            <вход
                Име= "ctl00$ m$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ TextField"
                тип= "текст"
                maxlength= "255"
                ИД= "ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
                заглавие= "Скрий ме!"
                клас= "ms дълго" />
                <br>
        </еталониране>


    </TD>
</TR>

Тази картина показва една и съща, но маркирани с родителите:

image

Първия родител (1) е една педя маркер. На Дани родител (2) е TD маркер и след това накрая ние стигнем до истинската майка, аз искам да се скрие (3) което е самия TR етикет.

Това е доста ужасно подход мисля, защото това е изключително зависим от много специфичната структура на този формуляр. Когато SharePoint 2010 излиза, тази цялата структура може да се промени и прекъсне този подход. Това, което наистина искам да направя е занаят селектор на jQuery, че е по подобие на "Намери ме всички TR (и само TR Тагове) които имат някъде в техните дъщерни елементи input поле чието заглавие = Скрий ме!”. Започвайки от дъното и се движат. Ако приемем, аз фигура този вън, Аз ще пост актуализирана "бързо и лесно" пост.

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

del.icio.US тагове: ,

Technorati тагове: ,

Бърз и лесен: Създадете ваше собствено jQuery пясъчницата за SharePoint

Това е друга длъжност в моя текущи серии Как да използвате jQuery с SharePoint.
Ако искате да научите повече за jQuery, Аз силно препоръчвам: jQuery в действие да носят Bibeault и Йехуда Катц.

Първи стъпки с jQuery в SharePoint е изненадващо лесно (На мен). (Имам сериозни въпроси относно подход на "добри практики" за разполагане на тези неща в производство, но това е за друг ден). Току-що започна да свири с тази технология и за тази цел, Съм създал пясък околната среда да се използва. Ако търсите да започнете с jQuery, Можете да намерите този подход полезни.

1. Създаване на празен сайт

Създайте празен сайт някъде във вашия сайт и го наричат нещо умно като "jQuery пясък".

2. Изтегляне на jQuery

Можете да изтеглите jQuery javascript библиотека от тук: http://docs.jquery.com/Downloading_jQuery

Това да се запишете на вашия работен плот.

Имам Използвам "minified" версия.

3. Създаване на библиотека с документи на SharePoint

В сайта си пясък, създаване на библиотека с документи.

4. Качите jQuery библиотека на SharePoint

Достъп до библиотеката на doc, който току що създадохте и качване на jQuery библиотека.

5. Създаване на потребителски SharePoint списък

Аз бях започнал с потребителски списък, защото аз искам да се мотам със стандартни формуляри на SharePoint. Можете да създадете страница в библиотека със страници или страници с уеб компоненти и вероятно на много други места.

Добави някои колони към потребителски списък, така че имате нещо да тече jQuery срещу. Моят първоначалните цели бяха да:

  1. Скриване на поле.
  2. Присвояване на стойност на поле.

С тази цел в ума, Добавих две текстови полета. С течение на времето, Аз ще се играе с връзки, изображения, заявки, н.

6. Модифициране на страницата на NewForm.aspx уеб компонента и добавете уеб компонента за редактор на съдържание

Това е малко черно magic-ish , в че е нова концепция за мен. За първи път научих за това от Пол Grenier, SharePoint jQuery суперзвезда, в сайта му CodePlex проект: http://spff.codeplex.com/.

Следвайте тези стъпки, за да добавите CEWP на същата страница, която показва NewForm.aspx за всеки потребителски списък:

  1. Достъп до потребителския списък и щракнете върху Създай.
  2. Следното за добавяне на URL: Показване на страница = споделени&ToolPaneView = 2

Това ще превърне вашия скучно въвеждане на ванилия данни форма от нещо подобно:

image

За това:

image

Добавяне на уеб компонент за редактор на съдържание към страница.

7. Напиши вашата първа jQuery код

Отвори този CEWP в изгледа на кода и се добавят следните:

image

Тук е действителният код, ако искате да копирате/паста:

<скрипт тип ="текст/javascript"
    SRC =".. /.. /JQuery Library/JQuery-1.3.2.min.js">
</скрипт>

<скрипт тип ="текст/javascript">
  $(функция() {

    $("#resultsID").HTML("Има" + $("").размер() + "тагове етикети на тази страница.");

  });
</скрипт>

Резултат:
<DIV id ="resultsID"></DIV>
/Резултат

Имайте предвид, че първата <скрипт> етикет е съотнасяне на действителните jQuery библиотека. Вероятно, тези неща се променят с времето, така че вие ще искате да се уверете, че) Използвайте правилното име и b) го насочите към правилната библиотека с документи на SharePoint.

Топля в славата

Ако сте го направили правилно, Вие ще видите резултат, подобен на следния:

image

Обобщавайки резултатите

Това не е единственият начин да започнете, но това е бърз, лесно и изолирани от вашата съществуваща среда SharePoint.

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Technorati тагове: ,

del.icio.US тагове: ,

Бърз и лесен: Използвайте jQuery да зададете текстово поле на стойността на SharePoint форма

Започнах да играя наоколо с jQuery вчера. Аз бях искат да направят това за дълго време, откакто Пол Grenier започва да пише серията си за jQuery за крайните потребители на преподобния www.endusersharepoint.com уеб сайт. Както аз го използвам, Надявам се да добавите поредица от "Бърз и лесен" постове като този. Тази публикация се описва как да настроите известно текстово поле на стойността на всичко, което искате.

В този сценарий, Аз създали потребителски списък, чиито "нов" формуляр изглежда както е показано:

image

Това е нов формуляр за потребителски списък със заглавие на колона по подразбиране и две колони на списък (не колони на сайт; Аз не мисля, че тя трябва да прави разлика).

Целта е да се присвои на произволна стойност на полето, "DefaultMeFieldNoSpaces" (Можете да кажете, аз съм малко на страхливец с "без интервали" нещо се случва, но аз го подправка в края на тази статия).

Това малко на jQuery е работил за мен:

<скрипт тип ="текст/javascript">

  $(функция() {

    $("въвеждане[Заглавие = DefaultMeFieldNoSpaces]').attr(
        {стойност: "Вие сте в нечестен лабиринт на пасажи, всички така. "});

  });

</скрипт>

Както аз го разбирам това малко на jQuery казва, "Намери ме всеки вход етикет чието заглавие = DefaultMeFieldNoSpaces. След това, намира всички от техните стойности с известната фраза от стар компютър игра."

Тъй като там ще бъде едно поле във формуляра със звание, равно на "DefaultMeFieldNoSpaces" ние сме уверени в определянето на стойността в това поле и няма други.

Какво да кажем за дадено поле, чието име е пространства в него? Това е почти същото:

<скрипт тип ="текст/javascript">

  $(функция() {
     $("въвеждане[Заглавие = присвоите поле с пространство]').attr(
        {стойност: "Вие сте в нечестен лабиринт на пасажи, всички така. "});

  });

</скрипт>

Мисля, че това е сравнително безопасен подход, което означава, че ние трябва да бъде в състояние да намери само поле и полето, което искаме ние искаме. Ако погледнете на HTML SharePoint ни дава, Това е някак разхвърлян:

<вход
Име= "ctl00$ m$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ TextField"
тип= "текст"
maxlength= "255"
ИД= "ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
заглавие= "DefaultMeFieldNoSpaces"
клас= "ms дълго"
/>

"заглавие" се откроява като разпознаваем и дано уникален атрибут да ни помогнат да идентифицираме специфичните колона, които искате да присвоите на нашите произволна стойност.

Това е фундаментална концепция. Създаване на поле по произволен начин като този няма да спечелите някоя от наградите. Въпреки това, Ако искаме да направим по-интересна форма ниво неща (който всички от нас винаги искам да направя, Разбира се, веднага след като приключим, миене на съдове), като промяна на стойността на "област б" автоматично на базата на стойността на "полето", Ние (АЗ) трябва да се научат тези неща.

Мисля, че нашите най-добрия шанс да получите истински полезна стойност тук е чрез заглавието, поне за текстови полета. Може да има по-добро, по-надежден подход. Ако го намеря, Ще актуализирам този пост. Ако знаете по-добър начин, Моля, оставете коментар.</край>

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Technorati тагове: ,