GureWork > espacios de Coworking topalekuak :)
Template:SandBox > Calculator-CoDoer-3

Calculator-CoDoer-3
Calculator-CoDoer-3Edit

    Testing

    Wiki.Template(":MindTouch/CoDoer/Engines/CoDoer",{
      action: "Test",
      widget: page.path,
      engine: "#3",
      id: "test",
      language: "en",  
      logging: {evt:1,par:0,wdt:0,ctr:0}
    });
    

    Parameters

    var mPars = {
        language: __request.args.language ?? args.language ?? ( page.language != '' ? page.language : (site.language!='' ? site.language : 'en-us'))
    };
    var sLang=mPars.language;
    

    Includes

    dekiapi();
    

    Views - Events

    View : Document

    Event :  document.ready
    <script type="text/jem">"
      $('td#result').text('0');
    "</script> 
    

    View : Calculator

    #[Calculator]

     
         
     
    MC MR MS M+ M-
    <- CE C +- sqrt
    7 8 9 / %
    4 5 6 * 1/x
    1 2 3 - .
      0   + =
    Event : calc.click
    <script type="text/jem">"
      var key=_evelem;
      if (key=='td')
        key=jQuery.trim(Deki.$(event).text());
      if (key!='')
      {
        Log('Key: \"'+key+'\"');
        var result=jQuery.trim($('td#result').text());
        var oper=jQuery.trim($('td#oper').text());
        var last=jQuery.trim($('td#last').text());
        if ((oper=='=')&&(key!='=')&&(key!='prev'))
          $('td#prev').text(result);
        //Log('Result#1: \"'+result+'\"');
        var decpos=result.indexOf('.');
        if (decpos>=0)
          decpos=result.length-decpos-1;
        var optor='';
        switch (key)
        {
        case '0': case '1': case '2': case '3': case '4':
        case '5': case '6': case '7': case '8': case '9':       
          if (oper=='=')
          {
            oper='';
            $('td#result').text('');
            result='0';
          }//if
          if ((result!='')&&(result!='0'))
          {
            if (decpos<2)
              result+=key;
            if (decpos>=0)
              decpos++;
          }//if
          else
            result=key;
          break;
        case '.':
          if (decpos<0)
            result+=key;
          break;
        case '=':
        case '+': case '-': case '*': case '/':
          if (optor=='') optor='b';
        case '+-': case '1/x': case 'sqrt': case '%':
          if (optor=='') optor='u';
          if ((last!='')||(optor=='u'))
          {
            if (optor=='b')
              result=eval(last+oper+result);
            else if (key=='+-')
            {
              if (result.charAt(0)=='-')
                result=result.substring(1);
              else if (result!='0')
                result='-'+result;
            }//ei
            else if (key=='1/x')
              result=eval('1/'+result);
            else if (key=='sqrt')
              result=Math.sqrt(result); 
            else if (key=='%')
            {
              if (oper=='/')
                result=eval(last+'/'+(result/100));
              else
                result=eval(last+'*'+(result/100));
              if ((oper=='*')||(oper=='/'))
              { oper=''; last=''; }//if
            }//ei
            result=result.toString();
            decpos=result.indexOf('.');
            if (decpos>=0)
              decpos=result.length-decpos-1;
            if (decpos>0)
            {
              decpos=Math.min(decpos,2);
              result=Math.round(result*Math.pow(10,decpos))/Math.pow(10,decpos); //rount to decpos
            }//if
          }//if
          if (oper=='=')
            oper='';
          if (key=='=')
          { oper='='; last=''; }//if
          else if (optor=='b')
          { oper=key; last=result; result=0; }//ei
          break;    
        case '<-':
          result=result.substring(0,result.length-1);
          break;
        case 'CE':
          result='0';
          break;
        case 'C':
          result='0';
          oper='';
          last='';
          break;
        case 'MC': case 'MR': case 'MS': case 'M+': case 'M-': 
          var mem=jQuery.trim($('td#mem').text());
          if (key=='MC')
            mem='0';
          else if (key=='MR')
            result=mem;
          else if (key=='MS')
            mem=result;
          else
            mem=eval(mem+key.substring(1)+result);
          $('td#mem').text(mem);
          break;
        case 'prev':
          var prev=jQuery.trim($('td#prev').text());
          if (prev!='')
            result=prev;
          break;
        default:
          oper=key;
          last='';
          result='0';
        }//sw
        $('td#last').text(last);
        $('td#oper').text(oper);
        $('td#result').text(result);
        //Log('Result#2: \"'+result+'\"');
      }//if
    "</script>
    

    Controller

    Interactions

    Source Scene Source View Html Element On Event Resp. Type Resp. Section Operations Target Scene Options
    calc Document document load View Calculator      
    calc Document document ready Event Document      
    calc Calculator td click Event calc      
    calc Calculator prev click Event calc      

    Resources

    Languages

    Lang : en
    Web.Pre(Json.Format(
    {
        calculator: 'Calculator'
    }));
    
    Lang : es
    Web.Pre(JSon.Format(
    {
        calculator: 'Calculadora'
    }));
    
    Lang : eu
    Web.Pre(JSon.Format(
    {
        calculator: 'Kalkulagailua'
    }));
    
    Powered by MindTouch Core (Expired)