{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-leo/src/components/tools/lively-cloudscripting.js"],"names":["Morph","pt","endpoint","name","filename","type","loggingId","currentlyShownConfig","LivelyCloudscripting","initialize","windowTitle","addButton","get","addEventListener","addButtonClick","bind","login","loginClick","credentials","credentialsClick","codeEditor","tryBoundEval","console","log","boundEval","that","newFilename","prompt","$","ajax","url","data","JSON","stringify","success","res","lively","notify","undefined","done","error","logsEditor","editor","setReadOnly","startButton","startButtonClick","stopButton","stopButtonClick","config","evt","openComponentInWindow","then","browser","path","urlExtension","setGlobalPosition","parentElement","getGlobalPosition","addPt","setMainAction","addTrigger","onCloseButtonClicked","value","getTriggers","credentialsWindow","setName","getCredentials","entryPoint","clearInterval","setInterval","getTriggerLogs","user","triggerId","handleAjaxError","triggerName","toString","substring","lastIndexOf","warn","reRender","setValue","gotoPageDown","triggers","triggerWrapper","firstChild","removeChild","prop","hasOwnProperty","item","createItem","actionList","addActionsToItem","length","event","stopPropagation","target","parentNode","children","innerHTML","assignAction","classList","add","getStatusForTrigger","appendChild","status","running","i","actionName","action","document","createElement","elementName","previousElementSibling","actionId","showConfig","replace","showCode","setAttribute","icon","unassignAction","setUpConfigButton","saveurl","table","saveConfig","childNodes","className","textContent","nextElementSibling","childElementCount","lastChild","renderConfig","title","configEditor","unsavedChanges","doSave","cross","insertBefore","e","key","row","insertRow","cell1","insertCell","cell2","input","createConfigField","inputKey","placeholder","inputValue","jqXHR","textStatus","errorThrown","dataset","parent","id","file2beSaved","responseText","saveCode","getValue","assignActionUrl"],"mappings":"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","file":"lively-cloudscripting.js","sourcesContent":["import Morph from 'src/components/widgets/lively-morph.js';\nimport {pt} from 'src/client/graphics.js';\n\nconst endpoint = 'https://lively4-services.herokuapp.com/';\nvar name;\nvar filename; \nvar type;\nvar loggingId;\nvar currentlyShownConfig=null;\n\nexport default class LivelyCloudscripting extends Morph {\n  async initialize() {\n    this.windowTitle = \"Cloudscripting\";\n    this.addButton = this.get('#addTriggerButton');\n    this.addButton.addEventListener('click', this.addButtonClick.bind(this));\n    this.login = this.get('#login');\n    this.login.addEventListener('click', this.loginClick.bind(this));\n    this.credentials = this.get('#credentials');\n    this.credentials.addEventListener('click', this.credentialsClick.bind(this));\n    this.codeEditor = this.get('#code');\n    this.codeEditor.tryBoundEval=function(){console.log(\"something\")}\n    this.codeEditor.boundEval=function(){console.log(\"something\")}\n    var that = this\n    this.get(\"#createWatcher\").addEventListener('click',function(){\n      \n      var newFilename=prompt(\"Enter the name of the new watcher\",\"\");\n      if(newFilename){\n        $.ajax({\n          url: endpoint+\"createTrigger\",\n          type: 'POST',\n          data:JSON.stringify({\n            name:newFilename\n          }),\n          success: function(res){\n            lively.notify(\"Successfully created new watcher.\",undefined, undefined, undefined, \"green\")\n          },   \n          done: function(res){lively.notify(\"done\")},\n          error: function(res){lively.notify(res,\"red\")}\n        });\n      }\n    })\n    this.get(\"#createAction\").addEventListener('click',function(){\n      \n      var newFilename=prompt(\"Enter the name of the new action\",\"\");\n      if(newFilename){\n        $.ajax({\n          url: endpoint+\"createAction\",\n          type: 'POST',\n          data:JSON.stringify({\n            name:newFilename\n          }),\n          success: function(res){\n           lively.notify(\"Successfully created new action.\", undefined, undefined, undefined, \"green\")\n          },   \n          done: function(res){lively.notify(\"done\")},\n          error: function(res){lively.notify(res,\"red\")}\n        });\n      }\n    })\n    // this.codeEditor.commands.addCommand({\n    //   name: \"save\",\n    //   bindKey: {win: \"Ctrl-S\", mac: \"Command-S\"},\n    //   exec: (editor) => {\n    //     this.saveCode()\n    //   }\n    // });\n    this.logsEditor = this.get('#logs').editor;\n    if (this.logsEditor) { // editor is not initialized during testing\n      this.logsEditor.setReadOnly(true);\n    }\n    this.startButton = this.get('#startButton');\n    this.startButton.addEventListener('click', this.startButtonClick.bind(this));\n    this.stopButton = this.get('#stopButton');\n    this.stopButton.addEventListener('click', this.stopButtonClick.bind(this));\n    this.config=null;\n  }\n  \n  /*\n   * Event handlers\n   */\n  \n  addButtonClick(evt) {\n    lively.openComponentInWindow('lively-cloudscripting-file-browser').then(browser => {\n      browser.path = endpoint + 'mount/watcher';\n      browser.urlExtension=\"getWatcherDescription\"\n      lively.setGlobalPosition(browser.parentElement, lively.getGlobalPosition(this.parentElement).addPt(pt(30,30)))\n      browser.setMainAction((url) => {\n        this.addTrigger(url);\n        browser.parentElement.onCloseButtonClicked();\n      });\n    });\n  }\n  \n  loginClick(evt) {\n    name = this.get('#name').value;\n    this.getTriggers();\n    //setInterval(() => {this.getTriggers()}, 2000);\n  }\n  \n  credentialsClick(evt) {\n    var that = this;\n    lively.openComponentInWindow('lively-cloudscripting-credentials').then(credentialsWindow => {\n      credentialsWindow.setName(name);\n      credentialsWindow.getCredentials(name);\n    });\n  }\n  \n  startButtonClick(entryPoint) {\n    var that = this;\n    clearInterval(loggingId);\n    loggingId = setInterval(function() {\n      that.getTriggerLogs(that.filename);  \n    },2000)\n    $.ajax({\n      url: endpoint + 'runTrigger',\n      type: 'POST',\n      data: JSON.stringify({\n        user: name,\n        triggerId: that.filename\n      }),\n      success: () => {lively.notify(\"start script\")},\n      error: function(res){console.log(res)}\n    })\n    \n  }\n\n  stopButtonClick(entryPoint) {\n    var that=this\n    clearInterval(loggingId); \n    $.ajax({\n      url: endpoint + 'stopTrigger',\n      type: 'POST',\n      data: JSON.stringify({\n        user: name,\n        triggerId: that.filename\n      }),\n      success: () => {lively.notify(\"stop\")},\n      error: this.handleAjaxError.bind(this)\n    })\n  }\n  \n  // functions\n  addTrigger(triggerName) {\n    triggerName = triggerName.toString();\n    triggerName = triggerName.substring(triggerName.lastIndexOf('/') + 1);\n    lively.warn(\"assignTrigger at \" + endpoint + \"assignTrigger\" + \"for user\" + name + \"and trigger \" + triggerName )\n    $.ajax({\n      url: endpoint + 'assignTrigger',\n      type: 'POST',\n      data: JSON.stringify({\n        user: name,\n        triggerId: triggerName\n      }),\n      success: this.getTriggers.bind(this),\n      error: this.handleAjaxError.bind(this)\n    })\n  }\n  \n  getTriggers() {\n    $.ajax({\n      url: endpoint + 'getUserTriggers',\n      type: 'POST',\n      data: JSON.stringify({\n        user: name\n      }),\n      success: this.reRender.bind(this),\n      error: function(res){lively.notify(JSON.stringify(res)); lively.notify(\"user doesn't exist? \"); }\n    })\n  }\n  \n  getTriggerLogs(triggerName) {\n    var that = this;\n    console.log(\"triggerName \"+triggerName)\n    console.log(\"name \"+name)\n    $.ajax({\n      url: endpoint + 'getTriggerLogs',\n      type: 'POST',\n      data: JSON.stringify({\n        triggerId: triggerName,\n        user: name\n      }),\n      success: function(res) {console.log(res);that.logsEditor.setValue(res), that.logsEditor.gotoPageDown()},\n      error: this.handleAjaxError.bind(this)\n    })\n  }\n  \n  reRender(triggers) {\n    if( typeof triggers === 'string') {\n      lively.notify(\"New user created\", undefined, undefined, undefined, \"green\");\n      return;\n    }\n    lively.notify(\"Successfully logged in\", undefined, undefined, undefined, \"green\");\n    var triggerWrapper = this.get('#trigger-wrapper');\n    while(triggerWrapper.firstChild) {\n      triggerWrapper.removeChild(triggerWrapper.firstChild)\n    }\n    \n    for(var prop in triggers) {\n      var that = this;\n      if(!triggers.hasOwnProperty(prop)) continue;\n      \n      var item = this.createItem(prop);\n      var actionList = item.get('.action-list');\n      this.addActionsToItem(triggers, prop, triggers[prop]['actions'] ? triggers[prop]['actions'].length : 0, that, actionList);\n      \n      item.get('.add-action').addEventListener('click', function(event){\n        event.stopPropagation();\n        var triggerName = event.target.parentNode.parentNode.children[0].children[1].innerHTML;\n        that.assignAction.bind(that);\n        that.assignAction(triggerName);\n      });\n    \n      item.get('.status').classList.add(this.getStatusForTrigger(triggers, prop)); \n      triggerWrapper.appendChild(item);\n    }\n  }\n  \n  getStatusForTrigger(triggers, prop) {\n    var status = triggers[prop].running === 'true' ? 1 : 0;\n    if (triggers[prop].running) {\n      status = 'running';\n    } else if (!triggers[prop].running) {\n      status = 'not-running';\n    }\n    return status;\n  }\n  \n  addActionsToItem(triggers, prop, length, that, actionList) {\n    for(var i=0; i<length; i++) {\n        var actionName = triggers[prop]['actions'][i].name;\n        var action = document.createElement('lively-cloudscripting-action-item');\n        \n        action.get(\".editTemplate\").addEventListener('click',function(evt){\n          var elementName =evt.target.previousElementSibling.previousElementSibling.innerHTML\n          $.ajax({\n          url: endpoint+\"getActionConfigTemplate\",\n          type: 'POST',\n          data:JSON.stringify({\n            actionId:elementName\n          }),\n          success: function(res){\n           lively.notify(\"Successfully remove action.\")\n            console.log(res);\n            that.showConfig(res,null,actionName);\n          },   \n          done: function(res){lively.notify(\"done\")},\n          error: function(res){console.log(res)}\n        }); \n        })\n        action.get(\".deleteWatcher\").addEventListener('click',function(evt){\n          var elementName =evt.target.previousElementSibling.innerHTML\n          console.log(prop)\n           $.ajax({\n          url: endpoint+\"removeAction\",\n          type: 'POST',\n          data:JSON.stringify({\n            user:name,\n            triggerId:prop.replace(/\\s/g, \"\"),\n            actionId:elementName\n          }),\n          success: function(res){\n           lively.notify(\"Successfully remove action.\")\n            that.reRender(that.getTriggers())\n          },   \n          done: function(res){lively.notify(\"done\")},\n          error: function(res){console.log(res)}\n        }); \n        })\n        action.addEventListener('click', function(evt) {\n          evt.stopPropagation();\n          that.showCode.bind(that)\n          that.showCode(evt)\n        })\n        action.setAttribute('data-id', actionName);\n        action.setAttribute('data-type', 'actions')\n        action.setAttribute('data-parent',prop);\n        action.get('.itemname').innerHTML = actionName;\n        var icon = action.get('.addAction')\n        icon.addEventListener('click', function(event) {\n          event.stopPropagation();\n          that.unassignAction();\n        })\n        this.setUpConfigButton(action,\"getActionConfig\",\"updateActionConfig\",prop,this,actionName)\n        action.appendChild(icon);\n        actionList.appendChild(action);\n      }\n  }\n  setUpConfigButton(item,url,saveurl,triggerId,that,actionId){\n    \n    item.get('#modify-configuration').addEventListener('click', function(){\n      console.log(that.config)\n      var table=item.get(\".config-table\");\n      if(currentlyShownConfig===table){\n        console.log(that.config)\n        that.saveConfig(saveurl,triggerId,actionId)\n        currentlyShownConfig.parentElement.removeChild(currentlyShownConfig.previousElementSibling)\n        currentlyShownConfig.previousElementSibling.childNodes[1].className=\"chevron fa fa-chevron-down\"\n        currentlyShownConfig.previousElementSibling.childNodes[0].textContent=\"Modify config\"\n        currentlyShownConfig.nextElementSibling.className+=\" hide\"\n        for(var i=0;i<table.childElementCount;i++){\n          table.removeChild(table.lastChild);\n        }\n        currentlyShownConfig=null\n        \n      }else{\n        if(currentlyShownConfig!=null){\n          currentlyShownConfig.parentElement.removeChild(currentlyShownConfig.previousElementSibling)\n          currentlyShownConfig.previousElementSibling.childNodes[0].textContent=\"Modify config\"\n          currentlyShownConfig.previousElementSibling.childNodes[1].className=\"chevron fa fa-chevron-down\"\n          currentlyShownConfig.nextElementSibling.className+=\" hide\"\n          for(var i=0;i<currentlyShownConfig.childElementCount;i++){\n            currentlyShownConfig.removeChild(currentlyShownConfig.lastChild);\n          }\n        }\n        \n        // if(table.rows.length === 0) {\n        //   url += \"Template\"\n        // }\n        \n        $.ajax({\n          url: endpoint+url,\n          type: 'POST',\n          data:JSON.stringify({\n            user:name,\n            triggerId:triggerId,\n            actionId:actionId\n          }),\n          success: function(res){\n            that.config=res;\n            currentlyShownConfig=table;\n            that.renderConfig(table)\n          },   \n          done: function(res){lively.notify(\"done\")},\n          error: function(res){console.log(\"hello world\");console.log(res)}\n        }); \n      }\n    });\n  }\n  \n  createItem(prop) {\n    var that=this\n    var item = document.createElement('lively-cloudscripting-item');\n    item.get('.editTemplate').addEventListener('click',function(evt){\n      lively.notify(evt.target.previousElementSibling.previousElementSibling.innerHTML)\n      var triggerId=evt.target.previousElementSibling.previousElementSibling.innerHTML\n      $.ajax({\n          url: endpoint+\"getWatcherConfigTemplate\",\n          type: 'POST',\n          data:JSON.stringify({\n            triggerId:triggerId\n          }),\n          success: function(res){\n           lively.notify(\"Successfully remove action.\")\n            console.log(res);\n            that.showConfig(res,triggerId,null);\n          },   \n          done: function(res){lively.notify(\"done\")},\n          error: function(res){console.log(res)}\n        }); \n    })\n    item.addEventListener('click', this.showCode.bind(this))\n    item.setAttribute('data-id', prop);\n    item.setAttribute('data-type', 'watcher');\n    if (prop == 'selected') {\n      item.get('.item').classList.add('selected');\n    }\n    this.setUpConfigButton(item,\"getWatcherConfig\",\"updateWatcherConfig\",prop,this,null)\n    var title = prop;\n    item.get('h4').innerHTML = title;\n    item.get('.deleteWatcher').addEventListener('click',function(){\n      $.ajax({\n          url: endpoint+\"removeTrigger\",\n          type: 'POST',\n          data:JSON.stringify({\n            user:name,\n            triggerId:prop.replace(/\\s/g, \"\")\n          }),\n          success: function(res){\n           lively.notify(\"Successfully remove action.\")\n            that.reRender(that.getTriggers())\n          },   \n          done: function(res){lively.notify(\"done\")},\n          error: function(res){console.log(res)}\n        }); \n    })\n    return item;\n  }\n  \n  showConfig(data,triggerId,actionId){\n    lively.notify(\"showconfig\")\n    lively.openComponentInWindow('lively-code-mirror').then(configEditor => {\n      // configEditor.get(\"content\").innerHTML=data\n      configEditor.value=data\n      configEditor.unsavedChanges=function(){return false}\n      configEditor.doSave=function(){\n        if(triggerId){\n        $.ajax({\n          url: endpoint+\"updateWatcherConfigTemplate\",\n          type: 'POST',\n          data:JSON.stringify({\n            triggerId:triggerId.replace(/\\s/g, \"\"),\n            data:configEditor.value\n          }),\n          success: function(res){\n           lively.notify(\"Successfully update config.\")\n          },   \n          done: function(res){lively.notify(\"done\")},\n          error: function(res){console.log(res)}\n        });\n        }else{\n          $.ajax({\n          url: endpoint+\"updateActionConfigTemplate\",\n          type: 'POST',\n          data:JSON.stringify({\n            actionId:actionId.replace(/\\s/g, \"\"),\n            data:configEditor.value\n          }),\n          success: function(res){\n           lively.notify(\"Successfully update config.\")\n          },   \n          done: function(res){lively.notify(\"done\")},\n          error: function(res){console.log(res)}\n        });\n        }\n      }\n      });\n  }\n  \n  renderConfig(table){\n    var that=this\n    var cross = document.createElement(\"i\")\n    cross.className=\"chevron-cross fa fa-times\"\n    table.parentElement.insertBefore(cross, table);\n    cross.addEventListener('click',function(e){\n      currentlyShownConfig.parentElement.removeChild(currentlyShownConfig.previousElementSibling)\n      currentlyShownConfig.previousElementSibling.childNodes[1].className=\"chevron fa fa-chevron-down\"\n      currentlyShownConfig.previousElementSibling.childNodes[0].textContent=\"Modify config\"\n      currentlyShownConfig.nextElementSibling.className+=\" hide\"\n      for(var i=0;i<table.childElementCount;i++){\n        table.removeChild(table.lastChild);\n      }\n      currentlyShownConfig=null\n    })\n    \n    for(var key in that.config){\n      if(key!==\"description\"){\n        var row = table.insertRow(0)\n        row.className=\"row\"\n        var cell1 = row.insertCell(0)\n        cell1.className =\"keyEntry\"\n        var cell2 = row.insertCell(1)\n        cell2.className =\"valueEntry\"\n        var input = document.createElement(\"INPUT\");\n        input.addEventListener(\"focusout\",function(e){\n          that.config[e.target.parentNode.previousElementSibling.innerHTML]=e.target.value\n        })\n        input.className =\"valueInput\"\n        input.value=that.config[key]\n        cell1.innerHTML= key\n        cell2.appendChild(input)\n      }\n    }\n    currentlyShownConfig.previousElementSibling.previousElementSibling.childNodes[0].textContent=\"Save changes\"\n    currentlyShownConfig.previousElementSibling.previousElementSibling.childNodes[1].className=\"chevron fa fa-chevron-up\"\n    currentlyShownConfig.nextElementSibling.className=currentlyShownConfig.nextElementSibling.className.replace(\"hide\",\"\")\n    currentlyShownConfig.nextElementSibling.addEventListener('click',function(e){\n      that.createConfigField(table)\n    })\n  }\n  \n  saveConfig(url,triggerId,actionId){\n    lively.notify(\"im saving the config\")\n    console.log(actionId)\n    console.log(\"actionId: \"+actionId)\n    var that =this;\n    $.ajax({\n        url: endpoint+url,\n        type: 'POST',\n        data:JSON.stringify({\n          user:name,\n          triggerId:triggerId,\n          config:that.config,\n          actionId:actionId\n        }),\n        success: function(res){lively.notify(\"Config change successfull\")},   \n        done: function(res){lively.notify(\"done\")},\n        error: function(res){console.log(res)}\n    }); \n  }\n  \n  createConfigField(table){\n    var row = table.insertRow(-1)\n        row.className=\"row\"\n        var cell1 = row.insertCell(0)\n        cell1.className =\"keyEntry\"\n        var cell2 = row.insertCell(1)\n        cell2.className =\"valueEntry\"\n        var inputKey = document.createElement(\"INPUT\");\n        inputKey.placeholder=\"New Key...\"\n        var inputValue = document.createElement(\"INPUT\");\n        inputValue.placeholder=\"New Value...\"\n        var that=this\n        inputKey.addEventListener(\"focusout\",function(e){\n          if(inputKey.value!=\"\"){\n           that.config[inputKey.value]=inputValue.value\n          }\n        })\n        inputValue.addEventListener(\"focusout\",function(e){\n          if(inputKey.value!=\"\"){\n           that.config[inputKey.value]=inputValue.value\n          }\n        })\n        inputKey.className =\"newConfInput\"\n        inputValue.className =\"newConfInput\"\n        cell1.appendChild(inputKey)\n        cell2.appendChild(inputValue)\n  }\n  \n  handleAjaxError(jqXHR, textStatus, errorThrown) {\n    lively.notify(\"ajax error: \" + JSON.stringify(errorThrown));\n  }\n\n  showCode(evt) {\n    if(evt.target.dataset.type==\"actions\"){\n      this.filename=evt.target.dataset.parent\n    }else{\n      this.filename=evt.target.dataset.id\n    }\n    this.file2beSaved=evt.target.dataset.id\n    this.type = evt.target.dataset.type;\n    var that = this;\n    that.getTriggerLogs(that.filename)\n    // this.loggingId = setInterval(function() {\n    //   that.getTriggerLogs(that.filename);  \n    // },2000)\n    var endpoint = 'https://lively4-services.herokuapp.com/mount/' + that.type + \"/\" + evt.target.dataset.id;\n    $.ajax({\n      url: endpoint,\n      type: 'GET',\n      success: function(res){that.codeEditor.value = res},   \n      done: function(res){that.codeEditor.value = res.responseText},\n      error: function(res){that.codeEditor.value = res.responseText}\n    }); \n  }\n  \n  saveCode() {\n    var that = this;\n    console.log(endpoint + 'mount/' + that.type + '/' + that.file2beSaved)\n    $.ajax({\n      url: endpoint + 'mount/' + that.type + '/' + that.file2beSaved,\n      type: 'PUT',\n      data: JSON.stringify({data:that.codeEditor.getValue(),user:name}),\n      success: function(){lively.notify(\"File saved on Heroku\", undefined, undefined, undefined, \"green\")},\n      error: function(res){console.log(res)}\n    }); \n  }\n  \n  unassignAction(triggerName, actionName) {\n    lively.warn(\"TODO: unassign \" + actionName + \"for trigger\" + triggerName + \" and user \" + name);\n  }\n  \n  assignAction(triggerName) {\n    var that = this;\n    lively.openComponentInWindow('lively-cloudscripting-file-browser').then(browser => {\n      browser.path = endpoint + 'mount/actions/';\n      browser.urlExtension=\"getActionDescription\"\n      lively.setGlobalPosition(browser.parentElement, lively.getGlobalPosition(this.parentElement).addPt(pt(30,30)))\n      browser.setMainAction((url) => {\n        that.assignActionUrl(url, triggerName, that);\n        browser.parentElement.onCloseButtonClicked();\n      });\n    });\n  }\n  \n  assignActionUrl(url, triggerName, that) {\n    url = url.toString();\n    url = url.substring(url.lastIndexOf('/') + 1);\n    $.ajax({\n      url: endpoint + 'assignAction',\n      type: 'POST',\n      data: JSON.stringify({\n        triggerId: triggerName,\n        actionId: url,\n        user: name\n      }),\n      success: that.getTriggers.bind(that),\n      error: this.handleAjaxError.bind(this)\n    })\n  }\n  \n}"]}