|
44 | 44 | let gridView = $state(($config.layout || "list") === "grid"); |
45 | 45 | let defaultConfigMode = $config.mode; |
46 | 46 |
|
47 | | - let vw = $state(Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0)); |
| 47 | + let vw = $state( |
| 48 | + Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0), |
| 49 | + ); |
48 | 50 |
|
49 | 51 | function updatePreview({ data = null, uuid = null, action = "show" }) { |
50 | 52 | if (data && action == "show") { |
|
490 | 492 | class="btn btn-light btn-sm" |
491 | 493 | type="button" |
492 | 494 | aria-label={_t("clear search")} |
493 | | - onclick={(e) => { e.preventDefault(); searchItems(""); }} |
494 | | - ><svg use:resolveIcon={{ iconName: "x" }} /></button |
| 495 | + onclick={(e) => { |
| 496 | + e.preventDefault(); |
| 497 | + searchItems(""); |
| 498 | + }}><svg use:resolveIcon={{ iconName: "x" }} /></button |
495 | 499 | > |
496 | 500 | {/if} |
497 | 501 | </div> |
|
516 | 520 | class="btn btn-link text-white ms-auto" |
517 | 521 | tabindex="0" |
518 | 522 | aria-label={_t("close")} |
519 | | - onclick={(e) => { e.preventDefault(); closeBrowser(); }} |
520 | | - ><svg use:resolveIcon={{ iconName: "x-circle" }} /></button |
| 523 | + onclick={(e) => { |
| 524 | + e.preventDefault(); |
| 525 | + closeBrowser(); |
| 526 | + }}><svg use:resolveIcon={{ iconName: "x-circle" }} /></button |
521 | 527 | > |
522 | 528 | </div> |
523 | 529 | {#await $contentItems} |
|
534 | 540 | in:fly={{ duration: 500 }} |
535 | 541 | > |
536 | 542 | <div class="levelToolbar"> |
537 | | - {#if i == 0 && $config.mode == "browse"} |
| 543 | + {#if i == 0 && levels.length > 1 && $config.mode == "browse"} |
538 | 544 | <button |
539 | 545 | type="button" |
540 | 546 | class="btn btn-link btn-xs ps-0" |
|
551 | 557 | {#if i == levels.length - 1} |
552 | 558 | {#if level.selectable && !level.showFilter && !previewItem.UID} |
553 | 559 | <button |
554 | | - class="btn btn-xs btn-outline-primary d-flex align-items-center" |
| 560 | + class="btn btn-xs btn-primary d-flex align-items-center ps-1" |
555 | 561 | title={_t("select ${level_path}", { |
556 | 562 | level_path: |
557 | 563 | level.Title || itemId(level), |
558 | 564 | })} |
559 | 565 | disabled={!isSelectable(level)} |
560 | | - onclick={(e) => { e.preventDefault(); addItem(level); }} |
| 566 | + onclick={(e) => { |
| 567 | + e.preventDefault(); |
| 568 | + addItem(level); |
| 569 | + }} |
561 | 570 | ><svg |
562 | 571 | use:resolveIcon={{ |
563 | | - iconName: "plus", |
| 572 | + iconName: "check", |
564 | 573 | }} |
565 | 574 | /> |
566 | | - <span class="select-button-ellipsis" |
567 | | - >{level.Title || itemId(level)}</span |
| 575 | + <span |
| 576 | + >{_t("select ${level_path}", { |
| 577 | + level_path: |
| 578 | + level.Title || itemId(level), |
| 579 | + })}</span |
568 | 580 | ></button |
569 | 581 | > |
570 | 582 | {/if} |
|
581 | 593 | <button |
582 | 594 | class="btn btn-link btn-xs level-filter" |
583 | 595 | title={_t("clear filter")} |
584 | | - onclick={(e) => { e.preventDefault(); filterLevel(""); level.showFilter = false; }} |
| 596 | + onclick={(e) => { |
| 597 | + e.preventDefault(); |
| 598 | + filterLevel(""); |
| 599 | + level.showFilter = false; |
| 600 | + }} |
585 | 601 | > |
586 | 602 | <svg |
587 | 603 | use:resolveIcon={{ |
|
593 | 609 | <button |
594 | 610 | class="btn btn-link btn-xs level-filter" |
595 | 611 | title={_t("level filter")} |
596 | | - onclick={(e) => { e.preventDefault(); level.showFilter = true; }} |
| 612 | + onclick={(e) => { |
| 613 | + e.preventDefault(); |
| 614 | + level.showFilter = true; |
| 615 | + }} |
597 | 616 | > |
598 | 617 | <svg |
599 | 618 | use:resolveIcon={{ |
|
648 | 667 | role="button" |
649 | 668 | tabindex={n} |
650 | 669 | data-uuid={item.UID} |
651 | | - onkeydown={(e) => { e.preventDefault(); keyboardNavigation(item, e); }} |
| 670 | + onkeydown={(e) => { |
| 671 | + e.preventDefault(); |
| 672 | + keyboardNavigation(item, e); |
| 673 | + }} |
652 | 674 | onclick={(e) => clickItem(item, e)} |
653 | 675 | > |
654 | 676 | <div |
|
726 | 748 | <div class="selectLevel me-3"> |
727 | 749 | {#if isSelectable(previewItem)} |
728 | 750 | <button |
729 | | - class="btn btn-xs btn-outline-primary d-flex align-items-center" |
| 751 | + class="btn btn-xs btn-primary d-flex align-items-center ps-1" |
730 | 752 | title={_t("select ${preview_path}", { |
731 | 753 | preview_path: previewItem.Title, |
732 | 754 | })} |
733 | | - onclick={(e) => { e.preventDefault(); addItem(previewItem); }} |
| 755 | + onclick={(e) => { |
| 756 | + e.preventDefault(); |
| 757 | + addItem(previewItem); |
| 758 | + }} |
734 | 759 | ><svg |
735 | | - use:resolveIcon={{ iconName: "plus" }} |
| 760 | + use:resolveIcon={{ iconName: "check" }} |
736 | 761 | /> |
737 | 762 | <span class="select-button-ellipsis" |
738 | | - >{previewItem.Title}</span |
| 763 | + >{_t("select ${preview_path}", { |
| 764 | + preview_path: previewItem.Title, |
| 765 | + })}</span |
739 | 766 | > |
740 | 767 | </button> |
741 | 768 | {/if} |
|
800 | 827 | <div class="preview" in:fly={{ duration: 500 }}> |
801 | 828 | <div class="levelToolbar"> |
802 | 829 | <button |
803 | | - class="btn btn-xs btn-outline-primary d-flex align-items-center" |
| 830 | + class="btn btn-xs btn-primary d-flex align-items-center ps-1" |
804 | 831 | title={_t("add selected items")} |
805 | | - onclick={(e) => { e.preventDefault(); addSelectedItems(); }} |
806 | | - ><svg use:resolveIcon={{ iconName: "plus" }} /> |
| 832 | + onclick={(e) => { |
| 833 | + e.preventDefault(); |
| 834 | + addSelectedItems(); |
| 835 | + }} |
| 836 | + ><svg use:resolveIcon={{ iconName: "check" }} /> |
807 | 837 | <span class="select-button-ellipsis" |
808 | 838 | >{_t("add selected items")}</span |
809 | 839 | > |
|
997 | 1027 |
|
998 | 1028 | .select-button-ellipsis { |
999 | 1029 | white-space: nowrap; |
1000 | | - max-width: 150px; |
| 1030 | + max-width: 220px; |
1001 | 1031 | text-overflow: ellipsis; |
1002 | 1032 | overflow: hidden; |
1003 | 1033 | } |
|
0 commit comments