## -*- 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":"Aktiverad","v":1},"13801":"=-1;Mottag=0;S\u00e4nd=1;Skapa=2;Radera=3;Flytta=4;\u00d6ppna=5;Raderingstid=6;Modifierad=7;Besvara=8;Vidares\u00e4nd=9;Manuell=10;L\u00e4s=11;St\u00e4ng=12;Redigera=13;P\u00e5minnelse=14;Beh\u00e5llare \u00f6ppnas=15","13806":"Ogiltig=0;Lika med 1=1;Inte lika med 1;Lika med 2;Inte lika med 2;Lika med 3;Inte lika med 3;St\u00f6rre \u00e4n 1;Mindre \u00e4n 1;St\u00f6rre \u00e4n 2;LessThan 2;St\u00f6rre \u00e4n 3;Mindre \u00e4n 3;Medlem av upps\u00e4ttning=21;Inte medlem av upps\u00e4ttning;Finns=31;Finns inte;Inneh\u00e5ller=41;Inneh\u00e5ller inte;B\u00f6rjar med=51;B\u00f6rjar inte med;Slutar med=61;Slutar inte med;Egen 1=101;Ej egen 1;Egen 2;Ej egen 2;Egen 3;Ej egen 3;Egen 4;Ej egen 4;Egen 5;Ej egen 5;Egen 6;Ej egen 6;Egen 7;Ej egen 7;Egen 8;Ej egen 8;Egen 9;Ej egen 9;Egen 10;Ej egen 10;Egen 11;Ej egen 11;Egen 12;Ej egen 12;Egen 13;Ej egen 13;Egen 14;Ej egen 14;Egen 15;Ej egen 15","13807":"Alla kriterier;N\u00e5got kriterium","13810":"----=0;Till-listan;Kopialistan;Hemlig Kopialistan;Vidares\u00e4ndningslistan;Alla mottagare;Avs\u00e4ndaren;N\u00e5gon vidares\u00e4ndare;N\u00e5got tillnamn;N\u00e5got kopianamn;N\u00e5got Bcc-namn;N\u00e5gon mottagare;Objektet;S\u00e4ndningsdatum;Mottagetdatum;Skapatdatum;Senast \u00e4ndrad-datum;Raderingsdatum;Storleken;Namnet;\u00c4rendet;Bilagelistan;N\u00e5gon bilaga;Meddelandekroppen;Internetbrevhuvudet;Historiken;Objekt-typen;Filtypen;Formul\u00e4rtypen;Ikonen;Mediatypen;F\u00e4ltdatan;Ett f\u00e4lt;Alltid;Aldrig;N\u00e4r oddsen \u00e4r;N\u00e4r SPAM-niv\u00e5n \u00e4r;N\u00e4r beh\u00e5llaren;N\u00e4r anv\u00e4ndaren","13830":"=-1;G\u00f6r ingenting=0;Flytta=1;Kopiera=2;Radera=3;Skapa svar=4;Avvisa=5;Vidares\u00e4nd=6;Omdirigera=7;S\u00e4nd s\u00f6karmeddelande=8;S\u00e4nd notifikation=9;S\u00e4nd nytt meddelande=10;S\u00e4tt objektets godk\u00e4nnande=11;S\u00e4tt objektets l\u00e4sflagga=12;S\u00e4tt objektets \u00f6ppna automatiskt=13;Skydda detta objekt fr\u00e5n radering=14;G\u00f6r skrivskyddat=54;S\u00e4tt objektets ikon=15;S\u00e4tt objektets f\u00e4rg=16;S\u00e4tt objektets prioritet=17;S\u00e4tt objektets k\u00e4nslighet=18;S\u00e4tt objektets raderingsperiod=19;S\u00e4tt objektets teckentabell=20;H\u00e5ll tillbaka standard h\u00e4ndelser=21;S\u00e4tt ett textf\u00e4lt i objektet=22;S\u00e4tt ett numeriskt f\u00e4lt i objektet=23;S\u00e4tt ett datumf\u00e4lt i objektet=24;Spela ett ljud=25;\u00d6ppna ett notifikationsruta=26;F\u00e5 bekr\u00e4ftelse=27;L\u00e4gg till det valda namnet till beh\u00f6righetslistan=28;Ta bort det valda namnet fr\u00e5n beh\u00f6righetslistan=29;Ge beh\u00f6righet till det valda namnet=30;Ta bort beh\u00f6righet fr\u00e5n det valda namnet=31;L\u00e4gg till det valda namnet i min kontaktmapp=32;Ta bort det valda namnet fr\u00e5n min kontaktmapp=33;Ge det valda namnet en prenumeration p\u00e5 konferensen=34;Ta bort det valda namnet ut prenumerationslitan fr\u00e5n konferensen=35;L\u00e4gg till det valda namnet i min s\u00e4ndlista=36;Ta bort det valda namnet ur min s\u00e4ndlista=37;L\u00e4gg till detta namn i en global s\u00e4ndlista=38;Ta bort detta namn ur en global s\u00e4ndlista=39;L\u00e4gg till detta namn i en anv\u00e4ndargrupp=40;Ta bort detta namn ur en anv\u00e4ndargrupp=41;Skriv i regelloggen=42;S\u00e4tt \u00e4rende=43;Stopp regelk\u00f6rning=44;K\u00f6r ett FirstClass skript=45;K\u00f6r en hj\u00e4lptill\u00e4mpning=46;\u00c4ndra formul\u00e4rtyp=47;S\u00e4tt namn=48;L\u00e4nka=49;Kopiera r\u00e4knare=50;L\u00e4nka person=51;\u00d6ppna v\u00e4ljare=52;S\u00e4tt objekttyp=53;S\u00e4tt vy=55"}' return str def spitManagedTasksForm(): str = '"FORM":{"ID":20508,"1012":"-=0;Assigned=6;Bekr\u00e4ftad=7;Bearbetas=2;Slutf\u00f6rd=1;V\u00e4ntande=3;Uppskjuten=4;Avbruten=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('
') if bIsViewByIcon: listClasses += ' viewbyicon' containerClasses += ' fc-view-single' context.write('
') else: if bShowingDeleted or subType==16: listClasses += ' fc-view-no-schema' elif not subType==42 and splitType!=fcpdefs.viewInfo.splitNone: context.write('
') listClasses += ' viewbylist' if bUseLowerLayout: listClasses += ' fc-view-layout-lower' else: listClasses += ' fc-view-layout-upper' if bSplitView: containerClasses += ' fc-view-splitleft' else: listClasses += ' fc-view-no-split' containerClasses += ' fc-view-single' if bIsColumnView: listClasses += ' fc-view-columns' containerClasses += ' fc-columnar-list' context.write('') if bIsColumnView: context.write('') context.write('') if bIsViewByIcon: context.write('') context.write('') else: context.write('') context.write('
') if not bShowingDeleted or subType==16 or subType==42: context.write('
') if bSplitView: previewClass = 'fc-preview fc-view-splitright' splitClass = '' if bHideSplit: previewClass += ' fc-hidden' splitClass = ' fc-hidden' context.write('
') context.write('
') if not bShowingDeleted or subType==16 or subType==42: context.write('
') context.write('
') context.write('
') else: context.write('') %>