{"id":13745055,"url":"https://github.com/tshelburne/hoarder-as3","last_synced_at":"2026-01-05T19:45:19.228Z","repository":{"id":5329764,"uuid":"6513627","full_name":"tshelburne/hoarder-as3","owner":"tshelburne","description":"Form management tool for ActionScript 3.","archived":false,"fork":false,"pushed_at":"2013-03-13T20:28:39.000Z","size":858,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-31T15:36:11.763Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"ActionScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"edx/edx-platform","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tshelburne.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-11-02T22:32:38.000Z","updated_at":"2015-03-09T06:55:08.000Z","dependencies_parsed_at":"2022-09-19T05:23:03.194Z","dependency_job_id":null,"html_url":"https://github.com/tshelburne/hoarder-as3","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tshelburne%2Fhoarder-as3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tshelburne%2Fhoarder-as3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tshelburne%2Fhoarder-as3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tshelburne%2Fhoarder-as3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tshelburne","download_url":"https://codeload.github.com/tshelburne/hoarder-as3/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245668641,"owners_count":20653008,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T05:01:21.382Z","updated_at":"2026-01-05T19:45:19.197Z","avatar_url":"https://github.com/tshelburne.png","language":"ActionScript","funding_links":[],"categories":["Unsorted"],"sub_categories":["Other API"],"readme":"Form Manager\n============\n\nThis is a library to mimic the functionality of HTML forms in ActionScript 3 projects. \n\nFeatures\n--------\n\nThe following classes / components are included:\n\n* FormManager (dls.formmanager.FormManager) -- An instance of the FormManager class can be use to auto-handle form validation, submission, and response.\n* Form (dls.formmanager.form.Form) -- A class to mimic an HTML form, containing a list of input elements, hidden elements, action and method type attributes, a submit button, and a submit type.\n* IFormSubmitter (dls.formmanager.submitters.IFormSubmitter) -- An interface whose implementations are used to submit and relay responses for a given form.\n* FormValidator (dls.formmanager.validator.FormValidator) -- A mini-library which can handle and relay responses regarding form validation, inspired in part by jQuery validate. It contains a default set of constraints which form elements can be tested against.\n\n\nUsage\n-----\n\nImport the necessary classes:\n\n    import dls.formmanager.FormManager;\n    import dls.formmanager.IFormManager;\n    import dls.formmanager.submitter.IFormSubmitter;\n    import dls.formmanager.submitter.PollingSubmitter;\n    import dls.formmanager.submitter.SimpleSubmitter;\n    import dls.formmanager.validator.FormValidator;\n\nInitialize the FormManager:\n\n    var submitters:Vector.\u003cIFormSubmitter\u003e = new \u003cIFormSubmitter\u003e[\n      new SimpleSubmitter(),\n      new PollingSubmitter('http://mydomain.com/polling-endpoint', 2000)\n    ];\n    var formValidator:FormValidator = new FormValidator();\n    var formManager = new FormManager(submitters, formValidator);\n\nBuild a form:\n    \n    // all are implementations of IFormElement\n    public var emailAddress:MyTextInput;\n    public var shippingMethod:MyDropdown;\n    public var creditCardNumber:MyTextInput;\n    public var expMonth:MyDropdown;\n    public var expYear:MyDropdown;\n    \n    // implementation of IFormButton\n    public var submitOrder:MyFormButton;\n    \n    var paymentForm:Form = new Form(\"http://mydomain.com/form-submit-endpoint\", new \u003cString\u003e[\"customer\", \"order\", \"shipping\", \"payment\"], submitOrder);\n    paymentForm.addElement(emailAddress, \"customer\");\n    paymentForm.addElement(shippingMethod, \"shipping\");    \n    paymentForm.addElements(new \u003cIFormElement\u003e[ creditCardNumber, expMonth, expYear], \"payment\");\n    paymentForm.addHiddenElements(\n      new \u003cObject\u003e[ \n        { \"name\":\"id\", \"value\":\"\" },\n        { \"name\":\"subtotal\", \"value\":0 },\n        { \"name\":\"taxTotal\", \"value\":0 },\n        { \"name\":\"feeTotal\", \"value\":0 },\n        { \"name\":\"shippingTotal\", \"value\":0 },\n        { \"name\":\"total\", \"value\":0 },\n      ], \"order\");\n\nManage a form, and listen for responses:\n\n    formManager.success.add(submitSuccess);\n    formManager.submissionError.add(submitError);\n    formManager.validationError.add(submitInvalid);\n    formManager.manageForm(paymentForm);\n    \n    private function submitSuccess(form:IForm, data:String):void {\n      var response:Object = JSON.decode(data);\n    }\n    \n    private function submitError(form:IForm, error:String):void {\n      trace (error);\n    }\n    \t\t\n    private function submitInvalid(errors:Vector.\u003cIValidationError\u003e):void {\n      for each (var error:IValidationError in errors) {\n        trace (error.message);\n      }\n    }","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftshelburne%2Fhoarder-as3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftshelburne%2Fhoarder-as3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftshelburne%2Fhoarder-as3/lists"}