{"id":17770438,"url":"https://github.com/gampleman/icui","last_synced_at":"2026-01-30T14:18:07.846Z","repository":{"id":5379949,"uuid":"6567462","full_name":"gampleman/icui","owner":"gampleman","description":"ICUI is a user interface component for buidling IceCube objects.","archived":false,"fork":false,"pushed_at":"2016-06-01T22:04:35.000Z","size":85,"stargazers_count":4,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-15T15:55:43.317Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://code.gampleman.eu/icui/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gampleman.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-06T18:57:26.000Z","updated_at":"2016-06-01T13:14:02.000Z","dependencies_parsed_at":"2022-09-25T02:51:51.316Z","dependency_job_id":null,"html_url":"https://github.com/gampleman/icui","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/gampleman/icui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gampleman%2Ficui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gampleman%2Ficui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gampleman%2Ficui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gampleman%2Ficui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gampleman","download_url":"https://codeload.github.com/gampleman/icui/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gampleman%2Ficui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28913997,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T12:13:43.263Z","status":"ssl_error","status_checked_at":"2026-01-30T12:13:22.389Z","response_time":66,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-10-26T21:23:01.508Z","updated_at":"2026-01-30T14:18:07.828Z","avatar_url":"https://github.com/gampleman.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"ICUI\n====\n\nICUI is a user interface component for creating arbitrary [IceCube][ic] objects specifying arbitrary repetition of events. \n\nAs a user interface component it is more oriented for interfaces that really need to excersize the complex scheduling capabilities of [IceCube][ic]. If you need a rather simple recurrence widget, [other projects](https://github.com/seejohnrun/ice_cube/wiki/Related-Projects) might provide a better experience.\n\nFurthermore ICUI currently closely follows the logic of [IceCube][ic] itself, thus providing a strongly hierarchical way of constructing repetitions.\n\n[ic]: (https://github.com/seejohnrun/ice_cube)\n\nUsage\n-----\n\nICUI constructs client side UI based on the JSON representation of a IceCube::Schedule object. Conventionally IceCube::Schedule are stored as YAML objects so using a function like this server-side might be helpful:\n\n~~~ruby\nrequire 'yaml'\nrequire 'json'\ndef yaml2json(str)\n  YAML::load(str).to_json\nend\ndef json2yaml(str)\n  JSON.parse(str).to_yaml\nend\n~~~\n\nICUI is dependent on jQuery and expects it to be already present. Typically ICUI will be used with a hidden form field which contains as it's value the JSON representation of the IceCube schedule. Then the jQuery method `icui` should be called to instantiate ICUI. The form field will be updated automatically with a new JSON representation on form submission.\n\nFor usage with AJAX the `icui.getData()` method must be called to get a native representation of the data.\n\n~~~javascript\n$(function() {\n  var icui = $(\"input[type=hidden].icui\").icui();\n  // for ajax usage one must use \n  icui.getData();\n  // to get the serialized data\n  \n  // ICUI does this automatically for you:\n  $icuielem = $(\"input[type=hidden].icui\");\n  $icuielem.parent('form').on('submit', function() {\n    $icuielem.val(JSON.stringify(icui.getData()));\n  });\n});\n~~~\n\nThe `app.css` file contains some minimal styling namespaced to the `.icui` element, so it should be fine to include in your project, but further styling may be necessary to fit the look and feel of your application.\n\nGotcha's\n--------\n\nICUI isn't tested on any IE, but should work, but might require a JSON shim. \n\nICUI currently extends the `Date` prototype with a `strftime` (written by Gianni Chiappetta) method, the plan is to drop this in the future.\n\nCurrently ICUI doesn't support the rules and validations that have higher resolution than 1 day, however it should be fairly trivial to add these and in fact this is on the development roadmap.\n\nICUI currently deals with all times as if they are UTC times.\n\nDevelopment and Extension\n-------------------------\n\nThe library is fairly easy to extend. It is written in OO CofeeScript. Extending usually involves subclassing the `Option` class and than modifying the parent class to create the instance of the child. The project really is one source file, the rest of the files in the repository are really mostly cruft (like tests, documentation, build files, dependencies, etc.). For details see the [annotated source code](http://code.gampleman.eu/icui/docs/icui.html).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgampleman%2Ficui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgampleman%2Ficui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgampleman%2Ficui/lists"}