Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(auto-tip): [directives] updateauto-tip and highlight-query docs and demos #2406

Merged
merged 3 commits into from
Oct 26, 2024

Conversation

shenjunjian
Copy link
Collaborator

@shenjunjian shenjunjian commented Oct 26, 2024

PR

PR Checklist

Please check if your PR fulfills the following requirements:

  • The commit message follows our Commit Message Guidelines
  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

What is the current behavior?

Issue Number: N/A

What is the new behavior?

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

Summary by CodeRabbit

  • New Features

    • Enhanced tooltip functionality to provide clearer reasons for item disablement.
    • Updated UI elements for better interaction design, including button replacements and improved section titles.
  • Bug Fixes

    • Adjusted tooltip visibility assertions in testing to reflect accurate expected outcomes.
  • Documentation

    • Improved clarity and detail in the usage instructions for v-auto-tip and highlight-query directives.
  • Style

    • Added new CSS rules for better visual presentation of disabled items and section titles.

Copy link

coderabbitai bot commented Oct 26, 2024

Walkthrough

The changes in this pull request primarily focus on enhancing the tooltip functionality within the Vue components, specifically in the always-show and highlight-query directives. Modifications include updating the tooltip content to provide clearer reasons for item disablement, refining the structure and styling of the components, and improving documentation for the v-auto-tip directive. Additionally, test cases have been adjusted to reflect these changes, ensuring that the expected tooltip content aligns with the new implementations.

Changes

File Path Change Summary
examples/sites/demos/pc/app/directives/auto-tip/always-show-composition-api.vue Updated tooltip content to use item.disabledReason. Added effect: 'dark' to tooltip configuration. Modified options array to include a new disabled item with JSX for tooltip content. Added text-decoration: line-through; for .is_disabled.
examples/sites/demos/pc/app/directives/auto-tip/always-show.vue Similar updates as above for tooltip content and configuration. Updated options array and added CSS for disabled items.
examples/sites/demos/pc/app/directives/auto-tip/always-show.spec.js Modified expected tooltip content in test cases for hover actions.
examples/sites/demos/pc/app/directives/highlight-query/avoid-composition-api.vue Changed button label and added descriptive text indicating scenarios cannot be dynamically updated. Updated titles and replaced <tiny-input> with <tiny-button>. Added new CSS classes for styling.
examples/sites/demos/pc/app/directives/highlight-query/avoid.spec.js Adjusted locator for button element in test case to select the first instance.
examples/sites/demos/pc/app/directives/highlight-query/avoid.vue Similar updates as above for button text and section titles. Updated button components and added new CSS styles for improved presentation.
examples/sites/demos/pc/app/directives/webdoc/directives-auto-tip.js Enhanced descriptions for v-auto-tip directive, clarifying usage instructions and parameter details.
examples/sites/demos/pc/app/directives/webdoc/directives-highlight-query.js Modified descriptions in the demos array to improve clarity regarding functionality of highlight commands.

Possibly related PRs

Suggested labels

documentation

Suggested reviewers

  • zzcr

🐇 In the land of code where bunnies hop,
Tooltips now shine, they never stop!
With reasons so clear, and styles so bright,
Our UI's a joy, a true delight!
So let’s celebrate with a happy cheer,
For every change brings us closer, my dear! 🎉


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Outside diff range and nitpick comments (10)
examples/sites/demos/pc/app/directives/highlight-query/avoid.spec.js (1)

Line range hint 10-13: Add explicit wait for page load stability

The test might be flaky if the highlight nodes are rendered asynchronously. Consider adding an explicit wait for the initial nodes to be present.

  await page.goto('directives-highlight-query#avoid')
+ await page.waitForSelector('.tiny-hl-query-node')

  const hlNode = page.locator('.pc-demo-container .tiny-hl-query-node')
  await expect(hlNode).toHaveCount(12)
examples/sites/demos/pc/app/directives/auto-tip/always-show.spec.js (1)

Line range hint 3-12: Consider enhancing test clarity and coverage.

The test could benefit from:

  1. More descriptive test title explaining the specific tooltip behavior being tested
  2. Comments explaining why certain tooltips should/shouldn't be visible
  3. Additional test cases for the new JSX element tooltip content

