## -*- coding: utf_8 -*- <% from fcp import fcpdefs from fcp import mlitem from fcutils import util from fcws.fcweb import webutil from cStringIO import StringIO import base64 %> <%namespace name="toolbar" file="toolbars.html" import="create"/> <% def spitRulesForm(): str = '"FORM":{"ID":20,"13800":{"t":"Käytössä","v":1},"13801":"=-1;Vastaanota=0;L\u00e4het\u00e4=1;Luo=2;Poista=3;Siirr\u00e4=4;Avaa=5;Vanheneminen=6;Muokattu=7;Vastaa=8;L\u00e4het\u00e4 eteenp\u00e4in=9;K\u00e4sin=10;Lue=11;Sulje=12;Muokkaa=13;Muistuttaja=14;Konteinerin avaaminen=15","13806":"V\u00e4\u00e4r\u00e4=0;On sama 1=1;Ei ole sama 1;On sama 2;Ei ole sama 2;On sama 3;Ei ole sama 3;Suurempi kuin 1;Pienempi kuin 1;Suurempi kuin 2;Pienempi kuin 2;Suurempi kuin 3;Pienempi kuin 3;On j\u00e4senen\u00e4=21;Ei ole j\u00e4senen\u00e4;On olemassa=31;Ei ole olemassa;Sis\u00e4lt\u00e4\u00e4=41;Ei sis\u00e4ll\u00e4;Alkaa=51;Ei ala;Loppuu=61;Ei lopu;Muokattu 1=101;Ei muokattu 1;Muokattu 2;Ei muokattu 2;Muokattu 3;Ei muokattu 3;Muokattu 4;Ei muokattu 4;Muokattu 5;Ei muokattu 5;Muokattu 6;Ei muokattu 6;Muokattu 7;Ei muokattu 7;Muokattu 8;Ei muokattu 8;Muokattu 9;Ei muokattu 9;Muokattu 10;Ei muokattu 10;Muokattu 11;Ei muokattu 11;Muokattu 12;Ei muokattu 12;Muokattu 13;Ei muokattu 13;Muokattu 14;Ei muokattu 14;Muokattu 15;Ei muokattu 15","13807":"Kaikki ehdot;Joku ehto","13810":"----=0;Vastaanottajaluettelo;Kopioluettelo;Piilokopioluettelo;Edelleenl\u00e4hetysluettelo;Kaikki vastaanottajat;L\u00e4hett\u00e4j\u00e4;Kuka edelleenl\u00e4hett\u00e4j\u00e4 tahansa;Kenelle vastaanottajalle tahansa;Kenelle Kopiovastaanottajalle tahansa;Kenelle Piilokopiovastaanottajalle tahansa;Kenelle vastaanottajalle tahansa;Kohde;L\u00e4hetysp\u00e4iv\u00e4m\u00e4\u00e4r\u00e4;Saapumisp\u00e4iv\u00e4m\u00e4\u00e4r\u00e4;Luontip\u00e4iv\u00e4m\u00e4\u00e4r\u00e4;Muokkausp\u00e4iv\u00e4m\u00e4\u00e4r\u00e4;Viimeinen voimassaolop\u00e4iv\u00e4;Koko;Nimi;Aihe;Liiteluettelo;Mik\u00e4 liite tahansa;Runko;Internet-otsake;Historia;Kohteen tyyppi;Tiedostotyyppi;Lomaketyyppi;Kuvake;Mediatyyppi;Kent\u00e4n sis\u00e4lt\u00f6;Kentt\u00e4;Aina;Ei koskaan;Kun todenn\u00e4k\u00f6isyys on;Roskapostin tason ollessa;Konteinerin ollessa;K\u00e4ytt\u00e4j\u00e4n ollessa","13830":"=-1;\u00c4l\u00e4 tee mit\u00e4\u00e4n=0;Siirr\u00e4=1;Kopioi=2;Poista=3;Luo vastaus=4;Est\u00e4=5;L\u00e4het\u00e4 eteenp\u00e4in=6;Ohjaa edelleen=7;L\u00e4het\u00e4 hakulaiteviesti=8;L\u00e4het\u00e4 ilmoitus=9;L\u00e4het\u00e4 uusi viesti=10;Aseta kohteen hyv\u00e4ksynt\u00e4=11;Aseta kohteen lippu=12;Aseta kohde aukeamaan automaattisesti=13;Suojaa kohde poistamiselta=14;Aseta Vain luku-tilaan=54;Aseta kohteen ikoni=15;Aseta kohteen v\u00e4ri=16;Aseta kohteen prioriteetti=17;Aseta kohteen luokitus=18;Aseta kohteen vanhenemisaika=19;Aseta kohteen merkist\u00f6=20;Est\u00e4 oletustoiminnot=21;Aseta kohteen tekstikentt\u00e4=22;Aseta kohteen numerokentt\u00e4=23;Aseta kohteen p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4kentt\u00e4=24;Soita \u00e4\u00e4ni=25;Avaa varoituslaatikko=26;Pyyd\u00e4 vahvistus ennen jatkamista=27;Lis\u00e4\u00e4 valittu nimi k\u00e4ytt\u00f6oikeusluetteloon=28;Poista valittu nimi k\u00e4ytt\u00f6oikeusluettelosta=29;Anna valitulle nimelle k\u00e4ytt\u00f6oikeudet=30;Peruuta valitulta nimelt\u00e4 k\u00e4ytt\u00f6oikeudet=31;Lis\u00e4\u00e4 valittu nimi osoitekirjaani=32;Poista valittu nimi osoitekirjastani=33;Julkaise viestialue valitulle nimelle=34;Poista viestialueen julkaisu valitulta nimelt\u00e4=35;Lis\u00e4\u00e4 valittu nimi postitusluettelooni=36;Poista valittu nimi postitusluettelostani=37;Lis\u00e4\u00e4 valittu nimi yhteiseen postitusluetteloon=38;Poista valittu nimi yhteisest\u00e4 postitusluettelosta=39;Lis\u00e4\u00e4 valittu nimi k\u00e4ytt\u00e4j\u00e4ryhm\u00e4\u00e4n=40;Poista valittu nimi k\u00e4ytt\u00e4j\u00e4ryhm\u00e4st\u00e4=41;Tee merkint\u00e4 lokiin=42;Aseta aihe=43;Pys\u00e4yt\u00e4 s\u00e4\u00e4nn\u00f6n suorittaminen=44;Suorita FirstClass-skripti=45;Suorita apuohjelma=46;Muuta lomaketyyppi=47;Aseta nimi=48;Linkit\u00e4=49;Kopioi laskuri=50;Linkit\u00e4 henkil\u00f6=51;Avaa valitsin=52;Aseta kohteen tyyppi=53;Aseta n\u00e4kym\u00e4=55"}' return str def spitManagedTasksForm(): str = '"FORM":{"ID":20508,"1012":"-=0;Toimeksiannettu=6;Hyv\u00e4ksytty=7;K\u00e4sittelyss\u00e4=2;Valmis=1;Odottaa=3;Lyk\u00e4tty=4;Peruttu=5"}' return str itemsStrIO = StringIO() jsonStr = '' myMLItem = fcp.MyMLItem thisWebID = myMLItem.WebID() type = myMLItem.Type() subType = myMLItem.SubType() fType,forceColumnarValue = fcp.GetEscapedFormField(13395,0) bForceColumnar = subType==20 or subType==77 or (forceColumnarValue==1 and type == fcpdefs.oMailBox) windowTitle = webutil.stripNone(fcp, fcpdefs.dObjName) nFiles = fcp.NFiles if nFiles==None: nFiles = 0 nFolders = fcp.NFolders if nFolders==None: nFolders = 0 view = fcp.view if view==None: view = 0 nUpperPaneItems = 0 # render for a new window or just add more records bFullPage = False if (Page=='NEXT' or Page=='PREVIOUS' or Page=='ALL') else True bIsThreadListing = True if Thread else False bShowingDeleted = True if Deleted=='' else False if subType==7 or subType==40 or type==fcpdefs.oMailBox: splitType = fcpdefs.viewInfo.splitVertical else: splitType, splitPos, splitPercent = fcp.GetSplitInfo() if Navigator=="1": bIsViewByIcon = True navigatorString = 'fcNavigator="1" ' else: bIsViewByIcon = fcp.IsViewByIcon() if (not bForceColumnar and not bShowingDeleted and subType!=7 and subType!=40 and subType!=66 and type!=fcpdefs.oMailBox) else False navigatorString = '' ratingType = fcp.solicitationMethod if not ratingType: ratingType = 0 parentWebID = myMLItem.ParentWebID() if parentWebID: parentWebIDStr = 'data-x-fcp-parentid="'+parentWebID+'"' else: parentWebIDStr = '' options = fcp.options if options==None: options = 0 if bForceColumnar: options = options | 0x0200 if subList!=None: nItems = len(subList) for i in range(nItems): item = subList[i] if item: itemsStrIO.write(item.AsJSONArrayItem(mlitem.sendAll,(client.serverTZ,client.clientTZ)) + ',') if not item.IsContainer() and item.IsUpperPaneItem(): nUpperPaneItems += 1 else: i = 0 item = fcp.GetNthMLItem(i) while item: itemsStrIO.write(item.AsJSONArrayItem(mlitem.sendAll,(client.serverTZ,client.clientTZ)) + ',') if not item.IsContainer() and item.IsUpperPaneItem(): nUpperPaneItems += 1 i = i + 1 item = fcp.GetNthMLItem(i) if bFullPage: jsonStr += '{"MYMLITEM":'+myMLItem.AsJSONArrayItem(mlitem.sendAll,(client.serverTZ,client.clientTZ))+',"NFILES":'+str(nFiles)+',"NFOLDERS":'+str(nFolders)+',"NUPPERPANEITEMS":'+str(nUpperPaneItems)+',"RIGHTS":'+str(fcp.rights) jsonStr += ',"VIEW":'+str(view)+',"OPTIONS":'+str(options)+',"RATINGTYPE":'+str(ratingType) if subType==29: jsonStr += ','+spitRulesForm() elif subType==77: jsonStr += ','+spitManagedTasksForm() formData = fcp.FormFieldDataAsJSON() if formData!=None: jsonStr += ','+formData else: fType,colLayout = fcp.GetEscapedFormField(13100) if colLayout==None or len(colLayout)==0: fType,colLayout = fcp.GetEscapedFormField(13000) if colLayout and len(colLayout): colLayoutBase64 = base64.standard_b64encode(colLayout) jsonStr += ',"FORMDATA":{"13100":{"b64":"'+colLayoutBase64+'"}}' jsonStr += ',"MLDS":[' else: jsonStr += '{"MLDS":[' strOut = itemsStrIO.getvalue() itemsStrIO.close() lenStrOut = len(strOut) if lenStrOut>0 and strOut[lenStrOut-1]==',': strOut = strOut[0:lenStrOut-1] jsonStr += strOut + ']}' if bFullPage: fldrStyle = '' if nFolders else ' style="display:none;"' upperPaneStyle = '' if nUpperPaneItems else ' style="display:none;"' bIsColumnView = True if Columnar=="1" and (((options & 0x200) != 0 and not (subType==67 or subType==66 or subType==33) and not bShowingDeleted) or (subType==40 or subType==32 or subType==42 or subType==29 or subType==20)) else False bLowerLayoutIsSet = fcp.UseLowerLayout() bUseLowerLayout = True if (bIsColumnView and bLowerLayoutIsSet) or (not bIsColumnView and bLowerLayoutIsSet) else False bSplitView = not bShowingDeleted and not bIsViewByIcon and not subType==16 bHideSplit = bSplitView and (bIsColumnView or subType==67 or subType==66 or subType==33 or subType==20 or type==19) if Retrieve=='SUMMARY': extraData = 'data-x-fc-viewitems="0x0008"' elif bShowingDeleted: extraData = 'data-x-fc-viewitems="0x0007" data-x-fcp-keepopen="true"' elif bIsViewByIcon and navigatorString == '': extraData = 'data-x-fc-viewitems="0x0003"' elif subType==42: extraData = 'data-x-fc-viewitems="0x0007"' elif splitType==fcpdefs.viewInfo.splitNone: extraData = 'data-x-fc-viewitems="0x0003"' else: extraData = '' containerClasses = '' listClasses = ' fc-servobj-view fc-scrolling-view' if bShowingDeleted or bIsThreadListing or subType==42 or type==19: extraData = extraData + ' data-x-fc-getting-more-items=1' wrapperClassList = 'fc-views-wrapper' if bShowingDeleted or subType==42: listClasses += ' fc-only-deleted' if not bShowingDeleted: tbOptions = {'bIsViewByIcon':bIsViewByIcon,'bSplitView':bSplitView,'bHideSplit':bHideSplit,'bShowingDeleted':(bShowingDeleted or subType==42),'nUpperPaneItems':nUpperPaneItems,'bIsColumnView':bIsColumnView,'bIsThreadListing':bIsThreadListing}; toolbar.create(fcp,tbOptions) if subType==66: wrapperData = 'data-x-fc-tab-name="cmd_ShowFeed"' elif subType==33: wrapperData = 'data-x-fc-tab-name="cmd_ShowBlogs"' elif type==19: wrapperData = 'data-x-fc-tab-name="cmd_ShowHitListContent"' extraData = extraData + ' data-x-fcp-updatehandler="FC.updateSearchStatus"' else: wrapperData = '' if fcp.solicitationMethod: extraData = extraData + ' data-x-fcp-ratingtype="'+str(fcp.solicitationMethod)+'"' context.write('