## -*- 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":"Habilitado","v":1},"13801":"=-1;Recibir=0;Enviar=1;Crear=2;Eliminar=3;Mover=4;Abrir=5;Caducidad=6;Modificado=7;Respuesta=8;Reenv\u00edo=9;Manual=10;Lectura=11;Cerrar=12;Editar=13;Aviso=14;Abrir contenedor=15","13806":"Invalido=0;Iguales 1=1;Distinto 1;Igual 2;Distinto 2;Igual 3;Distinto 3;Mayor que 1;Menor que 1;Mayor que 2;Menor que 2;Mayor que 3;Menor que 3;Miembro de=21;No es miembro de;Existe=31;No existe;Contiene=41;No contiene;Empezar con=51;No empieza con;Termina con=61;No termina con;Personalizado 1=101;No personalizado 1;Personalizado 2;No personalizado 2;Personalizado 3;No personalizado 3;Personalizado 4;No personalizado 4;Personalizado 5;No personalizado 5;Personalizado 6;No personalizado 6;Personalizado 7;No personalizado 7;Personalizado 8;No personalizado 8;Personalizado 9;No personalizado 9;Personalizado 10;No personalizado 10;Personalizado 11;No personalizado 11;Personalizado 12;No personalizado 12;Personalizado 13;No personalizado 13;Personalizado 14;No personalizado 14;Personalizado 15;No personalizado 15","13807":"Todos los criterios;Cualquier criterio","13810":"----=0;La lista Para;La lista Cc;La lista Cco;La lista de reenv\u00edo;Todos los destinatarios;El remitente;Cualquier reenv\u00edo;Cualquier nombre Para;Cualquier nombre Cc;Cualquier nombre Cco;Cualquier destinatario;El objeto;La fecha de env\u00edo;La fecha de recepci\u00f3n;La fecha de creaci\u00f3n;La \u00faltima fecha de modificaci\u00f3n;La fecha de caducidad;El tama\u00f1o;El nombre;El asunto;La lista de adjuntos;Cualquier adjunto;El cuerpo;La cabecera de Internet;La historial;El tipo de objeto;El tipo de fichero;El tipo de pantalla;El icono;El tipo de medio;El dato de campo;Un campo;Siempre;Nunca;Cuando la probabilidad es;Cuando el nivel de SPAM es;Cuando el contenedor;Cuando el usuario","13830":"=-1;No hacer nada=0;Mover=1;Copiar=2;Eliminar=3;Generar respuesta=4;Rechazar=5;Reenviar=6;Redireccionar=7; Enviar mensaje a busca=8;Enviar notificaci\u00f3n=9;Enviar mensaje nuevo=10;Establecer aprobado para este elemento=11;Establecer s\u00f3lo lectura para este elemento=12;Establecer apertura autom\u00e1tica para este elemento=13;Proteger este elemento contra eliminado=14;Hacer s\u00f3lo lectura=54;Establecer el icono para este elemento=15;Establecer el color para este elemento=16;Establecer la prioridad para este elemento=17;Establecer la sensibilidad para este elemento=18;Establecer el periodo de caducidad para este elemento=19;Establecer el juego de caracteres para este elemento=20;Suprimir las acciones por defecto=21;Establecer un campo de cadena para este elemento=22;Establecer un campo num\u00e9rico para este elemento=23;Establecer un campo fecha para este elemento=24;Escuchar un sonido=25;Abrir una pantalla de aviso=26;Obtener confirmaci\u00f3n antes de proceder=27;A\u00f1adir el nombre seleccionado a la lista de permisos=28;Quitar el nombre seleccionado a la lista de permisos=29;Entregar permisos al nombre seleccionado=30;Quitar permisos al nombre seleccionado=31;A\u00f1adir el nombre seleccionado a mi libreta de direcciones=32;Quitar el nombre seleccionado de mi libreta de direcciones=33;Suscribir el nombre seleccionado a una conferencia=34;Deshacer la suscripci\u00f3n del nombre seleccionado de una conferencia=35;A\u00f1adir el nombre seleccionado a mi lista de correo=36;Quita el nombre seleccionado de mi lista de correo=37;A\u00f1adir este nombre a una lista global de correo=38;Quitar este nombre de una lista global de correo=39;A\u00f1adir este nombre a un grupo de usuarios=40;Quitar este nombre de un grupo de usuarios=41; Realizar entrada en el log de reglas=42;Establecer asunto=43;Parar procesamiento de regla=44;Ejecutar un script de FirstClass=45;Ejecutar aplicaci\u00f3n de ayuda=46;Cambiar tipo de pantalla=47;Establecer nombre=48;Vincular=49;Copiar contador=50;Vincular una persona=51;Abrir seleccionador=52;Establecer tipo de objeto=53;Establecer vista=55"}' return str def spitManagedTasksForm(): str = '"FORM":{"ID":20508,"1012":"-=0;Asignado=6;Aceptado=7;En progreso=2;Completado=1;Esperando=3;Diferido=4;Cancelado=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('