Conjunto de mudanças 7608 no repositório publico


Ignorar:
Timestamp:
02/08/2014 23:16:04 (5 anos atrás)
Autor:
gustavolepri
Mensagem:

correção do bug no momento de salvar o expediente

Localização:
ILSAPL/trunk/skins/sk_sapl
Arquivos:
5 editados

Legenda:

Não Modificado
Adicionado
Removido
  • ILSAPL/trunk/skins/sk_sapl/cadastros/sessao_plenaria/expedientes/expedientes_index_html.dtml

    r7568 r7608  
    77<script type="text/javascript">
    88    $(document).ready(function() {
    9       $.cleditor.defaultOptions.width = "100%";
    10       $.cleditor.defaultOptions.height = "100%";
    11       $.cleditor.defaultOptions.controls = "bold italic underline strikethrough style superscript indent outdent bullets numbering alignleft center alignright justify image undo redo cut copy pastetext print source";
    12       $("textarea").cleditor()[0].focus();
     9        $.cleditor.defaultOptions.width = "100%";
     10        $.cleditor.defaultOptions.height = "100%";
     11        $.cleditor.defaultOptions.controls = "bold italic underline strikethrough style superscript indent outdent bullets numbering alignleft center alignright justify image undo redo cut copy pastetext print source";
     12     
     13        $("textarea").cleditor()[0].focus();
    1314    });
    1415</script>
    1516
    16 <script type="text/javascript" language="Javascript">
    17  function campos_criticar(){
    18 
    19 var form = document.expediente_form;
    20 var regexp_digitos = /\D+/;
    21 
    22 form.submit();
    23 }
     17<script type="text/javascript">
    2418
    2519    function submeter(endereco){
     
    4842            <legend><dtml-var nom_expediente></legend>
    4943            <input type="hidden" name="hdn_cod_expediente" value="<dtml-var cod_expediente missing>" />
    50             <table width="98%">
    51                 <tr>
    52                     <td>
    53                         <label for="txa_txt_expediente">Conteúdo do expediente</label>
    54                         <dtml-if expr="zsql.expediente_obter_zsql(cod_sessao_plen=cod_sessao_plen,cod_expediente=cod_expediente, ind_excluido=0)">
    55                             <dtml-in expr="zsql.expediente_obter_zsql(cod_sessao_plen=cod_sessao_plen,cod_expediente=cod_expediente, ind_excluido=0)">
    56                                 <textarea name="txa_txt_expediente" id="<dtml-var cod_expediente missing>" cols="60"><dtml-var txt_expediente missing></textarea>
    57                             </dtml-in>
    58                         <dtml-else>
    59                             <textarea name="txa_txt_expediente" id="<dtml-var cod_expediente missing>" cols="60"></textarea>
    60                         </dtml-if>
    61                     </td>
    62                 </tr>
    63             </table>
     44            <label for="txa_txt_expediente">Conteúdo do expediente</label>
     45            <dtml-if expr="zsql.expediente_obter_zsql(cod_sessao_plen=cod_sessao_plen,cod_expediente=cod_expediente, ind_excluido=0)">
     46                <dtml-in expr="zsql.expediente_obter_zsql(cod_sessao_plen=cod_sessao_plen,cod_expediente=cod_expediente, ind_excluido=0)">
     47                    <textarea name="txa_txt_expediente" id="<dtml-var cod_expediente missing>" cols="60"><dtml-var txt_expediente missing></textarea>
     48                </dtml-in>
     49            <dtml-else>
     50                <textarea name="txa_txt_expediente" id="<dtml-var cod_expediente missing>" cols="60"></textarea>
     51            </dtml-if>
    6452        </fieldset>
    6553    </dtml-in>
    66     <table align="center">
    67         <tr>
    68             <td>
    69                 <input class="botao" type="submit" name="button" value="Salvar" />
    70             </td>
    71         </tr>
    72     </table>
     54    <p align="center">
     55        <input class="botao" type="submit" name="button" value="Salvar" />
     56    </p>
     57
    7358</form>
    7459<dtml-var standard_html_footer>
  • ILSAPL/trunk/skins/sk_sapl/cadastros/sessao_plenaria/sessao_plenaria_form.dtml

    r7568 r7608  
    1616    }
    1717
    18 function campos_criticar(){
    19 
    20     var form = document.sessao_plenaria_form;
    21     var regexp_digitos = /\D+/;
    22 
    23     if (form.lst_tip_sessao_plen.selectedIndex == 0){
    24           alert("Escolha o tipo de sessao plenaria!");
    25           form.lst_tip_sessao_plen.focus();
    26           return false;
    27     }
    28 
    29     if (form.lst_num_legislatura.selectedIndex == -1) {
    30          alert("Escolha legislatura!");
    31          form.lst_num_legislatura.focus();
    32          return false;
    33     }
    34 
    35     if (form.lst_sessao_leg.selectedIndex == -1) {
    36          alert("Escolha a sessao legislativa!");
    37          form.lst_sessao_leg.focus();
    38          return false;
    39     }
    40 
    41     if (form.txt_dat_inicio_sessao.value == "") {
    42          alert("A data da sessao plenaria deve ser preenchida!");
    43          form.txt_dat_inicio_sessao.focus();
    44          return false;
    45     }
    46 
    47     if (form.txt_hr_inicio_sessao.value == "") {
    48          alert("A hora de inicio da sessao plenaria deve ser preenchida!");
    49          form.txt_hr_inicio_sessao.focus();
    50          return false;
    51     }
    52 
    53     if (form.txt_num_sessao_plen.value == "") {
    54          alert("O numero da sessao plenaria deve ser preenchido!");
    55          form.txt_num_sessao_plen.focus();
    56          return false;
    57     }
    58 
    59       form.submit();
    60   }
     18    function campos_criticar(){
     19
     20        var form = document.sessao_plenaria_form;
     21        var regexp_digitos = /\D+/;
     22
     23        if (form.lst_tip_sessao_plen.selectedIndex == 0){
     24            alert("Escolha o tipo de sessao plenaria!");
     25            form.lst_tip_sessao_plen.focus();
     26            return false;
     27        }
     28
     29        if (form.lst_num_legislatura.selectedIndex == -1) {
     30            alert("Escolha legislatura!");
     31            form.lst_num_legislatura.focus();
     32            return false;
     33        }
     34
     35        if (form.lst_sessao_leg.selectedIndex == -1) {
     36            alert("Escolha a sessao legislativa!");
     37            form.lst_sessao_leg.focus();
     38            return false;
     39        }
     40
     41        if (form.txt_dat_inicio_sessao.value == "") {
     42            alert("A data da sessao plenaria deve ser preenchida!");
     43            form.txt_dat_inicio_sessao.focus();
     44            return false;
     45        }
     46
     47        if (form.txt_hr_inicio_sessao.value == "") {
     48            alert("A hora de inicio da sessao plenaria deve ser preenchida!");
     49            form.txt_hr_inicio_sessao.focus();
     50            return false;
     51        }
     52
     53        if (form.txt_num_sessao_plen.value == "") {
     54            alert("O numero da sessao plenaria deve ser preenchido!");
     55            form.txt_num_sessao_plen.focus();
     56            return false;
     57        }
     58
     59        form.submit();
     60    }
    6161
    6262    function submeter(endereco){
     
    8383
    8484    function retornar(){
    85        location.href="sessao_plenaria_index_html"
     85        location.href="sessao_plenaria_index_html"
    8686    }
    8787
     
    9393        form.file_nom_arquivo_ata.disabled = !(form.radTI2[2].checked);
    9494    }
    95 //-->
     95    //-->
    9696</script>
    9797
     
    108108
    109109<dtml-if cod_sessao_plen>
    110  <h3 align="center"><dtml-var sessao_plenaria_header></h3>
    111  <dtml-var sessao_plenaria_menu>
     110    <h3 align="center"><dtml-var sessao_plenaria_header></h3>
     111    <dtml-var sessao_plenaria_menu>
    112112</dtml-if>
    113113
    114114<form action="sessao_plenaria_salvar_proc" name="sessao_plenaria_form" method="post" enctype="multipart/form-data">
    115   <input type="hidden" name="hdn_cod_sessao_plen" value="<dtml-var cod_sessao_plen missing>" />
    116   <input type="hidden" name="hdn_dat_sessao" value="<dtml-var dat_inicio missing>" />
    117   <input type="hidden" name="hdn_num_legislatura" value="<dtml-var num_legislatura missing>" />
    118   <input type="hidden" name="hdn_ind_iniciada" value="<dtml-var ind_iniciada missing>" />
    119   <input type="hidden" name="hdn_url" value="sessao_plenaria_mostrar_proc?cod_sessao_plen=<dtml-var cod_sessao_plen missing>&dat_inicio_sessao=<dtml-var dat_inicio missing>&num_legislatura=<dtml-var num_legislatura missing>&ind_iniciada=<dtml-var ind_iniciada missing>" />
    120   <input type="hidden" name="hdn_alterou" value="<dtml-if expr="REQUEST.has_key('mudou')">1<dtml-else>0</dtml-if>" />
    121    
    122     <fieldset>
    123         <legend>Dados Básicos</legend>
    124         <table>
    125             <tr>
    126                 <td>
    127                     <label for="txt_num_sessao_plen">N&uacute;mero </label><span class="campoObrigatorio">&nbsp;</span><br />
    128                         <dtml-in expr="zsql.numero_sessao_plenaria_obter_zsql()">
    129                             <dtml-call expr="REQUEST.set('num_sessao_plen', novo_numero)">
    130                         </dtml-in>
    131                         <dtml-unless num_sessao_plen>
    132                             <dtml-call num_sessao_plen>
    133                         </dtml-unless>
    134                         <input type="text" id="txt_num_sessao_plen" name="txt_num_sessao_plen" size="3" maxlength="3" value="<dtml-var num_sessao_plen missing null="1">" onChange="javascript:form.hdn_alterou.value=1" />
    135                     &nbsp;&nbsp;&nbsp;&nbsp;
    136                  </td>
    137                  <td>
    138                     <label for="lst_tip_sessao_plen">Tipo </label> <span class="campoObrigatorio">&nbsp;</span><br />
    139                     <select id="lst_tip_sessao_plen" name="lst_tip_sessao_plen">
    140                         <option value="0">
    141                           Selecione
    142                         </option>
    143                         <dtml-in expr="zsql.tipo_sessao_plenaria_obter_zsql()">
    144                             <option
    145                             <dtml-if expr="_.has_key('cod_sessao_plen') and _.int(tip_sessao)==_.int(sessao_plenaria_form.tip_sessao)">
    146                                 selected
    147                             </dtml-if>
    148                                 value="<dtml-var tip_sessao>"><dtml-var nom_sessao>
    149                             </option>
    150                         </dtml-in>
    151                     </select>
    152                 </td>
    153                 <td>
    154                     <label for="lst_num_legislatura">Legislatura <span class="campoObrigatorio">&nbsp;</span></label><br />
    155                     <select name="lst_num_legislatura" size="1"
    156                             onChange="atualiza_num_leg(document.sessao_plenaria_form.lst_num_legislatura[document.sessao_plenaria_form.lst_num_legislatura.selectedIndex].value,<dtml-var cod_sessao_plen missing="-1">)">
    157                         <option <dtml-if expr="_.has_key('num_legislatura')">
    158                                    <dtml-call expr="REQUEST.set('num_legislatura_sel', num_legislatura)">
    159                                    selected
    160                                    value="<dtml-var num_legislatura>">
    161                                <dtml-else>
    162                                    value="0">
    163                                 </dtml-if>
    164                         </option>     
    165                          <dtml-in expr="zsql.legislatura_obter_zsql(ind_excluido=0)">
    166                             <option
    167                             <dtml-if expr="(not _.has_key('num_legislatura_sel')) and _.has_key('cod_sessao_plen') and _.int(num_legislatura) == _.int(sessao_plenaria_form.num_legislatura)">
    168                                 selected
    169                                 <dtml-call expr="REQUEST.set('num_legislatura_sel', num_legislatura)">
    170                             </dtml-if>
    171                             <dtml-if expr="(not _.has_key('num_legislatura_sel') and (_.DateTime() >= dat_inicio and _.DateTime() <= dat_fim))
     115<input type="hidden" name="hdn_cod_sessao_plen" value="<dtml-var cod_sessao_plen missing>" />
     116<input type="hidden" name="hdn_dat_sessao" value="<dtml-var dat_inicio missing>" />
     117<input type="hidden" name="hdn_num_legislatura" value="<dtml-var num_legislatura missing>" />
     118<input type="hidden" name="hdn_ind_iniciada" value="<dtml-var ind_iniciada missing>" />
     119<input type="hidden" name="hdn_url" value="sessao_plenaria_mostrar_proc?cod_sessao_plen=<dtml-var cod_sessao_plen missing>&dat_inicio_sessao=<dtml-var dat_inicio missing>&num_legislatura=<dtml-var num_legislatura missing>&ind_iniciada=<dtml-var ind_iniciada missing>" />
     120<input type="hidden" name="hdn_alterou" value="<dtml-if expr="REQUEST.has_key('mudou')">1<dtml-else>0</dtml-if>" />
     121
     122<fieldset>
     123<legend>Dados Básicos</legend>
     124<table>
     125    <tr>
     126        <td>
     127            <label for="txt_num_sessao_plen">N&uacute;mero </label><span class="campoObrigatorio">&nbsp;</span><br />
     128            <dtml-in expr="zsql.numero_sessao_plenaria_obter_zsql()">
     129                <dtml-call expr="REQUEST.set('num_sessao_plen', novo_numero)">
     130            </dtml-in>
     131            <dtml-unless num_sessao_plen>
     132                <dtml-call num_sessao_plen>
     133            </dtml-unless>
     134            <input type="text" id="txt_num_sessao_plen" name="txt_num_sessao_plen" size="3" maxlength="3" value="<dtml-var num_sessao_plen missing null="1">" onChange="javascript:form.hdn_alterou.value=1" />
     135            &nbsp;&nbsp;&nbsp;&nbsp;
     136        </td>
     137        <td>
     138            <label for="lst_tip_sessao_plen">Tipo </label> <span class="campoObrigatorio">&nbsp;</span><br />
     139            <select id="lst_tip_sessao_plen" name="lst_tip_sessao_plen">
     140                <option value="0">
     141                    Selecione
     142                </option>
     143                <dtml-in expr="zsql.tipo_sessao_plenaria_obter_zsql()">
     144                    <option
     145                    <dtml-if expr="_.has_key('cod_sessao_plen') and _.int(tip_sessao)==_.int(sessao_plenaria_form.tip_sessao)">
     146                        selected
     147                    </dtml-if>
     148                    value="<dtml-var tip_sessao>"><dtml-var nom_sessao>
     149                </option>
     150                </dtml-in>
     151            </select>
     152        </td>
     153        <td>
     154            <label for="lst_num_legislatura">Legislatura <span class="campoObrigatorio">&nbsp;</span></label><br />
     155            <select name="lst_num_legislatura" size="1"
     156                    onChange="atualiza_num_leg(document.sessao_plenaria_form.lst_num_legislatura[document.sessao_plenaria_form.lst_num_legislatura.selectedIndex].value,<dtml-var cod_sessao_plen missing="-1">)">
     157            <option <dtml-if expr="_.has_key('num_legislatura')">
     158            <dtml-call expr="REQUEST.set('num_legislatura_sel', num_legislatura)">
     159            selected
     160            value="<dtml-var num_legislatura>">
     161            <dtml-else>
     162            value="0">
     163        </dtml-if>
     164            </option>
     165            <dtml-in expr="zsql.legislatura_obter_zsql(ind_excluido=0)">
     166                <option
     167                <dtml-if expr="(not _.has_key('num_legislatura_sel')) and _.has_key('cod_sessao_plen') and _.int(num_legislatura) == _.int(sessao_plenaria_form.num_legislatura)">
     168                    selected
     169                    <dtml-call expr="REQUEST.set('num_legislatura_sel', num_legislatura)">
     170                </dtml-if>
     171                <dtml-if expr="(not _.has_key('num_legislatura_sel') and (_.DateTime() >= dat_inicio and _.DateTime() <= dat_fim))
    172172                                        or (_.has_key('num_legislatura_sel') and num_legislatura == _.int(num_legislatura_sel))">
    173                                 selected
    174                                 <dtml-call expr="REQUEST.set('num_legislatura_sel', num_legislatura)">
    175                             </dtml-if>
    176                             value="<dtml-var num_legislatura>">
    177                             <dtml-var expr="pysc.periodo_legislatura_format_pysc(num_legislatura, dat_inicio, dat_fim)">
    178                             <dtml-if expr="(_.DateTime() >= dat_inicio) and (_.DateTime() <= dat_fim)"> (Atual) </dtml-if>
    179                             </option>
    180                          <dtml-else>
    181                             <option selected value="0">Selecione </option>
    182                                    <dtml-call expr="REQUEST.set('num_legislatura_sel', '-1')">
    183                          </dtml-in>
    184                     </select>
    185                 </td>
    186                 <td>
    187                     <label for="lst_sessao_leg">Sess&atilde;o Legislativa </label><span class="campoObrigatorio">&nbsp;</span><br />
    188                     <select name="lst_sessao_leg" size="1">
    189                     <dtml-in expr="zsql.sessao_legislativa_obter_zsql(num_legislatura=num_legislatura_sel, ind_excluido=0)">
    190                         <option
    191                         <dtml-if expr="_.has_key('cod_sessao_plen') and _.int(cod_sessao_leg) == _.int(sessao_plenaria_form.cod_sessao_leg)">
     173                    selected
     174                    <dtml-call expr="REQUEST.set('num_legislatura_sel', num_legislatura)">
     175                </dtml-if>
     176                value="<dtml-var num_legislatura>">
     177            <dtml-var expr="pysc.periodo_legislatura_format_pysc(num_legislatura, dat_inicio, dat_fim)">
     178            <dtml-if expr="(_.DateTime() >= dat_inicio) and (_.DateTime() <= dat_fim)"> (Atual) </dtml-if>
     179            </option>
     180            <dtml-else>
     181            <option selected value="0">Selecione </option>
     182            <dtml-call expr="REQUEST.set('num_legislatura_sel', '-1')">
     183            </dtml-in>
     184            </select>
     185        </td>
     186        <td>
     187            <label for="lst_sessao_leg">Sess&atilde;o Legislativa </label><span class="campoObrigatorio">&nbsp;</span><br />
     188            <select name="lst_sessao_leg" size="1">
     189                <dtml-in expr="zsql.sessao_legislativa_obter_zsql(num_legislatura=num_legislatura_sel, ind_excluido=0)">
     190                    <option
     191                    <dtml-if expr="_.has_key('cod_sessao_plen') and _.int(cod_sessao_leg) == _.int(sessao_plenaria_form.cod_sessao_leg)">
    192192                        selected
    193193                        <dtml-call expr="REQUEST.set('prim_sel', cod_sessao_leg)">
    194194                        <dtml-call expr="REQUEST.set('cod_sessao_leg_sel', cod_sessao_leg)">
    195                         </dtml-if>
    196                         <dtml-if expr="(not _.has_key('cod_sessao_leg_sel') and (_.DateTime() >= dat_inicio and _.DateTime() <= dat_fim))
     195                    </dtml-if>
     196                    <dtml-if expr="(not _.has_key('cod_sessao_leg_sel') and (_.DateTime() >= dat_inicio and _.DateTime() <= dat_fim))
    197197                                or (_.has_key('cod_sessao_leg_sel') and cod_sessao_leg == cod_sessao_leg_sel)">
    198198                        selected
    199199                        <dtml-call expr="REQUEST.set('prim_sel', cod_sessao_leg)">
    200200                        <dtml-call expr="REQUEST.set('cod_sessao_leg_sel', cod_sessao_leg)">
    201                         </dtml-if>
    202                             value="<dtml-var cod_sessao_leg>">
    203                         <dtml-var expr="pysc.periodo_legislatura_format_pysc(num_sessao_leg, dat_inicio, dat_fim)">
    204                         <dtml-if expr="(_.DateTime() >= dat_inicio) and (_.DateTime() <= dat_fim)">
    205                         (Atual)
    206                         </dtml-if>
    207                         </option>
    208                         <dtml-else>
    209                         <option selected value="0"></option>
    210                     </dtml-in>
    211                     </select>
    212                 </td>
    213             </tr>
    214             <tr>
    215                 <td colspan="3">
    216                     <label for="txt_dat_inicio_sessao">Abertura </label> <span class="campoObrigatorio">&nbsp;</span><br />
    217                     <dtml-unless cod_sessao_plen>
    218                         <dtml-call expr="REQUEST.set('dat_inicio_sessao', _.DateTime().strftime('%d/%m/%Y'))">
    219                     </dtml-unless>
    220                     <span class="texto">Data:</span> <input type="text" id="txt_dat_inicio_sessao" name="txt_dat_inicio_sessao" size="10" maxlength="10" value="<dtml-var dat_inicio_sessao missing null="">" onBlur="formata_data(form.txt_dat_inicio_sessao)" onChange="javascript:form.hdn_alterou.value=1" />
    221                     <dtml-if expr="not _.has_key('cod_sessao_plen')">
    222201                    </dtml-if>
    223                     <label for="txt_hr_inicio_sessao"></label>
    224                     <dtml-unless hr_inicio_sessao>
    225                         <dtml-call hr_inicio_sessao>
    226                     </dtml-unless>
    227                     &nbsp;<span class="texto">Hor&aacute;rio:</span> <input type="text" id="txt_hr_inicio_sessao" name="txt_hr_inicio_sessao" size="5" maxlength="5" value="<dtml-var hr_inicio_sessao missing null="">" onChange="javascript:form.hdn_alterou.value=1" /> <span class="texto">(hh:mm)</span>
    228                     <label for="ind_iniciada"></label>
    229                     <dtml-unless ind_iniciada>
    230                         <dtml-call expr="REQUEST.set('ind_iniciada', None)">
    231                     </dtml-unless>
    232                     &nbsp;<input type="radio" id="ind_iniciada" name="ind_iniciada" value="1" onChange="javascript:form.hdn_alterou.value=1"
    233                     <dtml-if expr="ind_iniciada == 1">
    234                         checked=1
    235                     </dtml-if>/><span class="texto">Sess&atilde;o iniciada?</span>
    236                 </td>
    237                 <td>&nbsp;</td>
    238             </tr>
    239             <tr>
    240                 <td colspan="3">
    241                     <label for="txt_dat_fim_sessao">Encerramento </label><br />
    242                     <dtml-unless dat_fim_sessao>
    243                         <dtml-call expr="REQUEST.set('dat_fim_sessao', _.DateTime().strftime('%d/%m/%Y'))">
    244                     </dtml-unless>
    245                     <span class="texto">Data:</span> <input type="text" id="txt_dat_fim_sessao" name="txt_dat_fim_sessao" size="10" maxlength="10" value="<dtml-var dat_fim_sessao missing null="">" onBlur="formata_data(form.txt_dat_fim_sessao)" onChange="javascript:form.hdn_alterou.value=1" />
    246                     <label for="txt_hr_fim_sessao"></label>
    247                     <dtml-unless hr_fim_sessao>
    248                         <dtml-call hr_fim_sessao>
    249                     </dtml-unless>
    250                     &nbsp;<span class="texto">Hor&aacute;rio:</span> <input type="text" id="txt_hr_fim_sessao" name="txt_hr_fim_sessao" size="5" maxlength="5" value="<dtml-var hr_fim_sessao missing null="">" onChange="javascript:form.hdn_alterou.value=1" /> <span class="texto">(hh:mm)</span>
    251                     <label for="ind_iniciada"></label>
    252                     <dtml-unless ind_iniciada>
    253                         <dtml-call expr="REQUEST.set('ind_iniciada', None)">
    254                     </dtml-unless>
    255                     &nbsp;<input type="radio" id="ind_iniciada" name="ind_iniciada" value="0" onChange="javascript:form.hdn_alterou.value=1"
    256                     <dtml-if expr="ind_iniciada ==0">
    257                         checked=1
    258                     </dtml-if>/><span class="texto">Sess&atilde;o finalizada?</span>
    259                 </td>
    260                 <td>&nbsp;</td>
    261             </tr>
    262             <tr>
    263                 <td colspan="2"><label>Pauta da Sessão</label><br/>
    264                     <input type="hidden" name="hdn_file_pauta" value="0"/>
    265                     <dtml-if cod_sessao_plen>
    266                         <dtml-call expr="REQUEST.set('id_pauta', _.str(cod_sessao_plen)+'_pauta_sessao.pdf')">
    267                         <dtml-if "_.hasattr(sapl_documentos.pauta_sessao,id_pauta)">
    268                         <dtml-let pauta="_.getattr(sapl_documentos.pauta_sessao,id_pauta).absolute_url">
    269                             <a href="<dtml-var pauta>" target="_blank"><img align="middle" src="sapl/imagens/archiv.gif" alt="Texto Integral"></a>
    270                         </dtml-let>
    271                         <input type="radio" name="radTI" value="M" checked="true" onClick="ativa_desativa_file_field_pauta(document.sessao_plenaria_form)"/><span class="texto">Manter</span>
    272                         <input type="radio" name="radTI" value="E" onClick="ativa_desativa_file_field_pauta(document.sessao_plenaria_form)"/><span class="texto">Excluir</span>
    273                         <input type="radio" name="radTI" value="S" onClick="ativa_desativa_file_field_pauta(document.sessao_plenaria_form)"/><span class="texto">Substituir</span>
    274                         <input type="file" id="file_nom_arquivo_pauta" name="file_nom_arquivo_pauta" accept="application/pdf" size="40" maxlength="100" disabled="1" />
    275                         <dtml-else>
    276                         <input type="file" id="file_nom_arquivo_pauta" name="file_nom_arquivo_pauta" accept="application/pdf" size="40" maxlength="100" />
    277                         <input type="hidden" name="radTI" value="I"/>
    278                     </dtml-if>
    279                     <dtml-else>
    280                     <input type="file" id="file_nom_arquivo_pauta" name="file_nom_arquivo_pauta" accept="application/pdf" size="40" maxlength="100" />
    281                     <input type="hidden" name="radTI" value="I"/>
    282                     </dtml-if>
    283                 </td>
    284                 <td colspan="2"><label>Ata da Sessão</label><br/>
    285                     <input type="hidden" name="hdn_file_ata" value="0"/>
    286                     <dtml-if cod_sessao_plen>
    287                         <dtml-call expr="REQUEST.set('id_ata', _.str(cod_sessao_plen)+'_ata_sessao.pdf')">
    288                         <dtml-if "_.hasattr(sapl_documentos.ata_sessao,id_ata)">
    289                         <dtml-let ata="_.getattr(sapl_documentos.ata_sessao,id_ata).absolute_url">
    290                             <a href="<dtml-var ata>" target="_blank"><img align="middle" src="sapl/imagens/archiv.gif" alt="Texto Integral"></a>
    291                         </dtml-let>
    292                         <input type="radio" name="radTI2" value="M" checked="true" onClick="ativa_desativa_file_field_ata(document.sessao_plenaria_form)"/><span class="texto">Manter</span>
    293                         <input type="radio" name="radTI2" value="E" onClick="ativa_desativa_file_field_ata(document.sessao_plenaria_form)"/><span class="texto">Excluir</span>
    294                         <input type="radio" name="radTI2" value="S" onClick="ativa_desativa_file_field_ata(document.sessao_plenaria_form)"/><span class="texto">Substituir</span>
    295                         <input type="file" id="file_nom_arquivo_ata" name="file_nom_arquivo_ata" accept="application/pdf" size="40" maxlength="100" disabled="1" />
    296                         <dtml-else>
    297                         <input type="file" id="file_nom_arquivo_ata" name="file_nom_arquivo_ata" accept="application/pdf" size="40" maxlength="100" />
    298                         <input type="hidden" name="radTI2" value="I"/>
    299                     </dtml-if>
    300                     <dtml-else>
    301                     <input type="file" id="file_nom_arquivo_ata" name="file_nom_arquivo_ata" accept="application/pdf" size="40" maxlength="100" />
    302                     <input type="hidden" name="radTI2" value="I"/>
    303                     </dtml-if>
    304                 </td>
    305             <tr>
    306 
    307             <tr>
    308                  <td colspan="2" valign="top">
    309                     <label for="txt_url_audio">URL Arquivo &Aacute;udio <span class="texto">(Formatos MP3 / AAC)</span> </label> <br />
    310                     <input type="text" id="txt_url_audio" name="txt_url_audio" size="40"maxlength="150" value="<dtml-var url_audio missing null="">" /> <br />
    311                <dtml-if url_audio>
    312                  <input class="botao" type="button" value="Visualizar" onClick="javascript:window.open('sessao_plenaria_player_audio?cod_sessao_plen=<dtml-var cod_sessao_plen>&url_audio=<dtml-var url_audio>','PlayerAudio','width=530,height=425,top=200,left=200,scrollbars=no');"/>
     202                    value="<dtml-var cod_sessao_leg>">
     203                <dtml-var expr="pysc.periodo_legislatura_format_pysc(num_sessao_leg, dat_inicio, dat_fim)">
     204                <dtml-if expr="(_.DateTime() >= dat_inicio) and (_.DateTime() <= dat_fim)">
     205                    (Atual)
    313206                </dtml-if>
    314                 </td>
    315 
    316                  <td colspan="2" valign="top">
    317                     <label for="txt_url_video">URL Arquivo V&iacute;deo <span class="texto">(Formatos MP4 / FLV / WebM)</span> </label> <br />
    318                     <input type="text" id="txt_url_video" name="txt_url_video" size="40" maxlength="150" value="<dtml-var url_video missing null="">" /> <br />
    319                 <dtml-if url_video>
    320                  <input class="botao" type="button" value="Visualizar" onClick="javascript:window.open('sessao_plenaria_player_video?cod_sessao_plen=<dtml-var cod_sessao_plen>&url_video=<dtml-var url_video>','PlayerVideo','width=530,height=425,top=200,left=200,scrollbars=no');"/>
    321                 </dtml-if>
    322                 </td>         
    323             </tr>
    324        </table>
    325         <p align="center">
    326             <input type="hidden" name="dat_sessao" value="<dtml-var dat_inicio_sessao missing>" />
    327             <input class="botao" type="button" name="button" value="Salvar" onClick="campos_criticar()" />
    328             <input class="botao" type="button" value="Retornar" OnClick="history.go(-1)" />
    329         </p>
    330     </fieldset>
     207                </option>
     208                <dtml-else>
     209                <option selected value="0"></option>
     210                </dtml-in>
     211            </select>
     212        </td>
     213    </tr>
     214    <tr>
     215        <td colspan="3">
     216            <label for="txt_dat_inicio_sessao">Abertura </label> <span class="campoObrigatorio">&nbsp;</span><br />
     217            <dtml-unless cod_sessao_plen>
     218                <dtml-call expr="REQUEST.set('dat_inicio_sessao', _.DateTime().strftime('%d/%m/%Y'))">
     219            </dtml-unless>
     220            <span class="texto">Data:</span> <input type="text" id="txt_dat_inicio_sessao" name="txt_dat_inicio_sessao" size="10" maxlength="10" value="<dtml-var dat_inicio_sessao missing null="">" onBlur="formata_data(form.txt_dat_inicio_sessao)" onChange="javascript:form.hdn_alterou.value=1" />
     221            <dtml-if expr="not _.has_key('cod_sessao_plen')">
     222            </dtml-if>
     223            <label for="txt_hr_inicio_sessao"></label>
     224            <dtml-unless hr_inicio_sessao>
     225                <dtml-call hr_inicio_sessao>
     226            </dtml-unless>
     227            &nbsp;<span class="texto">Hor&aacute;rio:</span> <input type="text" id="txt_hr_inicio_sessao" name="txt_hr_inicio_sessao" size="5" maxlength="5" value="<dtml-var hr_inicio_sessao missing null="">" onChange="javascript:form.hdn_alterou.value=1" /> <span class="texto">(hh:mm)</span>
     228            <label for="ind_iniciada"></label>
     229            <dtml-unless ind_iniciada>
     230                <dtml-call expr="REQUEST.set('ind_iniciada', None)">
     231            </dtml-unless>
     232            &nbsp;<input type="radio" id="ind_iniciada" name="ind_iniciada" value="1" onChange="javascript:form.hdn_alterou.value=1"
     233            <dtml-if expr="ind_iniciada == 1">
     234                checked=1
     235            </dtml-if>/><span class="texto">Sess&atilde;o iniciada?</span>
     236        </td>
     237        <td>&nbsp;</td>
     238    </tr>
     239    <tr>
     240        <td colspan="3">
     241            <label for="txt_dat_fim_sessao">Encerramento </label><br />
     242            <dtml-unless dat_fim_sessao>
     243                <dtml-call expr="REQUEST.set('dat_fim_sessao', _.DateTime().strftime('%d/%m/%Y'))">
     244            </dtml-unless>
     245            <span class="texto">Data:</span> <input type="text" id="txt_dat_fim_sessao" name="txt_dat_fim_sessao" size="10" maxlength="10" value="<dtml-var dat_fim_sessao missing null="">" onBlur="formata_data(form.txt_dat_fim_sessao)" onChange="javascript:form.hdn_alterou.value=1" />
     246            <label for="txt_hr_fim_sessao"></label>
     247            <dtml-unless hr_fim_sessao>
     248                <dtml-call hr_fim_sessao>
     249            </dtml-unless>
     250            &nbsp;<span class="texto">Hor&aacute;rio:</span> <input type="text" id="txt_hr_fim_sessao" name="txt_hr_fim_sessao" size="5" maxlength="5" value="<dtml-var hr_fim_sessao missing null="">" onChange="javascript:form.hdn_alterou.value=1" /> <span class="texto">(hh:mm)</span>
     251            <label for="ind_iniciada"></label>
     252            <dtml-unless ind_iniciada>
     253                <dtml-call expr="REQUEST.set('ind_iniciada', None)">
     254            </dtml-unless>
     255            &nbsp;<input type="radio" id="ind_iniciada" name="ind_iniciada" value="0" onChange="javascript:form.hdn_alterou.value=1"
     256            <dtml-if expr="ind_iniciada ==0">
     257                checked=1
     258            </dtml-if>/><span class="texto">Sess&atilde;o finalizada?</span>
     259        </td>
     260        <td>&nbsp;</td>
     261    </tr>
     262    <tr>
     263        <td colspan="2"><label>Pauta da Sessão</label><br/>
     264            <input type="hidden" name="hdn_file_pauta" value="0"/>
     265            <dtml-if cod_sessao_plen>
     266                <dtml-call expr="REQUEST.set('id_pauta', _.str(cod_sessao_plen)+'_pauta_sessao.pdf')">
     267                <dtml-if "_.hasattr(sapl_documentos.pauta_sessao,id_pauta)">
     268                <dtml-let pauta="_.getattr(sapl_documentos.pauta_sessao,id_pauta).absolute_url">
     269                    <a href="<dtml-var pauta>" target="_blank"><img align="middle" src="sapl/imagens/archiv.gif" alt="Texto Integral"></a>
     270                </dtml-let>
     271                <input type="radio" name="radTI" value="M" checked="true" onClick="ativa_desativa_file_field_pauta(document.sessao_plenaria_form)"/><span class="texto">Manter</span>
     272                <input type="radio" name="radTI" value="E" onClick="ativa_desativa_file_field_pauta(document.sessao_plenaria_form)"/><span class="texto">Excluir</span>
     273                <input type="radio" name="radTI" value="S" onClick="ativa_desativa_file_field_pauta(document.sessao_plenaria_form)"/><span class="texto">Substituir</span>
     274                <input type="file" id="file_nom_arquivo_pauta" name="file_nom_arquivo_pauta" accept="application/pdf" size="40" maxlength="100" disabled="1" />
     275                <dtml-else>
     276                <input type="file" id="file_nom_arquivo_pauta" name="file_nom_arquivo_pauta" accept="application/pdf" size="40" maxlength="100" />
     277                <input type="hidden" name="radTI" value="I"/>
     278            </dtml-if>
     279            <dtml-else>
     280            <input type="file" id="file_nom_arquivo_pauta" name="file_nom_arquivo_pauta" accept="application/pdf" size="40" maxlength="100" />
     281            <input type="hidden" name="radTI" value="I"/>
     282            </dtml-if>
     283        </td>
     284        <td colspan="2"><label>Ata da Sessão</label><br/>
     285            <input type="hidden" name="hdn_file_ata" value="0"/>
     286            <dtml-if cod_sessao_plen>
     287                <dtml-call expr="REQUEST.set('id_ata', _.str(cod_sessao_plen)+'_ata_sessao.pdf')">
     288                <dtml-if "_.hasattr(sapl_documentos.ata_sessao,id_ata)">
     289                <dtml-let ata="_.getattr(sapl_documentos.ata_sessao,id_ata).absolute_url">
     290                    <a href="<dtml-var ata>" target="_blank"><img align="middle" src="sapl/imagens/archiv.gif" alt="Texto Integral"></a>
     291                </dtml-let>
     292                <input type="radio" name="radTI2" value="M" checked="true" onClick="ativa_desativa_file_field_ata(document.sessao_plenaria_form)"/><span class="texto">Manter</span>
     293                <input type="radio" name="radTI2" value="E" onClick="ativa_desativa_file_field_ata(document.sessao_plenaria_form)"/><span class="texto">Excluir</span>
     294                <input type="radio" name="radTI2" value="S" onClick="ativa_desativa_file_field_ata(document.sessao_plenaria_form)"/><span class="texto">Substituir</span>
     295                <input type="file" id="file_nom_arquivo_ata" name="file_nom_arquivo_ata" accept="application/pdf" size="40" maxlength="100" disabled="1" />
     296                <dtml-else>
     297                <input type="file" id="file_nom_arquivo_ata" name="file_nom_arquivo_ata" accept="application/pdf" size="40" maxlength="100" />
     298                <input type="hidden" name="radTI2" value="I"/>
     299            </dtml-if>
     300            <dtml-else>
     301            <input type="file" id="file_nom_arquivo_ata" name="file_nom_arquivo_ata" accept="application/pdf" size="40" maxlength="100" />
     302            <input type="hidden" name="radTI2" value="I"/>
     303            </dtml-if>
     304        </td>
     305    <tr>
     306
     307    <tr>
     308        <td colspan="2" valign="top">
     309            <label for="txt_url_audio">URL Arquivo &Aacute;udio <span class="texto">(Formatos MP3 / AAC)</span> </label> <br />
     310            <input type="text" id="txt_url_audio" name="txt_url_audio" size="40"maxlength="150" value="<dtml-var url_audio missing null="">" /> <br />
     311            <dtml-if url_audio>
     312                <input class="botao" type="button" value="Visualizar" onClick="javascript:window.open('sessao_plenaria_player_audio?cod_sessao_plen=<dtml-var cod_sessao_plen>&url_audio=<dtml-var url_audio>','PlayerAudio','width=530,height=425,top=200,left=200,scrollbars=no');"/>
     313            </dtml-if>
     314        </td>
     315
     316        <td colspan="2" valign="top">
     317            <label for="txt_url_video">URL Arquivo V&iacute;deo <span class="texto">(Formatos MP4 / FLV / WebM)</span> </label> <br />
     318            <input type="text" id="txt_url_video" name="txt_url_video" size="40" maxlength="150" value="<dtml-var url_video missing null="">" /> <br />
     319            <dtml-if url_video>
     320                <input class="botao" type="button" value="Visualizar" onClick="javascript:window.open('sessao_plenaria_player_video?cod_sessao_plen=<dtml-var cod_sessao_plen>&url_video=<dtml-var url_video>','PlayerVideo','width=530,height=425,top=200,left=200,scrollbars=no');"/>
     321            </dtml-if>
     322        </td>
     323    </tr>
     324</table>
     325<p align="center">
     326    <input type="hidden" name="dat_sessao" value="<dtml-var dat_inicio_sessao missing>" />
     327    <input class="botao" type="button" name="button" value="Salvar" onClick="campos_criticar()" />
     328    <input class="botao" type="button" value="Retornar" OnClick="history.go(-1)" />
     329</p>
     330</fieldset>
    331331</form>
    332332<dtml-var standard_html_footer>
  • ILSAPL/trunk/skins/sk_sapl/javascript/jquery.cleditor.js.dtml

    r6791 r7608  
    11(function($){
    2 $.cleditor={
    3 defaultOptions:{
    4 width:500,
    5 height:250,
    6 controls:
    7 "bold italic underline strikethrough subscript superscript | font size "+
    8 "style | color highlight removeformat | bullets numbering | outdent "+
    9 "indent | alignleft center alignright justify | undo redo | "+
    10 "rule image link unlink | cut copy paste pastetext | print source",
    11 colors:
    12 "FFF FCC FC9 FF9 FFC 9F9 9FF CFF CCF FCF "+
    13 "CCC F66 F96 FF6 FF3 6F9 3FF 6FF 99F F9F "+
    14 "BBB F00 F90 FC6 FF0 3F3 6CC 3CF 66C C6C "+
    15 "999 C00 F60 FC3 FC0 3C0 0CC 36F 63F C3C "+
    16 "666 900 C60 C93 990 090 399 33F 60C 939 "+
    17 "333 600 930 963 660 060 366 009 339 636 "+
    18 "000 300 630 633 330 030 033 006 309 303",
    19 fonts:
    20 "Arial,Arial Black,Comic Sans MS,Courier New,Narrow,Garamond,"+
    21 "Georgia,Impact,Sans Serif,Serif,Tahoma,Trebuchet MS,Verdana",
    22 sizes:
    23 "1,2,3,4,5,6,7",
    24 styles:
    25 [["Parágrafo","<p>"],["Cabeçalho 1","<h1>"],["Cabeçalho 2","<h2>"],
    26 ["Cabeçalho 3","<h3>"],["Cabeçalho 4","<h4>"],["Cabeçalho 5","<h5>"],
    27 ["Cabeçalho 6","<h6>"]],
    28 useCSS:false,
    29 docType:
    30 '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
    31 docCSSFile:
    32 "",
    33 bodyStyle:
    34 "margin:4px; font:12px Arial, Verdana, Helvetica, sans-serif; color: #444; cursor:text"
    35 },
    36 buttons:{
    37 init:
    38 "bold,Negrito,|"+
    39 "italic,Itálico,|"+
    40 "underline,Sublinhado,|"+
    41 "strikethrough,Tachado,|"+
    42 "subscript,Subscrito,|"+
    43 "superscript,Sobrescrito,|"+
    44 "font,Fonte,fontname,|"+
    45 "size,Tamanho da Fonte,fontsize,|"+
    46 "style,Estilo,formatblock,|"+
    47 "color,Cor da Fonte,forecolor,|"+
    48 "highlight,Cor de Destaque,hilitecolor,color|"+
    49 "removeformat,Remover Formatação,|"+
    50 "bullets,Marcadores,insertunorderedlist|"+
    51 "numbering,Lista Numerada,insertorderedlist|"+
    52 "outdent,Diminuir Recuo,|"+
    53 "indent,Aumentar Recuo,|"+
    54 "alignleft,Alinhar à Esquerda,justifyleft|"+
    55 "center,Centralizar,justifycenter|"+
    56 "alignright,Alinhar à Direita,justifyright|"+
    57 "justify,Justificar,justifyfull|"+
    58 "undo,Desfazer,|"+
    59 "redo,Refazer,|"+
    60 "rule,Inserir Linha Horizontal,inserthorizontalrule|"+
    61 "image,Inserir Imagem,insertimage,url|"+
    62 "link,Inserir Link,createlink,url|"+
    63 "unlink,Remover Link,|"+
    64 "cut,Recortar,|"+
    65 "copy,Copiar,|"+
    66 "paste,Colar,|"+
    67 "pastetext,Colar como Texto,inserthtml,|"+
    68 "print,Imprimir,|"+
    69 "source,Código-fonte"
    70 },
    71 imagesPath:function(){return imagesPath();}
    72 };
    73 $.fn.cleditor=function(options){
    74 var $result=$([]);
    75 this.each(function(idx,elem){
    76 if(elem.tagName=="TEXTAREA"){
    77 var data=$.data(elem,CLEDITOR);
    78 if(!data)data=new cleditor(elem,options);
    79 $result=$result.add(data);
    80 }
    81 });
    82 return $result;
    83 };
    84 var
    85 BACKGROUND_COLOR="backgroundColor",
    86 BUTTON="button",
    87 BUTTON_NAME="buttonName",
    88 CHANGE="change",
    89 CLEDITOR="cleditor",
    90 CLICK="click",
    91 DISABLED="disabled",
    92 DIV_TAG="<div>",
    93 TRANSPARENT="transparent",
    94 UNSELECTABLE="unselectable",
    95 MAIN_CLASS="cleditorMain",
    96 TOOLBAR_CLASS="cleditorToolbar",
    97 GROUP_CLASS="cleditorGroup",
    98 BUTTON_CLASS="cleditorButton",
    99 DISABLED_CLASS="cleditorDisabled",
    100 DIVIDER_CLASS="cleditorDivider",
    101 POPUP_CLASS="cleditorPopup",
    102 LIST_CLASS="cleditorList",
    103 COLOR_CLASS="cleditorColor",
    104 PROMPT_CLASS="cleditorPrompt",
    105 MSG_CLASS="cleditorMsg",
    106 ie=$.browser.msie,
    107 ie6=/msie\s6/i.test(navigator.userAgent),
    108 iOS=/iphone|ipad|ipod/i.test(navigator.userAgent),
    109 popups={},
    110 documentClickAssigned,
    111 buttons=$.cleditor.buttons;
    112 $.each(buttons.init.split("|"),function(idx,button){
    113 var items=button.split(","),name=items[0];
    114 buttons[name]={
    115 stripIndex:idx,
    116 name:name,
    117 title:items[1]===""?name.charAt(0).toUpperCase()+name.substr(1):items[1],
    118 command:items[2]===""?name:items[2],
    119 popupName:items[3]===""?name:items[3]
    120 };
    121 });
    122 delete buttons.init;
    123 cleditor=function(area,options){
    124 var editor=this;
    125 editor.options=options=$.extend({},$.cleditor.defaultOptions,options);
    126 var $area=editor.$area=$(area)
    127 .hide()
    128 .data(CLEDITOR,editor)
    129 .blur(function(){
    130 updateFrame(editor,true);
    131 });
    132 var $main=editor.$main=$(DIV_TAG)
    133 .addClass(MAIN_CLASS)
    134 .width(options.width)
    135 .height(options.height);
    136 var $toolbar=editor.$toolbar=$(DIV_TAG)
    137 .addClass(TOOLBAR_CLASS)
    138 .appendTo($main);
    139 var $group=$(DIV_TAG)
    140 .addClass(GROUP_CLASS)
    141 .appendTo($toolbar);
    142 $.each(options.controls.split(" "),function(idx,buttonName){
    143 if(buttonName==="")return true;
    144 if(buttonName=="|"){
    145 var $div=$(DIV_TAG)
    146 .addClass(DIVIDER_CLASS)
    147 .appendTo($group);
    148 $group=$(DIV_TAG)
    149 .addClass(GROUP_CLASS)
    150 .appendTo($toolbar);
    151 }
    152 else{
    153 var button=buttons[buttonName];
    154 var $buttonDiv=$(DIV_TAG)
    155 .data(BUTTON_NAME,button.name)
    156 .addClass(BUTTON_CLASS)
    157 .attr("title",button.title)
    158 .bind(CLICK,$.proxy(buttonClick,editor))
    159 .appendTo($group)
    160 .hover(hoverEnter,hoverLeave);
    161 var map={};
    162 if(button.css)map=button.css;
    163 else if(button.image)map.backgroundImage=imageUrl(button.image);
    164 if(button.stripIndex)map.backgroundPosition=button.stripIndex*-24;
    165 $buttonDiv.css(map);
    166 if(ie)
    167 $buttonDiv.attr(UNSELECTABLE,"on");
    168 if(button.popupName)
    169 createPopup(button.popupName,options,button.popupClass,
    170 button.popupContent,button.popupHover);
    171 }
    172 });
    173 $main.insertBefore($area)
    174 .append($area);
    175 if(!documentClickAssigned){
    176 $(document).click(function(e){
    177 var $target=$(e.target);
    178 if(!$target.add($target.parents()).is("."+PROMPT_CLASS))
    179 hidePopups();
    180 });
    181 documentClickAssigned=true;
    182 }
    183 if(/auto|%/.test(""+options.width+options.height))
    184 $(window).resize(function(){refresh(editor);});
    185 refresh(editor);
    186 };
    187 var fn=cleditor.prototype,
    188 methods=[
    189 ["clear",clear],
    190 ["disable",disable],
    191 ["execCommand",execCommand],
    192 ["focus",focus],
    193 ["hidePopups",hidePopups],
    194 ["sourceMode",sourceMode,true],
    195 ["refresh",refresh],
    196 ["select",select],
    197 ["selectedHTML",selectedHTML,true],
    198 ["selectedText",selectedText,true],
    199 ["showMessage",showMessage],
    200 ["updateFrame",updateFrame],
    201 ["updateTextArea",updateTextArea]
    202 ];
    203 $.each(methods,function(idx,method){
    204 fn[method[0]]=function(){
    205 var editor=this,args=[editor];
    206 for(var x=0;x<arguments.length;x++){args.push(arguments[x]);}
    207 var result=method[1].apply(editor,args);
    208 if(method[2])return result;
    209 return editor;
    210 };
    211 });
    212 fn.change=function(handler){
    213 var $this=$(this);
    214 return handler?$this.bind(CHANGE,handler):$this.trigger(CHANGE);
    215 };
    216 function buttonClick(e){
    217 var editor=this,
    218 buttonDiv=e.target,
    219 buttonName=$.data(buttonDiv,BUTTON_NAME),
    220 button=buttons[buttonName],
    221 popupName=button.popupName,
    222 popup=popups[popupName];
    223 if(editor.disabled||$(buttonDiv).attr(DISABLED)==DISABLED)
    224 return;
    225 var data={
    226 editor:editor,
    227 button:buttonDiv,
    228 buttonName:buttonName,
    229 popup:popup,
    230 popupName:popupName,
    231 command:button.command,
    232 useCSS:editor.options.useCSS
    233 };
    234 if(button.buttonClick&&button.buttonClick(e,data)===false)
    235 return false;
    236 if(buttonName=="source"){
    237 if(sourceMode(editor)){
    238 delete editor.range;
    239 editor.$area.hide();
    240 editor.$frame.show();
    241 buttonDiv.title=button.title;
    242 }
    243 else{
    244 editor.$frame.hide();
    245 editor.$area.show();
    246 buttonDiv.title="Show Rich Text";
    247 }
    248 setTimeout(function(){refreshButtons(editor);},100);
    249 }
    250 else if(!sourceMode(editor)){
    251 if(popupName){
    252 var $popup=$(popup);
    253 if(popupName=="url"){
    254 if(buttonName=="link"&&selectedText(editor)===""){
    255 showMessage(editor,"É necessário selecionar o texto para inserir um link.",buttonDiv);
    256 return false;
    257 }
    258 $popup.children(":button")
    259 .unbind(CLICK)
    260 .bind(CLICK,function(){
    261 var $text=$popup.find(":text"),
    262 url=$.trim($text.val());
    263 if(url!=="")
    264 execCommand(editor,data.command,url,null,data.button);
    265 $text.val("http://");
    266 hidePopups();
    267 focus(editor);
    268 });
    269 }
    270 else if(popupName=="pastetext"){
    271 $popup.children(":button")
    272 .unbind(CLICK)
    273 .bind(CLICK,function(){
    274 var $textarea=$popup.find("textarea"),
    275 text=$textarea.val().replace(/\n/g,"<br />");
    276 if(text!=="")
    277 execCommand(editor,data.command,text,null,data.button);
    278 $textarea.val("");
    279 hidePopups();
    280 focus(editor);
    281 });
    282 }
    283 if(buttonDiv!==$.data(popup,BUTTON)){
    284 showPopup(editor,popup,buttonDiv);
    285 return false;
    286 }
    287 return;
    288 }
    289 else if(buttonName=="print")
    290 editor.$frame[0].contentWindow.print();
    291 else if(!execCommand(editor,data.command,data.value,data.useCSS,buttonDiv))
    292 return false;
    293 }
    294 focus(editor);
    295 }
    296 function hoverEnter(e){
    297 var $div=$(e.target).closest("div");
    298 $div.css(BACKGROUND_COLOR,$div.data(BUTTON_NAME)?"#FFF":"#FFC");
    299 }
    300 function hoverLeave(e){
    301 $(e.target).closest("div").css(BACKGROUND_COLOR,"transparent");
    302 }
    303 function popupClick(e){
    304 var editor=this,
    305 popup=e.data.popup,
    306 target=e.target;
    307 if(popup===popups.msg||$(popup).hasClass(PROMPT_CLASS))
    308 return;
    309 var buttonDiv=$.data(popup,BUTTON),
    310 buttonName=$.data(buttonDiv,BUTTON_NAME),
    311 button=buttons[buttonName],
    312 command=button.command,
    313 value,
    314 useCSS=editor.options.useCSS;
    315 if(buttonName=="font")
    316 value=target.style.fontFamily.replace(/"/g,"");
    317 else if(buttonName=="size"){
    318 if(target.tagName=="DIV")
    319 target=target.children[0];
    320 value=target.innerHTML;
    321 }
    322 else if(buttonName=="style")
    323 value="<"+target.tagName+">";
    324 else if(buttonName=="color")
    325 value=hex(target.style.backgroundColor);
    326 else if(buttonName=="highlight"){
    327 value=hex(target.style.backgroundColor);
    328 if(ie)command='backcolor';
    329 else useCSS=true;
    330 }
    331 var data={
    332 editor:editor,
    333 button:buttonDiv,
    334 buttonName:buttonName,
    335 popup:popup,
    336 popupName:button.popupName,
    337 command:command,
    338 value:value,
    339 useCSS:useCSS
    340 };
    341 if(button.popupClick&&button.popupClick(e,data)===false)
    342 return;
    343 if(data.command&&!execCommand(editor,data.command,data.value,data.useCSS,buttonDiv))
    344 return false;
    345 hidePopups();
    346 focus(editor);
    347 }
    348 function checksum(text)
    349 {
    350 var a=1,b=0;
    351 for(var index=0;index<text.length;++index){
    352 a=(a+text.charCodeAt(index))%65521;
    353 b=(b+a)%65521;
    354 }
    355 return(b<<16)|a;
    356 }
    357 function clear(editor){
    358 editor.$area.val("");
    359 updateFrame(editor);
    360 }
    361 function createPopup(popupName,options,popupTypeClass,popupContent,popupHover){
    362 if(popups[popupName])
    363 return popups[popupName];
    364 var $popup=$(DIV_TAG)
    365 .hide()
    366 .addClass(POPUP_CLASS)
    367 .appendTo("body");
    368 if(popupContent)
    369 $popup.html(popupContent);
    370 else if(popupName=="color"){
    371 var colors=options.colors.split(" ");
    372 if(colors.length<10)
    373 $popup.width("auto");
    374 $.each(colors,function(idx,color){
    375 $(DIV_TAG).appendTo($popup)
    376 .css(BACKGROUND_COLOR,"#"+color);
    377 });
    378 popupTypeClass=COLOR_CLASS;
    379 }
    380 else if(popupName=="font")
    381 $.each(options.fonts.split(","),function(idx,font){
    382 $(DIV_TAG).appendTo($popup)
    383 .css("fontFamily",font)
    384 .html(font);
    385 });
    386 else if(popupName=="size")
    387 $.each(options.sizes.split(","),function(idx,size){
    388 $(DIV_TAG).appendTo($popup)
    389 .html("<font size="+size+">"+size+"</font>");
    390 });
    391 else if(popupName=="style")
    392 $.each(options.styles,function(idx,style){
    393 $(DIV_TAG).appendTo($popup)
    394 .html(style[1]+style[0]+style[1].replace("<","</"));
    395 });
    396 else if(popupName=="url"){
    397 $popup.html('Enter URL:<br><input type=text value="http://" size=35><br><input type=button value="Submit">');
    398 popupTypeClass=PROMPT_CLASS;
    399 }
    400 else if(popupName=="pastetext"){
    401 $popup.html('Cole aqui o texto formato e pressione o botão<br /><textarea cols=40 rows=3></textarea><br /><input type=button value=Inserir>');
    402 popupTypeClass=PROMPT_CLASS;
    403 }
    404 if(!popupTypeClass&&!popupContent)
    405 popupTypeClass=LIST_CLASS;
    406 $popup.addClass(popupTypeClass);
    407 if(ie){
    408 $popup.attr(UNSELECTABLE,"on")
    409 .find("div,font,p,h1,h2,h3,h4,h5,h6")
    410 .attr(UNSELECTABLE,"on");
    411 }
    412 if($popup.hasClass(LIST_CLASS)||popupHover===true)
    413 $popup.children().hover(hoverEnter,hoverLeave);
    414 popups[popupName]=$popup[0];
    415 return $popup[0];
    416 }
    417 function disable(editor,disabled){
    418 if(disabled){
    419 editor.$area.attr(DISABLED,DISABLED);
    420 editor.disabled=true;
    421 }
    422 else{
    423 editor.$area.removeAttr(DISABLED);
    424 delete editor.disabled;
    425 }
    426 try{
    427 if(ie)editor.doc.body.contentEditable=!disabled;
    428 else editor.doc.designMode=!disabled?"on":"off";
    429 }
    430 catch(err){}
    431 refreshButtons(editor);
    432 }
    433 function execCommand(editor,command,value,useCSS,button){
    434 restoreRange(editor);
    435 if(!ie){
    436 if(useCSS===undefined||useCSS===null)
    437 useCSS=editor.options.useCSS;
    438 editor.doc.execCommand("styleWithCSS",0,useCSS.toString());
    439 }
    440 var success=true,description;
    441 if(ie&&command.toLowerCase()=="inserthtml")
    442 getRange(editor).pasteHTML(value);
    443 else{
    444 try{success=editor.doc.execCommand(command,0,value||null);}
    445 catch(err){description=err.description;success=false;}
    446 if(!success){
    447 if("cutcopypaste".indexOf(command)>-1)
    448 showMessage(editor,"Por questão de segurança, seu browser não suporta o comando "+
    449 command+". Tente utilizar as teclas de atalho ou menu contextual em vez disso.",
    450 button);
    451 else
    452 showMessage(editor,
    453 (description?description:"Error executing the "+command+" command."),
    454 button);
    455 }
    456 }
    457 refreshButtons(editor);
    458 return success;
    459 }
    460 function focus(editor){
    461 setTimeout(function(){
    462 if(sourceMode(editor))editor.$area.focus();
    463 else editor.$frame[0].contentWindow.focus();
    464 refreshButtons(editor);
    465 },0);
    466 }
    467 function getRange(editor){
    468 if(ie)return getSelection(editor).createRange();
    469 return getSelection(editor).getRangeAt(0);
    470 }
    471 function getSelection(editor){
    472 if(ie)return editor.doc.selection;
    473 return editor.$frame[0].contentWindow.getSelection();
    474 }
    475 function hex(s){
    476 var m=/rgba?\((\d+), (\d+), (\d+)/.exec(s),
    477 c=s.split("");
    478 if(m){
    479 s=(m[1]<<16|m[2]<<8|m[3]).toString(16);
    480 while(s.length<6)
    481 s="0"+s;
    482 }
    483 return"#"+(s.length==6?s:c[1]+c[1]+c[2]+c[2]+c[3]+c[3]);
    484 }
    485 function hidePopups(){
    486 $.each(popups,function(idx,popup){
    487 $(popup)
    488 .hide()
    489 .unbind(CLICK)
    490 .removeData(BUTTON);
    491 });
    492 }
    493 function imagesPath(){
    494 var cssFile="jquery.cleditor.css",
    495 href=$("link[href$='"+cssFile+"']").attr("href");
    496 return href.substr(0,href.length-cssFile.length)+"images/";
    497 }
    498 function imageUrl(filename){
    499 return"url("+imagesPath()+filename+")";
    500 }
    501 function refresh(editor){
    502 var $main=editor.$main,
    503 options=editor.options;
    504 if(editor.$frame)
    505 editor.$frame.remove();
    506 var $frame=editor.$frame=$('<iframe frameborder="0" src="javascript:true;">')
    507 .hide()
    508 .appendTo($main);
    509 var contentWindow=$frame[0].contentWindow,
    510 doc=editor.doc=contentWindow.document,
    511 $doc=$(doc);
    512 doc.open();
    513 doc.write(
    514 options.docType+
    515 '<html>'+
    516 ((options.docCSSFile==='')?'':'<head><link rel="stylesheet" type="text/css" href="'+options.docCSSFile+'" /></head>')+
    517 '<body style="'+options.bodyStyle+'"></body></html>'
    518 );
    519 doc.close();
    520 if(ie)
    521 $doc.click(function(){focus(editor);});
    522 updateFrame(editor);
    523 if(ie){
    524 $doc.bind("beforedeactivate beforeactivate selectionchange keypress",function(e){
    525 if(e.type=="beforedeactivate")
    526 editor.inactive=true;
    527 else if(e.type=="beforeactivate"){
    528 if(!editor.inactive&&editor.range&&editor.range.length>1)
    529 editor.range.shift();
    530 delete editor.inactive;
    531 }
    532 else if(!editor.inactive){
    533 if(!editor.range)
    534 editor.range=[];
    535 editor.range.unshift(getRange(editor));
    536 while(editor.range.length>2)
    537 editor.range.pop();
    538 }
    539 });
    540 $frame.focus(function(){
    541 restoreRange(editor);
    542 });
    543 }
    544 ($.browser.mozilla?$doc:$(contentWindow)).blur(function(){
    545 updateTextArea(editor,true);
    546 });
    547 $doc.click(hidePopups)
    548 .bind("keyup mouseup",function(){
    549 refreshButtons(editor);
    550 });
    551 if(iOS)editor.$area.show();
    552 else $frame.show();
    553 $(function(){
    554 var $toolbar=editor.$toolbar,
    555 $group=$toolbar.children("div:last"),
    556 wid=$main.width();
    557 var hgt=$group.offset().top+$group.outerHeight()-$toolbar.offset().top+1;
    558 $toolbar.height(hgt);
    559 hgt=(/%/.test(""+options.height)?$main.height():parseInt(options.height))-hgt;
    560 $frame.width(wid).height(hgt);
    561 editor.$area.width(wid).height(ie6?hgt-2:hgt);
    562 disable(editor,editor.disabled);
    563 refreshButtons(editor);
    564 });
    565 }
    566 function refreshButtons(editor){
    567 if(!iOS&&$.browser.webkit&&!editor.focused){
    568 editor.$frame[0].contentWindow.focus();
    569 window.focus();
    570 editor.focused=true;
    571 }
    572 var queryObj=editor.doc;
    573 if(ie)queryObj=getRange(editor);
    574 var inSourceMode=sourceMode(editor);
    575 $.each(editor.$toolbar.find("."+BUTTON_CLASS),function(idx,elem){
    576 var $elem=$(elem),
    577 button=$.cleditor.buttons[$.data(elem,BUTTON_NAME)],
    578 command=button.command,
    579 enabled=true;
    580 if(editor.disabled)
    581 enabled=false;
    582 else if(button.getEnabled){
    583 var data={
    584 editor:editor,
    585 button:elem,
    586 buttonName:button.name,
    587 popup:popups[button.popupName],
    588 popupName:button.popupName,
    589 command:button.command,
    590 useCSS:editor.options.useCSS
    591 };
    592 enabled=button.getEnabled(data);
    593 if(enabled===undefined)
    594 enabled=true;
    595 }
    596 else if(((inSourceMode||iOS)&&button.name!="source")||
    597 (ie&&(command=="undo"||command=="redo")))
    598 enabled=false;
    599 else if(command&&command!="print"){
    600 if(ie&&command=="hilitecolor")
    601 command="backcolor";
    602 if(!ie||command!="inserthtml"){
    603 try{enabled=queryObj.queryCommandEnabled(command);}
    604 catch(err){enabled=false;}
    605 }
    606 }
    607 if(enabled){
    608 $elem.removeClass(DISABLED_CLASS);
    609 $elem.removeAttr(DISABLED);
    610 }
    611 else{
    612 $elem.addClass(DISABLED_CLASS);
    613 $elem.attr(DISABLED,DISABLED);
    614 }
    615 });
    616 }
    617 function restoreRange(editor){
    618 if(ie&&editor.range)
    619 editor.range[0].select();
    620 }
    621 function select(editor){
    622 setTimeout(function(){
    623 if(sourceMode(editor))editor.$area.select();
    624 else execCommand(editor,"selectall");
    625 },0);
    626 }
    627 function selectedHTML(editor){
    628 restoreRange(editor);
    629 var range=getRange(editor);
    630 if(ie)
    631 return range.htmlText;
    632 var layer=$("<layer>")[0];
    633 layer.appendChild(range.cloneContents());
    634 var html=layer.innerHTML;
    635 layer=null;
    636 return html;
    637 }
    638 function selectedText(editor){
    639 restoreRange(editor);
    640 if(ie)return getRange(editor).text;
    641 return getSelection(editor).toString();
    642 }
    643 function showMessage(editor,message,button){
    644 var popup=createPopup("msg",editor.options,MSG_CLASS);
    645 popup.innerHTML=message;
    646 showPopup(editor,popup,button);
    647 }
    648 function showPopup(editor,popup,button){
    649 var offset,left,top,$popup=$(popup);
    650 if(button){
    651 var $button=$(button);
    652 offset=$button.offset();
    653 left=--offset.left;
    654 top=offset.top+$button.height();
    655 }
    656 else{
    657 var $toolbar=editor.$toolbar;
    658 offset=$toolbar.offset();
    659 left=Math.floor(($toolbar.width()-$popup.width())/2)+offset.left;
    660 top=offset.top+$toolbar.height()-2;
    661 }
    662 hidePopups();
    663 $popup.css({left:left,top:top})
    664 .show();
    665 if(button){
    666 $.data(popup,BUTTON,button);
    667 $popup.bind(CLICK,{popup:popup},$.proxy(popupClick,editor));
    668 }
    669 setTimeout(function(){
    670 $popup.find(":text,textarea").eq(0).focus().select();
    671 },100);
    672 }
    673 function sourceMode(editor){
    674 return editor.$area.is(":visible");
    675 }
    676 function updateFrame(editor,checkForChange){
    677 var code=editor.$area.val(),
    678 options=editor.options,
    679 updateFrameCallback=options.updateFrame,
    680 $body=$(editor.doc.body);
    681 if(updateFrameCallback){
    682 var sum=checksum(code);
    683 if(checkForChange&&editor.areaChecksum==sum)
    684 return;
    685 editor.areaChecksum=sum;
    686 }
    687 var html=updateFrameCallback?updateFrameCallback(code):code;
    688 html=html.replace(/<(?=\/?script)/ig,"&lt;");
    689 if(options.updateTextArea)
    690 editor.frameChecksum=checksum(html);
    691 if(html!=$body.html()){
    692 $body.html(html);
    693 $(editor).triggerHandler(CHANGE);
    694 }
    695 }
    696 function updateTextArea(editor,checkForChange){
    697 var html=$(editor.doc.body).html(),
    698 options=editor.options,
    699 updateTextAreaCallback=options.updateTextArea,
    700 $area=editor.$area;
    701 if(updateTextAreaCallback){
    702 var sum=checksum(html);
    703 if(checkForChange&&editor.frameChecksum==sum)
    704 return;
    705 editor.frameChecksum=sum;
    706 }
    707 var code=updateTextAreaCallback?updateTextAreaCallback(html):html;
    708 if(options.updateFrame)
    709 editor.areaChecksum=checksum(code);
    710 if(code!=$area.val()){
    711 $area.val(code);
    712 $(editor).triggerHandler(CHANGE);
    713 }
    714 }
     2    $.cleditor={
     3        defaultOptions:{
     4            width:500,
     5            height:250,
     6            controls:
     7                "bold italic underline strikethrough subscript superscript | font size "+
     8                    "style | color highlight removeformat | bullets numbering | outdent "+
     9                    "indent | alignleft center alignright justify | undo redo | "+
     10                    "rule image link unlink | cut copy paste pastetext | print source",
     11            colors:
     12                "FFF FCC FC9 FF9 FFC 9F9 9FF CFF CCF FCF "+
     13                    "CCC F66 F96 FF6 FF3 6F9 3FF 6FF 99F F9F "+
     14                    "BBB F00 F90 FC6 FF0 3F3 6CC 3CF 66C C6C "+
     15                    "999 C00 F60 FC3 FC0 3C0 0CC 36F 63F C3C "+
     16                    "666 900 C60 C93 990 090 399 33F 60C 939 "+
     17                    "333 600 930 963 660 060 366 009 339 636 "+
     18                    "000 300 630 633 330 030 033 006 309 303",
     19            fonts:
     20                "Arial,Arial Black,Comic Sans MS,Courier New,Narrow,Garamond,"+
     21                    "Georgia,Impact,Sans Serif,Serif,Tahoma,Trebuchet MS,Verdana",
     22            sizes:
     23                "1,2,3,4,5,6,7",
     24            styles:
     25                [["Parágrafo","<p>"],["Cabeçalho 1","<h1>"],["Cabeçalho 2","<h2>"],
     26                    ["Cabeçalho 3","<h3>"],["Cabeçalho 4","<h4>"],["Cabeçalho 5","<h5>"],
     27                    ["Cabeçalho 6","<h6>"]],
     28            useCSS:false,
     29            docType:
     30                '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
     31            docCSSFile:
     32                "",
     33            bodyStyle:
     34                "margin:4px; font:12px Arial, Verdana, Helvetica, sans-serif; color: #444; cursor:text"
     35        },
     36        buttons:{
     37            init:
     38                "bold,Negrito,|"+
     39                    "italic,Itálico,|"+
     40                    "underline,Sublinhado,|"+
     41                    "strikethrough,Tachado,|"+
     42                    "subscript,Subscrito,|"+
     43                    "superscript,Sobrescrito,|"+
     44                    "font,Fonte,fontname,|"+
     45                    "size,Tamanho da Fonte,fontsize,|"+
     46                    "style,Estilo,formatblock,|"+
     47                    "color,Cor da Fonte,forecolor,|"+
     48                    "highlight,Cor de Destaque,hilitecolor,color|"+
     49                    "removeformat,Remover Formatação,|"+
     50                    "bullets,Marcadores,insertunorderedlist|"+
     51                    "numbering,Lista Numerada,insertorderedlist|"+
     52                    "outdent,Diminuir Recuo,|"+
     53                    "indent,Aumentar Recuo,|"+
     54                    "alignleft,Alinhar à Esquerda,justifyleft|"+
     55                    "center,Centralizar,justifycenter|"+
     56                    "alignright,Alinhar à Direita,justifyright|"+
     57                    "justify,Justificar,justifyfull|"+
     58                    "undo,Desfazer,|"+
     59                    "redo,Refazer,|"+
     60                    "rule,Inserir Linha Horizontal,inserthorizontalrule|"+
     61                    "image,Inserir Imagem,insertimage,url|"+
     62                    "link,Inserir Link,createlink,url|"+
     63                    "unlink,Remover Link,|"+
     64                    "cut,Recortar,|"+
     65                    "copy,Copiar,|"+
     66                    "paste,Colar,|"+
     67                    "pastetext,Colar como Texto,inserthtml,|"+
     68                    "print,Imprimir,|"+
     69                    "source,Código-fonte"
     70        },
     71        imagesPath:function(){return imagesPath();}
     72    };
     73    $.fn.cleditor=function(options){
     74        var $result=$([]);
     75        this.each(function(idx,elem){
     76            if(elem.tagName=="TEXTAREA"){
     77                var data=$.data(elem,CLEDITOR);
     78                if(!data)data=new cleditor(elem,options);
     79                $result=$result.add(data);
     80            }
     81        });
     82        return $result;
     83    };
     84    var
     85        BACKGROUND_COLOR="backgroundColor",
     86        BUTTON="button",
     87        BUTTON_NAME="buttonName",
     88        CHANGE="change",
     89        CLEDITOR="cleditor",
     90        CLICK="click",
     91        DISABLED="disabled",
     92        DIV_TAG="<div>",
     93        TRANSPARENT="transparent",
     94        UNSELECTABLE="unselectable",
     95        MAIN_CLASS="cleditorMain",
     96        TOOLBAR_CLASS="cleditorToolbar",
     97        GROUP_CLASS="cleditorGroup",
     98        BUTTON_CLASS="cleditorButton",
     99        DISABLED_CLASS="cleditorDisabled",
     100        DIVIDER_CLASS="cleditorDivider",
     101        POPUP_CLASS="cleditorPopup",
     102        LIST_CLASS="cleditorList",
     103        COLOR_CLASS="cleditorColor",
     104        PROMPT_CLASS="cleditorPrompt",
     105        MSG_CLASS="cleditorMsg",
     106        ie=$.browser.msie,
     107        ie6=/msie\s6/i.test(navigator.userAgent),
     108        iOS=/iphone|ipad|ipod/i.test(navigator.userAgent),
     109        popups={},
     110        documentClickAssigned,
     111        buttons=$.cleditor.buttons;
     112    $.each(buttons.init.split("|"),function(idx,button){
     113        var items=button.split(","),name=items[0];
     114        buttons[name]={
     115            stripIndex:idx,
     116            name:name,
     117            title:items[1]===""?name.charAt(0).toUpperCase()+name.substr(1):items[1],
     118            command:items[2]===""?name:items[2],
     119            popupName:items[3]===""?name:items[3]
     120        };
     121    });
     122    delete buttons.init;
     123    cleditor=function(area,options){
     124        var editor=this;
     125        editor.options=options=$.extend({},$.cleditor.defaultOptions,options);
     126        var $area=editor.$area=$(area)
     127            .hide()
     128            .data(CLEDITOR,editor)
     129            .blur(function(){
     130                updateFrame(editor,true);
     131            });
     132        var $main=editor.$main=$(DIV_TAG)
     133            .addClass(MAIN_CLASS)
     134            .width(options.width)
     135            .height(options.height);
     136        var $toolbar=editor.$toolbar=$(DIV_TAG)
     137            .addClass(TOOLBAR_CLASS)
     138            .appendTo($main);
     139        var $group=$(DIV_TAG)
     140            .addClass(GROUP_CLASS)
     141            .appendTo($toolbar);
     142        $.each(options.controls.split(" "),function(idx,buttonName){
     143            if(buttonName==="")return true;
     144            if(buttonName=="|"){
     145                var $div=$(DIV_TAG)
     146                    .addClass(DIVIDER_CLASS)
     147                    .appendTo($group);
     148                $group=$(DIV_TAG)
     149                    .addClass(GROUP_CLASS)
     150                    .appendTo($toolbar);
     151            }
     152            else{
     153                var button=buttons[buttonName];
     154                var $buttonDiv=$(DIV_TAG)
     155                    .data(BUTTON_NAME,button.name)
     156                    .addClass(BUTTON_CLASS)
     157                    .attr("title",button.title)
     158                    .bind(CLICK,$.proxy(buttonClick,editor))
     159                    .appendTo($group)
     160                    .hover(hoverEnter,hoverLeave);
     161                var map={};
     162                if(button.css)map=button.css;
     163                else if(button.image)map.backgroundImage=imageUrl(button.image);
     164                if(button.stripIndex)map.backgroundPosition=button.stripIndex*-24;
     165                $buttonDiv.css(map);
     166                if(ie)
     167                    $buttonDiv.attr(UNSELECTABLE,"on");
     168                if(button.popupName)
     169                    createPopup(button.popupName,options,button.popupClass,
     170                        button.popupContent,button.popupHover);
     171            }
     172        });
     173        $main.insertBefore($area)
     174            .append($area);
     175        if(!documentClickAssigned){
     176            $(document).click(function(e){
     177                var $target=$(e.target);
     178                if(!$target.add($target.parents()).is("."+PROMPT_CLASS))
     179                    hidePopups();
     180            });
     181            documentClickAssigned=true;
     182        }
     183        if(/auto|%/.test(""+options.width+options.height))
     184            $(window).resize(function(){refresh(editor);});
     185        refresh(editor);
     186    };
     187    var fn=cleditor.prototype,
     188        methods=[
     189            ["clear",clear],
     190            ["disable",disable],
     191            ["execCommand",execCommand],
     192            ["focus",focus],
     193            ["hidePopups",hidePopups],
     194            ["sourceMode",sourceMode,true],
     195            ["refresh",refresh],
     196            ["select",select],
     197            ["selectedHTML",selectedHTML,true],
     198            ["selectedText",selectedText,true],
     199            ["showMessage",showMessage],
     200            ["updateFrame",updateFrame],
     201            ["updateTextArea",updateTextArea]
     202        ];
     203    $.each(methods,function(idx,method){
     204        fn[method[0]]=function(){
     205            var editor=this,args=[editor];
     206            for(var x=0;x<arguments.length;x++){args.push(arguments[x]);}
     207            var result=method[1].apply(editor,args);
     208            if(method[2])return result;
     209            return editor;
     210        };
     211    });
     212    fn.change=function(handler){
     213        var $this=$(this);
     214        return handler?$this.bind(CHANGE,handler):$this.trigger(CHANGE);
     215    };
     216    function buttonClick(e){
     217        var editor=this,
     218            buttonDiv=e.target,
     219            buttonName=$.data(buttonDiv,BUTTON_NAME),
     220            button=buttons[buttonName],
     221            popupName=button.popupName,
     222            popup=popups[popupName];
     223        if(editor.disabled||$(buttonDiv).attr(DISABLED)==DISABLED)
     224            return;
     225        var data={
     226            editor:editor,
     227            button:buttonDiv,
     228            buttonName:buttonName,
     229            popup:popup,
     230            popupName:popupName,
     231            command:button.command,
     232            useCSS:editor.options.useCSS
     233        };
     234        if(button.buttonClick&&button.buttonClick(e,data)===false)
     235            return false;
     236        if(buttonName=="source"){
     237            if(sourceMode(editor)){
     238                delete editor.range;
     239                editor.$area.hide();
     240                editor.$frame.show();
     241                buttonDiv.title=button.title;
     242            }
     243            else{
     244                editor.$frame.hide();
     245                editor.$area.show();
     246                buttonDiv.title="Show Rich Text";
     247            }
     248            setTimeout(function(){refreshButtons(editor);},100);
     249        }
     250        else if(!sourceMode(editor)){
     251            if(popupName){
     252                var $popup=$(popup);
     253                if(popupName=="url"){
     254                    if(buttonName=="link"&&selectedText(editor)===""){
     255                        showMessage(editor,"É necessário selecionar o texto para inserir um link.",buttonDiv);
     256                        return false;
     257                    }
     258                    $popup.children(":button")
     259                        .unbind(CLICK)
     260                        .bind(CLICK,function(){
     261                            var $text=$popup.find(":text"),
     262                                url=$.trim($text.val());
     263                            if(url!=="")
     264                                execCommand(editor,data.command,url,null,data.button);
     265                            $text.val("http://");
     266                            hidePopups();
     267                            focus(editor);
     268                        });
     269                }
     270                else if(popupName=="pastetext"){
     271                    $popup.children(":button")
     272                        .unbind(CLICK)
     273                        .bind(CLICK,function(){
     274                            var $textarea=$popup.find("textarea"),
     275                                text=$textarea.val().replace(/\n/g,"<br />");
     276                            if(text!=="")
     277                                execCommand(editor,data.command,text,null,data.button);
     278                            $textarea.val("");
     279                            hidePopups();
     280                            focus(editor);
     281                        });
     282                }
     283                if(buttonDiv!==$.data(popup,BUTTON)){
     284                    showPopup(editor,popup,buttonDiv);
     285                    return false;
     286                }
     287                return;
     288            }
     289            else if(buttonName=="print")
     290                editor.$frame[0].contentWindow.print();
     291            else if(!execCommand(editor,data.command,data.value,data.useCSS,buttonDiv))
     292                return false;
     293        }
     294        focus(editor);
     295    }
     296    function hoverEnter(e){
     297        var $div=$(e.target).closest("div");
     298        $div.css(BACKGROUND_COLOR,$div.data(BUTTON_NAME)?"#FFF":"#FFC");
     299    }
     300    function hoverLeave(e){
     301        $(e.target).closest("div").css(BACKGROUND_COLOR,"transparent");
     302    }
     303    function popupClick(e){
     304        var editor=this,
     305            popup=e.data.popup,
     306            target=e.target;
     307        if(popup===popups.msg||$(popup).hasClass(PROMPT_CLASS))
     308            return;
     309        var buttonDiv=$.data(popup,BUTTON),
     310            buttonName=$.data(buttonDiv,BUTTON_NAME),
     311            button=buttons[buttonName],
     312            command=button.command,
     313            value,
     314            useCSS=editor.options.useCSS;
     315        if(buttonName=="font")
     316            value=target.style.fontFamily.replace(/"/g,"");
     317        else if(buttonName=="size"){
     318            if(target.tagName=="DIV")
     319                target=target.children[0];
     320            value=target.innerHTML;
     321        }
     322        else if(buttonName=="style")
     323            value="<"+target.tagName+">";
     324        else if(buttonName=="color")
     325            value=hex(target.style.backgroundColor);
     326        else if(buttonName=="highlight"){
     327            value=hex(target.style.backgroundColor);
     328            if(ie)command='backcolor';
     329            else useCSS=true;
     330        }
     331        var data={
     332            editor:editor,
     333            button:buttonDiv,
     334            buttonName:buttonName,
     335            popup:popup,
     336            popupName:button.popupName,
     337            command:command,
     338            value:value,
     339            useCSS:useCSS
     340        };
     341        if(button.popupClick&&button.popupClick(e,data)===false)
     342            return;
     343        if(data.command&&!execCommand(editor,data.command,data.value,data.useCSS,buttonDiv))
     344            return false;
     345        hidePopups();
     346        focus(editor);
     347    }
     348    function checksum(text)
     349    {
     350        var a=1,b=0;
     351        for(var index=0;index<text.length;++index){
     352            a=(a+text.charCodeAt(index))%65521;
     353            b=(b+a)%65521;
     354        }
     355        return(b<<16)|a;
     356    }
     357    function clear(editor){
     358        editor.$area.val("");
     359        updateFrame(editor);
     360    }
     361    function createPopup(popupName,options,popupTypeClass,popupContent,popupHover){
     362        if(popups[popupName])
     363            return popups[popupName];
     364        var $popup=$(DIV_TAG)
     365            .hide()
     366            .addClass(POPUP_CLASS)
     367            .appendTo("body");
     368        if(popupContent)
     369            $popup.html(popupContent);
     370        else if(popupName=="color"){
     371            var colors=options.colors.split(" ");
     372            if(colors.length<10)
     373                $popup.width("auto");
     374            $.each(colors,function(idx,color){
     375                $(DIV_TAG).appendTo($popup)
     376                    .css(BACKGROUND_COLOR,"#"+color);
     377            });
     378            popupTypeClass=COLOR_CLASS;
     379        }
     380        else if(popupName=="font")
     381            $.each(options.fonts.split(","),function(idx,font){
     382                $(DIV_TAG).appendTo($popup)
     383                    .css("fontFamily",font)
     384                    .html(font);
     385            });
     386        else if(popupName=="size")
     387            $.each(options.sizes.split(","),function(idx,size){
     388                $(DIV_TAG).appendTo($popup)
     389                    .html("<font size="+size+">"+size+"</font>");
     390            });
     391        else if(popupName=="style")
     392            $.each(options.styles,function(idx,style){
     393                $(DIV_TAG).appendTo($popup)
     394                    .html(style[1]+style[0]+style[1].replace("<","</"));
     395            });
     396        else if(popupName=="url"){
     397            $popup.html('Enter URL:<br><input type=text value="http://" size=35><br><input type=button value="Submit">');
     398            popupTypeClass=PROMPT_CLASS;
     399        }
     400        else if(popupName=="pastetext"){
     401            $popup.html('Cole aqui o texto formato e pressione o botão<br /><textarea cols=40 rows=3></textarea><br /><input type=button value=Inserir>');
     402            popupTypeClass=PROMPT_CLASS;
     403        }
     404        if(!popupTypeClass&&!popupContent)
     405            popupTypeClass=LIST_CLASS;
     406        $popup.addClass(popupTypeClass);
     407        if(ie){
     408            $popup.attr(UNSELECTABLE,"on")
     409                .find("div,font,p,h1,h2,h3,h4,h5,h6")
     410                .attr(UNSELECTABLE,"on");
     411        }
     412        if($popup.hasClass(LIST_CLASS)||popupHover===true)
     413            $popup.children().hover(hoverEnter,hoverLeave);
     414        popups[popupName]=$popup[0];
     415        return $popup[0];
     416    }
     417    function disable(editor,disabled){
     418        if(disabled){
     419            editor.$area.attr(DISABLED,DISABLED);
     420            editor.disabled=true;
     421        }
     422        else{
     423            editor.$area.removeAttr(DISABLED);
     424            delete editor.disabled;
     425        }
     426        try{
     427            if(ie)editor.doc.body.contentEditable=!disabled;
     428            else editor.doc.designMode=!disabled?"on":"off";
     429        }
     430        catch(err){}
     431        refreshButtons(editor);
     432    }
     433    function execCommand(editor,command,value,useCSS,button){
     434        restoreRange(editor);
     435        if(!ie){
     436            if(useCSS===undefined||useCSS===null)
     437                useCSS=editor.options.useCSS;
     438            editor.doc.execCommand("styleWithCSS",0,useCSS.toString());
     439        }
     440        var success=true,description;
     441        if(ie&&command.toLowerCase()=="inserthtml")
     442            getRange(editor).pasteHTML(value);
     443        else{
     444            try{success=editor.doc.execCommand(command,0,value||null);}
     445            catch(err){description=err.description;success=false;}
     446            if(!success){
     447                if("cutcopypaste".indexOf(command)>-1)
     448                    showMessage(editor,"Por questão de segurança, seu browser não suporta o comando "+
     449                        command+". Tente utilizar as teclas de atalho ou menu contextual em vez disso.",
     450                        button);
     451                else
     452                    showMessage(editor,
     453                        (description?description:"Error executing the "+command+" command."),
     454                        button);
     455            }
     456        }
     457        refreshButtons(editor);
     458        return success;
     459    }
     460    function focus(editor){
     461        setTimeout(function(){
     462            if(sourceMode(editor))editor.$area.focus();
     463            else editor.$frame[0].contentWindow.focus();
     464            refreshButtons(editor);
     465        },0);
     466    }
     467    function getRange(editor){
     468        if(ie)return getSelection(editor).createRange();
     469        return getSelection(editor).getRangeAt(0);
     470    }
     471    function getSelection(editor){
     472        if(ie)return editor.doc.selection;
     473        return editor.$frame[0].contentWindow.getSelection();
     474    }
     475    function hex(s){
     476        var m=/rgba?\((\d+), (\d+), (\d+)/.exec(s),
     477            c=s.split("");
     478        if(m){
     479            s=(m[1]<<16|m[2]<<8|m[3]).toString(16);
     480            while(s.length<6)
     481                s="0"+s;
     482        }
     483        return"#"+(s.length==6?s:c[1]+c[1]+c[2]+c[2]+c[3]+c[3]);
     484    }
     485    function hidePopups(){
     486        $.each(popups,function(idx,popup){
     487            $(popup)
     488                .hide()
     489                .unbind(CLICK)
     490                .removeData(BUTTON);
     491        });
     492    }
     493    function imagesPath(){
     494        var cssFile="jquery.cleditor.css",
     495            href=$("link[href$='"+cssFile+"']").attr("href");
     496        return href.substr(0,href.length-cssFile.length)+"images/";
     497    }
     498    function imageUrl(filename){
     499        return"url("+imagesPath()+filename+")";
     500    }
     501    function refresh(editor){
     502        var $main=editor.$main,
     503            options=editor.options;
     504        if(editor.$frame)
     505            editor.$frame.remove();
     506        var $frame=editor.$frame=$('<iframe frameborder="0" src="javascript:true;">')
     507            .hide()
     508            .appendTo($main);
     509        var contentWindow=$frame[0].contentWindow,
     510            doc=editor.doc=contentWindow.document,
     511            $doc=$(doc);
     512        doc.open();
     513        doc.write(
     514            options.docType+
     515                '<html>'+
     516                ((options.docCSSFile==='')?'':'<head><link rel="stylesheet" type="text/css" href="'+options.docCSSFile+'" /></head>')+
     517                '<body style="'+options.bodyStyle+'"></body></html>'
     518        );
     519        doc.close();
     520        if(ie)
     521            $doc.click(function(){focus(editor);});
     522        updateFrame(editor);
     523        if(ie){
     524            $doc.bind("beforedeactivate beforeactivate selectionchange keypress",function(e){
     525                if(e.type=="beforedeactivate")
     526                    editor.inactive=true;
     527                else if(e.type=="beforeactivate"){
     528                    if(!editor.inactive&&editor.range&&editor.range.length>1)
     529                        editor.range.shift();
     530                    delete editor.inactive;
     531                }
     532                else if(!editor.inactive){
     533                    if(!editor.range)
     534                        editor.range=[];
     535                    editor.range.unshift(getRange(editor));
     536                    while(editor.range.length>2)
     537                        editor.range.pop();
     538                }
     539            });
     540            $frame.focus(function(){
     541                restoreRange(editor);
     542            });
     543        }
     544        ($.browser.mozilla?$doc:$(contentWindow)).blur(function(){
     545            updateTextArea(editor,true);
     546        });
     547        $doc.click(hidePopups)
     548            .bind("keyup mouseup",function(){
     549                refreshButtons(editor);
     550            });
     551        if(iOS)editor.$area.show();
     552        else $frame.show();
     553        $(function(){
     554            var $toolbar=editor.$toolbar,
     555                $group=$toolbar.children("div:last"),
     556                wid=$main.width();
     557            var hgt=$group.offset().top+$group.outerHeight()-$toolbar.offset().top+1;
     558            $toolbar.height(hgt);
     559            hgt=(/%/.test(""+options.height)?$main.height():parseInt(options.height))-hgt;
     560            $frame.width(wid).height(hgt);
     561            editor.$area.width(wid).height(ie6?hgt-2:hgt);
     562            disable(editor,editor.disabled);
     563            refreshButtons(editor);
     564        });
     565    }
     566    function refreshButtons(editor){
     567        if(!iOS&&$.browser.webkit&&!editor.focused){
     568            editor.$frame[0].contentWindow.focus();
     569            window.focus();
     570            editor.focused=true;
     571        }
     572        var queryObj=editor.doc;
     573        if(ie)queryObj=getRange(editor);
     574        var inSourceMode=sourceMode(editor);
     575        $.each(editor.$toolbar.find("."+BUTTON_CLASS),function(idx,elem){
     576            var $elem=$(elem),
     577                button=$.cleditor.buttons[$.data(elem,BUTTON_NAME)],
     578                command=button.command,
     579                enabled=true;
     580            if(editor.disabled)
     581                enabled=false;
     582            else if(button.getEnabled){
     583                var data={
     584                    editor:editor,
     585                    button:elem,
     586                    buttonName:button.name,
     587                    popup:popups[button.popupName],
     588                    popupName:button.popupName,
     589                    command:button.command,
     590                    useCSS:editor.options.useCSS
     591                };
     592                enabled=button.getEnabled(data);
     593                if(enabled===undefined)
     594                    enabled=true;
     595            }
     596            else if(((inSourceMode||iOS)&&button.name!="source")||
     597                (ie&&(command=="undo"||command=="redo")))
     598                enabled=false;
     599            else if(command&&command!="print"){
     600                if(ie&&command=="hilitecolor")
     601                    command="backcolor";
     602                if(!ie||command!="inserthtml"){
     603                    try{enabled=queryObj.queryCommandEnabled(command);}
     604                    catch(err){enabled=false;}
     605                }
     606            }
     607            if(enabled){
     608                $elem.removeClass(DISABLED_CLASS);
     609                $elem.removeAttr(DISABLED);
     610            }
     611            else{
     612                $elem.addClass(DISABLED_CLASS);
     613                $elem.attr(DISABLED,DISABLED);
     614            }
     615        });
     616    }
     617    function restoreRange(editor){
     618        if(ie&&editor.range)
     619            editor.range[0].select();
     620    }
     621    function select(editor){
     622        setTimeout(function(){
     623            if(sourceMode(editor))editor.$area.select();
     624            else execCommand(editor,"selectall");
     625        },0);
     626    }
     627    function selectedHTML(editor){
     628        restoreRange(editor);
     629        var range=getRange(editor);
     630        if(ie)
     631            return range.htmlText;
     632        var layer=$("<layer>")[0];
     633        layer.appendChild(range.cloneContents());
     634        var html=layer.innerHTML;
     635        layer=null;
     636        return html;
     637    }
     638    function selectedText(editor){
     639        restoreRange(editor);
     640        if(ie)return getRange(editor).text;
     641        return getSelection(editor).toString();
     642    }
     643    function showMessage(editor,message,button){
     644        var popup=createPopup("msg",editor.options,MSG_CLASS);
     645        popup.innerHTML=message;
     646        showPopup(editor,popup,button);
     647    }
     648    function showPopup(editor,popup,button){
     649        var offset,left,top,$popup=$(popup);
     650        if(button){
     651            var $button=$(button);
     652            offset=$button.offset();
     653            left=--offset.left;
     654            top=offset.top+$button.height();
     655        }
     656        else{
     657            var $toolbar=editor.$toolbar;
     658            offset=$toolbar.offset();
     659            left=Math.floor(($toolbar.width()-$popup.width())/2)+offset.left;
     660            top=offset.top+$toolbar.height()-2;
     661        }
     662        hidePopups();
     663        $popup.css({left:left,top:top})
     664            .show();
     665        if(button){
     666            $.data(popup,BUTTON,button);
     667            $popup.bind(CLICK,{popup:popup},$.proxy(popupClick,editor));
     668        }
     669        setTimeout(function(){
     670            $popup.find(":text,textarea").eq(0).focus().select();
     671        },100);
     672    }
     673    function sourceMode(editor){
     674        return editor.$area.is(":visible");
     675    }
     676    function updateFrame(editor,checkForChange){
     677        var code=editor.$area.val(),
     678            options=editor.options,
     679            updateFrameCallback=options.updateFrame,
     680            $body=$(editor.doc.body);
     681        if(updateFrameCallback){
     682            var sum=checksum(code);
     683            if(checkForChange&&editor.areaChecksum==sum)
     684                return;
     685            editor.areaChecksum=sum;
     686        }
     687        var html=updateFrameCallback?updateFrameCallback(code):code;
     688        html=html.replace(/<(?=\/?script)/ig,"&lt;");
     689        if(options.updateTextArea)
     690            editor.frameChecksum=checksum(html);
     691        if(html!=$body.html()){
     692            $body.html(html);
     693            $(editor).triggerHandler(CHANGE);
     694        }
     695    }
     696    function updateTextArea(editor,checkForChange){
     697        var html=$(editor.doc.body).html(),
     698            options=editor.options,
     699            updateTextAreaCallback=options.updateTextArea,
     700            $area=editor.$area;
     701        if(updateTextAreaCallback){
     702            var sum=checksum(html);
     703            if(checkForChange&&editor.frameChecksum==sum)
     704                return;
     705            editor.frameChecksum=sum;
     706        }
     707        var code=updateTextAreaCallback?updateTextAreaCallback(html):html;
     708        if(options.updateFrame)
     709            editor.areaChecksum=checksum(code);
     710        if(code!=$area.val()){
     711            $area.val(code);
     712            $(editor).triggerHandler(CHANGE);
     713        }
     714    }
    715715})(jQuery);
    716716var is={
    717 ie:navigator.appName=='Microsoft Internet Explorer',
    718 java:navigator.javaEnabled(),
    719 ns:navigator.appName=='Netscape',
    720 ua:navigator.userAgent.toLowerCase(),
    721 version:parseFloat(navigator.appVersion.substr(21))||
    722 parseFloat(navigator.appVersion),
    723 win:navigator.platform=='Win32'
     717    ie:navigator.appName=='Microsoft Internet Explorer',
     718    java:navigator.javaEnabled(),
     719    ns:navigator.appName=='Netscape',
     720    ua:navigator.userAgent.toLowerCase(),
     721    version:parseFloat(navigator.appVersion.substr(21))||
     722        parseFloat(navigator.appVersion),
     723    win:navigator.platform=='Win32'
    724724}
    725725is.mac=is.ua.indexOf('mac')>=0;
    726726if(is.ua.indexOf('opera')>=0){
    727 is.ie=is.ns=false;
    728 is.opera=true;
     727    is.ie=is.ns=false;
     728    is.opera=true;
    729729}
    730730if(is.ua.indexOf('gecko')>=0){
    731 is.ie=is.ns=false;
    732 is.gecko=true;
     731    is.ie=is.ns=false;
     732    is.gecko=true;
    733733}
  • ILSAPL/trunk/skins/sk_sapl/javascript/jquery.cleditor.xhtml.min.js.dtml

    r6791 r7608  
    1111 Original code by Erik Arvidsson, Mozilla Public License
    1212 http://erik.eae.net/simplehtmlparser/simplehtmlparser.js
    13 */
     13 */
    1414(function(k){var n=k.cleditor.defaultOptions.updateTextArea;k.cleditor.defaultOptions.updateTextArea=function(a){if(n)a=n(a);return k.cleditor.convertHTMLtoXHTML(a)};k.cleditor.convertHTMLtoXHTML=function(a){function i(e){var b={};e=e.split(",");for(var f=0;f<e.length;f++)b[e[f]]=true;return b}function v(e,b,f,h){b=b.toLowerCase();if(w[b])for(;c.last()&&x[c.last()];)j("",c.last());y[b]&&c.last()==b&&j("",b);(h=z[b]||!!h)||c.push(b);var l=[];f.replace(A,function(D,m,o,p,q){l.push({name:m,escaped:(o?
    15 o:p?p:q?q:B[m]?m:"").replace(/(^|[^\\])"/g,'$1\\"')})});g+="<"+b;for(e=0;e<l.length;e++)g+=" "+l[e].name+'="'+l[e].escaped+'"';g+=(h?"/":"")+">"}function j(e,b){if(b){b=b.toLowerCase();for(f=c.length-1;f>=0;f--)if(c[f]==b)break}else var f=0;if(f>=0){for(var h=c.length-1;h>=f;h--)g+="</"+c[h]+">";c.length=f}}function r(e,b){g=g.replace(e,b)}var s=/^<(\w+)((?:\s+\w+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/,t=/^<\/(\w+)[^>]*>/,A=/(\w+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g,
    16 z=i("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed"),w=i("address,applet,blockquote,button,center,dd,del,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul"),x=i("a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var"),y=i("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr"),
    17 B=i("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"),C=i("script,style"),c=[];c.last=function(){return this[this.length-1]};for(var d,u=a,g="";a;){if(!c.last()||!C[c.last()])if(a.indexOf("<!--")==0){d=a.indexOf("--\>");if(d>=0){g+=a.substring(0,d+3);a=a.substring(d+3)}}else if(a.indexOf("</")==0){if(d=a.match(t)){a=a.substring(d[0].length);d[0].replace(t,j)}}else if(a.indexOf("<")==0){if(d=a.match(s)){a=a.substring(d[0].length);d[0].replace(s,
    18 v)}}else{d=a.indexOf("<");g+=d<0?a:a.substring(0,d);a=d<0?"":a.substring(d)}else{a=a.replace(RegExp("(.*)</"+c.last()+"[^>]*>"),function(e,b){b=b.replace(/<!--(.*?)--\>/g,"$1").replace(/<!\[CDATA\[(.*?)]]\>/g,"$1");g+=b;return""});j("",c.last())}if(a==u)throw"Parse Error: "+a;u=a}j();r(/<b>(.*?)<\/b>/g,"<strong>$1</strong>");r(/<i>(.*?)<\/i>/g,"<em>$1</em>");return g}})(jQuery);
     15    o:p?p:q?q:B[m]?m:"").replace(/(^|[^\\])"/g,'$1\\"')})});g+="<"+b;for(e=0;e<l.length;e++)g+=" "+l[e].name+'="'+l[e].escaped+'"';g+=(h?"/":"")+">"}function j(e,b){if(b){b=b.toLowerCase();for(f=c.length-1;f>=0;f--)if(c[f]==b)break}else var f=0;if(f>=0){for(var h=c.length-1;h>=f;h--)g+="</"+c[h]+">";c.length=f}}function r(e,b){g=g.replace(e,b)}var s=/^<(\w+)((?:\s+\w+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/,t=/^<\/(\w+)[^>]*>/,A=/(\w+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g,
     16    z=i("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed"),w=i("address,applet,blockquote,button,center,dd,del,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul"),x=i("a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var"),y=i("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr"),
     17    B=i("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"),C=i("script,style"),c=[];c.last=function(){return this[this.length-1]};for(var d,u=a,g="";a;){if(!c.last()||!C[c.last()])if(a.indexOf("<!--")==0){d=a.indexOf("--\>");if(d>=0){g+=a.substring(0,d+3);a=a.substring(d+3)}}else if(a.indexOf("</")==0){if(d=a.match(t)){a=a.substring(d[0].length);d[0].replace(t,j)}}else if(a.indexOf("<")==0){if(d=a.match(s)){a=a.substring(d[0].length);d[0].replace(s,
     18    v)}}else{d=a.indexOf("<");g+=d<0?a:a.substring(0,d);a=d<0?"":a.substring(d)}else{a=a.replace(RegExp("(.*)</"+c.last()+"[^>]*>"),function(e,b){b=b.replace(/<!--(.*?)--\>/g,"$1").replace(/<!\[CDATA\[(.*?)]]\>/g,"$1");g+=b;return""});j("",c.last())}if(a==u)throw"Parse Error: "+a;u=a}j();r(/<b>(.*?)<\/b>/g,"<strong>$1</strong>");r(/<i>(.*?)<\/i>/g,"<em>$1</em>");return g}})(jQuery);
  • ILSAPL/trunk/skins/sk_sapl/pysc/expedientes_salvar_pysc.py

    r7568 r7608  
    3535            txt_expediente=dic.get(e)
    3636        )
     37
     38        nome_expediente = context.zsql.tipo_expediente_obter_zsql(cod_expediente = e, ind_excluido = 0)[0].nom_expediente
    3739        context.pysc.sessao_plenaria_log_pysc(
    3840            cod_sessao_plen = cod_sessao_plen,
    3941            txt_acao = 'inclusão de expediente',
    40             txt_mensagem = 'O expediente ' + nomes_expediente[e] + ' foi incluído na sessão plenária.'
     42            txt_mensagem = 'O expediente ' + nome_expediente + ' foi incluído na sessão plenária.'
    4143        )
    4244
Note: Veja TracChangeset para ajuda no uso do visualizador de conjunto de mudanças.
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.