{"id":20797688,"url":"https://github.com/beachmachine/angular-table-sort","last_synced_at":"2025-08-19T01:07:16.540Z","repository":{"id":57179202,"uuid":"88485249","full_name":"beachmachine/angular-table-sort","owner":"beachmachine","description":"A directive that helps you create sortable tables, e.g. by clicking on the table header.","archived":false,"fork":false,"pushed_at":"2017-10-29T07:03:56.000Z","size":624,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-18T09:26:42.362Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/beachmachine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-17T07:54:19.000Z","updated_at":"2017-04-17T07:55:24.000Z","dependencies_parsed_at":"2022-09-09T19:01:33.974Z","dependency_job_id":null,"html_url":"https://github.com/beachmachine/angular-table-sort","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/beachmachine/angular-table-sort","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beachmachine%2Fangular-table-sort","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beachmachine%2Fangular-table-sort/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beachmachine%2Fangular-table-sort/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beachmachine%2Fangular-table-sort/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/beachmachine","download_url":"https://codeload.github.com/beachmachine/angular-table-sort/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beachmachine%2Fangular-table-sort/sbom","scorecard":{"id":229308,"data":{"date":"2025-08-11","repo":{"name":"github.com/beachmachine/angular-table-sort","commit":"1d7ed50766845492135d39e375fba6e8f1384f73"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/2 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'","Warn: branch protection not enabled for branch '0.8.1'","Warn: branch protection not enabled for branch '0.8.0'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-17T04:32:40.251Z","repository_id":57179202,"created_at":"2025-08-17T04:32:40.251Z","updated_at":"2025-08-17T04:32:40.251Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271083544,"owners_count":24696316,"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","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-11-17T16:34:55.105Z","updated_at":"2025-08-19T01:07:16.500Z","avatar_url":"https://github.com/beachmachine.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Angular TableSort\n\nAngular TableSort is an AngularJS directive that helps you create sortable tables, e.g. by clicking on the table header.\nThis directive does not create any HTML output, so you can use it with your HTML structure as needed. You are also not\nlimited to using it with tables - it's just the most common use-case.\n\n**Note:** This library is for AngularJS 1.x only!\n\n\n## Dependencies\n\nAngular TableSort depends on AngularJS 1.x.\n\n\n## Installation\n\n* Via `npm`: `npm install --save angular-table-sort`\n* Via `git`: `git clone git@github.com:beachmachine/angular-table-sort.git`\n\n\n## Examples\n\n### Crating a sortable table\n\nIn the following example we have a data structure holding data of persons. We use data binding to generate a table\ncontaining these persons' data. We also want the first name and last name in one column, though they are stored in\nseparate fields. The name should be the initially sorted column.\n\nTo make things a bit clearer, this is what the persons data structure looks like:\n````json\n[\n  {\n    \"first_name\": \"First name 1\",\n    \"last_name\": \"Last name 1\",\n    \"email\": \"firstname1@lastname1.com\"\n  },\n  {\n    \"first_name\": \"First name 2\",\n    \"last_name\": \"Last name 2\",\n    \"email\": \"firstname2@lastname2.com\"\n  },\n  {\n    \"first_name\": \"First name 3\",\n    \"last_name\": \"Last name 3\",\n    \"email\": \"firstname3@lastname3.com\"\n  }\n]\n````\n\nDeclare dependency on Angular TableSort for your main application:\n```javascript\n(function() {\n    var app = angular.module('app', [\n        'ngTableSort'\n    ])\n})();\n```\n\nThis is how to create the table:\n````html\n\u003ctable table-sort\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth table-sort-field=\"first_name + ' ' + last_name\"\n                table-sort-initial\n                ng-click=\"tableSort()\"\u003e\n                \u003cspan\u003eName\u003c/span\u003e\n                \u003ci class=\"fa\" ng-class=\"{'fa-sort-desc': reverse(), 'fa-sort-asc': !reverse()}\" ng-show=\"current()\" aria-hidden=\"true\"\u003e\u003c/i\u003e\n            \u003c/th\u003e\n            \u003cth table-sort-field=\"email\"\n                table-sort-reverse-initial\n                ng-click=\"tableSort()\"\u003e\n                \u003cspan\u003eEmail\u003c/span\u003e\n                \u003ci class=\"fa\" ng-class=\"{'fa-sort-desc': reverse(), 'fa-sort-asc': !reverse()}\" ng-show=\"current()\" aria-hidden=\"true\"\u003e\u003c/i\u003e\n            \u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr ng-repeat=\"person in tableSort(vm.persons) track by person.email\"\u003e\n            \u003ctd\u003e{{ person.first_name }} {{ person.last_name }}\u003c/td\u003e\n            \u003ctd\u003e{{ person.email }}\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n````\n\nAdditional information regarding the `table-sort-field` directive:\n* This directive declares how to sort the given array via an arbitrary expression.\n* You can access the current item via `$$this`.\n* You can access the current scope via `$$scope`.\n\n\n## Contributions\n\n* Andreas Stocker \u003candreas@stocker.co.it\u003e, Main developer\n\n\n## License\n\nAngular TableSort,\nCopyright 2016 Andreas Stocker,\nMIT License\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated\ndocumentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the\nSoftware.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE\nWARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\nOR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\nOTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeachmachine%2Fangular-table-sort","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbeachmachine%2Fangular-table-sort","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeachmachine%2Fangular-table-sort/lists"}