Consider updating the test like this:

-test('常显提示', async ({ page }) => {
+test('should show/hide tooltips based on disabled state and reason', async ({ page }) => {
   page.on('pageerror', (exception) => expect(exception).toBeNull())
   await page.goto('directives-auto-tip#auto-tip-always-show')

+  // Should not show tooltip for enabled items
   await page.getByText('去游泳馆游泳').hover()
   await expect(page.getByRole('tooltip', { name: '羽毛球拍坏了' })).not.toBeVisible()

+  // Should show tooltip with disabled reason for disabled items
   await page.getByText('去羽毛球馆打羽毛球').hover()
   await expect(page.getByRole('tooltip', { name: '羽毛球拍坏了' })).toBeVisible()
+
+  // TODO: Add test case for JSX element tooltip content
 })
examples/sites/demos/pc/app/directives/auto-tip/always-show-composition-api.vue (1)

29-36: Consider extracting styles from JSX.

Inline styles in JSX make it harder to maintain consistent styling across components.

Consider moving the styles to the component's style section:

-<a href="javascript:void(0)" style="color:#f80">
+<a href="javascript:void(0)" class="tooltip-link">

Add to style section:

.tooltip-link {
  color: #f80;
}
examples/sites/demos/pc/app/directives/webdoc/directives-highlight-query.js (1)

29-29: Clear explanation of technical limitations

The updated Chinese description effectively communicates:

  1. The Vue compilation process's special handling of text nodes
  2. The directive's direct DOM manipulation behavior
  3. The potential failure scenarios

The technical accuracy and clarity are well maintained.

Consider adding line breaks in the Chinese description to match the English version's formatting, making it easier to read:

-          '纯文字节点在<code>Vue</code> 编译时有特殊处理。自动高亮搜索字的指令是直接操作<code>Dom</code>节点的内容,所以要避免纯文本节点。以下2个场景会造成<code>Vue</code> 更新机制失败。',
+          '纯文字节点在<code>Vue</code> 编译时有特殊处理。\n' +
+          '自动高亮搜索字的指令是直接操作<code>Dom</code>节点的内容,所以要避免纯文本节点。\n' +
+          '以下2个场景会造成<code>Vue</code> 更新机制失败。',
examples/sites/demos/pc/app/directives/auto-tip/always-show.vue (2)

11-11: LGTM! Consider adding JSDoc comments.

The v-auto-tip directive usage is semantically clearer with disabledReason. The dark effect enhances tooltip visibility.

Consider adding a comment above the template to document the purpose of this demo:

<!--
  Demo: Always Show Tooltip
  Demonstrates the v-auto-tip directive with always-visible tooltips for disabled items
-->

26-39: Consider adding more demo cases.

As this is a demo file, consider adding examples for:

  1. Dynamic tooltip content updates
  2. Error state tooltips
  3. Different tooltip placements

Would you like me to provide examples for these additional demo cases?

examples/sites/demos/pc/app/directives/highlight-query/avoid-composition-api.vue (1)

5-5: Consider adding tooltips to explain button purposes

While the button text changes are more descriptive, consider adding tooltips to explain:

  1. Why the content is being changed (to demonstrate dynamic highlighting)
  2. Why buttons are mixed with text (to show component composition)

Example implementation:

-<tiny-button @click="changeList">修改诗的内容</tiny-button>
+<tiny-button @click="changeList" title="点击切换内容以演示高亮的动态更新">修改诗的内容</tiny-button>

Also applies to: 16-16, 27-27

examples/sites/demos/pc/app/directives/highlight-query/avoid.vue (1)

66-73: Consider standardizing spacing units for consistency.

While the new styles improve the visual hierarchy and layout, consider using consistent spacing units throughout the component. The margin-left on .tiny-button could be aligned with the margin-bottom used on .tiny-input (20px vs 20px).

Consider updating the styles to maintain consistency:

 .tiny-input {
   width: 280px;
-  margin-bottom: 20px;
+  margin-bottom: 1.25rem;  /* or stick with 20px but document the spacing system */
 }

 .tiny-button {
-  margin-left: 20px;
+  margin-left: 1.25rem;    /* matching the spacing unit */
 }
examples/sites/demos/pc/app/directives/webdoc/directives-auto-tip.js (2)

15-26: Verify translation accuracy and consider adding style example.

The documentation improvements clearly explain the directive's behavior. However, consider the following suggestions:

  1. The English translation of the tip block (line 24) could be more idiomatic: "Requires the user to add more than omitted styles" is unclear.
  2. Consider adding a minimal CSS example within the tip block to demonstrate the required overflow styles.
 'en-US': `
     With the <code>v-auto-tip</code> custom command, you can detect if the text is too long when the mouse moves over the <code>Dom</code> element, and automatically add a <code>tooltip</code> prompt when it is too long.
     <div class="tip custom-block">
-    Requires the user to add more than omitted styles to the <code>Dom</code> element, see the example!
+    Note: The element must have text overflow styles applied (e.g., text-overflow: ellipsis) for this to work. See the example below!
+    <pre><code>
+    .element {
+      white-space: nowrap;
+      overflow: hidden;
+      text-overflow: ellipsis;
+    }
+    </code></pre>
     </div>
   `

38-46: Improve type declaration formatting and consistency.

The Chinese documentation is well-structured, but the type declaration could be more readable:

-其类型声明为<code>{always:boolean; content:string | VNode | Vnode[]; effect: string; placement: string }</code>
+其类型声明为:
+<pre><code>
+{
+  always: boolean;     // 是否始终显示
+  content: string | VNode | VNode[];  // 提示内容
+  effect: 'light' | 'dark';           // 主题
+  placement: string;                  // 位置
+}
+</code></pre>
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 66f3e65 and 7437f11.

📒 Files selected for processing (8)
  • examples/sites/demos/pc/app/directives/auto-tip/always-show-composition-api.vue (2 hunks)
  • examples/sites/demos/pc/app/directives/auto-tip/always-show.spec.js (1 hunks)
  • examples/sites/demos/pc/app/directives/auto-tip/always-show.vue (3 hunks)
  • examples/sites/demos/pc/app/directives/highlight-query/avoid-composition-api.vue (2 hunks)
  • examples/sites/demos/pc/app/directives/highlight-query/avoid.spec.js (1 hunks)
  • examples/sites/demos/pc/app/directives/highlight-query/avoid.vue (2 hunks)
  • examples/sites/demos/pc/app/directives/webdoc/directives-auto-tip.js (2 hunks)
  • examples/sites/demos/pc/app/directives/webdoc/directives-highlight-query.js (2 hunks)
🔇 Additional comments (11)
examples/sites/demos/pc/app/directives/auto-tip/always-show.spec.js (1)

8-8: LGTM! The tooltip assertions are correctly updated.

The changes align with the updated tooltip content using disabledReason instead of tip.

Also applies to: 11-11

examples/sites/demos/pc/app/directives/auto-tip/always-show-composition-api.vue (3)

11-11: LGTM! Improved tooltip configuration.

The directive configuration is well-structured with semantic property naming and enhanced visibility through the dark effect.


56-56: LGTM! Enhanced visual feedback.

The line-through decoration provides clear visual feedback for disabled items, improving user experience.


Line range hint 1-58: Verify demo coverage of directive features.

As this is a demo file, let's ensure it adequately demonstrates all key features of the auto-tip directive.

✅ Verification successful

Demo adequately demonstrates all key features of auto-tip directive

Based on the documentation and demos found, the current demo file properly covers all key features of the auto-tip directive:

  1. Basic text tooltip functionality with automatic overflow detection
  2. Always-show behavior with always: true option
  3. Custom tooltip content including both text and rich JSX content
  4. Dark theme via effect: 'dark' option
  5. Conditional tooltip application using the false value

The implementation matches the documented API which supports:

  • always - Controls automatic vs always-show behavior
  • content - Supports string and VNode content
  • effect - Light/dark themes
  • placement - Tooltip positioning
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if all auto-tip features are covered in demos
echo "Checking for other auto-tip demos and features..."

# Look for other demo files
fd -e vue -e md "auto-tip" examples/sites/demos/pc/app/directives/auto-tip/

# Check documentation for any undocumented features
fd -e md "auto-tip" examples/sites/docs/

Length of output: 333


Script:

#!/bin/bash
# Let's try a different approach using ripgrep to find auto-tip related files and content

# Find all auto-tip demo files
echo "=== Auto-tip demo files ==="
rg --files-with-matches "auto-tip" examples/sites/demos

# Search for directive documentation and features
echo -e "\n=== Auto-tip features and documentation ==="
rg -i "auto-tip" -A 5 -B 5 examples/sites/demos

# Look for directive implementation to understand features
echo -e "\n=== Auto-tip implementation ==="
rg -l "AutoTip" src/

Length of output: 19873

examples/sites/demos/pc/app/directives/webdoc/directives-highlight-query.js (1)

15-17: Documentation improvements look good!

The updated descriptions in both languages accurately explain the directive's functionality and maintain consistency in terminology. The proper use of <code> tags for technical terms enhances readability.

examples/sites/demos/pc/app/directives/auto-tip/always-show.vue (2)

18-18: LGTM! JSX support added correctly.

The lang="jsx" attribute is properly configured for complex tooltip content.


61-61: LGTM! Clear visual feedback for disabled state.

The line-through decoration provides clear visual indication of disabled items.

examples/sites/demos/pc/app/directives/highlight-query/avoid-composition-api.vue (1)

8-8: Documentation improvements enhance clarity!

The updated scenario titles now clearly explain why certain approaches should be avoided, making it more educational for developers. The consistent use of the "title" class also improves visual hierarchy.

Also applies to: 13-13, 19-19, 24-24

examples/sites/demos/pc/app/directives/highlight-query/avoid.vue (2)

8-8: Documentation improvements enhance clarity!

The updated titles now clearly explain why these scenarios should be avoided by adding "无法动态更新" (cannot be dynamically update). This helps developers better understand the technical limitations of the directive.

Also applies to: 13-13


5-5: Improved interaction clarity and demo consistency!

The changes enhance the demo by:

  1. Making the button text more specific about modifying poem content
  2. Using tiny-button consistently in mixed content examples, which better demonstrates the directive's behavior

Also applies to: 16-16, 27-27

examples/sites/demos/pc/app/directives/webdoc/directives-auto-tip.js (1)

49-57: Improve English translation and technical terminology.

The English documentation has some areas for improvement:

  1. "instruction parameter" should be "directive parameter"
  2. "VNode array" formatting is inconsistent with other code references
  3. Consider using more idiomatic technical English
-The <code>v-auto-tip</code> command can receive an instruction parameter as follows:
+The <code>v-auto-tip</code> directive accepts a parameter with the following structure:

Let's verify if these parameter names align with the actual implementation:

✅ Verification successful

Documentation accurately reflects the implementation with minor terminology improvements needed

The documentation's parameter descriptions match the actual implementation in auto-tip.ts, but can be improved for clarity:

-The <code>v-auto-tip</code> command can receive an instruction parameter as follows:
+The <code>v-auto-tip</code> directive accepts a configuration object with the following properties:

-1. If the parameter is an object, its type is declared as <code>{always:boolean; content:string | VNode | Vnode[];  effect: string;  placement: string }</code>
+1. If the parameter is an object, its type is <code>{always:boolean; content:string | VNode | VNode[];  effect: 'dark' | 'light';  placement: string }</code>

The implementation in auto-tip.ts confirms:

  • All parameter names (always, content, effect, placement) are correct
  • Types and default values match the documentation
  • The directive behavior for both object configuration and false value is accurately described

The suggested improvements are purely for readability and technical accuracy in English, without changing the technical content.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for v-auto-tip directive implementation
ast-grep --pattern 'export const autoTip = {
  $$$
}'

Length of output: 55


Script:

#!/bin/bash
# Let's try different patterns to find the directive implementation
rg -l "v-auto-tip|autoTip" --type js

# Then search for the directive definition
rg "(?s)(?:directive|bind)\s*\(\s*['\"](auto-tip|v-auto-tip)" -A 10 --type js

Length of output: 911


Script:

#!/bin/bash
# Let's check the actual implementation in the basic usage examples and directive definition
cat examples/sites/demos/pc/app/directives/auto-tip/basic-usage.vue
cat examples/sites/demos/pc/app/directives/auto-tip/always-show.vue

Length of output: 1706


Script:

#!/bin/bash
# Let's check the actual directive implementation from the package
cat packages/vue/src/directive/src/auto-tip.ts 2>/dev/null || cat packages/vue/src/directives/auto-tip.ts 2>/dev/null || find . -type f -name "auto-tip.ts" -o -name "auto-tip.js" | xargs cat

Length of output: 4893

const hlNode = page.locator('.pc-demo-container .tiny-hl-query-node')
const button = page.locator('.pc-demo-container .tiny-button')
const button = page.locator('.pc-demo-container .tiny-button').first()
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Consider using a more specific selector instead of .first()

While .first() works, it makes the test dependent on button order. Consider using a more specific and robust selector that uniquely identifies the target button (e.g., by text content, role, or data attribute).

- const button = page.locator('.pc-demo-container .tiny-button').first()
+ const button = page.locator('.pc-demo-container .tiny-button[data-test="highlight-toggle"]')

Don't forget to add the corresponding data attribute to the button in your Vue template:

<tiny-button data-test="highlight-toggle">
  <!-- button content -->
</tiny-button>

Comment on lines +32 to +34
<a href="javascript:void(0)" style="color:#f80">
选择
</a>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Consider improving the link implementation.

The javascript:void(0) usage is not recommended as it:

  1. Doesn't follow accessibility best practices
  2. May be blocked by some Content Security Policies

Consider using a proper button or handling the click event:

-<a href="javascript:void(0)" style="color:#f80">
+<button type="button" class="link-button">
  选择
-</a>
+</button>

Add corresponding CSS:

.link-button {
  background: none;
  border: none;
  color: #f80;
  cursor: pointer;
  padding: 0;
  font: inherit;
}

Comment on lines +31 to +38
disabledReason: (
<span>
还没有选择项目,现在去
<a href="javascript:void(0)" style="color:#f80">
选择
</a>
</span>
)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Improve accessibility and interactivity of the tooltip link.

The tooltip contains an interactive link that needs improvements:

  1. Using javascript:void(0) is not recommended
  2. The link lacks onClick handler
  3. Color-only styling doesn't meet accessibility standards

Consider this improvement:

          disabledReason: (
            <span>
              还没有选择项目,现在去
-              <a href="javascript:void(0)" style="color:#f80">
+              <button
+                type="button"
+                onClick={() => {/* Add handler */}}
+                style={{
+                  color: '#f80',
+                  textDecoration: 'underline',
+                  border: 'none',
+                  background: 'none',
+                  cursor: 'pointer',
+                  padding: 0
+                }}
+                aria-label="选择项目"
+              >
                选择
-              </a>
+              </button>
            </span>
          )

Committable suggestion was skipped due to low confidence.

Comment on lines +55 to +62
.title {
font-size: 18px;
font-weight: bold;
}

.tiny-button {
margin-left: 20px;
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Consider using CSS custom properties for better maintainability

The styling is clean and well-organized. Consider using CSS custom properties (variables) for values that might be reused across demos:

+:root {
+  --demo-title-size: 18px;
+  --demo-title-weight: bold;
+  --demo-spacing: 20px;
+}

 .title {
-  font-size: 18px;
-  font-weight: bold;
+  font-size: var(--demo-title-size);
+  font-weight: var(--demo-title-weight);
 }

 .tiny-button {
-  margin-left: 20px;
+  margin-left: var(--demo-spacing);
 }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
.title {
font-size: 18px;
font-weight: bold;
}
.tiny-button {
margin-left: 20px;
}
.demo {
--demo-title-size: 18px;
--demo-title-weight: bold;
--demo-spacing: 20px;
}
.title {
font-size: var(--demo-title-size);
font-weight: var(--demo-title-weight);
}
.tiny-button {
margin-left: var(--demo-spacing);
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants