## -*- coding: utf_8 -*- <%namespace name="fcnames" file="fcnames.html" import="renderFCNames"/> <% from fcp import fcpdefs from fcutils import util from fcp import mlitem from fcws.fcweb import webutil from extension import clib import json stripNone = webutil.stripNone parseEnumerations = webutil.parseEnumerations valueForFieldWithKey = webutil.valueForFieldWithKey myMLItem = fcp.MyMLItem thisWebID = myMLItem.WebID() sessionObject = client.FindServerObjectByObjID(fcpdefs.SESSIONDATAOBJID) canEdit = None editableVal = util.getValueFromDictionary('Editable', pageargs, None) eStatus = myMLItem.GetEStatus() if not (eStatus & fcpdefs.BackVersion) and editableVal=='0': parent = client.FindServerObjectByObjID(fcp.parentObjID) if parent: canEdit = True if parent.rights & fcpdefs.acWrite else False if canEdit is None: canEdit = True if fcp.rights & fcpdefs.acWrite else False isEditable = canEdit if isEditable and not editableVal=='1': isEditable = False editableClass = " editable" if isEditable else " readonly" shortInfoStatus = myMLItem.Status() protected = shortInfoStatus & fcpdefs.Protected jsonStr = fcp.MeAsJSON() iconID = myMLItem.IconID() parentID = myMLItem.ParentWebID() threadID = util.binToString(myMLItem.GetField(fcpdefs.dThreadID,''), False)[0] fType,subject = fcp.GetEscapedFormField(fcpdefs.dSubject) if subject is None: subject = "" fType,objName = fcp.GetEscapedFormField(fcpdefs.dObjName) if objName is None: objName = "" windowTitle = subject if subject != "" else objName if objName != "" else " " fType,mtgAlarm = fcp.GetEscapedFormField(fcpdefs.mtgAlarm) if mtgAlarm is None: mtgAlarm = 0 fType,mtgAlarmTimeBefore = fcp.GetEscapedFormField(fcpdefs.mtgAlarmTimeBefore) if mtgAlarmTimeBefore is None: mtgAlarmTimeBefore = 0 #TZ is: 0 on existing event when not set; None on a new event fType,mtgTimeZone = fcp.GetEscapedFormField(fcpdefs.mtgTimeZone) clientTZ = client.clientTZ fType,serverTZ = sessionObject.GetEscapedFormField(fcpdefs.serverTimeZone) if serverTZ is None or serverTZ == 0: serverTZ = mtgTimeZone = clientTZ = 0 else: if clientTZ == 0 or clientTZ is None: clientTZ = serverTZ if mtgTimeZone == 0: mtgTimeZone = serverTZ elif mtgTimeZone is None: mtgTimeZone = clientTZ fType,mtgStartDate = fcp.GetEscapedFormField(fcpdefs.mtgStartDate) if mtgStartDate is not None: mtgStartDate = mtgStartDate & 0xFFFFFFFF if (serverTZ != clientTZ): clientStartTime = clib.ConvertTime(mtgStartDate,serverTZ,clientTZ) else: clientStartTime = mtgStartDate if ( serverTZ != mtgTimeZone ): meetingStartTime = clib.ConvertTime(mtgStartDate,serverTZ,mtgTimeZone) else: meetingStartTime = mtgStartDate else: mtgStartDate = clientStartTime = meetingStartTime = 0 fType,mtgEndTime = fcp.GetEscapedFormField(fcpdefs.mtgEndTime) if mtgEndTime is not None: mtgEndTime = mtgEndTime & 0xFFFFFFFF if (serverTZ != clientTZ): clientEndTime = clib.ConvertTime(mtgEndTime,serverTZ,clientTZ) else: clientEndTime = mtgEndTime if ( serverTZ != mtgTimeZone ): meetingEndTime = clib.ConvertTime(mtgEndTime,serverTZ,mtgTimeZone) else: meetingEndTime = mtgEndTime else: mtgEndTime = clientEndTime = meetingEndTime = 0 fType,mtgDuration = fcp.GetEscapedFormField(fcpdefs.mtgDuration) if mtgDuration is None: mtgDuration = 0 mtgDuration = mtgDuration & 0xFFFFFFFF fType,msgOptions = fcp.GetEscapedFormField(fcpdefs.dMsgOptions) visibility = msgOptions & 0x1C00 priority = msgOptions & 0xE000 msgOptions = msgOptions - visibility - priority visibility = visibility / 0x400 priority = priority / 0x2000 fType,mtgColour = fcp.GetEscapedFormField(fcpdefs.mtgColour) if mtgColour is None or mtgColour is 0: mtgColour = "#FFFFFF"; else: mtgColour = mtgColour & 0xFFFFFFFF mtgColour = "#%06X" % (mtgColour>>8) mtgRepeatUntil = fcp.GetEscapedFormField(fcpdefs.mtgRepeatUntil)[1] if mtgRepeatUntil is not None: mtgRepeatUntil = mtgRepeatUntil & 0xFFFFFFFF if ( serverTZ != mtgTimeZone ): mtgRepeatUntil = clib.ConvertTime(mtgRepeatUntil,serverTZ,mtgTimeZone) subjectID = 'fcfid-'+str(fcpdefs.dSubject) objNameID = 'fcfid-'+str(fcpdefs.dObjName) mtgIconID = 'fcfid-' + str(3002) mtgTaskID = 'fcfid-'+str(fcpdefs.mtgTask) mtgCategoryID = 'fcfid-'+str(fcpdefs.mtgCategory) mtgStartDateID = 'fcfid-'+str(fcpdefs.mtgStartDate) mtgEndTimeID = 'fcfid-'+str(fcpdefs.mtgEndTime) mtgDurationID = 'fcfid-'+str(fcpdefs.mtgDuration) mtgColorID = 'fcfid-'+str(fcpdefs.mtgColour) mtgTimeZoneID = 'fcfid-'+str(fcpdefs.mtgTimeZone) greetingTypeID = 'fcfid-8202' greetingStatusID = 'fcfid-8200' fieldEnableStr = '' if isEditable else 'disabled="disabled"' iconEnableStr = 'onclick="WM.handleCmd(this)" data-x-fcp-cmd="cmd_IconPicker"' if isEditable else '' helpTextEnableStr = '' if isEditable else 'style="display:none;"' jsonStrLen = len(jsonStr) jsonStr = jsonStr[0:jsonStrLen-1] if mtgDuration is None: mtgDurationInitVal = "None" else: mtgDurationInitVal = mtgDuration endif if mtgRepeatUntil is None: mtgRepeatUntilInitVal = "None" else: mtgRepeatUntilInitVal = mtgRepeatUntil endif calInitForm = { "clientStartTime":clientStartTime, "mtgStartDate":mtgStartDate, "meetingStartTime":meetingStartTime, "mtgTimeZone":mtgTimeZone, "clientTZ":clientTZ, "serverTZ":serverTZ, "clientEndTime":clientEndTime, "mtgEndTime":mtgEndTime, "meetingEndTime":meetingEndTime, "mtgDuration":mtgDurationInitVal, "mtgAlarm":mtgAlarm, "mtgAlarmTimeBefore":mtgAlarmTimeBefore, "mtgTaskStatus":0, "mtgTaskCompletedDate":"None", "mtgRepeatUntil":mtgRepeatUntilInitVal, "msgOptions":msgOptions, "threadID":str(threadID), "iconID":iconID, "fcpRetCode":client.fcpRetCode } calInitFormJsonStr = json.dumps(calInitForm) jsonStr = jsonStr+',"FCCalInitForm":'+calInitFormJsonStr+'}' %>
 
%if isEditable: %elif canEdit: %endif
%if isEditable: %else: ${objName} %endif
General
Comments:
%if isEditable: %else: ${subject} %endif
Customize greeting
If you want this greeting to play for specific phone numbers, list them here. Separate multiple numbers with commas.
Numbers dialed:
%if isEditable: %else: ${stripNone(fcp,8210)} %endif
Plays this greeting when you receive a call from one of these numbers
Caller numbers:
%if isEditable: %else: ${stripNone(fcp,8211)} %endif Require unknown caller to press a key
Scheduling
Starts:
Ends:
Duration:
Repeat interval:
Color:
Time zone:
%if serverTZ != 0: %else: %endif
Optional Handling
After greeting plays Record message
Record and make urgent
Transfer caller to the zero revert number
Transfer caller to this number: 
Disconnect
Caller-initiated transfer Allow caller to transfer   
Override transfer menu preferences   
Addressing options  
Faxes
Use this tab to specify how incoming fax calls that get this greeting are handled.
Initiate fax CNG tones
%if isEditable:
%else:
%endif
    %if isEditable: %else:
    %endif