From cec2f7d91766f8fefe772d83aec69ad67c67b1ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Thu, 30 Jun 2016 12:06:08 +0200 Subject: [PATCH] WIP: More work on the documentation of the js client lib --- docs/api/printer.rst | 29 +- docs/jsclientlib/base.rst | 8 +- docs/jsclientlib/connection.rst | 12 + docs/jsclientlib/control.rst | 42 +++ docs/jsclientlib/files.rst | 30 ++ docs/jsclientlib/index.rst | 5 + docs/jsclientlib/job.rst | 45 +++ docs/jsclientlib/languages.rst | 10 + docs/jsclientlib/logs.rst | 10 + docs/jsclientlib/printer.rst | 313 ++++++++++++++++++ src/octoprint/static/js/app/client/files.js | 6 +- src/octoprint/static/js/app/client/job.js | 17 +- src/octoprint/static/js/app/client/printer.js | 42 +-- .../static/js/app/viewmodels/printerstate.js | 2 +- 14 files changed, 533 insertions(+), 38 deletions(-) create mode 100644 docs/jsclientlib/files.rst create mode 100644 docs/jsclientlib/job.rst create mode 100644 docs/jsclientlib/languages.rst create mode 100644 docs/jsclientlib/logs.rst create mode 100644 docs/jsclientlib/printer.rst diff --git a/docs/api/printer.rst b/docs/api/printer.rst index d20bcf46..666f8029 100644 --- a/docs/api/printer.rst +++ b/docs/api/printer.rst @@ -4,12 +4,6 @@ Printer operations ****************** -.. warning:: - - This part of the API is still heavily in development, especially anything that has to do with temperature control. - If you happen to want to develop against it, you should drop me an email to make sure I can give you a heads-up when - something changes. - .. contents:: Printer control is mostly achieved through the use of commands, issued to resources reflecting components of the @@ -35,6 +29,29 @@ SD card Besides that, OctoPrint also provides a :ref:`full state report of the printer `. +.. note:: + + You might be wondering why all command responses below only return a ``204`` with an empty body instead of + the output of the just sent commands. There are two reasons for this. + + OctoPrint's internal webserver is single threaded and can only handle one request at a time. This is + not a problem generally since asynchronous programming allows to just have one request which is waiting for + data from a long running backend operation to sleep while handling other requests. The internal framework + used for providing the REST API though, Flask, is based on WSGI, which is synchrounous in nature. This means + that it is impossible to wait in a non blocking wait while handling a request on the REST API. So in order to + return the response of a command sent to the printer, the single thread of the webserver would have to be blocked + by the API while the response wasn't available yet. Which in turn would mean that the whole web server would + stop responding while waiting for the printer to reply, which, depending on the command in question (e.g. homing) + can take a long while. That would be a bad idea. + + The second reason is that thanks to a large number of firmwares out there having a `particular bug `_ + that makes it impossible to track the output of sent commands, identifying the correct response to a given + sent command is pretty much hit-and-miss. That situation gets even worse considering that it's next to impossible + to distinguish firmware versions which have that bug from firmware versions which don't have it. + + Hence OctoPrint currently doesn't offer any synchronous way of retrieving the output of responses from the printer. + If you need the printer's serial communication, you'll need to subscribe to :ref:`push updates `. + .. _sec-api-printer-state: Retrieve the current printer state diff --git a/docs/jsclientlib/base.rst b/docs/jsclientlib/base.rst index e85cee61..e59cca69 100644 --- a/docs/jsclientlib/base.rst +++ b/docs/jsclientlib/base.rst @@ -211,7 +211,7 @@ will contain the requested file as raw string/binary. :param string url: URL to download - :param object opts: Addtional options for the request + :param object opts: Additional options for the request :returns Promise: A `jQuery Promise `_ for the request's response .. js:function:: OctoPrint.upload(url, file, filename, additional) @@ -307,7 +307,7 @@ :param string url: The URL to ``POST`` the command to :param string command: The command to issue :param object payload: Additional payload data for the command - :param object opts: Addtional options for the request + :param object opts: Additional options for the request :returns Promise: A `jQuery Promise `_ for the request's response .. js:function:: OctoPrint.getSimpleApiUrl(plugin) @@ -338,7 +338,7 @@ }); :param string plugin: The identifier of the plugin - :param object opts: Addtional options for the request + :param object opts: Additional options for the request :returns Promise: A `jQuery Promise `_ for the request's response .. js:function:: OctoPrint.simpleApiCommand(plugin, command, payload, opts) @@ -359,7 +359,7 @@ :param string plugin: The identifier of the plugin :param string command: The command to issue :param object payload: Additional payload data for the command - :param object opts: Addtional options for the request + :param object opts: Additional options for the request :returns Promise: A `jQuery Promise `_ for the request's response .. js:function:: OctoPrint.getBlueprintUrl(plugin) diff --git a/docs/jsclientlib/connection.rst b/docs/jsclientlib/connection.rst index a98950b3..7abe9383 100644 --- a/docs/jsclientlib/connection.rst +++ b/docs/jsclientlib/connection.rst @@ -9,6 +9,9 @@ See :ref:`Get connection settings ` for the response format. + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + .. js:function:: OctoPrint.connection.connect(data, opts) Connects to the printer, optionally using the provided connection ``data`` as parameters. @@ -23,15 +26,24 @@ See :ref:`Issue a connection command ` for more details. + :param object data: Connection data to use + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + .. js:function:: OctoPrint.connection.disconnect(opts) Disconnects from the printer. See :ref:`Issue a connection command ` for more details. + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + .. js:function:: OctoPrint.connection.fakeAck(opts) Triggers a fake acknowledgement (``ok``) on the printer. See :ref:`Issue a connection command ` for more details. + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response diff --git a/docs/jsclientlib/control.rst b/docs/jsclientlib/control.rst index 43c0387a..ae56437d 100644 --- a/docs/jsclientlib/control.rst +++ b/docs/jsclientlib/control.rst @@ -5,11 +5,53 @@ .. js:function:: OctoPrint.control.getCustomControls(opts) + Retrieves the defined custom controls from the server. + + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + .. js:function:: OctoPrint.control.sendGcode(commands, opts) + Sends the provided ``commands`` to the printer. + + Corresponds to the :ref:`Send an arbitrary command to the printer ` API, + see there for details. + + :param list or string commands: One or more commands to send to the printer. + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + .. js:function:: OctoPrint.control.sendGcodeWithParameters(commands, parameters, opts) + Sends the provided ``commands`` to the printer, replacing contained placeholders with + the provided ``parameters`` first. + + Corresponds to the :ref:`Send an arbitrary command to the printer ` API, + see there for details. + + :param list or string commands: One or more commands to send to the printer + :param object parameters: Parameters (key-value-pairs) to replace placeholders in ``commands`` with + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + .. js:function:: OctoPrint.control.sendGcodeScript(script, context, opts) + Sends the provided ``script`` to the printer, enhancing the template with the + specified ``context``. + + :param string script: Name of the script to send to the printer + :param object context: Template context + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + .. js:function:: OctoPrint.control.sendGcodeScriptWithParameters(script, context, parameters, opts) + Sends the provided ``script`` to the printer, enhancing the template with the + specified ``context`` and ``parameters``. + + :param string script: Name of the script to send to the printer + :param object context: Template context + :param object parameters: Template parameters + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + diff --git a/docs/jsclientlib/files.rst b/docs/jsclientlib/files.rst new file mode 100644 index 00000000..3434c6d9 --- /dev/null +++ b/docs/jsclientlib/files.rst @@ -0,0 +1,30 @@ +.. sec-jsclientlib-files: + +:mod:`OctoPrint.files` +---------------------- + +.. js:function:: OctoPrint.files.get(location, filename, opts) + +.. js:function:: OctoPrint.files.list(opts) + +.. js:function:: OctoPrint.files.listForLocation(location, opts) + +.. js:function:: OctoPrint.files.select(location, filename, print, opts) + +.. js:function:: OctoPrint.files.slice(location, filename, parameters, opts) + +.. js:function:: OctoPrint.files.delete(location, filename, opts) + +.. js:function:: OctoPrint.files.copy(location, filename, destination, opts) + +.. js:function:: OctoPrint.files.move(location, filename, destination, opts) + +.. js:function:: OctoPrint.files.createFolder(location, name, path, opts) + +.. js:function:: OctoPrint.files.upload(location, file, data) + +.. js:function:: OctoPrint.files.download(location, filename, opts) + +.. js:function:: OctoPrint.files.pathForElement(element) + +.. js:function:: OctoPrint.files.elementByPath(location, startElement) diff --git a/docs/jsclientlib/index.rst b/docs/jsclientlib/index.rst index 1ab332df..00af3f37 100644 --- a/docs/jsclientlib/index.rst +++ b/docs/jsclientlib/index.rst @@ -11,3 +11,8 @@ JavaScript Client Library browser.rst connection.rst control.rst + files.rst + job.rst + languages.rst + logs.rst + printer.rst diff --git a/docs/jsclientlib/job.rst b/docs/jsclientlib/job.rst new file mode 100644 index 00000000..f082c68c --- /dev/null +++ b/docs/jsclientlib/job.rst @@ -0,0 +1,45 @@ +.. sec-jsclientlib-job: + +:mod:`OctoPrint.job` +-------------------- + +.. js:function:: OctoPrint.job.get(opts) + + Retrieves information about the current job. + +.. js:function:: OctoPrint.job.start(opts) + +.. js:function:: OctoPrint.job.cancel(opts) + + Cancels the current job. + +.. js:function:: OctoPrint.job.restart(opts) + + Restarts the current job. This is equivalent to cancelling and immediately restarting + the job. + + **Example:** + + .. code-block:: javascript + + OctoPrint.job.restart(); + + // the above is a shorthand for: + + OctoPrint.job.cancel() + .done(function(response) { + OctoPrint.job.start(); + }); + +.. js:function:: OctoPrint.job.pause(opts) + + Pauses the current job if it's running, does nothing if it's already paused. + +.. js:function:: OctoPrint.job.resume(opts) + + Resumes the current job if it's currently pause, does nothing if it's running. + +.. js:function:: OctoPrint.job.togglePause(opts) + + Resumes a paused job and pauses a running a print. + diff --git a/docs/jsclientlib/languages.rst b/docs/jsclientlib/languages.rst new file mode 100644 index 00000000..fa42e9b5 --- /dev/null +++ b/docs/jsclientlib/languages.rst @@ -0,0 +1,10 @@ +.. sec-jsclientlib-languages: + +:mod:`OctoPrint.languages` +-------------------------- + +.. js:function:: OctoPrint.languages.list(opts) + +.. js:function:: OctoPrint.languages.upload(file) + +.. js:function:: OctoPrint.languages.delete(locale, pack, opts) diff --git a/docs/jsclientlib/logs.rst b/docs/jsclientlib/logs.rst new file mode 100644 index 00000000..7633333b --- /dev/null +++ b/docs/jsclientlib/logs.rst @@ -0,0 +1,10 @@ +.. sec-jsclientlib-logs: + +:mod:`OctoPrint.logs` +--------------------- + +.. js:function:: OctoPrint.logs.list(opts) + +.. js:function:: OctoPrint.logs.delete(opts) + +.. js:function:: OctoPrint.logs.download(file, opts) diff --git a/docs/jsclientlib/printer.rst b/docs/jsclientlib/printer.rst new file mode 100644 index 00000000..fe4bbabd --- /dev/null +++ b/docs/jsclientlib/printer.rst @@ -0,0 +1,313 @@ +.. sec-jsclientlib-printer: + +:mod:`OctoPrint.printer` +------------------------ + +.. note:: + + All commands here that interact with the printer (anything that sends a command) will + resolve the returned `jQuery Promise `_ when the + request to the server enqueuing the command has been processed, *not* when the command + was actually sent to or processed by the printer. + + See :ref:`the note here ` for an explanation why that is the case. + +.. contents:: + :local: + +.. js:function:: OctoPrint.printer.getFullState(flags, opts) + + Retrieves the full printer state, including temperature information, sd state and general + printer state. + + The ``flags`` object can be used to specify the data to retrieve further via the following + properties: + + * ``history``: a boolean value to specify whether the temperature history should be included (``true``) + or not (``false``), defaults to it not being included + * ``limit``: an integer value to specify how many history entries to include + * ``exclude``: a string value of comma-separated fields to exclude from the returned result. + + See :ref:`Retrieve the current printer state ` for more details. + + :param object flags: Flags that further specify which data to retrieve, see above for details + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. js:function:: OctoPrint.printer.getToolState(flags, opts) + + Retrieves the current printer extruder state/temperature information, and optionally also the temperature + history. + + The ``flags`` object can be used to specify the data to retrieve further via the following + properties: + + * ``history``: a boolean value to specify whether the temperature history should be included (``true``) + or not (``false``), defaults to it not being included + * ``limit``: an integer value to specify how many history entries to include + + See :ref:`Retrieve the current tool state ` for more details. + + :param object flags: Flags that further specify which data to retrieve, see above for details + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. js:function:: OctoPrint.printer.setToolTargetTemperatures(targets, opts) + + Sets the given temperatures on the printer's extruders. + + ``targets`` is expected to be an object mapping tool identifier to target temperature to set. + + **Example:** + + Set first hotend to 220°C and second to 205°C. + + .. code-block:: javascript + + OctoPrint.printer.setToolTargetTemperatures({"tool0": 220, "tool1": 205}); + + See the ``target`` command in :ref:`Issue a tool command ` for more details. + + :param object targets: The targets to set + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. js:function:: OctoPrint.printer.setToolTemperatureOffsets(offsets, opts) + + Sets the given temperature offsets for the printer's extruders. + + ``offsets`` is expected to be an object mapping tool identifier to offset to set. + + **Example:** + + Set the offset for the first hotend's temperature to +10°C and the offset for the second hotend's + temperature to -5°C. + + .. code-block:: javascript + + OctoPrint.printer.setToolTemperatureOffsets({"tool0": 10, "tool1": -5}); + + See the ``offset`` command in :ref:`Issue a tool command ` for more details. + + :param object offsets: The offsets to set + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. js:function:: OctoPrint.printer.selectTool(tool, opts) + + Selects the printer's current extruder. + + ``tool`` is the identifier of the extruder to select. + + **Example:** + + Select the second tool, extrude 5mm of filament, then select the first tool. + + .. code-block:: javascript + + OctoPrint.printer.selectTool("tool1") + .done(function(response) { + OctoPrint.printer.extrude(5.0) + .done(function(response) { + OctoPrint.printer.selectTool("tool0"); + }); + }); + + See the ``select`` command in :ref:`Issue a tool command ` for more details. + + :param string tool: The tool identifier of the extruder to select + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. js:function:: OctoPrint.printer.extrude(amount, opts) + + Extrudes or retracts ``amount`` mm of filament on the currently selected extruder. + + **Example:** + + Extrude 5mm of filament on the current extruder, then retract 2mm. + + .. code-block:: javascript + + OctoPrint.printer.extrude(5.0) + .done(function(response) { + OctoPrint.printer.extrude(-2.0); + }); + + See the ``extrude`` command in :ref:`Issue a tool command ` for more details. + + :param float amount: The amount of filament to extrude/retract. + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. js:function:: OctoPrint.printer.setFlowrate(factor, opts) + + Sets the current flowrate multiplier. + + ``factor`` is expected to be a integer value between 75 and 125 representing the new flowrate percentage. + + See the ``flowrate`` command in :ref:`Issue a tool command ` for more details. + + :param integer factor: The flowrate as percentage + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. js:function:: OctoPrint.printer.getBedState(data, opts) + + Retrieves the current printer bed state/temperature information, and optionally also the temperature + history. + + The ``flags`` object can be used to specify the data to retrieve further via the following + properties: + + * ``history``: a boolean value to specify whether the temperature history should be included (``true``) + or not (``false``), defaults to it not being included + * ``limit``: an integer value to specify how many history entries to include + + See :ref:`Retrieve the current bed state ` for more details. + + :param object flags: Flags that further specify which data to retrieve, see above for details + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. js:function:: OctoPrint.printer.setBedTargetTemperature(target, opts) + + Sets the given temperature on the printer's heated bed (if available). + + ``target`` is expected to be a the target temperature as a float value. + + **Example:** + + Set the bed to 90°C. + + .. code-block:: javascript + + OctoPrint.printer.setBedTargetTemperature(90.0); + + See the ``target`` command in :ref:`Issue a bed command ` for more details. + + :param float target: The target to set + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. js:function:: OctoPrint.printer.setBedTemperatureOffset(offset, opts) + + Sets the given temperature offset for the printer's heated bed (if available). + + ``offset`` is expected to be the temperature offset to set. + + **Example:** + + Set the offset for the bed to -5°C. + + .. code-block:: javascript + + OctoPrint.printer.setToolTemperatureOffsets(-5); + + See the ``offset`` command in :ref:`Issue a bed command ` for more details. + + :param object offsets: The offsets to set + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. js:function:: OctoPrint.printer.jog(amounts, opts) + + Jogs the specified axes by the specified ``amounts``. + + ``amounts`` is expected to be an object with properties reflecting the axes to be jogged by the specified + amount given as value. + + **Example:** + + Jog X by 10mm. + + .. code-block:: javascript + + OctoPrint.printer.jog({"x", 10.0}); + + Jog Y by -5mm and Z by 0.2mm. + + .. code-block:: javascript + + OctoPrint.printer.jog({"y": -5.0, "z": 0.2}); + + See the ``jog`` command in :ref:`Issue a print head command ` for more details. + + :param object amounts: Key-value-pairs of axes to jog and amount to jog it. + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. js:function:: OctoPrint.printer.home(axes, opts) + + Homes the specified ``axes``. + + ``axes`` is expected to be an array of strings specifying the axes to home. + + **Example:** + + Home the X and Y axis. + + .. code-block:: javascript + + OctoPrint.printer.home(["x", "y"]); + + Home the Z axis. + + .. code-block:: javascript + + OctoPrint.printer.home(["z"]); + + See the ``home`` command in :ref:`Issue a print head command ` for more details. + + :param array axes: List of axes to home + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. js:function:: OctoPrint.printer.setFeedrate(factor, opts) + + Sets the feedrate multiplier to use. + + ``factor`` is expected to be a integer value between 0 and 200 representing the new feedrate percentage. + + See the ``feedrate`` command in :ref:`Issue a print head command ` for more details. + + :param integer factor: The feedrate multiplier as percentage + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. js:function:: OctoPrint.printer.getSdState(opts) + + Retrieves the current ready state of the printer's SD card. + + See :ref:`Retrieve the current SD state ` for more details. + + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. js:function:: OctoPrint.printer.initSd(opts) + + Instructs the printer to initialize its SD card (if present). + + See the ``init`` command in :ref:`Issue an SD command ` for more details. + + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. js:function:: OctoPrint.printer.refreshSd(opts) + + Instructs the printer to refresh the list of files on the SD card (if present). + + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. js:function:: OctoPrint.printer.releaseSd(opts) + + Instructs the printer to release its SD card (if present). + + :param object opts: Additional options for the request + :returns Promise: A `jQuery Promise `_ for the request's response + +.. seealso:: + + :ref:`REST API: Printer operations ` + Documentation of the API functionality covered with this client library module. diff --git a/src/octoprint/static/js/app/client/files.js b/src/octoprint/static/js/app/client/files.js index 94b8a5f5..dce21894 100644 --- a/src/octoprint/static/js/app/client/files.js +++ b/src/octoprint/static/js/app/client/files.js @@ -83,13 +83,13 @@ return issueFileCommand(location, filename, "move", { destination: destination }, opts); }, - createFolder: function (location, name, path) { + createFolder: function (location, name, path, opts) { var data = "foldername=" + name; if (path != undefined && path != "") { - data = "foldername:" + path + "/" + name; + data = "foldername=" + path + "/" + name; } - return OctoPrint.post(resourceForLocation(location), data); + return OctoPrint.post(resourceForLocation(location), data, opts); }, diff --git a/src/octoprint/static/js/app/client/job.js b/src/octoprint/static/js/app/client/job.js index 133058cb..38ac0cba 100644 --- a/src/octoprint/static/js/app/client/job.js +++ b/src/octoprint/static/js/app/client/job.js @@ -7,8 +7,13 @@ })(window || this, function(OctoPrint) { var url = "api/job"; - var issueCommand = function(command, opts) { - return OctoPrint.issueCommand(url, command, {}, opts); + var issueCommand = function(command, payload, opts) { + if (arguments.length == 2) { + opts = payload; + payload = {}; + } + + return OctoPrint.issueCommand(url, command, payload, opts); }; OctoPrint.job = { @@ -22,7 +27,13 @@ return issueCommand("restart", opts); }, pause: function(opts) { - return issueCommand("pause", opts); + return issueCommand("pause", {"action": "pause"}, opts); + }, + resume: function(opts) { + return issueCommand("pause", {"action": "resume"}, opts) + }, + togglePause: function(opts) { + return issueCommand("pause", {"action": "toggle"}, opts); }, cancel: function(opts) { return issueCommand("cancel", opts); diff --git a/src/octoprint/static/js/app/client/printer.js b/src/octoprint/static/js/app/client/printer.js index 844a438a..c5190d6f 100644 --- a/src/octoprint/static/js/app/client/printer.js +++ b/src/octoprint/static/js/app/client/printer.js @@ -28,12 +28,12 @@ }; OctoPrint.printer = { - getFullState: function (data, opts) { - data = data || {}; + getFullState: function (flags, opts) { + flags = flags || {}; - var history = data.history || undefined; - var limit = data.limit || undefined; - var exclude = data.exclude || undefined; + var history = flags.history || undefined; + var limit = flags.limit || undefined; + var exclude = flags.exclude || undefined; var getUrl = url; if (history || exclude) { @@ -53,11 +53,11 @@ return OctoPrint.get(getUrl, opts); }, - getToolState: function (data, opts) { - data = data || {}; + getToolState: function (flags, opts) { + flags = flags || {}; - var history = data.history || undefined; - var limit = data.limit || undefined; + var history = flags.history || undefined; + var limit = flags.limit || undefined; var getUrl = toolUrl; if (history) { @@ -70,11 +70,11 @@ return OctoPrint.get(getUrl, opts); }, - getBedState: function (data, opts) { - data = data || {}; + getBedState: function (flags, opts) { + flags = flags || {}; - var history = data.history || undefined; - var limit = data.limit || undefined; + var history = flags.history || undefined; + var limit = flags.limit || undefined; var getUrl = bedUrl; if (history) { @@ -91,13 +91,13 @@ return OctoPrint.get(sdUrl, opts); }, - jog: function (data, opts) { - data = data || {}; + jog: function (amounts, opts) { + amounts = amounts || {}; var payload = {}; - if (data.x) payload.x = data.x; - if (data.y) payload.y = data.y; - if (data.z) payload.z = data.z; + if (amounts.x) payload.x = amounts.x; + if (amounts.y) payload.y = amounts.y; + if (amounts.z) payload.z = amounts.z; return issuePrintheadCommand("jog", payload, opts); }, @@ -172,11 +172,11 @@ return issueToolCommand("flowrate", payload, opts); }, - setBedTargetTemperature: function (temperature, opts) { - temperature = temperature || 0; + setBedTargetTemperature: function (target, opts) { + target = target || 0; var payload = { - target: temperature + target: target }; return issueBedCommand("target", payload, opts); diff --git a/src/octoprint/static/js/app/viewmodels/printerstate.js b/src/octoprint/static/js/app/viewmodels/printerstate.js index 338c788f..ef74090a 100644 --- a/src/octoprint/static/js/app/viewmodels/printerstate.js +++ b/src/octoprint/static/js/app/viewmodels/printerstate.js @@ -221,7 +221,7 @@ $(function() { }; self.pause = function() { - OctoPrint.job.pause(); + OctoPrint.job.togglePause(); }; self.cancel = function() {